diff --git a/.erb_lint.yml b/.erb_lint.yml index 10d4e18ac6d..cc5f52100eb 100644 --- a/.erb_lint.yml +++ b/.erb_lint.yml @@ -5,6 +5,7 @@ inherit_gem: - config/accessibility.yml exclude: - '**/frontend/**/*' + - 'lookbook/previews/open_project/deprecated/**/*' - '**/node_modules/**/*' - '**/vendor/**/*' linters: diff --git a/.github/dependabot.yml b/.github/dependabot.yml index 9f8fb33d8d7..c6a7a131792 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -6,7 +6,7 @@ updates: interval: "daily" target-branch: "dev" cooldown: - default-days: 5 + default-days: 7 semver-major-days: 30 semver-minor-days: 14 semver-patch-days: 5 @@ -48,7 +48,7 @@ updates: interval: "daily" target-branch: "dev" cooldown: - default-days: 5 + default-days: 7 semver-major-days: 30 semver-minor-days: 14 semver-patch-days: 5 @@ -65,6 +65,11 @@ updates: schedule: interval: "weekly" target-branch: "dev" + cooldown: + default-days: 7 + semver-major-days: 30 + semver-minor-days: 14 + semver-patch-days: 5 commit-message: prefix: "deps(hocuspocus)" labels: @@ -81,3 +86,5 @@ updates: schedule: interval: "weekly" target-branch: "dev" + cooldown: + default-days: 7 diff --git a/.github/workflows/cla.yml b/.github/workflows/cla.yml index 761aeeb067b..14dd8d62884 100644 --- a/.github/workflows/cla.yml +++ b/.github/workflows/cla.yml @@ -89,7 +89,9 @@ jobs: ehassan01, JohannaStriebing, fereshtehnm, - thykel + thykel, + j-racsko, + FeliciaMundhenke2904 # the followings are the optional inputs - If the optional inputs are not given, then default values will be taken remote-organization-name: opf remote-repository-name: legal diff --git a/.github/workflows/dependency-review.yml b/.github/workflows/dependency-review.yml index cbe57b2198d..e0eddeffe3e 100644 --- a/.github/workflows/dependency-review.yml +++ b/.github/workflows/dependency-review.yml @@ -36,7 +36,7 @@ jobs: - name: 'Checkout repository' uses: actions/checkout@v6 - name: 'Dependency Review' - uses: actions/dependency-review-action@v4 + uses: actions/dependency-review-action@v4.9.0 # Commonly enabled options, see https://github.com/actions/dependency-review-action#configuration-options for all available options. with: comment-summary-in-pr: on-failure diff --git a/.github/workflows/docker-release.yml b/.github/workflows/docker-release.yml index 9eed44f0d1f..dc7c7bf8eef 100644 --- a/.github/workflows/docker-release.yml +++ b/.github/workflows/docker-release.yml @@ -51,7 +51,11 @@ jobs: with: branch: ${{ needs.compute-inputs.outputs.branch }} tag: ${{ needs.compute-inputs.outputs.tag }} - secrets: inherit + secrets: + DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }} + DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }} + DEPLOY_APP_PRIVATE_KEY: ${{ secrets.DEPLOY_APP_PRIVATE_KEY }} + OPS_MAIL_SMTP_TOKEN: ${{ secrets.OPS_MAIL_SMTP_TOKEN }} trigger_helm_release: if: ${{ github.repository == 'opf/openproject' }} diff --git a/.github/workflows/docker-scheduled.yml b/.github/workflows/docker-scheduled.yml index eed734a9574..ef7d7ac25d8 100644 --- a/.github/workflows/docker-scheduled.yml +++ b/.github/workflows/docker-scheduled.yml @@ -13,7 +13,11 @@ jobs: with: branch: dev tag: dev - secrets: inherit + secrets: + DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }} + DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }} + DEPLOY_APP_PRIVATE_KEY: ${{ secrets.DEPLOY_APP_PRIVATE_KEY }} + OPS_MAIL_SMTP_TOKEN: ${{ secrets.OPS_MAIL_SMTP_TOKEN }} build-release-candidate: if: github.repository == 'opf/openproject' # References to release/X.Y and X.Y-rc are being @@ -22,4 +26,8 @@ jobs: with: branch: release/17.4 tag: 17.4-rc - secrets: inherit + secrets: + DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }} + DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }} + DEPLOY_APP_PRIVATE_KEY: ${{ secrets.DEPLOY_APP_PRIVATE_KEY }} + OPS_MAIL_SMTP_TOKEN: ${{ secrets.OPS_MAIL_SMTP_TOKEN }} diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index 61f95799e85..c7f18f16f03 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -17,6 +17,15 @@ on: required: false type: boolean default: false + secrets: + DOCKER_USERNAME: + required: true + DOCKER_PASSWORD: + required: true + DEPLOY_APP_PRIVATE_KEY: + required: true + OPS_MAIL_SMTP_TOKEN: + required: true workflow_dispatch: inputs: branch: @@ -44,7 +53,10 @@ jobs: use_test_registry: ${{ inputs.use_test_registry }} branch: ${{ inputs.branch }} tag: ${{ inputs.tag }} - secrets: inherit + secrets: + DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }} + DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }} + DEPLOY_APP_PRIVATE_KEY: ${{ secrets.DEPLOY_APP_PRIVATE_KEY }} setup: needs: [build-hocuspocus] runs-on: ubuntu-latest @@ -55,17 +67,21 @@ jobs: ref: ${{ inputs.branch }} - name: Set version outputs and convert tags id: extract_version + env: + INPUT_TAG: ${{ inputs.tag }} + INPUT_USE_TEST_REGISTRY: ${{ inputs.use_test_registry }} + REGISTRY_IMAGE: ${{ vars.REGISTRY_IMAGE }} run: | set -e - echo "Processing tag: ${{ inputs.tag }}" - ./script/gh/docker-tags.rb "${{ inputs.tag }}" --version - ./script/gh/docker-tags.rb "${{ inputs.tag }}" --format-for-docker + echo "Processing tag: $INPUT_TAG" + ./script/gh/docker-tags.rb "$INPUT_TAG" --version + ./script/gh/docker-tags.rb "$INPUT_TAG" --format-for-docker # Determine registry image based on workflow_dispatch input - if [ "${{ inputs.use_test_registry }}" = "true" ]; then + if [ "$INPUT_USE_TEST_REGISTRY" = "true" ]; then echo "registry_image=openproject/openproject-test" >> "$GITHUB_OUTPUT" else - echo "registry_image=${{ vars.REGISTRY_IMAGE }}" >> "$GITHUB_OUTPUT" + echo "registry_image=$REGISTRY_IMAGE" >> "$GITHUB_OUTPUT" fi - name: Verify outputs run: | @@ -85,7 +101,7 @@ jobs: echo "✓ docker_tags: ${{ steps.extract_version.outputs.docker_tags }}" echo "✓ registry_image: ${{ steps.extract_version.outputs.registry_image }}" - name: Cache NPM - uses: runs-on/cache@v4 + uses: runs-on/cache@v5 with: path: | frontend/node_modules @@ -93,7 +109,7 @@ jobs: key: nodejs-x64-${{ hashFiles('**/package-lock.json') }} restore-keys: nodejs-x64- - name: Cache angular - uses: runs-on/cache@v4 + uses: runs-on/cache@v5 with: path: frontend/.angular key: angular-${{ github.ref }} @@ -351,7 +367,8 @@ jobs: needs: [setup, build, merge] if: ${{ always() && contains(needs.*.result, 'failure') }} uses: ./.github/workflows/email-notification.yml - secrets: inherit + secrets: + OPS_MAIL_SMTP_TOKEN: ${{ secrets.OPS_MAIL_SMTP_TOKEN }} with: subject: "Docker build failed" body: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }} diff --git a/.github/workflows/hocuspocus-docker.yml b/.github/workflows/hocuspocus-docker.yml index 83f82defbf1..7dca9a23cf0 100644 --- a/.github/workflows/hocuspocus-docker.yml +++ b/.github/workflows/hocuspocus-docker.yml @@ -42,6 +42,13 @@ on: required: false type: boolean default: false + secrets: + DOCKER_USERNAME: + required: true + DOCKER_PASSWORD: + required: true + DEPLOY_APP_PRIVATE_KEY: + required: true jobs: build: @@ -63,21 +70,27 @@ jobs: echo "short_sha=$SHORT_SHA" >> "$GITHUB_OUTPUT" - name: Determine tags id: tags + env: + INPUT_USE_TEST_REGISTRY: ${{ inputs.use_test_registry }} + INPUT_BRANCH: ${{ inputs.branch }} + FALLBACK_BRANCH: ${{ github.ref_name }} + INPUT_TAG: ${{ inputs.tag }} + SHORT_SHA: ${{ steps.short-sha.outputs.short_sha }} run: | REGISTRY=openproject/hocuspocus - if [ "${{ inputs.use_test_registry }}" = "true" ]; then + if [ "$INPUT_USE_TEST_REGISTRY" = "true" ]; then REGISTRY=openproject/hocuspocus-test fi - BRANCH=$(echo '${{ inputs.branch || github.ref_name }}' | tr / -) - SPECIFIC_TAG=$BRANCH-${{ steps.short-sha.outputs.short_sha }} + BRANCH=$(echo "${INPUT_BRANCH:-$FALLBACK_BRANCH}" | tr / -) + SPECIFIC_TAG=$BRANCH-$SHORT_SHA LATEST_TAG=$BRANCH-latest MINOR_TAG= MAJOR_TAG= - if [ -n "${{ inputs.tag }}" ]; then - SPECIFIC_TAG=$(echo '${{ inputs.tag }}' | tr -d v) + if [ -n "$INPUT_TAG" ]; then + SPECIFIC_TAG=$(echo "$INPUT_TAG" | tr -d v) LATEST_TAG=latest MINOR_TAG=$(echo $SPECIFIC_TAG | cut -d. -f1-2) MAJOR_TAG=$(echo $SPECIFIC_TAG | cut -d. -f1) diff --git a/.github/workflows/pullpreview.yml b/.github/workflows/pullpreview.yml index ae3324f1907..bc62f22c36f 100644 --- a/.github/workflows/pullpreview.yml +++ b/.github/workflows/pullpreview.yml @@ -48,7 +48,7 @@ jobs: compose_files: docker-compose.pullpreview.yml provider: hetzner region: fsn1 - instance_type: cx53 + instance_type: cpx42 ports: 80,443 default_port: 443 ttl: 10d diff --git a/.github/workflows/seed-all-locales.yml b/.github/workflows/seed-all-locales.yml index 0e88f27f4ef..8d90c03eb34 100644 --- a/.github/workflows/seed-all-locales.yml +++ b/.github/workflows/seed-all-locales.yml @@ -115,7 +115,8 @@ jobs: needs: [prepare, seed] if: ${{ always() && contains(needs.*.result, 'failure') }} uses: ./.github/workflows/email-notification.yml - secrets: inherit + secrets: + OPS_MAIL_SMTP_TOKEN: ${{ secrets.OPS_MAIL_SMTP_TOKEN }} with: to: operations@openproject.com subject: "Seeding with some locales failed on ${{ needs.prepare.outputs.ref }}" diff --git a/.github/workflows/test-core.yml b/.github/workflows/test-core.yml index fb9a5cf3d5c..bff718303ff 100644 --- a/.github/workflows/test-core.yml +++ b/.github/workflows/test-core.yml @@ -38,7 +38,7 @@ jobs: - uses: actions/checkout@v6 - name: Cache DOCKER id: cache_docker - uses: runs-on/cache@v4 + uses: runs-on/cache@v5 with: path: cache/docker # Note: no restore keys since whenever the files below change, we want to rebuild the full image from scratch @@ -47,28 +47,28 @@ jobs: if: steps.cache_docker.outputs.cache-hit == 'true' run: docker load -i cache/docker/image.tar - name: Cache GEM - uses: runs-on/cache@v4 + uses: runs-on/cache@v5 with: path: cache/bundle key: gem-trixie-${{ hashFiles('.ruby-version') }}-${{ hashFiles('Gemfile.lock') }} restore-keys: | gem-trixie-${{ hashFiles('.ruby-version') }}- - name: Cache NPM - uses: runs-on/cache@v4 + uses: runs-on/cache@v5 with: path: cache/node key: node-${{ hashFiles('package.json', 'frontend/package-lock.json') }} restore-keys: | node- - name: Cache ANGULAR - uses: runs-on/cache@v4 + uses: runs-on/cache@v5 with: path: cache/angular key: angular-${{ hashFiles('package.json', 'frontend/package-lock.json') }} restore-keys: | angular- - name: Cache TEST RUNTIME - uses: runs-on/cache@v4 + uses: runs-on/cache@v5 with: path: cache/runtime-logs key: runtime-logs-${{ github.head_ref || github.ref }}-${{ github.sha }} diff --git a/.github/workflows/test-frontend-unit.yml b/.github/workflows/test-frontend-unit.yml index d537d3cfef2..dc70bbc92e4 100644 --- a/.github/workflows/test-frontend-unit.yml +++ b/.github/workflows/test-frontend-unit.yml @@ -51,4 +51,4 @@ jobs: - name: Test (Angular) id: npm-test - run: npm test -- --code-coverage + run: npm test diff --git a/.github/workflows/version-check.yml b/.github/workflows/version-check.yml index c738fc7ba88..3798a0269fc 100644 --- a/.github/workflows/version-check.yml +++ b/.github/workflows/version-check.yml @@ -32,7 +32,7 @@ jobs: - name: Add comment if versions differ if: steps.version-check.outputs.version_mismatch == 'true' - uses: marocchino/sticky-pull-request-comment@v2 + uses: marocchino/sticky-pull-request-comment@v3 with: header: version-mismatch-comment message: | @@ -50,7 +50,7 @@ jobs: - The work package version OR your pull request target branch is correct - name: Version check passed if: steps.version-check.outputs.version_mismatch != 'true' - uses: marocchino/sticky-pull-request-comment@v2 + uses: marocchino/sticky-pull-request-comment@v3 with: header: version-mismatch-comment delete: true diff --git a/.rubocop.yml b/.rubocop.yml index ed6d645fa8d..415242606cd 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -60,7 +60,8 @@ Layout/MultilineOperationIndentation: Enabled: false Lint/AmbiguousBlockAssociation: - AllowedMethods: [change] + AllowedMethods: + - change Lint/AmbiguousOperator: Enabled: false @@ -147,9 +148,9 @@ Naming/PredicatePrefix: Naming/VariableNumber: AllowedPatterns: - - '\w_20\d\d' # allow dates like christmas_2022 or date_2034_04_12 - - '\w\d++(_\d++)+' # allow hierarchical data like child1_2_5 (second + in regex is possessive qualifier) - - 'custom_field_\d+' # allow custom field method names to be called with send :custom_field_1001 + - "\\w_20\\d\\d" # allow dates like christmas_2022 or date_2034_04_12 + - "\\w\\d++(_\\d++)+" # allow hierarchical data like child1_2_5 (second + in regex is possessive qualifier) + - "custom_field_\\d+" # allow custom field method names to be called with send :custom_field_1001 OpenProject/AddPreviewForViewComponent: Include: @@ -181,6 +182,10 @@ Rails/DynamicFindBy: - find_by_login - find_by_mail - find_by_plaintext_value + - find_by_rss_key + - find_by_unique + - find_by_unique! + - find_by_api_key # Allow reorder to prevent find each cop triggering Rails/FindEach: @@ -333,6 +338,7 @@ RSpec/SpecFilePathFormat: CustomTransform: OpenIDConnect: openid_connect OAuthClients: oauth_clients + XWiki: xwiki XWikiProviders: xwiki_providers EnforcedInflector: active_support IgnoreMethods: true @@ -402,7 +408,8 @@ Style/FormatString: Enabled: false Style/FormatStringToken: - AllowedMethods: [redirect] + AllowedMethods: + - redirect Style/FrozenStringLiteralComment: Enabled: true diff --git a/AGENTS.md b/AGENTS.md index a7cce259da1..079ebb555fe 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -20,8 +20,6 @@ - Node: `^22.21.0` (see `package.json` engines) - Bundler: Latest 2.x -OpenProject supports two development setups: **Local** and **Docker**. Choose one based on your preference. - ### Local Development Setup ```bash @@ -34,59 +32,24 @@ bin/dev # Start all services (Rails, frontend, Good Job ### Docker Development Setup -The Docker development environment uses configurations in `docker/dev/` and the `bin/compose` wrapper script. - -```bash -# Initial setup (first time only) -bin/compose setup # Installs backend and frontend dependencies - -# Starting services -bin/compose start # Start backend and frontend in background -bin/compose run # Start frontend in background, backend in foreground (for debugging with pry) - -# Running tests -bin/compose rspec spec/models/user_spec.rb # Run specific tests in backend-test container - -# Other operations -bin/compose reset # Remove all containers and volumes (requires setup again) -bin/compose # Pass any docker-compose command directly -``` - -**Important Docker Notes:** -- **CRITICAL**: `config/database.yml` must NOT exist when using Docker (rename or delete it) -- Most developers use a local `docker-compose.override.yml` for custom port mappings and configurations -- Copy `docker-compose.override.example.yml` to `docker-compose.override.yml` and customize as needed -- Default ports: Backend at http://localhost:3000 (or 4200 for frontend dev server) -- Services: `backend`, `frontend`, `worker`, `db`, `db-test`, `backend-test`, `cache` -- Persisted volumes: `pgdata`, `bundle`, `npm`, `tmp`, `opdata` (data survives container restarts) -- Docker build context: Uses Dockerfiles in `docker/dev/backend/` and `docker/dev/frontend/` +See [`docker/dev/AGENTS.md`](docker/dev/AGENTS.md) for full Docker setup and commands. ## Project Structure ### Key Directories -- `app/` - Rails application code - - `app/components/` - ViewComponent-based UI components (Ruby + ERB) - - `app/contracts/` - Validation and authorization contracts - - `app/controllers/` - Rails controllers - - `app/models/` - ActiveRecord models - - `app/services/` - Service objects (business logic) - - `app/workers/` - Background job workers -- `config/` - Rails configuration, routes, locales -- `db/` - Database migrations and seeds -- `frontend/src/` - Frontend code - - `frontend/src/app/` - Legacy Angular modules/components - - `frontend/src/stimulus/` - Stimulus controllers - - `frontend/src/turbo/` - Turbo integration -- `lib/` - Ruby libraries and extensions -- `lookbook/` - ViewComponent previews (https://qa.openproject-edge.com/lookbook/) -- `modules/` - OpenProject plugin modules -- `spec/` - RSpec test suite - - `spec/features/` - System/feature tests (Capybara) - - `spec/models/` - Model unit tests - - `spec/requests/` - API/integration tests - - `spec/services/` - Service tests + +- `app/` — Rails application code +- `config/` — Rails configuration, routes, locales +- `db/` — Database migrations and seeds +- `docker/dev/` — Docker development environment +- `frontend/` — TypeScript/Angular/Stimulus frontend +- `lib/` — Ruby libraries and extensions +- `lookbook/` — ViewComponent previews () +- `modules/` — OpenProject plugin modules +- `spec/` — RSpec test suite ### Configuration Files + - `.ruby-version` - Ruby version - `.rubocop.yml` - Ruby linting rules - `.erb_lint.yml` - ERB template linting @@ -95,8 +58,6 @@ bin/compose # Pass any docker-compose command dire - `package.json` / `frontend/package.json` - Node.js dependencies - `lefthook.yml` - Git hooks configuration -## Building and Testing - ### Linting (Run Before Committing) ```bash @@ -114,126 +75,15 @@ erb_lint {files} bundle exec lefthook install ``` -### Running Tests - -```bash -# Backend (RSpec) - prefer specific tests over running all -bundle exec rspec spec/models/user_spec.rb # Single file -bundle exec rspec spec/models/user_spec.rb:42 # Single line -bundle exec rspec spec/features # Directory -bundle exec rake parallel:spec # Parallel execution - -# Frontend (Jasmine/Karma) -cd frontend && npm test && cd .. -``` - -### Debugging CI Failures -```bash -./script/github_pr_errors | xargs bundle exec rspec # Run failed tests from CI -./script/bulk_run_rspec spec/path/to/flaky_spec.rb # Run tests multiple times -``` - -## Code Style Guidelines - -### Ruby -- Follow [Ruby community style guide](https://github.com/bbatsov/ruby-style-guide) -- Use service objects for complex business logic (return `ServiceResult`) -- Use contracts for validation and authorization -- Keep controllers thin, models focused -- Document with [YARD](https://yardoc.org/) -- Write RSpec tests for all new features -- **Work package identifiers**: `WorkPackage.find("PROJ-42")` resolves semantic identifiers transparently. Use `find_by_display_id` only when input could legitimately be numeric OR semantic (controllers, URL-driven components, macro resolvers). Low-level code (queries, filters, services) should stick to `find_by(id:)` with primary keys. See `app/models/work_package/semantic_identifier/finder_methods.rb`. - -### JavaScript/TypeScript -- **New development**: Use Hotwire (Turbo + Stimulus) with server-rendered HTML -- **Legacy code**: Follow ESLint rules -- Prefer TypeScript over JavaScript -- Use [Primer Design System](https://primer.style/product/) via ViewComponent - -### Templates -- Use ERB for server-rendered views -- Use ViewComponents for reusable UI (with Lookbook previews) -- Lint with erb_lint before committing - -### Database Migrations -- Follow Rails migration conventions -- Migrations are "squashed" between major releases (see `docs/development/migrations/`) - -### Translations -- UI strings must use translation keys (never hard-coded) -- Source translations in `**/config/locales/en.yml` can be modified directly -- Other translations managed via Crowdin - -### Commit Messages +## Commit Messages - First line: < 72 characters, then blank line, then detailed description - Reference work packages when applicable - Merge strategy: "Merge pull request" (not squash), except single-commit PRs can use "Rebase and merge" -## Important Commands Reference - -### Local Development Commands - -```bash -# Setup -bin/setup # Initial Rails setup -bin/setup_dev # Full dev environment setup - -# Database -bundle exec rails g migration MigrationName # Generate a migration -bundle exec rails db:migrate # Run migrations -bundle exec rails db:rollback # Rollback last migration -bundle exec rails db:seed # Seed sample data - -# Development -bin/dev # Start all services -bundle exec rails console # Rails console -bundle exec rails routes # List routes - -# Testing -bundle exec rspec # Run RSpec tests -bundle exec rails parallel:spec # Parallel tests -cd frontend && npm test # Frontend tests - -# Linting -bundle exec rubocop # Ruby linting -cd frontend && npx eslint src/ # JS/TS linting -erb_lint {files} # ERB linting -``` - -### Docker Development Commands - -```bash -# Setup and lifecycle -bin/compose setup # Setup Docker environment (first time) -bin/compose start # Start all services in background -bin/compose run # Start frontend in background, backend in foreground -bin/compose reset # Remove all containers and volumes -bin/compose stop # Stop all services -bin/compose down # Stop and remove containers - -# Testing -bin/compose rspec spec/models/user_spec.rb # Run specific tests -bin/compose exec backend bundle exec rspec # Run tests directly in backend container - -# Development -bin/compose exec backend bundle exec rails console # Rails console -bin/compose logs backend # View backend logs -bin/compose logs -f backend # Follow backend logs -bin/compose ps # List running containers - -# Database -bin/compose exec backend bundle exec rails db:migrate # Run migrations -bin/compose exec backend bundle exec rails db:seed # Seed data - -# Direct docker-compose commands -bin/compose up -d # Start services -bin/compose restart backend # Restart backend service -``` - ## Additional Documentation -- `docs/development/` - Development documentation -- `docs/development/running-tests/` - Testing guide -- `docs/development/code-review-guidelines/` - Code review standards -- `CONTRIBUTING.md` - Contribution workflow -- `.github/copilot-instructions.md` - Extended agent instructions with troubleshooting +- `docs/development/` — Development documentation +- `docs/development/running-tests/` — Testing guide +- `docs/development/code-review-guidelines/` — Code review standards +- `CONTRIBUTING.md` — Contribution workflow +- `.github/copilot-instructions.md` — Extended agent instructions with troubleshooting diff --git a/COPYRIGHT b/COPYRIGHT index 08f7c7b939c..30d0c1cb7eb 100644 --- a/COPYRIGHT +++ b/COPYRIGHT @@ -58,4 +58,4 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software -Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. diff --git a/COPYRIGHT_short b/COPYRIGHT_short index d4773d9e476..0693c77611e 100644 --- a/COPYRIGHT_short +++ b/COPYRIGHT_short @@ -20,6 +20,6 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software -Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. See COPYRIGHT and LICENSE files for more details. diff --git a/Gemfile b/Gemfile index 1e18d5725cd..2573b15d0d4 100644 --- a/Gemfile +++ b/Gemfile @@ -69,7 +69,7 @@ gem "scimitar", "~> 2.13" gem "acts_as_list", "~> 1.2.6" gem "acts_as_tree", "~> 2.9.0" gem "awesome_nested_set", "~> 3.9.0" -gem "closure_tree", "~> 9.6.1" +gem "closure_tree", "~> 9.6.2" gem "rubytree", "~> 2.2.0" gem "addressable", "~> 2.9.0" @@ -124,10 +124,10 @@ gem "sys-filesystem", "~> 1.5.0", require: false gem "bcrypt", "~> 3.1.22" gem "multi_json", "~> 1.20.0" -gem "oj", "~> 3.16.16" +gem "oj", "~> 3.17.0" gem "daemons" -gem "good_job", "~> 4.14.2" # update should be done manually in sync with saas-openproject version. +gem "good_job", "~> 4.18.2" # update should be done manually in sync with saas-openproject version. gem "rack-protection", "~> 3.2.0" @@ -161,7 +161,7 @@ gem "ttfunk", "~> 1.7.0" # remove after https://github.com/prawnpdf/prawn/issues # prawn implicitly depends on matrix gem no longer in ruby core with 3.1 gem "matrix", "~> 0.4.3" -gem "mcp", "~> 0.10.0" +gem "mcp", "~> 0.14.0" gem "meta-tags", "~> 2.23.0" @@ -193,7 +193,7 @@ gem "rails-i18n", "~> 8.1.0" gem "sprockets", "~> 3.7.2" # lock sprockets below 4.0 gem "sprockets-rails", "~> 3.5.1" -gem "puma", "~> 7.1" +gem "puma", "~> 8.0" gem "puma-plugin-statsd", "~> 2.7" gem "rack-timeout", "~> 0.7.0", require: "rack/timeout/base" @@ -237,10 +237,10 @@ gem "yabeda-rails" # opentelemetry gem "opentelemetry-exporter-otlp", "~> 0.33.0", require: false -gem "opentelemetry-instrumentation-all", "~> 0.91.0", require: false +gem "opentelemetry-instrumentation-all", "~> 0.93.0", require: false gem "opentelemetry-sdk", "~> 1.10", require: false -gem "view_component", "~> 4.6.0" +gem "view_component", "~> 4.9.0" # Lookbook gem "lookbook", "2.3.14" @@ -264,10 +264,11 @@ group :test do gem "rack-test", "~> 2.2.0" gem "shoulda-context", "~> 2.0" + gem "parallel_tests", "~> 5.7" # Test prof provides factories from code # and other niceties gem "test-prof", "~> 1.6.0" - gem "turbo_tests", github: "opf/turbo_tests", ref: "with-patches" + gem "turbo_tests", github: "opf/turbo_tests", ref: "2_2_5_with_patches" gem "rack_session_access" gem "rspec", "~> 3.13.2" @@ -316,8 +317,6 @@ group :test do gem "equivalent-xml", "~> 0.6" gem "json_spec", "~> 1.1.4" gem "shoulda-matchers", "~> 7.0", require: nil - - gem "parallel_tests", "~> 4.0" end group :ldap do @@ -384,8 +383,6 @@ group :development, :test do gem "active_record_doctor", "~> 2.0.1" end -gem "bootsnap", "~> 1.23.0", require: false - # API gems gem "grape", "~> 3.2.0" gem "grape_logging", "~> 3.0.0" @@ -405,7 +402,7 @@ gem "disposable", "~> 0.6.2" gem "dentaku", "~> 3.5" # Used for more powerful counter caches -gem "counter_culture", "~> 3.11" +gem "counter_culture", "~> 3.13" group :postgres do gem "pg", "~> 1.6.2" @@ -432,4 +429,4 @@ end gem "openproject-octicons", "~>19.34.0" gem "openproject-octicons_helper", "~>19.34.0" -gem "openproject-primer_view_components", "~>0.84.5" +gem "openproject-primer_view_components", "~>0.85.0" diff --git a/Gemfile.lock b/Gemfile.lock index c3fa820df39..996542c473e 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -54,11 +54,11 @@ GIT GIT remote: https://github.com/opf/turbo_tests.git - revision: c1c4707f536a5642a168650d273d714dfb62d842 - ref: with-patches + revision: 4208e7372a7987c972dda634eb4f29ad9f1448e1 + ref: 2_2_5_with_patches specs: - turbo_tests (2.2.0) - parallel_tests (>= 3.3.0, < 5) + turbo_tests (2.2.5) + parallel_tests (>= 3.3.0, < 6) rspec (>= 3.10) GIT @@ -198,6 +198,11 @@ PATH openproject-reporting (1.0.0) costs +PATH + remote: modules/resource_management + specs: + openproject-resource_management (1.0.0) + PATH remote: modules/storages specs: @@ -356,8 +361,8 @@ GEM awesome_nested_set (3.9.0) activerecord (>= 4.0.0, < 8.2) aws-eventstream (1.4.0) - aws-partitions (1.1238.0) - aws-sdk-core (3.244.0) + aws-partitions (1.1242.0) + aws-sdk-core (3.246.0) aws-eventstream (~> 1, >= 1.3.0) aws-partitions (~> 1, >= 1.992.0) aws-sigv4 (~> 1.9) @@ -365,10 +370,10 @@ GEM bigdecimal jmespath (~> 1, >= 1.6.1) logger - aws-sdk-kms (1.123.0) + aws-sdk-kms (1.124.0) aws-sdk-core (~> 3, >= 3.244.0) aws-sigv4 (~> 1.5) - aws-sdk-s3 (1.219.0) + aws-sdk-s3 (1.220.0) aws-sdk-core (~> 3, >= 3.244.0) aws-sdk-kms (~> 1) aws-sigv4 (~> 1.5) @@ -377,12 +382,12 @@ GEM aws-sigv4 (~> 1.5) aws-sigv4 (1.12.1) aws-eventstream (~> 1, >= 1.0.2) - axe-core-api (4.11.2) + axe-core-api (4.11.3) dumb_delegator ostruct virtus - axe-core-rspec (4.11.2) - axe-core-api (= 4.11.2) + axe-core-rspec (4.11.3) + axe-core-api (= 4.11.3) dumb_delegator ostruct virtus @@ -400,10 +405,8 @@ GEM erubi (~> 1.4) parser (>= 2.4) smart_properties - bigdecimal (4.1.1) + bigdecimal (4.1.2) bindata (2.5.1) - bootsnap (1.23.0) - msgpack (~> 1.2) brakeman (8.0.4) racc browser (6.2.0) @@ -438,7 +441,7 @@ GEM childprocess (5.1.0) logger (~> 1.5) climate_control (1.2.0) - closure_tree (9.6.1) + closure_tree (9.6.2) activerecord (>= 7.2.0) with_advisory_lock (>= 7.5.0) zeitwerk (~> 2.7) @@ -462,14 +465,14 @@ GEM cose (1.3.1) cbor (~> 0.5.9) openssl-signature_algorithm (~> 1.0) - counter_culture (3.13.0) + counter_culture (3.13.1) activerecord (>= 4.2) activesupport (>= 4.2) crack (1.0.1) bigdecimal rexml crass (1.0.6) - css_parser (2.0.0) + css_parser (2.1.0) addressable csv (3.3.5) cuprite (0.17) @@ -517,7 +520,7 @@ GEM concurrent-ruby (~> 1.0) dry-core (~> 1.1) zeitwerk (~> 2.6) - dry-monads (1.9.0) + dry-monads (1.10.0) concurrent-ruby (~> 1.0) dry-core (~> 1.1) zeitwerk (~> 2.6) @@ -603,7 +606,7 @@ GEM ffi (1.17.4-x86_64-linux-gnu) ffi (1.17.4-x86_64-linux-musl) flamegraph (0.9.5) - fog-aws (3.33.1) + fog-aws (3.33.2) base64 (>= 0.2, < 0.4) fog-core (~> 2.6) fog-json (~> 1.1) @@ -613,7 +616,7 @@ GEM excon (~> 1.0) formatador (>= 0.2, < 2.0) mime-types - fog-json (1.2.0) + fog-json (1.3.0) fog-core multi_json (~> 1.10) fog-xml (0.1.5) @@ -633,7 +636,7 @@ GEM glob (0.4.0) globalid (1.3.0) activesupport (>= 6.1) - good_job (4.14.2) + good_job (4.18.2) activejob (>= 6.1.0) activerecord (>= 6.1.0) concurrent-ruby (>= 1.3.1) @@ -648,7 +651,7 @@ GEM mini_mime (~> 1.1) representable (~> 3.0) retriable (~> 3.1) - google-apis-gmail_v1 (0.47.0) + google-apis-gmail_v1 (0.48.0) google-apis-core (>= 0.15.0, < 2.a) google-cloud-env (2.3.1) base64 (~> 0.2) @@ -685,7 +688,7 @@ GEM multi_json (~> 1.11) os (>= 0.9, < 2.0) signet (>= 0.16, < 2.a) - grape (3.2.0) + grape (3.2.1) activesupport (>= 7.2) dry-configurable dry-types (>= 1.1) @@ -745,16 +748,16 @@ GEM nokogiri (>= 1.6) interception (0.5) io-console (0.8.2) - irb (1.17.0) + irb (1.18.0) pp (>= 0.6.0) prism (>= 1.3.0) rdoc (>= 4.0.0) reline (>= 0.4.2) iso8601 (0.13.0) jmespath (1.6.2) - job-iteration (1.13.0) + job-iteration (1.13.1) activejob (>= 7.0) - json (2.19.3) + json (2.19.5) json-jwt (1.17.0) activesupport (>= 4.2) aes_key_wrap @@ -828,7 +831,7 @@ GEM marcel (1.0.4) markly (0.16.0) matrix (0.4.3) - mcp (0.10.0) + mcp (0.14.0) json-schema (>= 4.1) messagebird-rest (5.0.0) jwt (< 4) @@ -838,21 +841,21 @@ GEM mime-types (3.7.0) logger mime-types-data (~> 3.2025, >= 3.2025.0507) - mime-types-data (3.2026.0407) + mime-types-data (3.2026.0414) mini_magick (5.3.1) logger mini_mime (1.1.5) - minitest (6.0.4) + minitest (6.0.6) drb (~> 2.0) prism (~> 1.5) msgpack (1.8.0) multi_json (1.20.1) - mustermann (3.1.0) + mustermann (4.0.0) mustermann-grape (1.1.0) mustermann (>= 1.0.0) net-http (0.9.1) uri (>= 0.11.1) - net-imap (0.6.3) + net-imap (0.6.4) date net-protocol net-ldap (0.20.0) @@ -865,23 +868,23 @@ GEM net-smtp (0.5.1) net-protocol nio4r (2.7.5) - nokogiri (1.19.2-aarch64-linux-gnu) + nokogiri (1.19.3-aarch64-linux-gnu) racc (~> 1.4) - nokogiri (1.19.2-aarch64-linux-musl) + nokogiri (1.19.3-aarch64-linux-musl) racc (~> 1.4) - nokogiri (1.19.2-arm-linux-gnu) + nokogiri (1.19.3-arm-linux-gnu) racc (~> 1.4) - nokogiri (1.19.2-arm-linux-musl) + nokogiri (1.19.3-arm-linux-musl) racc (~> 1.4) - nokogiri (1.19.2-arm64-darwin) + nokogiri (1.19.3-arm64-darwin) racc (~> 1.4) - nokogiri (1.19.2-x86_64-darwin) + nokogiri (1.19.3-x86_64-darwin) racc (~> 1.4) - nokogiri (1.19.2-x86_64-linux-gnu) + nokogiri (1.19.3-x86_64-linux-gnu) racc (~> 1.4) - nokogiri (1.19.2-x86_64-linux-musl) + nokogiri (1.19.3-x86_64-linux-musl) racc (~> 1.4) - oj (3.16.17) + oj (3.17.0) bigdecimal (>= 3.0) ostruct (>= 0.2) okcomputer (1.19.1) @@ -908,7 +911,7 @@ GEM actionview openproject-octicons (= 19.34.0) railties - openproject-primer_view_components (0.84.5) + openproject-primer_view_components (0.85.0) actionview (>= 7.2.0) activesupport (>= 7.2.0) openproject-octicons (>= 19.34.0) @@ -929,155 +932,155 @@ GEM opentelemetry-common (~> 0.20) opentelemetry-sdk (~> 1.10) opentelemetry-semantic_conventions - opentelemetry-helpers-mysql (0.5.0) + opentelemetry-helpers-mysql (0.6.0) opentelemetry-api (~> 1.7) opentelemetry-common (~> 0.21) - opentelemetry-helpers-sql (0.3.0) + opentelemetry-helpers-sql (0.4.0) opentelemetry-api (~> 1.7) - opentelemetry-helpers-sql-processor (0.4.0) + opentelemetry-helpers-sql-processor (0.5.0) opentelemetry-api (~> 1.0) opentelemetry-common (~> 0.21) - opentelemetry-instrumentation-action_mailer (0.6.1) + opentelemetry-instrumentation-action_mailer (0.8.0) opentelemetry-instrumentation-active_support (~> 0.10) - opentelemetry-instrumentation-action_pack (0.16.0) + opentelemetry-instrumentation-action_pack (0.18.0) opentelemetry-instrumentation-rack (~> 0.29) - opentelemetry-instrumentation-action_view (0.11.2) + opentelemetry-instrumentation-action_view (0.13.0) opentelemetry-instrumentation-active_support (~> 0.10) - opentelemetry-instrumentation-active_job (0.10.1) + opentelemetry-instrumentation-active_job (0.12.0) opentelemetry-instrumentation-base (~> 0.25) - opentelemetry-instrumentation-active_model_serializers (0.24.0) + opentelemetry-instrumentation-active_model_serializers (0.25.0) opentelemetry-instrumentation-active_support (>= 0.7.0) - opentelemetry-instrumentation-active_record (0.11.1) + opentelemetry-instrumentation-active_record (0.13.0) opentelemetry-instrumentation-base (~> 0.25) - opentelemetry-instrumentation-active_storage (0.3.1) + opentelemetry-instrumentation-active_storage (0.5.0) opentelemetry-instrumentation-active_support (~> 0.10) - opentelemetry-instrumentation-active_support (0.10.1) + opentelemetry-instrumentation-active_support (0.12.0) opentelemetry-instrumentation-base (~> 0.25) - opentelemetry-instrumentation-all (0.91.0) - opentelemetry-instrumentation-active_model_serializers (~> 0.24.0) - opentelemetry-instrumentation-anthropic (~> 0.4.0) - opentelemetry-instrumentation-aws_lambda (~> 0.6.0) - opentelemetry-instrumentation-aws_sdk (~> 0.11.0) - opentelemetry-instrumentation-bunny (~> 0.24.0) - opentelemetry-instrumentation-concurrent_ruby (~> 0.24.0) - opentelemetry-instrumentation-dalli (~> 0.29.2) - opentelemetry-instrumentation-delayed_job (~> 0.25.1) - opentelemetry-instrumentation-ethon (~> 0.28.0) - opentelemetry-instrumentation-excon (~> 0.28.0) - opentelemetry-instrumentation-faraday (~> 0.32.0) - opentelemetry-instrumentation-grape (~> 0.6.0) - opentelemetry-instrumentation-graphql (~> 0.31.2) - opentelemetry-instrumentation-grpc (~> 0.4.1) - opentelemetry-instrumentation-gruf (~> 0.5.0) - opentelemetry-instrumentation-http (~> 0.29.0) - opentelemetry-instrumentation-http_client (~> 0.28.0) - opentelemetry-instrumentation-httpx (~> 0.7.0) - opentelemetry-instrumentation-koala (~> 0.23.0) - opentelemetry-instrumentation-lmdb (~> 0.25.0) - opentelemetry-instrumentation-mongo (~> 0.25.0) - opentelemetry-instrumentation-mysql2 (~> 0.33.0) - opentelemetry-instrumentation-net_http (~> 0.28.0) - opentelemetry-instrumentation-pg (~> 0.35.0) - opentelemetry-instrumentation-que (~> 0.12.0) - opentelemetry-instrumentation-racecar (~> 0.6.1) - opentelemetry-instrumentation-rack (~> 0.30.0) - opentelemetry-instrumentation-rails (~> 0.40.0) - opentelemetry-instrumentation-rake (~> 0.5.0) - opentelemetry-instrumentation-rdkafka (~> 0.9.0) - opentelemetry-instrumentation-redis (~> 0.28.0) - opentelemetry-instrumentation-resque (~> 0.8.0) - opentelemetry-instrumentation-restclient (~> 0.27.0) - opentelemetry-instrumentation-ruby_kafka (~> 0.24.0) - opentelemetry-instrumentation-sidekiq (~> 0.28.1) - opentelemetry-instrumentation-sinatra (~> 0.29.0) - opentelemetry-instrumentation-trilogy (~> 0.67.0) - opentelemetry-instrumentation-anthropic (0.4.0) + opentelemetry-instrumentation-all (0.93.0) + opentelemetry-instrumentation-active_model_serializers (~> 0.25.0) + opentelemetry-instrumentation-anthropic (~> 0.5.0) + opentelemetry-instrumentation-aws_lambda (~> 0.7.0) + opentelemetry-instrumentation-aws_sdk (~> 0.12.0) + opentelemetry-instrumentation-bunny (~> 0.25.0) + opentelemetry-instrumentation-concurrent_ruby (~> 0.25.0) + opentelemetry-instrumentation-dalli (~> 0.30.0) + opentelemetry-instrumentation-delayed_job (~> 0.26.0) + opentelemetry-instrumentation-ethon (~> 0.29.0) + opentelemetry-instrumentation-excon (~> 0.29.0) + opentelemetry-instrumentation-faraday (~> 0.33.0) + opentelemetry-instrumentation-grape (~> 0.7.0) + opentelemetry-instrumentation-graphql (~> 0.32.0) + opentelemetry-instrumentation-grpc (~> 0.5.0) + opentelemetry-instrumentation-gruf (~> 0.6.0) + opentelemetry-instrumentation-http (~> 0.30.0) + opentelemetry-instrumentation-http_client (~> 0.29.0) + opentelemetry-instrumentation-httpx (~> 0.8.0) + opentelemetry-instrumentation-koala (~> 0.24.0) + opentelemetry-instrumentation-lmdb (~> 0.26.0) + opentelemetry-instrumentation-mongo (~> 0.26.0) + opentelemetry-instrumentation-mysql2 (~> 0.34.0) + opentelemetry-instrumentation-net_http (~> 0.29.0) + opentelemetry-instrumentation-pg (~> 0.36.0) + opentelemetry-instrumentation-que (~> 0.13.0) + opentelemetry-instrumentation-racecar (~> 0.7.0) + opentelemetry-instrumentation-rack (~> 0.31.0) + opentelemetry-instrumentation-rails (~> 0.42.0) + opentelemetry-instrumentation-rake (~> 0.6.0) + opentelemetry-instrumentation-rdkafka (~> 0.10.0) + opentelemetry-instrumentation-redis (~> 0.29.0) + opentelemetry-instrumentation-resque (~> 0.9.0) + opentelemetry-instrumentation-restclient (~> 0.28.0) + opentelemetry-instrumentation-ruby_kafka (~> 0.25.0) + opentelemetry-instrumentation-sidekiq (~> 0.29.0) + opentelemetry-instrumentation-sinatra (~> 0.30.0) + opentelemetry-instrumentation-trilogy (~> 0.68.0) + opentelemetry-instrumentation-anthropic (0.5.0) opentelemetry-instrumentation-base (~> 0.25) - opentelemetry-instrumentation-aws_lambda (0.6.0) + opentelemetry-instrumentation-aws_lambda (0.7.0) opentelemetry-instrumentation-base (~> 0.25) - opentelemetry-instrumentation-aws_sdk (0.11.0) + opentelemetry-instrumentation-aws_sdk (0.12.0) opentelemetry-instrumentation-base (~> 0.25) - opentelemetry-instrumentation-base (0.25.0) + opentelemetry-instrumentation-base (0.26.0) opentelemetry-api (~> 1.7) opentelemetry-common (~> 0.21) opentelemetry-registry (~> 0.1) - opentelemetry-instrumentation-bunny (0.24.0) + opentelemetry-instrumentation-bunny (0.25.0) opentelemetry-instrumentation-base (~> 0.25) - opentelemetry-instrumentation-concurrent_ruby (0.24.0) + opentelemetry-instrumentation-concurrent_ruby (0.25.0) opentelemetry-instrumentation-base (~> 0.25) - opentelemetry-instrumentation-dalli (0.29.2) + opentelemetry-instrumentation-dalli (0.30.0) opentelemetry-instrumentation-base (~> 0.25) - opentelemetry-instrumentation-delayed_job (0.25.1) + opentelemetry-instrumentation-delayed_job (0.26.0) opentelemetry-instrumentation-base (~> 0.25) - opentelemetry-instrumentation-ethon (0.28.0) + opentelemetry-instrumentation-ethon (0.29.0) opentelemetry-instrumentation-base (~> 0.25) - opentelemetry-instrumentation-excon (0.28.0) + opentelemetry-instrumentation-excon (0.29.1) opentelemetry-instrumentation-base (~> 0.25) - opentelemetry-instrumentation-faraday (0.32.0) + opentelemetry-instrumentation-faraday (0.33.0) opentelemetry-instrumentation-base (~> 0.25) - opentelemetry-instrumentation-grape (0.6.0) + opentelemetry-instrumentation-grape (0.7.0) opentelemetry-instrumentation-rack (~> 0.29) - opentelemetry-instrumentation-graphql (0.31.2) + opentelemetry-instrumentation-graphql (0.32.0) opentelemetry-instrumentation-base (~> 0.25) - opentelemetry-instrumentation-grpc (0.4.1) + opentelemetry-instrumentation-grpc (0.5.0) opentelemetry-instrumentation-base (~> 0.25) - opentelemetry-instrumentation-gruf (0.5.0) + opentelemetry-instrumentation-gruf (0.6.0) opentelemetry-instrumentation-base (~> 0.25) - opentelemetry-instrumentation-http (0.29.0) + opentelemetry-instrumentation-http (0.30.0) opentelemetry-instrumentation-base (~> 0.25) - opentelemetry-instrumentation-http_client (0.28.0) + opentelemetry-instrumentation-http_client (0.29.0) opentelemetry-instrumentation-base (~> 0.25) - opentelemetry-instrumentation-httpx (0.7.0) + opentelemetry-instrumentation-httpx (0.8.0) opentelemetry-instrumentation-base (~> 0.25) - opentelemetry-instrumentation-koala (0.23.0) + opentelemetry-instrumentation-koala (0.24.0) opentelemetry-instrumentation-base (~> 0.25) - opentelemetry-instrumentation-lmdb (0.25.0) + opentelemetry-instrumentation-lmdb (0.26.0) opentelemetry-instrumentation-base (~> 0.25) - opentelemetry-instrumentation-mongo (0.25.1) + opentelemetry-instrumentation-mongo (0.26.0) opentelemetry-instrumentation-base (~> 0.25) - opentelemetry-instrumentation-mysql2 (0.33.0) + opentelemetry-instrumentation-mysql2 (0.34.0) opentelemetry-helpers-mysql opentelemetry-helpers-sql opentelemetry-helpers-sql-processor opentelemetry-instrumentation-base (~> 0.25) - opentelemetry-instrumentation-net_http (0.28.0) + opentelemetry-instrumentation-net_http (0.29.0) opentelemetry-instrumentation-base (~> 0.25) - opentelemetry-instrumentation-pg (0.35.0) + opentelemetry-instrumentation-pg (0.36.0) opentelemetry-helpers-sql opentelemetry-helpers-sql-processor opentelemetry-instrumentation-base (~> 0.25) - opentelemetry-instrumentation-que (0.12.0) + opentelemetry-instrumentation-que (0.13.0) opentelemetry-instrumentation-base (~> 0.25) - opentelemetry-instrumentation-racecar (0.6.1) + opentelemetry-instrumentation-racecar (0.7.0) opentelemetry-instrumentation-base (~> 0.25) - opentelemetry-instrumentation-rack (0.30.0) + opentelemetry-instrumentation-rack (0.31.0) opentelemetry-instrumentation-base (~> 0.25) - opentelemetry-instrumentation-rails (0.40.0) - opentelemetry-instrumentation-action_mailer (~> 0.6) - opentelemetry-instrumentation-action_pack (~> 0.15) - opentelemetry-instrumentation-action_view (~> 0.11) - opentelemetry-instrumentation-active_job (~> 0.10) - opentelemetry-instrumentation-active_record (~> 0.11) - opentelemetry-instrumentation-active_storage (~> 0.3) - opentelemetry-instrumentation-active_support (~> 0.10) - opentelemetry-instrumentation-concurrent_ruby (~> 0.23) - opentelemetry-instrumentation-rake (0.5.0) + opentelemetry-instrumentation-rails (0.42.0) + opentelemetry-instrumentation-action_mailer (~> 0.7) + opentelemetry-instrumentation-action_pack (~> 0.17) + opentelemetry-instrumentation-action_view (~> 0.12) + opentelemetry-instrumentation-active_job (~> 0.11) + opentelemetry-instrumentation-active_record (~> 0.12) + opentelemetry-instrumentation-active_storage (~> 0.4) + opentelemetry-instrumentation-active_support (~> 0.11) + opentelemetry-instrumentation-concurrent_ruby (~> 0.25) + opentelemetry-instrumentation-rake (0.6.0) opentelemetry-instrumentation-base (~> 0.25) - opentelemetry-instrumentation-rdkafka (0.9.0) + opentelemetry-instrumentation-rdkafka (0.10.0) opentelemetry-instrumentation-base (~> 0.25) - opentelemetry-instrumentation-redis (0.28.0) + opentelemetry-instrumentation-redis (0.29.0) opentelemetry-instrumentation-base (~> 0.25) - opentelemetry-instrumentation-resque (0.8.0) + opentelemetry-instrumentation-resque (0.9.0) opentelemetry-instrumentation-base (~> 0.25) - opentelemetry-instrumentation-restclient (0.27.0) + opentelemetry-instrumentation-restclient (0.28.0) opentelemetry-instrumentation-base (~> 0.25) - opentelemetry-instrumentation-ruby_kafka (0.24.0) + opentelemetry-instrumentation-ruby_kafka (0.25.0) opentelemetry-instrumentation-base (~> 0.25) - opentelemetry-instrumentation-sidekiq (0.28.1) + opentelemetry-instrumentation-sidekiq (0.29.0) opentelemetry-instrumentation-base (~> 0.25) - opentelemetry-instrumentation-sinatra (0.29.0) + opentelemetry-instrumentation-sinatra (0.30.0) opentelemetry-instrumentation-rack (~> 0.29) - opentelemetry-instrumentation-trilogy (0.67.0) + opentelemetry-instrumentation-trilogy (0.68.0) opentelemetry-helpers-mysql opentelemetry-helpers-sql opentelemetry-helpers-sql-processor @@ -1096,17 +1099,17 @@ GEM optimist (3.2.1) os (1.1.4) ostruct (0.6.3) - ox (2.14.23) + ox (2.14.25) bigdecimal (>= 3.0) - pagy (43.5.1) + pagy (43.5.3) json uri yaml paper_trail (17.0.0) activerecord (>= 7.1) request_store (~> 1.4) - parallel (2.0.1) - parallel_tests (4.10.1) + parallel (2.1.0) + parallel_tests (5.7.0) parallel parser (3.3.11.1) ast (~> 2.4.1) @@ -1196,10 +1199,10 @@ GEM eventmachine_httpserver http_parser.rb (~> 0.8.0) multi_json - puma (7.2.0) + puma (8.0.1) nio4r (~> 2.0) - puma-plugin-statsd (2.7.0) - puma (>= 5.0, < 8) + puma-plugin-statsd (2.8.0) + puma (>= 5.0, < 9) raabro (1.4.0) racc (1.8.1) rack (2.2.23) @@ -1269,13 +1272,12 @@ GEM zeitwerk (~> 2.6) rainbow (3.1.1) rake (13.4.2) - rake-compiler-dock (1.11.0) + rake-compiler-dock (1.12.0) rb-fsevent (0.11.2) rb-inotify (0.11.1) ffi (~> 1.0) - rb_sys (0.9.126) - json (>= 2) - rake-compiler-dock (= 1.11.0) + rb_sys (0.9.127) + rake-compiler-dock (= 1.12.0) rbtrace (0.5.3) ffi (>= 1.0.6) msgpack (>= 0.4.3) @@ -1349,9 +1351,9 @@ GEM rubocop-ast (1.49.1) parser (>= 3.3.7.2) prism (~> 1.7) - rubocop-capybara (2.22.1) + rubocop-capybara (2.23.0) lint_roller (~> 1.1) - rubocop (~> 1.72, >= 1.72.1) + rubocop (~> 1.81) rubocop-factory_bot (2.28.0) lint_roller (~> 1.1) rubocop (~> 1.72, >= 1.72.1) @@ -1421,7 +1423,7 @@ GEM multi_json (~> 1.10) simpleidn (0.2.3) smart_properties (1.17.0) - spreadsheet (1.3.4) + spreadsheet (1.3.5) bigdecimal logger ruby-ole @@ -1477,7 +1479,7 @@ GEM turbo-rails (>= 1.3.0) tzinfo (2.0.6) concurrent-ruby (~> 1.0) - tzinfo-data (1.2026.1) + tzinfo-data (1.2026.2) tzinfo (>= 1.0.0) uber (0.1.0) unicode-display_width (3.2.0) @@ -1493,7 +1495,7 @@ GEM public_suffix vcr (6.4.0) vernier (1.10.0) - view_component (4.6.0) + view_component (4.9.0) actionview (>= 7.1.0) activesupport (>= 7.1.0) concurrent-ruby (~> 1) @@ -1554,7 +1556,7 @@ GEM railties yabeda (~> 0.8) yaml (0.4.0) - yard (0.9.42) + yard (0.9.43) zeitwerk (2.7.5) PLATFORMS @@ -1587,7 +1589,6 @@ DEPENDENCIES aws-sdk-s3 (~> 1.217) axe-core-rspec bcrypt (~> 3.1.22) - bootsnap (~> 1.23.0) brakeman (~> 8.0.1) browser (~> 6.2.0) budgets! @@ -1598,13 +1599,13 @@ DEPENDENCIES carrierwave (~> 2.2.6) carrierwave_direct (~> 3.0.0) climate_control - closure_tree (~> 9.6.1) + closure_tree (~> 9.6.2) colored2 commonmarker (~> 2.8.0) compare-xml (~> 0.66) connection_pool (~> 3.0.2) costs! - counter_culture (~> 3.11) + counter_culture (~> 3.13) csv (~> 3.3) cuprite (~> 0.17.0) daemons @@ -1631,7 +1632,7 @@ DEPENDENCIES friendly_id (~> 5.6.0) fuubar (~> 2.5.0) globalid (~> 1.3) - good_job (~> 4.14.2) + good_job (~> 4.18.2) google-apis-gmail_v1 googleauth grape (~> 3.2.0) @@ -1657,7 +1658,7 @@ DEPENDENCIES mail (= 2.9.0) markly (~> 0.15) matrix (~> 0.4.3) - mcp (~> 0.10.0) + mcp (~> 0.14.0) md_to_pdf! meta-tags (~> 2.23.0) mini_magick (~> 5.3.0) @@ -1665,7 +1666,7 @@ DEPENDENCIES my_page! net-ldap (~> 0.20.0) nokogiri (~> 1.19.2) - oj (~> 3.16.16) + oj (~> 3.17.0) okcomputer (~> 1.19.1) omniauth! omniauth-openid-connect! @@ -1688,9 +1689,10 @@ DEPENDENCIES openproject-octicons (~> 19.34.0) openproject-octicons_helper (~> 19.34.0) openproject-openid_connect! - openproject-primer_view_components (~> 0.84.5) + openproject-primer_view_components (~> 0.85.0) openproject-recaptcha! openproject-reporting! + openproject-resource_management! openproject-storages! openproject-team_planner! openproject-token (~> 8.8.2) @@ -1699,13 +1701,13 @@ DEPENDENCIES openproject-wikis! openproject-xls_export! opentelemetry-exporter-otlp (~> 0.33.0) - opentelemetry-instrumentation-all (~> 0.91.0) + opentelemetry-instrumentation-all (~> 0.93.0) opentelemetry-sdk (~> 1.10) overviews! ox pagy paper_trail (~> 17.0.0) - parallel_tests (~> 4.0) + parallel_tests (~> 5.7) pdf-inspector (~> 1.2) pg (~> 1.6.2) plaintext (~> 0.3.7) @@ -1715,7 +1717,7 @@ DEPENDENCIES pry-rails (~> 0.3.6) pry-rescue (~> 1.6.0) puffing-billy (~> 4.0.0) - puma (~> 7.1) + puma (~> 8.0) puma-plugin-statsd (~> 2.7) rack-attack (~> 6.8.0) rack-cors (~> 2.0.2) @@ -1783,7 +1785,7 @@ DEPENDENCIES validate_url vcr vernier - view_component (~> 4.6.0) + view_component (~> 4.9.0) warden (~> 1.2) warden-basic_auth (~> 0.2.1) webmock (~> 3.26) @@ -1829,22 +1831,21 @@ CHECKSUMS auto_strip_attributes (2.6.0) sha256=a7e2e0cf744de2bcd947fd68014220702bcc88c81274c1cd9ce6f7316aae39b0 awesome_nested_set (3.9.0) sha256=3ce99e816550f97f4de118e621630070aacf24928b920fe4a68846578a8daaed aws-eventstream (1.4.0) sha256=116bf85c436200d1060811e6f5d2d40c88f65448f2125bc77ffce5121e6e183b - aws-partitions (1.1238.0) sha256=fa3d1bdea6d7e7619e8cee22ebce8a569d2119296d3ec8c5f9b9b7c81fb0602c - aws-sdk-core (3.244.0) sha256=3e458c078b0c5bdee95bc370c3a483374b3224cf730c1f9f0faf849a5d9a18ea - aws-sdk-kms (1.123.0) sha256=d405f37e82f8fa32045ca8980be266c0b45b37aaf2012afe0254321a1e811f20 - aws-sdk-s3 (1.219.0) sha256=6a755d7377978525758b3c29185ca6a10128ce2b07555ca37c4549de10c2f1c7 + aws-partitions (1.1242.0) sha256=58886ab5484ccf9287a8d55e603c3c0fb004241dfb4c0c7690b67d18e4c39352 + aws-sdk-core (3.246.0) sha256=393864ec8948560e69fcccc2e4d256b40c7028eb98930608dd295279e3c4ddcc + aws-sdk-kms (1.124.0) sha256=40d00ab706d7e49fd620270bd0dcb546f266295abdd49b54fec2611e2a41f37c + aws-sdk-s3 (1.220.0) sha256=237fda5e6ac7ecdd9c848e27187bfdc370edad5c5a141aeec389fb450fa28c7c aws-sdk-sns (1.113.0) sha256=15fe37d010e86f4c28b4c2f2133c463ce5c14189ec3673a1f43c30dfee511b0f aws-sigv4 (1.12.1) sha256=6973ff95cb0fd0dc58ba26e90e9510a2219525d07620c8babeb70ef831826c00 - axe-core-api (4.11.2) sha256=c05c342941e0c29f17b00268302457da9e7b644f753c8bbab274d0083319344f - axe-core-rspec (4.11.2) sha256=50c5a5f1b4b991da6857c5df4d6645dfac285a84c7f7f904a6ef23e53f4895eb + axe-core-api (4.11.3) sha256=f5f6e802743644a50e2d8ef24c22aefbb6df49dd169024ff0144b47f37e652ba + axe-core-rspec (4.11.3) sha256=246c8d443517354e9a9962a10a8cc456bcef4c617516c0924b051a9af9d7da99 axiom-types (0.1.1) sha256=c1ff113f3de516fa195b2db7e0a9a95fd1b08475a502ff660d04507a09980383 base64 (0.3.0) sha256=27337aeabad6ffae05c265c450490628ef3ebd4b67be58257393227588f5a97b bcrypt (3.1.22) sha256=1f0072e88c2d705d94aff7f2c5cb02eb3f1ec4b8368671e19112527489f29032 benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c better_html (2.2.0) sha256=e68ab66ab09696b708333bbf35e8aa3c107500ba7892f528e2111624bdd8cf76 - bigdecimal (4.1.1) sha256=1c09efab961da45203c8316b0cdaec0ff391dfadb952dd459584b63ebf8054ca + bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd bindata (2.5.1) sha256=53186a1ec2da943d4cb413583d680644eb810aacbf8902497aac8f191fad9e58 - bootsnap (1.23.0) sha256=c1254f458d58558b58be0f8eb8f6eec2821456785b7cdd1e16248e2020d3f214 brakeman (8.0.4) sha256=7bf921fa9638544835df9aa7b3e720a9a72c0267f34f92135955edd80d4dcf6f browser (6.2.0) sha256=281d5295788825c9396427c292c2d2be0a5c91875c93c390fde6e5d61a5ace2d budgets (1.0.0) @@ -1859,7 +1860,7 @@ CHECKSUMS cgi (0.5.1) sha256=e93fcafc69b8a934fe1e6146121fa35430efa8b4a4047c4893764067036f18e9 childprocess (5.1.0) sha256=9a8d484be2fd4096a0e90a0cd3e449a05bc3aa33f8ac9e4d6dcef6ac1455b6ec climate_control (1.2.0) sha256=36b21896193fa8c8536fa1cd843a07cf8ddbd03aaba43665e26c53ec1bd70aa5 - closure_tree (9.6.1) sha256=f6af11243dea13d888788ffb0fd28014bd1077abe3a4233ea1e7044e52fc6377 + closure_tree (9.6.2) sha256=ae7a3f0a8196313d8fcc33a05f2a0eaad671fa93ea1a1b1c55534c7538b307d2 coderay (1.1.3) sha256=dc530018a4684512f8f38143cd2a096c9f02a1fc2459edcfe534787a7fc77d4b coercible (1.0.0) sha256=5081ad24352cc8435ce5472bc2faa30260c7ea7f2102cc6a9f167c4d9bffaadc color_conversion (0.1.2) sha256=99bea5fa412e1527a11389975aa6ad445ff8528ebae202c11d08c45ea2b94c96 @@ -1877,10 +1878,10 @@ CHECKSUMS cookiejar (0.3.4) sha256=11b16acfc4baf7a0f463c21a6212005e04e25f5554d4d9f24d97f3492dfda0df cose (1.3.1) sha256=d5d4dbcd6b035d513edc4e1ab9bc10e9ce13b4011c96e3d1b8fe5e6413fd6de5 costs (1.0.0) - counter_culture (3.13.0) sha256=a2cde20642ddd27aec9ff0c09b73fa5b4fd729da368079e67c177bface3148bf + counter_culture (3.13.1) sha256=c297961933d9a9b96683fc298d68fde44039eca7c5876a2b05c3b180fe1c6328 crack (1.0.1) sha256=ff4a10390cd31d66440b7524eb1841874db86201d5b70032028553130b6d4c7e crass (1.0.6) sha256=dc516022a56e7b3b156099abc81b6d2b08ea1ed12676ac7a5657617f012bd45d - css_parser (2.0.0) sha256=af5c759a127b125b635006a6c6c2e05b96a1ebdeec21b3c415fd5f09ec714a0a + css_parser (2.1.0) sha256=bfb7c9cf3896426b53337e34b4ad391c3cfe8c2f2c839e72f2cdccf615fb5247 csv (3.3.5) sha256=6e5134ac3383ef728b7f02725d9872934f523cb40b961479f69cf3afa6c8e73f cuprite (0.17) sha256=b140d5dc70d08b97ad54bcf45cd95d0bd430e291e9dffe76fff851fddd57c12b daemons (1.4.1) sha256=8fc76d76faec669feb5e455d72f35bd4c46dc6735e28c420afb822fac1fa9a1d @@ -1903,7 +1904,7 @@ CHECKSUMS dry-inflector (1.3.1) sha256=7fb0c2bb04f67638f25c52e7ba39ab435d922a3a5c3cd196120f63accb682dcc dry-initializer (3.2.0) sha256=37d59798f912dc0a1efe14a4db4a9306989007b302dcd5f25d0a2a20c166c4e3 dry-logic (1.6.0) sha256=da6fedbc0f90fc41f9b0cc7e6f05f5d529d1efaef6c8dcc8e0733f685745cea2 - dry-monads (1.9.0) sha256=9348a67b5c862c7a876342dbd94737fdf3fb3c17978382cf6801a85b27215816 + dry-monads (1.10.0) sha256=68c90d77617c6ce88d60704fc3b233907e6320974152fe75ad947f968006ca39 dry-schema (1.16.0) sha256=cd3aaeabc0f1af66ec82a29096d4c4fb92a0a58b9dae29a22b1bbceb78985727 dry-types (1.9.1) sha256=baebeecdb9f8395d6c9d227b62011279440943e3ef2468fe8ccc1ba11467f178 dry-validation (1.11.1) sha256=70900bb5a2d911c8aab566d3e360c6bff389b8bf92ea8e04885ce51c41ff8085 @@ -1937,9 +1938,9 @@ CHECKSUMS ffi (1.17.4-x86_64-linux-gnu) sha256=9d3db14c2eae074b382fa9c083fe95aec6e0a1451da249eab096c34002bc752d ffi (1.17.4-x86_64-linux-musl) sha256=3fdf9888483de005f8ef8d1cf2d3b20d86626af206cbf780f6a6a12439a9c49e flamegraph (0.9.5) sha256=a683020637ffa0e14a72640fa41babf14d926bfeaed87e31907cfd06ab2de8dc - fog-aws (3.33.1) sha256=20c7336ed978be6cbf2765844c53f30676288af98f1cb49945aa7b7b45a799a5 + fog-aws (3.33.2) sha256=bd9c1b045f19daad8942d65d7e9c9c7c1cd144beeabde63e34df7c58a9bb0f5b fog-core (2.6.0) sha256=3fe08aa83a23cddce42f4ba412040c08f890d7ff04c175c0ee59119371245be6 - fog-json (1.2.0) sha256=dd4f5ab362dbc72b687240bba9d2dd841d5dfe888a285797533f85c03ea548fe + fog-json (1.3.0) sha256=8c2e4feb221c14f92ceeffb0aa5c8b6e8dd7c614a9141dfe7905f2dffebea217 fog-xml (0.1.5) sha256=52b9fea10701461dd3eaf9d9839702169b418dbbf50426786b9b74fade373bd6 formatador (1.2.3) sha256=19fa898133c2c26cdbb5d09f6998c1e137ad9427a046663e55adfe18b950d894 friendly_id (5.6.0) sha256=28e221cd53fbd21586321164c1c6fd0c9ba8dde13969cb2363679f44726bb0c3 @@ -1948,9 +1949,9 @@ CHECKSUMS fuubar (2.5.1) sha256=b272a7804b282661c7fab583a3764f92543cb482c365ae39c685cd218fdd4880 glob (0.4.0) sha256=893dc9e2d24abe13dda907ce0cda576f680ff382f2a6cf9e543f98ecbe29238c globalid (1.3.0) sha256=05c639ad6eb4594522a0b07983022f04aa7254626ab69445a0e493aa3786ff11 - good_job (4.14.2) sha256=f38f164346aee724bbfbdaed73e1a0bd382cc6354146029e0adcc619245ab6d1 + good_job (4.18.2) sha256=7e557a15865fc7b7ad4ab71644cf1d4189a2a1869d3b381e5e88741c540beca6 google-apis-core (1.0.2) sha256=ba4579aaadc902d6cc7bc8db88f566ab00f5e31ea87ab41e9f9a032c470f2629 - google-apis-gmail_v1 (0.47.0) sha256=3064434b6da55b85e2828ce4bb0f4d04e8cfd187a4ab262ceb1dcb01f98e49ef + google-apis-gmail_v1 (0.48.0) sha256=561534bb3d93610032720d0459153c432dc8e47e7096a1250fbe0ee8dcc6540c google-cloud-env (2.3.1) sha256=0faac01eb27be78c2591d64433663b1a114f8f7af55a4f819755426cac9178e7 google-logging-utils (0.2.0) sha256=675462b4ea5affa825a3442694ca2d75d0069455a1d0956127207498fca3df7b google-protobuf (4.34.1) sha256=347181542b8d659c60f028fa3791c9cccce651a91ad27782dbc5c5e374796cdc @@ -1962,7 +1963,7 @@ CHECKSUMS google-protobuf (4.34.1-x86_64-linux-musl) sha256=8c0e91436fbe504ffc64f0bd621f2e69adbcce8ed2c58439d7a21117069cfdd7 googleapis-common-protos-types (1.22.0) sha256=f97492b77bd6da0018c860d5004f512fe7cd165554d7019a8f4df6a56fbfc4c7 googleauth (1.16.2) sha256=15009502e2e38af71948cda918f230e27d327f6882a1e47967a5a4664930a638 - grape (3.2.0) sha256=2aeeb020e5605f6314ce8ca8d30d90c9ee8f26bc959c5b34db7b8486764e4d2c + grape (3.2.1) sha256=448072f55904e5a4dca2e3781f0a373942514be65402cafb6177f5bc73db1b94 grape_logging (3.0.0) sha256=7b62d984ce96df15d120508668debe307e6a59ac1c511f1d9b5f3b4bea793e13 gravatar_image_tag (1.2.0) sha256=eb5630fea846b711e713b934a0178fb9785f02f4eb9ced8d6faa4d537c40fdcf grids (1.0.0) @@ -1988,11 +1989,11 @@ CHECKSUMS inline_svg (1.10.0) sha256=5b652934236fd9f8adc61f3fd6e208b7ca3282698b19f28659971da84bf9a10f interception (0.5) sha256=a53818d636752a8df90d8c1bb2f7b6e13a7b828543cb02b50fbde98b849d7907 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc - irb (1.17.0) sha256=168c4ddb93d8a361a045c41d92b2952c7a118fa73f23fe14e55609eb7a863aae + irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 iso8601 (0.13.0) sha256=298c2b15b7be5fa95a1372813d36a2257656cd8e906dfbc1f5cb409851425aa2 jmespath (1.6.2) sha256=238d774a58723d6c090494c8879b5e9918c19485f7e840f2c1c7532cf84ebcb1 - job-iteration (1.13.0) sha256=3300844e81309fbd06fd2310d6aa8e1f43bf30fe03a3fc5067580b62f456b7e1 - json (2.19.3) sha256=289b0bb53052a1fa8c34ab33cc750b659ba14a5c45f3fcf4b18762dc67c78646 + job-iteration (1.13.1) sha256=af4d5ac624c35ed2f32ed78de92d4673f0a93212105b96d46877b8422e3ff5a3 + json (2.19.5) sha256=218a18553e4801d579ca7e0f5bc72bafd776d7397238a1fb4e74db5b0a812c59 json-jwt (1.17.0) sha256=6ff99026b4c54281a9431179f76ceb81faa14772d710ef6169785199caadc4cc json-schema (6.2.0) sha256=e8bff46ed845a22c1ab2bd0d7eccf831c01fe23bb3920caa4c74db4306813666 json_schemer (2.5.0) sha256=2f01fb4cce721a4e08dd068fc2030cffd0702a7f333f1ea2be6e8991f00ae396 @@ -2014,37 +2015,37 @@ CHECKSUMS marcel (1.0.4) sha256=0d5649feb64b8f19f3d3468b96c680bae9746335d02194270287868a661516a4 markly (0.16.0) sha256=6f70d79e385b1efc9e171f74c81628826259039fe6c778e03c3924c71dac5511 matrix (0.4.3) sha256=a0d5ab7ddcc1973ff690ab361b67f359acbb16958d1dc072b8b956a286564c5b - mcp (0.10.0) sha256=09b9231eb16dff75cc7b8a95817c8acfcf4d1cab8d34f350671e43e765242b57 + mcp (0.14.0) sha256=9e3ca2e6b5e568739e8c07090982829896f2e4d884ffbb668d06f0fe758489e1 md_to_pdf (0.2.6) messagebird-rest (5.0.0) sha256=da4cc1efba3d5e4aa021fad07426c2cb6b326ce5670da5104bb8f6056a39d59c meta-tags (2.23.0) sha256=ffe78b5bee398de4ff5ac3316f5a786049538a651643b8476def06c3acc762c1 method_source (1.1.0) sha256=181301c9c45b731b4769bc81e8860e72f9161ad7d66dd99103c9ab84f560f5c5 mime-types (3.7.0) sha256=dcebf61c246f08e15a4de34e386ebe8233791e868564a470c3fe77c00eed5e56 - mime-types-data (3.2026.0407) sha256=909395cf029731355136527aa11bf58ea0655ee782359ccbf32c66238a8cadb3 + mime-types-data (3.2026.0414) sha256=461c4c655373a44bd6c5fe54bcf5b7776026ea96e808144b1ec465c4b99148cc mini_magick (5.3.1) sha256=29395dfd76badcabb6403ee5aff6f681e867074f8f28ce08d78661e9e4a351c4 mini_mime (1.1.5) sha256=8681b7e2e4215f2a159f9400b5816d85e9d8c6c6b491e96a12797e798f8bccef - minitest (6.0.4) sha256=df1304664589d40f46089247fdc451f866b0ce0d7cae1457a15fc1eb7d48dca1 + minitest (6.0.6) sha256=153ea36d1d987a62942382b61075745042a2b3123b1cd48f4c3675af9cc7d6f1 msgpack (1.8.0) sha256=e64ce0212000d016809f5048b48eb3a65ffb169db22238fb4b72472fecb2d732 multi_json (1.20.1) sha256=2f3934e805cc45ef91b551a1f89d0e9191abd06a5e04a2ef09a6a036c452ca6d - mustermann (3.1.0) sha256=e73b006ffb7f743eae9303a7d6622e0dd9e1e5522718a2139c006085878768b9 + mustermann (4.0.0) sha256=91f67411bb208d1d93c41e6128cb3b0f8ddd9ec7c45966f1007e1c43c08040d7 mustermann-grape (1.1.0) sha256=8d258a986004c8f01ce4c023c0b037c168a9ed889cf5778068ad54398fa458c5 my_page (1.0.0) net-http (0.9.1) sha256=25ba0b67c63e89df626ed8fac771d0ad24ad151a858af2cc8e6a716ca4336996 - net-imap (0.6.3) sha256=9bab75f876596d09ee7bf911a291da478e0cd6badc54dfb82874855ccc82f2ad + net-imap (0.6.4) sha256=9a5598c67a3022c284d98430ef1d4948e7dbdb62596f61081ea8ca933270a02b net-ldap (0.20.0) sha256=b2080b350753a9ac4930869ded8e61a1d2151c01e03b0bf07b4675cbd9ce5372 net-pop (0.1.2) sha256=848b4e982013c15b2f0382792268763b748cce91c9e91e36b0f27ed26420dff3 net-protocol (0.2.2) sha256=aa73e0cba6a125369de9837b8d8ef82a61849360eba0521900e2c3713aa162a8 net-smtp (0.5.1) sha256=ed96a0af63c524fceb4b29b0d352195c30d82dd916a42f03c62a3a70e5b70736 nio4r (2.7.5) sha256=6c90168e48fb5f8e768419c93abb94ba2b892a1d0602cb06eef16d8b7df1dca1 - nokogiri (1.19.2-aarch64-linux-gnu) sha256=c34d5c8208025587554608e98fd88ab125b29c80f9352b821964e9a5d5cfbd19 - nokogiri (1.19.2-aarch64-linux-musl) sha256=7f6b4b0202d507326841a4f790294bf75098aef50c7173443812e3ac5cb06515 - nokogiri (1.19.2-arm-linux-gnu) sha256=b7fa1139016f3dc850bda1260988f0d749934a939d04ef2da13bec060d7d5081 - nokogiri (1.19.2-arm-linux-musl) sha256=61114d44f6742ff72194a1b3020967201e2eb982814778d130f6471c11f9828c - nokogiri (1.19.2-arm64-darwin) sha256=58d8ea2e31a967b843b70487a44c14c8ba1866daa1b9da9be9dbdf1b43dee205 - nokogiri (1.19.2-x86_64-darwin) sha256=7d9af11fda72dfaa2961d8c4d5380ca0b51bc389dc5f8d4b859b9644f195e7a4 - nokogiri (1.19.2-x86_64-linux-gnu) sha256=fa8feca882b73e871a9845f3817a72e9734c8e974bdc4fbad6e4bc6e8076b94f - nokogiri (1.19.2-x86_64-linux-musl) sha256=93128448e61a9383a30baef041bf1f5817e22f297a1d400521e90294445069a8 - oj (3.16.17) sha256=a6688f666143632a1ef11a8d80c8d631b1112733c7da698ffafa4a22a8488244 + nokogiri (1.19.3-aarch64-linux-gnu) sha256=46b89e5d7b9e844c2ee360794240c6ea2a4e6fa0c5892a4ed487db621224b639 + nokogiri (1.19.3-aarch64-linux-musl) sha256=8392dfdcd21be7a94dbbe9ccc138dea01b97b24cb2dc02a114ca98bfb1d9a0b7 + nokogiri (1.19.3-arm-linux-gnu) sha256=3919d5ffc334ad778a4a9eb88fda7dcb8b1fb58c8a52ac640c6dcd2f038e774f + nokogiri (1.19.3-arm-linux-musl) sha256=9ce1cb6346bb9c67b1550eb537aa183ead91e4b6eadb2f36ade02d8dd2a79fb6 + nokogiri (1.19.3-arm64-darwin) sha256=71b9bd424b1b7abc18b05052a1a3cfd3627abdca62be280854cc411791357e42 + nokogiri (1.19.3-x86_64-darwin) sha256=77f3fba57d46c53ab31e62fc6c28f705109d1bf6264356c76f132b2be5728d4d + nokogiri (1.19.3-x86_64-linux-gnu) sha256=2f5078620fe12e83669b5b17311b32532a8153d02eee7ad06948b926d6080976 + nokogiri (1.19.3-x86_64-linux-musl) sha256=248c906d2166eca5efb56d52fdee5f9a1f51d69a72e2b64fdac647b4ce39ea3f + oj (3.17.0) sha256=5684b2127fb70e650fae90df521b91336ff8e55e2e1011ed80eb0283beac5360 okcomputer (1.19.1) sha256=7df770e768434816d228407f0786563827cbf34cb379933578829720cb4f1e77 omniauth (1.9.2) omniauth-openid-connect (0.5.0) @@ -2070,9 +2071,10 @@ CHECKSUMS openproject-octicons (19.34.0) sha256=4efe8a58a2d8051b79c94b37e9a7f04fd242a4da12b50f027c3c7f441a042adc openproject-octicons_helper (19.34.0) sha256=12eb7af2214e21631369c76464ebaa30de788e1074c4b3bd0fcef7e74cb9edb4 openproject-openid_connect (1.0.0) - openproject-primer_view_components (0.84.5) sha256=307ad2135cfb283b2d1da354e545bd3e3f1dda43158f020c89ff4641e441fe86 + openproject-primer_view_components (0.85.0) sha256=16bc8358ef600f0465488a2e3c86991a9c69ed84580bd450c2dbec6f268eeaca openproject-recaptcha (1.0.0) openproject-reporting (1.0.0) + openproject-resource_management (1.0.0) openproject-storages (1.0.0) openproject-team_planner (1.0.0) openproject-token (8.8.2) sha256=081cbff7269d92a82fa1d63e9e09c87b70d47d7aefadcbb80d1e7368bc2cf096 @@ -2085,55 +2087,55 @@ CHECKSUMS opentelemetry-api (1.9.0) sha256=d24065dd26583babd8d498d38ea35f74dfa193fb7102512e6e161649440079fb opentelemetry-common (0.24.0) sha256=f1647b233b8ac667feeb74d66a65b702008d9ab55aae825c220b4fe2c14fa773 opentelemetry-exporter-otlp (0.33.0) sha256=6e9ce38e393c7eb9aea3fb57b128174a0066767bf495f4fd9e63d7607e0b2ad3 - opentelemetry-helpers-mysql (0.5.0) sha256=8c2a5d5428aec271a7d2e25c158d06d4d8a914143b5004305964d1fcbc176eca - opentelemetry-helpers-sql (0.3.0) sha256=4bb08017d6a16dd41c4d1c53c7fd30f9c5bb691195d8b458933724627b3f37f9 - opentelemetry-helpers-sql-processor (0.4.0) sha256=ec238d7a2887219bd247dc31d0eb8a1a03d414a899963b68e14bb9f4d18b23f4 - opentelemetry-instrumentation-action_mailer (0.6.1) sha256=8384866bdb066ae14b9a1fe686ffaf1f23468326a35af64390c0395fcd471057 - opentelemetry-instrumentation-action_pack (0.16.0) sha256=f4d54806b96dff89af31fb971fe5b1f79dd41fcc46489ed7c5340a47ee12a7f9 - opentelemetry-instrumentation-action_view (0.11.2) sha256=e6a099015d672dabc19993d6fca99ef1e7210361ef21549a6e2076a67719fafc - opentelemetry-instrumentation-active_job (0.10.1) sha256=aea1311224c20d064a8f218a44299171152dc36eeb531b9eba84bed8b3942a89 - opentelemetry-instrumentation-active_model_serializers (0.24.0) sha256=8fe81e44167d17e45d9acfa588d20140c7640c323e58aca99e266de1bb3fce15 - opentelemetry-instrumentation-active_record (0.11.1) sha256=1b083f34eea0449f8d6f4370b3fb4b935757fac6e4e538e67bb98211809e7c92 - opentelemetry-instrumentation-active_storage (0.3.1) sha256=f89b0fef54921f17c0c4c38a6e0926d29afabd0ac98436fcdbb8bde85dfde89e - opentelemetry-instrumentation-active_support (0.10.1) sha256=82ea98367158797e33c6de96581f10aa4fe8adf0ebec832dcff5fd04c59bc57d - opentelemetry-instrumentation-all (0.91.0) sha256=b077ce47da94e70e167157206034405f37ed0a4641d12ca8180a4b655c5727e2 - opentelemetry-instrumentation-anthropic (0.4.0) sha256=0040e0d97e9a66ef32cc35612ff28d7310d4ec1cd2f949805a2017f00f4d2de0 - opentelemetry-instrumentation-aws_lambda (0.6.0) sha256=1a3161393cfe9bc9eddd81a0668d076c38a0a2c3d5df40e95d02f5a8fcd3334c - opentelemetry-instrumentation-aws_sdk (0.11.0) sha256=67a21e754ddf51e2bb8c3e46e116aa9158d8db800f34c2a9b1e0da5a6ca911e3 - opentelemetry-instrumentation-base (0.25.0) sha256=642a3a7f08354e6e969423327a4fa67ed2cca7ac6fe5ee09e55b17d1c576da27 - opentelemetry-instrumentation-bunny (0.24.0) sha256=1ec484e48a5f42a1d0c33e8e6bc7e9e78dd80f3ed9d63520b8a22ba564aa2585 - opentelemetry-instrumentation-concurrent_ruby (0.24.0) sha256=229bd8b72000c59de693609bb637b8a9114992f5e0ab03730d7fd7ef91f7d1d2 - opentelemetry-instrumentation-dalli (0.29.2) sha256=21b82772ced1529288c7f08285d44d5690de11f3d275e24558a062f39a270f4f - opentelemetry-instrumentation-delayed_job (0.25.1) sha256=47f35b10d2bfd9ac7c2bbbe10dea095a2e25db2a84f5351860ead969d180c3ec - opentelemetry-instrumentation-ethon (0.28.0) sha256=5ab5eb0733fec27300047f1f0906453171732c663d0484968ce0582026256b2d - opentelemetry-instrumentation-excon (0.28.0) sha256=00bfd0bce489d5f924ab81c440098e99b6e4234f8968f942ce0753e2a326b99b - opentelemetry-instrumentation-faraday (0.32.0) sha256=21f78858c4d8986a9b89a330bc1f6ef03007d6893d009865b4539269f686cdfd - opentelemetry-instrumentation-grape (0.6.0) sha256=bc6f0ac3416b42bf096032ab79193326d6b50b12e8ccbcf028a78a4df492d057 - opentelemetry-instrumentation-graphql (0.31.2) sha256=a4455f225427f8f9058247c8c0b351b8932567913c35ef049f7958801d401b1f - opentelemetry-instrumentation-grpc (0.4.1) sha256=5ffa2bb1d5ec69bcd1fe23e1d8c1a563a00351ce052fe9d76885cc43f21ebc87 - opentelemetry-instrumentation-gruf (0.5.0) sha256=ee21be36e312e71b847c9a87168225625890121140a364b68d3668e0df58dacd - opentelemetry-instrumentation-http (0.29.0) sha256=c2981f22dac791f1768595c08b5338d29ad57bd98e23e9a2c0df7a1dc54122f1 - opentelemetry-instrumentation-http_client (0.28.0) sha256=f6dadfed166d75d5632ae0b3521ed6a491080972923031489b85711e6d58fcb8 - opentelemetry-instrumentation-httpx (0.7.0) sha256=3928185b62066cf6d8fe3b011dc5587ba53b09a5c7b573e36481b8d713d6aa03 - opentelemetry-instrumentation-koala (0.23.0) sha256=8f324b50a2a64fd4994bb2b105a4cb0c80b64ec05cf5487d2daa906c650bc6f9 - opentelemetry-instrumentation-lmdb (0.25.0) sha256=1e4d66d583ea242d4f72051062971f5af1ea353484d224abbd0aabdd1ce5f5cb - opentelemetry-instrumentation-mongo (0.25.1) sha256=b66a8544bb0c60ab032ecd224333d50138f2b280d2d394c508d2ff8ca3fb94b9 - opentelemetry-instrumentation-mysql2 (0.33.0) sha256=b49b7957d5eef59e046e73be3ca370518965d61495745b4cb7ece3ef5470bcf9 - opentelemetry-instrumentation-net_http (0.28.0) sha256=63b00c1c8fcfba15cd293ece8383d19bbc35e9b5cc04056b3e95799be11026f5 - opentelemetry-instrumentation-pg (0.35.0) sha256=65a6e78bd45282b56021f1ee1b88b9fd318abf6812c32bd740465e6b9997aad4 - opentelemetry-instrumentation-que (0.12.0) sha256=3b7a84341f6af5a04f8c57860aeba4033f87c855d40c611a2fc40dde849944fb - opentelemetry-instrumentation-racecar (0.6.1) sha256=833f6611906fb661f577e841d4ec52549474d32b4e8edea8048162348d35b845 - opentelemetry-instrumentation-rack (0.30.0) sha256=30a54f7b44d4b91839622a20eb0b25a7c47084b37c2b03cfc149bfc4ef62303c - opentelemetry-instrumentation-rails (0.40.0) sha256=f794d477e8b48d9167ac1dbaf71dfc88e2a5647f76394cab7d1dfc6d5217b983 - opentelemetry-instrumentation-rake (0.5.0) sha256=fa6bd019078975ac8a67eaea06294e4fe6707e6770d8ced88d74dc573b0a01ef - opentelemetry-instrumentation-rdkafka (0.9.0) sha256=f3beb56828c584d7d91a2c46f6e5a2ef82289b1d4445b1eb5bc13b80ab6aca89 - opentelemetry-instrumentation-redis (0.28.0) sha256=8721957d1c527dd22bd564d17f3a8db252081abb302be189511282d023693900 - opentelemetry-instrumentation-resque (0.8.0) sha256=559edde9d6273dd757ae5149ed36e26d147b63028d084121203f51c8cff805e5 - opentelemetry-instrumentation-restclient (0.27.0) sha256=1abe208f5f43eff8648fa3ec3393c021bcbf30512f0fd69e4edbe8345ac3f899 - opentelemetry-instrumentation-ruby_kafka (0.24.0) sha256=257e891f4ce630ba3e0669408d497b44afcc493cd49aed09343d5a51fa8952c2 - opentelemetry-instrumentation-sidekiq (0.28.1) sha256=abc85d62996a5362e7a9fd7af9f6c709d01ce04795514d12fee5126335ae97ae - opentelemetry-instrumentation-sinatra (0.29.0) sha256=08595fec08d198df581d96aceb4b27998b84431e44a679950af7d00ab6559bdb - opentelemetry-instrumentation-trilogy (0.67.0) sha256=40394d3071d92aa418ef5aedab8e74f7683c0566c285a5418f75ca0586fd025f + opentelemetry-helpers-mysql (0.6.0) sha256=7eeb5e6950c434775a8cf28b5fde4defc12e8b865c86479ce3119fcf593d9337 + opentelemetry-helpers-sql (0.4.0) sha256=b10e8c3a2cca28a98af951bbb3e4efdc59e68b25ba0825e055574af543420afb + opentelemetry-helpers-sql-processor (0.5.0) sha256=b199241bc9451fcbd9f00b2f454830af19d4ca27c2219ea379c9b0d53cd0e0f1 + opentelemetry-instrumentation-action_mailer (0.8.0) sha256=bd3e423f0179834d51804b86aaaecf723a6fe4cc952a19f98e0b6e16ba755da2 + opentelemetry-instrumentation-action_pack (0.18.0) sha256=90ba2c826b15539f7d02a4f37898592a41317e5c02785a7c2e7a8f782cbd5681 + opentelemetry-instrumentation-action_view (0.13.0) sha256=5b855610d1143972c527d4482d238ecc3d343c8d59e3c1390bad4056317f1568 + opentelemetry-instrumentation-active_job (0.12.0) sha256=cb3f36fd385cd0806d601d9307116146b6a249f2c0a28c279c2574a40e0db992 + opentelemetry-instrumentation-active_model_serializers (0.25.0) sha256=98bb004f38781aff425f1fc52636eafd0e7b32d5479957f343e361f946786ad7 + opentelemetry-instrumentation-active_record (0.13.0) sha256=239fceaae5a42e82dd9dd87bc63b1888bea32058dac0779b5ea36110fcb3a299 + opentelemetry-instrumentation-active_storage (0.5.0) sha256=39920d405fd111cd98c01a90a24b19413f4cb5bc8de2a24d7882f785e8f02c19 + opentelemetry-instrumentation-active_support (0.12.0) sha256=29a2cbdcb3aad4a42f4c9e829dab11167b71ed8a5205ad54587fe4d59d8ee704 + opentelemetry-instrumentation-all (0.93.0) sha256=e1f918add0d5ec48502cb2fbb49c122457fc2bd2cb54ee85e2db872308bfcb24 + opentelemetry-instrumentation-anthropic (0.5.0) sha256=a6b1e1f324d35323d4714a7f204c9d34c46da07529877a725829420a4a44bb13 + opentelemetry-instrumentation-aws_lambda (0.7.0) sha256=50e5a32c454f2d38ecb53cc94e77dc646b33c47294cc6e6363e7c226097fa132 + opentelemetry-instrumentation-aws_sdk (0.12.0) sha256=e2f48bf471cefe4d4bd9cfdafabffce65790b73381040e82d337933ac8bfb366 + opentelemetry-instrumentation-base (0.26.0) sha256=fdec8bff9a8de04d113bd4e8d490b17414c92d6c79dd457dfa079c97ba922be0 + opentelemetry-instrumentation-bunny (0.25.0) sha256=a8b20b7b4cdbfcfd64036b41c160061b164da2938aa7a7621849ee9f7ecb81b8 + opentelemetry-instrumentation-concurrent_ruby (0.25.0) sha256=722912e7078e3025a84a25d0b6085702417598c58187c19a762234702cbf7b2d + opentelemetry-instrumentation-dalli (0.30.0) sha256=5e2fc0ef1f7eb684c6a987789ad0bad22ea9350376e134cd7c803e5eb02776ee + opentelemetry-instrumentation-delayed_job (0.26.0) sha256=98beac35860800e3235b7b79bed9e53af07f601733f5a0020ce9db2f906ce79c + opentelemetry-instrumentation-ethon (0.29.0) sha256=878135c550d01e2900348a92e9ca8e508e131d9d59d0e698c6a021fc7723181f + opentelemetry-instrumentation-excon (0.29.1) sha256=7a9f1c52f6c804e81db5b8e06ea7cbcd3c1dae803e46407727ce9f62e7fed3c6 + opentelemetry-instrumentation-faraday (0.33.0) sha256=f4320bece35997b8ce2ba520eaf52499b89a0c048fce9ce0a10c1ae5d783f801 + opentelemetry-instrumentation-grape (0.7.0) sha256=1b7dddd8e2baad62de6cd20fc924089fb5b8953e23ba41b83b4116ad5bcc03bf + opentelemetry-instrumentation-graphql (0.32.0) sha256=c3af73b42ac5ac873476f2c4c4cf46de2fb81bb74612cea61214a9911708afaa + opentelemetry-instrumentation-grpc (0.5.0) sha256=09bd9ccbedea4668e80546a24dbc1b148fd3775658228050f7378fc0e03b863d + opentelemetry-instrumentation-gruf (0.6.0) sha256=b2a2455b2c622962fc27a943572ee0c660297206bc5eb51b61095d5eb37eae0c + opentelemetry-instrumentation-http (0.30.0) sha256=36d2639eab81d386b25e99e0d91fe31888a255159a1213b9648e8359751055c8 + opentelemetry-instrumentation-http_client (0.29.0) sha256=92363f0aa7a4286cb02e551c483078a2d5323e9f4ca2b706f2066834f7793d3d + opentelemetry-instrumentation-httpx (0.8.0) sha256=694b6e3eb6df04f1534d7713b5bd67ab5c2e2f2d5438f2c972542b1617378fec + opentelemetry-instrumentation-koala (0.24.0) sha256=70acc5e23bec54de26f3741e35056523cf9746329e7789f5be99ba1424b955f9 + opentelemetry-instrumentation-lmdb (0.26.0) sha256=e032b0a95c2df84e8f23a3c9b24af2ffa4f75ec3b3a72171951ef16ace490cd7 + opentelemetry-instrumentation-mongo (0.26.0) sha256=511407dd4fe06cb11be54b40b0a38f684aba1fc0569a5f6982c013e07e370ffd + opentelemetry-instrumentation-mysql2 (0.34.0) sha256=3c38c7ac7251d2ac3f7fc744f0f0efb05459635b74232d264727874e9e8552b8 + opentelemetry-instrumentation-net_http (0.29.0) sha256=fae5eb6a794bbf87fb15752343b74d5cfd2bb830353f42cab3483fd2f3f84fe7 + opentelemetry-instrumentation-pg (0.36.0) sha256=f7346f8c4377c053ca2720ac112eacef884840e3f97621ec6f553f3cb23baec7 + opentelemetry-instrumentation-que (0.13.0) sha256=95e04b8c17e89eaa446f5dff7975cf72c2e74f7e1e84717be47facf510613112 + opentelemetry-instrumentation-racecar (0.7.0) sha256=93a991917687aa0a6e785ccd8d0de5746af110122552b2bf1e3abe12ab04584a + opentelemetry-instrumentation-rack (0.31.0) sha256=bae9f424a2bb1dde2aa5e2c7e02dbbb80c972e7f4964ab820431229f276e0bfc + opentelemetry-instrumentation-rails (0.42.0) sha256=5ea3808373ca73ee9fa4ecf337471bad1c28e98ea64460b89ab225f5b6eaf8b3 + opentelemetry-instrumentation-rake (0.6.0) sha256=71746e4e172560f8ccf1d3c91354196f5aa0fd9b0c477d6ff17a451cef901822 + opentelemetry-instrumentation-rdkafka (0.10.0) sha256=ad1a4aa78c0ab43c1f130d961f54e1d6ac20c674b0180b87d4364770b81ec209 + opentelemetry-instrumentation-redis (0.29.0) sha256=5f855d31ff7f72f79ef97e846655eaf31455a5c9549578725918196df09545ec + opentelemetry-instrumentation-resque (0.9.0) sha256=c79de5ed739ebe8acc9e13f0c69d6b2b81266806a3b3fec6cb6a8ef8151a0e05 + opentelemetry-instrumentation-restclient (0.28.0) sha256=749b76d46c85a78882d924ba2edeff408f50def33099a67d95d88ddc4fa10307 + opentelemetry-instrumentation-ruby_kafka (0.25.0) sha256=33ceccd5cef4f648e652fa45896d0b014da1a71b3a80f17064829ee5aa84e285 + opentelemetry-instrumentation-sidekiq (0.29.0) sha256=b1d2a0cb9041a5e14239fe7c94d99e3dd07f870e2759460ab63592d7cdd8aadc + opentelemetry-instrumentation-sinatra (0.30.0) sha256=b67301153420f43264a0c68cdb3ca5bd77467cf5054e57b83a2bf891aaaa0361 + opentelemetry-instrumentation-trilogy (0.68.0) sha256=24b31efdf21a08644ad26038b574f4b0876195b1502f3f64b1065eff3fe0f588 opentelemetry-registry (0.5.0) sha256=726ca58ada93a23efaa5f7bb81b8ab7a8a1e14602935c9c65dfa2e597a19fb4f opentelemetry-sdk (1.11.0) sha256=427c6708f4732105ffa46c11afecb91807085c59e92538eaa6cf46b97b1850c6 opentelemetry-semantic_conventions (1.37.0) sha256=1e2dc5ad649e19ba2fb0fa7c6f9303e5cdd8d3952511415cb07efe28a0f8f4c3 @@ -2141,11 +2143,11 @@ CHECKSUMS os (1.1.4) sha256=57816d6a334e7bd6aed048f4b0308226c5fb027433b67d90a9ab435f35108d3f ostruct (0.6.3) sha256=95a2ed4a4bd1d190784e666b47b2d3f078e4a9efda2fccf18f84ddc6538ed912 overviews (1.0.0) - ox (2.14.23) sha256=4a9aedb4d6c78c5ebac1d7287dc7cc6808e14a8831d7adb727438f6a1b461b66 - pagy (43.5.1) sha256=ca5aaa6d65d21eee67a48fe8801d022d07ee72afbc5bea6a9e21b13a27b7c0b9 + ox (2.14.25) sha256=c938bcfce4d8ff2bd2bdbffe1277222a76c0a6e62078d6854bd4d40f34f2f7db + pagy (43.5.3) sha256=f9d73e690648d484706661dcb815647775cf8330fcc5c6e62ec87b9df431290b paper_trail (17.0.0) sha256=1c2842061d3874ca7015908e821e2aa14f9b982af2acb2a7974713bf79021c85 - parallel (2.0.1) sha256=337782d3e39f4121e67563bf91dd8ece67f48923d90698614773a0ec9a5b2c7d - parallel_tests (4.10.1) sha256=df05458c691462b210f7a41fc2651d4e4e8a881e8190e6d1e122c92c07735d70 + parallel (2.1.0) sha256=b35258865c2e31134c5ecb708beaaf6772adf9d5efae28e93e99260877b09356 + parallel_tests (5.7.0) sha256=3f1762c46ca2c223b8af8ef877217f9d76974e191bfa934f2580b58bcf1d005c parser (3.3.11.1) sha256=d17ace7aabe3e72c3cc94043714be27cc6f852f104d81aa284c2281aecc65d54 pdf-core (0.9.0) sha256=4f368b2f12b57ec979872d4bf4bd1a67e8648e0c81ab89801431d2fc89f4e0bb pdf-inspector (1.3.0) sha256=fc107579d6f29b636e2da3d6743479b2624d9e390bf2d84beef8fd4ebe1a05bd @@ -2177,8 +2179,8 @@ CHECKSUMS psych (5.3.1) sha256=eb7a57cef10c9d70173ff74e739d843ac3b2c019a003de48447b2963d81b1974 public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 puffing-billy (4.0.4) sha256=87015b0c41e0722b2171a0c5aa8130fd3f58aa1c016a1dc6dc569b2028aa846f - puma (7.2.0) sha256=bf8ef4ab514a4e6d4554cb4326b2004eba5036ae05cf765cfe51aba9706a72a8 - puma-plugin-statsd (2.7.0) sha256=04f243a7233f4d06ec0e26f1a3522bce18a5910ae711763fabff22681bdad08b + puma (8.0.1) sha256=7b94e50c07655718c1fb8ae41a11fc06c7d61293208b3aa608ff71a46d3ad37c + puma-plugin-statsd (2.8.0) sha256=e515445f93232b6b3571a23b832f93a776d4ce0fc8a5edee798013b82f3488f3 raabro (1.4.0) sha256=d4fa9ff5172391edb92b242eed8be802d1934b1464061ae5e70d80962c5da882 racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f rack (2.2.23) sha256=a8fe9d7e07064770b8ec123663fded8a59ef7e2b6db5cda7173d45a5718ab69c @@ -2200,10 +2202,10 @@ CHECKSUMS railties (8.1.3) sha256=913eb0e0cb520aac687ffd74916bd726d48fa21f47833c6292576ef6a286de22 rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 - rake-compiler-dock (1.11.0) sha256=eab51f2cd533eb35cea6b624a75281f047123e70a64c58b607471bb49428f8c2 + rake-compiler-dock (1.12.0) sha256=f13205c2738f3d2053afcd03491a9e4541b22a59a0bfc53fc8bc883bd8188023 rb-fsevent (0.11.2) sha256=43900b972e7301d6570f64b850a5aa67833ee7d87b458ee92805d56b7318aefe rb-inotify (0.11.1) sha256=a0a700441239b0ff18eb65e3866236cd78613d6b9f78fea1f9ac47a85e47be6e - rb_sys (0.9.126) sha256=ba958e0b8b4b89eeae0b3d24b64c809eb2c37e0ab0773a49e9b1c2e22c95aef8 + rb_sys (0.9.127) sha256=e9f90df3bb0577472d26d96127d5b5774b98f44de881e7d36aeefd28d6337847 rbtrace (0.5.3) sha256=c432292f305d9ab12fd47d9722e0d5210d983758a951fe6107c36cc955cb923f rbtree3 (0.7.1) sha256=ab60ead728a5491b70df4f4065e180b18dbab5319f817ce1dbf5dd906f26d8ba rdoc (7.2.0) sha256=8650f76cd4009c3b54955eb5d7e3a075c60a57276766ebf36f9085e8c9f23192 @@ -2232,7 +2234,7 @@ CHECKSUMS rspec-wait (1.0.2) sha256=865f921239325d3d26fc10ded4bdd485d8b58bcaaad1a28dd85ed15266b5a912 rubocop (1.86.1) sha256=44415f3f01d01a21e01132248d2fd0867572475b566ca188a0a42133a08d4531 rubocop-ast (1.49.1) sha256=4412f3ee70f6fe4546cc489548e0f6fcf76cafcfa80fa03af67098ffed755035 - rubocop-capybara (2.22.1) sha256=ced88caef23efea53f46e098ff352f8fc1068c649606ca75cb74650970f51c0c + rubocop-capybara (2.23.0) sha256=f9ea1ba3a7561ee8e88cf76fc378ce517ce5327155f305ee7b5c2500e5aee357 rubocop-factory_bot (2.28.0) sha256=4b17fc02124444173317e131759d195b0d762844a71a29fe8139c1105d92f0cb rubocop-openproject (0.4.0) sha256=ce56d9e591f9be5a4d98125b10a73564b0557a5e408f97918f9630fb15ae66ae rubocop-performance (1.26.1) sha256=cd19b936ff196df85829d264b522fd4f98b6c89ad271fa52744a8c11b8f71834 @@ -2261,7 +2263,7 @@ CHECKSUMS signet (0.21.0) sha256=d617e9fbf24928280d39dcfefba9a0372d1c38187ffffd0a9283957a10a8cd5b simpleidn (0.2.3) sha256=08ce96f03fa1605286be22651ba0fc9c0b2d6272c9b27a260bc88be05b0d2c29 smart_properties (1.17.0) sha256=f9323f8122e932341756ddec8e0ac9ec6e238408a7661508be99439ca6d6384b - spreadsheet (1.3.4) sha256=0aefd6f3dfdc8b43528109f7fbd54db54f85ce5920429413d48305906bc59253 + spreadsheet (1.3.5) sha256=cd83ea66803d9cae4ac258dfe16cd8c2b85da33eec18a6d7b48fd4a45840ab7d spring (4.4.2) sha256=22f61bacd8dc8595cedcdc738de46d7fc18be4d7a770986760344c924f485ce7 spring-commands-rspec (1.0.4) sha256=6202e54fa4767452e3641461a83347645af478bf45dddcca9737b43af0dd1a2c spring-commands-rubocop (0.4.0) sha256=3e677a2c8a27ae8a986f04bfb69e66d5d55b017541e8be93bf0dc48a7f5690c1 @@ -2291,9 +2293,9 @@ CHECKSUMS ttfunk (1.7.0) sha256=2370ba484b1891c70bdcafd3448cfd82a32dd794802d81d720a64c15d3ef2a96 turbo-rails (2.0.23) sha256=ee0d90733aafff056cf51ff11e803d65e43cae258cc55f6492020ec1f9f9315f turbo_power (0.7.0) sha256=ad95d147e0fa761d0023ad9ca00528c7b7ddf6bba8ca2e23755d5b21b290d967 - turbo_tests (2.2.0) + turbo_tests (2.2.5) tzinfo (2.0.6) sha256=8daf828cc77bcf7d63b0e3bdb6caa47e2272dcfaf4fbfe46f8c3a9df087a829b - tzinfo-data (1.2026.1) sha256=4ea36519ae5ae2cf0fad471207a519be006daf42e3b2359ee9e9c53f113609fd + tzinfo-data (1.2026.2) sha256=7db0d3d3d53b8d7601fc183fccc8c6d056a3004e14eb59ea995bf6aec4ae10bc uber (0.1.0) sha256=5beeb407ff807b5db994f82fa9ee07cfceaa561dad8af20be880bc67eba935dc unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f @@ -2303,7 +2305,7 @@ CHECKSUMS validate_url (1.0.15) sha256=72fe164c0713d63a9970bd6700bea948babbfbdcec392f2342b6704042f57451 vcr (6.4.0) sha256=077ac92cc16efc5904eb90492a18153b5e6ca5398046d8a249a7c96a9ea24ae6 vernier (1.10.0) sha256=5b1dc57012e08ed23e14f4d2943540140d454aa8434c7c35e7eb97befd4969bf - view_component (4.6.0) sha256=aabbcc68ab4af8a0135bd3f488e1a4132180cb611aa2565f86cb6e9135f4ed7e + view_component (4.9.0) sha256=f599f0831ed0148bb19625f914c43cc982746a2252b6ebe8492bd4eea0d7dbaf virtus (2.0.0) sha256=8841dae4eb7fcc097320ba5ea516bf1839e5d056c61ee27138aa4bddd6e3d1c2 warden (1.2.9) sha256=46684f885d35a69dbb883deabf85a222c8e427a957804719e143005df7a1efd0 warden-basic_auth (0.2.1) sha256=bfc752e0109c0182c3e69e930284c5e1e81e7b4a354aeb2b5914ead1391f3c6e @@ -2323,7 +2325,7 @@ CHECKSUMS yabeda-puma-plugin (0.9.0) sha256=b78673ecc7ee30bc50691ddc41b7022c1c1801843900d5101418f4a14b550bc8 yabeda-rails (0.11.0) sha256=afa2581bd44c8f419cb3f2bbf9f6fb40f817c30476f7caf5d1c55c48d69a5b29 yaml (0.4.0) sha256=240e69d1e6ce3584d6085978719a0faa6218ae426e034d8f9b02fb54d3471942 - yard (0.9.42) sha256=4e2be01f8623556093497731d44c801e600d7c9759ec7a35a2dd5dd83bbbba68 + yard (0.9.43) sha256=cf8733a8f0485df2a162927e9b5f182215a61f6d22de096b8f402c726a1c5821 zeitwerk (2.7.5) sha256=d8da92128c09ea6ec62c949011b00ed4a20242b255293dd66bf41545398f73dd RUBY VERSION diff --git a/Gemfile.modules b/Gemfile.modules index a548efe06a1..985db5b0882 100644 --- a/Gemfile.modules +++ b/Gemfile.modules @@ -39,6 +39,7 @@ group :opf_plugins do gem 'openproject-team_planner', path: 'modules/team_planner' gem 'openproject-gantt', path: 'modules/gantt' gem 'openproject-calendar', path: 'modules/calendar' + gem 'openproject-resource_management', path: 'modules/resource_management' gem 'openproject-storages', path: 'modules/storages' gem 'openproject-wikis', path: 'modules/wikis' gem 'openproject-documents', path: 'modules/documents' diff --git a/app/AGENTS.md b/app/AGENTS.md new file mode 100644 index 00000000000..90527af51a8 --- /dev/null +++ b/app/AGENTS.md @@ -0,0 +1,30 @@ +# App + +## Directory Structure + +- `app/components/` - ViewComponent-based UI components (Ruby + ERB) +- `app/contracts/` - Validation and authorization contracts +- `app/controllers/` - Rails controllers +- `app/models/` - ActiveRecord models +- `app/services/` - Service objects (business logic) +- `app/workers/` - Background job workers + +## Code Style Guidelines + +### Ruby +- Follow [Ruby community style guide](https://github.com/bbatsov/ruby-style-guide) +- Use service objects for complex business logic (return `ServiceResult`) +- Use contracts for validation and authorization +- Keep controllers thin, models focused +- Document with [YARD](https://yardoc.org/) +- Write RSpec tests for all new features +- **Work package identifiers**: `WorkPackage.find("PROJ-42")` resolves semantic identifiers transparently. Use `find_by_display_id` only when input could legitimately be numeric OR semantic (controllers, URL-driven components, macro resolvers). Low-level code (queries, filters, services) should stick to `find_by(id:)` with primary keys. See `app/models/work_package/semantic_identifier/finder_methods.rb`. + +### Templates +- Use ERB for server-rendered views +- Use ViewComponents for reusable UI (with Lookbook previews) +- Lint with erb_lint before committing + +## Translations + +- UI strings must use translation keys (never hard-coded) diff --git a/app/CLAUDE.md b/app/CLAUDE.md new file mode 120000 index 00000000000..47dc3e3d863 --- /dev/null +++ b/app/CLAUDE.md @@ -0,0 +1 @@ +AGENTS.md \ No newline at end of file diff --git a/app/components/_index.sass b/app/components/_index.sass index ca04d7a7782..cd21a4285f8 100644 --- a/app/components/_index.sass +++ b/app/components/_index.sass @@ -11,6 +11,9 @@ @import "open_project/common/inplace_edit_fields/index" @import "open_project/common/submenu_component" @import "open_project/common/main_menu_toggle_component" +@import "open_project/common/work_package_card_list_component" +@import "open_project/common/work_package_card_list_component/header" +@import "open_project/common/work_package_card_component" @import "portfolios/details_component" @import "projects/row_component" @import "projects/phases/hover_card_component" diff --git a/app/components/health_reports/report_component.html.erb b/app/components/health_reports/report_component.html.erb new file mode 100644 index 00000000000..876926985d9 --- /dev/null +++ b/app/components/health_reports/report_component.html.erb @@ -0,0 +1,76 @@ +<%#-- copyright +OpenProject is an open source project management software. +Copyright (C) the OpenProject GmbH + +This program is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public License version 3. + +OpenProject is a fork of ChiliProject, which is a fork of Redmine. The copyright follows: +Copyright (C) 2006-2013 Jean-Philippe Lang +Copyright (C) 2010-2013 the ChiliProject Team + +This program is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public License +as published by the Free Software Foundation; either version 2 +of the License, or (at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + +See COPYRIGHT and LICENSE files for more details. + +++#%> + +<%= + component_wrapper do + flex_layout do |report_container| + report_container.with_row do + concat(render(Primer::Beta::Octicon.new(mr: 2, **summary_icon(report.tally)))) + concat(render(Primer::Beta::Text.new(font_weight: :bold)) { humanize_summary(report.tally) }) + end + + report_container.with_row(mt: 2) do + render(Primer::Beta::Text.new) do + if report.healthy? + t(".summary.success") + elsif report.unhealthy? + t(".summary.failure") + else + t(".summary.warning") + end + end + end + + report.results.each do |result_group| + report_container.with_row(mt: 3) do + render(Primer::Beta::BorderBox.new(test_selector: "op-health-report--result-group")) do |box| + box.with_header do + flex_layout(justify_content: :space_between, classes: "flex-wrap") do |header| + header.with_column do + render(Primer::Beta::Text.new(font_weight: :bold)) { I18n.t("#{result_group.key}.header", scope: i18n_scope) } + end + + header.with_column do + concat(render(Primer::Beta::Octicon.new(mr: 2, **summary_icon(result_group.tally)))) + concat(render(Primer::Beta::Text.new) { humanize_summary(result_group.tally) }) + end + end + end + + result_group.results.each do |value| + box.with_row do + render(HealthReports::ResultComponent.new(group: result_group.key, result: value, i18n_scope:)) + end + end + end + end + end + end + end +%> diff --git a/modules/backlogs/app/components/backlogs/backlog_bucket_header_component.rb b/app/components/health_reports/report_component.rb similarity index 58% rename from modules/backlogs/app/components/backlogs/backlog_bucket_header_component.rb rename to app/components/health_reports/report_component.rb index ee3c2e873ca..de8b102c53d 100644 --- a/modules/backlogs/app/components/backlogs/backlog_bucket_header_component.rb +++ b/app/components/health_reports/report_component.rb @@ -23,49 +23,49 @@ # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software -# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # # See COPYRIGHT and LICENSE files for more details. #++ -module Backlogs - class BacklogBucketHeaderComponent < ApplicationComponent +module HealthReports + class ReportComponent < ApplicationComponent include OpPrimer::ComponentHelpers include OpTurbo::Streamable - include Primer::FetchOrFallbackHelper - include Redmine::I18n - include CommonHelper - attr_reader :backlog_bucket, :project, :work_packages, :collapsed, :current_user + alias report model - def initialize( - backlog_bucket:, - project:, - work_packages:, - folded: false, - current_user: User.current - ) - super() - - @backlog_bucket = backlog_bucket - @project = project - @work_packages = work_packages - @collapsed = folded - @current_user = current_user - end - - def wrapper_uniq_by - backlog_bucket.id + # The i18n_scope parameter defines the I18n scope that should be used to resolve + # names of groups, checks and error messages indicated by the results. + def initialize(*, i18n_scope:, **) + super(*, **) + @i18n_scope = i18n_scope end private - def story_points - @story_points ||= work_packages.sum { it.story_points || 0 } + attr_reader :i18n_scope + + def summary_icon(check_tally) + case check_tally + in { failure: 1.. } + { icon: :alert, color: :danger } + in { warning: 1.. } + { icon: :alert, color: :attention } + else + { icon: :"check-circle", color: :success } + end end - def work_package_count - @work_package_count ||= work_packages.size + def humanize_summary(check_tally) + case check_tally + in { failure: 1.. } + t(".checks.failures", count: check_tally[:failure]) + in { warning: 1.. } + t(".checks.warnings", count: check_tally[:warning]) + else + t(".checks.success") + end end end end diff --git a/modules/storages/app/components/storages/admin/health/check_result_component.html.erb b/app/components/health_reports/result_component.html.erb similarity index 72% rename from modules/storages/app/components/storages/admin/health/check_result_component.html.erb rename to app/components/health_reports/result_component.html.erb index 16ae000b0a8..67b17ee9540 100644 --- a/modules/storages/app/components/storages/admin/health/check_result_component.html.erb +++ b/app/components/health_reports/result_component.html.erb @@ -21,7 +21,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software -Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. See COPYRIGHT and LICENSE files for more details. @@ -31,23 +31,23 @@ See COPYRIGHT and LICENSE files for more details. flex_layout do |cell| cell.with_row do flex_layout(justify_content: :space_between, classes: "flex-wrap") do |row| - row.with_column(flex_layout: true, classes: "flex-wrap") do |text| - text.with_column(mr: 2) do - render(Primer::Beta::Text.new(font_weight: :bold)) { data[:text] } + row.with_column(flex_layout: true, classes: "flex-wrap") do |line| + line.with_column(mr: 2) do + render(Primer::Beta::Text.new(font_weight: :bold)) { text } end - text.with_column(mr: 2) do - render(Primer::Beta::Text.new(font_size: :small, color: data[:status_color])) { data[:status_text] } + line.with_column(mr: 2) do + render(Primer::Beta::Text.new(font_size: :small, color: status_color)) { status_text } end - if data[:error_code].present? - text.with_column do - render(Primer::Beta::Label.new(scheme: data[:status_color])) { data[:error_code] } + if error_code.present? + line.with_column do + render(Primer::Beta::Label.new(scheme: status_color)) { error_code } end end end - if data[:error_code].present? + if error_code.present? row.with_column do - helpers.static_link_to(href: data[:docs_href], + helpers.static_link_to(href: docs_href, label: I18n.t(:label_more_information), underline: true) end @@ -55,10 +55,10 @@ See COPYRIGHT and LICENSE files for more details. end end - if data[:error_text].present? + if error_text.present? cell.with_row(mt: 1) do - render(Primer::Beta::Text.new(test_selector: "op-storages--health-status-check-information")) do - data[:error_text] + render(Primer::Beta::Text.new(test_selector: "op-health-report--result-status")) do + error_text end end end diff --git a/app/components/health_reports/result_component.rb b/app/components/health_reports/result_component.rb new file mode 100644 index 00000000000..5a57739f09f --- /dev/null +++ b/app/components/health_reports/result_component.rb @@ -0,0 +1,88 @@ +# frozen_string_literal: true + +#-- copyright +# OpenProject is an open source project management software. +# Copyright (C) the OpenProject GmbH +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License version 3. +# +# OpenProject is a fork of ChiliProject, which is a fork of Redmine. The copyright follows: +# Copyright (C) 2006-2013 Jean-Philippe Lang +# Copyright (C) 2010-2013 the ChiliProject Team +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +# See COPYRIGHT and LICENSE files for more details. +#++ + +module HealthReports + class ResultComponent < ApplicationComponent + include OpPrimer::ComponentHelpers + + def initialize(group:, result:, i18n_scope:) + super(result) + @group = group + @i18n_scope = i18n_scope + end + + private + + def text = I18n.t("#{@group}.#{model.key}", scope: @i18n_scope) + + def error_text + return nil if model.code.nil? + + # TODO: fix translation namespace + I18n.t("errors.#{model.code}", scope: @i18n_scope, **model.context&.symbolize_keys) + end + + def docs_href = ::OpenProject::Static::Links.url_for(:storage_docs, :health_status) + + def error_code + if model.failure? + "ERR_#{model.code.upcase}" + elsif model.warning? + "WRN_#{model.code.upcase}" + end + end + + def status_color + if model.success? + :success + elsif model.failure? + :danger + elsif model.warning? || model.skipped? + :attention + else + raise ArgumentError, "invalid check result state" + end + end + + def status_text + if model.success? + t(".status.passed") + elsif model.failure? + t(".status.failed") + elsif model.warning? + t(".status.warning") + elsif model.skipped? + t(".status.skipped") + else + raise ArgumentError, "invalid check result state" + end + end + end +end diff --git a/app/components/individual_principal_base_filter_component.html.erb b/app/components/individual_principal_base_filter_component.html.erb index 09259944ea4..cb7a1a7df35 100644 --- a/app/components/individual_principal_base_filter_component.html.erb +++ b/app/components/individual_principal_base_filter_component.html.erb @@ -112,7 +112,7 @@ See COPYRIGHT and LICENSE files for more details. <% end %>
  • - <%= text_field_tag "name", params[:name], class: "simple-filters--filter-value" %> + <%= text_field_tag "name", params[:name], class: "simple-filters--filter-value", autocomplete: "off" %>
  • <%= submit_tag t(:button_apply), class: "button -primary -small", name: nil %> diff --git a/app/components/my/access_token/oauth_application/row_component.rb b/app/components/my/access_token/oauth_application/row_component.rb index 4034b5f4609..7ac00979181 100644 --- a/app/components/my/access_token/oauth_application/row_component.rb +++ b/app/components/my/access_token/oauth_application/row_component.rb @@ -46,9 +46,13 @@ module My end end + def active_token_count + oauth_application_tokens.count { |t| !t.expired? && !t.revoked? } + end + def active_tokens render(Primer::Beta::Text.new(test_selector: "oauth-application-#{oauth_application.id}-active-tokens")) do - oauth_application_tokens.count { |t| !t.expired? && !t.revoked? }.to_s + active_token_count.to_s end end @@ -74,11 +78,8 @@ module My data: { turbo_method: :post, turbo_confirm: t( - "oauth.revoke_my_application_confirmation", - token_count: t( - "oauth.x_active_tokens", - count: oauth_application_tokens.count - ) + "oauth.confirm_revoke_my_application", + count: active_token_count ) } )) diff --git a/app/components/my/access_token/oauth_client/row_component.rb b/app/components/my/access_token/oauth_client/row_component.rb index 8cb448b2254..8567c248274 100644 --- a/app/components/my/access_token/oauth_client/row_component.rb +++ b/app/components/my/access_token/oauth_client/row_component.rb @@ -60,6 +60,8 @@ module My end def expires_on + return I18n.t(:label_never) if client_token.expires_in.blank? + helpers.format_time(client_token.updated_at + client_token.expires_in.seconds) end diff --git a/app/components/op_primer/inline_macro_component.html.erb b/app/components/op_primer/inline_macro_component.html.erb index 71fb370380f..8624a9ea2ec 100644 --- a/app/components/op_primer/inline_macro_component.html.erb +++ b/app/components/op_primer/inline_macro_component.html.erb @@ -28,6 +28,8 @@ See COPYRIGHT and LICENSE files for more details. ++#%> <%= render(Primer::BaseComponent.new(tag: :span, **@system_arguments)) do %> - <%= leading_visual_icon %> - <%= content %> + <%= render(Primer::BaseComponent.new(tag: :span, display: :inline_flex, align_items: :center)) do %> + <%= leading_visual_icon %> + <%= content %> + <% end %> <% end %> diff --git a/app/components/op_primer/inline_macro_component.rb b/app/components/op_primer/inline_macro_component.rb index 008e0f47df5..77e78377b0f 100644 --- a/app/components/op_primer/inline_macro_component.rb +++ b/app/components/op_primer/inline_macro_component.rb @@ -31,7 +31,7 @@ module OpPrimer class InlineMacroComponent < Primer::Component renders_one :leading_visual_icon, ->(icon:, color: :muted) do - Primer::Beta::Octicon.new(icon:, color:, mr: 2, vertical_align: :middle) + Primer::Beta::Octicon.new(icon:, color:, size: :xsmall, mr: 2) end def initialize(**system_arguments) diff --git a/app/components/op_primer/inline_macro_component.sass b/app/components/op_primer/inline_macro_component.sass index 0356f0647d7..50bc0740b85 100644 --- a/app/components/op_primer/inline_macro_component.sass +++ b/app/components/op_primer/inline_macro_component.sass @@ -1,7 +1,2 @@ -@media screen - .op-inline-macro - display: inline - background: var(--bgColor-muted) - border: 1px solid transparent - border-radius: var(--borderRadius-medium) - padding: 4px 8px +.op-inline-macro + @include macro--text-style diff --git a/app/components/op_primer/quick_filter/boolean_component.rb b/app/components/op_primer/quick_filter/boolean_component.rb new file mode 100644 index 00000000000..2de711821b4 --- /dev/null +++ b/app/components/op_primer/quick_filter/boolean_component.rb @@ -0,0 +1,48 @@ +# frozen_string_literal: true + +#-- copyright +# OpenProject is an open source project management software. +# Copyright (C) the OpenProject GmbH +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License version 3. +# +# OpenProject is a fork of ChiliProject, which is a fork of Redmine. The copyright follows: +# Copyright (C) 2006-2013 Jean-Philippe Lang +# Copyright (C) 2010-2013 the ChiliProject Team +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +# See COPYRIGHT and LICENSE files for more details. +# ++ + +module OpPrimer + module QuickFilter + class BooleanComponent < SegmentedComponent + def initialize(name:, query:, filter_key:, path_args:, true_label: t(:general_text_Yes), false_label: t(:general_text_No), + orders: nil) + super(name:, query:, filter_key:, path_args:, orders:) + + @true_label = true_label + @false_label = false_label + end + + def before_render + with_item(label: @true_label, value: "t") + with_item(label: @false_label, value: "f") + end + end + end +end diff --git a/app/components/op_primer/quick_filter/segmented_component.html.erb b/app/components/op_primer/quick_filter/segmented_component.html.erb new file mode 100644 index 00000000000..ba86fe5e682 --- /dev/null +++ b/app/components/op_primer/quick_filter/segmented_component.html.erb @@ -0,0 +1,39 @@ +<%#-- copyright +OpenProject is an open source project management software. +Copyright (C) the OpenProject GmbH + +This program is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public License version 3. + +OpenProject is a fork of ChiliProject, which is a fork of Redmine. The copyright follows: +Copyright (C) 2006-2013 Jean-Philippe Lang +Copyright (C) 2010-2013 the ChiliProject Team + +This program is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public License +as published by the Free Software Foundation; either version 2 +of the License, or (at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + +See COPYRIGHT and LICENSE files for more details. + +++#%> + +<%= render(Primer::Alpha::SegmentedControl.new("aria-label": @name, full_width: false)) do |control| %> + <% items.each do |item| %> + <% control.with_item( + tag: :a, + href: href_for(item.value), + label: item.label, + selected: current_value == item.value + ) %> + <% end %> +<% end %> diff --git a/app/components/op_primer/quick_filter/segmented_component.rb b/app/components/op_primer/quick_filter/segmented_component.rb new file mode 100644 index 00000000000..3ad3752ebec --- /dev/null +++ b/app/components/op_primer/quick_filter/segmented_component.rb @@ -0,0 +1,89 @@ +# frozen_string_literal: true + +#-- copyright +# OpenProject is an open source project management software. +# Copyright (C) the OpenProject GmbH +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License version 3. +# +# OpenProject is a fork of ChiliProject, which is a fork of Redmine. The copyright follows: +# Copyright (C) 2006-2013 Jean-Philippe Lang +# Copyright (C) 2010-2013 the ChiliProject Team +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +# See COPYRIGHT and LICENSE files for more details. +# ++ + +module OpPrimer + module QuickFilter + class SegmentedComponent < ApplicationComponent + include ApplicationHelper + + renders_many :items, Item + + def initialize(name:, query:, filter_key:, path_args:, orders: nil) + super + + @name = name + @query = query + @filter_key = filter_key + @path_args = path_args + @orders = orders + end + + def render? + items.any? + end + + private + + def current_value + @query.find_active_filter(@filter_key)&.values&.first + end + + def href_for(value) + params = {} + filters = filters_params(value) + params[:filters] = filters.to_json if filters.any? + + sort = sort_params(value) + params[:sortBy] = sort.to_json if sort.any? + + polymorphic_path(@path_args, params) + end + + def sort_params(value) + order_override = @orders && @orders[value] + if order_override + order_override.map { |attribute, direction| [attribute.to_s, direction.to_s] } + else + @query.orders.map { |order| [order.name, order.direction.to_s] } + end + end + + def filters_params(value) + filters = @query.filters + .reject { |f| f.name == @filter_key } + .map { |f| { f.class.key.to_s => { "operator" => f.operator.to_s, "values" => f.values } } } + + filters << { @filter_key.to_s => { "operator" => "=", "values" => [value] } } if value + + filters + end + end + end +end diff --git a/app/components/op_primer/quick_filter/segmented_component/item.rb b/app/components/op_primer/quick_filter/segmented_component/item.rb new file mode 100644 index 00000000000..604aa78e3ff --- /dev/null +++ b/app/components/op_primer/quick_filter/segmented_component/item.rb @@ -0,0 +1,46 @@ +# frozen_string_literal: true + +#-- copyright +# OpenProject is an open source project management software. +# Copyright (C) the OpenProject GmbH +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License version 3. +# +# OpenProject is a fork of ChiliProject, which is a fork of Redmine. The copyright follows: +# Copyright (C) 2006-2013 Jean-Philippe Lang +# Copyright (C) 2010-2013 the ChiliProject Team +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +# See COPYRIGHT and LICENSE files for more details. +#++ + +module OpPrimer + module QuickFilter + class SegmentedComponent < ApplicationComponent + class Item < ApplicationComponent + attr_reader :label, :value + + def initialize(label:, value:) + super + + @label = label + @value = value + end + end + end + end +end diff --git a/modules/backlogs/app/components/backlogs/story_component.html.erb b/app/components/open_project/common/work_package_card_component.html.erb similarity index 63% rename from modules/backlogs/app/components/backlogs/story_component.html.erb rename to app/components/open_project/common/work_package_card_component.html.erb index 6d5018488b2..0b879b92a1e 100644 --- a/modules/backlogs/app/components/backlogs/story_component.html.erb +++ b/app/components/open_project/common/work_package_card_component.html.erb @@ -27,41 +27,37 @@ See COPYRIGHT and LICENSE files for more details. ++# %> -<%= grid_layout("op-backlogs-story", tag: :article) do |grid| %> +<%= grid_layout( + "op-work-package-card", + tag: :article, + classes: { "op-work-package-card_with-metric": metric? } + ) do |grid| %> <% grid.with_area(:info_line) do %> - <%= render(WorkPackages::InfoLineComponent.new(work_package: story)) %> + <%# TODO(73089): allow callers to pass arguments through to InfoLineComponent (e.g. status presentation, variants). %> + <%= render(WorkPackages::InfoLineComponent.new(work_package:)) %> <% end %> - <% grid.with_area(:points) do %> - <%= render(Primer::Beta::Text.new(color: :subtle)) do %> - <%= story_points %> - <%= t(:"backlogs.points_label", count: story_points) %> + <% if metric? %> + <% grid.with_area(:metric) do %> + <%= metric %> <% end %> <% end %> <% grid.with_area(:menu) do %> - <% if menu_src.present? %> + <% if menu? %> + <%= menu %> + <% else %> <%= render( - Primer::Alpha::ActionMenu.new( - menu_id: dom_target(story, :menu), + OpenProject::Common::WorkPackageCardComponent::Menu.new( + work_package:, src: menu_src, - anchor_align: :end, - classes: "hide-when-print" + button_aria_label: t(".menu.label_actions") ) - ) do |menu| %> - <% menu.with_show_button( - scheme: :invisible, - icon: :"kebab-horizontal", - "aria-label": t(".label_actions"), - tooltip_direction: :se - ) %> - <% end %> + ) %> <% end %> <% end %> <% grid.with_area(:subject) do %> - <%= render(Primer::Beta::Text.new(font_weight: :semibold)) do %> - <%= story.subject %> - <% end %> + <%= render(Primer::Beta::Text.new(font_weight: :semibold)) { work_package.subject } %> <% end %> <% end %> diff --git a/app/components/open_project/common/work_package_card_component.rb b/app/components/open_project/common/work_package_card_component.rb new file mode 100644 index 00000000000..224f342a908 --- /dev/null +++ b/app/components/open_project/common/work_package_card_component.rb @@ -0,0 +1,60 @@ +# frozen_string_literal: true + +#-- copyright +# OpenProject is an open source project management software. +# Copyright (C) the OpenProject GmbH +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License version 3. +# +# OpenProject is a fork of ChiliProject, which is a fork of Redmine. The copyright follows: +# Copyright (C) 2006-2013 Jean-Philippe Lang +# Copyright (C) 2010-2013 the ChiliProject Team +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +# See COPYRIGHT and LICENSE files for more details. +#++ + +module OpenProject + module Common + class WorkPackageCardComponent < ApplicationComponent + include Primer::ClassNameHelper + include OpPrimer::ComponentHelpers + + renders_one :metric, Primer::Content + renders_one :menu, ->(src: nil, button_aria_label: nil, **system_arguments) { + Menu.new( + work_package:, + src:, + button_aria_label:, + **system_arguments + ) + } + + attr_reader :work_package, :menu_src + + # @param work_package [WorkPackage] the work package this card represents. + # @param menu_src [String, NilClass] optional lazy menu source. Prefer the + # `with_menu(src:)` slot for new call sites. + def initialize(work_package:, menu_src: nil) + super() + + @work_package = work_package + @menu_src = menu_src + end + end + end +end diff --git a/frontend/src/app/features/calendar/calendar.lazy-routes.ts b/app/components/open_project/common/work_package_card_component.sass similarity index 61% rename from frontend/src/app/features/calendar/calendar.lazy-routes.ts rename to app/components/open_project/common/work_package_card_component.sass index 70e8ab18acc..8e79ba50667 100644 --- a/frontend/src/app/features/calendar/calendar.lazy-routes.ts +++ b/app/components/open_project/common/work_package_card_component.sass @@ -26,13 +26,28 @@ // See COPYRIGHT and LICENSE files for more details. //++ -import { Ng2StateDeclaration } from '@uirouter/angular'; +.op-work-package-card + display: grid + grid-template-columns: 1fr auto + grid-template-rows: auto auto + grid-template-areas: "info_line menu" "subject subject" + align-items: center + margin-top: calc(-1 * var(--base-size-4)) + margin-bottom: var(--base-size-4) -export const CALENDAR_LAZY_ROUTES:Ng2StateDeclaration[] = [ - { - name: 'calendar.**', - parent: 'optional_project', - url: '/calendars', - loadChildren: () => import('./openproject-calendar.module').then((m) => m.OpenprojectCalendarModule), - }, -]; +.op-work-package-card_with-metric + grid-template-columns: 1fr minmax(2rem, max-content) auto + grid-template-areas: "info_line metric menu" "subject subject subject" + +.op-work-package-card--metric + margin-left: var(--stack-gap-normal) + font-variant-numeric: tabular-nums + text-align: right + +.op-work-package-card--menu + margin-left: var(--stack-gap-normal) + +.op-work-package-card--subject + align-self: start // Align to top of second row + word-wrap: break-word + overflow-wrap: break-word diff --git a/app/components/open_project/common/work_package_card_component/menu.html.erb b/app/components/open_project/common/work_package_card_component/menu.html.erb new file mode 100644 index 00000000000..c2d9fff9061 --- /dev/null +++ b/app/components/open_project/common/work_package_card_component/menu.html.erb @@ -0,0 +1,37 @@ +<%# -- copyright +OpenProject is an open source project management software. +Copyright (C) the OpenProject GmbH + +This program is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public License version 3. + +OpenProject is a fork of ChiliProject, which is a fork of Redmine. The copyright follows: +Copyright (C) 2006-2013 Jean-Philippe Lang +Copyright (C) 2010-2013 the ChiliProject Team + +This program is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public License +as published by the Free Software Foundation; either version 2 +of the License, or (at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + +See COPYRIGHT and LICENSE files for more details. + +++# %> + +<%= render(@menu) do |menu| %> + <% menu.with_show_button( + scheme: :invisible, + icon: :"kebab-horizontal", + "aria-label": button_aria_label || t(".label_actions"), + tooltip_direction: :se + ) %> +<% end %> diff --git a/app/components/open_project/common/work_package_card_component/menu.rb b/app/components/open_project/common/work_package_card_component/menu.rb new file mode 100644 index 00000000000..75568601d01 --- /dev/null +++ b/app/components/open_project/common/work_package_card_component/menu.rb @@ -0,0 +1,65 @@ +# frozen_string_literal: true + +#-- copyright +# OpenProject is an open source project management software. +# Copyright (C) the OpenProject GmbH +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License version 3. +# +# OpenProject is a fork of ChiliProject, which is a fork of Redmine. The copyright follows: +# Copyright (C) 2006-2013 Jean-Philippe Lang +# Copyright (C) 2010-2013 the ChiliProject Team +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +# See COPYRIGHT and LICENSE files for more details. +#++ + +module OpenProject + module Common + class WorkPackageCardComponent + class Menu < ApplicationComponent + include OpPrimer::ComponentHelpers + + delegate :with_item, :with_avatar_item, :with_divider, :with_group, :with_sub_menu_item, to: :@menu + + attr_reader :work_package, :button_aria_label + + def initialize(work_package:, src: nil, button_aria_label: nil, **system_arguments) + super() + + @work_package = work_package + @button_aria_label = button_aria_label + + system_arguments[:menu_id] ||= dom_target(work_package, :menu) + system_arguments[:src] = src + system_arguments[:anchor_align] ||= :end + system_arguments[:classes] = class_names( + system_arguments[:classes], + "hide-when-print" + ) + @menu = Primer::Alpha::ActionMenu.new(**system_arguments) + end + + private + + def before_render + content + end + end + end + end +end diff --git a/app/components/open_project/common/work_package_card_list_component.html.erb b/app/components/open_project/common/work_package_card_list_component.html.erb new file mode 100644 index 00000000000..7aa5bdb62fe --- /dev/null +++ b/app/components/open_project/common/work_package_card_list_component.html.erb @@ -0,0 +1,54 @@ +<%# -- copyright +OpenProject is an open source project management software. +Copyright (C) the OpenProject GmbH + +This program is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public License version 3. + +OpenProject is a fork of ChiliProject, which is a fork of Redmine. The copyright follows: +Copyright (C) 2006-2013 Jean-Philippe Lang +Copyright (C) 2010-2013 the ChiliProject Team + +This program is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public License +as published by the Free Software Foundation; either version 2 +of the License, or (at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + +See COPYRIGHT and LICENSE files for more details. + +++# %> + +<%= render(Primer::Beta::BorderBox.new(**@system_arguments)) do |border_box| %> + <% if header? %> + <% border_box.with_header(id: header_id) do %> + <%= header %> + <% end %> + <% end %> + + <% if items.empty? %> + <% border_box.with_row(data: { empty_list_item: true }) do %> + <%= empty_state %> + <% end %> + <% else %> + <% items.each do |item| %> + <% border_box.with_row(**item.row_args) do %> + <%= render(item.card) %> + <% end %> + <% end %> + <% end %> + + <% if footer? %> + <% border_box.with_row(scheme: :neutral) do %> + <%= footer %> + <% end %> + <% end %> +<% end %> diff --git a/app/components/open_project/common/work_package_card_list_component.rb b/app/components/open_project/common/work_package_card_list_component.rb new file mode 100644 index 00000000000..0f29b85c268 --- /dev/null +++ b/app/components/open_project/common/work_package_card_list_component.rb @@ -0,0 +1,309 @@ +# frozen_string_literal: true + +#-- copyright +# OpenProject is an open source project management software. +# Copyright (C) the OpenProject GmbH +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License version 3. +# +# OpenProject is a fork of ChiliProject, which is a fork of Redmine. The copyright follows: +# Copyright (C) 2006-2013 Jean-Philippe Lang +# Copyright (C) 2010-2013 the ChiliProject Team +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +# See COPYRIGHT and LICENSE files for more details. +#++ + +module OpenProject + module Common + class WorkPackageCardListComponent < ApplicationComponent + include Primer::AttributesHelper + include OpPrimer::ComponentHelpers + + # Renders a `Header` above the card list with the title, count badge, and + # consumer-provided actions/menu/description. + # + # @param title [String] heading text rendered inside the collapsible header. + # @param count [Integer, NilClass] optional count badge displayed alongside + # the title; hidden when zero or nil. + renders_one :header, ->(title:, count: nil) { + Header.new(title:, count:, container:, list_id:, collapsed: folded?) + } + + # Renders a `Primer::Beta::Blankslate` when no items are produced — that + # is, when `items.empty?` after slot resolution and automatic item builds. + # The slot is required unless the caller provides manual items, and is + # silently ignored whenever `items` is non-empty. + # + # @param title [String] blankslate heading. + # @param description [String, NilClass] optional secondary text. + # @param icon [Symbol, NilClass] optional Octicon name. + # @param system_arguments [Hash] forwarded to `Primer::Beta::Blankslate`. + renders_one :empty_state, ->(title:, description: nil, icon: nil, **system_arguments) { + system_arguments[:role] = "status" + system_arguments[:aria] = merge_aria( + system_arguments, + aria: { live: "polite" } + ) + + blankslate = Primer::Beta::Blankslate.new(**system_arguments) + blankslate.with_heading(tag: :h4).with_content(title) + blankslate.with_description_content(description) if description + blankslate.with_visual_icon(icon:) if icon + blankslate + } + + # @!parse + # # Adds a work package item row to the list. When at least one item + # # is added manually, the list does not build rows from + # # `work_packages:`. + # # + # # @param work_package [WorkPackage] the work package rendered in the row. + # # @param component_klass [Class] row bridge class used instead of the + # # default item class. Defaults to the list's configured + # # `item_component_klass`. It must accept the arguments documented on + # # `#build_item`, expose `#row_args` with valid + # # `Primer::Beta::BorderBox#with_row` keyword arguments, and expose + # # `#card` returning a renderable object. + # # @param system_arguments [Hash] forwarded to the item class. + # def with_work_package_item( + # work_package:, + # component_klass: Item, + # **system_arguments, + # &block + # ) + # end + + # @!parse + # # Adds a custom empty item row to the list. This can be used instead of + # # the `empty_state` slot when the caller owns item iteration. It cannot + # # be combined with `work_packages:`, `with_work_package_item`, or + # # `with_item`. + # # + # # @param system_arguments [Hash] forwarded to + # # `Primer::Beta::BorderBox#with_row`. + # def with_empty_item(**system_arguments, &block) + # end + + # @!parse + # # Adds a generic item to the list. When at least one item is added + # # manually, the list does not build rows from `work_packages:`. + # # + # # @param system_arguments [Hash] forwarded to + # # `Primer::Beta::BorderBox#with_row`. + # def with_item(**system_arguments, &block) + # end + renders_many :items, types: { + work_package_item: { + renders: lambda { |work_package:, **system_arguments, &block| + build_item(work_package:, **system_arguments).tap do |item| + capture(item, &block) if block + end + }, + as: :work_package_item + }, + empty_item: { + renders: lambda { |**system_arguments, &block| + build_content_item(EmptyItem, **system_arguments, &block) + }, + as: :empty_item + }, + item: { + renders: lambda { |**system_arguments, &block| + build_content_item(ContentItem, **system_arguments, &block) + }, + as: :item + } + } + + # Renders a free-form footer row below the card list. + renders_one :footer + + attr_reader :work_packages, + :project, + :container, + :drag_and_drop, + :item_component_klass, + :params, + :current_user + + # @param project [Project] the project this card list is rendered in. May + # differ from individual `work_package.project` values when sprints or + # buckets are shared across projects. + # @param container [Symbol, String, Class, ApplicationRecord] drives the + # list DOM id and related ids via `dom_target`. + # @param work_packages [Enumerable] the work packages to render + # as cards. + # @param drag_and_drop [Hash, NilClass] optional generic drag-and-drop + # target data. Requires `:target_id` and `:allowed_drag_type` when set. + # @param item_component_klass [Class] item class used for automatically + # built work package items. + # @param params [Hash] optional URL params passed to work package items + # when deriving row arguments. + # @param current_user [User] passed through to each item for permission + # checks; defaults to `User.current`. + # @param system_arguments [Hash] forwarded to the underlying + # `Primer::Beta::BorderBox`. + def initialize( + project:, + container:, + work_packages: [], + drag_and_drop: nil, + item_component_klass: Item, + params: {}, + current_user: User.current, + **system_arguments + ) + super() + + @work_packages = work_packages + @project = project + @container = container + @drag_and_drop = drag_and_drop + @item_component_klass = item_component_klass + @params = params + @current_user = current_user + @automatic_items = false + + @system_arguments = system_arguments + @system_arguments[:id] = container_id + @system_arguments[:list_id] = list_id + @system_arguments[:padding] = :condensed + merge_drag_and_drop_data! if drag_and_drop + end + + def before_render + # Content must be loaded before mode validation and automatic item builds + # so slot calls have already populated `items`. + content + validate_item_mode! + build_automatic_items if build_automatic_items? + validate_empty_state! + end + + # Builds a new work package item without adding it to the list. Use this + # instead of the `#with_work_package_item` slot when rendering additional + # items outside this list, such as in a separately-loaded page. + # + # @param work_package [WorkPackage] the work package rendered in the row. + # @param component_klass [Class] item class used instead of the configured + # default item class. It must accept `work_package:`, `project:`, + # `container:`, `params:`, `current_user:`, and `**system_arguments`. + # @param system_arguments [Hash] forwarded to the item class. + def build_item( + work_package:, + component_klass: item_component_klass, + **system_arguments + ) + component_klass.new( + work_package:, + project:, + container:, + params:, + current_user:, + **system_arguments + ) + end + + private + + def folded? + current_user.pref[:backlogs_versions_default_fold_state] == "closed" + end + + def build_automatic_items? + non_empty_items.empty? && work_packages.any? + end + + def build_automatic_items + @automatic_items = true + + work_packages.each do |work_package| + with_work_package_item(work_package:) + end + end + + def build_content_item(item_class, **system_arguments, &block) + item_class.new(**system_arguments).tap do |item| + item.with_content(capture(&block)) if block + end + end + + def automatic_items? + @automatic_items + end + + def validate_item_mode! + return unless empty_items.any? + + if work_packages.any? + raise ArgumentError, "empty_item cannot be combined with work_packages" + end + + if non_empty_items.any? + raise ArgumentError, "empty_item cannot be combined with other items" + end + end + + def validate_empty_state! + return unless items.empty? && !empty_state? + + raise ArgumentError, "empty_state slot is required when no work package items are rendered" + end + + def container_id + dom_target(container) + end + + def list_id + dom_target(container, :list) + end + + def header_id + dom_target(container, :header) + end + + def empty_items + items.select { |item| item.respond_to?(:empty_item?) && item.empty_item? } + end + + def non_empty_items + items - empty_items + end + + def merge_drag_and_drop_data! + @system_arguments[:data] = merge_data( + { + data: drag_and_drop_data + }, + @system_arguments + ) + end + + def drag_and_drop_data + { + # Existing callers share one mirror container target on the page until + # parent-specific DnD handling is extracted in follow-up work. + generic_drag_and_drop_target: "container", + target_container_accessor: ":scope > ul", + target_id: drag_and_drop.fetch(:target_id), + target_allowed_drag_type: drag_and_drop.fetch(:allowed_drag_type) + } + end + end + end +end diff --git a/modules/backlogs/app/components/backlogs/inbox_component.sass b/app/components/open_project/common/work_package_card_list_component.sass similarity index 86% rename from modules/backlogs/app/components/backlogs/inbox_component.sass rename to app/components/open_project/common/work_package_card_list_component.sass index 113f0620987..872a0dd838e 100644 --- a/modules/backlogs/app/components/backlogs/inbox_component.sass +++ b/app/components/open_project/common/work_package_card_list_component.sass @@ -1,4 +1,4 @@ -.backlogs-inbox-component +.op-work-package-card-list &--show-more-row border-top: var(--borderWidth-thick) solid var(--borderColor-default) border-bottom: var(--borderWidth-thick) solid var(--borderColor-default) diff --git a/app/components/open_project/common/work_package_card_list_component/content_item.rb b/app/components/open_project/common/work_package_card_list_component/content_item.rb new file mode 100644 index 00000000000..a6b27d116d8 --- /dev/null +++ b/app/components/open_project/common/work_package_card_list_component/content_item.rb @@ -0,0 +1,58 @@ +# frozen_string_literal: true + +#-- copyright +# OpenProject is an open source project management software. +# Copyright (C) the OpenProject GmbH +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License version 3. +# +# OpenProject is a fork of ChiliProject, which is a fork of Redmine. The copyright follows: +# Copyright (C) 2006-2013 Jean-Philippe Lang +# Copyright (C) 2010-2013 the ChiliProject Team +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +# See COPYRIGHT and LICENSE files for more details. +#++ + +module OpenProject + module Common + class WorkPackageCardListComponent + # Item bridge for caller-provided content. + class ContentItem < ApplicationComponent + def initialize(**system_arguments) + super() + + @system_arguments = system_arguments + end + + def row_args + @system_arguments.deep_dup + end + + def card + self + end + + def empty_item? = false + + def call + content + end + end + end + end +end diff --git a/app/components/open_project/common/work_package_card_list_component/empty_item.rb b/app/components/open_project/common/work_package_card_list_component/empty_item.rb new file mode 100644 index 00000000000..c6849109532 --- /dev/null +++ b/app/components/open_project/common/work_package_card_list_component/empty_item.rb @@ -0,0 +1,51 @@ +# frozen_string_literal: true + +#-- copyright +# OpenProject is an open source project management software. +# Copyright (C) the OpenProject GmbH +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License version 3. +# +# OpenProject is a fork of ChiliProject, which is a fork of Redmine. The copyright follows: +# Copyright (C) 2006-2013 Jean-Philippe Lang +# Copyright (C) 2010-2013 the ChiliProject Team +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +# See COPYRIGHT and LICENSE files for more details. +#++ + +module OpenProject + module Common + class WorkPackageCardListComponent + # Row bridge for caller-provided empty content. + class EmptyItem < ContentItem + include Primer::AttributesHelper + + def row_args + system_arguments = @system_arguments.deep_dup + system_arguments[:data] = merge_data( + { data: { empty_list_item: true } }, + system_arguments + ) + system_arguments + end + + def empty_item? = true + end + end + end +end diff --git a/modules/backlogs/app/components/backlogs/backlog_bucket_component.html.erb b/app/components/open_project/common/work_package_card_list_component/header.html.erb similarity index 53% rename from modules/backlogs/app/components/backlogs/backlog_bucket_component.html.erb rename to app/components/open_project/common/work_package_card_list_component/header.html.erb index 2a8e89e1a45..d57862a113e 100644 --- a/modules/backlogs/app/components/backlogs/backlog_bucket_component.html.erb +++ b/app/components/open_project/common/work_package_card_list_component/header.html.erb @@ -27,22 +27,48 @@ See COPYRIGHT and LICENSE files for more details. ++# %> -<%= component_wrapper(tag: :section) do %> - <%= render(Primer::Beta::BorderBox.new(**@system_arguments)) do |border_box| %> - <% border_box.with_header(id: dom_target(backlog_bucket, :header)) do %> - <%= render(Backlogs::BacklogBucketHeaderComponent.new(backlog_bucket:, project:, work_packages:, folded: folded?)) %> - <% end %> - <% if work_packages.empty? %> - <% border_box.with_row(data: { empty_list_item: true }) do %> - - <%= - render Primer::Beta::Blankslate.new(role: "status", aria: { live: "polite" }) do |blankslate| - blankslate.with_heading(tag: :h4).with_content(t(".blankslate_title")) - blankslate.with_description_content(t(".blankslate_description")) - end - %> +<%= grid_layout("op-work-package-card-list-header", tag: :div) do |grid| %> + <% grid.with_area(:collapsible) do %> + <%= + render( + Primer::OpenProject::BorderBox::CollapsibleHeader.new( + collapsible_id: list_id, + collapsed:, + multi_line: true + ) + ) do |collapsible| + %> + <% collapsible.with_title(tag: :h4) { title } %> + <% if count %> + <% collapsible.with_count( + scheme: :primary, + count: count, + round: true, + limit: 1_000, + hide_if_zero: true, + aria: { + label: t(".label_work_package_count", count: count), + live: "polite" + } + ) %> + <% end %> + <% if description? %> + <% collapsible.with_description do %> + <%= description %> + <% end %> <% end %> <% end %> - <%= render Backlogs::BacklogBucketItemComponent.with_collection(work_packages, container: border_box, project:) %> + <% end %> + + <% if actions? %> + <% grid.with_area(:actions) do %> + <% actions.each do |action| %> + <%= action %> + <% end %> + <% end %> + <% end %> + + <% grid.with_area(:menu) do %> + <%= menu %> <% end %> <% end %> diff --git a/app/components/open_project/common/work_package_card_list_component/header.rb b/app/components/open_project/common/work_package_card_list_component/header.rb new file mode 100644 index 00000000000..3bb6f63f823 --- /dev/null +++ b/app/components/open_project/common/work_package_card_list_component/header.rb @@ -0,0 +1,79 @@ +# frozen_string_literal: true + +#-- copyright +# OpenProject is an open source project management software. +# Copyright (C) the OpenProject GmbH +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License version 3. +# +# OpenProject is a fork of ChiliProject, which is a fork of Redmine. The copyright follows: +# Copyright (C) 2006-2013 Jean-Philippe Lang +# Copyright (C) 2010-2013 the ChiliProject Team +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +# See COPYRIGHT and LICENSE files for more details. +#++ + +module OpenProject + module Common + class WorkPackageCardListComponent + class Header < ApplicationComponent + include OpPrimer::ComponentHelpers + + renders_one :description + + renders_many :actions, types: { + button: ->(**system_arguments) do + Primer::Beta::Button.new(**system_arguments) + end + } + + renders_one :menu, ->(menu_id: nil, button_aria_label: nil, **system_arguments) do + system_arguments[:classes] = class_names( + system_arguments[:classes], + "hide-when-print" + ) + + menu = Primer::Alpha::ActionMenu.new( + menu_id: menu_id || dom_target(container, :menu), + anchor_align: :end, + **system_arguments + ) + menu.with_show_button( + scheme: :invisible, + icon: :"kebab-horizontal", + "aria-label": button_aria_label || t(".label_actions"), + tooltip_direction: :se + ) + menu + end + + attr_reader :title, :container, :list_id, :collapsed, :count + + def initialize(title:, container:, list_id:, collapsed: false, count: nil) + super() + + @title = title + @container = container + @list_id = list_id + @collapsed = collapsed + @count = count + end + end + end + end +end diff --git a/frontend/src/app/features/team-planner/team-planner/team-planner.lazy-routes.ts b/app/components/open_project/common/work_package_card_list_component/header.sass similarity index 77% rename from frontend/src/app/features/team-planner/team-planner/team-planner.lazy-routes.ts rename to app/components/open_project/common/work_package_card_list_component/header.sass index d9449ae243a..0e618e18a1a 100644 --- a/frontend/src/app/features/team-planner/team-planner/team-planner.lazy-routes.ts +++ b/app/components/open_project/common/work_package_card_list_component/header.sass @@ -26,13 +26,15 @@ // See COPYRIGHT and LICENSE files for more details. //++ -import { Ng2StateDeclaration } from '@uirouter/angular'; +.op-work-package-card-list-header + display: grid + grid-template-columns: 1fr minmax(5rem, max-content) auto + grid-template-areas: "collapsible actions menu" + align-items: center -export const TEAM_PLANNER_LAZY_ROUTES:Ng2StateDeclaration[] = [ - { - name: 'team_planner.**', - parent: 'optional_project', - url: '/team_planner', - loadChildren: () => import('./team-planner.module').then((m) => m.TeamPlannerModule), - }, -]; + &--actions, + &--menu + margin-left: var(--stack-gap-normal) + align-self: flex-start + // Unfortunately, the invisible button style bites us here again. + margin-top: -6px diff --git a/app/components/open_project/common/work_package_card_list_component/item.rb b/app/components/open_project/common/work_package_card_list_component/item.rb new file mode 100644 index 00000000000..ca5c6a66131 --- /dev/null +++ b/app/components/open_project/common/work_package_card_list_component/item.rb @@ -0,0 +1,117 @@ +# frozen_string_literal: true + +#-- copyright +# OpenProject is an open source project management software. +# Copyright (C) the OpenProject GmbH +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License version 3. +# +# OpenProject is a fork of ChiliProject, which is a fork of Redmine. The copyright follows: +# Copyright (C) 2006-2013 Jean-Philippe Lang +# Copyright (C) 2010-2013 the ChiliProject Team +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +# See COPYRIGHT and LICENSE files for more details. +#++ + +module OpenProject + module Common + class WorkPackageCardListComponent + # Internal row bridge between the card list and the visual card. It owns + # the surrounding BorderBox row arguments while `WorkPackageCardComponent` + # renders the card body. + class Item < ApplicationComponent + include ActionView::RecordIdentifier + include Primer::ClassNameHelper + include Primer::AttributesHelper + + attr_reader :work_package, + :project, + :container, + :params, + :current_user + + delegate :with_metric, to: :card + + def initialize( + work_package:, + project:, + container:, + params: {}, + current_user: User.current, + **system_arguments + ) + super() + + @work_package = work_package + @project = project + @container = container + @params = params + @current_user = current_user + @system_arguments = system_arguments + end + + def row_args + row_arguments = @system_arguments.deep_dup + row_arguments[:id] ||= dom_id(work_package) + row_arguments[:tabindex] ||= 0 + row_arguments[:classes] = class_names(row_classes, row_arguments[:classes]) + row_arguments[:data] = merge_data( + { data: row_data }, + row_arguments + ) + row_arguments + end + + def card + @card ||= WorkPackageCardComponent.new(work_package:) + end + + def render? = false + + def empty_item? = false + + private + + def row_classes + class_names( + "Box-row--hover-blue", + "Box-row--focus-gray", + "Box-row--clickable", + "Box-row--draggable" => draggable? + ) + end + + def row_data + data = { + test_selector: "work-package-#{work_package.id}" + } + + draggable? ? data.merge(draggable_data) : data + end + + def draggable? + false + end + + def draggable_data + {} + end + end + end + end +end diff --git a/app/components/user_filter_component.rb b/app/components/user_filter_component.rb index def2b0086f1..62f9f7753d2 100644 --- a/app/components/user_filter_component.rb +++ b/app/components/user_filter_component.rb @@ -55,7 +55,7 @@ class UserFilterComponent < IndividualPrincipalBaseFilterComponent end def base_query - Queries::Users::UserQuery + UserQuery end protected diff --git a/app/components/wiki_pages/show_page_header_component.html.erb b/app/components/wiki_pages/show_page_header_component.html.erb index 26e556eba8a..49799e88b74 100644 --- a/app/components/wiki_pages/show_page_header_component.html.erb +++ b/app/components/wiki_pages/show_page_header_component.html.erb @@ -75,7 +75,7 @@ See COPYRIGHT and LICENSE files for more details. } ) do |menu| if @editable - if User.current.allowed_in_project?(:protect_wiki_pages, @project) + if User.current.allowed_in_project?(:manage_wiki, @project) menu.with_item( label: lock_data[:label], tag: :a, @@ -87,7 +87,7 @@ See COPYRIGHT and LICENSE files for more details. end end if @page.current_version? - if User.current.allowed_in_project?(:rename_wiki_pages, @project) + if User.current.allowed_in_project?(:edit_wiki_pages, @project) menu.with_item( label: t(:button_rename), tag: :a, @@ -98,7 +98,7 @@ See COPYRIGHT and LICENSE files for more details. item.with_leading_visual_icon(icon: "arrow-switch") end end - if User.current.allowed_in_project?(:change_wiki_parent_page, @project) + if User.current.allowed_in_project?(:manage_wiki, @project) menu.with_item( label: t(:button_change_parent_page), tag: :a, @@ -110,7 +110,7 @@ See COPYRIGHT and LICENSE files for more details. end end - if User.current.allowed_in_project?(:delete_wiki_pages, @project) + if User.current.allowed_in_project?(:manage_wiki, @project) menu.with_item( label: t(:button_delete), scheme: :danger, @@ -140,7 +140,7 @@ See COPYRIGHT and LICENSE files for more details. item.with_leading_visual_icon(icon: :history) end end - if User.current.allowed_in_project?(:manage_wiki_menu, @project) + if User.current.allowed_in_project?(:manage_wiki, @project) menu.with_item( label: t(:button_manage_menu_entry), href: url_for(controller: "/wiki_menu_items", action: "edit", project_id: @project.identifier, id: @page), @@ -161,7 +161,7 @@ See COPYRIGHT and LICENSE files for more details. ) do |item| item.with_leading_visual_icon(icon: "op-printer") end - if User.current.allowed_in_project?(:export_wiki_pages, @project) + if User.current.allowed_in_project?(:view_wiki_pages, @project) menu.with_sub_menu_item( tag: :a, label: t("js.label_export"), diff --git a/app/components/work_packages/admin/settings/identifier_settings_form_component.html.erb b/app/components/work_packages/admin/settings/identifier_settings_form_component.html.erb index 52bb77982fc..b91182b3025 100644 --- a/app/components/work_packages/admin/settings/identifier_settings_form_component.html.erb +++ b/app/components/work_packages/admin/settings/identifier_settings_form_component.html.erb @@ -77,7 +77,7 @@ scheme: :primary, type: :submit, form: form_id, - hidden: show_autofix_section?, + hidden: true, data: { admin__work_packages_identifier_target: "saveButton" } ) ) { t("button_save") } %> diff --git a/app/components/work_packages/admin/settings/identifier_settings_form_component.rb b/app/components/work_packages/admin/settings/identifier_settings_form_component.rb index 446b0cf8651..9583ab3c5d9 100644 --- a/app/components/work_packages/admin/settings/identifier_settings_form_component.rb +++ b/app/components/work_packages/admin/settings/identifier_settings_form_component.rb @@ -101,7 +101,8 @@ module WorkPackages { data: { controller: "admin--work-packages-identifier", - admin__work_packages_identifier_has_problematic_projects_value: has_problematic_projects? + admin__work_packages_identifier_has_problematic_projects_value: has_problematic_projects?, + admin__work_packages_identifier_current_value_value: Setting[:work_packages_identifier] } } end diff --git a/app/components/work_packages/details/tab_component.html.erb b/app/components/work_packages/details/tab_component.html.erb index 534aa534a38..6903e91125f 100644 --- a/app/components/work_packages/details/tab_component.html.erb +++ b/app/components/work_packages/details/tab_component.html.erb @@ -70,7 +70,7 @@ icon: :"screen-full", tag: :a, classes: "hidden-for-small-laptops", - href: work_package_path(work_package.id, full_screen_tab), + href: work_package_path(work_package.display_id, full_screen_tab), target: "_top", scheme: :invisible, test_selector: "wp-details-tab-component--full-screen", diff --git a/app/components/work_packages/info_line_component.html.erb b/app/components/work_packages/info_line_component.html.erb index 1f590ec6550..e4e05ec8bdf 100644 --- a/app/components/work_packages/info_line_component.html.erb +++ b/app/components/work_packages/info_line_component.html.erb @@ -16,7 +16,7 @@ font_size: @font_size, color: :muted ) - ) { "##{@work_package.id}" } + ) { @work_package.formatted_id } end if @show_status diff --git a/app/components/work_packages/split_create_component.html.erb b/app/components/work_packages/split_create_component.html.erb new file mode 100644 index 00000000000..8e389eff581 --- /dev/null +++ b/app/components/work_packages/split_create_component.html.erb @@ -0,0 +1,2 @@ +<%= helpers.angular_component_tag "opce-wp-split-create", + inputs: { projectIdentifier: @project_identifier } %> diff --git a/app/components/work_packages/split_create_component.rb b/app/components/work_packages/split_create_component.rb new file mode 100644 index 00000000000..b33309649ed --- /dev/null +++ b/app/components/work_packages/split_create_component.rb @@ -0,0 +1,37 @@ +# frozen_string_literal: true + +#-- copyright +# OpenProject is an open source project management software. +# Copyright (C) the OpenProject GmbH +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License version 3. +# +# OpenProject is a fork of ChiliProject, which is a fork of Redmine. The copyright follows: +# Copyright (C) 2006-2013 Jean-Philippe Lang +# Copyright (C) 2010-2013 the ChiliProject Team +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +# See COPYRIGHT and LICENSE files for more details. +#++ + +class WorkPackages::SplitCreateComponent < ApplicationComponent + def initialize(project_identifier:) + super + + @project_identifier = project_identifier + end +end diff --git a/app/components/workflows/blankslate_component.html.erb b/app/components/workflows/blankslate_component.html.erb index da7a8b2ae1c..48aedf4b9bc 100644 --- a/app/components/workflows/blankslate_component.html.erb +++ b/app/components/workflows/blankslate_component.html.erb @@ -32,7 +32,7 @@ See COPYRIGHT and LICENSE files for more details. blankslate.with_heading(tag: :h2).with_content(t("admin.workflows.blankslate.title")) blankslate.with_description_content(t("admin.workflows.blankslate.description")) blankslate.with_primary_action( - href: helpers.status_dialog_workflow_tab_path(@type, @tab, role_id: @role.id), + href: helpers.status_dialog_workflow_tab_path(@type, @tab, role_ids: @roles.map(&:id)), scheme: :secondary, data: { controller: "async-dialog" } ) do |button| diff --git a/app/components/workflows/blankslate_component.rb b/app/components/workflows/blankslate_component.rb index ed4c14ef797..0f92b6ea2f4 100644 --- a/app/components/workflows/blankslate_component.rb +++ b/app/components/workflows/blankslate_component.rb @@ -32,9 +32,9 @@ module Workflows class BlankslateComponent < ApplicationComponent include OpPrimer::ComponentHelpers - def initialize(role:, type:, tab:) + def initialize(roles:, type:, tab:) super - @role = role + @roles = roles @type = type @tab = tab end diff --git a/app/components/workflows/page_headers/edit_component.rb b/app/components/workflows/page_headers/edit_component.rb index fac6786a992..794dbed58e8 100644 --- a/app/components/workflows/page_headers/edit_component.rb +++ b/app/components/workflows/page_headers/edit_component.rb @@ -30,7 +30,7 @@ module Workflows::PageHeaders class EditComponent < BaseComponent - options :tabs, :role + options :tabs, :roles def type = model @@ -49,7 +49,7 @@ module Workflows::PageHeaders mobile_icon: :copy, mobile_label: t(:button_copy), size: :medium, - href: new_workflow_copy_path(type, source_role_id: role&.id), + href: new_workflow_copy_path(type, source_role_id: roles&.first&.id), aria: { label: helpers.t(:button_copy) }, title: helpers.t(:button_copy) ) do |button| diff --git a/app/components/workflows/status_dialog_component.html.erb b/app/components/workflows/status_dialog_component.html.erb index 3727681676f..d9fe0c12065 100644 --- a/app/components/workflows/status_dialog_component.html.erb +++ b/app/components/workflows/status_dialog_component.html.erb @@ -42,7 +42,7 @@ See COPYRIGHT and LICENSE files for more details. Workflows::StatusFormComponent.new( all_statuses: @all_statuses, current_statuses: @current_statuses, - role: @role, + roles: @roles, type: @type, tab: @tab ) diff --git a/app/components/workflows/status_dialog_component.rb b/app/components/workflows/status_dialog_component.rb index 0f0ccde4560..2c724a58002 100644 --- a/app/components/workflows/status_dialog_component.rb +++ b/app/components/workflows/status_dialog_component.rb @@ -35,11 +35,11 @@ module Workflows DIALOG_ID = "workflows-status-dialog" - def initialize(all_statuses:, current_statuses:, role:, type:, tab:) + def initialize(all_statuses:, current_statuses:, roles:, type:, tab:) super @all_statuses = all_statuses @current_statuses = current_statuses - @role = role + @roles = roles @type = type @tab = tab end diff --git a/app/components/workflows/status_form_component.html.erb b/app/components/workflows/status_form_component.html.erb index d9bf8ef27b7..c41534cb44f 100644 --- a/app/components/workflows/status_form_component.html.erb +++ b/app/components/workflows/status_form_component.html.erb @@ -29,7 +29,7 @@ See COPYRIGHT and LICENSE files for more details. <%= primer_form_with( - url: helpers.confirm_statuses_workflow_tab_path(@type, @tab, role_id: @role.id), + url: helpers.confirm_statuses_workflow_tab_path(@type, @tab, role_ids: @roles.map(&:id)), method: :post, id: FORM_ID, data: { turbo_frame: "workflow-table" } @@ -39,7 +39,6 @@ See COPYRIGHT and LICENSE files for more details. f, all_statuses: @all_statuses, current_statuses: @current_statuses, - role: @role, type: @type, tab: @tab, dialog_id: diff --git a/app/components/workflows/status_form_component.rb b/app/components/workflows/status_form_component.rb index 114351c64b8..8b99cfc125e 100644 --- a/app/components/workflows/status_form_component.rb +++ b/app/components/workflows/status_form_component.rb @@ -32,11 +32,11 @@ module Workflows class StatusFormComponent < ApplicationComponent FORM_ID = "status-selection-form" - def initialize(all_statuses:, current_statuses:, role:, type:, tab:) + def initialize(all_statuses:, current_statuses:, roles:, type:, tab:) super @all_statuses = all_statuses @current_statuses = current_statuses - @role = role + @roles = roles @type = type @tab = tab end diff --git a/app/components/workflows/status_matrix_form_component.html.erb b/app/components/workflows/status_matrix_form_component.html.erb index 93522276a2f..a4fca03b305 100644 --- a/app/components/workflows/status_matrix_form_component.html.erb +++ b/app/components/workflows/status_matrix_form_component.html.erb @@ -32,21 +32,39 @@ See COPYRIGHT and LICENSE files for more details. render Primer::OpenProject::SubHeader.new do |subheader| if @type && @available_roles.any? subheader.with_filter_component do - render(Primer::Alpha::ActionMenu.new(select_variant: :single)) do |menu| - menu.with_show_button(scheme: :secondary) do |button| + render( + Primer::Alpha::SelectPanel.new( + select_variant: :multiple, + fetch_strategy: :local, + title: t("admin.workflows.role_selector.title"), + data: data_attributes + ) + ) do |panel| + panel.with_show_button(scheme: :secondary) do |button| button.with_trailing_visual_icon(icon: :"triangle-down") - @role ? t("admin.workflows.role_selector.label", role: @role.name) : t("admin.workflows.role_selector.no_role") + if @roles.many? + t("admin.workflows.role_selector.roles", count: @roles.size) + elsif @roles.one? + t("admin.workflows.role_selector.label", role: @roles.first.name) + else + t("admin.workflows.role_selector.no_role") + end end @available_roles.each do |available_role| - menu.with_item( + panel.with_item( label: available_role.name, - active: available_role == @role, - tag: :a, - href: helpers.edit_workflow_tab_path(@type, @tab, role_id: available_role.id), - content_arguments: { data: { "admin--workflow-checkbox-state-confirmation-trigger": "click", - turbo_action: "advance" } } + active: @roles.include?(available_role), + item_id: available_role.id ) end + panel.with_footer(show_divider: true) do + render( + Primer::Beta::Button.new( + scheme: :primary, + data: { action: "click->admin--workflow-role-select#apply" } + ) + ) { t(:button_apply) } + end end end end @@ -56,7 +74,7 @@ See COPYRIGHT and LICENSE files for more details. scheme: :secondary, leading_icon: :plus, label: t("admin.workflows.status_button"), - href: helpers.status_dialog_workflow_tab_path(@type, @tab, role_id: @role&.id, status_ids: @statuses.pluck(:id).presence), + href: helpers.status_dialog_workflow_tab_path(@type, @tab, role_ids: @roles.map(&:id), status_ids: @statuses.pluck(:id).presence), data: { controller: "async-dialog" } ) do t("admin.workflows.status_button") @@ -67,7 +85,7 @@ See COPYRIGHT and LICENSE files for more details. <% if @statuses.any? %> <%= form_tag( workflow_tab_path(@type), - id: "workflow_form", + id: form_id, method: :patch, autocomplete: "off", data: { @@ -76,7 +94,9 @@ See COPYRIGHT and LICENSE files for more details. } ) do %> <%= hidden_field_tag "type_id", @type.id %> - <%= hidden_field_tag "role_id", @role.id %> + <% @roles.each do |role| %> + <%= hidden_field_tag "role_ids[]", role.id %> + <% end %> <%= hidden_field_tag "tab", @tab %> <%= helpers.render_tabs helpers.workflow_tabs(@type) %> @@ -94,7 +114,7 @@ See COPYRIGHT and LICENSE files for more details. Primer::OpenProject::FeedbackDialog.new( title: t("admin.workflows.leave_confirmation.title"), data: { - "admin--workflow-checkbox-state-target": "confirmationDialog", + "admin--workflow-checkbox-state-target": "confirmationDialog" } ) ) do |dialog| @@ -118,6 +138,6 @@ See COPYRIGHT and LICENSE files for more details. %> <% end %> <% else %> - <%= render Workflows::BlankslateComponent.new(role: @role, type: @type, tab: @tab) %> + <%= render Workflows::BlankslateComponent.new(roles: @roles, type: @type, tab: @tab) %> <% end %> <% end %> diff --git a/app/components/workflows/status_matrix_form_component.rb b/app/components/workflows/status_matrix_form_component.rb index 14c3ade5fdb..5af6570d32f 100644 --- a/app/components/workflows/status_matrix_form_component.rb +++ b/app/components/workflows/status_matrix_form_component.rb @@ -33,14 +33,29 @@ module Workflows include OpTurbo::Streamable include OpPrimer::ComponentHelpers - def initialize(tab:, role:, type:, available_roles:, statuses:, has_status_changes:) + FORM_ID = "workflow_form" + + def initialize(tab:, roles:, type:, available_roles:, statuses:, has_status_changes:) super @tab = tab - @role = role + @roles = roles @type = type @available_roles = available_roles @statuses = statuses @has_status_changes = has_status_changes end + + private + + def form_id = FORM_ID + + def data_attributes + { + controller: "admin--workflow-role-select", + "admin--workflow-role-select-base-url-value": helpers.edit_workflow_tab_path(@type, @tab), + "admin--workflow-role-select-current-role-ids-value": @roles.map(&:id), + "admin--workflow-role-select-admin--workflow-checkbox-state-outlet": "##{form_id}" + } + end end end diff --git a/app/components/workflows/status_removal_danger_dialog_component.html.erb b/app/components/workflows/status_removal_danger_dialog_component.html.erb index c2b020ff5b7..9846295eb11 100644 --- a/app/components/workflows/status_removal_danger_dialog_component.html.erb +++ b/app/components/workflows/status_removal_danger_dialog_component.html.erb @@ -46,7 +46,7 @@ See COPYRIGHT and LICENSE files for more details. # The reason this is done here is because the submit is not a DELETE, and GET form submissions # strip url params dialog.with_additional_details do - concat(hidden_field_tag(:role_id, @role.id)) + @roles.each { |role| concat(hidden_field_tag("role_ids[]", role.id)) } @status_ids.each { |id| concat(hidden_field_tag("status_ids[]", id)) } end end diff --git a/app/components/workflows/status_removal_danger_dialog_component.rb b/app/components/workflows/status_removal_danger_dialog_component.rb index 1753687632a..d3f926f24c3 100644 --- a/app/components/workflows/status_removal_danger_dialog_component.rb +++ b/app/components/workflows/status_removal_danger_dialog_component.rb @@ -35,9 +35,9 @@ module Workflows DIALOG_ID = "workflows-status-removal-dialog" - def initialize(role:, type:, tab:, status_ids:, removed_count:) + def initialize(roles:, type:, tab:, status_ids:, removed_count:) super - @role = role + @roles = roles @type = type @tab = tab @status_ids = Array(status_ids).flatten.map(&:to_i) diff --git a/app/contracts/custom_actions/execute_contract.rb b/app/contracts/custom_actions/execute_contract.rb index ea0d2b76ac7..8f327dd7806 100644 --- a/app/contracts/custom_actions/execute_contract.rb +++ b/app/contracts/custom_actions/execute_contract.rb @@ -35,6 +35,7 @@ module CustomActions validates :work_package_id, presence: true validate :work_package_visible + validate :custom_action_conditions_fulfilled private @@ -45,5 +46,17 @@ module CustomActions errors.add(:work_package_id, :does_not_exist) end end + + def custom_action_conditions_fulfilled + return unless model.work_package_id + return unless options[:custom_action] + + work_package = WorkPackage.visible(user).find_by(id: model.work_package_id) + return unless work_package + + unless options[:custom_action].conditions_fulfilled?(work_package, user) + errors.add(:base, :error_unauthorized) + end + end end end diff --git a/app/contracts/model_contract.rb b/app/contracts/model_contract.rb index 77c76917d9e..a327bf67bd9 100644 --- a/app/contracts/model_contract.rb +++ b/app/contracts/model_contract.rb @@ -34,6 +34,40 @@ require_relative "base_contract" # Model contract for AR records that # support change tracking class ModelContract < BaseContract + # Declares an attribute backed by the `store_attribute` gem (a virtual + # accessor for a key inside a JSONB column). store_attribute marks both the + # virtual attribute and the underlying column as dirty, which would otherwise + # trip the readonly check on the column. This DSL registers the virtual + # attribute as writable and, on first use per store column, declares the + # column itself as writable iff every dirty key in it is one that has been + # registered via `stored_attribute`. + def self.stored_attribute(name, store:) + store = store.to_sym + register_store_column(store) unless stored_keys_per_store.key?(store) + stored_keys_per_store[store] << name.to_s + + attribute name + end + + def self.register_store_column(store) + contract_class = self + attribute store, writable: -> { + allowed = contract_class.allowed_stored_keys_for(store) + model.public_send(:"#{store}_change")&.none? { |hash| hash.except(*allowed).any? } + } + end + + def self.stored_keys_per_store + @stored_keys_per_store ||= Hash.new { |h, k| h[k] = Set.new } + end + + def self.allowed_stored_keys_for(store) + ancestors + .select { |a| a.respond_to?(:stored_keys_per_store, true) } + .flat_map { |a| a.stored_keys_per_store.key?(store) ? a.stored_keys_per_store[store].to_a : [] } + .uniq + end + # Runs all the specified validations and returns +true+ if no errors were # added otherwise +false+. # Validations on the model as well as on the contract are run. diff --git a/app/contracts/oauth_clients/create_contract.rb b/app/contracts/oauth_clients/create_contract.rb index 826932020c8..83df00f5397 100644 --- a/app/contracts/oauth_clients/create_contract.rb +++ b/app/contracts/oauth_clients/create_contract.rb @@ -36,7 +36,10 @@ module OAuthClients validates :client_id, presence: true, length: { maximum: 255 } attribute :client_secret, writable: true - validates :client_secret, presence: true, length: { maximum: 255 } + validates :client_secret, presence: true, if: :client_secret_required? + validates :client_secret, length: { maximum: 255 } + + def client_secret_required? = true attribute :integration_type, writable: true validates :integration_type, presence: true diff --git a/app/contracts/roles/base_contract.rb b/app/contracts/roles/base_contract.rb index 58815bdf8d2..0f4bfbf34e5 100644 --- a/app/contracts/roles/base_contract.rb +++ b/app/contracts/roles/base_contract.rb @@ -73,6 +73,11 @@ module Roles [] end + # For now, we also remove all permissions related to resource management as this module is still behind FF + unless Rails.env.local? + permissions_to_remove += OpenProject::AccessControl.module_permissions(:resource_management) + end + OpenProject::AccessControl.project_permissions - permissions_to_remove end diff --git a/app/contracts/users/base_contract.rb b/app/contracts/users/base_contract.rb index 5c04d1e1588..11a46ed6c52 100644 --- a/app/contracts/users/base_contract.rb +++ b/app/contracts/users/base_contract.rb @@ -115,13 +115,11 @@ module Users errors.add(:identity_url, :error_readonly) if model.user_auth_provider_links.any?(&:changed?) end - # rubocop:disable Rails/DynamicFindBy def existing_auth_source if ldap_auth_source_id && LdapAuthSource.find_by_unique(ldap_auth_source_id).nil? errors.add :auth_source, :error_not_found end end - # rubocop:enable Rails/DynamicFindBy def can_create_or_manage_users? user.allowed_globally?(:manage_user) || user.allowed_globally?(:create_user) diff --git a/app/contracts/wiki_pages/base_contract.rb b/app/contracts/wiki_pages/base_contract.rb index 506e202685e..3f54a842b7e 100644 --- a/app/contracts/wiki_pages/base_contract.rb +++ b/app/contracts/wiki_pages/base_contract.rb @@ -48,7 +48,7 @@ module WikiPages def validate_user_edit_allowed if (model.project && !user.allowed_in_project?(:edit_wiki_pages, model.project)) || - (model.protected_was && !user.allowed_in_project?(:protect_wiki_pages, model.project)) + (model.protected_was && !user.allowed_in_project?(:manage_wiki, model.project)) errors.add :base, :error_unauthorized end end @@ -62,7 +62,7 @@ module WikiPages end def validate_user_protect_permission - if model.protected_changed? && !user.allowed_in_project?(:protect_wiki_pages, model.project) + if model.protected_changed? && !user.allowed_in_project?(:manage_wiki, model.project) errors.add :protected, :error_unauthorized end end diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index e77963a5411..66ed402b726 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -268,10 +268,12 @@ class ApplicationController < ActionController::Base @project = @object.project end - # Filter for bulk work package operations + # Filter for bulk work package operations. Either :work_package_id (single-WP + # routes) or :ids (bulk routes) may carry numeric or semantic identifiers + # ("PROJ-42") since both originate from human-facing URLs or forms. def find_work_packages - @work_packages = WorkPackage.includes(:project) - .where(id: params[:work_package_id] || params[:ids]) + @work_packages = WorkPackage.where_display_id_in(params[:work_package_id] || params[:ids]) + .includes(:project) .order("id ASC") fail ActiveRecord::RecordNotFound if @work_packages.empty? diff --git a/app/controllers/my/sessions_controller.rb b/app/controllers/my/sessions_controller.rb index b2ac09c4d35..9246776456d 100644 --- a/app/controllers/my/sessions_controller.rb +++ b/app/controllers/my/sessions_controller.rb @@ -52,7 +52,7 @@ module My token = cookies[OpenProject::Configuration["autologin_cookie_name"]] if token - @current_token = @autologin_tokens.find_by_plaintext_value(token) # rubocop:disable Rails/DynamicFindBy + @current_token = @autologin_tokens.find_by_plaintext_value(token) end end diff --git a/app/controllers/oauth_clients_controller.rb b/app/controllers/oauth_clients_controller.rb index 30590a48ff9..84f9b6d3e6c 100644 --- a/app/controllers/oauth_clients_controller.rb +++ b/app/controllers/oauth_clients_controller.rb @@ -74,22 +74,24 @@ class OAuthClientsController < ApplicationController # rubocop:disable Metrics/AbcSize def ensure_connection client_id = params.fetch(:oauth_client_id) - storage_id = params.fetch(:storage_id) - oauth_client = OAuthClient.find_by(client_id:, integration_id: storage_id) + integration_id = params.fetch(:integration_id) + oauth_client = OAuthClient.find_by(client_id:, integration_id:) - handle_absent_oauth_client unless oauth_client + return handle_absent_oauth_client unless oauth_client - storage = oauth_client.integration - # check if the origin is the same + integration = oauth_client.integration destination_url = destination_url(params.fetch(:destination_url, "")) - auth_state = ::Storages::Adapters::Authentication.authorization_state(storage:, user: User.current) + configuration = integration.oauth_configuration + connection = ::OAuthClients::ConnectionManager.new(user: User.current, configuration:) + .get_access_token - if auth_state == :connected + if connection.success? redirect_to(destination_url) else nonce = SecureRandom.uuid - cookies["oauth_state_#{nonce}"] = { value: { href: destination_url, storageId: storage_id }.to_json, expires: 1.hour } - redirect_to(storage.oauth_configuration.authorization_uri(state: nonce), allow_other_host: true) + cookies["oauth_state_#{nonce}"] = { value: { href: destination_url, integrationId: integration_id }.to_json, + expires: 1.hour } + redirect_to(configuration.authorization_uri(state: nonce), allow_other_host: true) end end @@ -198,7 +200,7 @@ class OAuthClientsController < ApplicationController # This must be fixed in #50872. state_value = MultiJson.load(cookie, symbolize_keys: true) @oauth_client = OAuthClient.find_by(client_id: params[:oauth_client_id], - integration_id: state_value[:storageId]) + integration_id: state_value[:integrationId]) end @oauth_client = oauth_client_from_cookie.call diff --git a/app/controllers/wiki_controller.rb b/app/controllers/wiki_controller.rb index 72896441f84..863781e1421 100644 --- a/app/controllers/wiki_controller.rb +++ b/app/controllers/wiki_controller.rb @@ -86,7 +86,7 @@ class WikiController < ApplicationController end # display a page (in editing mode if it doesn't exist) - def show + def show # rubocop:disable Metrics/AbcSize # Set the related page ID to make it the parent of new links flash[:_related_wiki_page_id] = @page.id @@ -94,7 +94,7 @@ class WikiController < ApplicationController @page = ::WikiPages::AtVersion.new(@page, version) - if params[:format] == "markdown" && User.current.allowed_in_project?(:export_wiki_pages, @project) + if params[:format] == "markdown" && User.current.allowed_in_project?(:view_wiki_pages, @project) send_data(@page.text, type: "text/plain", filename: "#{@page.title}.md") return end @@ -182,7 +182,7 @@ class WikiController < ApplicationController end # rename a page - def rename + def rename # rubocop:disable Metrics/AbcSize return render_403 unless editable? @page.redirect_existing_links = true @@ -222,7 +222,7 @@ class WikiController < ApplicationController def wiki_root_menu_items MenuItems::WikiMenuItem .main_items(@wiki.id) - .map { |it| OpenStruct.new name: it.name, caption: it.title, item: it } + .map { OpenStruct.new name: it.name, caption: it.title, item: it } end def edit_parent_page @@ -252,12 +252,11 @@ class WikiController < ApplicationController # show page history def history # don't load text - @versions = @page - .journals - .select(:id, :user_id, :notes, :created_at, :version) - .order(Arel.sql("version DESC")) - .page(page_param) - .per_page(per_page_param) + @versions = @page.journals + .select(:id, :user_id, :notes, :created_at, :version) + .order(version: :desc) + .page(page_param) + .per_page(per_page_param) render layout: !request.xhr? end @@ -307,7 +306,7 @@ class WikiController < ApplicationController return end end - @page.destroy + @page.destroy! flash[:notice] = I18n.t(:notice_successful_delete) if page = @wiki.find_page(@wiki.start_page) || @wiki.pages.first @@ -319,7 +318,7 @@ class WikiController < ApplicationController # Export wiki to a single html file def export - if User.current.allowed_in_project?(:export_wiki_pages, @project) + if User.current.allowed_in_project?(:view_wiki_pages, @project) @pages = @wiki.pages.order(Arel.sql("title")) export = render_to_string action: "export_multiple", layout: false send_data(export, type: "text/html", filename: "wiki.html") @@ -358,7 +357,7 @@ class WikiController < ApplicationController def page_for_menu_item(page) if page == :parent_page page = send(:page) - page = page.parent if page && page.parent + page = page.parent if page&.parent else page = send(page) end @@ -406,9 +405,9 @@ class WikiController < ApplicationController # Using the empty contract here as we use the method to instantiate the model, not to save it (new and new_child action). # Errors are expected here as the user has not yet entered any data. @page = WikiPages::SetAttributesService - .new(model: WikiPage.new, user: current_user, contract_class: EmptyContract) - .call(wiki: @wiki, title: wiki_page_title.presence, parent_id: flash[:_related_wiki_page_id]) - .result + .new(model: WikiPage.new, user: current_user, contract_class: EmptyContract) + .call(wiki: @wiki, title: wiki_page_title.presence, parent_id: flash[:_related_wiki_page_id]) + .result end # Returns true if the current user is allowed to edit the page, otherwise false diff --git a/app/controllers/workflows/tabs_controller.rb b/app/controllers/workflows/tabs_controller.rb index 94c9805c22a..a6c2c175787 100644 --- a/app/controllers/workflows/tabs_controller.rb +++ b/app/controllers/workflows/tabs_controller.rb @@ -38,27 +38,37 @@ class Workflows::TabsController < ApplicationController before_action :set_type before_action :set_tab before_action :set_eligible_roles - before_action :set_role + before_action :set_roles def edit unless turbo_frame_request? - redirect_to edit_workflow_path(@type, role_id: params[:role_id], tab: @tab) + redirect_to edit_workflow_path(@type, role_ids: params[:role_ids], tab: @tab) return end statuses_for_form - if @type && @role && @statuses.any? + if @type && @roles.any? && @statuses.any? workflows_for_form end end - def update - call = Workflows::BulkUpdateService - .new(role: @role, type: @type, tab: @tab) - .call(permitted_status_params) + def update # rubocop:disable Metrics/AbcSize + success = false + Workflow.transaction do + success = true + base_params = permitted_status_params + indeterminate = permitted_indeterminate_params + @roles.each do |role| + role_params = indeterminate.empty? ? base_params : role_specific_params(base_params, indeterminate, role) + result = Workflows::BulkUpdateService.new(role:, type: @type, tab: @tab) + .call(role_params) + success = false unless result.success? + end + raise ActiveRecord::Rollback unless success + end - if call.success? + if success render_flash_message_via_turbo_stream( message: I18n.t(:notice_successful_update), scheme: :success @@ -69,7 +79,7 @@ class Workflows::TabsController < ApplicationController update_via_turbo_stream( component: Workflows::StatusMatrixFormComponent.new( tab: @tab, - role: @role, + roles: @roles, type: @type, available_roles: @eligible_roles, statuses:, @@ -92,8 +102,8 @@ class Workflows::TabsController < ApplicationController all_statuses = Status.order(:position) current_statuses = if params[:status_ids].present? Status.where(id: params[:status_ids].map(&:to_i)).order(:position) - elsif @type && @role - statuses_for_role_and_type + elsif @type && @roles.any? + statuses_for_roles_and_type else Status.none end @@ -101,7 +111,7 @@ class Workflows::TabsController < ApplicationController respond_with_dialog Workflows::StatusDialogComponent.new( all_statuses:, current_statuses:, - role: @role, + roles: @roles, type: @type, tab: @tab ) @@ -114,7 +124,7 @@ class Workflows::TabsController < ApplicationController if removed_count > 0 respond_with_dialog Workflows::StatusRemovalDangerDialogComponent.new( - role: @role, + roles: @roles, type: @type, tab: @tab, status_ids: current_status_ids, @@ -125,7 +135,7 @@ class Workflows::TabsController < ApplicationController update_via_turbo_stream( component: Workflows::StatusMatrixFormComponent.new( tab: @tab, - role: @role, + roles: @roles, type: @type, available_roles: @eligible_roles, statuses:, @@ -150,8 +160,9 @@ class Workflows::TabsController < ApplicationController @eligible_roles = Workflow.eligible_roles.order(:builtin, :position) end - def set_role - @role = @eligible_roles.find(params[:role_id]) + def set_roles + @roles = @eligible_roles.where(id: params[:role_ids]) + @roles = [@eligible_roles.first] if @roles.empty? end def statuses_for_form @@ -159,8 +170,8 @@ class Workflows::TabsController < ApplicationController @has_status_changes = false @statuses = if @type && params[:status_ids].present? statuses_from_params - elsif @type && @role - statuses_for_role_and_type + elsif @type && @roles.any? + statuses_for_roles_and_type elsif @type @type.statuses else @@ -170,18 +181,19 @@ class Workflows::TabsController < ApplicationController def statuses_from_params status_ids = params[:status_ids].map(&:to_i) - saved_ids = statuses_for_role_and_type.pluck(:id) + saved_ids = statuses_for_roles_and_type.pluck(:id) @added_status_ids = status_ids - saved_ids @has_status_changes = @added_status_ids.any? || (saved_ids - status_ids).any? Status.where(id: status_ids).order(:position) end - def statuses_for_role_and_type - @type.statuses(role: @role, tab: @tab) + def statuses_for_roles_and_type + status_ids = @roles.map { |role| @type.statuses(role:, tab: @tab).pluck(:id) }.flatten.uniq + Status.where(id: status_ids) end def workflows_for_form - workflows = Workflow.where(role_id: @role.id, type_id: @type.id) + workflows = Workflow.where(role_id: @roles.map(&:id), type_id: @type.id) @workflows = {} @workflows["always"] = workflows.select { |w| !w.author && !w.assignee } @workflows["author"] = workflows.select(&:author) @@ -189,10 +201,40 @@ class Workflows::TabsController < ApplicationController end def permitted_status_params - return {} if params["status"].blank? + status_params("status") + end - params["status"] + def permitted_indeterminate_params + status_params("indeterminate_status") + end + + def status_params(key) + return {} if params[key].blank? + + params[key] .to_unsafe_h - .select { |key, value| /\A\d+\z/.match?(key) && value.keys.all? { /\A\d+\z/.match?(it) } } + .select { |k, value| /\A\d+\z/.match?(k) && value.keys.all? { /\A\d+\z/.match?(it) } } + end + + def role_specific_params(base_params, indeterminate, role) + params = base_params.deep_dup + indeterminate.each do |old_id, new_ids| + new_ids.each_key do |new_id| + # Restore from DB so that it isn't overwritten by indeterminate state (unchecked) + had_transition = Workflow.exists?( + role_id: role.id, + type_id: @type.id, + old_status_id: old_id.to_i, + new_status_id: new_id.to_i, + author: @tab == "author", + assignee: @tab == "assignee" + ) + if had_transition + params[old_id] ||= {} + params[old_id][new_id] = "1" + end + end + end + params end end diff --git a/app/controllers/workflows_controller.rb b/app/controllers/workflows_controller.rb index 82b03b15118..3de82fd8d54 100644 --- a/app/controllers/workflows_controller.rb +++ b/app/controllers/workflows_controller.rb @@ -38,7 +38,7 @@ class WorkflowsController < ApplicationController before_action :find_types, only: %i[index] before_action :find_type, only: %i[edit] - before_action :find_optional_role, only: %i[edit] + before_action :find_optional_roles, only: %i[edit] def index; end @@ -56,16 +56,14 @@ class WorkflowsController < ApplicationController @types = ::Type.order(:position) end - def find_role - @role = eligible_roles.find(params[:role_id]) - end - def find_type @type = ::Type.find(params[:type_id]) end - def find_optional_role - @role = eligible_roles.find_by(id: params[:role_id]) || eligible_roles.order(:builtin, :position).first + def find_optional_roles + ordered = eligible_roles.order(:builtin, :position) + @roles = ordered.where(id: params[:role_ids]) + @roles = [ordered.first] if @roles.empty? end def eligible_roles diff --git a/app/forms/admin/settings/experimental_settings_form.rb b/app/forms/admin/settings/experimental_settings_form.rb index 0fb07a65633..d41ac561aae 100644 --- a/app/forms/admin/settings/experimental_settings_form.rb +++ b/app/forms/admin/settings/experimental_settings_form.rb @@ -39,6 +39,8 @@ module Admin visually_hide_label: true ) do |group| available_feature_flags.each do |(label, name)| + next if !setting_value(name) && setting_disabled?(name) + group.check_box( name:, label:, diff --git a/app/forms/settings/new_project_settings_form.rb b/app/forms/settings/new_project_settings_form.rb index 0e97ca72108..d3c8befceee 100644 --- a/app/forms/settings/new_project_settings_form.rb +++ b/app/forms/settings/new_project_settings_form.rb @@ -51,19 +51,42 @@ module Settings f.select_list( name: :new_project_user_role_id, label: I18n.t(:setting_new_project_user_role_id), + caption: I18n.t(:setting_new_project_user_role_id_caption), input_width: :medium, - include_blank: I18n.t(:actionview_instancetag_blank_option) + include_blank: false ) do |select| - ProjectRole.givable.each do |role| - select.option( - value: role.id.to_s, - label: role.name, - selected: Setting.new_project_user_role_id == role.id - ) - end + build_new_project_user_role_options(select) end f.submit end + + # Adds the role options to the new_project_user_role_id select. Roles that pass the + # `assignable_to_project_creator` filter are listed first; the currently configured role is + # always included even when it has lost required permissions (with a label suffix), so the + # admin can see and change the current selection. + def build_new_project_user_role_options(select) + assignable = ProjectRole.assignable_to_project_creator.to_a + assignable.each { |role| add_assignable_role_option(select, role) } + + configured = ProjectRole.givable.find_by(id: Setting.new_project_user_role_id) + add_non_qualifying_role_option(select, configured) if configured && assignable.exclude?(configured) + end + + def add_assignable_role_option(select, role) + select.option( + value: role.id.to_s, + label: role.name, + selected: Setting.new_project_user_role_id == role.id + ) + end + + def add_non_qualifying_role_option(select, role) + select.option( + value: role.id.to_s, + label: I18n.t(:label_role_missing_permissions, role: role.name), + selected: true + ) + end end end diff --git a/app/forms/workflows/status_select_form.rb b/app/forms/workflows/status_select_form.rb index cb6c4cf106f..f650969ea3e 100644 --- a/app/forms/workflows/status_select_form.rb +++ b/app/forms/workflows/status_select_form.rb @@ -30,18 +30,16 @@ module Workflows class StatusSelectForm < ApplicationForm - def initialize(all_statuses:, current_statuses:, role:, type:, tab:, dialog_id:) + def initialize(all_statuses:, current_statuses:, type:, tab:, dialog_id:) super() @all_statuses = all_statuses @current_statuses = current_statuses - @role = role @type = type @tab = tab @dialog_id = dialog_id end form do |f| - f.hidden(name: :role_id, value: @role.id) f.hidden(name: :type_id, value: @type.id) f.hidden(name: :tab, value: @tab || "always") @current_statuses.each { |status| f.hidden(name: "original_status_ids[]", value: status.id) } diff --git a/app/helpers/work_packages/split_view_helper.rb b/app/helpers/work_packages/split_view_helper.rb index 9fc30f347ab..5b12485489a 100644 --- a/app/helpers/work_packages/split_view_helper.rb +++ b/app/helpers/work_packages/split_view_helper.rb @@ -33,6 +33,14 @@ module WorkPackages::SplitViewHelper params[:work_package_split_view].present? end + def render_work_package_split_create? + params[:work_package_split_create].present? + end + + def split_create_instance + WorkPackages::SplitCreateComponent.new(project_identifier: params[:project_id]) + end + def split_view_instance WorkPackages::SplitViewComponent.new(id: params[:work_package_id], tab: params[:tab], diff --git a/app/helpers/workflow_helper.rb b/app/helpers/workflow_helper.rb index a56b291fce3..61c7007adb0 100644 --- a/app/helpers/workflow_helper.rb +++ b/app/helpers/workflow_helper.rb @@ -37,7 +37,7 @@ module WorkflowHelper ].map do |tab| tab.merge( partial: "workflows/form", - path: edit_workflow_tab_path(type, tab[:name], params.permit(:role_id)), + path: edit_workflow_tab_path(type, tab[:name], params.permit(role_ids: [])), data: { "admin--workflow-checkbox-state-confirmation-trigger": "click", turbo_frame: "workflow-table", turbo_action: "advance" } diff --git a/app/mailers/reminders/notification_mailer.rb b/app/mailers/reminders/notification_mailer.rb index d0a2e0ed116..8fa0a8d9eff 100644 --- a/app/mailers/reminders/notification_mailer.rb +++ b/app/mailers/reminders/notification_mailer.rb @@ -75,7 +75,7 @@ class Reminders::NotificationMailer < ApplicationMailer end def work_package_subject_text_wrapper - "=" * ("# #{@work_package.id}#{@work_package.subject}".length + 4) + "=" * ("#{@work_package.formatted_id} #{@work_package.subject}".length + 4) end def text_email_wrapper diff --git a/app/mailers/sharing_mailer.rb b/app/mailers/sharing_mailer.rb index 917714e0cb0..af5f409d15c 100644 --- a/app/mailers/sharing_mailer.rb +++ b/app/mailers/sharing_mailer.rb @@ -49,7 +49,7 @@ class SharingMailer < ApplicationMailer send_localized_mail(@shared_with_user) do @role_rights = derive_role_rights(role) @allowed_work_package_actions = derive_allowed_work_package_actions(role) - I18n.t("mail.sharing.work_packages.subject", id: @work_package.id) + I18n.t("mail.sharing.work_packages.subject", id: @work_package.formatted_id) end end diff --git a/app/mailers/work_package_mailer.rb b/app/mailers/work_package_mailer.rb index 75a48ac27c5..f150e18834e 100644 --- a/app/mailers/work_package_mailer.rb +++ b/app/mailers/work_package_mailer.rb @@ -47,7 +47,7 @@ class WorkPackageMailer < ApplicationMailer send_localized_mail(recipient) do I18n.t(:"mail.mention.subject", user_name: author.name, - id: @work_package.id, + id: @work_package.formatted_id, subject: @work_package.subject) end end @@ -73,7 +73,7 @@ class WorkPackageMailer < ApplicationMailer def subject_for_work_package(work_package) "#{work_package.project.name} - #{work_package.status.name} #{work_package.type.name} " + - "##{work_package.id}: #{work_package.subject}" + "#{work_package.formatted_id}: #{work_package.subject}" end def set_work_package_headers(work_package) diff --git a/app/models/custom_field/order_statements.rb b/app/models/custom_field/order_statements.rb index 8703e6dd4a3..6acd2d607bc 100644 --- a/app/models/custom_field/order_statements.rb +++ b/app/models/custom_field/order_statements.rb @@ -113,16 +113,16 @@ module CustomField::OrderStatements # ) cf_order_NNN ON cf_order_NNN.customized_id = … # def join_for_order_sql(value:, add_select: nil, join: nil, multi_value: false) - <<-SQL.squish + <<~SQL.squish LEFT OUTER JOIN ( SELECT - #{multi_value ? '' : 'DISTINCT ON (cv.customized_id)'} + #{'DISTINCT ON (cv.customized_id)' unless multi_value} cv.customized_id , #{value} "value" #{", #{add_select}" if add_select} FROM #{CustomValue.quoted_table_name} cv #{join} - WHERE cv.customized_type = #{CustomValue.connection.quote(self.class.customized_class.name)} + WHERE cv.customized_type = #{CustomValue.connection.quote(self.class.customized_class.base_class.name)} AND cv.custom_field_id = #{id} AND cv.value IS NOT NULL AND cv.value != '' diff --git a/app/models/health_report.rb b/app/models/health_report.rb new file mode 100644 index 00000000000..d5a7f816e84 --- /dev/null +++ b/app/models/health_report.rb @@ -0,0 +1,51 @@ +# frozen_string_literal: true + +#-- copyright +# OpenProject is an open source project management software. +# Copyright (C) the OpenProject GmbH +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License version 3. +# +# OpenProject is a fork of ChiliProject, which is a fork of Redmine. The copyright follows: +# Copyright (C) 2006-2013 Jean-Philippe Lang +# Copyright (C) 2010-2013 the ChiliProject Team +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +# See COPYRIGHT and LICENSE files for more details. +#++ + +class HealthReport < ApplicationRecord + belongs_to :subject, polymorphic: true + + serialize :results, coder: HealthReport::ResultGroup + + def healthy? = results.all?(&:success?) + + def unhealthy? = results.any?(&:failure?) + + def warning? = results.any?(&:warning?) + + def group(key) + results.find { |group| group.key == key } + end + + def tally + results.reduce({}) do |tally, group| + tally.merge(group.tally) { |_, v1, v2| v1 + v2 } + end + end +end diff --git a/app/models/health_report/result.rb b/app/models/health_report/result.rb new file mode 100644 index 00000000000..9a94523cbb2 --- /dev/null +++ b/app/models/health_report/result.rb @@ -0,0 +1,82 @@ +# frozen_string_literal: true + +#-- copyright +# OpenProject is an open source project management software. +# Copyright (C) the OpenProject GmbH +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License version 3. +# +# OpenProject is a fork of ChiliProject, which is a fork of Redmine. The copyright follows: +# Copyright (C) 2006-2013 Jean-Philippe Lang +# Copyright (C) 2010-2013 the ChiliProject Team +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +# See COPYRIGHT and LICENSE files for more details. +#++ + +class HealthReport + class Result + class << self + def skipped(key) + new(key:, state: :skipped, code: nil, context: nil) + end + + def success(key) + new(key:, state: :success, code: nil, context: nil) + end + + def failure(key, code, context) + new(key:, state: :failure, code:, context:) + end + + def warning(key, code, context) + new(key:, state: :warning, code:, context:) + end + + # Used for deserialization + def load(parsed_json) + new( + key: parsed_json.fetch("key"), + state: parsed_json.fetch("state"), + code: parsed_json.fetch("code"), + context: parsed_json.fetch("context") + ) + end + end + + attr_reader :key, :state, :code, :context + + def initialize(key:, state:, code:, context:) + @key = key + @state = state.to_sym + @code = code + @context = context + end + + def success? = state == :success + + def failure? = state == :failure + + def warning? = state == :warning + + def skipped? = state == :skipped + + def to_h + { key:, state:, code:, context: } + end + end +end diff --git a/app/models/health_report/result_group.rb b/app/models/health_report/result_group.rb new file mode 100644 index 00000000000..ebfca71aa97 --- /dev/null +++ b/app/models/health_report/result_group.rb @@ -0,0 +1,82 @@ +# frozen_string_literal: true + +#-- copyright +# OpenProject is an open source project management software. +# Copyright (C) the OpenProject GmbH +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License version 3. +# +# OpenProject is a fork of ChiliProject, which is a fork of Redmine. The copyright follows: +# Copyright (C) 2006-2013 Jean-Philippe Lang +# Copyright (C) 2010-2013 the ChiliProject Team +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +# See COPYRIGHT and LICENSE files for more details. +#++ + +class HealthReport + class ResultGroup + class << self + # Used for serialization in health report + # Note: Because we deserialize from jsonb, we don't expect a string + # but already parsed json + def load(parsed_json) + Array(parsed_json).map { |h| new(key: h.fetch("key"), results: h.fetch("results").map { |r| Result.load(r) }) } + end + + # Used for serialization in health report + # Note: Because we serialize into jsonb, we don't return a string (JSON.dump) + # but return a hash/array directly. + def dump(value) + if value.is_a?(Array) + value.map(&:to_h) + else + value.to_h + end + end + end + + attr_reader :key, :results + + def initialize(key:, results: []) + @key = key + @results = results + end + + def success? = results.all?(&:success?) + + def non_failure? = results.none?(&:failure?) + + def failure? = results.any?(&:failure?) + + def warning? = results.any?(&:warning?) + + def result_for(key) + results.find { |r| r.key == key } + end + + alias [] result_for + + def tally + results.map(&:state).tally + end + + def to_h + { key:, results: results.map(&:to_h) } + end + end +end diff --git a/app/models/oauth_client_token.rb b/app/models/oauth_client_token.rb index 78965079dcd..41abc5cdda1 100644 --- a/app/models/oauth_client_token.rb +++ b/app/models/oauth_client_token.rb @@ -36,7 +36,7 @@ class OAuthClientToken < ApplicationRecord validates :user, uniqueness: { scope: :oauth_client } validates :access_token, presence: true - validates :refresh_token, presence: true + validates :refresh_token, presence: true, if: -> { expires_in.present? } scope :for_user_and_client, ->(user, client) { where(user:, oauth_client: client) } end diff --git a/modules/backlogs/lib/open_project/backlogs/patches/api/v3/utilities/resource_link_generator_patch.rb b/app/models/ordered_persisted_query_entity.rb similarity index 78% rename from modules/backlogs/lib/open_project/backlogs/patches/api/v3/utilities/resource_link_generator_patch.rb rename to app/models/ordered_persisted_query_entity.rb index bb807597a5b..55931d9b251 100644 --- a/modules/backlogs/lib/open_project/backlogs/patches/api/v3/utilities/resource_link_generator_patch.rb +++ b/app/models/ordered_persisted_query_entity.rb @@ -28,20 +28,12 @@ # See COPYRIGHT and LICENSE files for more details. #++ -module OpenProject::Backlogs::Patches::API::V3::Utilities::ResourceLinkGeneratorPatch - extend ActiveSupport::Concern +class OrderedPersistedQueryEntity < ApplicationRecord + belongs_to :persisted_query, optional: false + belongs_to :entity, polymorphic: true, optional: false - included do - singleton_class.prepend(ClassMethods) - end + validates :position, presence: true + validates :entity_id, uniqueness: { scope: %i[persisted_query_id entity_type] } - module ClassMethods - private - - def determine_path_method(record) - return :sprint if record.is_a?(Agile::Sprint) - - super - end - end + default_scope { order(position: :asc) } end diff --git a/app/models/persisted_query.rb b/app/models/persisted_query.rb new file mode 100644 index 00000000000..19532a062ac --- /dev/null +++ b/app/models/persisted_query.rb @@ -0,0 +1,79 @@ +# frozen_string_literal: true + +#-- copyright +# OpenProject is an open source project management software. +# Copyright (C) the OpenProject GmbH +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License version 3. +# +# OpenProject is a fork of ChiliProject, which is a fork of Redmine. The copyright follows: +# Copyright (C) 2006-2013 Jean-Philippe Lang +# Copyright (C) 2010-2013 the ChiliProject Team +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +# See COPYRIGHT and LICENSE files for more details. +#++ + +class PersistedQuery < ApplicationRecord + include Queries::BaseQuery + include Queries::Serialization::Hash + include ::Scopes::Scoped + + belongs_to :project, optional: true + belongs_to :principal, optional: true, inverse_of: :persisted_queries + + has_many :views, class_name: "PersistedView", + as: :query, + dependent: :restrict_with_error, + inverse_of: :query + + has_many :ordered_entities, -> { order(position: :asc) }, + class_name: "OrderedPersistedQueryEntity", + dependent: :destroy, + inverse_of: :persisted_query + + validates :name, length: { maximum: 255, allow_nil: true } + + def self.inherited(subclass) + super + subclass.serialize :filters, coder: Queries::Serialization::Filters.new(subclass) + subclass.serialize :orders, coder: Queries::Serialization::Orders.new(subclass) + subclass.serialize :selects, coder: Queries::Serialization::Selects.new(subclass) + end + + def self.register_query(&) + Queries::Register.register(self, &) + end + + def user + principal if principal.is_a?(User) + end + + def user=(user) + self.principal = user + end + + # Returns the query results, bypassing filters and orders when the query has + # manually-added entities — in that case they are returned in the order + # stored on the join records. + def results + return super if ordered_entities.empty? + + entity_ids = ordered_entities.pluck(:entity_id) + self.class.model.where(id: entity_ids).in_order_of(:id, entity_ids) + end +end diff --git a/app/models/persisted_view.rb b/app/models/persisted_view.rb new file mode 100644 index 00000000000..9646870b784 --- /dev/null +++ b/app/models/persisted_view.rb @@ -0,0 +1,103 @@ +# frozen_string_literal: true + +#-- copyright +# OpenProject is an open source project management software. +# Copyright (C) the OpenProject GmbH +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License version 3. +# +# OpenProject is a fork of ChiliProject, which is a fork of Redmine. The copyright follows: +# Copyright (C) 2006-2013 Jean-Philippe Lang +# Copyright (C) 2010-2013 the ChiliProject Team +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +# See COPYRIGHT and LICENSE files for more details. +#++ + +class PersistedView < ApplicationRecord + belongs_to :project, optional: true + belongs_to :principal, optional: true, inverse_of: :persisted_views + belongs_to :query, polymorphic: true, optional: true + + belongs_to :parent, class_name: "PersistedView", optional: true + has_many :children, class_name: "PersistedView", foreign_key: "parent_id", dependent: :destroy, inverse_of: :parent + + acts_as_favoritable + + enum :category, { + work_package: "work_package", + project: "project", + resource_management: "resource_management" + }, validate: { allow_nil: true } + + validates :name, presence: true, length: { maximum: 255 } + validate :parent_allows_this_child_class + + scope :public_views, -> { where(public: true) } + scope :private_views, ->(principal = User.current) { where(public: false, principal_id: principal.id) } + + scope :visible, (lambda do |principal = User.current| + public_views.or(private_views(principal)) + end) + + after_destroy :destroy_query_if_orphaned + + # Class names of view types that can be created as direct children of this + # view. Each subclass gets its own list (no inheritance, no shared array) + # so subclasses can safely `<<` without leaking into PersistedView or + # sibling classes. + def self.allowed_children + @allowed_children ||= [] + end + + class << self + attr_writer :allowed_children + end + + # Returns the query of this view or, if not set, the query of the parent view. + def effective_query + query || parent&.effective_query + end + + # Whether the given user is permitted to see this view. Visibility rules + # depend on the concrete view type (e.g. project membership, sharing, + # public flag), so subclasses must implement this. + def visible?(_user) + raise SubclassResponsibilityError + end + + private + + def parent_allows_this_child_class + return if parent.nil? + + unless parent.class.allowed_children.include?(self.class.name) + errors.add(:parent, :invalid_child_for_parent) + end + end + + # When this view is destroyed, also destroy its query unless another public + # view still references it. Views belonging to the same owner that are also + # going away (e.g. during user deletion) do not count as "still referencing" + # since only public views keep a query alive. + def destroy_query_if_orphaned + return if query.nil? + return if PersistedView.exists?(query:, public: true) + + query.destroy! + end +end diff --git a/app/models/principal.rb b/app/models/principal.rb index 1ec1c24a00e..156b31dfcd1 100644 --- a/app/models/principal.rb +++ b/app/models/principal.rb @@ -77,6 +77,9 @@ class Principal < ApplicationRecord inverse_of: :principal has_many :auth_providers, through: :user_auth_provider_links + has_many :persisted_views, inverse_of: :principal, dependent: :nullify + has_many :persisted_queries, inverse_of: :principal, dependent: :nullify + has_paper_trail scopes :like, diff --git a/app/models/principals/scopes/ordered_by_name.rb b/app/models/principals/scopes/ordered_by_name.rb index ae34fb0548d..eaab098794b 100644 --- a/app/models/principals/scopes/ordered_by_name.rb +++ b/app/models/principals/scopes/ordered_by_name.rb @@ -41,7 +41,7 @@ module Principals::Scopes def ordered_by_name(desc: false) direction = desc ? "DESC" : "ASC" - order_case = Arel.sql <<~SQL + order_case = Arel.sql(<<~SQL.squish) CASE WHEN users.type = 'User' THEN LOWER(#{user_concat_sql}) WHEN users.type != 'User' THEN LOWER(users.lastname) diff --git a/app/models/project_role.rb b/app/models/project_role.rb index 430c78e2e10..f103f7e2171 100644 --- a/app/models/project_role.rb +++ b/app/models/project_role.rb @@ -29,6 +29,20 @@ # ++ class ProjectRole < Role + # Permissions a role must grant in order to be assignable as the default + # role for a non-admin user who creates a project. Without these, the + # creator cannot complete project setup (filling out the PIR, adding + # members, etc.). + PERMISSIONS_FOR_PROJECT_CREATOR = %i[ + view_project + + view_project_attributes + edit_project_attributes + + view_members + manage_members + ].freeze + has_many :custom_fields_roles, foreign_key: "role_id", dependent: :restrict_with_error, @@ -39,6 +53,20 @@ class ProjectRole < Role .where(type: "ProjectRole") end + # Roles eligible to be granted to a non-admin user upon project creation. + # Restricted to givable roles that include all PERMISSIONS_FOR_PROJECT_CREATOR. + def self.assignable_to_project_creator + permissions = PERMISSIONS_FOR_PROJECT_CREATOR.map(&:to_s) + + role_ids = RolePermission + .where(permission: permissions) + .group(:role_id) + .having("COUNT(DISTINCT permission) = ?", permissions.size) + .select(:role_id) + + givable.where(id: role_ids) + end + # Return the builtin 'non member' role. If the role doesn't exist, # it will be created on the fly. def self.non_member @@ -66,9 +94,12 @@ class ProjectRole < Role end def self.in_new_project - givable + assignable_to_project_creator .except(:order) - .order(Arel.sql("COALESCE(#{Setting.new_project_user_role_id.to_i} = id, false) DESC, position")) + .reorder(Arel.sql( + "COALESCE(#{Setting.new_project_user_role_id.to_i} = #{quoted_table_name}.id, false) DESC, " \ + "#{quoted_table_name}.position" + )) .first end end diff --git a/app/models/projects/identifier.rb b/app/models/projects/identifier.rb index eaed2ca133b..0649ce411cf 100644 --- a/app/models/projects/identifier.rb +++ b/app/models/projects/identifier.rb @@ -31,18 +31,19 @@ module Projects::Identifier extend ActiveSupport::Concern - IDENTIFIER_MAX_LENGTH = 100 + CLASSIC_IDENTIFIER_MAX_LENGTH = 100 SEMANTIC_IDENTIFIER_MAX_LENGTH = 10 - RESERVED_IDENTIFIERS = %w[new menu queries filters identifier_update_dialog identifier_suggestion].freeze # Classic identifier format: lowercase letters, digits, hyphens, underscores — but not all-numeric. CLASSIC_IDENTIFIER_FORMAT = /\A(?!\d+\z)[a-z0-9\-_]+\z/ + RESERVED_IDENTIFIERS = %w[new menu queries filters identifier_update_dialog identifier_suggestion].freeze + included do extend FriendlyId normalizes :identifier, with: OpenProject::RemoveInvisibleCharacters - ### ID generators + # Generators # There are two supported formats: # 1. slug identifiers (e.g. "project_one"), generated by acts_as_url # * work package ID = global ID (e.g. "#123") @@ -52,7 +53,7 @@ module Projects::Identifier url_attribute: :identifier, sync_url: false, # Don't update identifier when name changes only_when_blank: true, # Only generate when identifier not set - limit: IDENTIFIER_MAX_LENGTH, + limit: CLASSIC_IDENTIFIER_MAX_LENGTH, blacklist: RESERVED_IDENTIFIERS, adapter: OpenProject::ActsAsUrl::Adapter::OpActiveRecord, # use a custom adapter able to handle edge cases skip_if: -> { Setting::WorkPackageIdentifier.semantic? } @@ -62,28 +63,12 @@ module Projects::Identifier on: :create, if: -> { Setting::WorkPackageIdentifier.semantic? && identifier.blank? } - ### ID validators - # Shared validators for all identifier formats validates :identifier, presence: true, uniqueness: { case_sensitive: false }, - length: { maximum: IDENTIFIER_MAX_LENGTH }, if: ->(p) { p.persisted? || p.identifier.present? } - # Validators for the numeric (legacy) identifier format (e.g. "my-project", "project_one") - validate :identifier_numeric_format, - if: ->(p) { p.identifier_changed? && p.identifier.present? && Setting::WorkPackageIdentifier.classic? } - - # Validators for the semantic (alphanumeric) identifier format (e.g. "PROJ1") - validate :identifier_alphanumeric_format, - if: ->(p) { p.identifier_changed? && p.identifier.present? && Setting::WorkPackageIdentifier.semantic? } - - validate :identifier_not_reserved, if: -> { identifier.present? } - - # Complements the uniqueness validation above: once an identifier has been used by a - # project, it remains reserved for that project even after the project moves to a new - # identifier. This prevents another project from claiming a "retired" identifier. - validate :identifier_not_historically_reserved, if: ->(p) { p.identifier_changed? } + validates :identifier, "projects/identifier" => true, if: :identifier_changed? friendly_id :identifier, use: %i[finders history], slug_column: :identifier @@ -96,23 +81,61 @@ module Projects::Identifier def unset_slug_if_invalid; end end + # Domain-named scopes for the FriendlyId::Slug relation returned by Project.identifier_slugs. + # Lets callers compose against verbs like .historically_reserved / .for_identifier / .upcased_values + # instead of raw SQL fragments — keeping FriendlyId::Slug column knowledge in one place. + module IdentifierSlugScopes + # Slugs that are no longer used as any active project's identifier, but remain reserved + # because FriendlyId still owns them — so they cannot be reused by another project. + def historically_reserved + where("LOWER(slug) NOT IN (SELECT LOWER(identifier) FROM projects)") + end + + # Slugs whose lowercase form equals the lowercased input. + def for_identifier(value) + where("LOWER(slug) = ?", value.downcase) + end + + # Excludes the given project's own slug history. No-op when project is nil. + def excluding_project(project) + project ? where.not(sluggable_id: project) : self + end + + def upcased_values = pluck(Arel.sql("UPPER(slug)")) + def downcased_values = pluck(Arel.sql("LOWER(slug)")) + # Verbatim values, no case folding. Named `raw_values` to avoid colliding + # with `ActiveRecord::Relation#values` (an internal Rails method). + def raw_values = pluck(:slug) + end + class_methods do def classic_identifier_format?(str) str.match?(CLASSIC_IDENTIFIER_FORMAT) end - def suggest_identifier(name) - if Setting::WorkPackageIdentifier.semantic? + # FriendlyId's :history module records a row on every save, so this relation contains + # both currently-used identifiers and historically-reserved ones. Compose with + # `.historically_reserved` to filter to the latter. The name aligns with FriendlyId's + # `project.slugs` association for vocabulary consistency. + def identifier_slugs + FriendlyId::Slug.where(sluggable_type: name).extending(IdentifierSlugScopes) + end + + def suggest_identifier(name, mode: Setting[:work_packages_identifier]) + if mode == Setting::WorkPackageIdentifier::SEMANTIC exclude = ProjectIdentifiers::IdentifierAutofix::ProblematicIdentifiers.reserved_identifiers ProjectIdentifiers::IdentifierAutofix::ProjectIdentifierSuggestionGenerator .suggest_identifier(name, exclude:) - else # This should closely enough emulate Project models' usage of acts_as_url - name.to_url.first(IDENTIFIER_MAX_LENGTH).presence || - "project-#{SecureRandom.alphanumeric(5).downcase}" + else + ProjectIdentifiers::ClassicIdentifierSuggestionGenerator.new.suggest_identifier(name) end end end + def suggest_identifier(mode: Setting[:work_packages_identifier]) + self.class.suggest_identifier(name, mode:) + end + # Override the `validation_context` getter to include the `default_validation_context` when the # context is `:saving_custom_fields`. This is required, because the `acts_as_url` plugin from # `stringex` defines a callback on the `:create` context for initialising the `identifier` field. @@ -133,44 +156,6 @@ module Projects::Identifier private - # Contains only a-z, 0-9, dashes and underscores but cannot consist of numbers only - # as that would clash with the numeric id. - def identifier_numeric_format - unless identifier.match?(CLASSIC_IDENTIFIER_FORMAT) - errors.add(:identifier, :invalid) - end - end - - def identifier_alphanumeric_format - errors.add(:identifier, :must_start_with_letter) unless identifier.match?(/\A[A-Z]/) - errors.add(:identifier, :no_special_characters) unless identifier.match?(/\A[A-Z0-9_]*\z/) - if identifier.length > SEMANTIC_IDENTIFIER_MAX_LENGTH - errors.add(:identifier, :too_long, count: SEMANTIC_IDENTIFIER_MAX_LENGTH) - end - end - - def identifier_not_reserved - if RESERVED_IDENTIFIERS.include?(identifier&.downcase) - errors.add(:identifier, :exclusion) - end - end - - # Checks friendly_id_slugs for any project that previously used this identifier and - # has since changed it. It allows a project to switch back to an identifier it has - # used before. Uses LOWER() because slugs may be stored in a different case than the - # incoming identifier (e.g. old lowercase slug vs new uppercase alphanumeric identifier). - def identifier_not_historically_reserved - return if errors.any? { |error| error.attribute == :identifier && error.type == :taken } - - already_existing = FriendlyId::Slug - .where("LOWER(slug) = LOWER(?)", identifier) - .where(sluggable_type: self.class.to_s) - .where.not(sluggable_id: id) - .exists? - - errors.add(:identifier, :taken, value: identifier) if already_existing - end - def generate_semantic_identifier return if name.blank? diff --git a/app/models/projects/semantic_identifier.rb b/app/models/projects/semantic_identifier.rb index 68d80e53196..ca0726951b9 100644 --- a/app/models/projects/semantic_identifier.rb +++ b/app/models/projects/semantic_identifier.rb @@ -65,12 +65,15 @@ module Projects::SemanticIdentifier # and (by default) inserts alias rows for every historical slug prefix of # this project. # + # Returns a hash of { work_package_id => semantic_identifier } so callers + # already holding live records can refresh in-memory state without reloading. + # # Pass insert_aliases: false when the caller will run seed_alias_table # immediately after (e.g. the conversion backfill path), to avoid # duplicating the alias insertion work. def reserve_semantic_id_block!(work_package_ids, insert_aliases: true) count = work_package_ids.size - return if count.zero? + return {} if count.zero? range = allocate_sequence_range!(count) sorted_ids = work_package_ids.sort @@ -79,6 +82,8 @@ module Projects::SemanticIdentifier bulk_assign_sequence_numbers!(sorted_ids, range) insert_sequence_aliases!(sorted_ids, range) if insert_aliases end + + sorted_ids.zip(range).to_h { |wp_id, seq| [wp_id, "#{identifier}-#{seq}"] } end # Called after this project's identifier is renamed. Atomically: diff --git a/app/models/queries/filters/shared/custom_fields/list_optional.rb b/app/models/queries/filters/shared/custom_fields/list_optional.rb index 25c47eb4895..ea5a0f1db68 100644 --- a/app/models/queries/filters/shared/custom_fields/list_optional.rb +++ b/app/models/queries/filters/shared/custom_fields/list_optional.rb @@ -69,7 +69,7 @@ module Queries::Filters::Shared operator_strategy.sql_for_customized( values_replaced, custom_field.id, - Arel.sql(customized_model.name), + Arel.sql(custom_field_context.customized_type), Arel.sql("#{customized_model.table_name}.id") ) end diff --git a/app/models/queries/filters/shared/user_name_filter.rb b/app/models/queries/filters/shared/user_name_filter.rb index e4497a510d5..28d82176452 100644 --- a/app/models/queries/filters/shared/user_name_filter.rb +++ b/app/models/queries/filters/shared/user_name_filter.rb @@ -50,9 +50,9 @@ module Queries::Filters::Shared::UserNameFilter when "!" ["#{sql_concat_name} NOT IN (:s) AND unaccent(#{sql_concat_name}) NOT IN (:s)", { s: sql_value }] when "~", "**" - ["unaccent(#{sql_concat_name}) LIKE unaccent(:s)", { s: "%#{sql_value}%" }] + ["unaccent(#{sql_concat_name}) LIKE unaccent(:s)", { s: sql_value }] when "!~" - ["unaccent(#{sql_concat_name}) NOT LIKE unaccent(:s)", { s: "%#{sql_value}%" }] + ["unaccent(#{sql_concat_name}) NOT LIKE unaccent(:s)", { s: sql_value }] end end @@ -61,9 +61,9 @@ module Queries::Filters::Shared::UserNameFilter def sql_value case operator when "=", "!" - values.map { |val| self.class.connection.quote_string(val.downcase) }.join(",") + values.map(&:downcase) when "**", "~", "!~" - values.first.downcase + "%#{values.first.downcase}%" end end diff --git a/app/models/queries/projects/custom_field_context.rb b/app/models/queries/projects/custom_field_context.rb index 438e15898af..cea13e05bd2 100644 --- a/app/models/queries/projects/custom_field_context.rb +++ b/app/models/queries/projects/custom_field_context.rb @@ -38,6 +38,10 @@ module Queries::Projects::CustomFieldContext ::Project end + def customized_type + model.name + end + def custom_fields(_context = nil) custom_field_class.visible end diff --git a/app/models/queries/projects/filters/name_filter.rb b/app/models/queries/projects/filters/name_filter.rb index 96aa957334a..b7d8bb656bd 100644 --- a/app/models/queries/projects/filters/name_filter.rb +++ b/app/models/queries/projects/filters/name_filter.rb @@ -40,13 +40,13 @@ class Queries::Projects::Filters::NameFilter < Queries::Projects::Filters::Base when "!" ["LOWER(projects.name) NOT IN (?)", sql_value] when "~" - ["LOWER(projects.name) LIKE ?", "%#{sql_value}%"] + ["LOWER(projects.name) LIKE ?", sql_value] when "**" terms = values.first.downcase.split conditions = Array.new(terms.size, "LOWER(projects.name) LIKE ?").join(" AND ") [conditions, *terms.map { |t| "%#{t}%" }] when "!~" - ["LOWER(projects.name) NOT LIKE ?", "%#{sql_value}%"] + ["LOWER(projects.name) NOT LIKE ?", sql_value] end end @@ -63,9 +63,9 @@ class Queries::Projects::Filters::NameFilter < Queries::Projects::Filters::Base def sql_value case operator when "=", "!" - values.map { |val| self.class.connection.quote_string(val.downcase) }.join(",") + values.map(&:downcase) when "**", "~", "!~" - values.first.downcase + "%#{values.first.downcase}%" end end end diff --git a/app/models/queries/users/custom_field_context.rb b/app/models/queries/users/custom_field_context.rb new file mode 100644 index 00000000000..efd7fe1df7c --- /dev/null +++ b/app/models/queries/users/custom_field_context.rb @@ -0,0 +1,80 @@ +# frozen_string_literal: true + +#-- copyright +# OpenProject is an open source project management software. +# Copyright (C) the OpenProject GmbH +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License version 3. +# +# OpenProject is a fork of ChiliProject, which is a fork of Redmine. The copyright follows: +# Copyright (C) 2006-2013 Jean-Philippe Lang +# Copyright (C) 2010-2013 the ChiliProject Team +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +# See COPYRIGHT and LICENSE files for more details. +#++ + +module Queries::Users::CustomFieldContext + class << self + def custom_field_class + ::UserCustomField + end + + def model + ::User + end + + # User / Group / PlaceholderUser all persist as Principal in + # custom_values.customized_type (STI base class). Constraining the + # join by `custom_field_id` to a UserCustomField scopes us to user CFs. + def customized_type + "Principal" + end + + def custom_fields(_context = nil) + custom_field_class.visible + end + + def find_custom_field(id) + custom_field_cache.fetch(id.to_i) do |key| + custom_field_cache[key] = custom_fields.where(id: key).first + end + end + + def where_subselect_joins(custom_field) + # Custom values are stored against Principal (the STI base class of User / Group / + # PlaceholderUser), all sharing the `users` table. Constraining the join by + # `custom_field_id` to a UserCustomField is what scopes the rows to users. + <<~SQL.squish + LEFT OUTER JOIN #{cv_db_table} + ON #{cv_db_table}.customized_type = 'Principal' + AND #{cv_db_table}.customized_id = #{users_db_table}.id + AND #{cv_db_table}.custom_field_id = #{custom_field.id} + SQL + end + + def where_subselect_conditions + nil + end + + private + + def cv_db_table = CustomValue.table_name + def users_db_table = User.table_name + def custom_field_cache = RequestStore.fetch("Queries::Users::CustomFieldContext/cache") { {} } + end +end diff --git a/app/models/queries/users/filters/custom_field_filter.rb b/app/models/queries/users/filters/custom_field_filter.rb new file mode 100644 index 00000000000..999a1e05e9f --- /dev/null +++ b/app/models/queries/users/filters/custom_field_filter.rb @@ -0,0 +1,35 @@ +# frozen_string_literal: true + +#-- copyright +# OpenProject is an open source project management software. +# Copyright (C) the OpenProject GmbH +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License version 3. +# +# OpenProject is a fork of ChiliProject, which is a fork of Redmine. The copyright follows: +# Copyright (C) 2006-2013 Jean-Philippe Lang +# Copyright (C) 2010-2013 the ChiliProject Team +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +# See COPYRIGHT and LICENSE files for more details. +#++ + +class Queries::Users::Filters::CustomFieldFilter < Queries::Users::Filters::UserFilter + include Queries::Filters::Shared::CustomFieldFilter + + self.custom_field_context = ::Queries::Users::CustomFieldContext +end diff --git a/app/models/queries/users/orders/custom_field_order.rb b/app/models/queries/users/orders/custom_field_order.rb new file mode 100644 index 00000000000..3b17c98ee7f --- /dev/null +++ b/app/models/queries/users/orders/custom_field_order.rb @@ -0,0 +1,85 @@ +# frozen_string_literal: true + +#-- copyright +# OpenProject is an open source project management software. +# Copyright (C) the OpenProject GmbH +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License version 3. +# +# OpenProject is a fork of ChiliProject, which is a fork of Redmine. The copyright follows: +# Copyright (C) 2006-2013 Jean-Philippe Lang +# Copyright (C) 2010-2013 the ChiliProject Team +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +# See COPYRIGHT and LICENSE files for more details. +#++ + +class Queries::Users::Orders::CustomFieldOrder < Queries::Orders::Base + self.model = User.all + + EXCLUDED_CUSTOM_FIELD_TYPES = %w[text].freeze + + validates :custom_field, presence: { message: I18n.t(:"activerecord.errors.messages.does_not_exist") } + + def self.key + valid_ids = RequestStore.fetch(:custom_sortable_user_custom_fields) do + scope.pluck(:id) + end + + /\Acf_(#{valid_ids.join('|')})\z/ + end + + def self.scope + UserCustomField.where.not(field_format: EXCLUDED_CUSTOM_FIELD_TYPES).visible + end + + def custom_field + return @custom_field if defined?(@custom_field) + + @custom_field = self.class.scope.find_by(id: attribute[/\Acf_(\d+)\z/, 1]) + end + + def available? + custom_field.present? + end + + private + + def order(scope) + with_raise_on_invalid do + if (join_statement = custom_field.order_join_statement) + scope = scope.joins(join_statement) + end + + if (order_statement = custom_field.order_statement) + # `direction` is validated by the base class and re-checked above; pin the + # SQL fragment to a literal here so static analysis (Brakeman) can prove + # no user input flows into the interpolation. + direction_sql = direction == :desc ? "DESC" : "ASC" + order_clause = "#{order_statement} #{direction_sql}" + + if (null_handling = custom_field.order_null_handling(direction == :asc)) + order_clause = "#{order_clause} #{null_handling}" + end + + scope = scope.order(Arel.sql(order_clause)) + end + + scope + end + end +end diff --git a/app/models/queries/users/selects/custom_field.rb b/app/models/queries/users/selects/custom_field.rb new file mode 100644 index 00000000000..3e9604ce302 --- /dev/null +++ b/app/models/queries/users/selects/custom_field.rb @@ -0,0 +1,66 @@ +# frozen_string_literal: true + +# -- copyright +# OpenProject is an open source project management software. +# Copyright (C) the OpenProject GmbH +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License version 3. +# +# OpenProject is a fork of ChiliProject, which is a fork of Redmine. The copyright follows: +# Copyright (C) 2006-2013 Jean-Philippe Lang +# Copyright (C) 2010-2013 the ChiliProject Team +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +# See COPYRIGHT and LICENSE files for more details. +# ++ + +class Queries::Users::Selects::CustomField < Queries::Selects::Base + include Queries::Selects::Shared::CustomFieldSelect + + self.custom_field_context = Queries::Users::CustomFieldContext + + validates :custom_field, presence: { message: I18n.t(:"activerecord.errors.messages.does_not_exist") } + + KEY = /\Acf_(\d+)\z/ + + def self.key + KEY + end + + def self.all_available + return [] unless available? + + custom_field_context + .custom_fields + .pluck(:id) + .map { |id| new(:"cf_#{id}") } + end + + def caption + custom_field.name + end + + def custom_field + return @custom_field if defined?(@custom_field) + + @custom_field = custom_field_context.find_custom_field(attribute[KEY, 1]) + end + + def available? + custom_field.present? + end +end diff --git a/app/models/queries/versions/filters/name_filter.rb b/app/models/queries/versions/filters/name_filter.rb index 135d46dc54f..783ea21797d 100644 --- a/app/models/queries/versions/filters/name_filter.rb +++ b/app/models/queries/versions/filters/name_filter.rb @@ -40,9 +40,9 @@ class Queries::Versions::Filters::NameFilter < Queries::Versions::Filters::Versi when "!" ["LOWER(versions.name) NOT IN (?)", sql_value] when "~", "**" - ["LOWER(versions.name) LIKE ?", "%#{sql_value}%"] + ["LOWER(versions.name) LIKE ?", sql_value] when "!~" - ["LOWER(versions.name) NOT LIKE ?", "%#{sql_value}%"] + ["LOWER(versions.name) NOT LIKE ?", sql_value] end end @@ -59,9 +59,9 @@ class Queries::Versions::Filters::NameFilter < Queries::Versions::Filters::Versi def sql_value case operator when "=", "!" - values.map { |val| self.class.connection.quote_string(val.downcase) }.join(",") + values.map(&:downcase) when "**", "~", "!~" - values.first.downcase + "%#{values.first.downcase}%" end end end diff --git a/app/models/queries/work_packages/filter/custom_field_context.rb b/app/models/queries/work_packages/filter/custom_field_context.rb index ae515566d74..714f10835b7 100644 --- a/app/models/queries/work_packages/filter/custom_field_context.rb +++ b/app/models/queries/work_packages/filter/custom_field_context.rb @@ -38,6 +38,10 @@ module Queries::WorkPackages::Filter::CustomFieldContext ::WorkPackage end + def customized_type + model.name + end + def custom_fields(context) if context&.project context diff --git a/app/models/user_card_view.rb b/app/models/user_card_view.rb new file mode 100644 index 00000000000..f568951f75f --- /dev/null +++ b/app/models/user_card_view.rb @@ -0,0 +1,64 @@ +# frozen_string_literal: true + +#-- copyright +# OpenProject is an open source project management software. +# Copyright (C) the OpenProject GmbH +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License version 3. +# +# OpenProject is a fork of ChiliProject, which is a fork of Redmine. The copyright follows: +# Copyright (C) 2006-2013 Jean-Philippe Lang +# Copyright (C) 2010-2013 the ChiliProject Team +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +# See COPYRIGHT and LICENSE files for more details. +#++ + +class UserCardView < PersistedView + SECONDARY_INFO = %w[role email login none].freeze + TAG_SOURCES = %w[groups roles none].freeze + CARD_SIZES = %w[compact default expanded].freeze + + store_attribute :options, :secondary_info, :string, default: "role" + store_attribute :options, :show_status_badge, :boolean, default: true + store_attribute :options, :show_email, :boolean, default: false + store_attribute :options, :tag_source, :string, default: "groups" + store_attribute :options, :tag_limit, :integer, default: 3 + store_attribute :options, :card_size, :string, default: "default" + store_attribute :options, :columns_per_row, :integer, default: 3 + + validates :secondary_info, inclusion: { in: SECONDARY_INFO } + validates :tag_source, inclusion: { in: TAG_SOURCES } + validates :card_size, inclusion: { in: CARD_SIZES } + validates :tag_limit, numericality: { only_integer: true, in: 0..10 } + validates :columns_per_row, numericality: { only_integer: true, in: 1..4 } + + validate :query_must_be_user_query + + def results + effective_query&.results + end + + private + + def query_must_be_user_query + resolved = effective_query + return if resolved.nil? || resolved.is_a?(UserQuery) + + errors.add(:query, :invalid) + end +end diff --git a/app/models/user_query.rb b/app/models/user_query.rb new file mode 100644 index 00000000000..19c4c32ce60 --- /dev/null +++ b/app/models/user_query.rb @@ -0,0 +1,57 @@ +# frozen_string_literal: true + +#-- copyright +# OpenProject is an open source project management software. +# Copyright (C) the OpenProject GmbH +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License version 3. +# +# OpenProject is a fork of ChiliProject, which is a fork of Redmine. The copyright follows: +# Copyright (C) 2006-2013 Jean-Philippe Lang +# Copyright (C) 2010-2013 the ChiliProject Team +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +# See COPYRIGHT and LICENSE files for more details. +#++ + +class UserQuery < PersistedQuery + def self.model + User + end + + def default_scope + # Excludes the SystemUser, DeletedUser, AnonymousUser STI descendants of User. + User.user + end + + register_query do + filter Queries::Users::Filters::NameFilter + filter Queries::Users::Filters::AnyNameAttributeFilter + filter Queries::Users::Filters::GroupFilter + filter Queries::Users::Filters::StatusFilter + filter Queries::Users::Filters::LoginFilter + filter Queries::Users::Filters::BlockedFilter + filter Queries::Users::Filters::CustomFieldFilter + + order Queries::Users::Orders::DefaultOrder + order Queries::Users::Orders::NameOrder + order Queries::Users::Orders::GroupOrder + order Queries::Users::Orders::CustomFieldOrder + + select Queries::Users::Selects::CustomField + end +end diff --git a/app/models/wiki_page.rb b/app/models/wiki_page.rb index 3636607cfda..25f782fb8b2 100644 --- a/app/models/wiki_page.rb +++ b/app/models/wiki_page.rb @@ -31,10 +31,10 @@ class WikiPage < ApplicationRecord belongs_to :wiki, touch: true has_one :project, through: :wiki - belongs_to :author, class_name: 'User' + belongs_to :author, class_name: "User" - acts_as_attachable delete_permission: :delete_wiki_pages_attachments - acts_as_tree dependent: :nullify, order: 'title' + acts_as_attachable delete_permission: :edit_wiki_pages + acts_as_tree dependent: :nullify, order: "title" # Generate slug of the title acts_as_url :title, @@ -47,7 +47,7 @@ class WikiPage < ApplicationRecord acts_as_watchable acts_as_event title: Proc.new { |o| "#{Wiki.model_name.human}: #{o.title}" }, description: :text, - url: Proc.new { |o| { controller: '/wiki', action: 'show', project_id: o.wiki.project, id: o.title } } + url: Proc.new { |o| { controller: "/wiki", action: "show", project_id: o.wiki.project, id: o.title } } acts_as_searchable columns: %W[#{WikiPage.table_name}.title text], include: [{ wiki: :project }], @@ -64,7 +64,7 @@ class WikiPage < ApplicationRecord validates :slug, presence: { message: ->(object, _) { - I18n.t('activerecord.errors.models.wiki_page.attributes.slug.undeducible', title: object.title) + I18n.t("activerecord.errors.models.wiki_page.attributes.slug.undeducible", title: object.title) } } @@ -176,7 +176,7 @@ class WikiPage < ApplicationRecord # Returns true if usr is allowed to edit the page, otherwise false def editable_by?(usr) - !protected? || usr.allowed_in_project?(:protect_wiki_pages, wiki.project) + !protected? || usr.allowed_in_project?(:manage_wiki, wiki.project) end def attachments_deletable?(usr = User.current) diff --git a/app/models/work_package.rb b/app/models/work_package.rb index b80a5ef9427..bb8057560ed 100644 --- a/app/models/work_package.rb +++ b/app/models/work_package.rb @@ -281,7 +281,7 @@ class WorkPackage < ApplicationRecord def infoline(show_standard_type: true) type_name = show_standard_type || !type.is_standard ? type.name : "" - "#{type_name}: #{subject} (##{id})" + "#{type_name}: #{subject} (#{formatted_id})" end # Return true if the work_package is closed, otherwise false diff --git a/app/models/work_package/semantic_identifier.rb b/app/models/work_package/semantic_identifier.rb index d5dd57486a9..a1608d74860 100644 --- a/app/models/work_package/semantic_identifier.rb +++ b/app/models/work_package/semantic_identifier.rb @@ -88,6 +88,27 @@ module WorkPackage::SemanticIdentifier identifier.presence || id end + # Returns the identifier formatted for inline UI display. + # Semantic mode: "PROJ-42" (no prefix — self-describing) + # Classic mode: "#42" (hash-prefixed) + def formatted_id + did = display_id + did.is_a?(String) && did.match?(/[A-Za-z]/) ? did : "##{did}" + end + + # Override ActiveRecord's default `to_param` so Rails URL helpers + # (work_package_path, polymorphic_path, form_for, etc.) automatically + # produce semantic-id URLs in semantic mode. In classic mode display_id + # returns the integer primary key, so this is behaviourally identical + # to the inherited `id&.to_s`. + # + # API v3 deliberately bypasses this by passing `id:` kwargs explicitly + # (see lib/api/v3/work_packages/work_package_representer.rb) so HAL + # self-links remain numeric and stable for API consumers. + def to_param + display_id&.to_s + end + # Allocates the next semantic identifier in the current project and assigns it to the WP. # Also writes alias rows for every identifier the project has ever used (including "ghost" aliases). # diff --git a/app/models/work_package/semantic_identifier/finder_methods.rb b/app/models/work_package/semantic_identifier/finder_methods.rb index debd2a238b1..d03c7904b8e 100644 --- a/app/models/work_package/semantic_identifier/finder_methods.rb +++ b/app/models/work_package/semantic_identifier/finder_methods.rb @@ -56,7 +56,7 @@ module WorkPackage::SemanticIdentifier::FinderMethods end ids = args.first.is_a?(Array) ? args.first : args - if ids.any? { |id| semantic_id?(id) } + if ids.any? { semantic_id?(it) } raise WorkPackage::SemanticIdentifier::UnsupportedLookup, "Semantic identifiers in multi-argument find are not supported. " \ "Use primary keys for multi-argument lookup, or resolve each identifier " \ @@ -105,6 +105,22 @@ module WorkPackage::SemanticIdentifier::FinderMethods )) end + # Plural counterpart to find_by_display_id: returns a chainable relation that + # matches any work package whose primary key, current identifier, or + # historical alias matches one of the supplied display ids. Numeric and + # semantic strings may be freely mixed; unknown values produce no match + # rather than poisoning the rest of the set. + def where_display_id_in(values) + values = Array(values).map(&:to_s) + return none if values.empty? + + semantic, numeric = values.partition { semantic_id?(it) } + + scope = where(id: numeric.map(&:to_i)) + scope = scope.or(scope_for_semantic_identifier(semantic)) if semantic.any? + scope + end + private def reject_semantic_id_in_find_by!(args) @@ -130,7 +146,7 @@ module WorkPackage::SemanticIdentifier::FinderMethods def first_semantic_value(value) if value.is_a?(Array) - value.detect { |v| semantic_id?(v) } + value.detect { semantic_id?(it) } elsif semantic_id?(value) value end diff --git a/app/models/work_packages/costs.rb b/app/models/work_packages/costs.rb index 4a9ed1cd631..52a1f942113 100644 --- a/app/models/work_packages/costs.rb +++ b/app/models/work_packages/costs.rb @@ -118,7 +118,7 @@ module WorkPackages::Costs reassign_to = ::WorkPackage .joins(:project) .merge(Project.allowed_to(user, :edit_cost_entries)) - .find_by_id(ids) + .find_by(id: ids) if reassign_to.nil? work_packages.each do |wp| diff --git a/app/seeders/common.yml b/app/seeders/common.yml index 2f5bdcadfad..861fbb021c5 100644 --- a/app/seeders/common.yml +++ b/app/seeders/common.yml @@ -346,16 +346,9 @@ project_roles: - :edit_reportings - :delete_reportings - :manage_wiki - - :rename_wiki_pages - - :change_wiki_parent_page - - :delete_wiki_pages - :view_wiki_pages - - :export_wiki_pages - :view_wiki_edits - :edit_wiki_pages - - :delete_wiki_pages_attachments - - :protect_wiki_pages - - :list_attachments - :add_messages - :edit_own_messages - :delete_own_messages @@ -387,8 +380,6 @@ project_roles: - :view_timelines - :view_reportings - :view_wiki_pages - - :export_wiki_pages - - :list_attachments - :add_messages - :edit_own_messages - :delete_own_messages diff --git a/app/services/health_reports/validator.rb b/app/services/health_reports/validator.rb new file mode 100644 index 00000000000..a96071a7d70 --- /dev/null +++ b/app/services/health_reports/validator.rb @@ -0,0 +1,62 @@ +# frozen_string_literal: true + +#-- copyright +# OpenProject is an open source project management software. +# Copyright (C) the OpenProject GmbH +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License version 3. +# +# OpenProject is a fork of ChiliProject, which is a fork of Redmine. The copyright follows: +# Copyright (C) 2006-2013 Jean-Philippe Lang +# Copyright (C) 2010-2013 the ChiliProject Team +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +# See COPYRIGHT and LICENSE files for more details. +#++ + +module HealthReports + class Validator + class << self + def validation_groups + @validation_groups ||= [] + end + + def register_group(klass, precondition: ->(*) { true }) + validation_groups << { klass:, precondition: } + end + end + + def initialize(subject) + @subject = subject + end + + def call + health_report = @subject.health_reports.build + validation_groups.each do |group_metadata| + if group_metadata[:precondition].call(@subject, health_report) + health_report.results << group_metadata[:klass].call(@subject) + end + end + + health_report + end + + private + + def validation_groups = self.class.validation_groups + end +end diff --git a/app/services/health_reports/validator_group.rb b/app/services/health_reports/validator_group.rb new file mode 100644 index 00000000000..8e8e8dd6bdb --- /dev/null +++ b/app/services/health_reports/validator_group.rb @@ -0,0 +1,86 @@ +# frozen_string_literal: true + +#-- copyright +# OpenProject is an open source project management software. +# Copyright (C) the OpenProject GmbH +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License version 3. +# +# OpenProject is a fork of ChiliProject, which is a fork of Redmine. The copyright follows: +# Copyright (C) 2006-2013 Jean-Philippe Lang +# Copyright (C) 2010-2013 the ChiliProject Team +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +# See COPYRIGHT and LICENSE files for more details. +#++ + +module HealthReports + class ValidatorGroup + class << self + def call(subject) + new(subject).call + end + + def key = raise SubclassResponsibilityError + end + + attr_reader :subject + + def initialize(subject) + @subject = subject + @group = HealthReport::ResultGroup.new(key: self.class.key) + @pending_checks = [] + end + + def call + catch :interrupted do + validate + end + + @pending_checks.each { @group.results << HealthReport::Result.skipped(it) } + + @group + end + + private + + def validate = raise SubclassResponsibilityError + + def register_checks(*keys) + @pending_checks.concat(keys) + end + + def add_result(key, result) + @group.results << result + @pending_checks.delete(key) + end + + def pass_check(key) + add_result(key, HealthReport::Result.success(key)) + end + + def fail_check(key, code, context: nil) + add_result(key, HealthReport::Result.failure(key, code, context)) + throw :interrupted + end + + def warn_check(key, code, context: nil, halt_validation: false) + add_result(key, HealthReport::Result.warning(key, code, context)) + throw :interrupted if halt_validation + end + end +end diff --git a/app/services/journals/create_service/association.rb b/app/services/journals/create_service/association.rb index ff0252c2106..bdfa1762b90 100644 --- a/app/services/journals/create_service/association.rb +++ b/app/services/journals/create_service/association.rb @@ -32,19 +32,20 @@ class Journals::CreateService class Association include Helpers - ASSOCIATION_NAMES = %i[ - AgendaItemable - Attachable - CustomComment - Customizable - ProjectPhase - Storable - ].freeze + # Core associations are defined here. Module-specific associations can be defined in engines + # using `Journals::CreateService::Association.register`. + @registry = Set.new(%i[Attachable CustomComment Customizable ProjectPhase]) - def self.for(journable) - ASSOCIATION_NAMES - .map { "Journals::CreateService::#{it}".constantize.new(journable) } - .select(&:associated?) + class << self + def register(*names) + @registry.merge(names.map(&:to_sym)) + end + + def for(journable) + @registry + .map { "Journals::CreateService::#{it}".constantize.new(journable) } + .select(&:associated?) + end end attr_reader :journable diff --git a/app/services/mcp_resources/user.rb b/app/services/mcp_resources/user.rb index b9f522f10ea..c7fc64b4e79 100644 --- a/app/services/mcp_resources/user.rb +++ b/app/services/mcp_resources/user.rb @@ -37,7 +37,7 @@ module McpResources default_description "Access users of this OpenProject instance." def read(id:) - user = ::User.visible(current_user).find_by_unique(id) # rubocop:disable Rails/DynamicFindBy + user = ::User.visible(current_user).find_by_unique(id) return nil if user.nil? API::V3::Users::UserRepresenter.create(user, current_user:) diff --git a/app/services/project_identifiers/classic_identifier_suggestion_generator.rb b/app/services/project_identifiers/classic_identifier_suggestion_generator.rb new file mode 100644 index 00000000000..ca74eea1687 --- /dev/null +++ b/app/services/project_identifiers/classic_identifier_suggestion_generator.rb @@ -0,0 +1,85 @@ +# frozen_string_literal: true + +#-- copyright +# OpenProject is an open source project management software. +# Copyright (C) the OpenProject GmbH +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License version 3. +# +# OpenProject is a fork of ChiliProject, which is a fork of Redmine. The copyright follows: +# Copyright (C) 2006-2013 Jean-Philippe Lang +# Copyright (C) 2010-2013 the ChiliProject Team +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +# See COPYRIGHT and LICENSE files for more details. +#++ + +module ProjectIdentifiers + # Generates a unique classic-format (acts_as_url-style) identifier from a project name, + # mirroring acts_as_url's own duplicate loop: appends -1, -2, … until a free slug is found. + # + # Instantiate once to load the taken-identifier set from the DB, then call +suggest_identifier+. + class ClassicIdentifierSuggestionGenerator + FALLBACK_BASE = "project" + + def initialize(project: nil) + @exclude = taken_identifiers(project:) + end + + # Returns the most-recent classic-format slug from the project's FriendlyId history, + # or nil if none exists. Availability is not checked — callers must handle conflicts. + def restore_identifier(project) + project.slugs + .order(created_at: :desc) + .pluck(:slug) + .find { |slug| Project.classic_identifier_format?(slug) } + end + + # Generates a unique classic-format identifier from +name+, mirroring acts_as_url's + # duplicate loop: appends -1, -2, … until a slug not in the taken set is found. + # Falls back to a randomised +FALLBACK_BASE+ slug when +name+ produces a blank slug. + def suggest_identifier(name) + base = slugify(name) || fallback_base + + candidate = base + n = 1 + loop do + return candidate if @exclude.exclude?(candidate.downcase) + + candidate = "#{base}-#{n}" + n += 1 + end + end + + private + + def slugify(name) + name.to_url.first(Projects::Identifier::CLASSIC_IDENTIFIER_MAX_LENGTH).presence + end + + def fallback_base + "#{FALLBACK_BASE}-#{SecureRandom.alphanumeric(5).downcase}" + end + + def taken_identifiers(project: nil) + current = Project.unscoped.pluck(:identifier).compact.to_set(&:downcase) + historical = Project.identifier_slugs.excluding_project(project).downcased_values.to_set + reserved = Projects::Identifier::RESERVED_IDENTIFIERS.to_set + current | historical | reserved + end + end +end diff --git a/app/services/project_identifiers/convert_project_to_semantic_service.rb b/app/services/project_identifiers/convert_project_to_semantic_service.rb index 23170b66a2d..788f120665f 100644 --- a/app/services/project_identifiers/convert_project_to_semantic_service.rb +++ b/app/services/project_identifiers/convert_project_to_semantic_service.rb @@ -71,23 +71,17 @@ module ProjectIdentifiers end def assign_semantic_identifier - # Re-instantiate inside the lock so the exclusion set reflects all - # identifiers committed since this job started. - detector = ProjectIdentifiers::IdentifierAutofix::ProblematicIdentifiers.new - generator = ProjectIdentifiers::IdentifierAutofix::ProjectIdentifierSuggestionGenerator - # Prefer restoring the project's last known semantic identifier (from # FriendlyId history) so that existing WP identifiers remain valid and # aliases need no update. Fall back to generating a fresh suggestion. new_identifier = project.previous_semantic_identifier || - generator.suggest_identifier(project.name, exclude: detector.exclusion_set) + project.suggest_identifier(mode: Setting::WorkPackageIdentifier::SEMANTIC) raise "Generated identifier is blank for project #{project.id}" if new_identifier.blank? project.identifier = new_identifier - # Bypass validation, because we're technically still in classic mode, so the model would be applying - # validation for classic identifiers. - project.save!(validate: false) + # Save with the validation context that allows to save semantic ID while system is in classic mode + project.save!(context: :semantic_conversion) end def reset_stale_identifiers diff --git a/app/services/project_identifiers/identifier_autofix/preview_query.rb b/app/services/project_identifiers/identifier_autofix/preview_query.rb index 11f9f22ff04..f1cfe3aa0a0 100644 --- a/app/services/project_identifiers/identifier_autofix/preview_query.rb +++ b/app/services/project_identifiers/identifier_autofix/preview_query.rb @@ -53,7 +53,7 @@ module ProjectIdentifiers def generate_suggestions(analysis) ProjectIdentifierSuggestionGenerator.call( preview_projects(analysis.scope), - exclude: analysis.exclusion_set.to_set(&:upcase) + exclude: analysis.reserved_identifiers_for_admin_preview.to_set(&:upcase) ) end diff --git a/app/services/project_identifiers/identifier_autofix/problematic_identifiers.rb b/app/services/project_identifiers/identifier_autofix/problematic_identifiers.rb index 769ddb9d633..25ab7a8bb05 100644 --- a/app/services/project_identifiers/identifier_autofix/problematic_identifiers.rb +++ b/app/services/project_identifiers/identifier_autofix/problematic_identifiers.rb @@ -37,7 +37,7 @@ module ProjectIdentifiers # # == Performance notes # - # * +#exclusion_set+ loads all non-problematic identifiers and historical slugs + # * +#reserved_identifiers_for_admin_preview+ loads all non-problematic identifiers and historical slugs # into memory. Fine for a one-off admin migration; if this ever becomes a hot # path, consider a DB-backed exclusion check instead. # @@ -47,11 +47,15 @@ module ProjectIdentifiers # # class ProblematicIdentifiers - # Returns all project identifiers (current and historical) tracked by - # FriendlyId's slug history. Useful as an exclusion set when generating - # new identifiers, since any slug that was ever in use must not be reused. + # Returns a Set of uppercased identifiers that must not be reused. + # Combines all FriendlyId slug history for projects (current and historical slugs) + # with system-reserved keywords from Projects::Identifier::RESERVED_IDENTIFIERS. def self.reserved_identifiers - FriendlyId::Slug.where(sluggable_type: Project.name).pluck(:slug).to_set + Project.identifier_slugs.upcased_values.to_set | model_reserved_identifiers + end + + def self.model_reserved_identifiers + Projects::Identifier::RESERVED_IDENTIFIERS.to_set(&:upcase) end # Priority-ordered format rules for identifier classification. @@ -77,7 +81,7 @@ module ProjectIdentifiers end def self.max_identifier_length - ProjectIdentifierSuggestionGenerator::IDENTIFIER_LENGTH[:max] + Projects::Identifier::SEMANTIC_IDENTIFIER_MAX_LENGTH end def scope @@ -96,20 +100,17 @@ module ProjectIdentifiers end # Returns a Set of identifiers that must not be suggested for new assignments. - # Combines currently active identifiers from non-problematic projects with - # historically reserved identifiers from FriendlyId slug history. - def exclusion_set - historical_identifiers | in_use_identifiers + # Unions currently active identifiers (non-problematic projects), historical FriendlyId slugs, + # and system-reserved keywords — the full exclusion set used by #collision_error_reason. + # Uses instance-level memoization so the same loaded sets power both this method and collision checks. + def reserved_identifiers_for_admin_preview + historical_identifiers | current_identifiers | self.class.model_reserved_identifiers end private def historical_identifiers - @historical_identifiers ||= FriendlyId::Slug - .where(sluggable_type: Project.name) - .where("LOWER(slug) NOT IN (SELECT LOWER(identifier) FROM projects)") - .pluck(:slug) - .to_set + @historical_identifiers ||= Project.identifier_slugs.historically_reserved.upcased_values.to_set end def exceeds_max_length = Project.where("length(identifier) > ?", self.class.max_identifier_length) @@ -118,17 +119,18 @@ module ProjectIdentifiers def not_fully_uppercased = Project.where("identifier != UPPER(identifier)") def collision_error_reason(identifier) - if in_use_identifiers.include?(identifier) + if self.class.model_reserved_identifiers.include?(identifier) + :reserved_by_system + elsif current_identifiers.include?(identifier) :in_use elsif historical_identifiers.include?(identifier) - :reserved + :used_in_past end end - def in_use_identifiers - @in_use_identifiers ||= Project.where.not(id: scope.select(:id)).pluck(:identifier).to_set + def current_identifiers + @current_identifiers ||= Project.where.not(id: scope.select(:id)).pluck(:identifier).to_set end - end end end diff --git a/app/services/project_identifiers/revert_project_to_classic_service.rb b/app/services/project_identifiers/revert_project_to_classic_service.rb index 87ad2d7b080..7a1045d574e 100644 --- a/app/services/project_identifiers/revert_project_to_classic_service.rb +++ b/app/services/project_identifiers/revert_project_to_classic_service.rb @@ -51,18 +51,9 @@ module ProjectIdentifiers attr_reader :project def restore_classic_identifier - classic = previous_classic_identifier.presence || Project.suggest_identifier(project.name) + generator = ProjectIdentifiers::ClassicIdentifierSuggestionGenerator.new + classic = generator.restore_identifier(project) || generator.suggest_identifier(project.name) project.update!(identifier: classic) end - - # Returns the most-recent FriendlyId slug for this project that is in classic - # acts_as_url format (lowercase letters, digits, hyphens, underscores; not - # all-numeric), or nil if no such slug exists. - def previous_classic_identifier - project.slugs - .order(created_at: :desc) - .pluck(:slug) - .find { |slug| Project.classic_identifier_format?(slug) } - end end end diff --git a/app/services/projects/copy_service.rb b/app/services/projects/copy_service.rb index 1f62f8ad766..a69e98441ec 100644 --- a/app/services/projects/copy_service.rb +++ b/app/services/projects/copy_service.rb @@ -126,7 +126,7 @@ module Projects end def skipped_attributes - %w[id created_at updated_at name identifier active templated lft rgt] + %w[id created_at updated_at name identifier active templated lft rgt wp_sequence_counter] end def source_attributes diff --git a/app/services/work_packages/update_service.rb b/app/services/work_packages/update_service.rb index 4a3bc8ff84d..4a22ea5a549 100644 --- a/app/services/work_packages/update_service.rb +++ b/app/services/work_packages/update_service.rb @@ -112,7 +112,17 @@ class WorkPackages::UpdateService < BaseServices::Update def update_semantic_ids(work_packages) return if work_packages.empty? - work_packages.first.project.reserve_semantic_id_block!(work_packages.map(&:id)) + # reserve_semantic_id_block! writes via raw SQL UPDATE, so the in-memory + # records still carry the nil identifier left by SetAttributesService. + # Apply the returned assignments in-memory so callers (HAL representers, + # redirect helpers) see the freshly allocated semantic id without N reloads. + assignments = work_packages.first.project.reserve_semantic_id_block!(work_packages.map(&:id)) + work_packages.each do |wp| + next unless (identifier = assignments[wp.id]) + + wp.assign_attributes(identifier:, sequence_number: identifier.split("-").last.to_i) + wp.clear_attribute_changes(%i[identifier sequence_number]) + end end def delete_relations(work_packages) diff --git a/app/validators/projects/identifier_validator.rb b/app/validators/projects/identifier_validator.rb new file mode 100644 index 00000000000..c1703d68e44 --- /dev/null +++ b/app/validators/projects/identifier_validator.rb @@ -0,0 +1,101 @@ +# frozen_string_literal: true + +#-- copyright +# OpenProject is an open source project management software. +# Copyright (C) the OpenProject GmbH +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License version 3. +# +# OpenProject is a fork of ChiliProject, which is a fork of Redmine. The copyright follows: +# Copyright (C) 2006-2013 Jean-Philippe Lang +# Copyright (C) 2010-2013 the ChiliProject Team +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +# See COPYRIGHT and LICENSE files for more details. +#++ + +module Projects + class IdentifierValidator < ActiveModel::EachValidator + SEMANTIC_START_FORMAT = /\A[A-Z]/ + SEMANTIC_BODY_FORMAT = /\A[A-Z0-9_]*\z/ + + def validate_each(record, attribute, value) + return if value.blank? + + validate_not_reserved_keyword(record, attribute, value) + validate_format_for_mode(record, attribute, value) + validate_not_historically_reserved(record, attribute, value) + end + + private + + def validate_format_for_mode(record, attribute, value) + if semantic_validation?(record) + validate_semantic_format(record, attribute, value) + else + validate_classic_format(record, attribute, value) + end + end + + # Triggered by the global setting OR by a per-call :semantic_conversion context + # (used by the converter service to validate a semantic identifier on a + # classic-mode instance during the conversion flow). + def semantic_validation?(record) + Setting::WorkPackageIdentifier.semantic? || + Array(record.validation_context).include?(:semantic_conversion) + end + + def validate_classic_format(record, attribute, value) + record.errors.add(attribute, :invalid) unless Project.classic_identifier_format?(value) + max = Projects::Identifier::CLASSIC_IDENTIFIER_MAX_LENGTH + record.errors.add(attribute, :too_long, count: max) if value.length > max + end + + def validate_semantic_format(record, attribute, value) + record.errors.add(attribute, :must_start_with_letter) unless value.match?(SEMANTIC_START_FORMAT) + record.errors.add(attribute, :no_special_characters) unless value.match?(SEMANTIC_BODY_FORMAT) + max = Projects::Identifier::SEMANTIC_IDENTIFIER_MAX_LENGTH + record.errors.add(attribute, :too_long, count: max) if value.length > max + end + + def validate_not_reserved_keyword(record, attribute, value) + if Projects::Identifier::RESERVED_IDENTIFIERS.include?(value.downcase) + record.errors.add(attribute, :exclusion) + end + end + + # Skip when the model's separately-declared uniqueness validator already added + # :taken — avoids piling on a second :taken from a historical-slug match. + def validate_not_historically_reserved(record, attribute, value) + return if uniqueness_already_failed?(record, attribute) + return unless used_by_other_project_in_past?(record, value) + + record.errors.add(attribute, :taken, value: value) + end + + def uniqueness_already_failed?(record, attribute) + record.errors.any? { |e| e.attribute == attribute && e.type == :taken } + end + + def used_by_other_project_in_past?(record, value) + Project.identifier_slugs + .for_identifier(value) + .excluding_project(record) + .exists? + end + end +end diff --git a/app/views/custom_actions/_form.html.erb b/app/views/custom_actions/_form.html.erb index 915261d6122..90bfaa92e1f 100644 --- a/app/views/custom_actions/_form.html.erb +++ b/app/views/custom_actions/_form.html.erb @@ -58,8 +58,7 @@
    - > + <%= tag.attributes(data: { section_name: action.key }, hidden: active_section_keys.exclude?(action.key)) %>>
    <%= styled_label_tag("custom_action_actions_#{action.key}", action.human_name, class: "-top") %> @@ -157,12 +156,18 @@ step: 1 %>
    <% end %> - + <%= + render( + Primer::Beta::IconButton.new( + icon: :x, + size: :small, + scheme: :invisible, + type: :button, + aria: { label: t(:button_close) }, + data: { action: "click->hide-sections#hide" } + ) + ) + %>
    <% end %> @@ -172,7 +177,7 @@
    diff --git a/app/views/custom_fields/_custom_options.html.erb b/app/views/custom_fields/_custom_options.html.erb index fa89235fbe6..0e3c58ddc16 100644 --- a/app/views/custom_fields/_custom_options.html.erb +++ b/app/views/custom_fields/_custom_options.html.erb @@ -1,4 +1,4 @@ -<%#-- copyright +<%# -- copyright OpenProject is an open source project management software. Copyright (C) the OpenProject GmbH @@ -25,7 +25,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. See COPYRIGHT and LICENSE files for more details. -++#%> +++# %> <% content_controller "admin--custom-fields", "admin--custom-fields-multi-select-value": @custom_field.multi_value? %> @@ -103,39 +103,32 @@ See COPYRIGHT and LICENSE files for more details. no_label: true %> - - - <%= op_icon("icon-context icon-sort-up icon-small") %> - - - <%= op_icon("icon-context icon-arrow-up2 icon-small") %> - - - <%= op_icon("icon-context icon-arrow-down2 icon-small") %> - - - <%= op_icon("icon-context icon-sort-down icon-small") %> - - + + <%= + render(Primer::Beta::ButtonGroup.new(scheme: :invisible, size: :small)) do |component| + component.with_button( + icon: :"move-to-top", + "aria-label": t(:label_sort_highest), + data: { action: "admin--custom-fields#moveRowToTheTop" } + ) + component.with_button( + icon: :"chevron-up", + "aria-label": t(:label_sort_higher), + data: { action: "admin--custom-fields#moveRowUp" } + ) + component.with_button( + icon: :"chevron-down", + "aria-label": t(:label_sort_lower), + data: { action: "admin--custom-fields#moveRowDown" } + ) + component.with_button( + icon: :"move-to-bottom", + "aria-label": t(:label_sort_lowest), + data: { action: "admin--custom-fields#moveRowToTheBottom" } + ) + end + %> + <%= link_to "", @@ -146,7 +139,7 @@ See COPYRIGHT and LICENSE files for more details. turbo_confirm: t(:"custom_fields.confirm_destroy_option") }, class: "icon icon-delete delete-custom-option", - title: t(:button_delete) %> + "aria-label": t(:button_delete) %> <% end %> diff --git a/app/views/digest_mailer/work_packages.text.erb b/app/views/digest_mailer/work_packages.text.erb index 5c2983d8d13..5d3a4c3c8d6 100644 --- a/app/views/digest_mailer/work_packages.text.erb +++ b/app/views/digest_mailer/work_packages.text.erb @@ -4,9 +4,9 @@ <% @aggregated_notifications.first(DigestMailer::MAX_SHOWN_WORK_PACKAGES).each do |work_package, notifications_by_work_package| %> - <%= "=" * (("# " + work_package.id.to_s + work_package.subject).length + 4) %> - = #<%= work_package.id %> <%= work_package.subject %> = - <%= "=" * (("# " + work_package.id.to_s + work_package.subject).length + 4) %> + <%= "=" * ((work_package.formatted_id + " " + work_package.subject).length + 4) %> + = <%= work_package.formatted_id %> <%= work_package.subject %> = + <%= "=" * ((work_package.formatted_id + " " + work_package.subject).length + 4) %> <% unique_reasons = unique_reasons_of_notifications(notifications_by_work_package) %> <% unique_reasons.each_with_index do |reason, index| %><%= I18n.t(:"mail.work_packages.reason.#{reason || :unknown}", default: "-") %><%= ", " unless unique_reasons.size - 1 == index %><% end %>: <% if notifications_by_work_package.first.date_alert? %> diff --git a/app/views/filters/list/_select.html.erb b/app/views/filters/list/_select.html.erb index 38160cf0723..da65efe09c1 100644 --- a/app/views/filters/list/_select.html.erb +++ b/app/views/filters/list/_select.html.erb @@ -22,7 +22,7 @@ tabindex="0" data-action="click->filter--filters-form#toggleMultiSelect" data-filter--filters-form-filter-name-param="<%= filter.name %>"> - icon4" title="<%= t(:label_enable_multi_select) %>"> + icon4"> <%= t(:label_enable_multi_select) %> diff --git a/app/views/journals/index.atom.builder b/app/views/journals/index.atom.builder index 50e0a67e65f..206c8350b5e 100644 --- a/app/views/journals/index.atom.builder +++ b/app/views/journals/index.atom.builder @@ -41,7 +41,12 @@ xml.feed "xmlns" => "http://www.w3.org/2005/Atom" do xml.entry do xml.title "#{work_package.project.name} - #{work_package.type.name} ##{work_package.id}: #{work_package.subject}" xml.link "rel" => "alternate", "href" => work_package_url(work_package) - xml.id url_for(controller: "/work_packages", action: "show", id: work_package, journal_id: change, + # RFC 4287 §4.2.6.1: atom:id MUST NOT change over time. Feed readers + # key entry deduplication on its byte value, so flipping the URL + # across a work_packages_identifier mode change would re-surface every + # historical entry as new in subscribers' readers. Pin to the numeric + # primary key to keep the id stable. + xml.id url_for(controller: "/work_packages", action: "show", id: work_package.id, journal_id: change, only_path: false) xml.updated change.created_at.xmlschema xml.author do diff --git a/app/views/ldap_auth_sources/_form.html.erb b/app/views/ldap_auth_sources/_form.html.erb index 13beef62bcc..b578890cbfd 100644 --- a/app/views/ldap_auth_sources/_form.html.erb +++ b/app/views/ldap_auth_sources/_form.html.erb @@ -1,4 +1,4 @@ -<%#-- copyright +<%# -- copyright OpenProject is an open source project management software. Copyright (C) the OpenProject GmbH @@ -25,7 +25,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. See COPYRIGHT and LICENSE files for more details. -++#%> +++# %> <%# needs locals: @@ -35,29 +35,24 @@ See COPYRIGHT and LICENSE files for more details. <%= error_messages_for :ldap_auth_source %> <% if @ldap_auth_source.new_record? %> -
    - -
    - <%= - link_translate( - "ldap_auth_sources.technical_warning", - links: { - docs_url: %i[sysadmin_docs ldap] - } - ) - %> -
    -
    + <%= + render(Primer::Alpha::Banner.new(scheme: :warning, mb: 2, dismiss_scheme: :hide)) do + link_translate( + "ldap_auth_sources.technical_warning", + links: { + docs_url: %i[sysadmin_docs ldap] + } + ) + end + %> <% end %> <% if @ldap_auth_source.seeded_from_env? %> -
    -
    - <%= t(:label_seeded_from_env_warning) %> -
    - <%= link_to t("ldap_auth_sources.back_to_index"), { action: :index } %> -
    -
    + <%= render(Primer::Alpha::Banner.new(scheme: :warning, icon: :alert, mb: 2)) do %> + <%= t(:label_seeded_from_env_warning) %> +
    + <%= link_to t("ldap_auth_sources.back_to_index"), { action: :index } %> + <% end %> <% end %> <%= content_tag :fieldset, class: "form--fieldset", disabled: @ldap_auth_source.seeded_from_env? do %> diff --git a/app/views/mailer/_notification_row.html.erb b/app/views/mailer/_notification_row.html.erb index 040820e5bdc..66ba12de800 100644 --- a/app/views/mailer/_notification_row.html.erb +++ b/app/views/mailer/_notification_row.html.erb @@ -27,7 +27,7 @@ <%= placeholder_cell("8px", vertical: true) %> - #<%= work_package.id %> - <%= work_package.project %> + <%= work_package.formatted_id %> - <%= work_package.project %> <%= " - " unless unique_reasons.length === 1 && unique_reasons.first.nil? %> <% unique_reasons.each_with_index do |reason, index| %> <%= I18n.t( diff --git a/app/views/members/_member_form.html.erb b/app/views/members/_member_form.html.erb index 5db509c6a23..7a37cfc3808 100644 --- a/app/views/members/_member_form.html.erb +++ b/app/views/members/_member_form.html.erb @@ -39,9 +39,19 @@ See COPYRIGHT and LICENSE files for more details. "user-limit-member-autocompleter-value": true } ) do |f| %> - " - class="hide-member-form-button form--close icon-context icon-close" - data-action="members-form#hideAddMemberForm"> + + <%= + render( + Primer::Beta::IconButton.new( + icon: :x, + scheme: :invisible, + classes: "hide-member-form-button form--close", + tooltip_direction: :se, + aria: { label: t("js.close_form_title") }, + data: { action: "members-form#hideAddMemberForm" } + ) + ) + %>
    @@ -52,7 +62,7 @@ See COPYRIGHT and LICENSE files for more details. user_id_title = I18n.t(:label_principal_search) if current_user.admin? - user_id_title += I18n.t(:label_principal_invite_via_email) + user_id_title = "#{user_id_title}#{I18n.t(:label_principal_invite_via_email)}" end %> <%= styled_label_tag :member_user_ids, user_id_title %> @@ -61,7 +71,7 @@ See COPYRIGHT and LICENSE files for more details. inputs: { inputName: "member[user_ids]", inputBindValue: "id", - url: autocomplete_for_member_project_members_path + ".json", + url: "#{autocomplete_for_member_project_members_path}.json", multiple: true } %>
    @@ -99,16 +109,23 @@ See COPYRIGHT and LICENSE files for more details.
    <% if OpenProject::Enterprise.user_limit.present? %> -
    -
    -

    <%= - link_translate( - "warning_user_limit_reached#{'_admin' if current_user.admin?}", - links: { upgrade_url: OpenProject::Enterprise.upgrade_url } - ) %> -

    -
    + <%= + render( + Primer::Alpha::Banner.new( + scheme: :warning, + icon: :alert, + classes: "d-none", + data: { "user-limit-target": "limitWarning" } + ) + ) do + %> + <%= + link_translate( + "warning_user_limit_reached#{'_admin' if current_user.admin?}", + links: { upgrade_url: OpenProject::Enterprise.upgrade_url } + ) + %> <% end %> + <% end %> <% end %> diff --git a/app/views/onboarding/_configuration_modal.html.erb b/app/views/onboarding/_configuration_modal.html.erb index dccdee84e34..03858e60b0e 100644 --- a/app/views/onboarding/_configuration_modal.html.erb +++ b/app/views/onboarding/_configuration_modal.html.erb @@ -49,8 +49,7 @@ See COPYRIGHT and LICENSE files for more details. + dynamic-content-modal-close-button><%= t(:button_close) %> <%= styled_button_tag t(:button_save), class: "button_no-margin -primary -with-icon icon-checkmark spot-action-bar--action" %>
    diff --git a/app/views/projects/settings/storage/_storage_field.html.erb b/app/views/projects/settings/storage/_storage_field.html.erb index 4dc837313a7..80d3c19eb0f 100644 --- a/app/views/projects/settings/storage/_storage_field.html.erb +++ b/app/views/projects/settings/storage/_storage_field.html.erb @@ -27,7 +27,7 @@ See COPYRIGHT and LICENSE files for more details. ++#%>
    - + <%= number_to_human_size(value, precision: 2) %> diff --git a/app/views/reminders/notification_mailer/reminder_notification.text.erb b/app/views/reminders/notification_mailer/reminder_notification.text.erb index ce8e0d34e55..0230402630d 100644 --- a/app/views/reminders/notification_mailer/reminder_notification.text.erb +++ b/app/views/reminders/notification_mailer/reminder_notification.text.erb @@ -3,7 +3,7 @@ <%= text_email_wrapper %> <%= work_package_subject_text_wrapper %> -= #<%= @work_package.id %> <%= @work_package.subject %> = += <%= @work_package.formatted_id %> <%= @work_package.subject %> = <%= work_package_subject_text_wrapper %> <%= reminder_timestamp_text %> diff --git a/app/views/repositories/_checkout_instructions.html.erb b/app/views/repositories/_checkout_instructions.html.erb index 5967c442e3b..7101b0dcb42 100644 --- a/app/views/repositories/_checkout_instructions.html.erb +++ b/app/views/repositories/_checkout_instructions.html.erb @@ -30,9 +30,10 @@ See COPYRIGHT and LICENSE files for more details. <% elsif @instructions.supported_but_not_enabled? %> -
    - - -
    -

    <%= t("repositories.checkout.not_available") %>

    -
    -
    + <%= render(Primer::Alpha::Banner.new(scheme: :warning, icon: :alert, dismiss_scheme: :hide)) do %> + <%= t("repositories.checkout.not_available") %> + <% end %> <% end %> diff --git a/app/views/repositories/revision.html.erb b/app/views/repositories/revision.html.erb index 2c50f59912e..fcee2749cd3 100644 --- a/app/views/repositories/revision.html.erb +++ b/app/views/repositories/revision.html.erb @@ -27,9 +27,9 @@ See COPYRIGHT and LICENSE files for more details. ++#%> -<%= render(Repositories::Revision::PageHeaderComponent.new(changeset: @changeset, repository: @repository, project: @project)) %> +<%= render(Repositories::Revision::PageHeaderComponent.new(changeset: @changeset, repository: @repository, project: @project)) %> <%= form_tag({ controller: "/repositories", action: "revision", project_id: @project }, method: :get) do %> - <%= text_field_tag :rev, @rev, placeholder: t(:label_revision) %> + <%= text_field_tag :rev, @rev, placeholder: t(:label_revision), autocomplete: "off" %> <% end %>

    <% if @changeset.scmid %>ID: <%= h(@changeset.scmid) %>
    <% end %> @@ -46,11 +46,11 @@ See COPYRIGHT and LICENSE files for more details. <% if User.current.allowed_in_project?(:browse_repository, @project) %>

    <%= t(:label_attachment_plural) %>

      -
    • ><%= t(:label_added) %>
    • -
    • ><%= t(:label_modified) %>
    • -
    • ><%= t(:label_copied) %>
    • -
    • ><%= t(:label_renamed) %>
    • -
    • ><%= t(:label_deleted) %>
    • +
    • <%= t(:label_added) %>
    • +
    • <%= t(:label_modified) %>
    • +
    • <%= t(:label_copied) %>
    • +
    • <%= t(:label_renamed) %>
    • +
    • <%= t(:label_deleted) %>

    <%= link_to(t(:label_view_diff), action: "diff", project_id: @project, repo_path: nil, rev: @changeset.identifier) if @changeset.file_changes.any? %>

    diff --git a/app/views/roles/edit.html.erb b/app/views/roles/edit.html.erb index a5d59733886..7ee773cf81b 100644 --- a/app/views/roles/edit.html.erb +++ b/app/views/roles/edit.html.erb @@ -32,16 +32,29 @@ See COPYRIGHT and LICENSE files for more details. <%= render Primer::OpenProject::PageHeader.new do |header| header.with_title { @role.name } - header.with_breadcrumbs([{ href: admin_index_path, text: t("label_administration") }, - { href: admin_settings_users_path, text: t(:label_user_and_permission) }, - { href: roles_path, text: t(:label_role_and_permissions) }, - @role.name]) + header.with_breadcrumbs( + [{ href: admin_index_path, text: t("label_administration") }, + { href: admin_settings_users_path, text: t(:label_user_and_permission) }, + { href: roles_path, text: t(:label_role_and_permissions) }, + @role.name] + ) end %> -<%= labelled_tabular_form_for @role, :url => { :action => 'update' }, :html => {:id => 'role_form'}, :as => :role do |f| %> - <%= hidden_field_tag :id, @role.id %> - <%= render partial: 'form', locals: { f: f , role: @role } %> -
    - <%= styled_button_tag t(:button_save), class: '-with-icon icon-checkmark' %> +<% if @role.is_a?(ProjectRole) && Setting.new_project_user_role_id.to_i == @role.id %> + <%= render(Primer::Alpha::Banner.new(scheme: :warning, icon: :alert, mb: 3)) do %> +

    <%= t("roles.edit.default_for_new_projects_warning") %>

    +
      + <% ProjectRole::PERMISSIONS_FOR_PROJECT_CREATOR.each do |permission| %> +
    • <%= t("permission_#{permission}") %>
    • + <% end %> +
    + <% end %> +<% end %> + +<%= labelled_tabular_form_for @role, url: { action: "update" }, html: { id: "role_form" }, as: :role do |f| %> + <%= hidden_field_tag :id, @role.id %> + <%= render partial: "form", locals: { f: f, role: @role } %> +
    + <%= styled_button_tag t(:button_save), class: "-with-icon icon-checkmark" %> <% end %> diff --git a/app/views/warning_bar/_unsupported_browser.html.erb b/app/views/warning_bar/_unsupported_browser.html.erb index 702c40ff945..c7aaf14fc8e 100644 --- a/app/views/warning_bar/_unsupported_browser.html.erb +++ b/app/views/warning_bar/_unsupported_browser.html.erb @@ -1,5 +1,7 @@
    - " class="icon3 icon-warning warning-bar--disable-on-hover"> +

    <%= t("unsupported_browser.title") %> @@ -27,8 +29,8 @@ } // Click handler to hide - var span = message.querySelector('.warning-bar--disable-on-hover'); - span.onclick = function() { + var closeButton = message.querySelector('.warning-bar--disable-on-hover'); + closeButton.onclick = function() { message.style.display = 'none'; try { window.localStorage.setItem('unsupported-browser-warning-ignore', '1'); diff --git a/app/views/wiki/index.html.erb b/app/views/wiki/index.html.erb index 5aa4aa5d36b..11313b982de 100644 --- a/app/views/wiki/index.html.erb +++ b/app/views/wiki/index.html.erb @@ -49,7 +49,7 @@ See COPYRIGHT and LICENSE files for more details. <% unless @pages.empty? %> <%= other_formats_links do |f| %> <%= f.link_to "Atom", url: { controller: "/activities", action: "index", show_wiki_edits: 1, key: User.current.rss_key } %> - <%= f.link_to("HTML", url: { action: "export" }) if User.current.allowed_in_project?(:export_wiki_pages, @project) %> + <%= f.link_to("HTML", url: { action: "export" }) if User.current.allowed_in_project?(:view_wiki_pages, @project) %> <% end %> <% else %> <%= no_results_box( diff --git a/app/views/wiki/rename.html.erb b/app/views/wiki/rename.html.erb index e8f02d0219f..abcbcf6b48a 100644 --- a/app/views/wiki/rename.html.erb +++ b/app/views/wiki/rename.html.erb @@ -27,7 +27,7 @@ See COPYRIGHT and LICENSE files for more details. ++#%> -<% html_title t(:permission_rename_wiki_pages) %> +<% html_title t(:text_rename_wiki_page) %> <%= render Primer::OpenProject::PageHeader.new do |header| diff --git a/app/views/work_package_mailer/mentioned.text.erb b/app/views/work_package_mailer/mentioned.text.erb index c3ef81556b7..eee14ad5c8b 100644 --- a/app/views/work_package_mailer/mentioned.text.erb +++ b/app/views/work_package_mailer/mentioned.text.erb @@ -3,9 +3,9 @@ <%= "-" * 100 %> -<%= "=" * (("# " + @work_package.id.to_s + @work_package.subject).length + 4) %> -= #<%= @work_package.id %> <%= @work_package.subject %> = -<%= "=" * (("# " + @work_package.id.to_s + @work_package.subject).length + 4) %> +<%= "=" * ((@work_package.formatted_id + " " + @work_package.subject).length + 4) %> += <%= @work_package.formatted_id %> <%= @work_package.subject %> = +<%= "=" * ((@work_package.formatted_id + " " + @work_package.subject).length + 4) %> <%= I18n.t(:label_comment_added) %>: <%= strip_tags @journal.notes %> diff --git a/app/views/work_package_mailer/watcher_changed.html.erb b/app/views/work_package_mailer/watcher_changed.html.erb index 9be970cecbc..6089c2dd7b9 100644 --- a/app/views/work_package_mailer/watcher_changed.html.erb +++ b/app/views/work_package_mailer/watcher_changed.html.erb @@ -26,7 +26,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. See COPYRIGHT and LICENSE files for more details. ++#%> -<%= t("text_work_package_watcher_#{@action}", id: "##{@work_package.id}", watcher_changer: @watcher_changer) %> +<%= t("text_work_package_watcher_#{@action}", id: @work_package.formatted_id, watcher_changer: @watcher_changer) %>


    <%= render partial: "work_package_details", locals: { work_package: @work_package } %>

    diff --git a/app/views/work_package_mailer/watcher_changed.text.erb b/app/views/work_package_mailer/watcher_changed.text.erb index 289e99f6a79..7de3fc8bccc 100644 --- a/app/views/work_package_mailer/watcher_changed.text.erb +++ b/app/views/work_package_mailer/watcher_changed.text.erb @@ -27,7 +27,7 @@ See COPYRIGHT and LICENSE files for more details. ++#%> -<%= t("text_work_package_watcher_#{@action}", id: "##{@work_package.id}", watcher_changer: @watcher_changer) %> +<%= t("text_work_package_watcher_#{@action}", id: @work_package.formatted_id, watcher_changer: @watcher_changer) %> ---------------------------------------- <%= render partial: "work_package_details", locals: { work_package: @work_package } %> diff --git a/app/views/work_packages/split_create.html.erb b/app/views/work_packages/split_create.html.erb new file mode 100644 index 00000000000..f6140ad4c93 --- /dev/null +++ b/app/views/work_packages/split_create.html.erb @@ -0,0 +1,3 @@ +<%= turbo_frame_tag "content-bodyRight" do %> + <%= render(split_create_instance) %> +<% end %> diff --git a/app/views/workflows/_form.html.erb b/app/views/workflows/_form.html.erb index 95e3a7469a4..11cbe41d944 100644 --- a/app/views/workflows/_form.html.erb +++ b/app/views/workflows/_form.html.erb @@ -187,9 +187,11 @@ See COPYRIGHT and LICENSE files for more details. <% end %> <% @statuses.each do |new_status| -%> - <% transition_saved = workflows.any? { it.old_status_id == old_status.id && it.new_status_id == new_status.id } - newly_added_status = @added_status_ids.include?(old_status.id) || @added_status_ids.include?(new_status.id) %> + <% transition_role_ids = workflows.select { it.old_status_id == old_status.id && it.new_status_id == new_status.id }.map(&:role_id).uniq + newly_added_status = @added_status_ids.include?(old_status.id) || @added_status_ids.include?(new_status.id) + some_roles = !transition_role_ids.empty? && transition_role_ids.size < @roles.size && !newly_added_status %> + <%= hidden_field_tag "indeterminate_status[#{old_status.id}][#{new_status.id}]", "1" if some_roles %> <%= render(Primer::BaseComponent.new(tag: :div, display: :flex, align_items: :center, mx: 1)) do render( @@ -198,13 +200,14 @@ See COPYRIGHT and LICENSE files for more details. name: "status[#{old_status.id}][#{new_status.id}]", id: "status_#{old_status.id}_#{new_status.id}", # See BUG https://github.com/primer/view_components/issues/3811 value: name, - checked: transition_saved || newly_added_status, + checked: !some_roles && (transition_role_ids.any? || newly_added_status), label: t(".matrix_checkbox_label", old_status: old_status.name, new_status: new_status.name), visually_hide_label: true, data: { checkable_target: "checkbox", old_status: old_status.id, - new_status: new_status.id + new_status: new_status.id, + indeterminate: (true if some_roles) } ) ) diff --git a/app/views/workflows/edit.html.erb b/app/views/workflows/edit.html.erb index 49db69fe7cc..b7bdacd0a47 100644 --- a/app/views/workflows/edit.html.erb +++ b/app/views/workflows/edit.html.erb @@ -28,9 +28,9 @@ See COPYRIGHT and LICENSE files for more details. ++#%> <% html_title t(:label_administration), t(:label_workflow_plural), @type.name -%> <% content_for :content_header do %> - <%= render Workflows::PageHeaders::EditComponent.new(@type, role: @role, tabs: workflow_tabs(@type)) %> + <%= render Workflows::PageHeaders::EditComponent.new(@type, roles: @roles, tabs: workflow_tabs(@type)) %> <% end %> -<% if @type && @role %> - <%= turbo_frame_tag "workflow-table", src: edit_workflow_tab_path(@type, @current_tab, role_id: @role.id, status_ids: params[:status_ids]) %> +<% if @type && @roles.any? %> + <%= turbo_frame_tag "workflow-table", src: edit_workflow_tab_path(@type, @current_tab, role_ids: @roles.map(&:id), status_ids: params[:status_ids]) %> <% end %> diff --git a/app/views/workflows/summaries/show.html.erb b/app/views/workflows/summaries/show.html.erb index 034123f66d9..f5ed8bcff9e 100644 --- a/app/views/workflows/summaries/show.html.erb +++ b/app/views/workflows/summaries/show.html.erb @@ -61,7 +61,7 @@ See COPYRIGHT and LICENSE files for more details. <%= h type %> <% roles.each do |role, count| -%> - <%= link_to((count > 0 ? count : content_tag(:span, "", class: "icon-close icon-context icon-button")), edit_workflow_path(type, role_id: role), title: t(:button_edit)) %> + <%= link_to((count > 0 ? count : content_tag(:span, "", class: "icon-close icon-context icon-button")), edit_workflow_path(type, role_ids: [role]), title: t(:button_edit)) %> <% end -%> diff --git a/app/views/workflows/tabs/edit.html.erb b/app/views/workflows/tabs/edit.html.erb index f665ac5cd3c..cc5624dbda9 100644 --- a/app/views/workflows/tabs/edit.html.erb +++ b/app/views/workflows/tabs/edit.html.erb @@ -28,8 +28,8 @@ See COPYRIGHT and LICENSE files for more details. ++#%> <%= turbo_frame_tag "workflow-table", data: { turbo_cache: false } do %> - <%= render Workflows::StatusMatrixFormComponent.new(tab: @tab, role: @role, type: @type, available_roles: @eligible_roles, statuses: @statuses, has_status_changes: @has_status_changes) %> + <%= render Workflows::StatusMatrixFormComponent.new(tab: @tab, roles: @roles, type: @type, available_roles: @eligible_roles, statuses: @statuses, has_status_changes: @has_status_changes) %> <%= turbo_stream.replace(Workflows::PageHeaders::EditComponent.wrapper_key) do %> - <%= render Workflows::PageHeaders::EditComponent.new(@type, role: @role, tabs: workflow_tabs(@type)) %> + <%= render Workflows::PageHeaders::EditComponent.new(@type, roles: @roles, tabs: workflow_tabs(@type)) %> <% end %> <% end %> diff --git a/app/workers/principals/delete_job.rb b/app/workers/principals/delete_job.rb index 68b35d0dca1..f7dc88960bd 100644 --- a/app/workers/principals/delete_job.rb +++ b/app/workers/principals/delete_job.rb @@ -67,6 +67,9 @@ class Principals::DeleteJob < ApplicationJob def delete_associated(principal) delete_notifications(principal) delete_private_queries(principal) + delete_private_persisted_views(principal) + nullify_persisted_query_principals(principal) + delete_user_ordered_query_entities(principal) delete_tokens(principal) delete_favorites(principal) end @@ -84,6 +87,30 @@ class Principals::DeleteJob < ApplicationJob CostQuery.where(user_id: principal.id, is_public: false).delete_all end + # Private persisted views belong to their owner and are removed with them. + # Public views are kept, but their principal reference is nullified so the + # view becomes "ownerless" rather than pointing at the soon-to-be-deleted + # user. Destroying the private views also triggers the view's after_destroy + # hook, which cleans up queries that are no longer referenced by any public + # view. + def delete_private_persisted_views(principal) + PersistedView.where(principal_id: principal.id, public: false).destroy_all + PersistedView.where(principal_id: principal.id, public: true).update_all(principal_id: nil) + end + + # Queries have no public/private flag — their visibility is derived from the + # views that reference them. Any query still reachable after the view + # cleanup above stays; we just drop the owner pointer. + def nullify_persisted_query_principals(principal) + PersistedQuery.where(principal_id: principal.id).update_all(principal_id: nil) + end + + # Manually curated entries that point at the deleted user are dropped — a + # list of "Deleted user, Deleted user, …" is worse than just removing them. + def delete_user_ordered_query_entities(principal) + OrderedPersistedQueryEntity.where(entity: principal).delete_all + end + def delete_favorites(principal) Favorite.where(user_id: principal.id).delete_all end diff --git a/bin/compose b/bin/compose index 76861cedbb4..f5e4d56799f 100755 --- a/bin/compose +++ b/bin/compose @@ -13,6 +13,10 @@ fi COMPOSE_FILE=docker-compose.yml +if [ -f docker-compose.override.yml ]; then + COMPOSE_FILE="$COMPOSE_FILE -f docker-compose.override.yml" +fi + if [ $# -eq 0 ]; then echo "Usage: bin/compose [args*]" echo @@ -21,6 +25,7 @@ if [ $# -eq 0 ]; then echo " reset - Resets everything by removing all containers and deleting all volumes. You need to run \`setup\` again afterwards. " echo " start - Starts both backend and frontend in the background. Access via http://localhost:3000/ by default." echo " run - Starts the frontend in the background and backend in the foreground. Useful for debugging using pry." + echo " restart [service] - Restarts one or all running services." echo " rspec - Runs rspec inside the \`backend-test\` container which will be started if it's not running yet." echo " * - Everything else will be passed straight to \`docker-compose\`." echo @@ -54,6 +59,8 @@ elif [[ "$@" = "run" ]]; then elif [[ "$1" = "setup" ]]; then $DOCKER_COMPOSE -f $COMPOSE_FILE run backend setup yes no | $DOCKER_COMPOSE -f $COMPOSE_FILE run frontend npm install +elif [[ "$1" = "restart" ]]; then + $DOCKER_COMPOSE -f $COMPOSE_FILE restart "${@:2}" elif [[ "$1" = "reset" ]]; then $DOCKER_COMPOSE -f $COMPOSE_FILE down && docker volume rm `docker volume ls -q | grep ${PWD##*/}_` elif [[ "$1" = "rspec" ]]; then @@ -84,5 +91,5 @@ elif [[ "$1" = "rspec" ]]; then $DOCKER_COMPOSE -f $COMPOSE_FILE exec backend-test bundle exec rspec "${@:2}" else - $DOCKER_COMPOSE -f $COMPOSE_FILE $* + $DOCKER_COMPOSE -f $COMPOSE_FILE "$@" fi diff --git a/config/AGENTS.md b/config/AGENTS.md new file mode 100644 index 00000000000..6a6bf14863f --- /dev/null +++ b/config/AGENTS.md @@ -0,0 +1,13 @@ +# Config + +## Translations +- UI strings must use translation keys (never hard-coded) +- Source translations in `**/config/locales/en.yml` can be modified directly +- Other translations managed via Crowdin + +```bash +bundle exec i18n-tasks missing # Show missing translation keys +bundle exec i18n-tasks unused # Show unused translation keys +bundle exec i18n-tasks normalize # Fix/normalize translation files +bundle exec i18n-tasks check-consistent-interpolations # Check interpolation consistency +``` diff --git a/config/CLAUDE.md b/config/CLAUDE.md new file mode 120000 index 00000000000..47dc3e3d863 --- /dev/null +++ b/config/CLAUDE.md @@ -0,0 +1 @@ +AGENTS.md \ No newline at end of file diff --git a/config/boot.rb b/config/boot.rb index 7c56b61cc6b..182c121aac4 100644 --- a/config/boot.rb +++ b/config/boot.rb @@ -48,8 +48,3 @@ if env == "production" && ENV["OPENPROJECT_PROD_DEPRECATIONS"] != "true" StructuredWarnings::BuiltInWarning.disable StructuredWarnings::DeprecationWarning.disable end - -if env == "development" - warn "Starting with bootsnap." - require "bootsnap/setup" # Speed up boot time by caching expensive operations. -end diff --git a/config/constants/settings/definition.rb b/config/constants/settings/definition.rb index a4fdd36b047..6b65694e6b9 100644 --- a/config/constants/settings/definition.rb +++ b/config/constants/settings/definition.rb @@ -957,6 +957,13 @@ module Settings writable: false, description: "Host the frontend uses to download files, which has to be added to the CSP." }, + # Content Security Policy + csp_img_src: { + format: :array, + default: %w(* data: blob:), + writable: false, + description: "Allowed sources for the CSP img-src directive." + }, report_incoming_email_errors: { description: "Respond to incoming mails with error details", default: true diff --git a/config/database.yml.example b/config/database.yml.example index 2350dd56640..8a897bf14c8 100644 --- a/config/database.yml.example +++ b/config/database.yml.example @@ -38,7 +38,7 @@ development: adapter: postgresql encoding: unicode database: openproject_development - pool: 5 + pool: 100 username: openproject_development password: diff --git a/config/i18n-tasks.yml b/config/i18n-tasks.yml index 3435d4985de..9f25d0fb396 100644 --- a/config/i18n-tasks.yml +++ b/config/i18n-tasks.yml @@ -69,8 +69,8 @@ search: # By default, if a relative translation is used inside a method, the name of the method will be considered part of the resolved key. # Directories listed here will not consider the name of the method part of the resolved key # - # relative_exclude_method_name_paths: - # - + relative_exclude_method_name_paths: + - modules/storages/app/components ## Files or `File.fnmatch` patterns to exclude from search. Some files are always excluded regardless of this setting: ## *.jpg *.jpeg *.png *.gif *.svg *.ico *.eot *.otf *.ttf *.woff *.woff2 *.pdf *.css *.sass *.scss *.less @@ -151,7 +151,7 @@ ignore_unused: - '*.permission_header_explanation' - 'storages.upsell.*' - 'services.*' - - 'storages.health.connection_validation.{one_drive,nextcloud}.*' + - 'storages.health.checks.*' ## Exclude these keys from the `i18n-tasks eq-base' report: # ignore_eq_base: diff --git a/config/initializers/content_security_policy.rb b/config/initializers/content_security_policy.rb index a10767864f3..8d40c9155dc 100644 --- a/config/initializers/content_security_policy.rb +++ b/config/initializers/content_security_policy.rb @@ -34,6 +34,7 @@ # See the Securing Rails Applications Guide for more information: # https://guides.rubyonrails.org/security.html#content-security-policy-header +# rubocop:disable Lint/PercentStringArray Rails.application.config.after_initialize do Rails.application.configure do config.content_security_policy do |policy| @@ -121,11 +122,13 @@ Rails.application.config.after_initialize do # Configure CSP directives policy.default_src(*default_src) policy.base_uri("'self'") - policy.font_src(*assets_src, "data:", "'self'") + policy.font_src(*assets_src, "data:") policy.form_action(*form_action) policy.frame_src(*frame_src, "'self'") policy.frame_ancestors("'self'") - policy.img_src("*", "data:", "blob:") + img_src = %w('self') + Array(OpenProject::Configuration.csp_img_src) + img_src << asset_host if asset_host.present? + policy.img_src(*img_src.compact.uniq) policy.script_src(*script_src) policy.script_src_attr("'none'") policy.style_src(*assets_src, "'unsafe-inline'") @@ -149,3 +152,4 @@ Rails.application.config.after_initialize do config.content_security_policy_nonce_directives = %w(script-src) end end +# rubocop:enable Lint/PercentStringArray diff --git a/config/initializers/database_pool_size.rb b/config/initializers/database_pool_size.rb index da9aaa73a1b..9248ae85ad3 100644 --- a/config/initializers/database_pool_size.rb +++ b/config/initializers/database_pool_size.rb @@ -28,12 +28,33 @@ # See COPYRIGHT and LICENSE files for more details. #++ -config = Rails.env.production? && Rails.application.config.database_configuration[Rails.env] -pool_size = config && [OpenProject::Configuration.web_max_threads + 1, config["pool"].to_i].max +if Rails.env.production? + config = Rails.application.config.database_configuration[Rails.env] + pool_size = config && [OpenProject::Configuration.web_max_threads + 1, config["pool"].to_i].max -# make sure we have enough connections in the pool for each thread and then some -if pool_size && pool_size > ActiveRecord::Base.connection_pool.size - Rails.logger.info { "Increasing database pool size to #{pool_size} to match max threads" } + # make sure we have enough connections in the pool for each thread and then some + if pool_size && pool_size > ActiveRecord::Base.connection_pool.size + Rails.logger.info { "Increasing database pool size to #{pool_size} to match max threads" } - ActiveRecord::Base.establish_connection config.merge(pool: pool_size) + ActiveRecord::Base.establish_connection config.merge(pool: pool_size) + end +end + +# Log a warning if we encounter an under-provisioned dev setup +if Rails.env.local? + utility_connections = 1 + GoodJob::SharedExecutor::MAX_THREADS # based on GoodJob documentation + required_pool_size = OpenProject::Configuration.web_max_threads + + OpenProject::Configuration.good_job_max_threads + + utility_connections + + if ActiveRecord::Base.connection_pool.size < required_pool_size + Rails.logger.warn do + "DB pool size of #{ActiveRecord::Base.connection_pool.size} is too small and could cause problems. " \ + "The recommended sizing is at least #{required_pool_size} " \ + "(#{OpenProject::Configuration.web_max_threads} for web_max_threads + " \ + "#{OpenProject::Configuration.good_job_max_threads} for web_max_threads + " \ + "#{utility_connections} for GoodJob utility connections). " \ + "Please adjust the pool parameter in database.yml or \"?pool=N\" parameter in DATABASE_URL." + end + end end diff --git a/config/initializers/feature_decisions.rb b/config/initializers/feature_decisions.rb index 76017a14ec2..33879704458 100644 --- a/config/initializers/feature_decisions.rb +++ b/config/initializers/feature_decisions.rb @@ -70,7 +70,3 @@ OpenProject::FeatureDecisions.add :semantic_work_package_ids, description: "Enables the use of semantic work package IDs, " \ "in the schema -. " \ "See #41855 for details." - -OpenProject::FeatureDecisions.add :backlog_buckets, - description: "Enables backlog buckets.", - force_active: true diff --git a/config/initializers/permissions.rb b/config/initializers/permissions.rb index 67b18ebc2fa..dd30f593c64 100644 --- a/config/initializers/permissions.rb +++ b/config/initializers/permissions.rb @@ -539,57 +539,26 @@ Rails.application.reloader.to_prepare do map.project_module :wiki do |wiki| wiki.permission :view_wiki_pages, - { wiki: %i[index show special menu] }, - permissible_on: :project - - wiki.permission :list_attachments, - { wiki: :list_attachments }, - permissible_on: :project, - require: :member - - wiki.permission :manage_wiki, - { wikis: %i[edit destroy] }, - permissible_on: :project, - require: :member - - wiki.permission :manage_wiki_menu, - { wiki_menu_items: %i[edit update select_main_menu_item replace_main_menu_item] }, - permissible_on: :project, - require: :member - - wiki.permission :rename_wiki_pages, - { wiki: :rename }, - permissible_on: :project, - require: :member - - wiki.permission :change_wiki_parent_page, - { wiki: %i[edit_parent_page update_parent_page] }, - permissible_on: :project, - require: :member - - wiki.permission :delete_wiki_pages, - { wiki: :destroy }, - permissible_on: :project, - require: :member - - wiki.permission :export_wiki_pages, - { wiki: [:export] }, + { wiki: %i[index show special menu export] }, permissible_on: :project wiki.permission :view_wiki_edits, { wiki: %i[history diff annotate] }, + dependencies: :view_wiki_pages, permissible_on: :project wiki.permission :edit_wiki_pages, - { wiki: %i[edit update preview add_attachment new new_child create] }, + { wiki: %i[edit update preview add_attachment new new_child create rename] }, + dependencies: :view_wiki_pages, permissible_on: :project - wiki.permission :delete_wiki_pages_attachments, - {}, - permissible_on: :project - - wiki.permission :protect_wiki_pages, - { wiki: :protect }, + wiki.permission :manage_wiki, + { + wiki: %i[destroy protect edit_parent_page update_parent_page], + wikis: %i[edit destroy], + wiki_menu_items: %i[edit update select_main_menu_item replace_main_menu_item] + }, + dependencies: :edit_wiki_pages, permissible_on: :project, require: :member end diff --git a/config/locales/crowdin/af.yml b/config/locales/crowdin/af.yml index 61c1cec08f1..0484dbf38c5 100644 --- a/config/locales/crowdin/af.yml +++ b/config/locales/crowdin/af.yml @@ -419,7 +419,8 @@ af: error_special_characters: Special characters not allowed error_not_fully_uppercased: Must be uppercase error_in_use: Already in use as another project's active handle - error_reserved: Reserved by another project's handle history + error_used_in_past: Reserved by another project's handle history + error_reserved_by_system: Reserved as a system keyword error_unknown: Needs manual review remaining_projects: one: "... 1 more project" @@ -460,8 +461,12 @@ af: ignore: Ignore changes save: Save changes and continue role_selector: + title: Select roles label: 'Role: %{role}' no_role: Select role + roles: + one: One role selected + other: "%{count} roles selected" blankslate: title: No status transitions configured description: Add statuses to start configuring workflows for this role @@ -1110,6 +1115,8 @@ af: no_results_title_text: There is currently no news to report. no_results_content_text: Add a news item roles: + edit: + default_for_new_projects_warning: 'This role is configured as the default role given to non-admin users who create a project. Do not remove the following permissions, otherwise project creators will be unable to complete the setup of their newly created projects:' permissions: section_check_all_label: Assign all %{module} permissions section_uncheck_all_label: Unassign all %{module} permissions @@ -2000,6 +2007,29 @@ af: type: Soort version: Weergawe watcher: Dophouer + ordered_persisted_query_entity: + persisted_query: Persisted query + entity: Entity + position: Position + persisted_query: + name: Name + views: Views + filters: Filters + orders: Orders + selects: Selects + persisted_view: + name: Name + query: Query + parent: Parent view + public: Public + user_card_view: + secondary_info: Secondary info + show_status_badge: Show status badge + show_email: Show email + tag_source: Tag source + tag_limit: Tag limit + card_size: Card size + columns_per_row: Columns per row errors: messages: accepted: must be accepted. @@ -2517,6 +2547,7 @@ af: unsupported_storage_type: is not a supported storage type. storage_error: There was an error with the storage connection. invalid_input: The input is invalid. + invalid_child_for_parent: is not allowed as a parent for this view type. activity: item: created_by_on: created by %{user} on %{datetime} @@ -3391,6 +3422,26 @@ af: general_text_false: 'false' gui_validation_error: 1 fout gui_validation_error_plural: "%{count} foute" + health_reports: + report_component: + checks: + failures: + one: "%{count} check failed" + other: "%{count} checks failed" + success: All checks passed + warnings: + one: "%{count} check returned a warning" + other: "%{count} checks returned a warning" + summary: + failure: Some checks failed and the system does not work as expected. + success: All connections and systems are working as expected. + warning: Some checks returned a warning. This can lead to unexpected behaviour. + result_component: + status: + failed: Failed + passed: Passed + skipped: Skipped + warning: Warning homescreen: additional: projects: Newest visible projects in this instance. @@ -3692,6 +3743,7 @@ af: label_age: Ouderdom label_ago: dae gelede label_all: alle + label_all_uppercase: All label_all_time: alle tye label_all_words: Alle woorde label_all_open_wps: All open @@ -4219,6 +4271,7 @@ af: label_role_new: New role label_role_grantable: Grantable role label_role_plural: Rolle + label_role_missing_permissions: "%{role} (missing required permissions)" label_role_search: Assign role to new members label_scm: SCM label_scroll_left: Scroll left @@ -4445,7 +4498,7 @@ af: you_have: You have logo_alt_text: Logo mention: - subject: "%{user_name} mentioned you in #%{id} - %{subject}" + subject: "%{user_name} mentioned you in %{id} - %{subject}" notification: center: To notification center see_in_center: See comment in notification center @@ -4483,7 +4536,7 @@ af: allowed_actions_html: 'You have the following permissions on this work package: %{allowed_actions}. This can change depending on your project role and permissions.' create_account: To access this work package, you will need to create and activate an account on %{instance}. open_work_package: Open work package - subject: 'Work package #%{id} was shared with you' + subject: Work package %{id} was shared with you enterprise_text: Share work packages with users who are not members of the project. summary: user: "%{user} shared a work package with you with %{role_rights} rights" @@ -4694,6 +4747,18 @@ af: text_getting_started_description: Get a quick overview of project management and team collaboration with OpenProject. You can restart this video from the help menu. welcome: Welcome to %{app_title} select_language: Please select your language + open_project: + common: + work_package_card_component: + menu: + label_actions: Work package actions + work_package_card_list_component: + header: + label_actions: Open menu + label_work_package_count: + zero: No work packages + one: "%{count} work package" + other: "%{count} work packages" permission_add_work_package_comments: Add comments permission_add_work_packages: Add work packages permission_add_messages: Post messages @@ -4711,7 +4776,6 @@ af: permission_add_work_package_watchers: Voeg dophouers by permission_assign_versions: Assign versions permission_browse_repository: Read-only access to repository (browse and checkout) - permission_change_wiki_parent_page: Change parent wiki page permission_change_work_package_status: Change work package status permission_change_work_package_status_explanation: Allows changing status without Edit work packages permission permission_comment_news: Comment news @@ -4726,8 +4790,6 @@ af: permission_delete_own_messages: Delete own messages permission_delete_reportings: Delete reportings permission_delete_timelines: Delete timelines - permission_delete_wiki_pages: Delete wiki pages - permission_delete_wiki_pages_attachments: Delete attachments permission_edit_work_package_comments: Moderate comments permission_edit_work_package_comments_explanation: 'Caution: Users with this permission are able to edit anyone''s comment.' permission_edit_work_packages: Edit work packages @@ -4747,12 +4809,10 @@ af: permission_edit_wiki_pages: Edit wiki pages permission_export_work_packages: Export work packages permission_export_projects: Export projects - permission_export_wiki_pages: Export wiki pages permission_invite_members_by_email: Invite members by email permission_invite_members_by_email_explanation: 'Allows users to invite new members by email. Invited users will receive an email with a link to set their password and activate their account. Depends on the permission to manage members ' - permission_list_attachments: List attachments permission_log_own_time: Log own time permission_log_time: Log time for other users permission_manage_forums: Manage forums @@ -4767,7 +4827,6 @@ af: permission_manage_subtasks: Manage work package hierarchies permission_manage_versions: Manage versions permission_manage_wiki: Manage wiki - permission_manage_wiki_menu: Manage wiki menu permission_manage_own_working_times: Manage own working times permission_manage_own_working_times_explanation: 'Allows users to manage their own working times, and personal non-working days. @@ -4777,8 +4836,6 @@ af: ' permission_move_work_packages: Move work packages - permission_protect_wiki_pages: Protect wiki pages - permission_rename_wiki_pages: Rename wiki pages permission_save_queries: Save views permission_search_project: Search project permission_select_custom_fields: Select custom fields @@ -5157,6 +5214,9 @@ af: setting_mail_handler_body_delimiter_regex: Stomp eposse af wat ooreenstem met hierdie "regular expression" setting_mail_handler_ignore_filenames: Ignored mail attachments setting_new_project_user_role_id: Role given to a non-admin user who creates a project + setting_new_project_user_role_id_caption: 'Only roles that include the permissions to edit project attributes and to manage members are listed, so that the creator can complete the project setup. + + ' setting_new_project_send_confirmation_email: Send notification to author when creating a new project setting_new_project_notification_text: Notification text setting_password_active_rules: Password requirements @@ -5573,6 +5633,7 @@ af: text_project_identifier_format: Must start with a lowercase letter. Only lowercase letters (a-z), numbers, dashes and underscores are allowed. text_reassign: 'Reassign to work package:' text_regexp_multiline: Die regex is toegepas in 'n multi-lyn manier. bv. ^---\s+ + text_rename_wiki_page: Rename wiki page text_repository_usernames_mapping: |- Select or update the OpenProject user mapped to each username found in the repository log. Users with the same OpenProject and repository username or email are automatically mapped. @@ -6006,9 +6067,6 @@ af: scopes: Toestemmings successful_application_revocation: Revocation of application %{application_name} successful. none_given: No OAuth applications have been granted access to your user account. - x_active_tokens: - one: one active token - other: "%{count} active token" flows: authorization_code: Authorization code flow client_credentials: Client credentials flow @@ -6018,8 +6076,10 @@ af: client_credentials_impersonation_html: 'By default, OpenProject provides OAuth 2.0 authorization via %{authorization_code_flow_link}. You can optionally enable %{client_credentials_flow_link}, but you must provide a user on whose behalf requests will be performed. ' + confirm_revoke_my_application: + one: Do you really want to remove this application? This will revoke one token active for it. + other: Do you really want to remove this application? This will revoke %{count} tokens active for it. authorization_error: An authorization error has occurred. - revoke_my_application_confirmation: Do you really want to remove this application? This will revoke %{token_count} active for it. my_registered_applications: Registered OAuth applications oauth_client: urn_connection_status: diff --git a/config/locales/crowdin/ar.yml b/config/locales/crowdin/ar.yml index b915f173599..ed14c43aa32 100644 --- a/config/locales/crowdin/ar.yml +++ b/config/locales/crowdin/ar.yml @@ -443,7 +443,8 @@ ar: error_special_characters: Special characters not allowed error_not_fully_uppercased: Must be uppercase error_in_use: Already in use as another project's active handle - error_reserved: Reserved by another project's handle history + error_used_in_past: Reserved by another project's handle history + error_reserved_by_system: Reserved as a system keyword error_unknown: Needs manual review remaining_projects: zero: "... %{count} more projects" @@ -492,8 +493,16 @@ ar: ignore: Ignore changes save: Save changes and continue role_selector: + title: Select roles label: 'Role: %{role}' no_role: Select role + roles: + zero: "%{count} roles selected" + one: One role selected + two: "%{count} roles selected" + few: "%{count} roles selected" + many: "%{count} roles selected" + other: "%{count} roles selected" blankslate: title: No status transitions configured description: Add statuses to start configuring workflows for this role @@ -1170,6 +1179,8 @@ ar: no_results_title_text: لا يوجد حالياً أخبار لتقدم. no_results_content_text: أضف عنصر أخبار roles: + edit: + default_for_new_projects_warning: 'This role is configured as the default role given to non-admin users who create a project. Do not remove the following permissions, otherwise project creators will be unable to complete the setup of their newly created projects:' permissions: section_check_all_label: Assign all %{module} permissions section_uncheck_all_label: Unassign all %{module} permissions @@ -2080,6 +2091,29 @@ ar: type: النّوع version: الإصدار watcher: المشاهد + ordered_persisted_query_entity: + persisted_query: Persisted query + entity: Entity + position: Position + persisted_query: + name: Name + views: Views + filters: Filters + orders: Orders + selects: Selects + persisted_view: + name: Name + query: Query + parent: Parent view + public: Public + user_card_view: + secondary_info: Secondary info + show_status_badge: Show status badge + show_email: Show email + tag_source: Tag source + tag_limit: Tag limit + card_size: Card size + columns_per_row: Columns per row errors: messages: accepted: يجب أن تقبل. @@ -2667,6 +2701,7 @@ ar: unsupported_storage_type: is not a supported storage type. storage_error: There was an error with the storage connection. invalid_input: The input is invalid. + invalid_child_for_parent: is not allowed as a parent for this view type. activity: item: created_by_on: created by %{user} on %{datetime} @@ -3633,6 +3668,34 @@ ar: general_text_false: خاطئ gui_validation_error: خطأ 1 gui_validation_error_plural: أخطاء %{count} + health_reports: + report_component: + checks: + failures: + zero: "%{count} checks failed" + one: "%{count} check failed" + two: "%{count} checks failed" + few: "%{count} checks failed" + many: "%{count} checks failed" + other: "%{count} checks failed" + success: All checks passed + warnings: + zero: "%{count} checks returned a warning" + one: "%{count} check returned a warning" + two: "%{count} checks returned a warning" + few: "%{count} checks returned a warning" + many: "%{count} checks returned a warning" + other: "%{count} checks returned a warning" + summary: + failure: Some checks failed and the system does not work as expected. + success: All connections and systems are working as expected. + warning: Some checks returned a warning. This can lead to unexpected behaviour. + result_component: + status: + failed: Failed + passed: Passed + skipped: Skipped + warning: Warning homescreen: additional: projects: أحدث المشاريع المرئية في هذه الجلسة. @@ -3934,6 +3997,7 @@ ar: label_age: العمر label_ago: أيام مضت label_all: الكل + label_all_uppercase: All label_all_time: كل الوقت label_all_words: كافة الكلمات label_all_open_wps: كل المفتوح @@ -4461,6 +4525,7 @@ ar: label_role_new: دور جديد label_role_grantable: Grantable role label_role_plural: دور + label_role_missing_permissions: "%{role} (missing required permissions)" label_role_search: تعيين دور للأعضاء الجدد label_scm: اختصاراً لِ:"Supply Chain Management" إدارة سلسة الإمداد label_scroll_left: Scroll left @@ -4699,7 +4764,7 @@ ar: you_have: You have logo_alt_text: Logo mention: - subject: "%{user_name} mentioned you in #%{id} - %{subject}" + subject: "%{user_name} mentioned you in %{id} - %{subject}" notification: center: To notification center see_in_center: See comment in notification center @@ -4741,7 +4806,7 @@ ar: allowed_actions_html: 'You have the following permissions on this work package: %{allowed_actions}. This can change depending on your project role and permissions.' create_account: To access this work package, you will need to create and activate an account on %{instance}. open_work_package: Open work package - subject: 'Work package #%{id} was shared with you' + subject: Work package %{id} was shared with you enterprise_text: Share work packages with users who are not members of the project. summary: user: "%{user} shared a work package with you with %{role_rights} rights" @@ -4958,6 +5023,18 @@ ar: text_getting_started_description: Get a quick overview of project management and team collaboration with OpenProject. You can restart this video from the help menu. welcome: Welcome to %{app_title} select_language: Please select your language + open_project: + common: + work_package_card_component: + menu: + label_actions: Work package actions + work_package_card_list_component: + header: + label_actions: Open menu + label_work_package_count: + zero: No work packages + one: "%{count} work package" + other: "%{count} work packages" permission_add_work_package_comments: Add comments permission_add_work_packages: إضافة مجموعات عمل permission_add_messages: نشر الرسائل @@ -4975,7 +5052,6 @@ ar: permission_add_work_package_watchers: إضافة مراقب permission_assign_versions: Assign versions permission_browse_repository: وصول للقراءة فقط إلى مستودع (استعراض والخروج) - permission_change_wiki_parent_page: تغيير صفحة wikiالاصلية permission_change_work_package_status: Change work package status permission_change_work_package_status_explanation: Allows changing status without Edit work packages permission permission_comment_news: أخبار التعليق @@ -4990,8 +5066,6 @@ ar: permission_delete_own_messages: حذف الرسائل الخاصة permission_delete_reportings: حذف التقرير permission_delete_timelines: حذف الجداول الزمنية - permission_delete_wiki_pages: حذف صفحات wiki - permission_delete_wiki_pages_attachments: حذف المرفقات permission_edit_work_package_comments: Moderate comments permission_edit_work_package_comments_explanation: 'Caution: Users with this permission are able to edit anyone''s comment.' permission_edit_work_packages: تحرير مجموعات العمل @@ -5011,12 +5085,10 @@ ar: permission_edit_wiki_pages: تحرير صفحات wiki permission_export_work_packages: تصدير مجموعات العمل permission_export_projects: Export projects - permission_export_wiki_pages: تصدير صفحات wiki permission_invite_members_by_email: Invite members by email permission_invite_members_by_email_explanation: 'Allows users to invite new members by email. Invited users will receive an email with a link to set their password and activate their account. Depends on the permission to manage members ' - permission_list_attachments: قائمة المرفقات permission_log_own_time: تسجيل الوقت الخاص بك permission_log_time: تسجيل الوقت للمستخدمين الآخرين permission_manage_forums: إدارة منتديات @@ -5031,7 +5103,6 @@ ar: permission_manage_subtasks: Manage work package hierarchies permission_manage_versions: إدارة الإصدارات permission_manage_wiki: إدارة wiki - permission_manage_wiki_menu: إدارة قائمة wiki permission_manage_own_working_times: Manage own working times permission_manage_own_working_times_explanation: 'Allows users to manage their own working times, and personal non-working days. @@ -5041,8 +5112,6 @@ ar: ' permission_move_work_packages: نقل مجموعات العمل - permission_protect_wiki_pages: حماية صفحات wiki - permission_rename_wiki_pages: قم بإعادة تسمية صفحات wiki permission_save_queries: Save views permission_search_project: Search project permission_select_custom_fields: Select custom fields @@ -5411,6 +5480,9 @@ ar: setting_mail_handler_body_delimiter_regex: حذف رسائل البريد الإلكتروني المطابقة لهذا التعبير الاعتيادي setting_mail_handler_ignore_filenames: Ignored mail attachments setting_new_project_user_role_id: الدور الممنوح لمستخدم غير مسؤول الذي يقوم بإنشاء مشروع + setting_new_project_user_role_id_caption: 'Only roles that include the permissions to edit project attributes and to manage members are listed, so that the creator can complete the project setup. + + ' setting_new_project_send_confirmation_email: Send notification to author when creating a new project setting_new_project_notification_text: Notification text setting_password_active_rules: Password requirements @@ -5823,6 +5895,7 @@ ar: text_project_identifier_format: Must start with a lowercase letter. Only lowercase letters (a-z), numbers, dashes and underscores are allowed. text_reassign: 'تعيين أن تعمل الحزمة:' text_regexp_multiline: 'يتم تطبيق التعبير الاعتيادي في وضع متعدد الأسطر. على سبيل المثال: ^---\s+' + text_rename_wiki_page: Rename wiki page text_repository_usernames_mapping: |- قم باختيار أو تحديث مستخدم "OpenProject: المشروع المفتوح" الذي تم تعيينه لكل اسم مستخدم وُجِد في سجل المستودع. المستخدمون الذين لديهم نفس اسم المستخدم أو عنوان البريد الإلكتروني في المشروع المفتوح OpenProject والمستودع يتم تعيينهم تلقائيًّا. @@ -6272,13 +6345,6 @@ ar: scopes: السماحيات successful_application_revocation: Revocation of application %{application_name} successful. none_given: No OAuth applications have been granted access to your user account. - x_active_tokens: - zero: "%{count} active token" - one: one active token - two: "%{count} active token" - few: "%{count} active token" - many: "%{count} active token" - other: "%{count} active token" flows: authorization_code: Authorization code flow client_credentials: Client credentials flow @@ -6288,8 +6354,14 @@ ar: client_credentials_impersonation_html: 'By default, OpenProject provides OAuth 2.0 authorization via %{authorization_code_flow_link}. You can optionally enable %{client_credentials_flow_link}, but you must provide a user on whose behalf requests will be performed. ' + confirm_revoke_my_application: + zero: Do you really want to remove this application? This will revoke %{count} tokens active for it. + one: Do you really want to remove this application? This will revoke one token active for it. + two: Do you really want to remove this application? This will revoke %{count} tokens active for it. + few: Do you really want to remove this application? This will revoke %{count} tokens active for it. + many: Do you really want to remove this application? This will revoke %{count} tokens active for it. + other: Do you really want to remove this application? This will revoke %{count} tokens active for it. authorization_error: An authorization error has occurred. - revoke_my_application_confirmation: Do you really want to remove this application? This will revoke %{token_count} active for it. my_registered_applications: Registered OAuth applications oauth_client: urn_connection_status: diff --git a/config/locales/crowdin/az.yml b/config/locales/crowdin/az.yml index 10725d5faf6..43c0b9db2b8 100644 --- a/config/locales/crowdin/az.yml +++ b/config/locales/crowdin/az.yml @@ -419,7 +419,8 @@ az: error_special_characters: Special characters not allowed error_not_fully_uppercased: Must be uppercase error_in_use: Already in use as another project's active handle - error_reserved: Reserved by another project's handle history + error_used_in_past: Reserved by another project's handle history + error_reserved_by_system: Reserved as a system keyword error_unknown: Needs manual review remaining_projects: one: "... 1 more project" @@ -460,8 +461,12 @@ az: ignore: Ignore changes save: Save changes and continue role_selector: + title: Select roles label: 'Role: %{role}' no_role: Select role + roles: + one: One role selected + other: "%{count} roles selected" blankslate: title: No status transitions configured description: Add statuses to start configuring workflows for this role @@ -1110,6 +1115,8 @@ az: no_results_title_text: There is currently no news to report. no_results_content_text: Add a news item roles: + edit: + default_for_new_projects_warning: 'This role is configured as the default role given to non-admin users who create a project. Do not remove the following permissions, otherwise project creators will be unable to complete the setup of their newly created projects:' permissions: section_check_all_label: Assign all %{module} permissions section_uncheck_all_label: Unassign all %{module} permissions @@ -2000,6 +2007,29 @@ az: type: Type version: Version watcher: Watcher + ordered_persisted_query_entity: + persisted_query: Persisted query + entity: Entity + position: Position + persisted_query: + name: Name + views: Views + filters: Filters + orders: Orders + selects: Selects + persisted_view: + name: Name + query: Query + parent: Parent view + public: Public + user_card_view: + secondary_info: Secondary info + show_status_badge: Show status badge + show_email: Show email + tag_source: Tag source + tag_limit: Tag limit + card_size: Card size + columns_per_row: Columns per row errors: messages: accepted: must be accepted. @@ -2517,6 +2547,7 @@ az: unsupported_storage_type: is not a supported storage type. storage_error: There was an error with the storage connection. invalid_input: The input is invalid. + invalid_child_for_parent: is not allowed as a parent for this view type. activity: item: created_by_on: created by %{user} on %{datetime} @@ -3391,6 +3422,26 @@ az: general_text_false: 'false' gui_validation_error: 1 error gui_validation_error_plural: "%{count} errors" + health_reports: + report_component: + checks: + failures: + one: "%{count} check failed" + other: "%{count} checks failed" + success: All checks passed + warnings: + one: "%{count} check returned a warning" + other: "%{count} checks returned a warning" + summary: + failure: Some checks failed and the system does not work as expected. + success: All connections and systems are working as expected. + warning: Some checks returned a warning. This can lead to unexpected behaviour. + result_component: + status: + failed: Failed + passed: Passed + skipped: Skipped + warning: Warning homescreen: additional: projects: Newest visible projects in this instance. @@ -3692,6 +3743,7 @@ az: label_age: Age label_ago: days ago label_all: all + label_all_uppercase: All label_all_time: all time label_all_words: All words label_all_open_wps: All open @@ -4219,6 +4271,7 @@ az: label_role_new: New role label_role_grantable: Grantable role label_role_plural: Roles + label_role_missing_permissions: "%{role} (missing required permissions)" label_role_search: Assign role to new members label_scm: SCM label_scroll_left: Scroll left @@ -4445,7 +4498,7 @@ az: you_have: You have logo_alt_text: Logo mention: - subject: "%{user_name} mentioned you in #%{id} - %{subject}" + subject: "%{user_name} mentioned you in %{id} - %{subject}" notification: center: To notification center see_in_center: See comment in notification center @@ -4483,7 +4536,7 @@ az: allowed_actions_html: 'You have the following permissions on this work package: %{allowed_actions}. This can change depending on your project role and permissions.' create_account: To access this work package, you will need to create and activate an account on %{instance}. open_work_package: Open work package - subject: 'Work package #%{id} was shared with you' + subject: Work package %{id} was shared with you enterprise_text: Share work packages with users who are not members of the project. summary: user: "%{user} shared a work package with you with %{role_rights} rights" @@ -4694,6 +4747,18 @@ az: text_getting_started_description: Get a quick overview of project management and team collaboration with OpenProject. You can restart this video from the help menu. welcome: Welcome to %{app_title} select_language: Please select your language + open_project: + common: + work_package_card_component: + menu: + label_actions: Work package actions + work_package_card_list_component: + header: + label_actions: Open menu + label_work_package_count: + zero: No work packages + one: "%{count} work package" + other: "%{count} work packages" permission_add_work_package_comments: Add comments permission_add_work_packages: Add work packages permission_add_messages: Post messages @@ -4711,7 +4776,6 @@ az: permission_add_work_package_watchers: Add watchers permission_assign_versions: Assign versions permission_browse_repository: Read-only access to repository (browse and checkout) - permission_change_wiki_parent_page: Change parent wiki page permission_change_work_package_status: Change work package status permission_change_work_package_status_explanation: Allows changing status without Edit work packages permission permission_comment_news: Comment news @@ -4726,8 +4790,6 @@ az: permission_delete_own_messages: Delete own messages permission_delete_reportings: Delete reportings permission_delete_timelines: Delete timelines - permission_delete_wiki_pages: Delete wiki pages - permission_delete_wiki_pages_attachments: Delete attachments permission_edit_work_package_comments: Moderate comments permission_edit_work_package_comments_explanation: 'Caution: Users with this permission are able to edit anyone''s comment.' permission_edit_work_packages: Edit work packages @@ -4747,12 +4809,10 @@ az: permission_edit_wiki_pages: Edit wiki pages permission_export_work_packages: Export work packages permission_export_projects: Export projects - permission_export_wiki_pages: Export wiki pages permission_invite_members_by_email: Invite members by email permission_invite_members_by_email_explanation: 'Allows users to invite new members by email. Invited users will receive an email with a link to set their password and activate their account. Depends on the permission to manage members ' - permission_list_attachments: List attachments permission_log_own_time: Log own time permission_log_time: Log time for other users permission_manage_forums: Manage forums @@ -4767,7 +4827,6 @@ az: permission_manage_subtasks: Manage work package hierarchies permission_manage_versions: Manage versions permission_manage_wiki: Manage wiki - permission_manage_wiki_menu: Manage wiki menu permission_manage_own_working_times: Manage own working times permission_manage_own_working_times_explanation: 'Allows users to manage their own working times, and personal non-working days. @@ -4777,8 +4836,6 @@ az: ' permission_move_work_packages: Move work packages - permission_protect_wiki_pages: Protect wiki pages - permission_rename_wiki_pages: Rename wiki pages permission_save_queries: Save views permission_search_project: Search project permission_select_custom_fields: Select custom fields @@ -5157,6 +5214,9 @@ az: setting_mail_handler_body_delimiter_regex: Truncate emails matching this regex setting_mail_handler_ignore_filenames: Ignored mail attachments setting_new_project_user_role_id: Role given to a non-admin user who creates a project + setting_new_project_user_role_id_caption: 'Only roles that include the permissions to edit project attributes and to manage members are listed, so that the creator can complete the project setup. + + ' setting_new_project_send_confirmation_email: Send notification to author when creating a new project setting_new_project_notification_text: Notification text setting_password_active_rules: Password requirements @@ -5573,6 +5633,7 @@ az: text_project_identifier_format: Must start with a lowercase letter. Only lowercase letters (a-z), numbers, dashes and underscores are allowed. text_reassign: 'Reassign to work package:' text_regexp_multiline: The regex is applied in a multi-line mode. e.g., ^---\s+ + text_rename_wiki_page: Rename wiki page text_repository_usernames_mapping: |- Select or update the OpenProject user mapped to each username found in the repository log. Users with the same OpenProject and repository username or email are automatically mapped. @@ -6006,9 +6067,6 @@ az: scopes: Permissions successful_application_revocation: Revocation of application %{application_name} successful. none_given: No OAuth applications have been granted access to your user account. - x_active_tokens: - one: one active token - other: "%{count} active token" flows: authorization_code: Authorization code flow client_credentials: Client credentials flow @@ -6018,8 +6076,10 @@ az: client_credentials_impersonation_html: 'By default, OpenProject provides OAuth 2.0 authorization via %{authorization_code_flow_link}. You can optionally enable %{client_credentials_flow_link}, but you must provide a user on whose behalf requests will be performed. ' + confirm_revoke_my_application: + one: Do you really want to remove this application? This will revoke one token active for it. + other: Do you really want to remove this application? This will revoke %{count} tokens active for it. authorization_error: An authorization error has occurred. - revoke_my_application_confirmation: Do you really want to remove this application? This will revoke %{token_count} active for it. my_registered_applications: Registered OAuth applications oauth_client: urn_connection_status: diff --git a/config/locales/crowdin/be.yml b/config/locales/crowdin/be.yml index 2dbae2e8f22..3138f9168e3 100644 --- a/config/locales/crowdin/be.yml +++ b/config/locales/crowdin/be.yml @@ -431,7 +431,8 @@ be: error_special_characters: Special characters not allowed error_not_fully_uppercased: Must be uppercase error_in_use: Already in use as another project's active handle - error_reserved: Reserved by another project's handle history + error_used_in_past: Reserved by another project's handle history + error_reserved_by_system: Reserved as a system keyword error_unknown: Needs manual review remaining_projects: one: "... 1 more project" @@ -476,8 +477,14 @@ be: ignore: Ignore changes save: Save changes and continue role_selector: + title: Select roles label: 'Role: %{role}' no_role: Select role + roles: + one: One role selected + few: "%{count} roles selected" + many: "%{count} roles selected" + other: "%{count} roles selected" blankslate: title: No status transitions configured description: Add statuses to start configuring workflows for this role @@ -1140,6 +1147,8 @@ be: no_results_title_text: There is currently no news to report. no_results_content_text: Add a news item roles: + edit: + default_for_new_projects_warning: 'This role is configured as the default role given to non-admin users who create a project. Do not remove the following permissions, otherwise project creators will be unable to complete the setup of their newly created projects:' permissions: section_check_all_label: Assign all %{module} permissions section_uncheck_all_label: Unassign all %{module} permissions @@ -2040,6 +2049,29 @@ be: type: Type version: Version watcher: Watcher + ordered_persisted_query_entity: + persisted_query: Persisted query + entity: Entity + position: Position + persisted_query: + name: Name + views: Views + filters: Filters + orders: Orders + selects: Selects + persisted_view: + name: Name + query: Query + parent: Parent view + public: Public + user_card_view: + secondary_info: Secondary info + show_status_badge: Show status badge + show_email: Show email + tag_source: Tag source + tag_limit: Tag limit + card_size: Card size + columns_per_row: Columns per row errors: messages: accepted: must be accepted. @@ -2593,6 +2625,7 @@ be: unsupported_storage_type: is not a supported storage type. storage_error: There was an error with the storage connection. invalid_input: The input is invalid. + invalid_child_for_parent: is not allowed as a parent for this view type. activity: item: created_by_on: created by %{user} on %{datetime} @@ -3513,6 +3546,30 @@ be: general_text_false: 'false' gui_validation_error: 1 error gui_validation_error_plural: "%{count} errors" + health_reports: + report_component: + checks: + failures: + one: "%{count} check failed" + few: "%{count} checks failed" + many: "%{count} checks failed" + other: "%{count} checks failed" + success: All checks passed + warnings: + one: "%{count} check returned a warning" + few: "%{count} checks returned a warning" + many: "%{count} checks returned a warning" + other: "%{count} checks returned a warning" + summary: + failure: Some checks failed and the system does not work as expected. + success: All connections and systems are working as expected. + warning: Some checks returned a warning. This can lead to unexpected behaviour. + result_component: + status: + failed: Failed + passed: Passed + skipped: Skipped + warning: Warning homescreen: additional: projects: Newest visible projects in this instance. @@ -3814,6 +3871,7 @@ be: label_age: Age label_ago: days ago label_all: all + label_all_uppercase: All label_all_time: all time label_all_words: All words label_all_open_wps: All open @@ -4341,6 +4399,7 @@ be: label_role_new: New role label_role_grantable: Grantable role label_role_plural: Roles + label_role_missing_permissions: "%{role} (missing required permissions)" label_role_search: Assign role to new members label_scm: SCM label_scroll_left: Scroll left @@ -4573,7 +4632,7 @@ be: you_have: You have logo_alt_text: Logo mention: - subject: "%{user_name} mentioned you in #%{id} - %{subject}" + subject: "%{user_name} mentioned you in %{id} - %{subject}" notification: center: To notification center see_in_center: See comment in notification center @@ -4613,7 +4672,7 @@ be: allowed_actions_html: 'You have the following permissions on this work package: %{allowed_actions}. This can change depending on your project role and permissions.' create_account: To access this work package, you will need to create and activate an account on %{instance}. open_work_package: Open work package - subject: 'Work package #%{id} was shared with you' + subject: Work package %{id} was shared with you enterprise_text: Share work packages with users who are not members of the project. summary: user: "%{user} shared a work package with you with %{role_rights} rights" @@ -4826,6 +4885,18 @@ be: text_getting_started_description: Get a quick overview of project management and team collaboration with OpenProject. You can restart this video from the help menu. welcome: Welcome to %{app_title} select_language: Please select your language + open_project: + common: + work_package_card_component: + menu: + label_actions: Work package actions + work_package_card_list_component: + header: + label_actions: Open menu + label_work_package_count: + zero: No work packages + one: "%{count} work package" + other: "%{count} work packages" permission_add_work_package_comments: Add comments permission_add_work_packages: Add work packages permission_add_messages: Post messages @@ -4843,7 +4914,6 @@ be: permission_add_work_package_watchers: Add watchers permission_assign_versions: Assign versions permission_browse_repository: Read-only access to repository (browse and checkout) - permission_change_wiki_parent_page: Change parent wiki page permission_change_work_package_status: Change work package status permission_change_work_package_status_explanation: Allows changing status without Edit work packages permission permission_comment_news: Comment news @@ -4858,8 +4928,6 @@ be: permission_delete_own_messages: Delete own messages permission_delete_reportings: Delete reportings permission_delete_timelines: Delete timelines - permission_delete_wiki_pages: Delete wiki pages - permission_delete_wiki_pages_attachments: Delete attachments permission_edit_work_package_comments: Moderate comments permission_edit_work_package_comments_explanation: 'Caution: Users with this permission are able to edit anyone''s comment.' permission_edit_work_packages: Edit work packages @@ -4879,12 +4947,10 @@ be: permission_edit_wiki_pages: Edit wiki pages permission_export_work_packages: Export work packages permission_export_projects: Export projects - permission_export_wiki_pages: Export wiki pages permission_invite_members_by_email: Invite members by email permission_invite_members_by_email_explanation: 'Allows users to invite new members by email. Invited users will receive an email with a link to set their password and activate their account. Depends on the permission to manage members ' - permission_list_attachments: List attachments permission_log_own_time: Log own time permission_log_time: Log time for other users permission_manage_forums: Manage forums @@ -4899,7 +4965,6 @@ be: permission_manage_subtasks: Manage work package hierarchies permission_manage_versions: Manage versions permission_manage_wiki: Manage wiki - permission_manage_wiki_menu: Manage wiki menu permission_manage_own_working_times: Manage own working times permission_manage_own_working_times_explanation: 'Allows users to manage their own working times, and personal non-working days. @@ -4909,8 +4974,6 @@ be: ' permission_move_work_packages: Move work packages - permission_protect_wiki_pages: Protect wiki pages - permission_rename_wiki_pages: Rename wiki pages permission_save_queries: Save views permission_search_project: Search project permission_select_custom_fields: Select custom fields @@ -5289,6 +5352,9 @@ be: setting_mail_handler_body_delimiter_regex: Truncate emails matching this regex setting_mail_handler_ignore_filenames: Ignored mail attachments setting_new_project_user_role_id: Role given to a non-admin user who creates a project + setting_new_project_user_role_id_caption: 'Only roles that include the permissions to edit project attributes and to manage members are listed, so that the creator can complete the project setup. + + ' setting_new_project_send_confirmation_email: Send notification to author when creating a new project setting_new_project_notification_text: Notification text setting_password_active_rules: Password requirements @@ -5705,6 +5771,7 @@ be: text_project_identifier_format: Must start with a lowercase letter. Only lowercase letters (a-z), numbers, dashes and underscores are allowed. text_reassign: 'Reassign to work package:' text_regexp_multiline: The regex is applied in a multi-line mode. e.g., ^---\s+ + text_rename_wiki_page: Rename wiki page text_repository_usernames_mapping: |- Select or update the OpenProject user mapped to each username found in the repository log. Users with the same OpenProject and repository username or email are automatically mapped. @@ -6140,11 +6207,6 @@ be: scopes: Permissions successful_application_revocation: Revocation of application %{application_name} successful. none_given: No OAuth applications have been granted access to your user account. - x_active_tokens: - one: one active token - few: "%{count} active token" - many: "%{count} active token" - other: "%{count} active token" flows: authorization_code: Authorization code flow client_credentials: Client credentials flow @@ -6154,8 +6216,12 @@ be: client_credentials_impersonation_html: 'By default, OpenProject provides OAuth 2.0 authorization via %{authorization_code_flow_link}. You can optionally enable %{client_credentials_flow_link}, but you must provide a user on whose behalf requests will be performed. ' + confirm_revoke_my_application: + one: Do you really want to remove this application? This will revoke one token active for it. + few: Do you really want to remove this application? This will revoke %{count} tokens active for it. + many: Do you really want to remove this application? This will revoke %{count} tokens active for it. + other: Do you really want to remove this application? This will revoke %{count} tokens active for it. authorization_error: An authorization error has occurred. - revoke_my_application_confirmation: Do you really want to remove this application? This will revoke %{token_count} active for it. my_registered_applications: Registered OAuth applications oauth_client: urn_connection_status: diff --git a/config/locales/crowdin/bg.yml b/config/locales/crowdin/bg.yml index a381fc14372..703da567994 100644 --- a/config/locales/crowdin/bg.yml +++ b/config/locales/crowdin/bg.yml @@ -419,7 +419,8 @@ bg: error_special_characters: Special characters not allowed error_not_fully_uppercased: Must be uppercase error_in_use: Already in use as another project's active handle - error_reserved: Reserved by another project's handle history + error_used_in_past: Reserved by another project's handle history + error_reserved_by_system: Reserved as a system keyword error_unknown: Needs manual review remaining_projects: one: "... 1 more project" @@ -460,8 +461,12 @@ bg: ignore: Ignore changes save: Save changes and continue role_selector: + title: Select roles label: 'Role: %{role}' no_role: Select role + roles: + one: One role selected + other: "%{count} roles selected" blankslate: title: No status transitions configured description: Add statuses to start configuring workflows for this role @@ -1110,6 +1115,8 @@ bg: no_results_title_text: Няма новини за докладване. no_results_content_text: Добави новина roles: + edit: + default_for_new_projects_warning: 'This role is configured as the default role given to non-admin users who create a project. Do not remove the following permissions, otherwise project creators will be unable to complete the setup of their newly created projects:' permissions: section_check_all_label: Assign all %{module} permissions section_uncheck_all_label: Unassign all %{module} permissions @@ -2000,6 +2007,29 @@ bg: type: Тип version: Версия watcher: Наблюдател + ordered_persisted_query_entity: + persisted_query: Persisted query + entity: Entity + position: Position + persisted_query: + name: Name + views: Views + filters: Filters + orders: Orders + selects: Selects + persisted_view: + name: Name + query: Query + parent: Parent view + public: Public + user_card_view: + secondary_info: Secondary info + show_status_badge: Show status badge + show_email: Show email + tag_source: Tag source + tag_limit: Tag limit + card_size: Card size + columns_per_row: Columns per row errors: messages: accepted: трябва да бъде одобрено. @@ -2515,6 +2545,7 @@ bg: unsupported_storage_type: is not a supported storage type. storage_error: There was an error with the storage connection. invalid_input: The input is invalid. + invalid_child_for_parent: is not allowed as a parent for this view type. activity: item: created_by_on: created by %{user} on %{datetime} @@ -3389,6 +3420,26 @@ bg: general_text_false: 'false' gui_validation_error: 1 грешка gui_validation_error_plural: "%{count} грешки" + health_reports: + report_component: + checks: + failures: + one: "%{count} check failed" + other: "%{count} checks failed" + success: All checks passed + warnings: + one: "%{count} check returned a warning" + other: "%{count} checks returned a warning" + summary: + failure: Some checks failed and the system does not work as expected. + success: All connections and systems are working as expected. + warning: Some checks returned a warning. This can lead to unexpected behaviour. + result_component: + status: + failed: Failed + passed: Passed + skipped: Skipped + warning: Warning homescreen: additional: projects: Най-новите проекти, видими в този случай. @@ -3690,6 +3741,7 @@ bg: label_age: Възраст label_ago: преди label_all: всички + label_all_uppercase: All label_all_time: всички времена label_all_words: Всички думи label_all_open_wps: Всичко отворено @@ -4217,6 +4269,7 @@ bg: label_role_new: Нова роля label_role_grantable: Grantable role label_role_plural: Роли + label_role_missing_permissions: "%{role} (missing required permissions)" label_role_search: Assign role to new members label_scm: SCM label_scroll_left: Scroll left @@ -4443,7 +4496,7 @@ bg: you_have: Имате logo_alt_text: Лого mention: - subject: "%{user_name} ви споменах в #%{id} - %{subject}" + subject: "%{user_name} mentioned you in %{id} - %{subject}" notification: center: Към центъра за известия see_in_center: Вижте коментар в центъра за уведомяване @@ -4481,7 +4534,7 @@ bg: allowed_actions_html: 'You have the following permissions on this work package: %{allowed_actions}. This can change depending on your project role and permissions.' create_account: To access this work package, you will need to create and activate an account on %{instance}. open_work_package: Open work package - subject: 'Work package #%{id} was shared with you' + subject: Work package %{id} was shared with you enterprise_text: Share work packages with users who are not members of the project. summary: user: "%{user} shared a work package with you with %{role_rights} rights" @@ -4690,6 +4743,18 @@ bg: text_getting_started_description: Get a quick overview of project management and team collaboration with OpenProject. You can restart this video from the help menu. welcome: Welcome to %{app_title} select_language: Изберете езика си + open_project: + common: + work_package_card_component: + menu: + label_actions: Work package actions + work_package_card_list_component: + header: + label_actions: Open menu + label_work_package_count: + zero: No work packages + one: "%{count} work package" + other: "%{count} work packages" permission_add_work_package_comments: Add comments permission_add_work_packages: Add work packages permission_add_messages: Post messages @@ -4707,7 +4772,6 @@ bg: permission_add_work_package_watchers: Добавяне на наблюдатели permission_assign_versions: Assign versions permission_browse_repository: Read-only access to repository (browse and checkout) - permission_change_wiki_parent_page: Change parent wiki page permission_change_work_package_status: Change work package status permission_change_work_package_status_explanation: Allows changing status without Edit work packages permission permission_comment_news: Comment news @@ -4722,8 +4786,6 @@ bg: permission_delete_own_messages: Delete own messages permission_delete_reportings: Delete reportings permission_delete_timelines: Delete timelines - permission_delete_wiki_pages: Delete wiki pages - permission_delete_wiki_pages_attachments: Delete attachments permission_edit_work_package_comments: Moderate comments permission_edit_work_package_comments_explanation: 'Caution: Users with this permission are able to edit anyone''s comment.' permission_edit_work_packages: Edit work packages @@ -4743,12 +4805,10 @@ bg: permission_edit_wiki_pages: Edit wiki pages permission_export_work_packages: Export work packages permission_export_projects: Export projects - permission_export_wiki_pages: Export wiki pages permission_invite_members_by_email: Invite members by email permission_invite_members_by_email_explanation: 'Allows users to invite new members by email. Invited users will receive an email with a link to set their password and activate their account. Depends on the permission to manage members ' - permission_list_attachments: List attachments permission_log_own_time: Log own time permission_log_time: Log time for other users permission_manage_forums: Manage forums @@ -4763,7 +4823,6 @@ bg: permission_manage_subtasks: Управление йерархията на работните пакети permission_manage_versions: Управление на версиите permission_manage_wiki: Управление на уикипедия - permission_manage_wiki_menu: Управление на менюто на уикипедия permission_manage_own_working_times: Manage own working times permission_manage_own_working_times_explanation: 'Allows users to manage their own working times, and personal non-working days. @@ -4773,8 +4832,6 @@ bg: ' permission_move_work_packages: Преместване на работни пакети - permission_protect_wiki_pages: Защита на страници в уикипедия - permission_rename_wiki_pages: Преименуване на страници в уикипедия permission_save_queries: Запазване на изгледи permission_search_project: Търесене на проект permission_select_custom_fields: Изберете потребителски полета @@ -5151,6 +5208,9 @@ bg: setting_mail_handler_body_delimiter_regex: Съкрати мейл адресите от една област setting_mail_handler_ignore_filenames: Ignored mail attachments setting_new_project_user_role_id: Role given to a non-admin user who creates a project + setting_new_project_user_role_id_caption: 'Only roles that include the permissions to edit project attributes and to manage members are listed, so that the creator can complete the project setup. + + ' setting_new_project_send_confirmation_email: Send notification to author when creating a new project setting_new_project_notification_text: Notification text setting_password_active_rules: Password requirements @@ -5567,6 +5627,7 @@ bg: text_project_identifier_format: Must start with a lowercase letter. Only lowercase letters (a-z), numbers, dashes and underscores are allowed. text_reassign: 'Reassign to work package:' text_regexp_multiline: Уеднаквяването се прилага в многоредов режим. например ^---\s+ + text_rename_wiki_page: Rename wiki page text_repository_usernames_mapping: |- Select or update the OpenProject user mapped to each username found in the repository log. Users with the same OpenProject and repository username or email are automatically mapped. @@ -6000,9 +6061,6 @@ bg: scopes: Права successful_application_revocation: Revocation of application %{application_name} successful. none_given: No OAuth applications have been granted access to your user account. - x_active_tokens: - one: one active token - other: "%{count} active token" flows: authorization_code: Authorization code flow client_credentials: Client credentials flow @@ -6012,8 +6070,10 @@ bg: client_credentials_impersonation_html: 'By default, OpenProject provides OAuth 2.0 authorization via %{authorization_code_flow_link}. You can optionally enable %{client_credentials_flow_link}, but you must provide a user on whose behalf requests will be performed. ' + confirm_revoke_my_application: + one: Do you really want to remove this application? This will revoke one token active for it. + other: Do you really want to remove this application? This will revoke %{count} tokens active for it. authorization_error: An authorization error has occurred. - revoke_my_application_confirmation: Do you really want to remove this application? This will revoke %{token_count} active for it. my_registered_applications: Registered OAuth applications oauth_client: urn_connection_status: diff --git a/config/locales/crowdin/ca.yml b/config/locales/crowdin/ca.yml index b735b780aca..88718e330e3 100644 --- a/config/locales/crowdin/ca.yml +++ b/config/locales/crowdin/ca.yml @@ -419,7 +419,8 @@ ca: error_special_characters: Special characters not allowed error_not_fully_uppercased: Must be uppercase error_in_use: Already in use as another project's active handle - error_reserved: Reserved by another project's handle history + error_used_in_past: Reserved by another project's handle history + error_reserved_by_system: Reserved as a system keyword error_unknown: Needs manual review remaining_projects: one: "... 1 more project" @@ -460,8 +461,12 @@ ca: ignore: Ignore changes save: Save changes and continue role_selector: + title: Select roles label: 'Role: %{role}' no_role: Select role + roles: + one: One role selected + other: "%{count} roles selected" blankslate: title: No status transitions configured description: Add statuses to start configuring workflows for this role @@ -1109,6 +1114,8 @@ ca: no_results_title_text: Actualment no hi ha cap novetat per a informar. no_results_content_text: Afegir una notícia roles: + edit: + default_for_new_projects_warning: 'This role is configured as the default role given to non-admin users who create a project. Do not remove the following permissions, otherwise project creators will be unable to complete the setup of their newly created projects:' permissions: section_check_all_label: Assign all %{module} permissions section_uncheck_all_label: Unassign all %{module} permissions @@ -1999,6 +2006,29 @@ ca: type: Classe version: Versió watcher: Observador + ordered_persisted_query_entity: + persisted_query: Persisted query + entity: Entity + position: Position + persisted_query: + name: Name + views: Views + filters: Filters + orders: Orders + selects: Selects + persisted_view: + name: Name + query: Query + parent: Parent view + public: Public + user_card_view: + secondary_info: Secondary info + show_status_badge: Show status badge + show_email: Show email + tag_source: Tag source + tag_limit: Tag limit + card_size: Card size + columns_per_row: Columns per row errors: messages: accepted: hauran de ser acceptats. @@ -2514,6 +2544,7 @@ ca: unsupported_storage_type: is not a supported storage type. storage_error: There was an error with the storage connection. invalid_input: The input is invalid. + invalid_child_for_parent: is not allowed as a parent for this view type. activity: item: created_by_on: creat per %{user} el %{datetime} @@ -3388,6 +3419,26 @@ ca: general_text_false: fals gui_validation_error: 1 error gui_validation_error_plural: "%{count} errors" + health_reports: + report_component: + checks: + failures: + one: "%{count} check failed" + other: "%{count} checks failed" + success: All checks passed + warnings: + one: "%{count} check returned a warning" + other: "%{count} checks returned a warning" + summary: + failure: Some checks failed and the system does not work as expected. + success: All connections and systems are working as expected. + warning: Some checks returned a warning. This can lead to unexpected behaviour. + result_component: + status: + failed: Failed + passed: Passed + skipped: Skipped + warning: Warning homescreen: additional: projects: Els projectes més visibles en aquesta instància. @@ -3689,6 +3740,7 @@ ca: label_age: Edat label_ago: dies abans label_all: tot + label_all_uppercase: All label_all_time: tot el temps label_all_words: Totes les paraules label_all_open_wps: Tots els oberts @@ -4216,6 +4268,7 @@ ca: label_role_new: Nou rol label_role_grantable: Grantable role label_role_plural: Rols + label_role_missing_permissions: "%{role} (missing required permissions)" label_role_search: Assignar rols als nous membres label_scm: SCM label_scroll_left: Scroll left @@ -4442,7 +4495,7 @@ ca: you_have: Tens logo_alt_text: Logotip mention: - subject: "%{user_name} t'ha mencionat a %{id} - %{subject}" + subject: "%{user_name} mentioned you in %{id} - %{subject}" notification: center: Anar al Centre de notificacions see_in_center: Veure el comentari en el centre de notificacions @@ -4480,7 +4533,7 @@ ca: allowed_actions_html: 'You have the following permissions on this work package: %{allowed_actions}. This can change depending on your project role and permissions.' create_account: To access this work package, you will need to create and activate an account on %{instance}. open_work_package: Open work package - subject: 'Work package #%{id} was shared with you' + subject: Work package %{id} was shared with you enterprise_text: Share work packages with users who are not members of the project. summary: user: "%{user} shared a work package with you with %{role_rights} rights" @@ -4693,6 +4746,18 @@ ca: text_getting_started_description: Obté una visió general ràpida de la gestió de projectes i col·laboració d'equips amb OpenProject. Pots tornar a veure aquest vídeo des del menú d'ajuda. welcome: Benvingut a %{app_title} select_language: Si us plau, selecciona el teu idioma + open_project: + common: + work_package_card_component: + menu: + label_actions: Work package actions + work_package_card_list_component: + header: + label_actions: Open menu + label_work_package_count: + zero: No work packages + one: "%{count} work package" + other: "%{count} work packages" permission_add_work_package_comments: Add comments permission_add_work_packages: Afegir paquets de treball permission_add_messages: Publicar missatges @@ -4710,7 +4775,6 @@ ca: permission_add_work_package_watchers: Afegir observadors permission_assign_versions: Assigna versions permission_browse_repository: Accés de només lectura al repositori (navegar i checkout) - permission_change_wiki_parent_page: Canviar la pàgina de pare de la wiki permission_change_work_package_status: Change work package status permission_change_work_package_status_explanation: Allows changing status without Edit work packages permission permission_comment_news: Comentar noticies @@ -4725,8 +4789,6 @@ ca: permission_delete_own_messages: Suprimir els missatges propis permission_delete_reportings: Suprimir informes permission_delete_timelines: Suprimir les línies de temps - permission_delete_wiki_pages: Suprimir les pàgines wiki - permission_delete_wiki_pages_attachments: Suprimir adjunts permission_edit_work_package_comments: Moderate comments permission_edit_work_package_comments_explanation: 'Caution: Users with this permission are able to edit anyone''s comment.' permission_edit_work_packages: Editar paquets de treball @@ -4746,12 +4808,10 @@ ca: permission_edit_wiki_pages: Editar les pàgines wiki permission_export_work_packages: Exportar paquets de treball permission_export_projects: Export projects - permission_export_wiki_pages: Exportar les pàgines wiki permission_invite_members_by_email: Invite members by email permission_invite_members_by_email_explanation: 'Allows users to invite new members by email. Invited users will receive an email with a link to set their password and activate their account. Depends on the permission to manage members ' - permission_list_attachments: Llista d'adjunts permission_log_own_time: Registra temps propi permission_log_time: Registra temps per altres usuaris permission_manage_forums: Gestionar els fòrums @@ -4766,7 +4826,6 @@ ca: permission_manage_subtasks: Gestionar les jerarquies del paquet de treball permission_manage_versions: Gestionar les versions permission_manage_wiki: Gestionar la wiki - permission_manage_wiki_menu: Gestionar el menú wiki permission_manage_own_working_times: Manage own working times permission_manage_own_working_times_explanation: 'Allows users to manage their own working times, and personal non-working days. @@ -4776,8 +4835,6 @@ ca: ' permission_move_work_packages: Moure paquets de treball - permission_protect_wiki_pages: Protegir les pàgines wiki - permission_rename_wiki_pages: Canviar el nom de les pàgines wiki permission_save_queries: Desar les vistes permission_search_project: Search project permission_select_custom_fields: Selecciona camps personalitzats @@ -5144,6 +5201,9 @@ ca: setting_mail_handler_body_delimiter_regex: Trunca els missatges de correu electrònic que coincideixen amb aquesta expressió regular setting_mail_handler_ignore_filenames: Ignora els fitxers adjunts del correu electrònic setting_new_project_user_role_id: Rol donat per un usuari no-admin que crea un projecte + setting_new_project_user_role_id_caption: 'Only roles that include the permissions to edit project attributes and to manage members are listed, so that the creator can complete the project setup. + + ' setting_new_project_send_confirmation_email: Send notification to author when creating a new project setting_new_project_notification_text: Notification text setting_password_active_rules: Password requirements @@ -5560,6 +5620,7 @@ ca: text_project_identifier_format: Must start with a lowercase letter. Only lowercase letters (a-z), numbers, dashes and underscores are allowed. text_reassign: 'Reassigna al paquet de treball:' text_regexp_multiline: S'aplica l'expressió regular en mode de múltilínia. Per exemple, ^---\s+ + text_rename_wiki_page: Rename wiki page text_repository_usernames_mapping: |- Seleccioneu l'assignació entre els usuaris del OpenProject i cada nom d'usuari trobat al repositori. Els usuaris amb el mateix nom d'usuari o correu del OpenProject i del repositori s'assignaran automàticament. @@ -5993,9 +6054,6 @@ ca: scopes: Permisos successful_application_revocation: Revocació de l'aplicació %{application_name} correcta. none_given: No s'ha garantit accés al teu compte d'usuari a cap aplicació OAuth. - x_active_tokens: - one: un token actiu - other: "%{count} tokens actius" flows: authorization_code: Procés del codi d'autorització client_credentials: Procés de credencials de client @@ -6005,8 +6063,10 @@ ca: client_credentials_impersonation_html: 'Per defecte, OpenProject proveeix una autorització OAuth 2.0 via %{authorization_code_flow_link}. Opcional també pots activar %{client_credentials_flow_link}, però hauràs d''especificar un usuari, el qual serà utilitzat per realitzar peticions. ' + confirm_revoke_my_application: + one: Do you really want to remove this application? This will revoke one token active for it. + other: Do you really want to remove this application? This will revoke %{count} tokens active for it. authorization_error: S'ha produït un error d'autorització. - revoke_my_application_confirmation: Estàs segur que vols eliminar aquesta aplicació? Això, revocarà el seu %{token_count} actiu. my_registered_applications: Aplicacions OAuth registrades oauth_client: urn_connection_status: diff --git a/config/locales/crowdin/ckb-IR.yml b/config/locales/crowdin/ckb-IR.yml index 4f78b8693e3..4673592699d 100644 --- a/config/locales/crowdin/ckb-IR.yml +++ b/config/locales/crowdin/ckb-IR.yml @@ -419,7 +419,8 @@ ckb-IR: error_special_characters: Special characters not allowed error_not_fully_uppercased: Must be uppercase error_in_use: Already in use as another project's active handle - error_reserved: Reserved by another project's handle history + error_used_in_past: Reserved by another project's handle history + error_reserved_by_system: Reserved as a system keyword error_unknown: Needs manual review remaining_projects: one: "... 1 more project" @@ -460,8 +461,12 @@ ckb-IR: ignore: Ignore changes save: Save changes and continue role_selector: + title: Select roles label: 'Role: %{role}' no_role: Select role + roles: + one: One role selected + other: "%{count} roles selected" blankslate: title: No status transitions configured description: Add statuses to start configuring workflows for this role @@ -1110,6 +1115,8 @@ ckb-IR: no_results_title_text: There is currently no news to report. no_results_content_text: Add a news item roles: + edit: + default_for_new_projects_warning: 'This role is configured as the default role given to non-admin users who create a project. Do not remove the following permissions, otherwise project creators will be unable to complete the setup of their newly created projects:' permissions: section_check_all_label: Assign all %{module} permissions section_uncheck_all_label: Unassign all %{module} permissions @@ -2000,6 +2007,29 @@ ckb-IR: type: Type version: Version watcher: Watcher + ordered_persisted_query_entity: + persisted_query: Persisted query + entity: Entity + position: Position + persisted_query: + name: Name + views: Views + filters: Filters + orders: Orders + selects: Selects + persisted_view: + name: Name + query: Query + parent: Parent view + public: Public + user_card_view: + secondary_info: Secondary info + show_status_badge: Show status badge + show_email: Show email + tag_source: Tag source + tag_limit: Tag limit + card_size: Card size + columns_per_row: Columns per row errors: messages: accepted: must be accepted. @@ -2517,6 +2547,7 @@ ckb-IR: unsupported_storage_type: is not a supported storage type. storage_error: There was an error with the storage connection. invalid_input: The input is invalid. + invalid_child_for_parent: is not allowed as a parent for this view type. activity: item: created_by_on: created by %{user} on %{datetime} @@ -3391,6 +3422,26 @@ ckb-IR: general_text_false: 'false' gui_validation_error: 1 error gui_validation_error_plural: "%{count} errors" + health_reports: + report_component: + checks: + failures: + one: "%{count} check failed" + other: "%{count} checks failed" + success: All checks passed + warnings: + one: "%{count} check returned a warning" + other: "%{count} checks returned a warning" + summary: + failure: Some checks failed and the system does not work as expected. + success: All connections and systems are working as expected. + warning: Some checks returned a warning. This can lead to unexpected behaviour. + result_component: + status: + failed: Failed + passed: Passed + skipped: Skipped + warning: Warning homescreen: additional: projects: Newest visible projects in this instance. @@ -3692,6 +3743,7 @@ ckb-IR: label_age: Age label_ago: days ago label_all: all + label_all_uppercase: All label_all_time: all time label_all_words: All words label_all_open_wps: All open @@ -4219,6 +4271,7 @@ ckb-IR: label_role_new: New role label_role_grantable: Grantable role label_role_plural: Roles + label_role_missing_permissions: "%{role} (missing required permissions)" label_role_search: Assign role to new members label_scm: SCM label_scroll_left: Scroll left @@ -4445,7 +4498,7 @@ ckb-IR: you_have: You have logo_alt_text: Logo mention: - subject: "%{user_name} mentioned you in #%{id} - %{subject}" + subject: "%{user_name} mentioned you in %{id} - %{subject}" notification: center: To notification center see_in_center: See comment in notification center @@ -4483,7 +4536,7 @@ ckb-IR: allowed_actions_html: 'You have the following permissions on this work package: %{allowed_actions}. This can change depending on your project role and permissions.' create_account: To access this work package, you will need to create and activate an account on %{instance}. open_work_package: Open work package - subject: 'Work package #%{id} was shared with you' + subject: Work package %{id} was shared with you enterprise_text: Share work packages with users who are not members of the project. summary: user: "%{user} shared a work package with you with %{role_rights} rights" @@ -4694,6 +4747,18 @@ ckb-IR: text_getting_started_description: Get a quick overview of project management and team collaboration with OpenProject. You can restart this video from the help menu. welcome: Welcome to %{app_title} select_language: Please select your language + open_project: + common: + work_package_card_component: + menu: + label_actions: Work package actions + work_package_card_list_component: + header: + label_actions: Open menu + label_work_package_count: + zero: No work packages + one: "%{count} work package" + other: "%{count} work packages" permission_add_work_package_comments: Add comments permission_add_work_packages: Add work packages permission_add_messages: Post messages @@ -4711,7 +4776,6 @@ ckb-IR: permission_add_work_package_watchers: Add watchers permission_assign_versions: Assign versions permission_browse_repository: Read-only access to repository (browse and checkout) - permission_change_wiki_parent_page: Change parent wiki page permission_change_work_package_status: Change work package status permission_change_work_package_status_explanation: Allows changing status without Edit work packages permission permission_comment_news: Comment news @@ -4726,8 +4790,6 @@ ckb-IR: permission_delete_own_messages: Delete own messages permission_delete_reportings: Delete reportings permission_delete_timelines: Delete timelines - permission_delete_wiki_pages: Delete wiki pages - permission_delete_wiki_pages_attachments: Delete attachments permission_edit_work_package_comments: Moderate comments permission_edit_work_package_comments_explanation: 'Caution: Users with this permission are able to edit anyone''s comment.' permission_edit_work_packages: Edit work packages @@ -4747,12 +4809,10 @@ ckb-IR: permission_edit_wiki_pages: Edit wiki pages permission_export_work_packages: Export work packages permission_export_projects: Export projects - permission_export_wiki_pages: Export wiki pages permission_invite_members_by_email: Invite members by email permission_invite_members_by_email_explanation: 'Allows users to invite new members by email. Invited users will receive an email with a link to set their password and activate their account. Depends on the permission to manage members ' - permission_list_attachments: List attachments permission_log_own_time: Log own time permission_log_time: Log time for other users permission_manage_forums: Manage forums @@ -4767,7 +4827,6 @@ ckb-IR: permission_manage_subtasks: Manage work package hierarchies permission_manage_versions: Manage versions permission_manage_wiki: Manage wiki - permission_manage_wiki_menu: Manage wiki menu permission_manage_own_working_times: Manage own working times permission_manage_own_working_times_explanation: 'Allows users to manage their own working times, and personal non-working days. @@ -4777,8 +4836,6 @@ ckb-IR: ' permission_move_work_packages: Move work packages - permission_protect_wiki_pages: Protect wiki pages - permission_rename_wiki_pages: Rename wiki pages permission_save_queries: Save views permission_search_project: Search project permission_select_custom_fields: Select custom fields @@ -5157,6 +5214,9 @@ ckb-IR: setting_mail_handler_body_delimiter_regex: Truncate emails matching this regex setting_mail_handler_ignore_filenames: Ignored mail attachments setting_new_project_user_role_id: Role given to a non-admin user who creates a project + setting_new_project_user_role_id_caption: 'Only roles that include the permissions to edit project attributes and to manage members are listed, so that the creator can complete the project setup. + + ' setting_new_project_send_confirmation_email: Send notification to author when creating a new project setting_new_project_notification_text: Notification text setting_password_active_rules: Password requirements @@ -5573,6 +5633,7 @@ ckb-IR: text_project_identifier_format: Must start with a lowercase letter. Only lowercase letters (a-z), numbers, dashes and underscores are allowed. text_reassign: 'Reassign to work package:' text_regexp_multiline: The regex is applied in a multi-line mode. e.g., ^---\s+ + text_rename_wiki_page: Rename wiki page text_repository_usernames_mapping: |- Select or update the OpenProject user mapped to each username found in the repository log. Users with the same OpenProject and repository username or email are automatically mapped. @@ -6006,9 +6067,6 @@ ckb-IR: scopes: Permissions successful_application_revocation: Revocation of application %{application_name} successful. none_given: No OAuth applications have been granted access to your user account. - x_active_tokens: - one: one active token - other: "%{count} active token" flows: authorization_code: Authorization code flow client_credentials: Client credentials flow @@ -6018,8 +6076,10 @@ ckb-IR: client_credentials_impersonation_html: 'By default, OpenProject provides OAuth 2.0 authorization via %{authorization_code_flow_link}. You can optionally enable %{client_credentials_flow_link}, but you must provide a user on whose behalf requests will be performed. ' + confirm_revoke_my_application: + one: Do you really want to remove this application? This will revoke one token active for it. + other: Do you really want to remove this application? This will revoke %{count} tokens active for it. authorization_error: An authorization error has occurred. - revoke_my_application_confirmation: Do you really want to remove this application? This will revoke %{token_count} active for it. my_registered_applications: Registered OAuth applications oauth_client: urn_connection_status: diff --git a/config/locales/crowdin/cs.yml b/config/locales/crowdin/cs.yml index 0d151aba1bd..4535786b485 100644 --- a/config/locales/crowdin/cs.yml +++ b/config/locales/crowdin/cs.yml @@ -431,7 +431,8 @@ cs: error_special_characters: Speciální znaky nejsou povoleny error_not_fully_uppercased: Musí být napsán velkými písmeny error_in_use: Již se používá jako identifikátor jiného projektu - error_reserved: Již se dříve používal jako identifikátor jiného projektu + error_used_in_past: Reserved by another project's handle history + error_reserved_by_system: Reserved as a system keyword error_unknown: Potřebuje ruční revizi remaining_projects: one: "... 1 další projekt" @@ -476,8 +477,14 @@ cs: ignore: Ignorovat změny save: Uložit změny a pokračovat role_selector: + title: Select roles label: 'Role: %{role}' no_role: Vybrat roli + roles: + one: One role selected + few: "%{count} roles selected" + many: "%{count} roles selected" + other: "%{count} roles selected" blankslate: title: Nejsou nakonfigurovány žádné stavové přechody description: Add statuses to start configuring workflows for this role @@ -1140,6 +1147,8 @@ cs: no_results_title_text: V současné době neexistují žádné zprávy k zobrazení. no_results_content_text: Přidat příspěvek roles: + edit: + default_for_new_projects_warning: 'This role is configured as the default role given to non-admin users who create a project. Do not remove the following permissions, otherwise project creators will be unable to complete the setup of their newly created projects:' permissions: section_check_all_label: Assign all %{module} permissions section_uncheck_all_label: Unassign all %{module} permissions @@ -1800,7 +1809,7 @@ cs: enabled_modules: Povolené moduly identifier: Identifikátor latest_activity_at: Poslední aktivita - parent: Nadřazený projekt + parent: Podprojekt project_creation_wizard_enabled: Project initiation request public_value: title: Viditelnost @@ -2042,6 +2051,29 @@ cs: type: Typ version: Verze watcher: Sledující + ordered_persisted_query_entity: + persisted_query: Persisted query + entity: Entity + position: Position + persisted_query: + name: Name + views: Views + filters: Filters + orders: Orders + selects: Selects + persisted_view: + name: Name + query: Query + parent: Parent view + public: Public + user_card_view: + secondary_info: Secondary info + show_status_badge: Show status badge + show_email: Show email + tag_source: Tag source + tag_limit: Tag limit + card_size: Card size + columns_per_row: Columns per row errors: messages: accepted: musí být přijato. @@ -2212,7 +2244,7 @@ cs: message: cannot_move_message_to_forum_of_different_project: A message cannot be moved to a forum of a different project. notifications: - at_least_one_channel: Pro odesílání notifikací musí být specifikován alespoň jeden kanál + at_least_one_channel: Alespoň jeden kanál pro odesílání oznámení musí být specifikován. attributes: read_ian: read_on_creation: 'nelze nastavit na pravdivé při vytváření oznámení ' @@ -2522,11 +2554,11 @@ cs: member: Člen news: Novinky notification: - one: Notifikace - few: Notifikací - many: Notifikací - other: Notifikace - placeholder_user: Placeholder uživatel + one: Oznámení + few: Oznámení + many: Oznámení + other: Oznámení + placeholder_user: placeholder uživatel project: one: Projekt few: Projekty @@ -2595,6 +2627,7 @@ cs: unsupported_storage_type: není podporovaným typem úložiště. storage_error: Došlo k chybě při připojení k úložišti. invalid_input: Vstup je neplatný. + invalid_child_for_parent: is not allowed as a parent for this view type. activity: item: created_by_on: vytvořil %{user} dne %{datetime} @@ -3515,6 +3548,30 @@ cs: general_text_false: nepravda gui_validation_error: 1 chyba gui_validation_error_plural: "%{count} chyb" + health_reports: + report_component: + checks: + failures: + one: "%{count} check failed" + few: "%{count} checks failed" + many: "%{count} checks failed" + other: "%{count} checks failed" + success: All checks passed + warnings: + one: "%{count} check returned a warning" + few: "%{count} checks returned a warning" + many: "%{count} checks returned a warning" + other: "%{count} checks returned a warning" + summary: + failure: Some checks failed and the system does not work as expected. + success: All connections and systems are working as expected. + warning: Some checks returned a warning. This can lead to unexpected behaviour. + result_component: + status: + failed: Failed + passed: Passed + skipped: Skipped + warning: Warning homescreen: additional: projects: Nejnovější projekty v systému @@ -3617,7 +3674,7 @@ cs: ai: Umělá Inteligence (AI) aggregation: Agregace api_and_webhooks: API & Webhooky - mail_notification: E-mailové notifikace + mail_notification: E-mailová upozornění mails_and_notifications: E-maily a oznámení mcp_configurations: Protokol MCP (Model Context Protocol) quick_add: @@ -3779,7 +3836,7 @@ cs: by_project: Nepřečteno dle projektu by_reason: Důvod inbox: Doručená pošta - send_notifications: Pro tuto akci odeslat notifikaci + send_notifications: Odeslat oznámení pro tuto akci work_packages: subject: created: Pracovní balíček byl vytvořen. @@ -3816,6 +3873,7 @@ cs: label_age: Věk label_ago: dnů před label_all: vše + label_all_uppercase: All label_all_time: celkový čas label_all_words: Všechna slova label_all_open_wps: Všechny otevřené @@ -4244,9 +4302,9 @@ cs: label_permissions: Práva label_permissions_report: Přehled oprávnění label_personalize_page: Přizpůsobit tuto stránku - label_placeholder_user: Placeholder uživatel + label_placeholder_user: placeholder uživatel label_placeholder_user_new: '' - label_placeholder_user_plural: Placeholder uživatelé + label_placeholder_user_plural: placeholder uživatelé label_planning: Plánování label_please_login: Přihlaste se prosím label_plugins: Pluginy @@ -4271,7 +4329,7 @@ cs: label_project_attribute_plural: Atributy projektu label_project_attribute_manage_link: Správa atributů produktu label_project_count: Celkový počet projektů - label_project_copy_notifications: Během kopírování projektu odeslat notifikace e-mailem + label_project_copy_notifications: Během kopie projektu odeslat oznámení e-mailem label_project_initiation_export_pdf: Export PDF for %{project_creation_name} label_project_latest: Nejnovější projekty label_project_default_type: Povolit prázdný typ @@ -4343,6 +4401,7 @@ cs: label_role_new: Nová role label_role_grantable: Udělitelná role label_role_plural: Role + label_role_missing_permissions: "%{role} (missing required permissions)" label_role_search: Přiřadit roli novým členům label_scm: SCM label_scroll_left: Rolovat vlevo @@ -4432,7 +4491,7 @@ cs: label_version_new: Nová verze label_version_edit: Upravit verzi label_version_plural: Verze - label_version_sharing_descendants: S podprojekty + label_version_sharing_descendants: S Podprojekty label_version_sharing_hierarchy: S hierarchií projektu label_version_sharing_none: Není sdíleno label_version_sharing_system: Se všemi projekty @@ -4570,28 +4629,28 @@ cs: digests: including_mention_singular: včetně zmínky including_mention_plural: včetně %{number_mentioned} zmínění - unread_notification_singular: 1 nepřečtená notifikace - unread_notification_plural: "%{number_unread} nepřečtených notifikací" + unread_notification_singular: 1 nepřečtené oznámení + unread_notification_plural: "%{number_unread} nepřečtených oznámení" you_have: Máte logo_alt_text: Logo mention: - subject: "%{user_name} vás zmínil v #%{id} - %{subject}" + subject: "%{user_name} mentioned you in %{id} - %{subject}" notification: - center: Centrum notifikací + center: Centrum oznámení see_in_center: Zobrazit komentář v oznamovacím centru settings: Změnit nastavení e-mailu salutation: Dobrý den, %{user}, salutation_full_name: Jméno a příjmení work_packages: created_at: 'Vytvořeno v %{timestamp} uživatelem %{user} ' - login_to_see_all: Přihlaste se pro zobrazení všech notifikací. + login_to_see_all: Přihlaste se pro zobrazení všech oznámení. mentioned: Byli jste zmíněni v komentáři mentioned_by: "%{user} vás zmínil v komentáři OpenProject" more_to_see: - one: Existuje ještě 1 pracovní balíček s notifikací. - few: Existuje ještě %{count} pracovních balíčků s notifikacema. - many: Existuje ještě %{count} pracovních balíčků s notifikacema. - other: Existuje ještě %{count} pracovních balíčků s notifikacema. + one: Máte ještě 1 pracovní balíček s notifikací. + few: Existuje ještě %{count} pracovních balíčků s oznámeními. + many: Máte ještě %{count} pracovních balíčků s notifikacemi. + other: Existuje ještě %{count} pracovních balíčků s oznámeními. open_in_browser: Otevřít v prohlížeči reason: watched: Sledováno @@ -4600,7 +4659,7 @@ cs: mentioned: Zmíněné shared: Sdílené subscribed: vše - prefix: 'Obdrženo z důvodu nastavení notifikací: %{reason}' + prefix: 'Obdrženo z důvodu nastavení oznámení: %{reason}' date_alert_start_date: Upozornění na datum date_alert_due_date: Upozornění na datum reminder: Připomínka @@ -4615,7 +4674,7 @@ cs: allowed_actions_html: 'You have the following permissions on this work package: %{allowed_actions}. This can change depending on your project role and permissions.' create_account: Pro přístup k tomuto pracovnímu balíčku musíte vytvořit a aktivovat účet na %{instance}. open_work_package: Otevřít pracovní balíček - subject: 'Pracovní balíček #%{id} byl s vámi sdílen' + subject: Work package %{id} was shared with you enterprise_text: Sdílejte pracovní balíčky s uživateli, kteří nejsou členy projektu. summary: user: "%{user} s vámi sdílel pracovní balíček s právy %{role_rights}" @@ -4828,6 +4887,18 @@ cs: text_getting_started_description: Získejte rychlý přehled o řízení projektu a spolupráci týmu s OpenProject. Toto video můžete restartovat z nabídky nápovědy. welcome: Vítejte v %{app_title} select_language: Vyberte prosím svůj jazyk + open_project: + common: + work_package_card_component: + menu: + label_actions: Work package actions + work_package_card_list_component: + header: + label_actions: Open menu + label_work_package_count: + zero: No work packages + one: "%{count} work package" + other: "%{count} work packages" permission_add_work_package_comments: Přidat komentáře permission_add_work_packages: Přidat pracovní balíčky permission_add_messages: Odesílat zprávy @@ -4845,7 +4916,6 @@ cs: permission_add_work_package_watchers: Přidat sledující permission_assign_versions: Přiřadit verze permission_browse_repository: Přístup pouze pro čtení do repozitáře (procházet a pokladna) - permission_change_wiki_parent_page: Změnit nadřazenou wiki stránku permission_change_work_package_status: Změnit stav pracovního balíčku permission_change_work_package_status_explanation: Umožňuje změnu stavu bez oprávnění upravovat pracovní balíčky permission_comment_news: Komentování novinek @@ -4860,8 +4930,6 @@ cs: permission_delete_own_messages: Odstranit vlastní zprávy permission_delete_reportings: Odstranit přehledy permission_delete_timelines: Odstranit časové osy - permission_delete_wiki_pages: Odstranit wiki stránky - permission_delete_wiki_pages_attachments: Odstranit přílohy permission_edit_work_package_comments: Moderovat komentáře permission_edit_work_package_comments_explanation: 'Caution: Users with this permission are able to edit anyone''s comment.' permission_edit_work_packages: Upravit pracovní balíčky @@ -4881,12 +4949,10 @@ cs: permission_edit_wiki_pages: Upravit stránky wiki permission_export_work_packages: Exportovat pracovní balíčky permission_export_projects: Exportovat projekty - permission_export_wiki_pages: Exportovat Wiki stránky permission_invite_members_by_email: Pozvat členy e-mailem permission_invite_members_by_email_explanation: 'Umožní uživatelům pozvat nové členy e-mailem. Pozvaní uživatelé obdrží e-mail s odkazem pro nastavení jejich hesla a aktivaci jejich účtu. Závisí na oprávnění ke správě členů ' - permission_list_attachments: Seznam příloh permission_log_own_time: Zaznamenat vlastní čas permission_log_time: Čas záznamu pro ostatní uživatele permission_manage_forums: Správa fór @@ -4901,7 +4967,6 @@ cs: permission_manage_subtasks: Spravovat hierarchie pracovních balíčků permission_manage_versions: Správovat verze permission_manage_wiki: Spravovat wiki - permission_manage_wiki_menu: Spravovat wiki menu permission_manage_own_working_times: Spravovat vlastní pracovní dobu permission_manage_own_working_times_explanation: 'Umožní uživatelům spravovat vlastní pracovní dobu a osobní nepracovní dny. @@ -4911,9 +4976,7 @@ cs: ' permission_move_work_packages: Přesun pracovních balíčků - permission_protect_wiki_pages: Ochrana stránky wiki - permission_rename_wiki_pages: Přejmenovat stránky wiki - permission_save_queries: Uložit zobrazení + permission_save_queries: Uložit pohled permission_search_project: Hledat projekt permission_select_custom_fields: Vybrat vlastní pole permission_select_project_custom_fields: Vyberte atributy projektu @@ -5291,6 +5354,9 @@ cs: setting_mail_handler_body_delimiter_regex: Zkrátit e-maily odpovídající tomuto regexu setting_mail_handler_ignore_filenames: Ignorované přílohy e-mailů setting_new_project_user_role_id: Role přiřazená uživateli bez práv administrátora, který projekt vytvořil + setting_new_project_user_role_id_caption: 'Only roles that include the permissions to edit project attributes and to manage members are listed, so that the creator can complete the project setup. + + ' setting_new_project_send_confirmation_email: Send notification to author when creating a new project setting_new_project_notification_text: Text notifikace setting_password_active_rules: Password requirements @@ -5441,7 +5507,7 @@ cs: enable_subscriptions_text_html: Umožňuje uživatelům s nezbytnými oprávněními přihlásit se do OpenProject kalendářů a získat přístup k informacím o pracovním balíčku prostřednictvím externího klienta kalendáře. Poznámka: Před povolením si prosím přečtěte podrobnosti o odběru. language_name_being_default: "%{language_name} (výchozí)" notifications: - events_explanation: Určuje, pro kterou událost je odeslán e-mail. Pracovní balíčky jsou z tohoto seznamu vyloučeny, protože notifikace pro ně mohou být nastavena speciálně pro každého uživatele. + events_explanation: Určuje, pro kterou událost je odeslán e-mail. Pracovní balíčky jsou z tohoto seznamu vyloučeny, protože oznámení pro ně mohou být nastavena speciálně pro každého uživatele. delay_minutes_explanation: Odesílání e-mailu může být pozdrženo, aby bylo uživatelům s nakonfigurovaným v oznámení aplikace před odesláním pošty potvrzeno oznámení. Uživatelé, kteří si přečtou oznámení v aplikaci, nedostanou e-mail pro již přečtené oznámení. other: Ostatní passwords: Hesla @@ -5646,7 +5712,7 @@ cs: text_destroy_what_to_do: Co chcete udělat? text_diff_truncated: "... Toto rozlišení bylo zkráceno, protože přesahuje maximální velikost, kterou lze zobrazit." text_email_delivery_not_configured: |- - Doručení e-mailu není nakonfigurováno a notifikace jsou zakázány. + Doručení e-mailu není nakonfigurováno a oznámení jsou zakázána. Nakonfigurujte váš SMTP server pro jejich povolení. text_enumeration_category_reassign_to: 'Přiřadit je k této hodnotě:' text_enumeration_destroy_question: "%{count} objektů je přiřazeno k této hodnotě." @@ -5707,6 +5773,7 @@ cs: text_project_identifier_format: Must start with a lowercase letter. Only lowercase letters (a-z), numbers, dashes and underscores are allowed. text_reassign: 'Přiřadit k pracovnímu balíčku:' text_regexp_multiline: 'regex je použit v režimu více řádků. např.: ^---\s+' + text_rename_wiki_page: Rename wiki page text_repository_usernames_mapping: |- Vyberte nebo aktualizujte mapovaný uživatel OpenProject ke každému uživatelskému jménu nalezenému v protokolu repozitáře. Uživatelé se stejným OpenProject a repozitářovým jménem nebo e-mailem jsou automaticky mapováni. @@ -6142,11 +6209,6 @@ cs: scopes: Práva successful_application_revocation: Zrušení aplikace %{application_name} bylo úspěšné. none_given: Žádné aplikaci OAuth nebyl udělen přístup k vašemu uživatelskému účtu. - x_active_tokens: - one: jeden aktivní token - few: "%{count} aktivní token" - many: "%{count} aktivní token" - other: "%{count} aktivních tokenů" flows: authorization_code: Tok kódu autorizace client_credentials: Průtok přihlašovacích údajů klienta @@ -6156,8 +6218,12 @@ cs: client_credentials_impersonation_html: 'Ve výchozím nastavení OpenProject poskytuje OAuth 2.0 autorizaci přes %{authorization_code_flow_link}. Můžete volitelně povolit %{client_credentials_flow_link}, ale musíte poskytnout uživateli, na jehož jménem budou žádosti provedeny. ' + confirm_revoke_my_application: + one: Do you really want to remove this application? This will revoke one token active for it. + few: Do you really want to remove this application? This will revoke %{count} tokens active for it. + many: Do you really want to remove this application? This will revoke %{count} tokens active for it. + other: Do you really want to remove this application? This will revoke %{count} tokens active for it. authorization_error: Došlo k chybě autorizace. - revoke_my_application_confirmation: Opravdu chcete odstranit tuto aplikaci? Tato akce zruší %{token_count} aktivních aplikací. my_registered_applications: Registrované OAuth aplikace oauth_client: urn_connection_status: diff --git a/config/locales/crowdin/da.yml b/config/locales/crowdin/da.yml index 77dc15e9dfe..39dca66b014 100644 --- a/config/locales/crowdin/da.yml +++ b/config/locales/crowdin/da.yml @@ -419,7 +419,8 @@ da: error_special_characters: Special characters not allowed error_not_fully_uppercased: Must be uppercase error_in_use: Already in use as another project's active handle - error_reserved: Reserved by another project's handle history + error_used_in_past: Reserved by another project's handle history + error_reserved_by_system: Reserved as a system keyword error_unknown: Needs manual review remaining_projects: one: "... 1 more project" @@ -460,8 +461,12 @@ da: ignore: Ignore changes save: Save changes and continue role_selector: + title: Select roles label: 'Role: %{role}' no_role: Select role + roles: + one: One role selected + other: "%{count} roles selected" blankslate: title: No status transitions configured description: Add statuses to start configuring workflows for this role @@ -1109,6 +1114,8 @@ da: no_results_title_text: There is currently no news to report. no_results_content_text: Add a news item roles: + edit: + default_for_new_projects_warning: 'This role is configured as the default role given to non-admin users who create a project. Do not remove the following permissions, otherwise project creators will be unable to complete the setup of their newly created projects:' permissions: section_check_all_label: Assign all %{module} permissions section_uncheck_all_label: Unassign all %{module} permissions @@ -1999,6 +2006,29 @@ da: type: Type version: Version watcher: Tilsynsførende + ordered_persisted_query_entity: + persisted_query: Persisted query + entity: Entity + position: Position + persisted_query: + name: Name + views: Views + filters: Filters + orders: Orders + selects: Selects + persisted_view: + name: Name + query: Query + parent: Parent view + public: Public + user_card_view: + secondary_info: Secondary info + show_status_badge: Show status badge + show_email: Show email + tag_source: Tag source + tag_limit: Tag limit + card_size: Card size + columns_per_row: Columns per row errors: messages: accepted: skal accepteres. @@ -2516,6 +2546,7 @@ da: unsupported_storage_type: is not a supported storage type. storage_error: There was an error with the storage connection. invalid_input: The input is invalid. + invalid_child_for_parent: is not allowed as a parent for this view type. activity: item: created_by_on: created by %{user} on %{datetime} @@ -3390,6 +3421,26 @@ da: general_text_false: forkert gui_validation_error: 1 fejl gui_validation_error_plural: "%{count} fejl" + health_reports: + report_component: + checks: + failures: + one: "%{count} check failed" + other: "%{count} checks failed" + success: All checks passed + warnings: + one: "%{count} check returned a warning" + other: "%{count} checks returned a warning" + summary: + failure: Some checks failed and the system does not work as expected. + success: All connections and systems are working as expected. + warning: Some checks returned a warning. This can lead to unexpected behaviour. + result_component: + status: + failed: Failed + passed: Passed + skipped: Skipped + warning: Warning homescreen: additional: projects: Nyeste synlige projekter i denne omgang. @@ -3691,6 +3742,7 @@ da: label_age: Alder label_ago: dage siden label_all: alle + label_all_uppercase: All label_all_time: alle tider label_all_words: Alle ord label_all_open_wps: All open @@ -4218,6 +4270,7 @@ da: label_role_new: Ny rolle label_role_grantable: Grantable role label_role_plural: Rollee + label_role_missing_permissions: "%{role} (missing required permissions)" label_role_search: Assign role to new members label_scm: Versionskontrolsystem label_scroll_left: Scroll left @@ -4444,7 +4497,7 @@ da: you_have: You have logo_alt_text: Logo mention: - subject: "%{user_name} mentioned you in #%{id} - %{subject}" + subject: "%{user_name} mentioned you in %{id} - %{subject}" notification: center: To notification center see_in_center: See comment in notification center @@ -4482,7 +4535,7 @@ da: allowed_actions_html: 'You have the following permissions on this work package: %{allowed_actions}. This can change depending on your project role and permissions.' create_account: To access this work package, you will need to create and activate an account on %{instance}. open_work_package: Open work package - subject: 'Work package #%{id} was shared with you' + subject: Work package %{id} was shared with you enterprise_text: Share work packages with users who are not members of the project. summary: user: "%{user} shared a work package with you with %{role_rights} rights" @@ -4693,6 +4746,18 @@ da: text_getting_started_description: Get a quick overview of project management and team collaboration with OpenProject. You can restart this video from the help menu. welcome: Welcome to %{app_title} select_language: Please select your language + open_project: + common: + work_package_card_component: + menu: + label_actions: Work package actions + work_package_card_list_component: + header: + label_actions: Open menu + label_work_package_count: + zero: No work packages + one: "%{count} work package" + other: "%{count} work packages" permission_add_work_package_comments: Add comments permission_add_work_packages: Tilføj arbejdspakker permission_add_messages: Send beskeder @@ -4710,7 +4775,6 @@ da: permission_add_work_package_watchers: Tilføj tilsynsførende permission_assign_versions: Assign versions permission_browse_repository: Read-only access to repository (browse and checkout) - permission_change_wiki_parent_page: Skift overordnet wiki-side permission_change_work_package_status: Change work package status permission_change_work_package_status_explanation: Allows changing status without Edit work packages permission permission_comment_news: Kommenter nyheder @@ -4725,8 +4789,6 @@ da: permission_delete_own_messages: Slet egne meddelelser permission_delete_reportings: Slet rapporteringer permission_delete_timelines: Slet tidslinjer - permission_delete_wiki_pages: Slet wiki-sider - permission_delete_wiki_pages_attachments: Slet vedhæftninger permission_edit_work_package_comments: Moderate comments permission_edit_work_package_comments_explanation: 'Caution: Users with this permission are able to edit anyone''s comment.' permission_edit_work_packages: Rediger arbejdspakker @@ -4746,12 +4808,10 @@ da: permission_edit_wiki_pages: Rediger wiki-sider permission_export_work_packages: Eksportér arbejdspakker permission_export_projects: Export projects - permission_export_wiki_pages: Eksporter wiki-sider permission_invite_members_by_email: Invite members by email permission_invite_members_by_email_explanation: 'Allows users to invite new members by email. Invited users will receive an email with a link to set their password and activate their account. Depends on the permission to manage members ' - permission_list_attachments: Oplist vedhæftninger permission_log_own_time: Log own time permission_log_time: Log time for other users permission_manage_forums: Administrer fora @@ -4766,7 +4826,6 @@ da: permission_manage_subtasks: Manage work package hierarchies permission_manage_versions: Administrer versioner permission_manage_wiki: Administrer wiki - permission_manage_wiki_menu: Administrer wiki-menu permission_manage_own_working_times: Manage own working times permission_manage_own_working_times_explanation: 'Allows users to manage their own working times, and personal non-working days. @@ -4776,8 +4835,6 @@ da: ' permission_move_work_packages: Flyt arbejdspakker - permission_protect_wiki_pages: Beskyt wiki-sider - permission_rename_wiki_pages: Omdøb wiki-sider permission_save_queries: Save views permission_search_project: Search project permission_select_custom_fields: Select custom fields @@ -5150,6 +5207,9 @@ da: setting_mail_handler_body_delimiter_regex: Truncate emails matching this regex setting_mail_handler_ignore_filenames: Ignored mail attachments setting_new_project_user_role_id: Rolle givet til bruger der opretter projekt uden at være administrator + setting_new_project_user_role_id_caption: 'Only roles that include the permissions to edit project attributes and to manage members are listed, so that the creator can complete the project setup. + + ' setting_new_project_send_confirmation_email: Send notification to author when creating a new project setting_new_project_notification_text: Notification text setting_password_active_rules: Password requirements @@ -5564,6 +5624,7 @@ da: text_project_identifier_format: Must start with a lowercase letter. Only lowercase letters (a-z), numbers, dashes and underscores are allowed. text_reassign: 'Gentildel til arbejdspakke:' text_regexp_multiline: The regex is applied in a multi-line mode. e.g., ^---\s+ + text_rename_wiki_page: Rename wiki page text_repository_usernames_mapping: |- Vælg eller opdatér den OpenProject-bruger, der er tilknyttet hvert brugernavn i loggen for projektarkivet. Brugere med det samme brugernavn eller mailadresse i OpenProject og i projektarkivet vil automatisk blive tilknyttet. @@ -5997,9 +6058,6 @@ da: scopes: Tilladelser successful_application_revocation: Revocation of application %{application_name} successful. none_given: No OAuth applications have been granted access to your user account. - x_active_tokens: - one: one active token - other: "%{count} active token" flows: authorization_code: Authorization code flow client_credentials: Client credentials flow @@ -6009,8 +6067,10 @@ da: client_credentials_impersonation_html: 'By default, OpenProject provides OAuth 2.0 authorization via %{authorization_code_flow_link}. You can optionally enable %{client_credentials_flow_link}, but you must provide a user on whose behalf requests will be performed. ' + confirm_revoke_my_application: + one: Do you really want to remove this application? This will revoke one token active for it. + other: Do you really want to remove this application? This will revoke %{count} tokens active for it. authorization_error: An authorization error has occurred. - revoke_my_application_confirmation: Do you really want to remove this application? This will revoke %{token_count} active for it. my_registered_applications: Registered OAuth applications oauth_client: urn_connection_status: diff --git a/config/locales/crowdin/de.yml b/config/locales/crowdin/de.yml index 9e4c6a6ac02..69798db6c31 100644 --- a/config/locales/crowdin/de.yml +++ b/config/locales/crowdin/de.yml @@ -87,11 +87,11 @@ de: type_token_text: Ihr Enterprise-Token-Text token_placeholder: Enterprise-Token Text hier einfügen token_caption: Weitere Informationen über die Aktivierung der Enterprise Edition finden Sie in unserer [Dokumentation](docs_url). - add_token: Enterprise-Edition Support Token hochladen + add_token: Enterprise edition Support Token hochladen replace_token: Aktuellen Enterprise edition Support Token ersetzen order: Enterprise on-premises bestellen - paste: Enterprise-Edition Support Token hier einfügen - required_for_feature: Dieses Add-on ist nur mit einem aktiven Enterprise-Edition Support-Token verfügbar. + paste: Enterprise edition Support Token hier einfügen + required_for_feature: Dieses Add-on ist nur mit einem aktiven Enterprise edition Support-Token verfügbar. enterprise_link: Klicken Sie hier für weitere Informationen. start_trial: Kostenlose Testversion starten book_now: Jetzt buchen @@ -419,7 +419,8 @@ de: error_special_characters: Sonderzeichen sind nicht erlaubt error_not_fully_uppercased: Muss in Großbuchstaben sein error_in_use: Bereits als aktive Kennung für ein anderes Projekt verwendet - error_reserved: Reserviert durch eine frühere Kennung eines anderen Projekts + error_used_in_past: Reserviert durch eine frühere Kennung eines anderen Projekts + error_reserved_by_system: Als Systemschlüsselwort reserviert error_unknown: Benötigt manuelle Überprüfung remaining_projects: one: "... 1 weiteres Projekt" @@ -460,8 +461,12 @@ de: ignore: Änderungen ignorieren save: Änderungen speichern und fortfahren role_selector: + title: Rollen auswählen label: 'Rolle: %{role}' no_role: Rolle auswählen + roles: + one: Eine Rolle ausgewählt + other: "%{count} Rollen ausgewählt" blankslate: title: Keine Statusübergänge konfiguriert description: Status hinzufügen, um mit der Konfiguration von Arbeitsabläufen für diese Rolle zu beginnen @@ -1109,6 +1114,8 @@ de: no_results_title_text: Es gibt aktuell keine Neuigkeiten. no_results_content_text: Neuigkeit hinzufügen roles: + edit: + default_for_new_projects_warning: 'Diese Rolle ist als Standardrolle für diejenigen Benutzer konfiguriert, die ein Projekt erstellen und keine Administratoren sind. Entfernen Sie die folgenden Berechtigungen nicht, sonst können die Projekt-Ersteller die Einrichtung ihrer neu erstellten Projekte nicht abschließen:' permissions: section_check_all_label: Alle %{module} Berechtigungen zuweisen section_uncheck_all_label: Alle %{module} Berechtigungen zuweisen @@ -1342,10 +1349,10 @@ de: tab: Titel konfigurieren manually_editable_subjects: label: Manuell bearbeitbare Titel - caption: Nutzer:innen können die Titel der Arbeitspakete ohne Einschränkungen manuell eingeben und bearbeiten. + caption: Benutzer können die Titel der Arbeitspakete ohne Einschränkungen manuell eingeben und bearbeiten. automatically_generated_subjects: label: Automatisch generierte Titel - caption: Definieren Sie ein Schema aus referenzierten Attributen und Freitext für die automatische Generierung von Arbeitspakettiteln. Nutzer:innen können diese nicht manuell editieren. + caption: Definieren Sie ein Schema aus referenzierten Attributen und Freitext für die automatische Generierung von Arbeitspakettiteln. Nutzer können diese nicht manuell editieren. token: label_with_context: "%{attribute_context}: %{attribute_label}" context: @@ -1446,7 +1453,7 @@ de: manual_with_children: Hat Unteraufgaben aber ihre Startdaten werden ignoriert. title: automatic_mobile: Automatisch geplant. - automatic_with_children: Unteraufgaben bestimmen Termine. + automatic_with_children: Die Termine sind durch untergeordnete Arbeitspakete bestimmt. automatic_with_predecessor: Der Anfangstermin wird von einem Vorgänger festgelegt. manual_mobile: Manuell geplant. manually_scheduled: Manuell geplant – Daten unabhängig von Beziehungen. @@ -1549,7 +1556,7 @@ de: label_child_plural: Unteraufgaben new_child: Neue Unteraufgabe new_child_description: Erstellt ein zugehöriges Arbeitspaket als Unteraufgabe des aktuellen (übergeordneten) Arbeitspakets - child: Unteraufgabe + child: Kind child_description: Macht das zugehörige Arbeitspaket zu einer Unteraufgabe des aktuellen (übergeordneten) Arbeitspakets parent: Übergeordnetes Arbeitspaket parent_description: Wandelt das verknüpfte in ein übergeordnetes Arbeitspaket dieses Arbeitspakets um @@ -1809,7 +1816,7 @@ de: column_names: Spalten relations_to_type_column: Beziehungen zu %{type} relations_of_type_column: 'Beziehungen der Art: %{type}' - child_work_packages: Unteraufgaben + child_work_packages: Kinder group_by: Gruppiere Ergebnisse nach sort_by: Ergebnisse sortieren nach filters: Filter @@ -1996,6 +2003,29 @@ de: type: Typ version: Version watcher: Beobachter + ordered_persisted_query_entity: + persisted_query: Gespeicherte Abfrage + entity: Entität + position: Position + persisted_query: + name: Name + views: Ansichten + filters: Filter + orders: Sortierungen + selects: Ausgewählte Attribute + persisted_view: + name: Name + query: Abfrage + parent: Übergeordnete Ansicht + public: Öffentlich + user_card_view: + secondary_info: Weitere Angaben + show_status_badge: Status anzeigen + show_email: E-Mail-Adresse anzeigen + tag_source: Tag source + tag_limit: Tag limit + card_size: Kartengröße + columns_per_row: Columns per row errors: messages: accepted: muss akzeptiert werden. @@ -2355,7 +2385,7 @@ de: status_transition_invalid: ist ungültig, da kein valider Übergang vom alten zum neuen Status für die aktuelle Rolle des Nutzers existiert. status_invalid_in_type: ist ungültig, da der aktuelle Status nicht in diesem Typ vorhanden ist. type: - cannot_be_milestone_due_to_children: kann kein Meilenstein werden, da dieses Arbeitspaket Unteraufgaben besitzt. + cannot_be_milestone_due_to_children: kann kein Meilenstein werden, da dieses Arbeitspaket Unterelemente besitzt. priority_id: only_active_priorities_allowed: muss aktiv sein. category: @@ -2511,6 +2541,7 @@ de: unsupported_storage_type: ist kein unterstützter Speichertyp. storage_error: Es ist ein Fehler bei der Speicherverbindung aufgetreten. invalid_input: Die Eingabe ist ungültig. + invalid_child_for_parent: is not allowed as a parent for this view type. activity: item: created_by_on: erstellt von %{user} am %{datetime} @@ -3174,7 +3205,7 @@ de: error_custom_option_not_found: Option ist nicht vorhanden. error_enterprise_plan_needed: Sie benötigen den Enterprise-Plan %{plan}, um diese Aktion durchzuführen. error_enterprise_activation_user_limit: Ihr Konto konnte nicht aktiviert werden (Nutzerlimit erreicht). Bitte kontaktieren Sie Ihren Administrator um Zugriff zu erhalten. - error_enterprise_token_invalid_domain: Die Enterprise-Edition ist nicht aktiv. Die aktuelle Domain (%{actual}) entspricht nicht dem erwarteten Hostnamen (%{expected}). + error_enterprise_token_invalid_domain: Die Enterprise edition ist nicht aktiv. Die aktuelle Domain (%{actual}) entspricht nicht dem erwarteten Hostnamen (%{expected}). error_failed_to_delete_entry: Fehler beim Löschen dieses Eintrags. error_in_dependent: 'Fehler beim Versuch, abhängiges Objekt zu ändern: %{dependent_class} #%{related_id} - %{related_subject}: %{error}' error_in_new_dependent: 'Fehler beim Versuch, abhängiges Objekt zu erstellen: %{dependent_class} - %{related_subject}: %{error}' @@ -3385,6 +3416,26 @@ de: general_text_false: falsch gui_validation_error: 1 Fehler gui_validation_error_plural: "%{count} Fehler" + health_reports: + report_component: + checks: + failures: + one: "%{count} Überprüfung fehlgeschlagen" + other: "%{count} Überprüfungen fehlgeschlagen" + success: All checks passed + warnings: + one: "%{count} check returned a warning" + other: "%{count} checks returned a warning" + summary: + failure: Some checks failed and the system does not work as expected. + success: All connections and systems are working as expected. + warning: Some checks returned a warning. This can lead to unexpected behaviour. + result_component: + status: + failed: Failed + passed: Passed + skipped: Skipped + warning: Warning homescreen: additional: projects: Neueste sichtbare Projekte in dieser Instanz. @@ -3461,7 +3512,7 @@ de: dates: working: "%{date} ist jetzt ein Arbeitstag" non_working: "%{date} ist jetzt ein arbeitsfreier Tag" - progress_mode_changed_to_status_based: Fortschrittberechnung wurde auf Status-bezogen gesetzt + progress_mode_changed_to_status_based: Fortschrittberechnung wurde auf Status-basiert gesetzt status_excluded_from_totals_set_to_false_message: jetzt in den Gesamtwerten der Hierarchie enthalten status_excluded_from_totals_set_to_true_message: jetzt von den Hierarchie-Gesamtwerten ausgeschlossen status_percent_complete_changed: "% abgeschlossen von %{old_value}% auf %{new_value} % geändert" @@ -3686,6 +3737,7 @@ de: label_age: Geändert vor label_ago: vor (Tage) label_all: alle + label_all_uppercase: Alle label_all_time: gesamter Zeitraum label_all_words: Alle Wörter label_all_open_wps: Alle offenen @@ -3864,7 +3916,7 @@ de: label_enumerations: Aufzählungen label_enterprise: Enterprise label_enterprise_active_users: "%{current}/%{limit} gebuchte aktive Nutzer" - label_enterprise_edition: Enterprise Edition + label_enterprise_edition: Enterprise edition label_enterprise_support: Enterprise Support label_environment: Umgebung label_estimates_and_progress: Schätzungen und Fortschritt @@ -4213,6 +4265,7 @@ de: label_role_new: Neue Rolle label_role_grantable: Zuweisbare Rolle label_role_plural: Rollen + label_role_missing_permissions: "%{role} (fehlende erforderliche Berechtigungen)" label_role_search: Rolle für neue Mitglieder zuweisen label_scm: Versionskontrollsystem label_scroll_left: Nach links scrollen @@ -4439,7 +4492,7 @@ de: you_have: Sie haben logo_alt_text: Logo mention: - subject: "%{user_name} erwähnte Sie in #%{id} - %{subject}" + subject: "%{user_name} erwähnte Sie in %{id} - %{subject}" notification: center: Zur Benachrichtigungszentrale see_in_center: Kommentar in Benachrichtigungszentrale öffnen @@ -4477,7 +4530,7 @@ de: allowed_actions_html: 'Sie haben auf diesem Arbeitspaket folgende Berechtigungen: %{allowed_actions}. Dies kann sich je nach Ihrer Projektrolle und Berechtigungen ändern.' create_account: Um auf dieses Arbeitspaket zuzugreifen, müssen Sie ein Konto für %{instance} erstellen und aktivieren. open_work_package: Arbeitspaket öffnen - subject: 'Arbeitspaket #%{id} wurde mit Ihnen geteilt' + subject: Arbeitspaket %{id} wurde mit Ihnen geteilt enterprise_text: Teilen Sie Arbeitspakete mit Benutzern, die nicht Mitglieder des Projekts sind. summary: user: "%{user} hat Ihnen ein Arbeitspaket mit %{role_rights} Rechten geteilt" @@ -4692,6 +4745,18 @@ de: text_getting_started_description: Erhalten Sie einen schnellen Überblick über die Projektverwaltung und die Zusammenarbeit mit OpenProject. Sie können dieses Video über das Hilfe-Menü neu starten. welcome: Willkommen zu %{app_title} select_language: Bitte wählen Sie Ihre Sprache + open_project: + common: + work_package_card_component: + menu: + label_actions: Arbeitspaket-Aktionen + work_package_card_list_component: + header: + label_actions: Open menu + label_work_package_count: + zero: No work packages + one: "%{count} Arbeitspaket" + other: "%{count} Arbeitspakete" permission_add_work_package_comments: Kommentare hinzufügen permission_add_work_packages: Arbeitspakete hinzufügen permission_add_messages: Forenbeiträge hinzufügen @@ -4709,7 +4774,6 @@ de: permission_add_work_package_watchers: Beobachter hinzufügen permission_assign_versions: Versionen zuweisen permission_browse_repository: Lesezugriff auf Projektarchiv (in OpenProject und Checkout) - permission_change_wiki_parent_page: Übergeordnete Wiki-Seite ändern permission_change_work_package_status: Arbeitspaket-Status ändern permission_change_work_package_status_explanation: Ermöglicht das Ändern des Status ohne Berechtigung Arbeitspakete zu bearbeiten permission_comment_news: Nachricht kommentieren @@ -4724,8 +4788,6 @@ de: permission_delete_own_messages: Eigene Forenbeiträge löschen permission_delete_reportings: Statusberichte löschen permission_delete_timelines: Zeitplan-Reporte löschen - permission_delete_wiki_pages: Wiki-Seiten löschen - permission_delete_wiki_pages_attachments: Anhänge löschen permission_edit_work_package_comments: Kommentare moderieren permission_edit_work_package_comments_explanation: 'Achtung: Benutzer mit dieser Berechtigung können den Kommentar eines anderen Benutzers bearbeiten.' permission_edit_work_packages: Arbeitspakete bearbeiten @@ -4745,12 +4807,10 @@ de: permission_edit_wiki_pages: Wiki-Seiten bearbeiten permission_export_work_packages: Arbeitspakete exportieren permission_export_projects: Projekte exportieren - permission_export_wiki_pages: Wiki-Seiten exportieren permission_invite_members_by_email: Mitglieder per E-Mail einladen permission_invite_members_by_email_explanation: 'Ermöglicht es Benutzern, neue Mitglieder per E-Mail einzuladen. Eingeladene Benutzer erhalten eine E-Mail mit einem Link, über den sie ihr Passwort festlegen und ihr Konto aktivieren können. Abhängig von der Berechtigung zur Mitgliederverwaltung ' - permission_list_attachments: Anhänge auflisten permission_log_own_time: Eigenen Zeitaufwand verbuchen permission_log_time: Zeitaufwand für andere Benutzer verbuchen permission_manage_forums: Foren verwalten @@ -4765,7 +4825,6 @@ de: permission_manage_subtasks: Arbeitspaket-Hierarchien verwalten permission_manage_versions: Versionen verwalten permission_manage_wiki: Wiki verwalten - permission_manage_wiki_menu: Wiki-Menü verwalten permission_manage_own_working_times: Eigene Arbeitszeiten verwalten permission_manage_own_working_times_explanation: 'Ermöglicht es Benutzern, ihre eigenen Arbeitszeiten und persönlichen arbeitsfreien Tage zu verwalten. @@ -4775,8 +4834,6 @@ de: ' permission_move_work_packages: Arbeitspakete verschieben - permission_protect_wiki_pages: Wiki-Seiten schützen - permission_rename_wiki_pages: Wiki-Seiten umbenennen permission_save_queries: Ansichten speichern permission_search_project: Projekt suchen permission_select_custom_fields: Benutzerdefinierte Felder verwalten @@ -4982,7 +5039,7 @@ de: Erhöhen Sie diesen Wert zur Verbesserung der Performance, da die Erfassung des genutzten Festplattenspeichers Ressourcen-intensiv ist. oauth_application_details_html: 'Der Client Geheimcode wird nach dem Schließen dieses Fensters nicht mehr zugänglich sein. Bitte kopieren Sie diese Werte in die Nextcloud OpenProject Integrationseinstellungen:' oauth_application_details_link_text: Zu den Einstellungen gehen - setup_documentation_details: 'Wenn Sie Hilfe bei der Konfiguration eines neuen Dateispeichers benötigen, konsultieren Sie bitte die Dokumentation: ' + setup_documentation_details: 'Wenn Sie Hilfe bei der Konfiguration eines neuen Datei-Speichers benötigen, konsultieren Sie bitte die Dokumentation: ' setup_documentation_details_link_text: Dateispeicher einrichten show_warning_details: Um diesen Dateispeicher nutzen zu können, müssen Sie das Modul und den spezifischen Speicher in den Projekteinstellungen jedes gewünschten Projekts aktivieren. subversion: @@ -5153,6 +5210,9 @@ de: setting_mail_handler_body_delimiter_regex: Schneide E-Mails nach Zeile ab, die diesem regulären Ausdruck entspricht setting_mail_handler_ignore_filenames: Ignorierte E-Mail-Anhänge setting_new_project_user_role_id: Rolle, die einem Nicht-Administrator zugeordnet wird, der ein Projekt erstellt + setting_new_project_user_role_id_caption: 'Es werden nur Rollen aufgelistet, die die Berechtigung zum Bearbeiten von Projektattributen und zum Verwalten von Mitgliedern haben, so dass der Ersteller die Projekteinrichtung abschließen kann. + + ' setting_new_project_send_confirmation_email: Benachrichtigung an den Autor senden, wenn ein neues Projekt erstellt wird setting_new_project_notification_text: Benachrichtigungstext setting_password_active_rules: Passwortanforderungen @@ -5567,6 +5627,7 @@ de: text_project_identifier_format: Muss mit einem Kleinbuchstaben beginnen. Nur Kleinbuchstaben (a-z), Zahlen, Bindestriche und Unterstriche sind erlaubt. text_reassign: 'Zuweisung zu Arbeitspaket:' text_regexp_multiline: Der reguläre Ausdruck wird in einem mehrzeiligen Modus angewandt, z.B. ^---\s+ + text_rename_wiki_page: Wiki-Seite umbenennen text_repository_usernames_mapping: |- Bitte legen Sie die Zuordnung der OpenProject-Benutzer zu den Benutzernamen der Commit-Log-Meldungen des Projektarchivs fest. Benutzer mit identischen OpenProject- und Projektarchiv-Benutzernamen oder -E-Mail-Adressen werden automatisch zugeordnet. @@ -5692,7 +5753,7 @@ de: warning_user_limit_reached_admin_html: 'Das Hinzufügen zusätzlicher Benutzer überschreitet das aktuelle Benutzerlimit. Bitte [aktualisieren Sie Ihr Abonnement](upgrade_url) um sicherzustellen, dass externe Benutzer auf diese Instanz zugreifen können. ' - warning_user_limit_reached_instructions: 'Du hast dein Nutzerlimit erreicht (%{current}/%{max} active users). Bitte kontaktiere sales@openproject.com um deinen Enterprise Edition Plan upzugraden und weitere Nutzer hinzuzufügen. + warning_user_limit_reached_instructions: 'Du hast dein Nutzerlimit erreicht (%{current}/%{max} active users). Bitte kontaktiere sales@openproject.com um deinen Enterprise edition Plan upzugraden und weitere Nutzer hinzuzufügen. ' warning_protocol_mismatch_html: '' @@ -6000,9 +6061,6 @@ de: scopes: Berechtigungen successful_application_revocation: Widerrufen von %{application_name} erfolgreich. none_given: Keine OAuth-Anwendung erhalten Zugriff auf Ihr Benutzerkonto. - x_active_tokens: - one: ein aktiver Token - other: "%{count} aktive Token" flows: authorization_code: Autorisierungs-Code Anmeldefluss client_credentials: Client credentials Anmeldefluss @@ -6012,8 +6070,10 @@ de: client_credentials_impersonation_html: 'Standardmäßig bietet OpenProject OAuth 2.0 Autorisierung via %{authorization_code_flow_link}. Sie können optional %{client_credentials_flow_link} aktivieren, aber Sie müssen einen Benutzer angeben, in dessen Namen Anfragen ausgeführt werden. ' + confirm_revoke_my_application: + one: Möchten Sie diese Anwendung wirklich entfernen? Dies wird einen aktiven Token widerrufen. + other: Möchten Sie diese Anwendung wirklich entfernen? Dies wird %{count} aktive Token widerrufen. authorization_error: Ein Autorisierungsfehler ist aufgetreten. - revoke_my_application_confirmation: Möchten Sie diese Anwendung wirklich entfernen? Dies wird %{token_count} aktive Token widerrufen. my_registered_applications: Registrierte OAuth-Anwendungen oauth_client: urn_connection_status: diff --git a/config/locales/crowdin/el.yml b/config/locales/crowdin/el.yml index a715270ce6f..db87bed92c0 100644 --- a/config/locales/crowdin/el.yml +++ b/config/locales/crowdin/el.yml @@ -419,7 +419,8 @@ el: error_special_characters: Special characters not allowed error_not_fully_uppercased: Must be uppercase error_in_use: Already in use as another project's active handle - error_reserved: Reserved by another project's handle history + error_used_in_past: Reserved by another project's handle history + error_reserved_by_system: Reserved as a system keyword error_unknown: Needs manual review remaining_projects: one: "... 1 more project" @@ -460,8 +461,12 @@ el: ignore: Ignore changes save: Save changes and continue role_selector: + title: Select roles label: 'Role: %{role}' no_role: Select role + roles: + one: One role selected + other: "%{count} roles selected" blankslate: title: No status transitions configured description: Add statuses to start configuring workflows for this role @@ -1109,6 +1114,8 @@ el: no_results_title_text: Δεν υπάρχουν προς το παρόν νέα για αναφορά. no_results_content_text: Προσθέστε ένα στοιχείο νέων roles: + edit: + default_for_new_projects_warning: 'This role is configured as the default role given to non-admin users who create a project. Do not remove the following permissions, otherwise project creators will be unable to complete the setup of their newly created projects:' permissions: section_check_all_label: Assign all %{module} permissions section_uncheck_all_label: Unassign all %{module} permissions @@ -1999,6 +2006,29 @@ el: type: Τύπος version: Έκδοση watcher: Παρατηρητής + ordered_persisted_query_entity: + persisted_query: Persisted query + entity: Entity + position: Position + persisted_query: + name: Name + views: Views + filters: Filters + orders: Orders + selects: Selects + persisted_view: + name: Name + query: Query + parent: Parent view + public: Public + user_card_view: + secondary_info: Secondary info + show_status_badge: Show status badge + show_email: Show email + tag_source: Tag source + tag_limit: Tag limit + card_size: Card size + columns_per_row: Columns per row errors: messages: accepted: πρέπει να γίνει αποδεκτό. @@ -2516,6 +2546,7 @@ el: unsupported_storage_type: is not a supported storage type. storage_error: There was an error with the storage connection. invalid_input: The input is invalid. + invalid_child_for_parent: is not allowed as a parent for this view type. activity: item: created_by_on: created by %{user} on %{datetime} @@ -3390,6 +3421,26 @@ el: general_text_false: ψευδές gui_validation_error: 1 σφάλμα gui_validation_error_plural: "%{count} σφάλματα" + health_reports: + report_component: + checks: + failures: + one: "%{count} check failed" + other: "%{count} checks failed" + success: All checks passed + warnings: + one: "%{count} check returned a warning" + other: "%{count} checks returned a warning" + summary: + failure: Some checks failed and the system does not work as expected. + success: All connections and systems are working as expected. + warning: Some checks returned a warning. This can lead to unexpected behaviour. + result_component: + status: + failed: Failed + passed: Passed + skipped: Skipped + warning: Warning homescreen: additional: projects: Νεότερα ορατά έργα σε αυτό το στιγμιότυπο της εφαρμογής. @@ -3691,6 +3742,7 @@ el: label_age: Ηλικία label_ago: ημέρες πριν label_all: όλα + label_all_uppercase: All label_all_time: πάντα label_all_words: Όλες οι λέξεις label_all_open_wps: Όλα τα ανοιχτά @@ -4218,6 +4270,7 @@ el: label_role_new: Νέος ρόλος label_role_grantable: Grantable role label_role_plural: Ρόλοι + label_role_missing_permissions: "%{role} (missing required permissions)" label_role_search: Ανάθεση ρόλων σε νέα μέλη label_scm: SCM label_scroll_left: Scroll left @@ -4444,7 +4497,7 @@ el: you_have: You have logo_alt_text: Logo mention: - subject: "%{user_name} mentioned you in #%{id} - %{subject}" + subject: "%{user_name} mentioned you in %{id} - %{subject}" notification: center: To notification center see_in_center: See comment in notification center @@ -4482,7 +4535,7 @@ el: allowed_actions_html: 'You have the following permissions on this work package: %{allowed_actions}. This can change depending on your project role and permissions.' create_account: To access this work package, you will need to create and activate an account on %{instance}. open_work_package: Open work package - subject: 'Work package #%{id} was shared with you' + subject: Work package %{id} was shared with you enterprise_text: Share work packages with users who are not members of the project. summary: user: "%{user} shared a work package with you with %{role_rights} rights" @@ -4693,6 +4746,18 @@ el: text_getting_started_description: Get a quick overview of project management and team collaboration with OpenProject. You can restart this video from the help menu. welcome: Welcome to %{app_title} select_language: Παρακαλούμε επιλέξτε την γλώσσα σας + open_project: + common: + work_package_card_component: + menu: + label_actions: Work package actions + work_package_card_list_component: + header: + label_actions: Open menu + label_work_package_count: + zero: No work packages + one: "%{count} work package" + other: "%{count} work packages" permission_add_work_package_comments: Add comments permission_add_work_packages: Προσθήκη πακέτων εργασίας permission_add_messages: Δημοσίευση μηνυμάτων @@ -4710,7 +4775,6 @@ el: permission_add_work_package_watchers: Προσθήκη παρατηρητών permission_assign_versions: Ανάθεση εκδόσεων permission_browse_repository: Πρόσβαση ανάγνωσης-μόνο στο αποθετήριο (περιήγηση και ολοκλήρωση παραγγελίας) - permission_change_wiki_parent_page: Αλλαγή σελίδας wiki γονέα permission_change_work_package_status: Change work package status permission_change_work_package_status_explanation: Allows changing status without Edit work packages permission permission_comment_news: Σχολιασμός νέων @@ -4725,8 +4789,6 @@ el: permission_delete_own_messages: Διαγραφή δικών μου μηνυμάτων permission_delete_reportings: Διαγραφή αναφορών permission_delete_timelines: Διαγραφή χρονοδιαγραμμάτων - permission_delete_wiki_pages: Διαγραφή σελίδων wiki - permission_delete_wiki_pages_attachments: Διαγραφή συνημμένων permission_edit_work_package_comments: Moderate comments permission_edit_work_package_comments_explanation: 'Caution: Users with this permission are able to edit anyone''s comment.' permission_edit_work_packages: Επεξεργασία πακέτων εργασίας @@ -4746,12 +4808,10 @@ el: permission_edit_wiki_pages: Επεξεργασία σελίδων wiki permission_export_work_packages: Εξαγωγή πακέτων εργασίας permission_export_projects: Export projects - permission_export_wiki_pages: Εξαγωγή σελίδων wiki permission_invite_members_by_email: Invite members by email permission_invite_members_by_email_explanation: 'Allows users to invite new members by email. Invited users will receive an email with a link to set their password and activate their account. Depends on the permission to manage members ' - permission_list_attachments: Λίστα συνημμένων permission_log_own_time: Log own time permission_log_time: Log time for other users permission_manage_forums: Διαχείριση των φόρουμ @@ -4766,7 +4826,6 @@ el: permission_manage_subtasks: Διαχείριση των ιεραρχιών πακέτων εργασίας permission_manage_versions: Διαχείριση εκδόσεων permission_manage_wiki: Διαχείριση wiki - permission_manage_wiki_menu: Διαχείριση μενού wiki permission_manage_own_working_times: Manage own working times permission_manage_own_working_times_explanation: 'Allows users to manage their own working times, and personal non-working days. @@ -4776,8 +4835,6 @@ el: ' permission_move_work_packages: Μετακίνηση πακέτων εργασίας - permission_protect_wiki_pages: Προστατέψτε τις σελίδες wiki - permission_rename_wiki_pages: Μετονομασία σελίδων wiki permission_save_queries: Αποθήκευση προβολών permission_search_project: Search project permission_select_custom_fields: Select custom fields @@ -5152,6 +5209,9 @@ el: setting_mail_handler_body_delimiter_regex: Περικοπή των email που ταιριάζουμε με αυτό το regex setting_mail_handler_ignore_filenames: Συνημμένα mail που αγνοήθηκαν setting_new_project_user_role_id: Ο ρόλος δόθηκε σε μη-διαχειριστή χρήστη ο οποίος δημιουργεί ένα έργο + setting_new_project_user_role_id_caption: 'Only roles that include the permissions to edit project attributes and to manage members are listed, so that the creator can complete the project setup. + + ' setting_new_project_send_confirmation_email: Send notification to author when creating a new project setting_new_project_notification_text: Notification text setting_password_active_rules: Password requirements @@ -5568,6 +5628,7 @@ el: text_project_identifier_format: Must start with a lowercase letter. Only lowercase letters (a-z), numbers, dashes and underscores are allowed. text_reassign: 'Επανεκχώρηση στο πακέτα εργασίας:' text_regexp_multiline: Το regex εφαρμόστηκε σε μια λειτουργία πολλαπλών γραμμών. π.χ., ^---\s+ + text_rename_wiki_page: Rename wiki page text_repository_usernames_mapping: |- Επιλέξτε ή ενημερώστε τον χρήστη OpenProject που αντιστοιχεί σε κάθε όνομα χρήστη στο ιστορικό του αποθετηρίου. Χρήστες με το ίδιο όνομα χρήστη στο OpenProject και το αποθετήριο ή email αντιστοιχίζονται αυτόματα. @@ -6001,9 +6062,6 @@ el: scopes: Δικαιώματα successful_application_revocation: Η εφαρμογή %{application_name} ανακλήθηκε επιτυχώς. none_given: Δεν υπάρχουν OAuth εφαρμογές που να έχουν πρόσβαση στο λογαριασμό σας. - x_active_tokens: - one: ένα ενεργό token - other: "%{count} ενεργά token" flows: authorization_code: Ροή κώδικα εξουσιοδότησης client_credentials: Ροή διαπιστευτηρίων πελάτη @@ -6013,8 +6071,10 @@ el: client_credentials_impersonation_html: 'Από προεπιλογή, το OpenProject παρέχει ταυτοποίηση OAuth 2.0 μέσω %{authorization_code_flow_link}. Μπορείτε προαιρετικά να ενεργοποιήσετε %{client_credentials_flow_link}, αλλά πρέπει να ορίσετε ένα χρήστη, εκ μέρους του οποίου θα εκτελεστούν τα αιτήματα. ' + confirm_revoke_my_application: + one: Do you really want to remove this application? This will revoke one token active for it. + other: Do you really want to remove this application? This will revoke %{count} tokens active for it. authorization_error: Παρουσιάστηκε ένα σφάλμα εξουσιοδότησης. - revoke_my_application_confirmation: Είστε βέβαιοι ότι θέλετε να αφαιρέσετε αυτή την εφαρμογή; Αυτό θα ανακαλέσει %{token_count} που είναι ενεργά για αυτή. my_registered_applications: Καταγεγραμμένες εφαρμογές OAuth oauth_client: urn_connection_status: diff --git a/config/locales/crowdin/eo.yml b/config/locales/crowdin/eo.yml index ad987e433b7..94d179c28c0 100644 --- a/config/locales/crowdin/eo.yml +++ b/config/locales/crowdin/eo.yml @@ -419,7 +419,8 @@ eo: error_special_characters: Special characters not allowed error_not_fully_uppercased: Must be uppercase error_in_use: Already in use as another project's active handle - error_reserved: Reserved by another project's handle history + error_used_in_past: Reserved by another project's handle history + error_reserved_by_system: Reserved as a system keyword error_unknown: Needs manual review remaining_projects: one: "... 1 more project" @@ -460,8 +461,12 @@ eo: ignore: Ignore changes save: Save changes and continue role_selector: + title: Select roles label: 'Role: %{role}' no_role: Select role + roles: + one: One role selected + other: "%{count} roles selected" blankslate: title: No status transitions configured description: Add statuses to start configuring workflows for this role @@ -1110,6 +1115,8 @@ eo: no_results_title_text: Nun estas neniu novaĵo por informi. no_results_content_text: Aldoni novan eron roles: + edit: + default_for_new_projects_warning: 'This role is configured as the default role given to non-admin users who create a project. Do not remove the following permissions, otherwise project creators will be unable to complete the setup of their newly created projects:' permissions: section_check_all_label: Assign all %{module} permissions section_uncheck_all_label: Unassign all %{module} permissions @@ -2000,6 +2007,29 @@ eo: type: Tipo version: Versio watcher: Atentanto + ordered_persisted_query_entity: + persisted_query: Persisted query + entity: Entity + position: Position + persisted_query: + name: Name + views: Views + filters: Filters + orders: Orders + selects: Selects + persisted_view: + name: Name + query: Query + parent: Parent view + public: Public + user_card_view: + secondary_info: Secondary info + show_status_badge: Show status badge + show_email: Show email + tag_source: Tag source + tag_limit: Tag limit + card_size: Card size + columns_per_row: Columns per row errors: messages: accepted: devas esti akceptita. @@ -2517,6 +2547,7 @@ eo: unsupported_storage_type: is not a supported storage type. storage_error: There was an error with the storage connection. invalid_input: The input is invalid. + invalid_child_for_parent: is not allowed as a parent for this view type. activity: item: created_by_on: created by %{user} on %{datetime} @@ -3391,6 +3422,26 @@ eo: general_text_false: malvero gui_validation_error: 1 eraro gui_validation_error_plural: "%{count} eraroj" + health_reports: + report_component: + checks: + failures: + one: "%{count} check failed" + other: "%{count} checks failed" + success: All checks passed + warnings: + one: "%{count} check returned a warning" + other: "%{count} checks returned a warning" + summary: + failure: Some checks failed and the system does not work as expected. + success: All connections and systems are working as expected. + warning: Some checks returned a warning. This can lead to unexpected behaviour. + result_component: + status: + failed: Failed + passed: Passed + skipped: Skipped + warning: Warning homescreen: additional: projects: Pli novaj videblaj projektoj en tiu ĉi loko. @@ -3692,6 +3743,7 @@ eo: label_age: Aĝo label_ago: tagoj antaŭe label_all: ĉiuj + label_all_uppercase: All label_all_time: ĉiam label_all_words: Ĉiuj vortoj label_all_open_wps: Ĉio malfermita @@ -4219,6 +4271,7 @@ eo: label_role_new: New role label_role_grantable: Grantable role label_role_plural: Roloj + label_role_missing_permissions: "%{role} (missing required permissions)" label_role_search: Assign role to new members label_scm: SCM label_scroll_left: Scroll left @@ -4445,7 +4498,7 @@ eo: you_have: You have logo_alt_text: Logo mention: - subject: "%{user_name} mentioned you in #%{id} - %{subject}" + subject: "%{user_name} mentioned you in %{id} - %{subject}" notification: center: To notification center see_in_center: See comment in notification center @@ -4483,7 +4536,7 @@ eo: allowed_actions_html: 'You have the following permissions on this work package: %{allowed_actions}. This can change depending on your project role and permissions.' create_account: To access this work package, you will need to create and activate an account on %{instance}. open_work_package: Open work package - subject: 'Work package #%{id} was shared with you' + subject: Work package %{id} was shared with you enterprise_text: Share work packages with users who are not members of the project. summary: user: "%{user} shared a work package with you with %{role_rights} rights" @@ -4694,6 +4747,18 @@ eo: text_getting_started_description: Get a quick overview of project management and team collaboration with OpenProject. You can restart this video from the help menu. welcome: Welcome to %{app_title} select_language: Please select your language + open_project: + common: + work_package_card_component: + menu: + label_actions: Work package actions + work_package_card_list_component: + header: + label_actions: Open menu + label_work_package_count: + zero: No work packages + one: "%{count} work package" + other: "%{count} work packages" permission_add_work_package_comments: Add comments permission_add_work_packages: Add work packages permission_add_messages: Post messages @@ -4711,7 +4776,6 @@ eo: permission_add_work_package_watchers: Add watchers permission_assign_versions: Assign versions permission_browse_repository: Read-only access to repository (browse and checkout) - permission_change_wiki_parent_page: Change parent wiki page permission_change_work_package_status: Change work package status permission_change_work_package_status_explanation: Allows changing status without Edit work packages permission permission_comment_news: Comment news @@ -4726,8 +4790,6 @@ eo: permission_delete_own_messages: Delete own messages permission_delete_reportings: Delete reportings permission_delete_timelines: Delete timelines - permission_delete_wiki_pages: Delete wiki pages - permission_delete_wiki_pages_attachments: Delete attachments permission_edit_work_package_comments: Moderate comments permission_edit_work_package_comments_explanation: 'Caution: Users with this permission are able to edit anyone''s comment.' permission_edit_work_packages: Edit work packages @@ -4747,12 +4809,10 @@ eo: permission_edit_wiki_pages: Edit wiki pages permission_export_work_packages: Export work packages permission_export_projects: Export projects - permission_export_wiki_pages: Export wiki pages permission_invite_members_by_email: Invite members by email permission_invite_members_by_email_explanation: 'Allows users to invite new members by email. Invited users will receive an email with a link to set their password and activate their account. Depends on the permission to manage members ' - permission_list_attachments: List attachments permission_log_own_time: Log own time permission_log_time: Log time for other users permission_manage_forums: Manage forums @@ -4767,7 +4827,6 @@ eo: permission_manage_subtasks: Manage work package hierarchies permission_manage_versions: Manage versions permission_manage_wiki: Manage wiki - permission_manage_wiki_menu: Manage wiki menu permission_manage_own_working_times: Manage own working times permission_manage_own_working_times_explanation: 'Allows users to manage their own working times, and personal non-working days. @@ -4777,8 +4836,6 @@ eo: ' permission_move_work_packages: Move work packages - permission_protect_wiki_pages: Protect wiki pages - permission_rename_wiki_pages: Rename wiki pages permission_save_queries: Save views permission_search_project: Search project permission_select_custom_fields: Select custom fields @@ -5157,6 +5214,9 @@ eo: setting_mail_handler_body_delimiter_regex: Truncate emails matching this regex setting_mail_handler_ignore_filenames: Ignored mail attachments setting_new_project_user_role_id: Role given to a non-admin user who creates a project + setting_new_project_user_role_id_caption: 'Only roles that include the permissions to edit project attributes and to manage members are listed, so that the creator can complete the project setup. + + ' setting_new_project_send_confirmation_email: Send notification to author when creating a new project setting_new_project_notification_text: Notification text setting_password_active_rules: Password requirements @@ -5573,6 +5633,7 @@ eo: text_project_identifier_format: Must start with a lowercase letter. Only lowercase letters (a-z), numbers, dashes and underscores are allowed. text_reassign: 'Reassign to work package:' text_regexp_multiline: The regex is applied in a multi-line mode. e.g., ^---\s+ + text_rename_wiki_page: Rename wiki page text_repository_usernames_mapping: |- Select or update the OpenProject user mapped to each username found in the repository log. Users with the same OpenProject and repository username or email are automatically mapped. @@ -6006,9 +6067,6 @@ eo: scopes: Permesoj successful_application_revocation: Revocation of application %{application_name} successful. none_given: No OAuth applications have been granted access to your user account. - x_active_tokens: - one: one active token - other: "%{count} active token" flows: authorization_code: Authorization code flow client_credentials: Client credentials flow @@ -6018,8 +6076,10 @@ eo: client_credentials_impersonation_html: 'By default, OpenProject provides OAuth 2.0 authorization via %{authorization_code_flow_link}. You can optionally enable %{client_credentials_flow_link}, but you must provide a user on whose behalf requests will be performed. ' + confirm_revoke_my_application: + one: Do you really want to remove this application? This will revoke one token active for it. + other: Do you really want to remove this application? This will revoke %{count} tokens active for it. authorization_error: An authorization error has occurred. - revoke_my_application_confirmation: Do you really want to remove this application? This will revoke %{token_count} active for it. my_registered_applications: Registered OAuth applications oauth_client: urn_connection_status: diff --git a/config/locales/crowdin/es.yml b/config/locales/crowdin/es.yml index e62dbcae6dc..ce80c999acb 100644 --- a/config/locales/crowdin/es.yml +++ b/config/locales/crowdin/es.yml @@ -419,7 +419,8 @@ es: error_special_characters: No se permiten caracteres especiales error_not_fully_uppercased: Debe estar en mayúsculas error_in_use: Ya está en uso como identificador activo de otro proyecto - error_reserved: Reservado por el historial de identificadores de otro proyecto + error_used_in_past: Reservado por el historial de identificadores de otro proyecto + error_reserved_by_system: Reservado como palabra clave del sistema error_unknown: Necesita revisión manual remaining_projects: one: "... 1 proyecto más" @@ -460,8 +461,12 @@ es: ignore: Descartar cambios save: Guardar cambios y continuar role_selector: + title: Seleccionar roles label: 'Rol: %{role}' no_role: Seleccionar rol + roles: + one: Un rol seleccionado + other: "%{count} roles seleccionados" blankslate: title: No hay transiciones de estado configuradas description: Añade estados para empezar a configurar los flujos de trabajo de este rol @@ -1107,6 +1112,8 @@ es: no_results_title_text: No hay noticias sobre las que informar por el momento. no_results_content_text: Añadir un elemento de noticias roles: + edit: + default_for_new_projects_warning: 'Este rol está configurado como el rol predeterminado que se asigna a los usuarios que no son administradores y que crean un proyecto. No elimine los siguientes permisos, ya que, de lo contrario, los creadores de proyectos no podrán completar la configuración de los proyectos que acaben de crear:' permissions: section_check_all_label: Asignar todos los permisos de %{module} section_uncheck_all_label: Quitar todos los permisos de %{module} @@ -1448,7 +1455,7 @@ es: automatic_with_children: Fechas determinadas por paquetes de trabajo secundarios. automatic_with_predecessor: La fecha de inicio la fija un predecesor. manual_mobile: Programado manualmente. - manually_scheduled: Programado manualmente. No afectadas por relaciones. + manually_scheduled: Programado manualmente. Fechas no afectadas por relaciones. blankslate: title: Sin predecesores description: Para activar la programación automática, este paquete de trabajo debe tener al menos un predecesor. Entonces se programará automáticamente para que comience después del predecesor más cercano. @@ -1995,6 +2002,29 @@ es: type: Tipo version: Versión watcher: Observador + ordered_persisted_query_entity: + persisted_query: Consulta persistente + entity: Entidad + position: Posición + persisted_query: + name: Nombre + views: Visualizaciones + filters: Filtros + orders: Pedidos + selects: Selecciona + persisted_view: + name: Nombre + query: Consulta + parent: Vista principal + public: Público + user_card_view: + secondary_info: Información secundaria + show_status_badge: Mostrar insignia de estado + show_email: Mostrar correo + tag_source: Fuente de etiqueta + tag_limit: Límite de etiquetas + card_size: Tamaño de tarjeta + columns_per_row: Columnas por fila errors: messages: accepted: debe ser aceptado. @@ -2510,6 +2540,7 @@ es: unsupported_storage_type: no es un tipo de almacenamiento compatible. storage_error: Se ha producido un error en la conexión de almacenamiento. invalid_input: La entrada no es válida. + invalid_child_for_parent: no está permitido como elemento principal para este tipo de vista. activity: item: created_by_on: creado por %{user} el %{datetime} @@ -3382,6 +3413,26 @@ es: general_text_false: falso gui_validation_error: 1 error gui_validation_error_plural: errores %{count} + health_reports: + report_component: + checks: + failures: + one: "%{count} comprobación fallida" + other: "%{count} comprobaciones fallidas" + success: Todas las comprobaciones superadas + warnings: + one: "%{count} comprobación devolvió una advertencia" + other: "%{count} comprobaciones devolvieron una advertencia" + summary: + failure: Algunas comprobaciones han fallado y el sistema no funciona como se esperaba. + success: Todas las conexiones y sistemas funcionan según lo previsto. + warning: Algunas comprobaciones devolvieron una advertencia. Esto puede dar lugar a un comportamiento inesperado. + result_component: + status: + failed: Error + passed: Aprobado + skipped: Omitido + warning: Alerta homescreen: additional: projects: Projectos visibles mas recientes en esta instancia. @@ -3683,6 +3734,7 @@ es: label_age: Edad label_ago: días antes label_all: todos + label_all_uppercase: Todos label_all_time: todo el tiempo label_all_words: Todas las palabras label_all_open_wps: Todo abierto @@ -4210,6 +4262,7 @@ es: label_role_new: Nuevo rol label_role_grantable: Rol otorgable label_role_plural: Perfiles + label_role_missing_permissions: "%{role} (faltan permisos necesarios)" label_role_search: Asignar rol a nuevos miembros label_scm: SCM label_scroll_left: Desplazar hacia la izquierda @@ -4436,7 +4489,7 @@ es: you_have: Tiene logo_alt_text: Logotipo mention: - subject: "%{user_name} le mencionó en %{id}: %{subject}" + subject: "%{user_name} le mencionó en %{id} - %{subject}" notification: center: Al centro de notificaciones see_in_center: Ver comentario en el centro de notificaciones @@ -4474,7 +4527,7 @@ es: allowed_actions_html: 'Tiene los siguientes permisos sobre este paquete de trabajo: %{allowed_actions}. Esto puede cambiar dependiendo de su rol en el proyecto y de sus permisos.' create_account: 'Para acceder a este paquete de trabajo necesitará crear y activar una cuenta en %{instance}. ' open_work_package: Abrir paquete de trabajo - subject: 'Paquete de trabajo #%{id} fue compartido contigo' + subject: El paquete de trabajo %{id} fue compartido con usted enterprise_text: Compartir paquetes de trabajo con usuarios que no son miembros del proyecto. summary: user: "%{user} ha compartido un paquete de trabajo contigo con permisos de %{role_rights}" @@ -4685,6 +4738,18 @@ es: text_getting_started_description: Obtenga un resumen rápido sobre la gestión de proyectos y la colaboración en equipo con OpenProject. Puedes volver a ver este video des del menú de ayuda. welcome: Bienvenido a %{app_title} select_language: Seleccione su idioma + open_project: + common: + work_package_card_component: + menu: + label_actions: Acciones del paquete de trabajo + work_package_card_list_component: + header: + label_actions: Abrir menú + label_work_package_count: + zero: No hay paquetes de trabajo + one: "%{count} paquete de trabajo" + other: "%{count} paquetes de trabajo" permission_add_work_package_comments: Añadir comentarios permission_add_work_packages: Añadir paquetes de trabajo permission_add_messages: Publicar mensajes @@ -4702,7 +4767,6 @@ es: permission_add_work_package_watchers: Agregar observadores permission_assign_versions: Asignar versiones permission_browse_repository: Permiso de solo lectura sobre el repositorio (Navegación y checkout) - permission_change_wiki_parent_page: Cambiar wiki pagina madre permission_change_work_package_status: Cambiar el estado del paquete de trabajo permission_change_work_package_status_explanation: Permite cambiar el estado sin el permiso Editar paquetes de trabajo permission_comment_news: Comentar noticias @@ -4717,8 +4781,6 @@ es: permission_delete_own_messages: Borrar los mensajes propios permission_delete_reportings: Eliminar reportes permission_delete_timelines: Eliminar cronogramas - permission_delete_wiki_pages: Eliminar wiki página - permission_delete_wiki_pages_attachments: Eliminar adjuntos permission_edit_work_package_comments: Moderar comentarios permission_edit_work_package_comments_explanation: 'Precaución: Los usuarios con este permiso pueden editar los comentarios de cualquier persona.' permission_edit_work_packages: Editar paquetes de trabajo @@ -4738,12 +4800,10 @@ es: permission_edit_wiki_pages: Editar wiki página permission_export_work_packages: Exportar Paquetes de Trabajo permission_export_projects: Exportar proyectos - permission_export_wiki_pages: Exportar wiki página permission_invite_members_by_email: Invitar a miembros por correo electrónico permission_invite_members_by_email_explanation: 'Permite a los usuarios invitar a nuevos miembros por correo electrónico. Los usuarios invitados recibirán un correo electrónico con un enlace para establecer su contraseña y activar su cuenta. Depende del permiso para gestionar miembros ' - permission_list_attachments: Lista archivos adjuntos permission_log_own_time: Registrar tiempo para uno mismo permission_log_time: Registrar tiempo para otros usuarios permission_manage_forums: Administrar foros @@ -4758,7 +4818,6 @@ es: permission_manage_subtasks: Administrar jerarquías de paquetes de trabajo permission_manage_versions: Administrar versiones permission_manage_wiki: Administrar wiki - permission_manage_wiki_menu: Administrar menú wiki permission_manage_own_working_times: Gestiona tu propio horario de trabajo permission_manage_own_working_times_explanation: 'Permite a los usuarios gestionar sus propios horarios de trabajo y sus días libres. @@ -4768,8 +4827,6 @@ es: ' permission_move_work_packages: Mover paquetes de trabajo - permission_protect_wiki_pages: Proteger páginas wiki - permission_rename_wiki_pages: Renombrar páginas wiki permission_save_queries: Guardar vistas permission_search_project: Buscar proyecto permission_select_custom_fields: Seleccionar campos personalizados @@ -5142,6 +5199,9 @@ es: setting_mail_handler_body_delimiter_regex: Truncar correos que coincidan con esta expresión regular setting_mail_handler_ignore_filenames: Archivos adjuntos de email ignorados setting_new_project_user_role_id: Papel ortorgado a usuario no administrador que crea un proyecto + setting_new_project_user_role_id_caption: 'Solo se muestran los roles que incluyen los permisos para editar los atributos del proyecto y gestionar a los miembros, de modo que el creador pueda completar la configuración del proyecto. + + ' setting_new_project_send_confirmation_email: Enviar notificación al autor al crear un nuevo proyecto setting_new_project_notification_text: Texto de la notificación setting_password_active_rules: Requisitos de la contraseña @@ -5556,6 +5616,7 @@ es: text_project_identifier_format: Debe empezar con una letra minúscula. Solo se permiten letras minúsculas (a-z), números, guiones y guiones bajos. text_reassign: 'Reasignar al paquete de trabajo:' text_regexp_multiline: La expresión regular se aplica en modo multilínea. Por ejemplo, ^---\s+ + text_rename_wiki_page: Renombrar página wiki text_repository_usernames_mapping: Seleccione o actualize el usuario de OpenProject asignado a cada nombre en el registro del repositorio. Los usuarios con el mismo nombre o email serán mapeados automáticamente. text_status_changed_by_changeset: Aplicado en el conjunto de cambios %{value}. text_table_difference_description: En esta tabla, se muestran %{entries} individuales. Puede ver la diferencia entre dos entradas cualesquiera seleccionando primero los cuadros de verificación adecuados en la tabla. Al hacer clic en el botón bajo la tabla, se muestran las diferencias. @@ -5987,9 +6048,6 @@ es: scopes: Permisos successful_application_revocation: Revocación con éxito de la aplicación %{application_name}. none_given: No se ha concedido el acceso a tu cuenta de usuario a las aplicaciones OAuth. - x_active_tokens: - one: un token activo - other: "%{count} token/s activo/s" flows: authorization_code: Flujo de código de autorización client_credentials: Flujo de credenciales del Cliente @@ -5999,8 +6057,10 @@ es: client_credentials_impersonation_html: 'Por defecto, OpenProject proporciona autorización a OAuth 2.0 a través de %{authorization_code_flow_link}. Puedes activar %{client_credentials_flow_link} de manera óptima, aunque necesitas aportar un usuario en cuya representación se harán las peticiones. ' + confirm_revoke_my_application: + one: "¿Seguro que quieres eliminar esta aplicación? Eso suspenderá un token activo para realizarse." + other: "¿Seguro que quieres eliminar esta aplicación? Eso suspenderá %{count} tokens activos para realizarse." authorization_error: Se ha generado un error de autorización. - revoke_my_application_confirmation: "¿Seguro que quieres eliminar esta aplicación? Eso suspenderá %{token_count} activos para realizarse." my_registered_applications: Aplicaciones OAuth Registradas oauth_client: urn_connection_status: diff --git a/config/locales/crowdin/et.yml b/config/locales/crowdin/et.yml index 11bb3f75bf2..cc262f4961b 100644 --- a/config/locales/crowdin/et.yml +++ b/config/locales/crowdin/et.yml @@ -419,7 +419,8 @@ et: error_special_characters: Special characters not allowed error_not_fully_uppercased: Must be uppercase error_in_use: Already in use as another project's active handle - error_reserved: Reserved by another project's handle history + error_used_in_past: Reserved by another project's handle history + error_reserved_by_system: Reserved as a system keyword error_unknown: Needs manual review remaining_projects: one: "... 1 more project" @@ -460,8 +461,12 @@ et: ignore: Ignore changes save: Save changes and continue role_selector: + title: Select roles label: 'Role: %{role}' no_role: Select role + roles: + one: One role selected + other: "%{count} roles selected" blankslate: title: No status transitions configured description: Add statuses to start configuring workflows for this role @@ -1110,6 +1115,8 @@ et: no_results_title_text: There is currently no news to report. no_results_content_text: Add a news item roles: + edit: + default_for_new_projects_warning: 'This role is configured as the default role given to non-admin users who create a project. Do not remove the following permissions, otherwise project creators will be unable to complete the setup of their newly created projects:' permissions: section_check_all_label: Assign all %{module} permissions section_uncheck_all_label: Unassign all %{module} permissions @@ -2000,6 +2007,29 @@ et: type: Tüüp version: Versioon watcher: Jälgija + ordered_persisted_query_entity: + persisted_query: Persisted query + entity: Entity + position: Position + persisted_query: + name: Name + views: Views + filters: Filters + orders: Orders + selects: Selects + persisted_view: + name: Name + query: Query + parent: Parent view + public: Public + user_card_view: + secondary_info: Secondary info + show_status_badge: Show status badge + show_email: Show email + tag_source: Tag source + tag_limit: Tag limit + card_size: Card size + columns_per_row: Columns per row errors: messages: accepted: must be accepted. @@ -2517,6 +2547,7 @@ et: unsupported_storage_type: is not a supported storage type. storage_error: There was an error with the storage connection. invalid_input: The input is invalid. + invalid_child_for_parent: is not allowed as a parent for this view type. activity: item: created_by_on: created by %{user} on %{datetime} @@ -3391,6 +3422,26 @@ et: general_text_false: väär gui_validation_error: 1 viga gui_validation_error_plural: "%{count} viga" + health_reports: + report_component: + checks: + failures: + one: "%{count} check failed" + other: "%{count} checks failed" + success: All checks passed + warnings: + one: "%{count} check returned a warning" + other: "%{count} checks returned a warning" + summary: + failure: Some checks failed and the system does not work as expected. + success: All connections and systems are working as expected. + warning: Some checks returned a warning. This can lead to unexpected behaviour. + result_component: + status: + failed: Failed + passed: Passed + skipped: Skipped + warning: Warning homescreen: additional: projects: Newest visible projects in this instance. @@ -3692,6 +3743,7 @@ et: label_age: Vanus label_ago: päeva tagasi label_all: kõik + label_all_uppercase: All label_all_time: kogu aeg label_all_words: Kõik sõnad label_all_open_wps: Kõik avatud @@ -4219,6 +4271,7 @@ et: label_role_new: Uus roll label_role_grantable: Grantable role label_role_plural: Rollid + label_role_missing_permissions: "%{role} (missing required permissions)" label_role_search: Assign role to new members label_scm: Lähtekoodi haldusvahendid label_scroll_left: Scroll left @@ -4445,7 +4498,7 @@ et: you_have: You have logo_alt_text: Logo mention: - subject: "%{user_name} mentioned you in #%{id} - %{subject}" + subject: "%{user_name} mentioned you in %{id} - %{subject}" notification: center: To notification center see_in_center: See comment in notification center @@ -4483,7 +4536,7 @@ et: allowed_actions_html: 'You have the following permissions on this work package: %{allowed_actions}. This can change depending on your project role and permissions.' create_account: To access this work package, you will need to create and activate an account on %{instance}. open_work_package: Open work package - subject: 'Work package #%{id} was shared with you' + subject: Work package %{id} was shared with you enterprise_text: Share work packages with users who are not members of the project. summary: user: "%{user} shared a work package with you with %{role_rights} rights" @@ -4692,6 +4745,18 @@ et: text_getting_started_description: Get a quick overview of project management and team collaboration with OpenProject. You can restart this video from the help menu. welcome: Welcome to %{app_title} select_language: Please select your language + open_project: + common: + work_package_card_component: + menu: + label_actions: Work package actions + work_package_card_list_component: + header: + label_actions: Open menu + label_work_package_count: + zero: No work packages + one: "%{count} work package" + other: "%{count} work packages" permission_add_work_package_comments: Lisa kommentaare permission_add_work_packages: Teemasid lisada permission_add_messages: Postitusi lisada @@ -4709,7 +4774,6 @@ et: permission_add_work_package_watchers: Jälgijaid lisada permission_assign_versions: Assign versions permission_browse_repository: Read-only access to repository (browse and checkout) - permission_change_wiki_parent_page: Muuta viki ülemlehti permission_change_work_package_status: Change work package status permission_change_work_package_status_explanation: Allows changing status without Edit work packages permission permission_comment_news: Uudiseid kommenteerida @@ -4724,8 +4788,6 @@ et: permission_delete_own_messages: Omi postitusi kustutada permission_delete_reportings: Teadaandeid kustutada permission_delete_timelines: Kustutada ajakavasid - permission_delete_wiki_pages: Kustutada vikilehti - permission_delete_wiki_pages_attachments: Kustutada manuseid permission_edit_work_package_comments: Moderate comments permission_edit_work_package_comments_explanation: 'Caution: Users with this permission are able to edit anyone''s comment.' permission_edit_work_packages: Teemasid muuta @@ -4745,12 +4807,10 @@ et: permission_edit_wiki_pages: Muuta vikilehti permission_export_work_packages: Ekspordi tööpakett permission_export_projects: Export projects - permission_export_wiki_pages: Eksportida vikilehti permission_invite_members_by_email: Invite members by email permission_invite_members_by_email_explanation: 'Allows users to invite new members by email. Invited users will receive an email with a link to set their password and activate their account. Depends on the permission to manage members ' - permission_list_attachments: Kuvada manuseid permission_log_own_time: Log own time permission_log_time: Log time for other users permission_manage_forums: Hallata foorumeid @@ -4765,7 +4825,6 @@ et: permission_manage_subtasks: Manage work package hierarchies permission_manage_versions: Halda versioone permission_manage_wiki: Halda vikit - permission_manage_wiki_menu: Halda viki menüüd permission_manage_own_working_times: Manage own working times permission_manage_own_working_times_explanation: 'Allows users to manage their own working times, and personal non-working days. @@ -4775,8 +4834,6 @@ et: ' permission_move_work_packages: Teemasid liigutada - permission_protect_wiki_pages: Kaitse viki lehekülgi - permission_rename_wiki_pages: Nimeta viki lehekülgi ümber permission_save_queries: Salvesta vaade permission_search_project: Otsi projekte permission_select_custom_fields: Vali kohandatud väli @@ -5155,6 +5212,9 @@ et: setting_mail_handler_body_delimiter_regex: Truncate emails matching this regex setting_mail_handler_ignore_filenames: Ignored mail attachments setting_new_project_user_role_id: Projekti looja vaikimisi roll oma loodud projektis + setting_new_project_user_role_id_caption: 'Only roles that include the permissions to edit project attributes and to manage members are listed, so that the creator can complete the project setup. + + ' setting_new_project_send_confirmation_email: Send notification to author when creating a new project setting_new_project_notification_text: Notification text setting_password_active_rules: Password requirements @@ -5569,6 +5629,7 @@ et: text_project_identifier_format: Must start with a lowercase letter. Only lowercase letters (a-z), numbers, dashes and underscores are allowed. text_reassign: 'Reassign to work package:' text_regexp_multiline: The regex is applied in a multi-line mode. e.g., ^---\s+ + text_rename_wiki_page: Rename wiki page text_repository_usernames_mapping: Seosta OpenProject kasutaja hoidlasse sissekannete tegijaga. Sama nime või e-postiga kasutajad seostatakse automaatselt. text_status_changed_by_changeset: Kehtestati toimikus %{value}. text_table_difference_description: In this table the single %{entries} are shown. You can view the difference between any two entries by first selecting the according checkboxes in the table. When clicking on the button below the table the differences are shown. @@ -6000,9 +6061,6 @@ et: scopes: Õigused successful_application_revocation: Revocation of application %{application_name} successful. none_given: No OAuth applications have been granted access to your user account. - x_active_tokens: - one: one active token - other: "%{count} active token" flows: authorization_code: Authorization code flow client_credentials: Client credentials flow @@ -6012,8 +6070,10 @@ et: client_credentials_impersonation_html: 'By default, OpenProject provides OAuth 2.0 authorization via %{authorization_code_flow_link}. You can optionally enable %{client_credentials_flow_link}, but you must provide a user on whose behalf requests will be performed. ' + confirm_revoke_my_application: + one: Do you really want to remove this application? This will revoke one token active for it. + other: Do you really want to remove this application? This will revoke %{count} tokens active for it. authorization_error: An authorization error has occurred. - revoke_my_application_confirmation: Do you really want to remove this application? This will revoke %{token_count} active for it. my_registered_applications: Registered OAuth applications oauth_client: urn_connection_status: diff --git a/config/locales/crowdin/eu.yml b/config/locales/crowdin/eu.yml index d9894576452..438bce9b44f 100644 --- a/config/locales/crowdin/eu.yml +++ b/config/locales/crowdin/eu.yml @@ -419,7 +419,8 @@ eu: error_special_characters: Special characters not allowed error_not_fully_uppercased: Must be uppercase error_in_use: Already in use as another project's active handle - error_reserved: Reserved by another project's handle history + error_used_in_past: Reserved by another project's handle history + error_reserved_by_system: Reserved as a system keyword error_unknown: Needs manual review remaining_projects: one: "... 1 more project" @@ -460,8 +461,12 @@ eu: ignore: Ignore changes save: Save changes and continue role_selector: + title: Select roles label: 'Role: %{role}' no_role: Select role + roles: + one: One role selected + other: "%{count} roles selected" blankslate: title: No status transitions configured description: Add statuses to start configuring workflows for this role @@ -1110,6 +1115,8 @@ eu: no_results_title_text: There is currently no news to report. no_results_content_text: Add a news item roles: + edit: + default_for_new_projects_warning: 'This role is configured as the default role given to non-admin users who create a project. Do not remove the following permissions, otherwise project creators will be unable to complete the setup of their newly created projects:' permissions: section_check_all_label: Assign all %{module} permissions section_uncheck_all_label: Unassign all %{module} permissions @@ -2000,6 +2007,29 @@ eu: type: Type version: Bertsioa watcher: Watcher + ordered_persisted_query_entity: + persisted_query: Persisted query + entity: Entity + position: Position + persisted_query: + name: Name + views: Views + filters: Filters + orders: Orders + selects: Selects + persisted_view: + name: Name + query: Query + parent: Parent view + public: Public + user_card_view: + secondary_info: Secondary info + show_status_badge: Show status badge + show_email: Show email + tag_source: Tag source + tag_limit: Tag limit + card_size: Card size + columns_per_row: Columns per row errors: messages: accepted: must be accepted. @@ -2517,6 +2547,7 @@ eu: unsupported_storage_type: is not a supported storage type. storage_error: There was an error with the storage connection. invalid_input: The input is invalid. + invalid_child_for_parent: is not allowed as a parent for this view type. activity: item: created_by_on: created by %{user} on %{datetime} @@ -3391,6 +3422,26 @@ eu: general_text_false: 'false' gui_validation_error: 1 error gui_validation_error_plural: "%{count} errors" + health_reports: + report_component: + checks: + failures: + one: "%{count} check failed" + other: "%{count} checks failed" + success: All checks passed + warnings: + one: "%{count} check returned a warning" + other: "%{count} checks returned a warning" + summary: + failure: Some checks failed and the system does not work as expected. + success: All connections and systems are working as expected. + warning: Some checks returned a warning. This can lead to unexpected behaviour. + result_component: + status: + failed: Failed + passed: Passed + skipped: Skipped + warning: Warning homescreen: additional: projects: Newest visible projects in this instance. @@ -3692,6 +3743,7 @@ eu: label_age: Age label_ago: days ago label_all: all + label_all_uppercase: All label_all_time: all time label_all_words: All words label_all_open_wps: All open @@ -4219,6 +4271,7 @@ eu: label_role_new: New role label_role_grantable: Grantable role label_role_plural: Roles + label_role_missing_permissions: "%{role} (missing required permissions)" label_role_search: Assign role to new members label_scm: SCM label_scroll_left: Scroll left @@ -4445,7 +4498,7 @@ eu: you_have: You have logo_alt_text: Logo mention: - subject: "%{user_name} mentioned you in #%{id} - %{subject}" + subject: "%{user_name} mentioned you in %{id} - %{subject}" notification: center: To notification center see_in_center: See comment in notification center @@ -4483,7 +4536,7 @@ eu: allowed_actions_html: 'You have the following permissions on this work package: %{allowed_actions}. This can change depending on your project role and permissions.' create_account: To access this work package, you will need to create and activate an account on %{instance}. open_work_package: Open work package - subject: 'Work package #%{id} was shared with you' + subject: Work package %{id} was shared with you enterprise_text: Share work packages with users who are not members of the project. summary: user: "%{user} shared a work package with you with %{role_rights} rights" @@ -4694,6 +4747,18 @@ eu: text_getting_started_description: Get a quick overview of project management and team collaboration with OpenProject. You can restart this video from the help menu. welcome: Welcome to %{app_title} select_language: Please select your language + open_project: + common: + work_package_card_component: + menu: + label_actions: Work package actions + work_package_card_list_component: + header: + label_actions: Open menu + label_work_package_count: + zero: No work packages + one: "%{count} work package" + other: "%{count} work packages" permission_add_work_package_comments: Add comments permission_add_work_packages: Add work packages permission_add_messages: Post messages @@ -4711,7 +4776,6 @@ eu: permission_add_work_package_watchers: Add watchers permission_assign_versions: Assign versions permission_browse_repository: Read-only access to repository (browse and checkout) - permission_change_wiki_parent_page: Change parent wiki page permission_change_work_package_status: Change work package status permission_change_work_package_status_explanation: Allows changing status without Edit work packages permission permission_comment_news: Comment news @@ -4726,8 +4790,6 @@ eu: permission_delete_own_messages: Delete own messages permission_delete_reportings: Delete reportings permission_delete_timelines: Delete timelines - permission_delete_wiki_pages: Delete wiki pages - permission_delete_wiki_pages_attachments: Delete attachments permission_edit_work_package_comments: Moderate comments permission_edit_work_package_comments_explanation: 'Caution: Users with this permission are able to edit anyone''s comment.' permission_edit_work_packages: Edit work packages @@ -4747,12 +4809,10 @@ eu: permission_edit_wiki_pages: Edit wiki pages permission_export_work_packages: Export work packages permission_export_projects: Export projects - permission_export_wiki_pages: Export wiki pages permission_invite_members_by_email: Invite members by email permission_invite_members_by_email_explanation: 'Allows users to invite new members by email. Invited users will receive an email with a link to set their password and activate their account. Depends on the permission to manage members ' - permission_list_attachments: List attachments permission_log_own_time: Log own time permission_log_time: Log time for other users permission_manage_forums: Manage forums @@ -4767,7 +4827,6 @@ eu: permission_manage_subtasks: Manage work package hierarchies permission_manage_versions: Manage versions permission_manage_wiki: Manage wiki - permission_manage_wiki_menu: Manage wiki menu permission_manage_own_working_times: Manage own working times permission_manage_own_working_times_explanation: 'Allows users to manage their own working times, and personal non-working days. @@ -4777,8 +4836,6 @@ eu: ' permission_move_work_packages: Move work packages - permission_protect_wiki_pages: Protect wiki pages - permission_rename_wiki_pages: Rename wiki pages permission_save_queries: Save views permission_search_project: Search project permission_select_custom_fields: Select custom fields @@ -5157,6 +5214,9 @@ eu: setting_mail_handler_body_delimiter_regex: Truncate emails matching this regex setting_mail_handler_ignore_filenames: Ignored mail attachments setting_new_project_user_role_id: Role given to a non-admin user who creates a project + setting_new_project_user_role_id_caption: 'Only roles that include the permissions to edit project attributes and to manage members are listed, so that the creator can complete the project setup. + + ' setting_new_project_send_confirmation_email: Send notification to author when creating a new project setting_new_project_notification_text: Notification text setting_password_active_rules: Password requirements @@ -5573,6 +5633,7 @@ eu: text_project_identifier_format: Must start with a lowercase letter. Only lowercase letters (a-z), numbers, dashes and underscores are allowed. text_reassign: 'Reassign to work package:' text_regexp_multiline: The regex is applied in a multi-line mode. e.g., ^---\s+ + text_rename_wiki_page: Rename wiki page text_repository_usernames_mapping: |- Select or update the OpenProject user mapped to each username found in the repository log. Users with the same OpenProject and repository username or email are automatically mapped. @@ -6006,9 +6067,6 @@ eu: scopes: Permissions successful_application_revocation: Revocation of application %{application_name} successful. none_given: No OAuth applications have been granted access to your user account. - x_active_tokens: - one: one active token - other: "%{count} active token" flows: authorization_code: Authorization code flow client_credentials: Client credentials flow @@ -6018,8 +6076,10 @@ eu: client_credentials_impersonation_html: 'By default, OpenProject provides OAuth 2.0 authorization via %{authorization_code_flow_link}. You can optionally enable %{client_credentials_flow_link}, but you must provide a user on whose behalf requests will be performed. ' + confirm_revoke_my_application: + one: Do you really want to remove this application? This will revoke one token active for it. + other: Do you really want to remove this application? This will revoke %{count} tokens active for it. authorization_error: An authorization error has occurred. - revoke_my_application_confirmation: Do you really want to remove this application? This will revoke %{token_count} active for it. my_registered_applications: Registered OAuth applications oauth_client: urn_connection_status: diff --git a/config/locales/crowdin/fa.yml b/config/locales/crowdin/fa.yml index 0ec65d1f713..9e79eb4a1f9 100644 --- a/config/locales/crowdin/fa.yml +++ b/config/locales/crowdin/fa.yml @@ -419,7 +419,8 @@ fa: error_special_characters: Special characters not allowed error_not_fully_uppercased: Must be uppercase error_in_use: Already in use as another project's active handle - error_reserved: Reserved by another project's handle history + error_used_in_past: Reserved by another project's handle history + error_reserved_by_system: Reserved as a system keyword error_unknown: Needs manual review remaining_projects: one: "... 1 more project" @@ -460,8 +461,12 @@ fa: ignore: Ignore changes save: Save changes and continue role_selector: + title: Select roles label: 'Role: %{role}' no_role: Select role + roles: + one: One role selected + other: "%{count} roles selected" blankslate: title: No status transitions configured description: Add statuses to start configuring workflows for this role @@ -1110,6 +1115,8 @@ fa: no_results_title_text: There is currently no news to report. no_results_content_text: Add a news item roles: + edit: + default_for_new_projects_warning: 'This role is configured as the default role given to non-admin users who create a project. Do not remove the following permissions, otherwise project creators will be unable to complete the setup of their newly created projects:' permissions: section_check_all_label: Assign all %{module} permissions section_uncheck_all_label: Unassign all %{module} permissions @@ -2000,6 +2007,29 @@ fa: type: نوع version: نسخه watcher: ناظر + ordered_persisted_query_entity: + persisted_query: Persisted query + entity: Entity + position: Position + persisted_query: + name: Name + views: Views + filters: Filters + orders: Orders + selects: Selects + persisted_view: + name: Name + query: Query + parent: Parent view + public: Public + user_card_view: + secondary_info: Secondary info + show_status_badge: Show status badge + show_email: Show email + tag_source: Tag source + tag_limit: Tag limit + card_size: Card size + columns_per_row: Columns per row errors: messages: accepted: must be accepted. @@ -2517,6 +2547,7 @@ fa: unsupported_storage_type: is not a supported storage type. storage_error: There was an error with the storage connection. invalid_input: The input is invalid. + invalid_child_for_parent: is not allowed as a parent for this view type. activity: item: created_by_on: created by %{user} on %{datetime} @@ -3391,6 +3422,26 @@ fa: general_text_false: 'false' gui_validation_error: 1 error gui_validation_error_plural: "%{count} errors" + health_reports: + report_component: + checks: + failures: + one: "%{count} check failed" + other: "%{count} checks failed" + success: All checks passed + warnings: + one: "%{count} check returned a warning" + other: "%{count} checks returned a warning" + summary: + failure: Some checks failed and the system does not work as expected. + success: All connections and systems are working as expected. + warning: Some checks returned a warning. This can lead to unexpected behaviour. + result_component: + status: + failed: Failed + passed: Passed + skipped: Skipped + warning: Warning homescreen: additional: projects: Newest visible projects in this instance. @@ -3692,6 +3743,7 @@ fa: label_age: Age label_ago: days ago label_all: all + label_all_uppercase: All label_all_time: all time label_all_words: All words label_all_open_wps: All open @@ -4219,6 +4271,7 @@ fa: label_role_new: New role label_role_grantable: Grantable role label_role_plural: نقش‌ها + label_role_missing_permissions: "%{role} (missing required permissions)" label_role_search: Assign role to new members label_scm: SCM label_scroll_left: Scroll left @@ -4445,7 +4498,7 @@ fa: you_have: You have logo_alt_text: Logo mention: - subject: "%{user_name} mentioned you in #%{id} - %{subject}" + subject: "%{user_name} mentioned you in %{id} - %{subject}" notification: center: To notification center see_in_center: See comment in notification center @@ -4483,7 +4536,7 @@ fa: allowed_actions_html: 'You have the following permissions on this work package: %{allowed_actions}. This can change depending on your project role and permissions.' create_account: To access this work package, you will need to create and activate an account on %{instance}. open_work_package: Open work package - subject: 'Work package #%{id} was shared with you' + subject: Work package %{id} was shared with you enterprise_text: Share work packages with users who are not members of the project. summary: user: "%{user} shared a work package with you with %{role_rights} rights" @@ -4694,6 +4747,18 @@ fa: text_getting_started_description: Get a quick overview of project management and team collaboration with OpenProject. You can restart this video from the help menu. welcome: Welcome to %{app_title} select_language: Please select your language + open_project: + common: + work_package_card_component: + menu: + label_actions: Work package actions + work_package_card_list_component: + header: + label_actions: Open menu + label_work_package_count: + zero: No work packages + one: "%{count} work package" + other: "%{count} work packages" permission_add_work_package_comments: Add comments permission_add_work_packages: Add work packages permission_add_messages: Post messages @@ -4711,7 +4776,6 @@ fa: permission_add_work_package_watchers: Add watchers permission_assign_versions: Assign versions permission_browse_repository: Read-only access to repository (browse and checkout) - permission_change_wiki_parent_page: Change parent wiki page permission_change_work_package_status: Change work package status permission_change_work_package_status_explanation: Allows changing status without Edit work packages permission permission_comment_news: Comment news @@ -4726,8 +4790,6 @@ fa: permission_delete_own_messages: Delete own messages permission_delete_reportings: Delete reportings permission_delete_timelines: Delete timelines - permission_delete_wiki_pages: Delete wiki pages - permission_delete_wiki_pages_attachments: Delete attachments permission_edit_work_package_comments: Moderate comments permission_edit_work_package_comments_explanation: 'Caution: Users with this permission are able to edit anyone''s comment.' permission_edit_work_packages: Edit work packages @@ -4747,12 +4809,10 @@ fa: permission_edit_wiki_pages: Edit wiki pages permission_export_work_packages: Export work packages permission_export_projects: Export projects - permission_export_wiki_pages: Export wiki pages permission_invite_members_by_email: Invite members by email permission_invite_members_by_email_explanation: 'Allows users to invite new members by email. Invited users will receive an email with a link to set their password and activate their account. Depends on the permission to manage members ' - permission_list_attachments: List attachments permission_log_own_time: Log own time permission_log_time: Log time for other users permission_manage_forums: Manage forums @@ -4767,7 +4827,6 @@ fa: permission_manage_subtasks: Manage work package hierarchies permission_manage_versions: Manage versions permission_manage_wiki: Manage wiki - permission_manage_wiki_menu: Manage wiki menu permission_manage_own_working_times: Manage own working times permission_manage_own_working_times_explanation: 'Allows users to manage their own working times, and personal non-working days. @@ -4777,8 +4836,6 @@ fa: ' permission_move_work_packages: Move work packages - permission_protect_wiki_pages: Protect wiki pages - permission_rename_wiki_pages: Rename wiki pages permission_save_queries: Save views permission_search_project: Search project permission_select_custom_fields: Select custom fields @@ -5157,6 +5214,9 @@ fa: setting_mail_handler_body_delimiter_regex: Truncate emails matching this regex setting_mail_handler_ignore_filenames: Ignored mail attachments setting_new_project_user_role_id: Role given to a non-admin user who creates a project + setting_new_project_user_role_id_caption: 'Only roles that include the permissions to edit project attributes and to manage members are listed, so that the creator can complete the project setup. + + ' setting_new_project_send_confirmation_email: Send notification to author when creating a new project setting_new_project_notification_text: Notification text setting_password_active_rules: Password requirements @@ -5573,6 +5633,7 @@ fa: text_project_identifier_format: Must start with a lowercase letter. Only lowercase letters (a-z), numbers, dashes and underscores are allowed. text_reassign: 'Reassign to work package:' text_regexp_multiline: The regex is applied in a multi-line mode. e.g., ^---\s+ + text_rename_wiki_page: Rename wiki page text_repository_usernames_mapping: |- Select or update the OpenProject user mapped to each username found in the repository log. Users with the same OpenProject and repository username or email are automatically mapped. @@ -6006,9 +6067,6 @@ fa: scopes: Permissions successful_application_revocation: Revocation of application %{application_name} successful. none_given: No OAuth applications have been granted access to your user account. - x_active_tokens: - one: one active token - other: "%{count} active token" flows: authorization_code: Authorization code flow client_credentials: Client credentials flow @@ -6018,8 +6076,10 @@ fa: client_credentials_impersonation_html: 'By default, OpenProject provides OAuth 2.0 authorization via %{authorization_code_flow_link}. You can optionally enable %{client_credentials_flow_link}, but you must provide a user on whose behalf requests will be performed. ' + confirm_revoke_my_application: + one: Do you really want to remove this application? This will revoke one token active for it. + other: Do you really want to remove this application? This will revoke %{count} tokens active for it. authorization_error: An authorization error has occurred. - revoke_my_application_confirmation: Do you really want to remove this application? This will revoke %{token_count} active for it. my_registered_applications: Registered OAuth applications oauth_client: urn_connection_status: diff --git a/config/locales/crowdin/fi.yml b/config/locales/crowdin/fi.yml index 4c459267bc8..a1d56e5c070 100644 --- a/config/locales/crowdin/fi.yml +++ b/config/locales/crowdin/fi.yml @@ -419,7 +419,8 @@ fi: error_special_characters: Special characters not allowed error_not_fully_uppercased: Must be uppercase error_in_use: Already in use as another project's active handle - error_reserved: Reserved by another project's handle history + error_used_in_past: Reserved by another project's handle history + error_reserved_by_system: Reserved as a system keyword error_unknown: Needs manual review remaining_projects: one: "... 1 more project" @@ -460,8 +461,12 @@ fi: ignore: Ignore changes save: Save changes and continue role_selector: + title: Select roles label: 'Role: %{role}' no_role: Select role + roles: + one: One role selected + other: "%{count} roles selected" blankslate: title: No status transitions configured description: Add statuses to start configuring workflows for this role @@ -1110,6 +1115,8 @@ fi: no_results_title_text: Tällä hetkellä ei ole uutisia. no_results_content_text: Lisää uutinen roles: + edit: + default_for_new_projects_warning: 'This role is configured as the default role given to non-admin users who create a project. Do not remove the following permissions, otherwise project creators will be unable to complete the setup of their newly created projects:' permissions: section_check_all_label: Assign all %{module} permissions section_uncheck_all_label: Unassign all %{module} permissions @@ -2000,6 +2007,29 @@ fi: type: Tyyppi version: Versio watcher: Seuraajat + ordered_persisted_query_entity: + persisted_query: Persisted query + entity: Entity + position: Position + persisted_query: + name: Name + views: Views + filters: Filters + orders: Orders + selects: Selects + persisted_view: + name: Name + query: Query + parent: Parent view + public: Public + user_card_view: + secondary_info: Secondary info + show_status_badge: Show status badge + show_email: Show email + tag_source: Tag source + tag_limit: Tag limit + card_size: Card size + columns_per_row: Columns per row errors: messages: accepted: täytyy olla hyväksytty. @@ -2515,6 +2545,7 @@ fi: unsupported_storage_type: is not a supported storage type. storage_error: There was an error with the storage connection. invalid_input: The input is invalid. + invalid_child_for_parent: is not allowed as a parent for this view type. activity: item: created_by_on: created by %{user} on %{datetime} @@ -3389,6 +3420,26 @@ fi: general_text_false: epätosi gui_validation_error: 1 virhe gui_validation_error_plural: "%{count} virhettä" + health_reports: + report_component: + checks: + failures: + one: "%{count} check failed" + other: "%{count} checks failed" + success: All checks passed + warnings: + one: "%{count} check returned a warning" + other: "%{count} checks returned a warning" + summary: + failure: Some checks failed and the system does not work as expected. + success: All connections and systems are working as expected. + warning: Some checks returned a warning. This can lead to unexpected behaviour. + result_component: + status: + failed: Failed + passed: Passed + skipped: Skipped + warning: Warning homescreen: additional: projects: Uusimmat projektit. @@ -3690,6 +3741,7 @@ fi: label_age: Ikä label_ago: päiviä sitten label_all: kaikki + label_all_uppercase: All label_all_time: koko ajalta label_all_words: kaikki sanat label_all_open_wps: Avoimet tehtävät @@ -4217,6 +4269,7 @@ fi: label_role_new: Uusi rooli label_role_grantable: Grantable role label_role_plural: Roolit + label_role_missing_permissions: "%{role} (missing required permissions)" label_role_search: Määritä rooli uusille jäsenille label_scm: SCM label_scroll_left: Scroll left @@ -4443,7 +4496,7 @@ fi: you_have: You have logo_alt_text: Logo mention: - subject: "%{user_name} mentioned you in #%{id} - %{subject}" + subject: "%{user_name} mentioned you in %{id} - %{subject}" notification: center: To notification center see_in_center: See comment in notification center @@ -4481,7 +4534,7 @@ fi: allowed_actions_html: 'You have the following permissions on this work package: %{allowed_actions}. This can change depending on your project role and permissions.' create_account: To access this work package, you will need to create and activate an account on %{instance}. open_work_package: Open work package - subject: 'Work package #%{id} was shared with you' + subject: Work package %{id} was shared with you enterprise_text: Share work packages with users who are not members of the project. summary: user: "%{user} shared a work package with you with %{role_rights} rights" @@ -4692,6 +4745,18 @@ fi: text_getting_started_description: Get a quick overview of project management and team collaboration with OpenProject. You can restart this video from the help menu. welcome: Welcome to %{app_title} select_language: Valitse kieli + open_project: + common: + work_package_card_component: + menu: + label_actions: Work package actions + work_package_card_list_component: + header: + label_actions: Open menu + label_work_package_count: + zero: No work packages + one: "%{count} work package" + other: "%{count} work packages" permission_add_work_package_comments: Add comments permission_add_work_packages: Lisää tehtävä permission_add_messages: Jätä viesti @@ -4709,7 +4774,6 @@ fi: permission_add_work_package_watchers: Lisää seuraajia permission_assign_versions: Assign versions permission_browse_repository: Selaa tietovarastoa - permission_change_wiki_parent_page: Vaihda ylätason wikisivu permission_change_work_package_status: Change work package status permission_change_work_package_status_explanation: Allows changing status without Edit work packages permission permission_comment_news: Kommentoi uutisia @@ -4724,8 +4788,6 @@ fi: permission_delete_own_messages: Poista omia viestejä permission_delete_reportings: Poista raportoinnit permission_delete_timelines: Poista aikajanat - permission_delete_wiki_pages: Poista wiki sivuja - permission_delete_wiki_pages_attachments: Poista liitteitä permission_edit_work_package_comments: Moderate comments permission_edit_work_package_comments_explanation: 'Caution: Users with this permission are able to edit anyone''s comment.' permission_edit_work_packages: Muokkaa tehtäviä @@ -4745,12 +4807,10 @@ fi: permission_edit_wiki_pages: Muokkaa wiki sivuja permission_export_work_packages: Vie tehtäviä permission_export_projects: Export projects - permission_export_wiki_pages: Vie wiki-sivuja permission_invite_members_by_email: Invite members by email permission_invite_members_by_email_explanation: 'Allows users to invite new members by email. Invited users will receive an email with a link to set their password and activate their account. Depends on the permission to manage members ' - permission_list_attachments: Listaa liitteet permission_log_own_time: Log own time permission_log_time: Log time for other users permission_manage_forums: Hallinnoi keskustelupalstaa @@ -4765,7 +4825,6 @@ fi: permission_manage_subtasks: Manage work package hierarchies permission_manage_versions: Hallinnoi versioita permission_manage_wiki: Hallinnoi wikiä - permission_manage_wiki_menu: Hallinnoi Wiki-valikkoa permission_manage_own_working_times: Manage own working times permission_manage_own_working_times_explanation: 'Allows users to manage their own working times, and personal non-working days. @@ -4775,8 +4834,6 @@ fi: ' permission_move_work_packages: Siirrä tehtäviä - permission_protect_wiki_pages: Suojaa wiki sivut - permission_rename_wiki_pages: Uudelleennimeä wiki sivuja permission_save_queries: Save views permission_search_project: Search project permission_select_custom_fields: Select custom fields @@ -5155,6 +5212,9 @@ fi: setting_mail_handler_body_delimiter_regex: Truncate emails matching this regex setting_mail_handler_ignore_filenames: Ignored mail attachments setting_new_project_user_role_id: Rooli joka annetaan projektin luojalle, joka ei ole hallinnoija (admin) + setting_new_project_user_role_id_caption: 'Only roles that include the permissions to edit project attributes and to manage members are listed, so that the creator can complete the project setup. + + ' setting_new_project_send_confirmation_email: Send notification to author when creating a new project setting_new_project_notification_text: Notification text setting_password_active_rules: Password requirements @@ -5569,6 +5629,7 @@ fi: text_project_identifier_format: Must start with a lowercase letter. Only lowercase letters (a-z), numbers, dashes and underscores are allowed. text_reassign: 'Reassign to work package:' text_regexp_multiline: The regex is applied in a multi-line mode. e.g., ^---\s+ + text_rename_wiki_page: Rename wiki page text_repository_usernames_mapping: |- Valitse päivittääksesi Redmine käyttäjä jokaiseen käyttäjään joka löytyy tietovaraston lokista. Käyttäjät joilla on sama Redmine ja tietovaraston käyttäjänimi tai sähköpostiosoite, yhdistetään automaattisesti. @@ -6002,9 +6063,6 @@ fi: scopes: Oikeudet successful_application_revocation: Revocation of application %{application_name} successful. none_given: No OAuth applications have been granted access to your user account. - x_active_tokens: - one: one active token - other: "%{count} active token" flows: authorization_code: Authorization code flow client_credentials: Client credentials flow @@ -6014,8 +6072,10 @@ fi: client_credentials_impersonation_html: 'By default, OpenProject provides OAuth 2.0 authorization via %{authorization_code_flow_link}. You can optionally enable %{client_credentials_flow_link}, but you must provide a user on whose behalf requests will be performed. ' + confirm_revoke_my_application: + one: Do you really want to remove this application? This will revoke one token active for it. + other: Do you really want to remove this application? This will revoke %{count} tokens active for it. authorization_error: An authorization error has occurred. - revoke_my_application_confirmation: Do you really want to remove this application? This will revoke %{token_count} active for it. my_registered_applications: Registered OAuth applications oauth_client: urn_connection_status: diff --git a/config/locales/crowdin/fil.yml b/config/locales/crowdin/fil.yml index 17ca835736c..32f6b21189d 100644 --- a/config/locales/crowdin/fil.yml +++ b/config/locales/crowdin/fil.yml @@ -419,7 +419,8 @@ fil: error_special_characters: Special characters not allowed error_not_fully_uppercased: Must be uppercase error_in_use: Already in use as another project's active handle - error_reserved: Reserved by another project's handle history + error_used_in_past: Reserved by another project's handle history + error_reserved_by_system: Reserved as a system keyword error_unknown: Needs manual review remaining_projects: one: "... 1 more project" @@ -460,8 +461,12 @@ fil: ignore: Ignore changes save: Save changes and continue role_selector: + title: Select roles label: 'Role: %{role}' no_role: Select role + roles: + one: One role selected + other: "%{count} roles selected" blankslate: title: No status transitions configured description: Add statuses to start configuring workflows for this role @@ -1110,6 +1115,8 @@ fil: no_results_title_text: Sa kasalukuyan ay walang mga balita para ma-ireport. no_results_content_text: Magdagdag ng bagong news item roles: + edit: + default_for_new_projects_warning: 'This role is configured as the default role given to non-admin users who create a project. Do not remove the following permissions, otherwise project creators will be unable to complete the setup of their newly created projects:' permissions: section_check_all_label: Assign all %{module} permissions section_uncheck_all_label: Unassign all %{module} permissions @@ -2000,6 +2007,29 @@ fil: type: Uri version: Bersyon watcher: Tagapagmasid + ordered_persisted_query_entity: + persisted_query: Persisted query + entity: Entity + position: Position + persisted_query: + name: Name + views: Views + filters: Filters + orders: Orders + selects: Selects + persisted_view: + name: Name + query: Query + parent: Parent view + public: Public + user_card_view: + secondary_info: Secondary info + show_status_badge: Show status badge + show_email: Show email + tag_source: Tag source + tag_limit: Tag limit + card_size: Card size + columns_per_row: Columns per row errors: messages: accepted: kailangang tanggapin. @@ -2517,6 +2547,7 @@ fil: unsupported_storage_type: is not a supported storage type. storage_error: There was an error with the storage connection. invalid_input: The input is invalid. + invalid_child_for_parent: is not allowed as a parent for this view type. activity: item: created_by_on: created by %{user} on %{datetime} @@ -3391,6 +3422,26 @@ fil: general_text_false: mali gui_validation_error: Isang mali gui_validation_error_plural: "%{count} mga mali" + health_reports: + report_component: + checks: + failures: + one: "%{count} check failed" + other: "%{count} checks failed" + success: All checks passed + warnings: + one: "%{count} check returned a warning" + other: "%{count} checks returned a warning" + summary: + failure: Some checks failed and the system does not work as expected. + success: All connections and systems are working as expected. + warning: Some checks returned a warning. This can lead to unexpected behaviour. + result_component: + status: + failed: Failed + passed: Passed + skipped: Skipped + warning: Warning homescreen: additional: projects: Pinakamabagong makikitang proyekto sa pagkakataong ito. @@ -3692,6 +3743,7 @@ fil: label_age: Edad label_ago: ang mga araw nakalipas label_all: lahat + label_all_uppercase: All label_all_time: sa lahat ng oras label_all_words: Lahat ng mga salita label_all_open_wps: All open @@ -4219,6 +4271,7 @@ fil: label_role_new: Bagong tungkulin label_role_grantable: Grantable role label_role_plural: Ang mga tungkulin + label_role_missing_permissions: "%{role} (missing required permissions)" label_role_search: Magtalaga ng tungkulin ss mga bagong miyembro label_scm: SCM label_scroll_left: Scroll left @@ -4445,7 +4498,7 @@ fil: you_have: You have logo_alt_text: Logo mention: - subject: "%{user_name} mentioned you in #%{id} - %{subject}" + subject: "%{user_name} mentioned you in %{id} - %{subject}" notification: center: To notification center see_in_center: See comment in notification center @@ -4483,7 +4536,7 @@ fil: allowed_actions_html: 'You have the following permissions on this work package: %{allowed_actions}. This can change depending on your project role and permissions.' create_account: To access this work package, you will need to create and activate an account on %{instance}. open_work_package: Open work package - subject: 'Work package #%{id} was shared with you' + subject: Work package %{id} was shared with you enterprise_text: Share work packages with users who are not members of the project. summary: user: "%{user} shared a work package with you with %{role_rights} rights" @@ -4696,6 +4749,18 @@ fil: text_getting_started_description: Get a quick overview of project management and team collaboration with OpenProject. You can restart this video from the help menu. welcome: Welcome to %{app_title} select_language: Please select your language + open_project: + common: + work_package_card_component: + menu: + label_actions: Work package actions + work_package_card_list_component: + header: + label_actions: Open menu + label_work_package_count: + zero: No work packages + one: "%{count} work package" + other: "%{count} work packages" permission_add_work_package_comments: Add comments permission_add_work_packages: Magdagdag ng mga work package permission_add_messages: Mga post na mensahe @@ -4713,7 +4778,6 @@ fil: permission_add_work_package_watchers: Magdagdag ng manunuod permission_assign_versions: Assign versions permission_browse_repository: Basahin-lamang nag-access sa respositoryo (browse at checkout) - permission_change_wiki_parent_page: Baguhin ang pahina ng magulang na wiki permission_change_work_package_status: Change work package status permission_change_work_package_status_explanation: Allows changing status without Edit work packages permission permission_comment_news: Mga komento ng balita @@ -4728,8 +4792,6 @@ fil: permission_delete_own_messages: Burahin ang mga sariling mensahe permission_delete_reportings: Burahin ang mga ulat permission_delete_timelines: Burahin ang mga timeline - permission_delete_wiki_pages: Burahin ang pahina g wiki - permission_delete_wiki_pages_attachments: Burahin ang paglalakip permission_edit_work_package_comments: Moderate comments permission_edit_work_package_comments_explanation: 'Caution: Users with this permission are able to edit anyone''s comment.' permission_edit_work_packages: I-edit ang mga work package @@ -4749,12 +4811,10 @@ fil: permission_edit_wiki_pages: I-edit ang mga work package permission_export_work_packages: I-export ang mga work package permission_export_projects: Export projects - permission_export_wiki_pages: I-edit ang mga work package permission_invite_members_by_email: Invite members by email permission_invite_members_by_email_explanation: 'Allows users to invite new members by email. Invited users will receive an email with a link to set their password and activate their account. Depends on the permission to manage members ' - permission_list_attachments: Listahan ng paglalakip permission_log_own_time: Log own time permission_log_time: Log time for other users permission_manage_forums: Pamahalain ang mga forum @@ -4769,7 +4829,6 @@ fil: permission_manage_subtasks: Manage work package hierarchies permission_manage_versions: Pamahalain ang mga bersyon permission_manage_wiki: Pamahalain ang wiki - permission_manage_wiki_menu: Pagpipilian ng pamahalaing wiki permission_manage_own_working_times: Manage own working times permission_manage_own_working_times_explanation: 'Allows users to manage their own working times, and personal non-working days. @@ -4779,8 +4838,6 @@ fil: ' permission_move_work_packages: Ilipat ang work package - permission_protect_wiki_pages: Protektahan ang mga wiki package - permission_rename_wiki_pages: Baguhin ang pangalan ng mga wiki na pahina permission_save_queries: Save views permission_search_project: Search project permission_select_custom_fields: Select custom fields @@ -5153,6 +5210,9 @@ fil: setting_mail_handler_body_delimiter_regex: Ang nga truncate email ay nagkakatugma sa regex na ito setting_mail_handler_ignore_filenames: Ignored mail attachments setting_new_project_user_role_id: Ibinigay na tungkulin para sa non-admin na gumagamit isa sa mga lumilikha ng proyekto + setting_new_project_user_role_id_caption: 'Only roles that include the permissions to edit project attributes and to manage members are listed, so that the creator can complete the project setup. + + ' setting_new_project_send_confirmation_email: Send notification to author when creating a new project setting_new_project_notification_text: Notification text setting_password_active_rules: Password requirements @@ -5569,6 +5629,7 @@ fil: text_project_identifier_format: Must start with a lowercase letter. Only lowercase letters (a-z), numbers, dashes and underscores are allowed. text_reassign: 'I-reassign sa work package:' text_regexp_multiline: Ang regex ay nakalagay sa multi-line mlde. hal., ^---\s+ + text_rename_wiki_page: Rename wiki page text_repository_usernames_mapping: |- Piliin o i-update ang OpenProject usrt naka-map sa bawat username nakita sa repositoryo log. Ang mga gumagamit sa kaparehong OpenProject at repositoryong username o ang email ay automatikong naka-map. @@ -6002,9 +6063,6 @@ fil: scopes: Mga pahintulot successful_application_revocation: Revocation of application %{application_name} successful. none_given: No OAuth applications have been granted access to your user account. - x_active_tokens: - one: one active token - other: "%{count} active token" flows: authorization_code: Authorization code flow client_credentials: Client credentials flow @@ -6014,8 +6072,10 @@ fil: client_credentials_impersonation_html: 'By default, OpenProject provides OAuth 2.0 authorization via %{authorization_code_flow_link}. You can optionally enable %{client_credentials_flow_link}, but you must provide a user on whose behalf requests will be performed. ' + confirm_revoke_my_application: + one: Do you really want to remove this application? This will revoke one token active for it. + other: Do you really want to remove this application? This will revoke %{count} tokens active for it. authorization_error: An authorization error has occurred. - revoke_my_application_confirmation: Do you really want to remove this application? This will revoke %{token_count} active for it. my_registered_applications: Registered OAuth applications oauth_client: urn_connection_status: diff --git a/config/locales/crowdin/fr.yml b/config/locales/crowdin/fr.yml index ec8c2f61fe9..112cc9fb3b8 100644 --- a/config/locales/crowdin/fr.yml +++ b/config/locales/crowdin/fr.yml @@ -419,7 +419,8 @@ fr: error_special_characters: Caractères spéciaux non autorisés error_not_fully_uppercased: Doit être en majuscules error_in_use: Déjà utilisé comme alias actif d'un autre projet - error_reserved: Réservé par l'historique des alias d'un autre projet + error_used_in_past: Réservé par l'historique des alias d'un autre projet + error_reserved_by_system: Réservé comme mot-clé du système error_unknown: Nécessite une vérification manuelle remaining_projects: one: "... 1 projet supplémentaire" @@ -460,8 +461,12 @@ fr: ignore: Ignorer les changements save: Enregistrer les modifications et continuer role_selector: + title: Sélectionner les rôles label: 'Rôle : %{role}' no_role: Sélectionner un rôle + roles: + one: One role selected + other: "%{count} roles selected" blankslate: title: Aucune transition de statut configurée description: Ajouter des statuts pour commencer à configurer des flux de travail pour ce rôle @@ -1110,6 +1115,8 @@ fr: no_results_title_text: Il n'y a actuellement aucune actualité à publier. no_results_content_text: Ajouter une actualité roles: + edit: + default_for_new_projects_warning: 'Ce rôle est configuré comme le rôle par défaut attribué aux utilisateurs non administrateurs qui créent un projet. Ne supprimez pas les autorisations suivantes, sinon les créateurs de projets ne pourront pas terminer la configuration de leurs projets nouvellement créés :' permissions: section_check_all_label: Attribuer toutes les autorisations %{module} section_uncheck_all_label: Désattribuer toutes les autorisations %{module} @@ -1993,6 +2000,29 @@ fr: type: Type version: Version watcher: Observateur + ordered_persisted_query_entity: + persisted_query: Requête persistante + entity: Entité + position: Position + persisted_query: + name: Nom + views: Vues + filters: Filtres + orders: Tris + selects: Sélections + persisted_view: + name: Nom + query: Requête + parent: Vue parente + public: Public + user_card_view: + secondary_info: Informations secondaires + show_status_badge: Afficher le badge de statut + show_email: Afficher l'adresse e-mail + tag_source: Source des étiquettes + tag_limit: Limite des étiquettes + card_size: Taille des cartes + columns_per_row: Colonne par ligne errors: messages: accepted: doi(ven)t être accepté(e)(s). @@ -2510,6 +2540,7 @@ fr: unsupported_storage_type: n'est pas un type de stockage pris en charge. storage_error: Une erreur s'est produite lors de la connexion à l'espace de stockage. invalid_input: L'entrée n'est pas valide. + invalid_child_for_parent: is not allowed as a parent for this view type. activity: item: created_by_on: créé par %{user} le %{datetime} @@ -3384,6 +3415,26 @@ fr: general_text_false: faux gui_validation_error: une erreur gui_validation_error_plural: "%{count} erreurs" + health_reports: + report_component: + checks: + failures: + one: "%{count} check failed" + other: "%{count} checks failed" + success: All checks passed + warnings: + one: "%{count} check returned a warning" + other: "%{count} checks returned a warning" + summary: + failure: Some checks failed and the system does not work as expected. + success: All connections and systems are working as expected. + warning: Some checks returned a warning. This can lead to unexpected behaviour. + result_component: + status: + failed: Failed + passed: Passed + skipped: Skipped + warning: Warning homescreen: additional: projects: Les projets visibles les plus récents de cette instance. @@ -3685,6 +3736,7 @@ fr: label_age: Âge label_ago: il y a label_all: tous + label_all_uppercase: All label_all_time: tout le temps label_all_words: Tous les mots label_all_open_wps: Tous les ouverts @@ -4212,6 +4264,7 @@ fr: label_role_new: Nouveau rôle label_role_grantable: Rôle admissible label_role_plural: Rôles + label_role_missing_permissions: "%{role} (permissions manquantes)" label_role_search: Assigner un rôle aux nouveaux membres label_scm: SCM label_scroll_left: Défilement vers la gauche @@ -4438,7 +4491,7 @@ fr: you_have: Vous avez logo_alt_text: Logo mention: - subject: "%{user_name} vous a mentionné dans #%{id} - %{subject}" + subject: "%{user_name} mentioned you in %{id} - %{subject}" notification: center: Vers le centre de notifications see_in_center: Voir le commentaire dans le centre de notifications @@ -4476,7 +4529,7 @@ fr: allowed_actions_html: 'Vous disposez des autorisations suivantes sur ce lot de travaux : %{allowed_actions}. Cela peut changer en fonction de votre rôle dans le projet et de vos autorisations.' create_account: Pour accéder à ce lot de travaux, vous aurez besoin de créer et activer un compte sur %{instance}. open_work_package: Ouvrir ce lot de travaux - subject: 'Le lot de travaux #%{id} a été partagé avec vous' + subject: Work package %{id} was shared with you enterprise_text: Partagez les lots de travaux avec des utilisateurs qui ne sont pas membres du projet. summary: user: "%{user} a partagé un lot de travaux avec vous avec les droits %{role_rights}" @@ -4687,6 +4740,18 @@ fr: text_getting_started_description: Obtenez un aperçu rapide de la gestion de projet et de la collaboration en équipe avec OpenProject. Vous pouvez redémarrer cette vidéo à partir du menu d'aide. welcome: Bienvenue sur %{app_title} select_language: Veuillez sélectionner votre langue + open_project: + common: + work_package_card_component: + menu: + label_actions: Actions du lot de travaux + work_package_card_list_component: + header: + label_actions: Open menu + label_work_package_count: + zero: No work packages + one: "%{count} work package" + other: "%{count} work packages" permission_add_work_package_comments: Ajouter des commentaires permission_add_work_packages: Ajouter des lots de travaux permission_add_messages: Poster des messages @@ -4704,7 +4769,6 @@ fr: permission_add_work_package_watchers: Ajouter des observateurs permission_assign_versions: Assigner les versions permission_browse_repository: Accès au dépôt en lecture seule (navigation et « checkout ») - permission_change_wiki_parent_page: Changer la page wiki parent permission_change_work_package_status: Modifier le statut du lot de travaux permission_change_work_package_status_explanation: Permet de modifier le statut sans avoir le droit de modifier les lots de travaux permission_comment_news: Commenter les actualités @@ -4719,8 +4783,6 @@ fr: permission_delete_own_messages: Supprimer ses propres messages permission_delete_reportings: Supprimer rapports permission_delete_timelines: Supprimer lignes du temps - permission_delete_wiki_pages: Supprimer des pages wiki - permission_delete_wiki_pages_attachments: Supprimer des pièces jointes permission_edit_work_package_comments: Modérer les commentaires permission_edit_work_package_comments_explanation: 'Attention : les utilisateurs disposant de cette autorisation peuvent modifier les commentaires de n''importe qui.' permission_edit_work_packages: Éditer des lots de travaux @@ -4740,12 +4802,10 @@ fr: permission_edit_wiki_pages: Éditer les pages wiki permission_export_work_packages: Exporter les lots de travaux permission_export_projects: Exporter des projets - permission_export_wiki_pages: Exporter les pages wiki permission_invite_members_by_email: Inviter des membres par e-mail permission_invite_members_by_email_explanation: 'Permet aux utilisateurs d''inviter de nouveaux membres par e-mail. Les utilisateurs invités recevront un e-mail contenant un lien leur permettant de définir leur mot de passe et d''activer leur compte. Cela dépend de l''autorisation de gérer les membres ' - permission_list_attachments: Lister les pièces jointes permission_log_own_time: Enregistrer son propre temps permission_log_time: Saisir le temps pour d'autres utilisateurs permission_manage_forums: Gérer les forums @@ -4760,7 +4820,6 @@ fr: permission_manage_subtasks: Gérer les hiérarchies de lots de travaux permission_manage_versions: Gérer les versions permission_manage_wiki: Gérer le wiki - permission_manage_wiki_menu: Gérer le menu Wiki permission_manage_own_working_times: Gérer son propre temps de travail permission_manage_own_working_times_explanation: 'Permet aux utilisateurs de gérer leur propre temps de travail et leurs jours de congé personnels. @@ -4770,8 +4829,6 @@ fr: ' permission_move_work_packages: Déplacer les Lots de travaux - permission_protect_wiki_pages: Protéger les pages wiki - permission_rename_wiki_pages: Renommer les pages wiki permission_save_queries: Enregistrer les vues permission_search_project: Rechercher un projet permission_select_custom_fields: Sélectionner les champs personnalisés @@ -5148,6 +5205,9 @@ fr: setting_mail_handler_body_delimiter_regex: Tronquer les e-mails correspondant à cette expression régulière setting_mail_handler_ignore_filenames: Pièces jointes du courrier ignorées setting_new_project_user_role_id: Rôle donné à un utilisateur non administrateur qui crée un projet + setting_new_project_user_role_id_caption: 'Seuls les rôles permettant de modifier les attributs du projet et de gérer les membres sont répertoriés, afin que le créateur puisse terminer la configuration du projet. + + ' setting_new_project_send_confirmation_email: Envoyer une notification à l'auteur lors de la création d'un nouveau projet setting_new_project_notification_text: Texte de la notification setting_password_active_rules: Exigences relatives au mot de passe @@ -5564,6 +5624,7 @@ fr: text_project_identifier_format: Doit commencer par une lettre minuscule. Seules les lettres minuscules (a-z), les chiffres, les tirets et les traits de soulignement sont autorisés. text_reassign: 'Réaffecter au lot de travaux :' text_regexp_multiline: L'expression régulière est appliquée en mode multi-ligne, e.g. ^---\\s+ + text_rename_wiki_page: Rename wiki page text_repository_usernames_mapping: |- Définir ou modifier les associations entre les utilisateurs d'OpenProject et les utilisateurs trouvés dans le dépôt. Les utilisateurs ayant des noms ou des adresses e-mail identiques sont automatiquement associés. @@ -5997,9 +6058,6 @@ fr: scopes: Autorisations successful_application_revocation: Révocation de l'application %{application_name} réussie. none_given: Aucune application OAuth n'a été autorisée à accéder à votre compte utilisateur. - x_active_tokens: - one: un jeton actif - other: "%{count} jetons actifs" flows: authorization_code: Flux de code d'autorisation client_credentials: Flux des informations d'identification client @@ -6009,8 +6067,10 @@ fr: client_credentials_impersonation_html: 'Par défaut, OpenProject fournit l''autorisation OAuth 2.0 via %{authorization_code_flow_link}. Vous pouvez activer optionnellement %{client_credentials_flow_link}, mais vous devez fournir un utilisateur avec lequel les requêtes de nom seront effectuées. ' + confirm_revoke_my_application: + one: Do you really want to remove this application? This will revoke one token active for it. + other: Do you really want to remove this application? This will revoke %{count} tokens active for it. authorization_error: Une erreur d'autorisation s'est produite. - revoke_my_application_confirmation: Voulez-vous vraiment supprimer cette application ? Ceci va révoquer %{token_count} actif pour elle. my_registered_applications: Applications OAuth enregistrées oauth_client: urn_connection_status: diff --git a/config/locales/crowdin/he.yml b/config/locales/crowdin/he.yml index 4fcfe308186..39d7e7d2e5f 100644 --- a/config/locales/crowdin/he.yml +++ b/config/locales/crowdin/he.yml @@ -431,7 +431,8 @@ he: error_special_characters: Special characters not allowed error_not_fully_uppercased: Must be uppercase error_in_use: Already in use as another project's active handle - error_reserved: Reserved by another project's handle history + error_used_in_past: Reserved by another project's handle history + error_reserved_by_system: Reserved as a system keyword error_unknown: Needs manual review remaining_projects: one: "... 1 more project" @@ -476,8 +477,14 @@ he: ignore: Ignore changes save: Save changes and continue role_selector: + title: Select roles label: 'Role: %{role}' no_role: Select role + roles: + one: One role selected + two: "%{count} roles selected" + many: "%{count} roles selected" + other: "%{count} roles selected" blankslate: title: No status transitions configured description: Add statuses to start configuring workflows for this role @@ -1140,6 +1147,8 @@ he: no_results_title_text: There is currently no news to report. no_results_content_text: להוסיף פריט חדשות roles: + edit: + default_for_new_projects_warning: 'This role is configured as the default role given to non-admin users who create a project. Do not remove the following permissions, otherwise project creators will be unable to complete the setup of their newly created projects:' permissions: section_check_all_label: Assign all %{module} permissions section_uncheck_all_label: Unassign all %{module} permissions @@ -2040,6 +2049,29 @@ he: type: סוג version: גירסה watcher: צופה + ordered_persisted_query_entity: + persisted_query: Persisted query + entity: Entity + position: Position + persisted_query: + name: Name + views: Views + filters: Filters + orders: Orders + selects: Selects + persisted_view: + name: Name + query: Query + parent: Parent view + public: Public + user_card_view: + secondary_info: Secondary info + show_status_badge: Show status badge + show_email: Show email + tag_source: Tag source + tag_limit: Tag limit + card_size: Card size + columns_per_row: Columns per row errors: messages: accepted: must be accepted. @@ -2593,6 +2625,7 @@ he: unsupported_storage_type: is not a supported storage type. storage_error: There was an error with the storage connection. invalid_input: The input is invalid. + invalid_child_for_parent: is not allowed as a parent for this view type. activity: item: created_by_on: created by %{user} on %{datetime} @@ -3513,6 +3546,30 @@ he: general_text_false: 'false' gui_validation_error: שגיאה אחת gui_validation_error_plural: "%{count} שגיאות" + health_reports: + report_component: + checks: + failures: + one: "%{count} check failed" + two: "%{count} checks failed" + many: "%{count} checks failed" + other: "%{count} checks failed" + success: All checks passed + warnings: + one: "%{count} check returned a warning" + two: "%{count} checks returned a warning" + many: "%{count} checks returned a warning" + other: "%{count} checks returned a warning" + summary: + failure: Some checks failed and the system does not work as expected. + success: All connections and systems are working as expected. + warning: Some checks returned a warning. This can lead to unexpected behaviour. + result_component: + status: + failed: Failed + passed: Passed + skipped: Skipped + warning: Warning homescreen: additional: projects: Newest visible projects in this instance. @@ -3814,6 +3871,7 @@ he: label_age: גיל label_ago: ימים לפני label_all: כל + label_all_uppercase: All label_all_time: כל הזמנים label_all_words: כל המילים label_all_open_wps: All open @@ -4341,6 +4399,7 @@ he: label_role_new: New role label_role_grantable: Grantable role label_role_plural: תפקידים + label_role_missing_permissions: "%{role} (missing required permissions)" label_role_search: Assign role to new members label_scm: SCM label_scroll_left: Scroll left @@ -4573,7 +4632,7 @@ he: you_have: You have logo_alt_text: Logo mention: - subject: "%{user_name} mentioned you in #%{id} - %{subject}" + subject: "%{user_name} mentioned you in %{id} - %{subject}" notification: center: To notification center see_in_center: See comment in notification center @@ -4613,7 +4672,7 @@ he: allowed_actions_html: 'You have the following permissions on this work package: %{allowed_actions}. This can change depending on your project role and permissions.' create_account: To access this work package, you will need to create and activate an account on %{instance}. open_work_package: Open work package - subject: 'Work package #%{id} was shared with you' + subject: Work package %{id} was shared with you enterprise_text: Share work packages with users who are not members of the project. summary: user: "%{user} shared a work package with you with %{role_rights} rights" @@ -4826,6 +4885,18 @@ he: text_getting_started_description: Get a quick overview of project management and team collaboration with OpenProject. You can restart this video from the help menu. welcome: Welcome to %{app_title} select_language: Please select your language + open_project: + common: + work_package_card_component: + menu: + label_actions: Work package actions + work_package_card_list_component: + header: + label_actions: Open menu + label_work_package_count: + zero: No work packages + one: "%{count} work package" + other: "%{count} work packages" permission_add_work_package_comments: Add comments permission_add_work_packages: Add work packages permission_add_messages: Post messages @@ -4843,7 +4914,6 @@ he: permission_add_work_package_watchers: Add watchers permission_assign_versions: Assign versions permission_browse_repository: Read-only access to repository (browse and checkout) - permission_change_wiki_parent_page: Change parent wiki page permission_change_work_package_status: Change work package status permission_change_work_package_status_explanation: Allows changing status without Edit work packages permission permission_comment_news: Comment news @@ -4858,8 +4928,6 @@ he: permission_delete_own_messages: Delete own messages permission_delete_reportings: Delete reportings permission_delete_timelines: Delete timelines - permission_delete_wiki_pages: Delete wiki pages - permission_delete_wiki_pages_attachments: Delete attachments permission_edit_work_package_comments: Moderate comments permission_edit_work_package_comments_explanation: 'Caution: Users with this permission are able to edit anyone''s comment.' permission_edit_work_packages: Edit work packages @@ -4879,12 +4947,10 @@ he: permission_edit_wiki_pages: Edit wiki pages permission_export_work_packages: Export work packages permission_export_projects: Export projects - permission_export_wiki_pages: ייצוא דפי wiki permission_invite_members_by_email: Invite members by email permission_invite_members_by_email_explanation: 'Allows users to invite new members by email. Invited users will receive an email with a link to set their password and activate their account. Depends on the permission to manage members ' - permission_list_attachments: רשימת קבצים מצורפים permission_log_own_time: Log own time permission_log_time: Log time for other users permission_manage_forums: ניהול פורומים @@ -4899,7 +4965,6 @@ he: permission_manage_subtasks: Manage work package hierarchies permission_manage_versions: Manage versions permission_manage_wiki: ניהול wiki - permission_manage_wiki_menu: Manage wiki menu permission_manage_own_working_times: Manage own working times permission_manage_own_working_times_explanation: 'Allows users to manage their own working times, and personal non-working days. @@ -4909,8 +4974,6 @@ he: ' permission_move_work_packages: Move work packages - permission_protect_wiki_pages: Protect wiki pages - permission_rename_wiki_pages: Rename wiki pages permission_save_queries: Save views permission_search_project: Search project permission_select_custom_fields: Select custom fields @@ -5289,6 +5352,9 @@ he: setting_mail_handler_body_delimiter_regex: Truncate emails matching this regex setting_mail_handler_ignore_filenames: Ignored mail attachments setting_new_project_user_role_id: Role given to a non-admin user who creates a project + setting_new_project_user_role_id_caption: 'Only roles that include the permissions to edit project attributes and to manage members are listed, so that the creator can complete the project setup. + + ' setting_new_project_send_confirmation_email: Send notification to author when creating a new project setting_new_project_notification_text: Notification text setting_password_active_rules: Password requirements @@ -5705,6 +5771,7 @@ he: text_project_identifier_format: Must start with a lowercase letter. Only lowercase letters (a-z), numbers, dashes and underscores are allowed. text_reassign: 'Reassign to work package:' text_regexp_multiline: The regex is applied in a multi-line mode. e.g., ^---\s+ + text_rename_wiki_page: Rename wiki page text_repository_usernames_mapping: |- Select or update the OpenProject user mapped to each username found in the repository log. Users with the same OpenProject and repository username or email are automatically mapped. @@ -6140,11 +6207,6 @@ he: scopes: Permissions successful_application_revocation: Revocation of application %{application_name} successful. none_given: No OAuth applications have been granted access to your user account. - x_active_tokens: - one: one active token - two: "%{count} active token" - many: "%{count} active token" - other: "%{count} active token" flows: authorization_code: Authorization code flow client_credentials: Client credentials flow @@ -6154,8 +6216,12 @@ he: client_credentials_impersonation_html: 'By default, OpenProject provides OAuth 2.0 authorization via %{authorization_code_flow_link}. You can optionally enable %{client_credentials_flow_link}, but you must provide a user on whose behalf requests will be performed. ' + confirm_revoke_my_application: + one: Do you really want to remove this application? This will revoke one token active for it. + two: Do you really want to remove this application? This will revoke %{count} tokens active for it. + many: Do you really want to remove this application? This will revoke %{count} tokens active for it. + other: Do you really want to remove this application? This will revoke %{count} tokens active for it. authorization_error: An authorization error has occurred. - revoke_my_application_confirmation: Do you really want to remove this application? This will revoke %{token_count} active for it. my_registered_applications: Registered OAuth applications oauth_client: urn_connection_status: diff --git a/config/locales/crowdin/hi.yml b/config/locales/crowdin/hi.yml index c64033aa60e..345faa57b55 100644 --- a/config/locales/crowdin/hi.yml +++ b/config/locales/crowdin/hi.yml @@ -419,7 +419,8 @@ hi: error_special_characters: Special characters not allowed error_not_fully_uppercased: Must be uppercase error_in_use: Already in use as another project's active handle - error_reserved: Reserved by another project's handle history + error_used_in_past: Reserved by another project's handle history + error_reserved_by_system: Reserved as a system keyword error_unknown: Needs manual review remaining_projects: one: "... 1 more project" @@ -460,8 +461,12 @@ hi: ignore: Ignore changes save: Save changes and continue role_selector: + title: Select roles label: 'Role: %{role}' no_role: Select role + roles: + one: One role selected + other: "%{count} roles selected" blankslate: title: No status transitions configured description: Add statuses to start configuring workflows for this role @@ -1110,6 +1115,8 @@ hi: no_results_title_text: There is currently no news to report. no_results_content_text: Add a news item roles: + edit: + default_for_new_projects_warning: 'This role is configured as the default role given to non-admin users who create a project. Do not remove the following permissions, otherwise project creators will be unable to complete the setup of their newly created projects:' permissions: section_check_all_label: Assign all %{module} permissions section_uncheck_all_label: Unassign all %{module} permissions @@ -2000,6 +2007,29 @@ hi: type: प्रकार version: संस्करण watcher: वॉचर + ordered_persisted_query_entity: + persisted_query: Persisted query + entity: Entity + position: Position + persisted_query: + name: Name + views: Views + filters: Filters + orders: Orders + selects: Selects + persisted_view: + name: Name + query: Query + parent: Parent view + public: Public + user_card_view: + secondary_info: Secondary info + show_status_badge: Show status badge + show_email: Show email + tag_source: Tag source + tag_limit: Tag limit + card_size: Card size + columns_per_row: Columns per row errors: messages: accepted: must be accepted. @@ -2517,6 +2547,7 @@ hi: unsupported_storage_type: is not a supported storage type. storage_error: There was an error with the storage connection. invalid_input: The input is invalid. + invalid_child_for_parent: is not allowed as a parent for this view type. activity: item: created_by_on: created by %{user} on %{datetime} @@ -3391,6 +3422,26 @@ hi: general_text_false: 'false' gui_validation_error: 1 error gui_validation_error_plural: "%{count} errors" + health_reports: + report_component: + checks: + failures: + one: "%{count} check failed" + other: "%{count} checks failed" + success: All checks passed + warnings: + one: "%{count} check returned a warning" + other: "%{count} checks returned a warning" + summary: + failure: Some checks failed and the system does not work as expected. + success: All connections and systems are working as expected. + warning: Some checks returned a warning. This can lead to unexpected behaviour. + result_component: + status: + failed: Failed + passed: Passed + skipped: Skipped + warning: Warning homescreen: additional: projects: Newest visible projects in this instance. @@ -3692,6 +3743,7 @@ hi: label_age: Age label_ago: दिन पहले label_all: सभी + label_all_uppercase: All label_all_time: हमेशा label_all_words: सभी शब्दों label_all_open_wps: सभी खुले @@ -4219,6 +4271,7 @@ hi: label_role_new: New role label_role_grantable: Grantable role label_role_plural: भूमिकाएं + label_role_missing_permissions: "%{role} (missing required permissions)" label_role_search: Assign role to new members label_scm: SCM label_scroll_left: Scroll left @@ -4445,7 +4498,7 @@ hi: you_have: You have logo_alt_text: Logo mention: - subject: "%{user_name} mentioned you in #%{id} - %{subject}" + subject: "%{user_name} mentioned you in %{id} - %{subject}" notification: center: To notification center see_in_center: See comment in notification center @@ -4483,7 +4536,7 @@ hi: allowed_actions_html: 'You have the following permissions on this work package: %{allowed_actions}. This can change depending on your project role and permissions.' create_account: To access this work package, you will need to create and activate an account on %{instance}. open_work_package: Open work package - subject: 'Work package #%{id} was shared with you' + subject: Work package %{id} was shared with you enterprise_text: Share work packages with users who are not members of the project. summary: user: "%{user} shared a work package with you with %{role_rights} rights" @@ -4694,6 +4747,18 @@ hi: text_getting_started_description: Get a quick overview of project management and team collaboration with OpenProject. You can restart this video from the help menu. welcome: Welcome to %{app_title} select_language: 'कृपया अपनी भाषा चुनें:' + open_project: + common: + work_package_card_component: + menu: + label_actions: Work package actions + work_package_card_list_component: + header: + label_actions: Open menu + label_work_package_count: + zero: No work packages + one: "%{count} work package" + other: "%{count} work packages" permission_add_work_package_comments: Add comments permission_add_work_packages: Add work packages permission_add_messages: Post messages @@ -4711,7 +4776,6 @@ hi: permission_add_work_package_watchers: Add watchers permission_assign_versions: Assign versions permission_browse_repository: Read-only access to repository (browse and checkout) - permission_change_wiki_parent_page: Change parent wiki page permission_change_work_package_status: Change work package status permission_change_work_package_status_explanation: Allows changing status without Edit work packages permission permission_comment_news: Comment news @@ -4726,8 +4790,6 @@ hi: permission_delete_own_messages: Delete own messages permission_delete_reportings: Delete reportings permission_delete_timelines: Delete timelines - permission_delete_wiki_pages: Delete wiki pages - permission_delete_wiki_pages_attachments: Delete attachments permission_edit_work_package_comments: Moderate comments permission_edit_work_package_comments_explanation: 'Caution: Users with this permission are able to edit anyone''s comment.' permission_edit_work_packages: Edit work packages @@ -4747,12 +4809,10 @@ hi: permission_edit_wiki_pages: Edit wiki pages permission_export_work_packages: Export work packages permission_export_projects: Export projects - permission_export_wiki_pages: Export wiki pages permission_invite_members_by_email: Invite members by email permission_invite_members_by_email_explanation: 'Allows users to invite new members by email. Invited users will receive an email with a link to set their password and activate their account. Depends on the permission to manage members ' - permission_list_attachments: List attachments permission_log_own_time: Log own time permission_log_time: Log time for other users permission_manage_forums: Manage forums @@ -4767,7 +4827,6 @@ hi: permission_manage_subtasks: Manage work package hierarchies permission_manage_versions: Manage versions permission_manage_wiki: Manage wiki - permission_manage_wiki_menu: Manage wiki menu permission_manage_own_working_times: Manage own working times permission_manage_own_working_times_explanation: 'Allows users to manage their own working times, and personal non-working days. @@ -4777,8 +4836,6 @@ hi: ' permission_move_work_packages: Move work packages - permission_protect_wiki_pages: Protect wiki pages - permission_rename_wiki_pages: Rename wiki pages permission_save_queries: दृश्य सहेजें permission_search_project: Search project permission_select_custom_fields: Select custom fields @@ -5157,6 +5214,9 @@ hi: setting_mail_handler_body_delimiter_regex: Truncate emails matching this regex setting_mail_handler_ignore_filenames: Ignored mail attachments setting_new_project_user_role_id: Role given to a non-admin user who creates a project + setting_new_project_user_role_id_caption: 'Only roles that include the permissions to edit project attributes and to manage members are listed, so that the creator can complete the project setup. + + ' setting_new_project_send_confirmation_email: Send notification to author when creating a new project setting_new_project_notification_text: Notification text setting_password_active_rules: Password requirements @@ -5573,6 +5633,7 @@ hi: text_project_identifier_format: Must start with a lowercase letter. Only lowercase letters (a-z), numbers, dashes and underscores are allowed. text_reassign: 'Reassign to work package:' text_regexp_multiline: The regex is applied in a multi-line mode. e.g., ^---\s+ + text_rename_wiki_page: Rename wiki page text_repository_usernames_mapping: |- Select or update the OpenProject user mapped to each username found in the repository log. Users with the same OpenProject and repository username or email are automatically mapped. @@ -6006,9 +6067,6 @@ hi: scopes: अनुमतियाँ successful_application_revocation: Revocation of application %{application_name} successful. none_given: No OAuth applications have been granted access to your user account. - x_active_tokens: - one: one active token - other: "%{count} active token" flows: authorization_code: Authorization code flow client_credentials: Client credentials flow @@ -6018,8 +6076,10 @@ hi: client_credentials_impersonation_html: 'By default, OpenProject provides OAuth 2.0 authorization via %{authorization_code_flow_link}. You can optionally enable %{client_credentials_flow_link}, but you must provide a user on whose behalf requests will be performed. ' + confirm_revoke_my_application: + one: Do you really want to remove this application? This will revoke one token active for it. + other: Do you really want to remove this application? This will revoke %{count} tokens active for it. authorization_error: An authorization error has occurred. - revoke_my_application_confirmation: Do you really want to remove this application? This will revoke %{token_count} active for it. my_registered_applications: Registered OAuth applications oauth_client: urn_connection_status: diff --git a/config/locales/crowdin/hr.yml b/config/locales/crowdin/hr.yml index e3b4866fc88..0260a7c7054 100644 --- a/config/locales/crowdin/hr.yml +++ b/config/locales/crowdin/hr.yml @@ -425,7 +425,8 @@ hr: error_special_characters: Special characters not allowed error_not_fully_uppercased: Must be uppercase error_in_use: Already in use as another project's active handle - error_reserved: Reserved by another project's handle history + error_used_in_past: Reserved by another project's handle history + error_reserved_by_system: Reserved as a system keyword error_unknown: Needs manual review remaining_projects: one: "... 1 more project" @@ -468,8 +469,13 @@ hr: ignore: Ignore changes save: Save changes and continue role_selector: + title: Select roles label: 'Role: %{role}' no_role: Select role + roles: + one: One role selected + few: "%{count} roles selected" + other: "%{count} roles selected" blankslate: title: No status transitions configured description: Add statuses to start configuring workflows for this role @@ -1125,6 +1131,8 @@ hr: no_results_title_text: Nema novih vijesti. no_results_content_text: Nova vijest roles: + edit: + default_for_new_projects_warning: 'This role is configured as the default role given to non-admin users who create a project. Do not remove the following permissions, otherwise project creators will be unable to complete the setup of their newly created projects:' permissions: section_check_all_label: Assign all %{module} permissions section_uncheck_all_label: Unassign all %{module} permissions @@ -2020,6 +2028,29 @@ hr: type: Tip version: Verzija watcher: Nadglednik + ordered_persisted_query_entity: + persisted_query: Persisted query + entity: Entity + position: Position + persisted_query: + name: Name + views: Views + filters: Filters + orders: Orders + selects: Selects + persisted_view: + name: Name + query: Query + parent: Parent view + public: Public + user_card_view: + secondary_info: Secondary info + show_status_badge: Show status badge + show_email: Show email + tag_source: Tag source + tag_limit: Tag limit + card_size: Card size + columns_per_row: Columns per row errors: messages: accepted: mora biti prihvaćeno. @@ -2553,6 +2584,7 @@ hr: unsupported_storage_type: is not a supported storage type. storage_error: There was an error with the storage connection. invalid_input: The input is invalid. + invalid_child_for_parent: is not allowed as a parent for this view type. activity: item: created_by_on: created by %{user} on %{datetime} @@ -3450,6 +3482,28 @@ hr: general_text_false: lažno gui_validation_error: 1 pogreška gui_validation_error_plural: "%{count} pogreški" + health_reports: + report_component: + checks: + failures: + one: "%{count} check failed" + few: "%{count} checks failed" + other: "%{count} checks failed" + success: All checks passed + warnings: + one: "%{count} check returned a warning" + few: "%{count} checks returned a warning" + other: "%{count} checks returned a warning" + summary: + failure: Some checks failed and the system does not work as expected. + success: All connections and systems are working as expected. + warning: Some checks returned a warning. This can lead to unexpected behaviour. + result_component: + status: + failed: Failed + passed: Passed + skipped: Skipped + warning: Warning homescreen: additional: projects: Najnoviji vidljivi projekti unutar ove instance. @@ -3751,6 +3805,7 @@ hr: label_age: Dob label_ago: dana ranije label_all: sve + label_all_uppercase: All label_all_time: sve vrijeme label_all_words: Sve riječi label_all_open_wps: Svi otvoreni @@ -4278,6 +4333,7 @@ hr: label_role_new: Nova rola label_role_grantable: Grantable role label_role_plural: Role + label_role_missing_permissions: "%{role} (missing required permissions)" label_role_search: Dodijeli uloge novim korisnicima label_scm: SCM label_scroll_left: Scroll left @@ -4507,7 +4563,7 @@ hr: you_have: You have logo_alt_text: Logo mention: - subject: "%{user_name} mentioned you in #%{id} - %{subject}" + subject: "%{user_name} mentioned you in %{id} - %{subject}" notification: center: To notification center see_in_center: See comment in notification center @@ -4546,7 +4602,7 @@ hr: allowed_actions_html: 'You have the following permissions on this work package: %{allowed_actions}. This can change depending on your project role and permissions.' create_account: To access this work package, you will need to create and activate an account on %{instance}. open_work_package: Open work package - subject: 'Work package #%{id} was shared with you' + subject: Work package %{id} was shared with you enterprise_text: Share work packages with users who are not members of the project. summary: user: "%{user} shared a work package with you with %{role_rights} rights" @@ -4758,6 +4814,18 @@ hr: text_getting_started_description: Get a quick overview of project management and team collaboration with OpenProject. You can restart this video from the help menu. welcome: Welcome to %{app_title} select_language: Please select your language + open_project: + common: + work_package_card_component: + menu: + label_actions: Work package actions + work_package_card_list_component: + header: + label_actions: Open menu + label_work_package_count: + zero: No work packages + one: "%{count} work package" + other: "%{count} work packages" permission_add_work_package_comments: Add comments permission_add_work_packages: Dodaj radne pakete permission_add_messages: Pošalji poruke @@ -4775,7 +4843,6 @@ hr: permission_add_work_package_watchers: Dodaj nadglednike permission_assign_versions: Assign versions permission_browse_repository: Read-only pristup repozitoriju (pregledavanje i provjera) - permission_change_wiki_parent_page: Promijeni nadređenu wiki stranicu permission_change_work_package_status: Change work package status permission_change_work_package_status_explanation: Allows changing status without Edit work packages permission permission_comment_news: Komentirajte vijest @@ -4790,8 +4857,6 @@ hr: permission_delete_own_messages: Obriši vlastite poruke permission_delete_reportings: Izbriši izvještaje permission_delete_timelines: Izbriši kronologiju - permission_delete_wiki_pages: Izbriši wiki stranice - permission_delete_wiki_pages_attachments: Izbriši priloge permission_edit_work_package_comments: Moderate comments permission_edit_work_package_comments_explanation: 'Caution: Users with this permission are able to edit anyone''s comment.' permission_edit_work_packages: Uredi radne pakete @@ -4811,12 +4876,10 @@ hr: permission_edit_wiki_pages: Uredi wiki stranice permission_export_work_packages: Izvez radnih paketa permission_export_projects: Export projects - permission_export_wiki_pages: Izvezi Wiki stranice permission_invite_members_by_email: Invite members by email permission_invite_members_by_email_explanation: 'Allows users to invite new members by email. Invited users will receive an email with a link to set their password and activate their account. Depends on the permission to manage members ' - permission_list_attachments: Izlistaj sve privitke permission_log_own_time: Log own time permission_log_time: Log time for other users permission_manage_forums: Upravljanje Forumima @@ -4831,7 +4894,6 @@ hr: permission_manage_subtasks: Manage work package hierarchies permission_manage_versions: Upravljanje verzijama permission_manage_wiki: Uredi wiki - permission_manage_wiki_menu: Upravljanje wiki izbornikom permission_manage_own_working_times: Manage own working times permission_manage_own_working_times_explanation: 'Allows users to manage their own working times, and personal non-working days. @@ -4841,8 +4903,6 @@ hr: ' permission_move_work_packages: Premjesti radne pakete - permission_protect_wiki_pages: Zaštiti wiki stranice - permission_rename_wiki_pages: Preimenuj wiki stranice permission_save_queries: Save views permission_search_project: Search project permission_select_custom_fields: Select custom fields @@ -5219,6 +5279,9 @@ hr: setting_mail_handler_body_delimiter_regex: Truncate emails matching this regex setting_mail_handler_ignore_filenames: Ignored mail attachments setting_new_project_user_role_id: Role given to a non-admin user who creates a project + setting_new_project_user_role_id_caption: 'Only roles that include the permissions to edit project attributes and to manage members are listed, so that the creator can complete the project setup. + + ' setting_new_project_send_confirmation_email: Send notification to author when creating a new project setting_new_project_notification_text: Notification text setting_password_active_rules: Password requirements @@ -5633,6 +5696,7 @@ hr: text_project_identifier_format: Must start with a lowercase letter. Only lowercase letters (a-z), numbers, dashes and underscores are allowed. text_reassign: 'Dodijeli radnom paketu:' text_regexp_multiline: The regex is applied in a multi-line mode. e.g., ^---\s+ + text_rename_wiki_page: Rename wiki page text_repository_usernames_mapping: |- Select or update the OpenProject user mapped to each username found in the repository log. Users with the same OpenProject and repository username or email are automatically mapped. @@ -6067,10 +6131,6 @@ hr: scopes: Dozvole successful_application_revocation: Revocation of application %{application_name} successful. none_given: No OAuth applications have been granted access to your user account. - x_active_tokens: - one: one active token - few: "%{count} active token" - other: "%{count} active token" flows: authorization_code: Authorization code flow client_credentials: Client credentials flow @@ -6080,8 +6140,11 @@ hr: client_credentials_impersonation_html: 'By default, OpenProject provides OAuth 2.0 authorization via %{authorization_code_flow_link}. You can optionally enable %{client_credentials_flow_link}, but you must provide a user on whose behalf requests will be performed. ' + confirm_revoke_my_application: + one: Do you really want to remove this application? This will revoke one token active for it. + few: Do you really want to remove this application? This will revoke %{count} tokens active for it. + other: Do you really want to remove this application? This will revoke %{count} tokens active for it. authorization_error: An authorization error has occurred. - revoke_my_application_confirmation: Do you really want to remove this application? This will revoke %{token_count} active for it. my_registered_applications: Registered OAuth applications oauth_client: urn_connection_status: diff --git a/config/locales/crowdin/hu.yml b/config/locales/crowdin/hu.yml index 3912002513d..67e7609cc6c 100644 --- a/config/locales/crowdin/hu.yml +++ b/config/locales/crowdin/hu.yml @@ -419,7 +419,8 @@ hu: error_special_characters: Special characters not allowed error_not_fully_uppercased: Must be uppercase error_in_use: Already in use as another project's active handle - error_reserved: Reserved by another project's handle history + error_used_in_past: Reserved by another project's handle history + error_reserved_by_system: Reserved as a system keyword error_unknown: Needs manual review remaining_projects: one: "... 1 more project" @@ -460,8 +461,12 @@ hu: ignore: Ignore changes save: Save changes and continue role_selector: + title: Select roles label: 'Role: %{role}' no_role: Select role + roles: + one: One role selected + other: "%{count} roles selected" blankslate: title: No status transitions configured description: Add statuses to start configuring workflows for this role @@ -1116,6 +1121,8 @@ hu: no_results_title_text: Nincs megjeleníthető hír. no_results_content_text: Hír hozzáadása roles: + edit: + default_for_new_projects_warning: 'This role is configured as the default role given to non-admin users who create a project. Do not remove the following permissions, otherwise project creators will be unable to complete the setup of their newly created projects:' permissions: section_check_all_label: Assign all %{module} permissions section_uncheck_all_label: Unassign all %{module} permissions @@ -2024,6 +2031,29 @@ hu: type: Típus version: Verzió watcher: Megfigyelő + ordered_persisted_query_entity: + persisted_query: Persisted query + entity: Entity + position: Position + persisted_query: + name: Name + views: Views + filters: Filters + orders: Orders + selects: Selects + persisted_view: + name: Name + query: Query + parent: Parent view + public: Public + user_card_view: + secondary_info: Secondary info + show_status_badge: Show status badge + show_email: Show email + tag_source: Tag source + tag_limit: Tag limit + card_size: Card size + columns_per_row: Columns per row errors: messages: accepted: el kell fogadni. @@ -2569,6 +2599,7 @@ hu: unsupported_storage_type: is not a supported storage type. storage_error: There was an error with the storage connection. invalid_input: The input is invalid. + invalid_child_for_parent: is not allowed as a parent for this view type. activity: item: created_by_on: created by %{user} on %{datetime} @@ -3453,6 +3484,26 @@ hu: general_text_false: hamis gui_validation_error: 1 hiba gui_validation_error_plural: "%{count} hiba" + health_reports: + report_component: + checks: + failures: + one: "%{count} check failed" + other: "%{count} checks failed" + success: All checks passed + warnings: + one: "%{count} check returned a warning" + other: "%{count} checks returned a warning" + summary: + failure: Some checks failed and the system does not work as expected. + success: All connections and systems are working as expected. + warning: Some checks returned a warning. This can lead to unexpected behaviour. + result_component: + status: + failed: Failed + passed: Passed + skipped: Skipped + warning: Warning homescreen: additional: projects: Legújabb projektek ebben az esetben. @@ -3756,6 +3807,7 @@ hu: label_age: Életkor label_ago: nappal ezelőtt label_all: mind + label_all_uppercase: All label_all_time: minden alkalommal label_all_words: Minden szó label_all_open_wps: Nyitottak @@ -4283,6 +4335,7 @@ hu: label_role_new: Új szerepkör label_role_grantable: Grantable role label_role_plural: Szerepkörök + label_role_missing_permissions: "%{role} (missing required permissions)" label_role_search: Szerep hozzárendelése az új tagokhoz label_scm: SCM label_scroll_left: Scroll left @@ -4511,7 +4564,7 @@ hu: you_have: Neked van logo_alt_text: Logó mention: - subject: "%{user_name} megemlített téged itt: #%{id} - %{subject}" + subject: "%{user_name} mentioned you in %{id} - %{subject}" notification: center: 'Az értesítési központba @@ -4561,7 +4614,7 @@ hu: allowed_actions_html: 'You have the following permissions on this work package: %{allowed_actions}. This can change depending on your project role and permissions.' create_account: To access this work package, you will need to create and activate an account on %{instance}. open_work_package: Open work package - subject: 'Work package #%{id} was shared with you' + subject: Work package %{id} was shared with you enterprise_text: Share work packages with users who are not members of the project. summary: user: "%{user} shared a work package with you with %{role_rights} rights" @@ -4782,6 +4835,18 @@ hu: text_getting_started_description: Get a quick overview of project management and team collaboration with OpenProject. You can restart this video from the help menu. welcome: Üdvözli a %{app_title} select_language: Kéjük válasszon nyelvet + open_project: + common: + work_package_card_component: + menu: + label_actions: Work package actions + work_package_card_list_component: + header: + label_actions: Open menu + label_work_package_count: + zero: No work packages + one: "%{count} work package" + other: "%{count} work packages" permission_add_work_package_comments: Add comments permission_add_work_packages: feladatcsoport hozzáadása permission_add_messages: Elküldött üzenetek @@ -4799,7 +4864,6 @@ hu: permission_add_work_package_watchers: Megfigyelő hozzáadása permission_assign_versions: Hozzárendelt verziók. permission_browse_repository: Csak olvasható hozzáférés a tárolóhoz (böngészés és kijelentkezés) - permission_change_wiki_parent_page: A szülő wiki oldal megváltoztatása permission_change_work_package_status: Change work package status permission_change_work_package_status_explanation: Allows changing status without Edit work packages permission permission_comment_news: Megjegyzések írása a hírekehez @@ -4814,8 +4878,6 @@ hu: permission_delete_own_messages: Saját üzenetek törlése permission_delete_reportings: Jelentések törlése permission_delete_timelines: Idővonalak törlése - permission_delete_wiki_pages: Wiki oldalak törlése - permission_delete_wiki_pages_attachments: Mellékletek törlése permission_edit_work_package_comments: Moderate comments permission_edit_work_package_comments_explanation: 'Caution: Users with this permission are able to edit anyone''s comment.' permission_edit_work_packages: feladatcsoportok szerkesztése @@ -4835,12 +4897,10 @@ hu: permission_edit_wiki_pages: Wiki lapok szerkesztése permission_export_work_packages: feladatcsoportok exportálása permission_export_projects: Export projects - permission_export_wiki_pages: Wiki oldalak exportálása permission_invite_members_by_email: Invite members by email permission_invite_members_by_email_explanation: 'Allows users to invite new members by email. Invited users will receive an email with a link to set their password and activate their account. Depends on the permission to manage members ' - permission_list_attachments: Mellékletek listája permission_log_own_time: Saját idő naplózása permission_log_time: Mások idejének naplózása permission_manage_forums: Fórum kezelése @@ -4855,7 +4915,6 @@ hu: permission_manage_subtasks: feladatcsoport hierarchiák kezelése permission_manage_versions: Verziók kezelése permission_manage_wiki: Wiki kezelése - permission_manage_wiki_menu: Wiki menü kezelése permission_manage_own_working_times: Manage own working times permission_manage_own_working_times_explanation: 'Allows users to manage their own working times, and personal non-working days. @@ -4865,8 +4924,6 @@ hu: ' permission_move_work_packages: Feladatcsoportok áthelyezése - permission_protect_wiki_pages: Védett wiki oldalak - permission_rename_wiki_pages: Wiki oldalak átnevezése permission_save_queries: Nézet mentése permission_search_project: Search project permission_select_custom_fields: Egyedi mezők kiválasztása @@ -5245,6 +5302,9 @@ hu: setting_mail_handler_body_delimiter_regex: E-mailek csonkítása a megegyező kifejezéssel setting_mail_handler_ignore_filenames: Összes melléklet figyelmen kívül hagyva setting_new_project_user_role_id: Szerepkör a nem admin felhasználónak, aki létrehoz egy projektet, + setting_new_project_user_role_id_caption: 'Only roles that include the permissions to edit project attributes and to manage members are listed, so that the creator can complete the project setup. + + ' setting_new_project_send_confirmation_email: Send notification to author when creating a new project setting_new_project_notification_text: Notification text setting_password_active_rules: Password requirements @@ -5663,6 +5723,7 @@ hu: text_project_identifier_format: Must start with a lowercase letter. Only lowercase letters (a-z), numbers, dashes and underscores are allowed. text_reassign: 'A munkacsomag ismételt hozzárendelése:' text_regexp_multiline: A reguláris kifejezés többsoros módban legyen alkalmazva. pld. ^---\s+ + text_rename_wiki_page: Rename wiki page text_repository_usernames_mapping: Jelölje be, vagy frissítse az alkalmazás felhasználóit, minden felhasználónév eltárolva, megtalálhatóak a csomagtároló naplóban. A felhasználók ugyanazzal az alkalmazási és csomagtárolói felhasználó névvel vagy email címmel automatikusan tárolódnak. text_status_changed_by_changeset: A %{value} commit-ban hozzáadva. text_table_difference_description: Ebben a táblázatban látható az egyszeri %{entries}. Megtekintheti a két bejegyzés közötti különbséget azáltal, hogy először kiválasztja a megfelelő jelölőnégyzeteket a táblázatban. A táblázat alatti gombra kattintva a különbségek jelennek meg. @@ -6116,9 +6177,6 @@ hu: none_given: 'Egyetlen OAuth -alkalmazás sem kapott hozzáférést a felhasználói fiókjához. ' - x_active_tokens: - one: egy aktív token - other: "%{count} aktív token" flows: authorization_code: 'Hitelesítő kód:' client_credentials: 'Ügyfél hitelesítő adatok forgalma @@ -6136,10 +6194,10 @@ hu: client_credentials_impersonation_html: 'Alapértelmezés szerint az OpenProject az OAuth 2.0 engedélyezést a %{authorization_code_flow_link} segítségével biztosítja. Opcionálisan engedélyezheti a %{client_credentials_flow_link} opciót, de meg kell adnia egy felhasználót, akinek a nevében a kérések végrehajtásra kerülnek. ' + confirm_revoke_my_application: + one: Do you really want to remove this application? This will revoke one token active for it. + other: Do you really want to remove this application? This will revoke %{count} tokens active for it. authorization_error: Engedélyezési hiba történt. - revoke_my_application_confirmation: 'Tényleg el akarja távolítani ezt az alkalmazást? Ez visszavonja az aktív %{token_count} értéket. - - ' my_registered_applications: Regisztrált OAuth alkalmazások oauth_client: urn_connection_status: diff --git a/config/locales/crowdin/id.yml b/config/locales/crowdin/id.yml index 621c0568aec..9e60f7d82f7 100644 --- a/config/locales/crowdin/id.yml +++ b/config/locales/crowdin/id.yml @@ -413,7 +413,8 @@ id: error_special_characters: Special characters not allowed error_not_fully_uppercased: Must be uppercase error_in_use: Already in use as another project's active handle - error_reserved: Reserved by another project's handle history + error_used_in_past: Reserved by another project's handle history + error_reserved_by_system: Reserved as a system keyword error_unknown: Needs manual review remaining_projects: other: "... %{count} more projects" @@ -452,8 +453,11 @@ id: ignore: Ignore changes save: Save changes and continue role_selector: + title: Select roles label: 'Role: %{role}' no_role: Select role + roles: + other: "%{count} roles selected" blankslate: title: No status transitions configured description: Add statuses to start configuring workflows for this role @@ -1094,6 +1098,8 @@ id: no_results_title_text: There is currently no news to report. no_results_content_text: Add a news item roles: + edit: + default_for_new_projects_warning: 'This role is configured as the default role given to non-admin users who create a project. Do not remove the following permissions, otherwise project creators will be unable to complete the setup of their newly created projects:' permissions: section_check_all_label: Assign all %{module} permissions section_uncheck_all_label: Unassign all %{module} permissions @@ -1984,6 +1990,29 @@ id: type: Tipe version: Versi watcher: Pemantau + ordered_persisted_query_entity: + persisted_query: Persisted query + entity: Entity + position: Position + persisted_query: + name: Name + views: Views + filters: Filters + orders: Orders + selects: Selects + persisted_view: + name: Name + query: Query + parent: Parent view + public: Public + user_card_view: + secondary_info: Secondary info + show_status_badge: Show status badge + show_email: Show email + tag_source: Tag source + tag_limit: Tag limit + card_size: Card size + columns_per_row: Columns per row errors: messages: accepted: harus disetujui. @@ -2481,6 +2510,7 @@ id: unsupported_storage_type: is not a supported storage type. storage_error: There was an error with the storage connection. invalid_input: The input is invalid. + invalid_child_for_parent: is not allowed as a parent for this view type. activity: item: created_by_on: dibuat oleh %{user} pada %{datetime} @@ -3341,6 +3371,24 @@ id: general_text_false: 'false' gui_validation_error: 1 error gui_validation_error_plural: "%{count} error" + health_reports: + report_component: + checks: + failures: + other: "%{count} checks failed" + success: All checks passed + warnings: + other: "%{count} checks returned a warning" + summary: + failure: Some checks failed and the system does not work as expected. + success: All connections and systems are working as expected. + warning: Some checks returned a warning. This can lead to unexpected behaviour. + result_component: + status: + failed: Failed + passed: Passed + skipped: Skipped + warning: Warning homescreen: additional: projects: Newest visible projects in this instance. @@ -3642,6 +3690,7 @@ id: label_age: Usia label_ago: hari yang lalu label_all: semua + label_all_uppercase: All label_all_time: Sepanjang waktu label_all_words: Semua kata label_all_open_wps: Semua terbuka @@ -4169,6 +4218,7 @@ id: label_role_new: Role baru label_role_grantable: Grantable role label_role_plural: Roles + label_role_missing_permissions: "%{role} (missing required permissions)" label_role_search: Menetapkan role kepada anggota baru label_scm: SCM label_scroll_left: Scroll left @@ -4392,7 +4442,7 @@ id: you_have: You have logo_alt_text: Logo mention: - subject: "%{user_name} mentioned you in #%{id} - %{subject}" + subject: "%{user_name} mentioned you in %{id} - %{subject}" notification: center: To notification center see_in_center: See comment in notification center @@ -4429,7 +4479,7 @@ id: allowed_actions_html: 'You have the following permissions on this work package: %{allowed_actions}. This can change depending on your project role and permissions.' create_account: To access this work package, you will need to create and activate an account on %{instance}. open_work_package: Open work package - subject: 'Work package #%{id} was shared with you' + subject: Work package %{id} was shared with you enterprise_text: Share work packages with users who are not members of the project. summary: user: "%{user} shared a work package with you with %{role_rights} rights" @@ -4639,6 +4689,18 @@ id: text_getting_started_description: Dapatkan ikhtisar singkat manajemen proyek dan kolaborasi tim dengan OpenProject. Anda dapat memulai ulang video ini dari menu bantuan. welcome: Selamat datang di %{app_title} select_language: Silakan pilih bahasa Anda + open_project: + common: + work_package_card_component: + menu: + label_actions: Work package actions + work_package_card_list_component: + header: + label_actions: Open menu + label_work_package_count: + zero: No work packages + one: "%{count} work package" + other: "%{count} work packages" permission_add_work_package_comments: Add comments permission_add_work_packages: Tambah Paket-Penugasan permission_add_messages: Kirim pesan @@ -4656,7 +4718,6 @@ id: permission_add_work_package_watchers: Tambah pemantau permission_assign_versions: Tetapkan versi permission_browse_repository: Read-only access to repository (browse and checkout) - permission_change_wiki_parent_page: Ubah halaman induk Wiki permission_change_work_package_status: Change work package status permission_change_work_package_status_explanation: Allows changing status without Edit work packages permission permission_comment_news: Komentar berita @@ -4671,8 +4732,6 @@ id: permission_delete_own_messages: Hapus pesan permission_delete_reportings: Hapus Laporan permission_delete_timelines: Menghapus Timeline - permission_delete_wiki_pages: Hapus halaman Wiki - permission_delete_wiki_pages_attachments: Hapus lampiran permission_edit_work_package_comments: Moderate comments permission_edit_work_package_comments_explanation: 'Caution: Users with this permission are able to edit anyone''s comment.' permission_edit_work_packages: Edit Paket-Penugasan @@ -4692,12 +4751,10 @@ id: permission_edit_wiki_pages: Edit halaman Wiki permission_export_work_packages: Ekspor work packages permission_export_projects: Export projects - permission_export_wiki_pages: Ekspor halaman Wiki permission_invite_members_by_email: Invite members by email permission_invite_members_by_email_explanation: 'Allows users to invite new members by email. Invited users will receive an email with a link to set their password and activate their account. Depends on the permission to manage members ' - permission_list_attachments: Daftar lampiran permission_log_own_time: Log own time permission_log_time: Log time for other users permission_manage_forums: Kelola Forum @@ -4712,7 +4769,6 @@ id: permission_manage_subtasks: Kelola hierarki paket kerja permission_manage_versions: Kelola Versi permission_manage_wiki: Kelola Wiki - permission_manage_wiki_menu: Kelola menu Wiki permission_manage_own_working_times: Manage own working times permission_manage_own_working_times_explanation: 'Allows users to manage their own working times, and personal non-working days. @@ -4722,8 +4778,6 @@ id: ' permission_move_work_packages: Pindahkan Paket-Penugasan - permission_protect_wiki_pages: Proteksi halaman Wiki - permission_rename_wiki_pages: Rename halaman Wiki permission_save_queries: Simpan tampilan permission_search_project: Search project permission_select_custom_fields: Pilih bidang khusus @@ -5092,6 +5146,9 @@ id: setting_mail_handler_body_delimiter_regex: Truncate emails matching this regex setting_mail_handler_ignore_filenames: Ignored mail attachments setting_new_project_user_role_id: Role yang diberikan kepada user non-admin yang membuat Project + setting_new_project_user_role_id_caption: 'Only roles that include the permissions to edit project attributes and to manage members are listed, so that the creator can complete the project setup. + + ' setting_new_project_send_confirmation_email: Send notification to author when creating a new project setting_new_project_notification_text: Notification text setting_password_active_rules: Password requirements @@ -5504,6 +5561,7 @@ id: text_project_identifier_format: Must start with a lowercase letter. Only lowercase letters (a-z), numbers, dashes and underscores are allowed. text_reassign: 'Reassign to work package:' text_regexp_multiline: The regex is applied in a multi-line mode. e.g., ^---\s+ + text_rename_wiki_page: Rename wiki page text_repository_usernames_mapping: Pilih atau update user untuk dipetakan ke setiap username yang ditemukan di log repositori. User dengan username dan repositori atau email yang sama otomatis akan dipetakan. text_status_changed_by_changeset: Applied in changeset %{value}. text_table_difference_description: In this table the single %{entries} are shown. You can view the difference between any two entries by first selecting the according checkboxes in the table. When clicking on the button below the table the differences are shown. @@ -5934,8 +5992,6 @@ id: scopes: Hak akses successful_application_revocation: Revocation of application %{application_name} successful. none_given: No OAuth applications have been granted access to your user account. - x_active_tokens: - other: "%{count} active token" flows: authorization_code: Authorization code flow client_credentials: Client credentials flow @@ -5945,8 +6001,9 @@ id: client_credentials_impersonation_html: 'By default, OpenProject provides OAuth 2.0 authorization via %{authorization_code_flow_link}. You can optionally enable %{client_credentials_flow_link}, but you must provide a user on whose behalf requests will be performed. ' + confirm_revoke_my_application: + other: Do you really want to remove this application? This will revoke %{count} tokens active for it. authorization_error: An authorization error has occurred. - revoke_my_application_confirmation: Do you really want to remove this application? This will revoke %{token_count} active for it. my_registered_applications: Registered OAuth applications oauth_client: urn_connection_status: diff --git a/config/locales/crowdin/it.yml b/config/locales/crowdin/it.yml index 166d658c0a3..3fb0461e966 100644 --- a/config/locales/crowdin/it.yml +++ b/config/locales/crowdin/it.yml @@ -419,7 +419,8 @@ it: error_special_characters: I caratteri speciali non sono consentiti error_not_fully_uppercased: Deve essere maiuscolo error_in_use: Già in uso come identificatore attivo di un altro progetto - error_reserved: Riservato dalla cronologia degli identificatori di un altro progetto + error_used_in_past: Riservato dalla cronologia degli identificatori di un altro progetto + error_reserved_by_system: Riservato come parola chiave di sistema error_unknown: Necessita di controllo manuale remaining_projects: one: "... 1 altro progetto" @@ -460,8 +461,12 @@ it: ignore: Ignora le modifiche save: Salva le modifiche e continua role_selector: + title: Seleziona ruoli label: 'Ruolo: %{role}' no_role: Seleziona il ruolo + roles: + one: One role selected + other: "%{count} roles selected" blankslate: title: Nessuna transizione di stato configurata description: Aggiungi stati per iniziare a configurare i flussi di lavoro per questo ruolo @@ -1109,6 +1114,8 @@ it: no_results_title_text: Al momento non c'è nessuna notizia da segnalare. no_results_content_text: Aggiungi una notizia roles: + edit: + default_for_new_projects_warning: 'Questo ruolo è configurato come ruolo predefinito assegnato agli utenti non amministratori che creano un progetto. Non rimuovere le seguenti autorizzazioni, altrimenti i creatori di progetto non potranno completare la configurazione dei progetti appena creati:' permissions: section_check_all_label: Assegna tutti i permessi di %{module} section_uncheck_all_label: Annulla l'assegnazione di tutti i permessi di %{module} @@ -1998,6 +2005,29 @@ it: type: Tipo version: Versione watcher: Osservatore + ordered_persisted_query_entity: + persisted_query: Query persistente + entity: Entità + position: Posizione + persisted_query: + name: Nome + views: Visualizzazioni + filters: Filtri + orders: Ordini + selects: Seleziona + persisted_view: + name: Nome + query: Query + parent: Vista genitore + public: Pubblica + user_card_view: + secondary_info: Informazioni secondarie + show_status_badge: Mostra distintivo di stato + show_email: Mostra email + tag_source: Sorgente tag + tag_limit: Limite tag + card_size: Dimensioni scheda + columns_per_row: Colonne per riga errors: messages: accepted: deve essere accettato. @@ -2517,6 +2547,7 @@ it: unsupported_storage_type: non è un tipo di archiviazione supportato. storage_error: Si è verificato un errore nella connessione all'archivio. invalid_input: L'input non è valido. + invalid_child_for_parent: non è consentito come genitore per questo tipo di visualizzazione. activity: item: created_by_on: creato da %{user} il %{datetime} @@ -3391,6 +3422,26 @@ it: general_text_false: falso gui_validation_error: 1 errore gui_validation_error_plural: "%{count} errori" + health_reports: + report_component: + checks: + failures: + one: "%{count} controllo non superato" + other: "%{count} controlli non superati" + success: Tutti i controlli superati + warnings: + one: "%{count} controllo ha restituito un avviso" + other: "%{count} controlli hanno restituito un avviso" + summary: + failure: Alcuni controlli non sono riusciti e il sistema non funziona come previsto. + success: Tutte le connessioni e i sistemi funzionano come previsto. + warning: Alcuni controlli hanno restituito un avviso. Questo può causare comportamenti imprevisti. + result_component: + status: + failed: Non riuscito + passed: Superato + skipped: Saltato + warning: Avviso homescreen: additional: projects: Progetti visibili più recenti in questa istanza. @@ -3692,6 +3743,7 @@ it: label_age: Età label_ago: giorni fa label_all: tutti + label_all_uppercase: Tutti label_all_time: tutto il tempo label_all_words: Tutte le parole label_all_open_wps: Apri tutto @@ -4219,6 +4271,7 @@ it: label_role_new: Nuovo ruolo label_role_grantable: Ruolo ammissibile label_role_plural: Ruoli + label_role_missing_permissions: "%{role} (mancano i permessi necessari)" label_role_search: Assegna ruolo ai nuovi membri label_scm: SCM label_scroll_left: Scorri a sinistra @@ -4445,7 +4498,7 @@ it: you_have: Hai logo_alt_text: Logo mention: - subject: "%{user_name} ti ha menzionato nel n.%{id} - %{subject}" + subject: "%{user_name} ti ha menzionato in %{id} - %{subject}" notification: center: Al centro notifiche see_in_center: Vedi commento nel centro notifiche @@ -4483,7 +4536,7 @@ it: allowed_actions_html: 'Hai le seguenti autorizzazioni per questa macro-attività: %{allowed_actions}. Queste possono cambiare in base al tuo ruolo nel progetto e alle relative autorizzazioni.' create_account: Per accedere a questa macro-attività è necessario creare e attivare un account su %{instance} open_work_package: Apri macro-attività - subject: 'La macro-attività #%{id} è stata condivisa con te' + subject: La macro-attività %{id} è stata condivisa con te enterprise_text: Condividi macro-attività con utenti che non sono membri del progetto. summary: user: "%{user} ha condiviso con te una macro-attività con i diritti %{role_rights}" @@ -4694,6 +4747,18 @@ it: text_getting_started_description: Fai una rapida panoramica della gestione dei progetti e della collaborazione in team con OpenProject. Puoi riavviare questo video dal menu di aiuto. welcome: Benvenuto in %{app_title} select_language: Per favore seleziona la tua lingua + open_project: + common: + work_package_card_component: + menu: + label_actions: Azioni sulla macro-attività + work_package_card_list_component: + header: + label_actions: Open menu + label_work_package_count: + zero: No work packages + one: "%{count} work package" + other: "%{count} work packages" permission_add_work_package_comments: Aggiungi commenti permission_add_work_packages: Aggiungere macro-attività (work package) permission_add_messages: Postare messaggi @@ -4711,7 +4776,6 @@ it: permission_add_work_package_watchers: Aggiungere osservatori permission_assign_versions: Assegna versioni permission_browse_repository: Accesso in sola lettura all'archivio (consultazione e check-out) - permission_change_wiki_parent_page: Cambiare la pagina padre del wiki permission_change_work_package_status: Cambia lo stato della macro-attività permission_change_work_package_status_explanation: Consente di cambiare lo stato senza l'autorizzazione Modifica macro-attività permission_comment_news: Commentare le novità @@ -4726,8 +4790,6 @@ it: permission_delete_own_messages: Cancellare i propri messaggi permission_delete_reportings: Eliminare prospetti permission_delete_timelines: Elimina cronologie - permission_delete_wiki_pages: Eliminare pagine wiki - permission_delete_wiki_pages_attachments: Elimina allegati permission_edit_work_package_comments: Modera i commenti permission_edit_work_package_comments_explanation: 'Attenzione: gli utenti con questa autorizzazione possono modificare i commenti di chiunque.' permission_edit_work_packages: Modificare macro-attività @@ -4747,12 +4809,10 @@ it: permission_edit_wiki_pages: Modificare pagine wiki permission_export_work_packages: Esportare macro-attività permission_export_projects: Esporta progetti - permission_export_wiki_pages: Esportare pagine wiki permission_invite_members_by_email: Invita i membri via email permission_invite_members_by_email_explanation: 'Consente agli utenti di invitare nuovi membri tramite email. Gli utenti invitati riceveranno un''email con un link per impostare la password e attivare il proprio account. Dipende dall''autorizzazione a gestire i membri ' - permission_list_attachments: Elencare allegati permission_log_own_time: Registrare il proprio tempo permission_log_time: Registrare il tempo per gli altri utenti permission_manage_forums: Gestire forum @@ -4767,7 +4827,6 @@ it: permission_manage_subtasks: Gestire le gerarchie delle macro-attività permission_manage_versions: Gestire le versioni permission_manage_wiki: Gestire le pagine wiki - permission_manage_wiki_menu: Gestire i menu wiki permission_manage_own_working_times: Gestire i propri orari di lavoro permission_manage_own_working_times_explanation: 'Consente agli utenti di gestire i propri orari di lavoro e i giorni non lavorativi personali. @@ -4777,8 +4836,6 @@ it: ' permission_move_work_packages: Spostare le macro-attività - permission_protect_wiki_pages: Proteggere l'accesso a pagine wiki - permission_rename_wiki_pages: Rinominare pagine wiki permission_save_queries: Salva viste permission_search_project: Cerca progetto permission_select_custom_fields: Seleziona campi personalizzati @@ -5155,6 +5212,9 @@ it: setting_mail_handler_body_delimiter_regex: Troncare le email che corrispondono a questa espressione regolare setting_mail_handler_ignore_filenames: Allegati email ignorati setting_new_project_user_role_id: Ruolo assegnato ad un utente non amministratore che crea un progetto + setting_new_project_user_role_id_caption: 'Sono elencati solo i ruoli che includono le autorizzazioni per modificare gli attributi del progetto e gestire i membri, in modo che il creatore possa completare la configurazione del progetto. + + ' setting_new_project_send_confirmation_email: Invia una notifica all'autore quando crea un nuovo progetto setting_new_project_notification_text: Testo della notifica setting_password_active_rules: Requisiti per la password @@ -5569,6 +5629,7 @@ it: text_project_identifier_format: Deve iniziare con una lettera minuscola. Sono ammesse solo lettere minuscole (a-z), numeri, trattini e underscore. text_reassign: 'Riassegna alla macro-attività:' text_regexp_multiline: L'espressione regolare viene applicata in modalità multi-linea. ad esempio, ^---\s+ + text_rename_wiki_page: Rinomina pagina wiki text_repository_usernames_mapping: Seleziona o aggiorna l'utente OpenProject mappato per ogni nome utente trovato nel registro dell'archivio. Gli utenti con lo stesso nome utente e repository OpenProject o e-mail vengono mappati automaticamente. text_status_changed_by_changeset: Stato variato a partire dalla modifica %{value}. text_table_difference_description: In questa tabella sono mostrate le singole %{entries}. È possibile visualizzare le differenze tra due voci selezionando prima le corrispondenti caselle di controllo nella tabella. Cliccando sul pulsante sotto la tabella saranno mostrate le differenze. @@ -6000,9 +6061,6 @@ it: scopes: Permessi successful_application_revocation: Revoca dell'applicazione %{application_name} riuscita. none_given: Nessuna applicazione OAuth ha il permesso per accedere al tuo account utente. - x_active_tokens: - one: un token attivo - other: "%{count} token attivi" flows: authorization_code: Flusso del codice di autorizzazione client_credentials: Flusso delle credenziali client @@ -6012,8 +6070,10 @@ it: client_credentials_impersonation_html: 'Per impostazione predefinita, OpenProject fornisce l''autorizzazione OAuth 2.0 tramite %{authorization_code_flow_link}. È possibile abilitare facoltativamente %{client_credentials_flow_link}, ma è necessario fornire un utente a cui nome verranno eseguite le richieste. ' + confirm_revoke_my_application: + one: Vuoi davvero rimuovere questa applicazione? Questo revocherà un token attivo per essa. + other: Vuoi davvero rimuovere questa applicazione? Questo revocherà %{count} token attivi per essa. authorization_error: Si è verificato un errore di autorizzazione. - revoke_my_application_confirmation: Vuoi davvero rimuovere questa applicazione? Questo revocherà %{token_count} attivo per essa. my_registered_applications: Applicazioni OAuth registrate oauth_client: urn_connection_status: diff --git a/config/locales/crowdin/ja.yml b/config/locales/crowdin/ja.yml index c8989e6350b..475f3661361 100644 --- a/config/locales/crowdin/ja.yml +++ b/config/locales/crowdin/ja.yml @@ -339,13 +339,13 @@ ja: success: MCP configuration was updated successfully. scim_clients: authentication_methods: - sso: IDプロバイダーからのJWT - oauth2_client: OAuth 2.0クライアント認証情報 + sso: アイデンティティプロバイダからのJWT + oauth2_client: OAuth 2.0 クライアント資格情報 oauth2_token: 静的アクセストークン created_client_credentials_dialog_component: - title: クライアント認証情報の作成 - heading: クライアント認証情報が生成されました - one_time_hint: クライアント・シークレットが表示されるのはこの時だけです。必ずコピーしてください。 + title: クライアントの資格情報が作成されました + heading: クライアントの資格情報が生成されました + one_time_hint: クライアントのシークレットが表示される唯一の時間です。今すぐコピーしてください。 created_token_dialog_component: title: トークンを作成しました heading: トークンが生成されました @@ -358,21 +358,21 @@ ja: edit: label_delete_scim_client: SCIM クライアントを削除 form: - auth_provider_description: これは、SCIM プロバイダによって追加されたユーザが OpenProject で認証するために使用するサービスです。 - authentication_method_description_html: これは SCIM クライアントが OpenProject で認証する方法です。OAuth トークンにscim_v2スコープが含まれていることを確認してください。 - description: これらの設定オプションの詳細については、[SCIMクライアントの設定に関する文書](docs_url)を参照してください。 + auth_provider_description: これは、SCIMプロバイダが追加したユーザーがOpenProjectでの認証に使用するサービスです。 + authentication_method_description_html: これは SCIM クライアントが OpenProject で認証する方法です。OAuth トークンに scim_v2 スコープが含まれていることを確認してください。 + description: 設定オプションの詳細については、[SCIM クライアントの設定に関するドキュメント](docs_url)を参照してください。 jwt_sub_description: 例えば、Keycloakの場合、これはSCIMクライアントに関連付けられたサービスアカウントのUUIDです。あなたのユースケースにあった Subject claim を見つける方法については [ドキュメント](docs_url) を参照してください。 - name_description: このクライアントが設定された理由を他の管理者が理解しやすい名前を選んでください。 + name_description: 他の管理者がこのクライアントが設定された理由を理解するのに役立つ名前を選択してください。 index: - description: ここで設定された SCIM クライアントは、OpenProject SCIM サーバ API と対話し、ユーザアカウントやグループのプロビジョニング、更新、デプロビジョニングを行うことができます。 - label_create_button: SCIMクライアントの追加 + description: ここで設定されたSCIMクライアントは、OpenProjectのSCIMサーバー APIと相互作用して、ユーザーアカウントとグループのプロビジョニング、更新、およびデプロビジョニングを行うことができます。 + label_create_button: SCIMクライアントを追加 new: title: 新しいSCIMクライアント revoke_static_token_dialog_component: confirm_button: 取り消す - title: 静的トークンの失効 - heading: このトークンを本当に取り消しますか? - description: このトークンを使っている SCIM クライアントは、OpenProject の SCIM サーバ API にアクセスできなくなります。 + title: 静的トークンを取り消す + heading: このトークンを取り消してもよろしいですか? + description: このトークンを使用する SCIM クライアントは、OpenProject の SCIM サーバ API にアクセスできなくなります。 table_component: blank_slate: title: SCIMクライアントがまだ設定されていません @@ -413,7 +413,8 @@ ja: error_special_characters: Special characters not allowed error_not_fully_uppercased: Must be uppercase error_in_use: Already in use as another project's active handle - error_reserved: Reserved by another project's handle history + error_used_in_past: Reserved by another project's handle history + error_reserved_by_system: Reserved as a system keyword error_unknown: Needs manual review remaining_projects: other: "... %{count} more projects" @@ -452,8 +453,11 @@ ja: ignore: Ignore changes save: Save changes and continue role_selector: + title: Select roles label: 'Role: %{role}' no_role: Select role + roles: + other: "%{count} roles selected" blankslate: title: No status transitions configured description: Add statuses to start configuring workflows for this role @@ -1043,26 +1047,26 @@ ja: other: また、 %{shared_work_packages_link} はこのユーザーと共有されています。 remove_project_membership_or_work_package_shares_too: 直接のメンバーとしてのユーザーだけを削除したい(および共有を維持したい)、またはワークパッケージの共有も削除しますか? will_remove_all_user_access_priveleges: このメンバーを削除すると、プロジェクトへのユーザーのすべてのアクセス権が削除されます。ユーザーはまだサイトの一部として存在します。 - will_remove_all_group_access_priveleges: このメンバを削除すると、プロジェクトに対するグループのすべてのアクセス権が削除されます。グループはサイトの一部としてまだ存在します。 - cannot_delete_inherited_membership: このプロジェクトのメンバーであるグループに所属しているため、このメンバーを削除することはできません。 - cannot_delete_inherited_membership_note_admin_html: "%{administration_settings_link}で、プロジェクトのメンバーとしてグループを削除することも、特定のメンバーをグループから削除することもできます。" - cannot_delete_inherited_membership_note_non_admin: プロジェクトのメンバーとしてグループを削除するか、管理者に連絡してこの特定のメンバーをグループから削除することができます。 + will_remove_all_group_access_priveleges: このメンバーを削除すると、グループのすべてのアクセス権がプロジェクトに削除されます。グループはサイトの一部として存在します。 + cannot_delete_inherited_membership: このメンバーはこのプロジェクトのメンバーであるグループに属しているため、削除できません。 + cannot_delete_inherited_membership_note_admin_html: プロジェクトのメンバーとしてグループを削除するか、 %{administration_settings_link} のグループからこの特定のメンバーを削除することができます。 + cannot_delete_inherited_membership_note_non_admin: プロジェクトのメンバーとしてグループを削除するか、管理者に問い合わせてグループから特定のメンバーを削除することができます。 delete_work_package_shares_dialog: - title: ワーク・パッケージ・シェアの破棄 + title: ワークパッケージの共有の取り消し shared_with_this_user_html: other: "%{all_shared_work_packages_link} はこのユーザーと共有されています。" shared_with_this_group_html: other: "%{all_shared_work_packages_link} はこのグループと共有されています。" shared_with_permission_html: other: "%{shared_work_packages_link} のみが %{shared_role_name} 権限と共有されています。" - revoke_all_or_with_role: すべての共有ワークパッケージ、または %{shared_role_name} 権限を持つワークパッケージのみへのアクセス権を剥奪しますか? - will_not_affect_inherited_shares: "(これは、そのグループと共有しているワークパッケージには影響しません)。" - cannot_remove_inherited: グループで共有されたワークパッケージの共有は削除できません。 - cannot_remove_inherited_with_role: ロール %{shared_role_name} で共有されるワークパッケージは、グループを介して共有され、削除することはできません。 - cannot_remove_inherited_note_admin_html: "%{administration_settings_link}、グループへの共有を取り消すか、グループからこの特定のメンバーを削除することができます。" - cannot_remove_inherited_note_non_admin: グループへの共有を取り消すか、管理者に連絡して特定のメンバーをグループから削除することができます。 - will_revoke_directly_granted_access: このアクションは、グループと共有されているワークパッケージ以外の、すべてのワークパッケージへのアクセス権を剥奪する。 - will_revoke_access_to_all: このアクションは、すべてのアクセス権を剥奪する。 + revoke_all_or_with_role: 共有されたワークパッケージ、または %{shared_role_name} 権限を持つワークパッケージのみへのアクセスを取り消しますか? + will_not_affect_inherited_shares: "(これはグループと共有されているワークパッケージには影響しません)。" + cannot_remove_inherited: グループ間で共有されるワークパッケージは削除できません。 + cannot_remove_inherited_with_role: ワークパッケージとロール %{shared_role_name} が共有されているため、削除できません。 + cannot_remove_inherited_note_admin_html: あなたは、グループへの共有を取り消すか、 %{administration_settings_link} のグループからこの特定のメンバーを削除することができます。 + cannot_remove_inherited_note_non_admin: 共有をグループに取り消すか、管理者に問い合わせてグループから特定のメンバーを削除することができます。 + will_revoke_directly_granted_access: このアクションは、すべてのユーザーへのアクセスを取り消しますが、グループと共有されているワークパッケージです。 + will_revoke_access_to_all: このアクションは、すべてのユーザーへのアクセスを取り消します。 my: access_token: dialog: @@ -1086,7 +1090,7 @@ ja: no_results_title_text: 現在、有効なアクセス トークンはありません。 notice_api_token_revoked: APIトークンが削除されました。新しいトークンを作成するには、APIセクションの作成ボタンを使用してください。 notice_rss_token_revoked: RSSトークンが削除されました。新しいトークンを作成するには、RSSセクションのリンクを使用してください。 - notice_ical_token_revoked: プロジェクト "%{project_name}" のカレンダー "%{calendar_name}" の iCalendar トークン "%{token_name}" が失効しました。このトークンを持つiCalendar URLは無効になりました。 + notice_ical_token_revoked: プロジェクト "%{token_name}" のカレンダー "%{calendar_name}" の iCalendar トークン "%{project_name}" が取り消されました。 このトークンのiCalendar URLは無効です。 password_confirmation_dialog: confirmation_required: You need to enter your account password to confirm this change. title: Confirm your password to continue @@ -1095,6 +1099,8 @@ ja: no_results_title_text: 現在、報告するニュースはありません。 no_results_content_text: ニュース項目を追加 roles: + edit: + default_for_new_projects_warning: 'This role is configured as the default role given to non-admin users who create a project. Do not remove the following permissions, otherwise project creators will be unable to complete the setup of their newly created projects:' permissions: section_check_all_label: Assign all %{module} permissions section_uncheck_all_label: Unassign all %{module} permissions @@ -1109,7 +1115,7 @@ ja: force_password_change_hint: The user must set a new password on their next login. Automatically enabled when sending credentials via email. send_information_hint: Emails the password in plain text. When checked, the user will be required to change their password on first login. autologins: - prompt: ログインしたまま %{num_days} + prompt: "%{num_days} のログインを維持" sessions: session_name: "%{browser_name} %{browser_version} の %{os_name}" browser: ブラウザ @@ -1123,17 +1129,17 @@ ja: current: Current (this device) title: セッション管理 instructions: You are logged in to your account through the following devices. Revoke sessions that you do not recognise or from devices you do not control. - may_not_delete_current: 現在のセッションを削除することはできません。 + may_not_delete_current: 現在のセッションは削除できません。 deletion_warning: Are you sure you want to revoke this session? You will be logged out on this device. groups: member_in_these_groups: このユーザーは現在以下のグループのメンバーです: no_results_title_text: このユーザーは現在どのグループのメンバーでもありません。 summary_with_more_html: Member of %{names} and %{count_link}. - more: "%{count} もっと見る" + more: "%{count} 以上" summary_html: Member of %{names}. memberships: no_results_title_text: このユーザは現在プロジェクトのメンバーではありません。 - open_profile: プロフィール + open_profile: プロファイルを開く invite_user_modal: invite: 招待 title: @@ -1250,7 +1256,7 @@ ja: right_to_manage_members_missing: 'プレースホルダーユーザを削除する権限がありません。 プレースホルダー ユーザーがメンバーであるすべてのプロジェクトのメンバーを管理する権利はありません。 ' - delete_tooltip: プレースホルダー・ユーザーの削除 + delete_tooltip: プレースホルダー ユーザーを削除 deletion_info: heading_html: Delete placeholder user %{name} data_consequences: 'プレースホルダー ユーザのすべての発生(担当者、担当者、その他のユーザ値など)は、「削除されたユーザー」というアカウントに再割り当てられます。 削除されたすべてのアカウントのデータがこのアカウントに再割り当てられるため、ユーザーが作成したデータと別の削除されたアカウントのデータを区別することはできません。 @@ -1269,11 +1275,11 @@ ja: reactions: action_title: リアクト add_reaction: リアクションを追加 - react_with: "%{reaction} と リアクト" - and_user: および %{user} + react_with: "%{reaction} で反応する" + and_user: と %{user} and_others: other: と %{count} その他 - reaction_by: "%{reaction} によって" + reaction_by: "%{reaction} による" reportings: index: no_results_title_text: 現在、ステータス報告はありません。 @@ -1283,19 +1289,20 @@ ja: status_color_text: | このステータスの色を割り当てたり変更する場合にクリックします。 ステータスボタンに表示され、テーブル内のワークパッケージを強調表示するために使用できます。 - status_default_text: 新しいワークパッケージは、デフォルトでこのタイプに設定される。読み取り専用にはできない。 + status_default_text: 新しいワークパッケージはデフォルトでこのタイプに設定されています。読み取り専用にすることはできません。 status_excluded_from_totals_text: |- - このステータスを持つワークパッケージを、階層内の「作業」、「 - 残作業」、「完了率」の合計から除外するには、このオプションをオンにします。 + このオプションをオンにすると、このステータスのワークパッケージを合計作業量、 + 残作業量、および階層構造で完了させることができます。 status_percent_complete_text_html: |- In [status-based progress calculation mode](setting_url), the % Complete of a work package is automatically set to this value when this status is selected. Ignored in work-based mode. status_readonly_html: | - このステータスを持つワークパッケージを読み取り専用としてマークするには、このオプションをチェックする。 - ステータス以外の属性は変更できません。 + ワークパッケージを読み取り専用としてマークするには、このオプションをオンにしてください。 + ステータスを除いて変更することはできません。 +
    - 注意: 継承された値 (子やリレーションなど) は適用されます。 + メモ: 継承された値 (例えば、子や関連) が適用されます。 index: no_results_title_text: 現在、ワークパッケージのステータスはありません。 no_results_content_text: 新しいステータスを追加 @@ -1305,7 +1312,7 @@ ja: is_readonly: 読み取り専用 excluded_from_totals: 合計から除外 themes: - dark: 暗い + dark: ダーク light: ライト sync_with_os: 自動(OSのテーマ設定に追従) types: @@ -1468,15 +1475,15 @@ ja: could_not_be_saved: '次のワークパッケージを保存できませんでした:' none_could_be_saved: "%{total} ワークパッケージのどれも更新できませんでした。" x_out_of_y_could_be_saved: "%{failing} の %{total} ワークパッケージのうち、 %{success} を更新できませんでした。" - selected_because_descendants: "%{selected} のワークパッケージが選択されたが、合計 %{total} のワークパッケージが影響を受け、その中には子孫も含まれる。" - descendant: 選択された子孫 + selected_because_descendants: "%{selected} ワークパッケージが選択されている間、合計で %{total} ワークパッケージが子孫を含む影響を受けます。" + descendant: 選択された子孫です move: no_common_statuses_exists: 選択されたすべてのワークパッケージに利用できるステータスはありません。 それらの状態は変更できません。 unsupported_for_multiple_projects: 複数のプロジェクトからのワークパッケージの一括移動 / コピーはサポートされていません - current_type_not_available_in_target_project: 'ワークパッケージの現在のタイプがターゲットプロジェクトで有効になっていません。変更しない場合は、ターゲットプロジェクトでタイプを有効にしてください。そうでない場合は、リストからターゲットプロジェクトで使用可能なタイプを選択してください。 + current_type_not_available_in_target_project: 'ターゲット プロジェクトで現在のワークパッケージのタイプが有効になっていません。 変更を行わないようにしたい場合は、対象プロジェクトのタイプを有効にしてください。 それ以外の場合は、リストからターゲット プロジェクトで使用可能なタイプを選択します。 ' - bulk_current_type_not_available_in_target_project: 'ワークパッケージの現在のタイプがターゲットプロジェクトで有効になっていません。変更しない場合は、ターゲットプロジェクトでタイプを有効にしてください。そうでない場合は、リストからターゲットプロジェクトで使用可能なタイプを選択してください。 + bulk_current_type_not_available_in_target_project: '現在のタイプのワークパッケージはターゲット プロジェクトで有効になっていません。 変更を行わないようにしたい場合は、対象プロジェクトのタイプを有効にしてください。 それ以外の場合は、リストからターゲット プロジェクトで使用可能なタイプを選択します。 ' sharing: @@ -1502,9 +1509,9 @@ ja: no_results_title_text: 現在、有効なバージョンはありません。 work_package_relations_tab: index: - action_bar_title: 他のワークパッケージとのリレーションを追加して、それらの間にリンクを作成する。 - no_results_title_text: 現在、利用可能な関係はない。 - blankslate_heading: 関係なし + action_bar_title: 他のワークパッケージにリレーションを追加して、その間にリンクを作成します。 + no_results_title_text: 現在利用可能なリレーションはありません。 + blankslate_heading: リレーションなし blankslate_description: このワークパッケージにはまだリレーションがありません。 label_add_child_button: 子要素 label_add_x: "%{x} を追加" @@ -1982,6 +1989,29 @@ ja: type: タイプ version: バージョン watcher: ウォッチャー + ordered_persisted_query_entity: + persisted_query: Persisted query + entity: Entity + position: Position + persisted_query: + name: Name + views: Views + filters: Filters + orders: Orders + selects: Selects + persisted_view: + name: Name + query: Query + parent: Parent view + public: Public + user_card_view: + secondary_info: Secondary info + show_status_badge: Show status badge + show_email: Show email + tag_source: Tag source + tag_limit: Tag limit + card_size: Card size + columns_per_row: Columns per row errors: messages: accepted: は受諾しなければなりません。 @@ -2481,6 +2511,7 @@ ja: unsupported_storage_type: is not a supported storage type. storage_error: There was an error with the storage connection. invalid_input: The input is invalid. + invalid_child_for_parent: is not allowed as a parent for this view type. activity: item: created_by_on: "%{user} によって %{datetime} に作成されました" @@ -3332,6 +3363,24 @@ ja: general_text_false: 偽 gui_validation_error: 1つエラー gui_validation_error_plural: "%{count}つエラー" + health_reports: + report_component: + checks: + failures: + other: "%{count} checks failed" + success: All checks passed + warnings: + other: "%{count} checks returned a warning" + summary: + failure: Some checks failed and the system does not work as expected. + success: All connections and systems are working as expected. + warning: Some checks returned a warning. This can lead to unexpected behaviour. + result_component: + status: + failed: Failed + passed: Passed + skipped: Skipped + warning: Warning homescreen: additional: projects: このサイトの最新の可視化プロジェクト。 @@ -3633,6 +3682,7 @@ ja: label_age: 経過 label_ago: "○日前" label_all: 全て + label_all_uppercase: All label_all_time: 全期間 label_all_words: 全ての単語 label_all_open_wps: 全ての未完了 @@ -4160,6 +4210,7 @@ ja: label_role_new: 新しいロール label_role_grantable: 権限のある役割 label_role_plural: ロール + label_role_missing_permissions: "%{role} (missing required permissions)" label_role_search: 新しいメンバーに役割を割り当てる label_scm: バージョン管理システム label_scroll_left: 左にスクロール @@ -4383,7 +4434,7 @@ ja: you_have: あなたへの logo_alt_text: ロゴ mention: - subject: "%{user_name} さんが #%{id} - %{subject} であなたをメンションしました" + subject: "%{user_name} mentioned you in %{id} - %{subject}" notification: center: 通知センターへ see_in_center: 通知センターにコメントを表示 @@ -4420,7 +4471,7 @@ ja: allowed_actions_html: 'You have the following permissions on this work package: %{allowed_actions}. This can change depending on your project role and permissions.' create_account: このワークパッケージにアクセスするには、 %{instance} のアカウントを作成して有効化する必要があります。 open_work_package: ワークパッケージを開く - subject: ワークパッケージ%{id} があなたと共有されました + subject: Work package %{id} was shared with you enterprise_text: プロジェクトのメンバーではないユーザーとワークパッケージを共有します。 summary: user: "%{user} がワークパッケージを %{role_rights} 権限で共有しました" @@ -4628,6 +4679,18 @@ ja: text_getting_started_description: OpenProject とのプロジェクト管理とチームのコラボレーションの概要を簡単に取得します。ヘルプメニューからこのビデオを再起動できます。 welcome: "%{app_title} へようこそ" select_language: 言語を選択してください + open_project: + common: + work_package_card_component: + menu: + label_actions: Work package actions + work_package_card_list_component: + header: + label_actions: Open menu + label_work_package_count: + zero: No work packages + one: "%{count} work package" + other: "%{count} work packages" permission_add_work_package_comments: コメントの追加 permission_add_work_packages: ワークパッケージの追加 permission_add_messages: メッセージの投稿 @@ -4645,7 +4708,6 @@ ja: permission_add_work_package_watchers: ウォッチャーの追加 permission_assign_versions: バージョンの割り当て permission_browse_repository: リポジトリに読み取り専用のアクセス (参照およびチェックアウト) - permission_change_wiki_parent_page: 親Wikiページの変更 permission_change_work_package_status: ワークパッケージのステータス変更 permission_change_work_package_status_explanation: ワークパッケージの編集権限なしで状態を変更できます permission_comment_news: ニュースへのコメント @@ -4660,8 +4722,6 @@ ja: permission_delete_own_messages: 自身が投稿したメッセージの削除 permission_delete_reportings: レポートの削除 permission_delete_timelines: タイムラインの削除 - permission_delete_wiki_pages: Wikiページの削除 - permission_delete_wiki_pages_attachments: 添付ファイルの削除 permission_edit_work_package_comments: コメントの承認 permission_edit_work_package_comments_explanation: '注意: この権限を持つユーザは誰のコメントも編集できます。' permission_edit_work_packages: ワークパッケージの編集 @@ -4681,12 +4741,10 @@ ja: permission_edit_wiki_pages: Wikiページの編集 permission_export_work_packages: ワークパッケージのエクスポート permission_export_projects: Export projects - permission_export_wiki_pages: Wikiページのエクスポート permission_invite_members_by_email: Invite members by email permission_invite_members_by_email_explanation: 'Allows users to invite new members by email. Invited users will receive an email with a link to set their password and activate their account. Depends on the permission to manage members ' - permission_list_attachments: 添付ファイルの一覧表 permission_log_own_time: 作業時間の記録 permission_log_time: 他のユーザーの作業時間 permission_manage_forums: フォーラムの管理 @@ -4701,7 +4759,6 @@ ja: permission_manage_subtasks: ワークパッケージ階層の管理 permission_manage_versions: バージョンの管理 permission_manage_wiki: Wiki の管理 - permission_manage_wiki_menu: Wikiメニューの管理 permission_manage_own_working_times: Manage own working times permission_manage_own_working_times_explanation: 'Allows users to manage their own working times, and personal non-working days. @@ -4711,8 +4768,6 @@ ja: ' permission_move_work_packages: ワークパッケージの移動 - permission_protect_wiki_pages: Wikiページの凍結 - permission_rename_wiki_pages: Wikiページ名の変更 permission_save_queries: ビューを保存 permission_search_project: プロジェクトを検索 permission_select_custom_fields: カスタムフィールドの選択 @@ -5087,6 +5142,9 @@ ja: setting_mail_handler_body_delimiter_regex: この正規表現に一致するメールを切り捨てる setting_mail_handler_ignore_filenames: 無視するメールの添付ファイル setting_new_project_user_role_id: システム管理者以外のプロジェクト作成者に設定するロール + setting_new_project_user_role_id_caption: 'Only roles that include the permissions to edit project attributes and to manage members are listed, so that the creator can complete the project setup. + + ' setting_new_project_send_confirmation_email: Send notification to author when creating a new project setting_new_project_notification_text: Notification text setting_password_active_rules: Password requirements @@ -5503,6 +5561,7 @@ ja: text_project_identifier_format: Must start with a lowercase letter. Only lowercase letters (a-z), numbers, dashes and underscores are allowed. text_reassign: 'ワークパッケージへの再割り当て:' text_regexp_multiline: 正規表現は、複数行モードで適用されます。例えば、^---\s+ + text_rename_wiki_page: Rename wiki page text_repository_usernames_mapping: |- リポジトリのログから検出されたユーザ名をどのOpenProjectユーザに関連づけるかを選択してください。 ログ上のユーザ名またはメールアドレスがOpenProjectのユーザと一致する場合は自動的に関連づけます。 @@ -5935,8 +5994,6 @@ ja: scopes: 権限 successful_application_revocation: アプリケーション %{application_name} の取り消しに成功しました。 none_given: ユーザーアカウントへのアクセスがOAuthアプリケーションに許可されていません。 - x_active_tokens: - other: "%{count}つの有効なトークン" flows: authorization_code: 認証コードの流れ client_credentials: クライアントの資格情報のフロー @@ -5946,8 +6003,9 @@ ja: client_credentials_impersonation_html: 'デフォルトでは、OpenProjectは %{authorization_code_flow_link} を介してOAuth 2.0認証を提供します。 オプションで %{client_credentials_flow_link} を有効にすることもできますが、その代わりにユーザーに代わってリクエストが実行されるようにする必要があります。 ' + confirm_revoke_my_application: + other: Do you really want to remove this application? This will revoke %{count} tokens active for it. authorization_error: 認証エラーが発生しました。 - revoke_my_application_confirmation: 本当にこのアプリケーションを削除しますか? これにより %{token_count} が無効になります。 my_registered_applications: 登録済みのOAuthアプリケーション oauth_client: urn_connection_status: diff --git a/config/locales/crowdin/js-ca.yml b/config/locales/crowdin/js-ca.yml index 0cd230a4873..a8234eddcfa 100644 --- a/config/locales/crowdin/js-ca.yml +++ b/config/locales/crowdin/js-ca.yml @@ -109,7 +109,7 @@ ca: button_save: Desa button_settings: Configuració button_uncheck_all: Desmarca-ho tot - button_update: Actualitzar + button_update: Actualitza button_export-atom: Descarregar Atom button_generate_pdf: Generate PDF button_create: Crear diff --git a/config/locales/crowdin/js-da.yml b/config/locales/crowdin/js-da.yml index 459d9ac6e31..6337f9f4311 100644 --- a/config/locales/crowdin/js-da.yml +++ b/config/locales/crowdin/js-da.yml @@ -109,7 +109,7 @@ da: button_save: Gem button_settings: Indstillinger button_uncheck_all: Fjern alle markeringer - button_update: Opdatér + button_update: Opdater button_export-atom: Download Atom button_generate_pdf: Generate PDF button_create: Opret diff --git a/config/locales/crowdin/js-de.yml b/config/locales/crowdin/js-de.yml index 68e7adcb98e..86a946bc6f1 100644 --- a/config/locales/crowdin/js-de.yml +++ b/config/locales/crowdin/js-de.yml @@ -143,7 +143,7 @@ de: description_available_columns: Verfügbare Spalten description_current_position: 'Sie sind hier: ' description_select_work_package: 'Arbeitspaket #%{id} auswählen' - description_subwork_package: 'Unteraufgabe von Arbeitspaket #%{id}' + description_subwork_package: 'Kind von Arbeitspaket #%{id}' editor: revisions: Lokale Änderungen anzeigen no_revisions: Keine lokalen Änderungen gefunden @@ -460,7 +460,7 @@ de: label_total_progress: "%{percent}% Gesamtfortschritt" label_total_amount: 'Gesamt: %{amount}' label_updated_on: aktualisiert am - label_value_derived_from_children: "(aggregierter Wert von Unteraufgaben)" + label_value_derived_from_children: "(aggregierter Wert von Kindelementen)" label_children_derived_duration: Aggregierte Dauer der Unteraufgaben label_warning: Warnung label_work_package: Arbeitspaket @@ -790,7 +790,7 @@ de: title: Neues Arbeitspaket header: 'Neu: %{type}' header_no_type: Neues Arbeitspaket (Typ noch nicht gesetzt) - header_with_parent: 'Neu: %{type} (Unteraufgabe von %{parent_type} #%{id})' + header_with_parent: 'Neu: %{type} (Kind von %{parent_type} #%{id})' button: Erstellen duplicate: title: Arbeitspaket duplizieren diff --git a/config/locales/crowdin/js-ja.yml b/config/locales/crowdin/js-ja.yml index be306617859..e92442dacf1 100644 --- a/config/locales/crowdin/js-ja.yml +++ b/config/locales/crowdin/js-ja.yml @@ -34,12 +34,12 @@ ja: draggable_hint: | 埋め込み画像または添付ファイルをエディタにドラッグします。 ドラッグしつづけると閉じているエディタ領域が開きます。 - quarantined_hint: ウイルスが発見されたように、ファイルは隔離されています。ダウンロードできません。 + quarantined_hint: ウイルスが発見されたため,ファイルは隔離されています。ダウンロードできません。 autocomplete_ng_select: - add_tag: アイテムを追加 + add_tag: 項目を追加 clear_all: すべてクリア loading: 読み込み中... - not_found: アイテムが見つかりません + not_found: 見つかりませんでした type_to_search: 検索キーワードを入力 autocomplete_select: placeholder: @@ -71,7 +71,7 @@ ja: button_back_to_list_view: リスト表示に戻る button_cancel: キャンセル button_close: 閉じる - button_change_project: 別のプロジェクトに移動 + button_change_project: 他のプロジェクトに移る button_check_all: 全てを選択 button_configure-form: フォームを設定 button_confirm: 確認 @@ -79,7 +79,7 @@ ja: button_copy: コピー button_copy_to_clipboard: クリップボードにコピー button_copy_link_to_clipboard: クリップボードにリンクをコピー - button_copy_to_other_project: 別のプロジェクトで複製 + button_copy_to_other_project: 別のプロジェクトで複製する button_custom-fields: カスタムフィールド button_delete: 削除 button_delete_watcher: ウォッチャーを削除 @@ -101,7 +101,7 @@ ja: button_open_fullscreen: 全画面表示を開く button_show_cards: カードビュー表示 button_show_list: リストビュー表示 - button_show_table: テーブルビューを表示 + button_show_table: テーブル表示 button_show_gantt: ガントビューを表示 button_show_fullscreen: 全画面表示 button_more_actions: その他の操作 @@ -111,7 +111,7 @@ ja: button_uncheck_all: 全てを選択解除 button_update: 更新 button_export-atom: Atomをダウンロード - button_generate_pdf: PDFを生成 + button_generate_pdf: PDF作成 button_create: 作成 card: add_new: 新規カード追加 @@ -145,8 +145,8 @@ ja: description_select_work_package: 'ワークパッケージを選択 #%{id}' description_subwork_package: 'ワークパッケージの子 #%{id}' editor: - revisions: ローカルの変更を表示 - no_revisions: ローカルの変更は見つかりませんでした + revisions: ローカルの修正を表示 + no_revisions: ローカルでの修正は見つからず preview: プレビューモードの切り替え source_code: Markdown ソースモードの切り替え error_saving_failed: '次のエラーで文書を保存するのに失敗しました: %{error}' @@ -159,7 +159,7 @@ ja: attribute_reference: macro_help_tooltip: このテキストセグメントはマクロによって動的にレンダリングされています。 not_found: 要求されたリソースが見つかりませんでした - nested_macro: このマクロは %{model} %{id} を再帰的に参照しています。 + nested_macro: このマクロは %{model} %{id}を再帰的に参照している。 invalid_attribute: 選択した属性 '%{name}' は存在しません。 child_pages: button: 子ページへのリンク @@ -216,10 +216,10 @@ ja: calendar: empty_state_header: 休業日 empty_state_description: 休業日が定義されていません。「休業日を追加」ボタンをクリックして日付を追加してください。 - new_date: "(新規)" + new_date: "(新)" add_non_working_day: 休業日を追加 - already_added_error: この日付の非作業日はすでに存在します。それぞれの日付に1つの非作業日が作成されます。 - change_button: 保存してスケジュールを変更 + already_added_error: この日付の非営業日はすでに存在します。一意の日付に対して作成できる非営業日は1つだけです。 + change_button: 保存して再スケジュール change_title: 営業日を変更する removed_title: 以下の日を非稼働日リストから削除します: change_description: 営業日とみなす曜日を変更すると、このサイト内のすべてのプロジェクトのすべてのワークパッケージの開始日と終了日に影響を与える可能性があります。 @@ -301,14 +301,14 @@ ja: ical_sharing_modal: title: カレンダーを購読する inital_setup_error_message: データ取得中にエラーが発生しました。 - description: URL(iCalendar)を使って外部クライアントでこのカレンダーを購読し、そこから最新のワークパッケージ情報を見ることができます。 - warning: このURLを他のユーザーと共有しないでください。このリンクがあれば、誰でもアカウントやパスワードなしでワークパッケージの詳細を見ることができます。 - token_name_label: どこで使うのですか? + description: URL(iCalendar)を使用して、外部クライアントでこのカレンダーを購読し、そこから最新のワークパッケージ情報を表示することができます。 + warning: このURLを他のユーザーと共有しないでください。このリンクを持つ誰でもアカウントやパスワードなしでワークパッケージの詳細を表示することができます。 + token_name_label: どこで使うのですか?? token_name_placeholder: 名前を入力してください。例:"電話" token_name_description_text: If you subscribe to this calendar from multiple devices, this name will help you distinguish between them in your access tokens list. copy_url_label: URLをコピー - ical_generation_error_text: カレンダー URL の生成中にエラーが発生しました。 - success_message: URL "%{name}" は正常にクリップボードにコピーされました。サブスクリプションを完了するためにカレンダークライアントに貼り付けてください。 + ical_generation_error_text: カレンダーのURL生成時にエラーが発生しました。 + success_message: URL "%{name}" がクリップボードにコピーされました。カレンダークライアントに貼り付けて購読を完了してください。 label_activate: 有効にする label_assignee: 担当者 label_assignee_alt_text: This work package is assigned to %{name} @@ -321,7 +321,7 @@ ja: label_add_row_before: 前に行を追加 label_add_selected_columns: 選択した列を追加 label_added_by: 追加した人 - label_added_time_by: %{author} が %{age} に追加しました + label_added_time_by: 追加 %{author} %{age} label_ago: "○日前" label_all: 全て label_all_projects: すべてのプロジェクト @@ -432,7 +432,7 @@ ja: label_repository_plural: リポジトリ label_resize_project_menu: Resize project menu label_save_as: 名前をつけて保存 - label_search_columns: 列を検索 + label_search_columns: 列を検索する label_select_watcher: ウォッチャーを選択... label_selected_filter_list: 選択されたフィルタ label_show_attributes: すべての属性を表示 @@ -470,8 +470,8 @@ ja: label_watch_work_package: ワークパッケージをウォッチ label_watcher_added_successfully: ウォッチャーが正常に追加されました ! label_watcher_deleted_successfully: ウォッチャーが正常に削除されました ! - label_work_package_details_you_are_here: あなたは %{tab} %{type} %{subject} のタブにいます。 - label_work_package_context_menu: ワークパッケージのコンテキスト メニュー + label_work_package_details_you_are_here: あなたは %{type} %{subject}の %{tab} タブを表示しています。 + label_work_package_context_menu: ワークパッケージのコンテキストメニュー label_unwatch: ウォッチしない label_unwatch_work_package: ワークパッケージのウォッチを削除 label_uploaded_by: アップロードした人 @@ -502,7 +502,7 @@ ja: label_version_plural: バージョン label_view_has_changed: このビューには未保存の変更があります。 クリックすると保存します。 help_texts: - show_modal: ヘルプテキストを表示 + show_modal: ヘルプテキストを表示する onboarding: buttons: skip: スキップ @@ -510,7 +510,7 @@ ja: got_it: 了承 steps: help_menu: ヘルプ(?)メニューは、その他のヘルプリソースを提供します。ここでは、ユーザーガイド、役立つハウツービデオなどを見つけることができます。
    OpenProjectでの作業をお楽しみください! - members: 新しい メンバー をプロジェクトに招待します。 + members: 新しいメンバーをプロジェクトに招待する。 quick_add_button: ヘッダーナビゲーションにあるプラス(+)アイコンをクリックして、新規プロジェクトを作成したり、同僚を招待したりできます。 sidebar_arrow: プロジェクトのメインメニューに戻るには、左上の矢印を使います。 welcome: 3分間のイントロダクションツアーで、最も重要な機能を学びましょう。
    最後までステップを完了することをお勧めします。ツアーはいつでも再開できます。 @@ -587,12 +587,12 @@ ja: title: 通知設定 pagination: no_other_page: このページだけです。 - pages_skipped: ページがスキップされました。 + pages_skipped: ページスキップ。 page_navigation: ページネーション・ナビゲーション per_page_navigation: ページ毎のアイテム選択 pages: page_number: ページ %{number} - show_per_page: ページあたり %{number} を表示 + show_per_page: ページごとに %{number} placeholders: default: "-" subject: ここにタイトルを入力します @@ -602,7 +602,7 @@ ja: project: autocompleter: label: プロジェクト名の入力補完 - click_to_switch_to_project: 'プロジェクト: %{projectname}' + click_to_switch_to_project: プロジェクト: %{projectname} context: プロジェクトのコンテキスト not_available: プロジェクトなし required_outside_context: 'ワークパッケージを作成するプロジェクトを選択して、すべての属性を確認してください。 上記で有効になっているタイプのプロジェクトのみ選択できます。 @@ -1087,7 +1087,7 @@ ja: toggle_title: ベースライン clear: クリア apply: 適用 - header_description: 過去のいずれかの時点からこのリストに加えられた変更を強調する。 + header_description: 過去の選択した時点からこのリストに加えられた変更をハイライト show_changes_since: 以降の変更を表示する help_description: ベースラインの基準タイムゾーン。 time_description: '現地時間: %{datetime}' diff --git a/config/locales/crowdin/js-no.yml b/config/locales/crowdin/js-no.yml index c261aa86e33..5595dae373e 100644 --- a/config/locales/crowdin/js-no.yml +++ b/config/locales/crowdin/js-no.yml @@ -109,7 +109,7 @@ button_save: Lagre button_settings: Innstillinger button_uncheck_all: Avmerk alle - button_update: Oppdater + button_update: Oppdatèr button_export-atom: Last ned Atom button_generate_pdf: Generate PDF button_create: Opprett diff --git a/config/locales/crowdin/js-ro.yml b/config/locales/crowdin/js-ro.yml index ac2dc0963f8..05b6cff6b0c 100644 --- a/config/locales/crowdin/js-ro.yml +++ b/config/locales/crowdin/js-ro.yml @@ -109,7 +109,7 @@ ro: button_save: Salvează button_settings: Setări button_uncheck_all: Deselectează tot - button_update: Actualizează + button_update: Actualizare button_export-atom: Descarcă Atom button_generate_pdf: Generează PDF button_create: Creează diff --git a/config/locales/crowdin/js-ru.yml b/config/locales/crowdin/js-ru.yml index 35ccc335455..2420a7ae5af 100644 --- a/config/locales/crowdin/js-ru.yml +++ b/config/locales/crowdin/js-ru.yml @@ -109,7 +109,7 @@ ru: button_save: Сохранить button_settings: Настройки button_uncheck_all: Снять все отметки - button_update: Обновить + button_update: Обновление button_export-atom: Скачать Atom button_generate_pdf: Создать PDF button_create: Создать diff --git a/config/locales/crowdin/js-vi.yml b/config/locales/crowdin/js-vi.yml index f567b660ecf..4e34fc537bc 100644 --- a/config/locales/crowdin/js-vi.yml +++ b/config/locales/crowdin/js-vi.yml @@ -109,7 +109,7 @@ vi: button_save: lưu lại button_settings: cài đặt button_uncheck_all: Bỏ chọn tất cả - button_update: cập nhật + button_update: Cập Nhật button_export-atom: Tải xuống nguyên tử button_generate_pdf: Tạo PDF button_create: Tạo mới diff --git a/config/locales/crowdin/ka.yml b/config/locales/crowdin/ka.yml index 5a8ce2a2c65..43f6411abf7 100644 --- a/config/locales/crowdin/ka.yml +++ b/config/locales/crowdin/ka.yml @@ -419,7 +419,8 @@ ka: error_special_characters: Special characters not allowed error_not_fully_uppercased: Must be uppercase error_in_use: Already in use as another project's active handle - error_reserved: Reserved by another project's handle history + error_used_in_past: Reserved by another project's handle history + error_reserved_by_system: Reserved as a system keyword error_unknown: Needs manual review remaining_projects: one: "... 1 more project" @@ -460,8 +461,12 @@ ka: ignore: Ignore changes save: Save changes and continue role_selector: + title: Select roles label: 'Role: %{role}' no_role: Select role + roles: + one: One role selected + other: "%{count} roles selected" blankslate: title: No status transitions configured description: Add statuses to start configuring workflows for this role @@ -1110,6 +1115,8 @@ ka: no_results_title_text: There is currently no news to report. no_results_content_text: Add a news item roles: + edit: + default_for_new_projects_warning: 'This role is configured as the default role given to non-admin users who create a project. Do not remove the following permissions, otherwise project creators will be unable to complete the setup of their newly created projects:' permissions: section_check_all_label: Assign all %{module} permissions section_uncheck_all_label: Unassign all %{module} permissions @@ -2000,6 +2007,29 @@ ka: type: ტიპი version: ვერსია watcher: მეთვალყურე + ordered_persisted_query_entity: + persisted_query: Persisted query + entity: Entity + position: Position + persisted_query: + name: Name + views: Views + filters: Filters + orders: Orders + selects: Selects + persisted_view: + name: Name + query: Query + parent: Parent view + public: Public + user_card_view: + secondary_info: Secondary info + show_status_badge: Show status badge + show_email: Show email + tag_source: Tag source + tag_limit: Tag limit + card_size: Card size + columns_per_row: Columns per row errors: messages: accepted: must be accepted. @@ -2517,6 +2547,7 @@ ka: unsupported_storage_type: is not a supported storage type. storage_error: There was an error with the storage connection. invalid_input: The input is invalid. + invalid_child_for_parent: is not allowed as a parent for this view type. activity: item: created_by_on: created by %{user} on %{datetime} @@ -3391,6 +3422,26 @@ ka: general_text_false: ცრუ gui_validation_error: 1 შეცდომა gui_validation_error_plural: "%{count} errors" + health_reports: + report_component: + checks: + failures: + one: "%{count} check failed" + other: "%{count} checks failed" + success: All checks passed + warnings: + one: "%{count} check returned a warning" + other: "%{count} checks returned a warning" + summary: + failure: Some checks failed and the system does not work as expected. + success: All connections and systems are working as expected. + warning: Some checks returned a warning. This can lead to unexpected behaviour. + result_component: + status: + failed: Failed + passed: Passed + skipped: Skipped + warning: Warning homescreen: additional: projects: Newest visible projects in this instance. @@ -3692,6 +3743,7 @@ ka: label_age: ასაკი label_ago: დღის წინ label_all: ყველა + label_all_uppercase: All label_all_time: სრული დრო label_all_words: ყველა სიტყვა label_all_open_wps: ყველა ღია @@ -4219,6 +4271,7 @@ ka: label_role_new: ახალი როლი label_role_grantable: Grantable role label_role_plural: როლები + label_role_missing_permissions: "%{role} (missing required permissions)" label_role_search: Assign role to new members label_scm: SCM label_scroll_left: Scroll left @@ -4445,7 +4498,7 @@ ka: you_have: გაქვთ logo_alt_text: ლოგო mention: - subject: "%{user_name} mentioned you in #%{id} - %{subject}" + subject: "%{user_name} mentioned you in %{id} - %{subject}" notification: center: To notification center see_in_center: See comment in notification center @@ -4483,7 +4536,7 @@ ka: allowed_actions_html: 'You have the following permissions on this work package: %{allowed_actions}. This can change depending on your project role and permissions.' create_account: To access this work package, you will need to create and activate an account on %{instance}. open_work_package: Open work package - subject: 'Work package #%{id} was shared with you' + subject: Work package %{id} was shared with you enterprise_text: Share work packages with users who are not members of the project. summary: user: "%{user} shared a work package with you with %{role_rights} rights" @@ -4694,6 +4747,18 @@ ka: text_getting_started_description: Get a quick overview of project management and team collaboration with OpenProject. You can restart this video from the help menu. welcome: Welcome to %{app_title} select_language: Please select your language + open_project: + common: + work_package_card_component: + menu: + label_actions: Work package actions + work_package_card_list_component: + header: + label_actions: Open menu + label_work_package_count: + zero: No work packages + one: "%{count} work package" + other: "%{count} work packages" permission_add_work_package_comments: Add comments permission_add_work_packages: Add work packages permission_add_messages: შეტყობინებების დაწერა @@ -4711,7 +4776,6 @@ ka: permission_add_work_package_watchers: მაყურებლების დამატება permission_assign_versions: Assign versions permission_browse_repository: Read-only access to repository (browse and checkout) - permission_change_wiki_parent_page: Change parent wiki page permission_change_work_package_status: Change work package status permission_change_work_package_status_explanation: Allows changing status without Edit work packages permission permission_comment_news: კომენტარი სიახლეებზე @@ -4726,8 +4790,6 @@ ka: permission_delete_own_messages: Delete own messages permission_delete_reportings: Delete reportings permission_delete_timelines: Delete timelines - permission_delete_wiki_pages: Delete wiki pages - permission_delete_wiki_pages_attachments: Delete attachments permission_edit_work_package_comments: Moderate comments permission_edit_work_package_comments_explanation: 'Caution: Users with this permission are able to edit anyone''s comment.' permission_edit_work_packages: Edit work packages @@ -4747,12 +4809,10 @@ ka: permission_edit_wiki_pages: Edit wiki pages permission_export_work_packages: Export work packages permission_export_projects: Export projects - permission_export_wiki_pages: Export wiki pages permission_invite_members_by_email: Invite members by email permission_invite_members_by_email_explanation: 'Allows users to invite new members by email. Invited users will receive an email with a link to set their password and activate their account. Depends on the permission to manage members ' - permission_list_attachments: List attachments permission_log_own_time: საკუთარი დროის ჩაწერა permission_log_time: Log time for other users permission_manage_forums: ფორუმების მართვა @@ -4767,7 +4827,6 @@ ka: permission_manage_subtasks: Manage work package hierarchies permission_manage_versions: Manage versions permission_manage_wiki: ვიკის მართვა - permission_manage_wiki_menu: Manage wiki menu permission_manage_own_working_times: Manage own working times permission_manage_own_working_times_explanation: 'Allows users to manage their own working times, and personal non-working days. @@ -4777,8 +4836,6 @@ ka: ' permission_move_work_packages: Move work packages - permission_protect_wiki_pages: Protect wiki pages - permission_rename_wiki_pages: Rename wiki pages permission_save_queries: ხედების შენახვა permission_search_project: პროექტის ძებნა permission_select_custom_fields: Select custom fields @@ -5157,6 +5214,9 @@ ka: setting_mail_handler_body_delimiter_regex: Truncate emails matching this regex setting_mail_handler_ignore_filenames: Ignored mail attachments setting_new_project_user_role_id: Role given to a non-admin user who creates a project + setting_new_project_user_role_id_caption: 'Only roles that include the permissions to edit project attributes and to manage members are listed, so that the creator can complete the project setup. + + ' setting_new_project_send_confirmation_email: Send notification to author when creating a new project setting_new_project_notification_text: Notification text setting_password_active_rules: Password requirements @@ -5573,6 +5633,7 @@ ka: text_project_identifier_format: Must start with a lowercase letter. Only lowercase letters (a-z), numbers, dashes and underscores are allowed. text_reassign: 'Reassign to work package:' text_regexp_multiline: The regex is applied in a multi-line mode. e.g., ^---\s+ + text_rename_wiki_page: Rename wiki page text_repository_usernames_mapping: |- Select or update the OpenProject user mapped to each username found in the repository log. Users with the same OpenProject and repository username or email are automatically mapped. @@ -6006,9 +6067,6 @@ ka: scopes: წვდომები successful_application_revocation: Revocation of application %{application_name} successful. none_given: No OAuth applications have been granted access to your user account. - x_active_tokens: - one: one active token - other: "%{count} active token" flows: authorization_code: Authorization code flow client_credentials: Client credentials flow @@ -6018,8 +6076,10 @@ ka: client_credentials_impersonation_html: 'By default, OpenProject provides OAuth 2.0 authorization via %{authorization_code_flow_link}. You can optionally enable %{client_credentials_flow_link}, but you must provide a user on whose behalf requests will be performed. ' + confirm_revoke_my_application: + one: Do you really want to remove this application? This will revoke one token active for it. + other: Do you really want to remove this application? This will revoke %{count} tokens active for it. authorization_error: An authorization error has occurred. - revoke_my_application_confirmation: Do you really want to remove this application? This will revoke %{token_count} active for it. my_registered_applications: Registered OAuth applications oauth_client: urn_connection_status: diff --git a/config/locales/crowdin/kk.yml b/config/locales/crowdin/kk.yml index d2fb378c917..79e1b0c6072 100644 --- a/config/locales/crowdin/kk.yml +++ b/config/locales/crowdin/kk.yml @@ -419,7 +419,8 @@ kk: error_special_characters: Special characters not allowed error_not_fully_uppercased: Must be uppercase error_in_use: Already in use as another project's active handle - error_reserved: Reserved by another project's handle history + error_used_in_past: Reserved by another project's handle history + error_reserved_by_system: Reserved as a system keyword error_unknown: Needs manual review remaining_projects: one: "... 1 more project" @@ -460,8 +461,12 @@ kk: ignore: Ignore changes save: Save changes and continue role_selector: + title: Select roles label: 'Role: %{role}' no_role: Select role + roles: + one: One role selected + other: "%{count} roles selected" blankslate: title: No status transitions configured description: Add statuses to start configuring workflows for this role @@ -1110,6 +1115,8 @@ kk: no_results_title_text: There is currently no news to report. no_results_content_text: Add a news item roles: + edit: + default_for_new_projects_warning: 'This role is configured as the default role given to non-admin users who create a project. Do not remove the following permissions, otherwise project creators will be unable to complete the setup of their newly created projects:' permissions: section_check_all_label: Assign all %{module} permissions section_uncheck_all_label: Unassign all %{module} permissions @@ -2000,6 +2007,29 @@ kk: type: Type version: Version watcher: Watcher + ordered_persisted_query_entity: + persisted_query: Persisted query + entity: Entity + position: Position + persisted_query: + name: Name + views: Views + filters: Filters + orders: Orders + selects: Selects + persisted_view: + name: Name + query: Query + parent: Parent view + public: Public + user_card_view: + secondary_info: Secondary info + show_status_badge: Show status badge + show_email: Show email + tag_source: Tag source + tag_limit: Tag limit + card_size: Card size + columns_per_row: Columns per row errors: messages: accepted: must be accepted. @@ -2517,6 +2547,7 @@ kk: unsupported_storage_type: is not a supported storage type. storage_error: There was an error with the storage connection. invalid_input: The input is invalid. + invalid_child_for_parent: is not allowed as a parent for this view type. activity: item: created_by_on: created by %{user} on %{datetime} @@ -3391,6 +3422,26 @@ kk: general_text_false: 'false' gui_validation_error: 1 error gui_validation_error_plural: "%{count} errors" + health_reports: + report_component: + checks: + failures: + one: "%{count} check failed" + other: "%{count} checks failed" + success: All checks passed + warnings: + one: "%{count} check returned a warning" + other: "%{count} checks returned a warning" + summary: + failure: Some checks failed and the system does not work as expected. + success: All connections and systems are working as expected. + warning: Some checks returned a warning. This can lead to unexpected behaviour. + result_component: + status: + failed: Failed + passed: Passed + skipped: Skipped + warning: Warning homescreen: additional: projects: Newest visible projects in this instance. @@ -3692,6 +3743,7 @@ kk: label_age: Age label_ago: days ago label_all: all + label_all_uppercase: All label_all_time: all time label_all_words: All words label_all_open_wps: All open @@ -4219,6 +4271,7 @@ kk: label_role_new: New role label_role_grantable: Grantable role label_role_plural: Roles + label_role_missing_permissions: "%{role} (missing required permissions)" label_role_search: Assign role to new members label_scm: SCM label_scroll_left: Scroll left @@ -4445,7 +4498,7 @@ kk: you_have: You have logo_alt_text: Logo mention: - subject: "%{user_name} mentioned you in #%{id} - %{subject}" + subject: "%{user_name} mentioned you in %{id} - %{subject}" notification: center: To notification center see_in_center: See comment in notification center @@ -4483,7 +4536,7 @@ kk: allowed_actions_html: 'You have the following permissions on this work package: %{allowed_actions}. This can change depending on your project role and permissions.' create_account: To access this work package, you will need to create and activate an account on %{instance}. open_work_package: Open work package - subject: 'Work package #%{id} was shared with you' + subject: Work package %{id} was shared with you enterprise_text: Share work packages with users who are not members of the project. summary: user: "%{user} shared a work package with you with %{role_rights} rights" @@ -4694,6 +4747,18 @@ kk: text_getting_started_description: Get a quick overview of project management and team collaboration with OpenProject. You can restart this video from the help menu. welcome: Welcome to %{app_title} select_language: Please select your language + open_project: + common: + work_package_card_component: + menu: + label_actions: Work package actions + work_package_card_list_component: + header: + label_actions: Open menu + label_work_package_count: + zero: No work packages + one: "%{count} work package" + other: "%{count} work packages" permission_add_work_package_comments: Add comments permission_add_work_packages: Add work packages permission_add_messages: Post messages @@ -4711,7 +4776,6 @@ kk: permission_add_work_package_watchers: Add watchers permission_assign_versions: Assign versions permission_browse_repository: Read-only access to repository (browse and checkout) - permission_change_wiki_parent_page: Change parent wiki page permission_change_work_package_status: Change work package status permission_change_work_package_status_explanation: Allows changing status without Edit work packages permission permission_comment_news: Comment news @@ -4726,8 +4790,6 @@ kk: permission_delete_own_messages: Delete own messages permission_delete_reportings: Delete reportings permission_delete_timelines: Delete timelines - permission_delete_wiki_pages: Delete wiki pages - permission_delete_wiki_pages_attachments: Delete attachments permission_edit_work_package_comments: Moderate comments permission_edit_work_package_comments_explanation: 'Caution: Users with this permission are able to edit anyone''s comment.' permission_edit_work_packages: Edit work packages @@ -4747,12 +4809,10 @@ kk: permission_edit_wiki_pages: Edit wiki pages permission_export_work_packages: Export work packages permission_export_projects: Export projects - permission_export_wiki_pages: Export wiki pages permission_invite_members_by_email: Invite members by email permission_invite_members_by_email_explanation: 'Allows users to invite new members by email. Invited users will receive an email with a link to set their password and activate their account. Depends on the permission to manage members ' - permission_list_attachments: List attachments permission_log_own_time: Log own time permission_log_time: Log time for other users permission_manage_forums: Manage forums @@ -4767,7 +4827,6 @@ kk: permission_manage_subtasks: Manage work package hierarchies permission_manage_versions: Manage versions permission_manage_wiki: Manage wiki - permission_manage_wiki_menu: Manage wiki menu permission_manage_own_working_times: Manage own working times permission_manage_own_working_times_explanation: 'Allows users to manage their own working times, and personal non-working days. @@ -4777,8 +4836,6 @@ kk: ' permission_move_work_packages: Move work packages - permission_protect_wiki_pages: Protect wiki pages - permission_rename_wiki_pages: Rename wiki pages permission_save_queries: Save views permission_search_project: Search project permission_select_custom_fields: Select custom fields @@ -5157,6 +5214,9 @@ kk: setting_mail_handler_body_delimiter_regex: Truncate emails matching this regex setting_mail_handler_ignore_filenames: Ignored mail attachments setting_new_project_user_role_id: Role given to a non-admin user who creates a project + setting_new_project_user_role_id_caption: 'Only roles that include the permissions to edit project attributes and to manage members are listed, so that the creator can complete the project setup. + + ' setting_new_project_send_confirmation_email: Send notification to author when creating a new project setting_new_project_notification_text: Notification text setting_password_active_rules: Password requirements @@ -5573,6 +5633,7 @@ kk: text_project_identifier_format: Must start with a lowercase letter. Only lowercase letters (a-z), numbers, dashes and underscores are allowed. text_reassign: 'Reassign to work package:' text_regexp_multiline: The regex is applied in a multi-line mode. e.g., ^---\s+ + text_rename_wiki_page: Rename wiki page text_repository_usernames_mapping: |- Select or update the OpenProject user mapped to each username found in the repository log. Users with the same OpenProject and repository username or email are automatically mapped. @@ -6006,9 +6067,6 @@ kk: scopes: Permissions successful_application_revocation: Revocation of application %{application_name} successful. none_given: No OAuth applications have been granted access to your user account. - x_active_tokens: - one: one active token - other: "%{count} active token" flows: authorization_code: Authorization code flow client_credentials: Client credentials flow @@ -6018,8 +6076,10 @@ kk: client_credentials_impersonation_html: 'By default, OpenProject provides OAuth 2.0 authorization via %{authorization_code_flow_link}. You can optionally enable %{client_credentials_flow_link}, but you must provide a user on whose behalf requests will be performed. ' + confirm_revoke_my_application: + one: Do you really want to remove this application? This will revoke one token active for it. + other: Do you really want to remove this application? This will revoke %{count} tokens active for it. authorization_error: An authorization error has occurred. - revoke_my_application_confirmation: Do you really want to remove this application? This will revoke %{token_count} active for it. my_registered_applications: Registered OAuth applications oauth_client: urn_connection_status: diff --git a/config/locales/crowdin/ko.yml b/config/locales/crowdin/ko.yml index c909d077cec..27ce2a03c21 100644 --- a/config/locales/crowdin/ko.yml +++ b/config/locales/crowdin/ko.yml @@ -411,7 +411,8 @@ ko: error_special_characters: 특수 문자는 허용되지 않음 error_not_fully_uppercased: 대문자여야 함 error_in_use: 이미 다른 프로젝트의 활성 핸들로 사용 중입니다 - error_reserved: 다른 프로젝트의 핸들 기록에 의해 예약되었습니다 + error_used_in_past: 다른 프로젝트의 핸들 기록에 의해 예약되었습니다 + error_reserved_by_system: 시스템 키워드로 예약되었습니다 error_unknown: 수동 검토가 필요합니다 remaining_projects: other: "... %{count}개의 추가 프로젝트" @@ -450,8 +451,11 @@ ko: ignore: 변경 사항 무시 save: 변경 사항을 저장하고 계속하기 role_selector: + title: 역할 선택 label: '역할: %{role}' no_role: 역할 선택 + roles: + other: "%{count} roles selected" blankslate: title: 구성된 상태 전환 없음 description: 상태를 추가하여 이 역할에 대한 워크플로 구성을 시작합니다 @@ -1093,6 +1097,8 @@ ko: no_results_title_text: 보고할 소식이 없습니다. no_results_content_text: 소식 항목 추가 roles: + edit: + default_for_new_projects_warning: '이 역할은 프로젝트를 만드는 비관리자 사용자에게 지정된 기본 역할로 구성됩니다. 다음 권한을 제거하지 마세요. 그렇지 않으면 프로젝트 생성자가 새로 생성된 프로젝트의 설정을 완료할 수 없게 됩니다:' permissions: section_check_all_label: 모든 %{module} 권한 할당 section_uncheck_all_label: 모든 %{module} 권한 할당 취소 @@ -1978,6 +1984,29 @@ ko: type: 타입 version: 버전 watcher: 주시자 + ordered_persisted_query_entity: + persisted_query: 지속 쿼리 + entity: 엔티티 + position: 위치 + persisted_query: + name: 이름 + views: 보기 + filters: 필터 + orders: 주문 + selects: 선택 + persisted_view: + name: 이름 + query: 쿼리 + parent: 부모 보기 + public: 공개 + user_card_view: + secondary_info: 보조 정보 + show_status_badge: 상태 배지 표시 + show_email: 이메일 표시 + tag_source: 태그 소스 + tag_limit: 태그 제한 + card_size: 카드 크기 + columns_per_row: 행별 열 errors: messages: accepted: 허용 되어야 합니다. @@ -2475,6 +2504,7 @@ ko: unsupported_storage_type: "- 지원되는 저장소 유형이 아닙니다." storage_error: 저장소 연결에 오류가 발생했습니다. invalid_input: 입력이 잘못되었습니다. + invalid_child_for_parent: "- 이 보기 유형의 부모로 허용되지 않습니다." activity: item: created_by_on: "%{datetime}, %{user} 님이 생성함" @@ -3346,6 +3376,24 @@ ko: general_text_false: 'false' gui_validation_error: 1개 오류 gui_validation_error_plural: "%{count}개 오류" + health_reports: + report_component: + checks: + failures: + other: "%{count}개 검사 실패함" + success: 모든 검사 통과함 + warnings: + other: "%{count}개 검사에서 경고가 반환되었습니다" + summary: + failure: 일부 검사가 실패했으며 시스템이 예상대로 작동되지 않습니다. + success: 모든 연결과 시스템이 예상대로 작동 중입니다. + warning: 일부 검사에서 경고가 반환되었습니다. 이로 인해 예상치 못한 동작이 발생할 수 있습니다. + result_component: + status: + failed: 실패함 + passed: 통과함 + skipped: 건너뜀 + warning: 경고 homescreen: additional: projects: 이 경우 최신 표시 프로젝트입니다. @@ -3647,6 +3695,7 @@ ko: label_age: 기간 label_ago: 일 전 label_all: 모두 + label_all_uppercase: 모두 label_all_time: 모든 시간 label_all_words: 모든 단어 label_all_open_wps: 모두 열림 @@ -4174,6 +4223,7 @@ ko: label_role_new: 새 역할 label_role_grantable: 부여 가능한 역할 label_role_plural: 역할 + label_role_missing_permissions: "%{role}(필수 권한 누락)" label_role_search: 새 멤버에게 역할 할당 label_scm: SCM label_scroll_left: 왼쪽으로 스크롤 @@ -4397,7 +4447,7 @@ ko: you_have: 회원님은 logo_alt_text: 로고 mention: - subject: "%{user_name} 님이 #%{id} - %{subject}에서 회원님을 멘션했습니다" + subject: "%{user_name} 님이 %{id} - %{subject}에서 귀하를 멘션했습니다" notification: center: 알림 센터로 see_in_center: 알림 센터의 코멘트 보기 @@ -4434,7 +4484,7 @@ ko: allowed_actions_html: '이 작업 패키지에 대한 다음과 같은 권한을 가지고 있습니다: %{allowed_actions}. 이는 프로젝트 역할 및 권한에 따라 변경될 수 있습니다.' create_account: 이 작업 패키지에 액세스하려면 %{instance}에서 계정을 생성하고 활성화해야 합니다. open_work_package: 작업 패키지 열기 - subject: '작업 패키지 #%{id}이(가) 귀하와 공유되었습니다' + subject: 작업 패키지 %{id}이(가) 귀하와 공유되었습니다 enterprise_text: 프로젝트 멤버가 아닌 사용자와 작업 패키지를 공유합니다. summary: user: "%{user} 님이 %{role_rights} 권한으로 작업 패키지를 귀하와 공유했습니다." @@ -4648,6 +4698,18 @@ ko: text_getting_started_description: OpenProject로 프로젝트 관리 및 팀 공동 작업에 대한 간략한 개요를 가져올 수 있습니다. 도움말 메뉴에서 이 동영상을 다시 시작할 수 있습니다. welcome: "%{app_title}입니다." select_language: 언어를 선택하세요. + open_project: + common: + work_package_card_component: + menu: + label_actions: 작업 패키지 액션 + work_package_card_list_component: + header: + label_actions: Open menu + label_work_package_count: + zero: No work packages + one: "%{count} work package" + other: "%{count} work packages" permission_add_work_package_comments: 코멘트 추가 permission_add_work_packages: 작업 패키지 추가 permission_add_messages: 메시지 게시 @@ -4665,7 +4727,6 @@ ko: permission_add_work_package_watchers: 주시자 추가 permission_assign_versions: 버전 할당 permission_browse_repository: 리포지토리에 대한 읽기 전용 액세스(찾아보기 및 체크아웃) - permission_change_wiki_parent_page: 부모 위키 페이지 변경 permission_change_work_package_status: 작업 패키지 상태 변경 permission_change_work_package_status_explanation: 작업 패키지 편집 권한 없이 상태 변경을 허용합니다 permission_comment_news: 뉴스에 코멘트 달기 @@ -4680,8 +4741,6 @@ ko: permission_delete_own_messages: 내 메시지 삭제 permission_delete_reportings: 보고 삭제 permission_delete_timelines: 타임라인 삭제 - permission_delete_wiki_pages: 위키 페이지 삭제 - permission_delete_wiki_pages_attachments: 첨부 파일 삭제 permission_edit_work_package_comments: 코멘트 조정 permission_edit_work_package_comments_explanation: '주의: 이 권한이 있는 사용자는 다른 사용자의 코멘트를 편집할 수 있습니다.' permission_edit_work_packages: 작업 패키지 편집 @@ -4701,12 +4760,10 @@ ko: permission_edit_wiki_pages: 위키 페이지 편집 permission_export_work_packages: 작업 패키지 내보내기 permission_export_projects: 프로젝트 내보내기 - permission_export_wiki_pages: 위키 페이지 내보내기 permission_invite_members_by_email: 이메일로 멤버 초대 permission_invite_members_by_email_explanation: '사용자가 이메일로 새로운 멤버를 초대할 수 있습니다. 초대된 사용자는 암호를 설정하고 계정을 활성화하는 링크가 포함된 이메일을 받게 됩니다. 멤버를 관리하는 권한에 따라 다릅니다 ' - permission_list_attachments: 첨부 파일 나열 permission_log_own_time: 내 시간 기록 permission_log_time: 다른 사용자의 시간 기록 permission_manage_forums: 포럼 관리 @@ -4724,7 +4781,6 @@ ko: This guide is an evolving description of the steps taken from collecting requirements all the way to implementation and release. The goal is to provide a single source of truth and provide a guideline for team members, community contributors and interested customers. As such this document will continuously be updated. permission_manage_versions: 버전 관리 permission_manage_wiki: 위키 관리 - permission_manage_wiki_menu: 위키 메뉴 관리 permission_manage_own_working_times: 내 근무 시간 관리 permission_manage_own_working_times_explanation: '사용자가 자신의 근무 시간과 개인 휴무일을 관리할 수 있습니다. @@ -4734,8 +4790,6 @@ ko: ' permission_move_work_packages: 작업 패키지 이동 - permission_protect_wiki_pages: 위키 페이지 보호 - permission_rename_wiki_pages: 위키 페이지 이름 바꾸기 permission_save_queries: 보기 저장 permission_search_project: 프로젝트 검색 permission_select_custom_fields: 사용자 지정 필드 선택 @@ -5102,6 +5156,9 @@ ko: setting_mail_handler_body_delimiter_regex: 이 정규식에 일치하는 이메일을 자름 setting_mail_handler_ignore_filenames: 무시된 메일 첨부 파일 setting_new_project_user_role_id: 프로젝트를 만드는 비관리자 사용자에게 지정된 역할 + setting_new_project_user_role_id_caption: '프로젝트 특성을 편집하고 멤버를 관리할 수 있는 권한이 포함된 역할만 나열되므로 생성자가 프로젝트 설정을 완료할 수 있습니다. + + ' setting_new_project_send_confirmation_email: 새 프로젝트 생성 시 작성자에게 알림 보내기 setting_new_project_notification_text: 알림 텍스트 setting_password_active_rules: 비밀번호 요구 사항 @@ -5518,6 +5575,7 @@ ko: text_project_identifier_format: 소문자로 시작해야 합니다. 소문자(a-z), 숫자, 대시 및 밑줄만 허용됩니다. text_reassign: '작업 패키지에 다시 할당:' text_regexp_multiline: 멀티라인 모드에서 정규식이 적용됩니다. 예, e.g., ^---\s+ + text_rename_wiki_page: 위키 페이지 이름 바꾸기 text_repository_usernames_mapping: |- 리포지토리 로그에 있는 각 사용자 이름에 매핑된 OpenProject 사용자를 선택하거나 업데이트하세요. 동일한 OpenProject 및 리포지토리 사용자 이름이나 이메일을 가진 사용자가 자동으로 매핑됩니다. @@ -5950,8 +6008,6 @@ ko: scopes: 권한 successful_application_revocation: 애플리케이션 %{application_name} 취소에 성공했습니다. none_given: 사용자 계정에 대한 액세스 권한이 OAuth 애플리케이션에 부여되지 않았습니다. - x_active_tokens: - other: "%{count}개 활성 토큰" flows: authorization_code: 권한 부여 코드 흐름 client_credentials: 클라이언트 자격 증명 흐름 @@ -5961,8 +6017,9 @@ ko: client_credentials_impersonation_html: '기본적으로, OpenProject는 %{authorization_code_flow_link}에서 OAuth 2.0 인증을 제공합니다. 선택적으로 %{client_credentials_flow_link}을(를) 활성화할 수 있지만, 대신하여 요청을 수행할 대상 사용자를 제공해야 합니다. ' + confirm_revoke_my_application: + other: 이 애플리케이션을 제거하시겠습니까? 그러면 이 애플리케이션에 대해 활성화된 토큰 %{count}개가 취소됩니다. authorization_error: 권한 부여 오류가 발생했습니다. - revoke_my_application_confirmation: 이 애플리케이션을 제거하시겠습니까? 그러면 이 애플리케이션에 대해 활성화된 %{token_count}개가 취소됩니다. my_registered_applications: 등록된 OAuth 애플리케이션 oauth_client: urn_connection_status: diff --git a/config/locales/crowdin/lt.yml b/config/locales/crowdin/lt.yml index 37b2beea762..f87503f38d7 100644 --- a/config/locales/crowdin/lt.yml +++ b/config/locales/crowdin/lt.yml @@ -431,7 +431,8 @@ lt: error_special_characters: Special characters not allowed error_not_fully_uppercased: Must be uppercase error_in_use: Already in use as another project's active handle - error_reserved: Reserved by another project's handle history + error_used_in_past: Reserved by another project's handle history + error_reserved_by_system: Reserved as a system keyword error_unknown: Needs manual review remaining_projects: one: "... 1 more project" @@ -476,8 +477,14 @@ lt: ignore: Ignore changes save: Save changes and continue role_selector: + title: Select roles label: 'Role: %{role}' no_role: Select role + roles: + one: One role selected + few: "%{count} roles selected" + many: "%{count} roles selected" + other: "%{count} roles selected" blankslate: title: No status transitions configured description: Add statuses to start configuring workflows for this role @@ -1139,6 +1146,8 @@ lt: no_results_title_text: Nėra jokių naujienų. no_results_content_text: Pridėti kaip naujieną roles: + edit: + default_for_new_projects_warning: 'This role is configured as the default role given to non-admin users who create a project. Do not remove the following permissions, otherwise project creators will be unable to complete the setup of their newly created projects:' permissions: section_check_all_label: Assign all %{module} permissions section_uncheck_all_label: Unassign all %{module} permissions @@ -2039,6 +2048,29 @@ lt: type: Tipas version: Versija watcher: Stebėtojas + ordered_persisted_query_entity: + persisted_query: Persisted query + entity: Entity + position: Position + persisted_query: + name: Name + views: Views + filters: Filters + orders: Orders + selects: Selects + persisted_view: + name: Name + query: Query + parent: Parent view + public: Public + user_card_view: + secondary_info: Secondary info + show_status_badge: Show status badge + show_email: Show email + tag_source: Tag source + tag_limit: Tag limit + card_size: Card size + columns_per_row: Columns per row errors: messages: accepted: turi būti patvirtinta. @@ -2592,6 +2624,7 @@ lt: unsupported_storage_type: is not a supported storage type. storage_error: There was an error with the storage connection. invalid_input: The input is invalid. + invalid_child_for_parent: is not allowed as a parent for this view type. activity: item: created_by_on: "%{datetime} sukūrė %{user}" @@ -3512,6 +3545,30 @@ lt: general_text_false: netiesa gui_validation_error: 1 klaida gui_validation_error_plural: "%{count} klaidos (-a, -ų)" + health_reports: + report_component: + checks: + failures: + one: "%{count} check failed" + few: "%{count} checks failed" + many: "%{count} checks failed" + other: "%{count} checks failed" + success: All checks passed + warnings: + one: "%{count} check returned a warning" + few: "%{count} checks returned a warning" + many: "%{count} checks returned a warning" + other: "%{count} checks returned a warning" + summary: + failure: Some checks failed and the system does not work as expected. + success: All connections and systems are working as expected. + warning: Some checks returned a warning. This can lead to unexpected behaviour. + result_component: + status: + failed: Failed + passed: Passed + skipped: Skipped + warning: Warning homescreen: additional: projects: Naujausi matomi projektai. @@ -3813,6 +3870,7 @@ lt: label_age: Amžius label_ago: dienų prieš label_all: visi + label_all_uppercase: All label_all_time: visas laikas label_all_words: Visi žodžiai label_all_open_wps: Visi atviri @@ -4340,6 +4398,7 @@ lt: label_role_new: Naujas vaidmuo label_role_grantable: Grantable role label_role_plural: Vaidmenys + label_role_missing_permissions: "%{role} (missing required permissions)" label_role_search: Priskirti vaidmenį naujiems nariams label_scm: SCM label_scroll_left: Scroll left @@ -4572,7 +4631,7 @@ lt: you_have: Jūs turite logo_alt_text: Logotipas mention: - subject: "%{user_name} paminėjo jus #%{id} - %{subject}" + subject: "%{user_name} mentioned you in %{id} - %{subject}" notification: center: Į pranešimų centrą see_in_center: Žiūrėkite komentarą pranešimų centre @@ -4612,7 +4671,7 @@ lt: allowed_actions_html: 'You have the following permissions on this work package: %{allowed_actions}. This can change depending on your project role and permissions.' create_account: Kad prieitumėte prie darbo paketo, jums reikės sukurti ir aktyvuoti %{instance} paskyrą. open_work_package: Atverti darbo paketą - subject: 'Su jumis buvo pabendrintas darbo paketas #%{id}' + subject: Work package %{id} was shared with you enterprise_text: Dalintis darbo paketais su naudotojais, kurie nėra projekto nariai. summary: user: "%{user} bendrino darbo paketą su jumis su teisėmis %{role_rights}" @@ -4827,6 +4886,18 @@ lt: text_getting_started_description: Gaukite greitą apžvalgą apie projektų valdymą ir komandos bendradarbiavimą naudojant OpenProject. Šį video galite paleisti iš naujo per pagalbos meniu. welcome: Jus sveikina %{app_title} select_language: Pasirinkite kalbą + open_project: + common: + work_package_card_component: + menu: + label_actions: Work package actions + work_package_card_list_component: + header: + label_actions: Open menu + label_work_package_count: + zero: No work packages + one: "%{count} work package" + other: "%{count} work packages" permission_add_work_package_comments: Add comments permission_add_work_packages: Pridėti darbų paketų permission_add_messages: Skelbti pranešimus @@ -4844,7 +4915,6 @@ lt: permission_add_work_package_watchers: Pridėti stebėtojus permission_assign_versions: Priskirti versijas permission_browse_repository: Tik skaityti prieiga prie repozitorijos (naršyti ir pasiimti) - permission_change_wiki_parent_page: Pakeisti tėvinį wiki puslapį permission_change_work_package_status: Keisti darbo paketo būseną permission_change_work_package_status_explanation: Leidžia keisti būseną neturint darbo paketo keitimo teisių permission_comment_news: Komentuoti naujienas @@ -4859,8 +4929,6 @@ lt: permission_delete_own_messages: Pašalinti savo pranešimus permission_delete_reportings: Šalinti ataskaitas permission_delete_timelines: Šalinti laiko juostas - permission_delete_wiki_pages: Pašalinti wiki puslapius - permission_delete_wiki_pages_attachments: Pašalinti priedus permission_edit_work_package_comments: Moderate comments permission_edit_work_package_comments_explanation: 'Caution: Users with this permission are able to edit anyone''s comment.' permission_edit_work_packages: Redaguoti darbų paketus @@ -4880,12 +4948,10 @@ lt: permission_edit_wiki_pages: Redaguoti wiki puslapius permission_export_work_packages: Eksportuoti darbų paketus permission_export_projects: Export projects - permission_export_wiki_pages: Eksportuoti wiki puslapius permission_invite_members_by_email: Invite members by email permission_invite_members_by_email_explanation: 'Allows users to invite new members by email. Invited users will receive an email with a link to set their password and activate their account. Depends on the permission to manage members ' - permission_list_attachments: Pateikti priedus permission_log_own_time: Registruoti savo laiką permission_log_time: Registruoti kitų naudotojų laiką permission_manage_forums: Valdyti forumus @@ -4900,7 +4966,6 @@ lt: permission_manage_subtasks: Valdyti darbų paketo hierarchijas permission_manage_versions: Valdyti versijas permission_manage_wiki: Valdyti wiki - permission_manage_wiki_menu: Valdyti wiki meniu permission_manage_own_working_times: Manage own working times permission_manage_own_working_times_explanation: 'Allows users to manage their own working times, and personal non-working days. @@ -4910,8 +4975,6 @@ lt: ' permission_move_work_packages: Perkelti darbų paketus - permission_protect_wiki_pages: Apsaugoti wiki puslapius - permission_rename_wiki_pages: Pervadinti wiki puslapius permission_save_queries: Įrašyti vaizdus permission_search_project: Ieškoti projekte permission_select_custom_fields: Parinkite savo laukus @@ -5284,6 +5347,9 @@ lt: setting_mail_handler_body_delimiter_regex: Sutrumpinti laiškus, atitinkančius šią reguliarią išraišką setting_mail_handler_ignore_filenames: Ignoruoti laiško priedai setting_new_project_user_role_id: Vaidmuo suteiktas naudotojui, kuris nėra administratorius ir kuris kuria projektą + setting_new_project_user_role_id_caption: 'Only roles that include the permissions to edit project attributes and to manage members are listed, so that the creator can complete the project setup. + + ' setting_new_project_send_confirmation_email: Send notification to author when creating a new project setting_new_project_notification_text: Notification text setting_password_active_rules: Password requirements @@ -5698,6 +5764,7 @@ lt: text_project_identifier_format: Must start with a lowercase letter. Only lowercase letters (a-z), numbers, dashes and underscores are allowed. text_reassign: 'Iš naujo priskirti darbų paketui:' text_regexp_multiline: Reguliarioji išraiška yra pritaikoma daug eilučių režime, pvz., ^---\s+ + text_rename_wiki_page: Rename wiki page text_repository_usernames_mapping: |- Parinkite ar atnaujinkite OpenProject naudotoją, kuris paminėtas repozitorijos žurnale. Naudotojai, turintys tą patį OpenProject ir repozitorijos vardą ar el. paštą yra automatiškai surišti. @@ -6137,11 +6204,6 @@ lt: scopes: Leidimai successful_application_revocation: Aplikacijos %{application_name} atšaukimas sėkmingas. none_given: Jokioms OAuth aplikacijoms nesuteikta prieiga prie jūsų paskyros. - x_active_tokens: - one: vienas akytus žetonas - few: "%{count} aktyvių žetonų" - many: "%{count} aktyvių žetonų" - other: "%{count} aktyvių žetonų" flows: authorization_code: Autorizacijos kodo eiga client_credentials: Kliento įgaliojimų eiga @@ -6151,8 +6213,12 @@ lt: client_credentials_impersonation_html: 'Pagal nutylėjimą OpenProject teikia OAuth 2.0 autorizaciją per %{authorization_code_flow_link}. Pasirinktinai galite įjungti %{client_credentials_flow_link}, bet privalote pateikti naudotoją, kurio vardu bus vykdomos visos užklausos. ' + confirm_revoke_my_application: + one: Do you really want to remove this application? This will revoke one token active for it. + few: Do you really want to remove this application? This will revoke %{count} tokens active for it. + many: Do you really want to remove this application? This will revoke %{count} tokens active for it. + other: Do you really want to remove this application? This will revoke %{count} tokens active for it. authorization_error: Įvyko autorizacijos klaida. - revoke_my_application_confirmation: Ar tikrai norite išimti šią aplikaciją? Tai atšauks %{token_count} aktyvių žetonų. my_registered_applications: Registruotos OAuth aplikacijos oauth_client: urn_connection_status: diff --git a/config/locales/crowdin/lv.yml b/config/locales/crowdin/lv.yml index 400fa811afb..8d77819148b 100644 --- a/config/locales/crowdin/lv.yml +++ b/config/locales/crowdin/lv.yml @@ -425,7 +425,8 @@ lv: error_special_characters: Special characters not allowed error_not_fully_uppercased: Must be uppercase error_in_use: Already in use as another project's active handle - error_reserved: Reserved by another project's handle history + error_used_in_past: Reserved by another project's handle history + error_reserved_by_system: Reserved as a system keyword error_unknown: Needs manual review remaining_projects: zero: "... %{count} more projects" @@ -468,8 +469,13 @@ lv: ignore: Ignore changes save: Save changes and continue role_selector: + title: Select roles label: 'Role: %{role}' no_role: Select role + roles: + zero: "%{count} roles selected" + one: One role selected + other: "%{count} roles selected" blankslate: title: No status transitions configured description: Add statuses to start configuring workflows for this role @@ -1125,6 +1131,8 @@ lv: no_results_title_text: Pašlaik nav nevienu ziņu. no_results_content_text: Pievienot ziņu vienumu roles: + edit: + default_for_new_projects_warning: 'This role is configured as the default role given to non-admin users who create a project. Do not remove the following permissions, otherwise project creators will be unable to complete the setup of their newly created projects:' permissions: section_check_all_label: Assign all %{module} permissions section_uncheck_all_label: Unassign all %{module} permissions @@ -2020,6 +2028,29 @@ lv: type: Veids version: Versija watcher: Sekotājs + ordered_persisted_query_entity: + persisted_query: Persisted query + entity: Entity + position: Position + persisted_query: + name: Name + views: Views + filters: Filters + orders: Orders + selects: Selects + persisted_view: + name: Name + query: Query + parent: Parent view + public: Public + user_card_view: + secondary_info: Secondary info + show_status_badge: Show status badge + show_email: Show email + tag_source: Tag source + tag_limit: Tag limit + card_size: Card size + columns_per_row: Columns per row errors: messages: accepted: ir jāapstiprina. @@ -2555,6 +2586,7 @@ lv: unsupported_storage_type: is not a supported storage type. storage_error: There was an error with the storage connection. invalid_input: The input is invalid. + invalid_child_for_parent: is not allowed as a parent for this view type. activity: item: created_by_on: created by %{user} on %{datetime} @@ -3452,6 +3484,28 @@ lv: general_text_false: 'false' gui_validation_error: 1 error gui_validation_error_plural: "%{count} errors" + health_reports: + report_component: + checks: + failures: + zero: "%{count} checks failed" + one: "%{count} check failed" + other: "%{count} checks failed" + success: All checks passed + warnings: + zero: "%{count} checks returned a warning" + one: "%{count} check returned a warning" + other: "%{count} checks returned a warning" + summary: + failure: Some checks failed and the system does not work as expected. + success: All connections and systems are working as expected. + warning: Some checks returned a warning. This can lead to unexpected behaviour. + result_component: + status: + failed: Failed + passed: Passed + skipped: Skipped + warning: Warning homescreen: additional: projects: Jaunākie redzamie projekti šajā instancē. @@ -3753,6 +3807,7 @@ lv: label_age: Age label_ago: days ago label_all: all + label_all_uppercase: All label_all_time: all time label_all_words: All words label_all_open_wps: All open @@ -4280,6 +4335,7 @@ lv: label_role_new: New role label_role_grantable: Grantable role label_role_plural: Lomas + label_role_missing_permissions: "%{role} (missing required permissions)" label_role_search: Assign role to new members label_scm: SCM label_scroll_left: Scroll left @@ -4509,7 +4565,7 @@ lv: you_have: You have logo_alt_text: Logo mention: - subject: "%{user_name} mentioned you in #%{id} - %{subject}" + subject: "%{user_name} mentioned you in %{id} - %{subject}" notification: center: To notification center see_in_center: See comment in notification center @@ -4548,7 +4604,7 @@ lv: allowed_actions_html: 'You have the following permissions on this work package: %{allowed_actions}. This can change depending on your project role and permissions.' create_account: To access this work package, you will need to create and activate an account on %{instance}. open_work_package: Open work package - subject: 'Work package #%{id} was shared with you' + subject: Work package %{id} was shared with you enterprise_text: Share work packages with users who are not members of the project. summary: user: "%{user} shared a work package with you with %{role_rights} rights" @@ -4760,6 +4816,18 @@ lv: text_getting_started_description: Get a quick overview of project management and team collaboration with OpenProject. You can restart this video from the help menu. welcome: Welcome to %{app_title} select_language: Please select your language + open_project: + common: + work_package_card_component: + menu: + label_actions: Work package actions + work_package_card_list_component: + header: + label_actions: Open menu + label_work_package_count: + zero: No work packages + one: "%{count} work package" + other: "%{count} work packages" permission_add_work_package_comments: Add comments permission_add_work_packages: Add work packages permission_add_messages: Post messages @@ -4777,7 +4845,6 @@ lv: permission_add_work_package_watchers: Pievienot sekotājus permission_assign_versions: Assign versions permission_browse_repository: Read-only access to repository (browse and checkout) - permission_change_wiki_parent_page: Change parent wiki page permission_change_work_package_status: Change work package status permission_change_work_package_status_explanation: Allows changing status without Edit work packages permission permission_comment_news: Comment news @@ -4792,8 +4859,6 @@ lv: permission_delete_own_messages: Delete own messages permission_delete_reportings: Delete reportings permission_delete_timelines: Delete timelines - permission_delete_wiki_pages: Delete wiki pages - permission_delete_wiki_pages_attachments: Delete attachments permission_edit_work_package_comments: Moderate comments permission_edit_work_package_comments_explanation: 'Caution: Users with this permission are able to edit anyone''s comment.' permission_edit_work_packages: Edit work packages @@ -4813,12 +4878,10 @@ lv: permission_edit_wiki_pages: Edit wiki pages permission_export_work_packages: Export work packages permission_export_projects: Export projects - permission_export_wiki_pages: Export wiki pages permission_invite_members_by_email: Invite members by email permission_invite_members_by_email_explanation: 'Allows users to invite new members by email. Invited users will receive an email with a link to set their password and activate their account. Depends on the permission to manage members ' - permission_list_attachments: List attachments permission_log_own_time: Log own time permission_log_time: Log time for other users permission_manage_forums: Manage forums @@ -4833,7 +4896,6 @@ lv: permission_manage_subtasks: Manage work package hierarchies permission_manage_versions: Manage versions permission_manage_wiki: Manage wiki - permission_manage_wiki_menu: Manage wiki menu permission_manage_own_working_times: Manage own working times permission_manage_own_working_times_explanation: 'Allows users to manage their own working times, and personal non-working days. @@ -4843,8 +4905,6 @@ lv: ' permission_move_work_packages: Move work packages - permission_protect_wiki_pages: Protect wiki pages - permission_rename_wiki_pages: Rename wiki pages permission_save_queries: Save views permission_search_project: Search project permission_select_custom_fields: Select custom fields @@ -5223,6 +5283,9 @@ lv: setting_mail_handler_body_delimiter_regex: Truncate emails matching this regex setting_mail_handler_ignore_filenames: Ignored mail attachments setting_new_project_user_role_id: Role given to a non-admin user who creates a project + setting_new_project_user_role_id_caption: 'Only roles that include the permissions to edit project attributes and to manage members are listed, so that the creator can complete the project setup. + + ' setting_new_project_send_confirmation_email: Send notification to author when creating a new project setting_new_project_notification_text: Notification text setting_password_active_rules: Password requirements @@ -5639,6 +5702,7 @@ lv: text_project_identifier_format: Must start with a lowercase letter. Only lowercase letters (a-z), numbers, dashes and underscores are allowed. text_reassign: 'Reassign to work package:' text_regexp_multiline: The regex is applied in a multi-line mode. e.g., ^---\s+ + text_rename_wiki_page: Rename wiki page text_repository_usernames_mapping: |- Select or update the OpenProject user mapped to each username found in the repository log. Users with the same OpenProject and repository username or email are automatically mapped. @@ -6073,10 +6137,6 @@ lv: scopes: Permissions successful_application_revocation: Revocation of application %{application_name} successful. none_given: No OAuth applications have been granted access to your user account. - x_active_tokens: - zero: "%{count} active token" - one: one active token - other: "%{count} active token" flows: authorization_code: Authorization code flow client_credentials: Client credentials flow @@ -6086,8 +6146,11 @@ lv: client_credentials_impersonation_html: 'By default, OpenProject provides OAuth 2.0 authorization via %{authorization_code_flow_link}. You can optionally enable %{client_credentials_flow_link}, but you must provide a user on whose behalf requests will be performed. ' + confirm_revoke_my_application: + zero: Do you really want to remove this application? This will revoke %{count} tokens active for it. + one: Do you really want to remove this application? This will revoke one token active for it. + other: Do you really want to remove this application? This will revoke %{count} tokens active for it. authorization_error: An authorization error has occurred. - revoke_my_application_confirmation: Do you really want to remove this application? This will revoke %{token_count} active for it. my_registered_applications: Registered OAuth applications oauth_client: urn_connection_status: diff --git a/config/locales/crowdin/mn.yml b/config/locales/crowdin/mn.yml index cf1db0edd86..387168c3c6d 100644 --- a/config/locales/crowdin/mn.yml +++ b/config/locales/crowdin/mn.yml @@ -419,7 +419,8 @@ mn: error_special_characters: Special characters not allowed error_not_fully_uppercased: Must be uppercase error_in_use: Already in use as another project's active handle - error_reserved: Reserved by another project's handle history + error_used_in_past: Reserved by another project's handle history + error_reserved_by_system: Reserved as a system keyword error_unknown: Needs manual review remaining_projects: one: "... 1 more project" @@ -460,8 +461,12 @@ mn: ignore: Ignore changes save: Save changes and continue role_selector: + title: Select roles label: 'Role: %{role}' no_role: Select role + roles: + one: One role selected + other: "%{count} roles selected" blankslate: title: No status transitions configured description: Add statuses to start configuring workflows for this role @@ -1110,6 +1115,8 @@ mn: no_results_title_text: There is currently no news to report. no_results_content_text: Add a news item roles: + edit: + default_for_new_projects_warning: 'This role is configured as the default role given to non-admin users who create a project. Do not remove the following permissions, otherwise project creators will be unable to complete the setup of their newly created projects:' permissions: section_check_all_label: Assign all %{module} permissions section_uncheck_all_label: Unassign all %{module} permissions @@ -2000,6 +2007,29 @@ mn: type: Type version: Хувилбар watcher: Watcher + ordered_persisted_query_entity: + persisted_query: Persisted query + entity: Entity + position: Position + persisted_query: + name: Name + views: Views + filters: Filters + orders: Orders + selects: Selects + persisted_view: + name: Name + query: Query + parent: Parent view + public: Public + user_card_view: + secondary_info: Secondary info + show_status_badge: Show status badge + show_email: Show email + tag_source: Tag source + tag_limit: Tag limit + card_size: Card size + columns_per_row: Columns per row errors: messages: accepted: must be accepted. @@ -2517,6 +2547,7 @@ mn: unsupported_storage_type: is not a supported storage type. storage_error: There was an error with the storage connection. invalid_input: The input is invalid. + invalid_child_for_parent: is not allowed as a parent for this view type. activity: item: created_by_on: created by %{user} on %{datetime} @@ -3391,6 +3422,26 @@ mn: general_text_false: 'false' gui_validation_error: 1 error gui_validation_error_plural: "%{count} errors" + health_reports: + report_component: + checks: + failures: + one: "%{count} check failed" + other: "%{count} checks failed" + success: All checks passed + warnings: + one: "%{count} check returned a warning" + other: "%{count} checks returned a warning" + summary: + failure: Some checks failed and the system does not work as expected. + success: All connections and systems are working as expected. + warning: Some checks returned a warning. This can lead to unexpected behaviour. + result_component: + status: + failed: Failed + passed: Passed + skipped: Skipped + warning: Warning homescreen: additional: projects: Newest visible projects in this instance. @@ -3692,6 +3743,7 @@ mn: label_age: Age label_ago: days ago label_all: all + label_all_uppercase: All label_all_time: all time label_all_words: All words label_all_open_wps: All open @@ -4219,6 +4271,7 @@ mn: label_role_new: New role label_role_grantable: Grantable role label_role_plural: Roles + label_role_missing_permissions: "%{role} (missing required permissions)" label_role_search: Assign role to new members label_scm: SCM label_scroll_left: Scroll left @@ -4445,7 +4498,7 @@ mn: you_have: You have logo_alt_text: Logo mention: - subject: "%{user_name} mentioned you in #%{id} - %{subject}" + subject: "%{user_name} mentioned you in %{id} - %{subject}" notification: center: To notification center see_in_center: See comment in notification center @@ -4483,7 +4536,7 @@ mn: allowed_actions_html: 'You have the following permissions on this work package: %{allowed_actions}. This can change depending on your project role and permissions.' create_account: To access this work package, you will need to create and activate an account on %{instance}. open_work_package: Open work package - subject: 'Work package #%{id} was shared with you' + subject: Work package %{id} was shared with you enterprise_text: Share work packages with users who are not members of the project. summary: user: "%{user} shared a work package with you with %{role_rights} rights" @@ -4694,6 +4747,18 @@ mn: text_getting_started_description: Get a quick overview of project management and team collaboration with OpenProject. You can restart this video from the help menu. welcome: Welcome to %{app_title} select_language: Please select your language + open_project: + common: + work_package_card_component: + menu: + label_actions: Work package actions + work_package_card_list_component: + header: + label_actions: Open menu + label_work_package_count: + zero: No work packages + one: "%{count} work package" + other: "%{count} work packages" permission_add_work_package_comments: Add comments permission_add_work_packages: Add work packages permission_add_messages: Post messages @@ -4711,7 +4776,6 @@ mn: permission_add_work_package_watchers: Add watchers permission_assign_versions: Assign versions permission_browse_repository: Read-only access to repository (browse and checkout) - permission_change_wiki_parent_page: Change parent wiki page permission_change_work_package_status: Change work package status permission_change_work_package_status_explanation: Allows changing status without Edit work packages permission permission_comment_news: Comment news @@ -4726,8 +4790,6 @@ mn: permission_delete_own_messages: Delete own messages permission_delete_reportings: Delete reportings permission_delete_timelines: Delete timelines - permission_delete_wiki_pages: Delete wiki pages - permission_delete_wiki_pages_attachments: Delete attachments permission_edit_work_package_comments: Moderate comments permission_edit_work_package_comments_explanation: 'Caution: Users with this permission are able to edit anyone''s comment.' permission_edit_work_packages: Edit work packages @@ -4747,12 +4809,10 @@ mn: permission_edit_wiki_pages: Edit wiki pages permission_export_work_packages: Export work packages permission_export_projects: Export projects - permission_export_wiki_pages: Export wiki pages permission_invite_members_by_email: Invite members by email permission_invite_members_by_email_explanation: 'Allows users to invite new members by email. Invited users will receive an email with a link to set their password and activate their account. Depends on the permission to manage members ' - permission_list_attachments: List attachments permission_log_own_time: Log own time permission_log_time: Log time for other users permission_manage_forums: Manage forums @@ -4767,7 +4827,6 @@ mn: permission_manage_subtasks: Manage work package hierarchies permission_manage_versions: Manage versions permission_manage_wiki: Manage wiki - permission_manage_wiki_menu: Manage wiki menu permission_manage_own_working_times: Manage own working times permission_manage_own_working_times_explanation: 'Allows users to manage their own working times, and personal non-working days. @@ -4777,8 +4836,6 @@ mn: ' permission_move_work_packages: Move work packages - permission_protect_wiki_pages: Protect wiki pages - permission_rename_wiki_pages: Rename wiki pages permission_save_queries: Save views permission_search_project: Search project permission_select_custom_fields: Select custom fields @@ -5157,6 +5214,9 @@ mn: setting_mail_handler_body_delimiter_regex: Truncate emails matching this regex setting_mail_handler_ignore_filenames: Ignored mail attachments setting_new_project_user_role_id: Role given to a non-admin user who creates a project + setting_new_project_user_role_id_caption: 'Only roles that include the permissions to edit project attributes and to manage members are listed, so that the creator can complete the project setup. + + ' setting_new_project_send_confirmation_email: Send notification to author when creating a new project setting_new_project_notification_text: Notification text setting_password_active_rules: Password requirements @@ -5573,6 +5633,7 @@ mn: text_project_identifier_format: Must start with a lowercase letter. Only lowercase letters (a-z), numbers, dashes and underscores are allowed. text_reassign: 'Reassign to work package:' text_regexp_multiline: The regex is applied in a multi-line mode. e.g., ^---\s+ + text_rename_wiki_page: Rename wiki page text_repository_usernames_mapping: |- Select or update the OpenProject user mapped to each username found in the repository log. Users with the same OpenProject and repository username or email are automatically mapped. @@ -6006,9 +6067,6 @@ mn: scopes: Permissions successful_application_revocation: Revocation of application %{application_name} successful. none_given: No OAuth applications have been granted access to your user account. - x_active_tokens: - one: one active token - other: "%{count} active token" flows: authorization_code: Authorization code flow client_credentials: Client credentials flow @@ -6018,8 +6076,10 @@ mn: client_credentials_impersonation_html: 'By default, OpenProject provides OAuth 2.0 authorization via %{authorization_code_flow_link}. You can optionally enable %{client_credentials_flow_link}, but you must provide a user on whose behalf requests will be performed. ' + confirm_revoke_my_application: + one: Do you really want to remove this application? This will revoke one token active for it. + other: Do you really want to remove this application? This will revoke %{count} tokens active for it. authorization_error: An authorization error has occurred. - revoke_my_application_confirmation: Do you really want to remove this application? This will revoke %{token_count} active for it. my_registered_applications: Registered OAuth applications oauth_client: urn_connection_status: diff --git a/config/locales/crowdin/ms.yml b/config/locales/crowdin/ms.yml index a0be550abb8..741764e4dcd 100644 --- a/config/locales/crowdin/ms.yml +++ b/config/locales/crowdin/ms.yml @@ -413,7 +413,8 @@ ms: error_special_characters: Special characters not allowed error_not_fully_uppercased: Must be uppercase error_in_use: Already in use as another project's active handle - error_reserved: Reserved by another project's handle history + error_used_in_past: Reserved by another project's handle history + error_reserved_by_system: Reserved as a system keyword error_unknown: Needs manual review remaining_projects: other: "... %{count} more projects" @@ -452,8 +453,11 @@ ms: ignore: Ignore changes save: Save changes and continue role_selector: + title: Select roles label: 'Role: %{role}' no_role: Select role + roles: + other: "%{count} roles selected" blankslate: title: No status transitions configured description: Add statuses to start configuring workflows for this role @@ -1095,6 +1099,8 @@ ms: no_results_title_text: Tiada berita untuk dipaparkan buat masa ini. no_results_content_text: Tambah item berita roles: + edit: + default_for_new_projects_warning: 'This role is configured as the default role given to non-admin users who create a project. Do not remove the following permissions, otherwise project creators will be unable to complete the setup of their newly created projects:' permissions: section_check_all_label: Assign all %{module} permissions section_uncheck_all_label: Unassign all %{module} permissions @@ -1980,6 +1986,29 @@ ms: type: Jenis version: Versi watcher: Pemerhati + ordered_persisted_query_entity: + persisted_query: Persisted query + entity: Entity + position: Position + persisted_query: + name: Name + views: Views + filters: Filters + orders: Orders + selects: Selects + persisted_view: + name: Name + query: Query + parent: Parent view + public: Public + user_card_view: + secondary_info: Secondary info + show_status_badge: Show status badge + show_email: Show email + tag_source: Tag source + tag_limit: Tag limit + card_size: Card size + columns_per_row: Columns per row errors: messages: accepted: mesti diterima. @@ -2481,6 +2510,7 @@ ms: unsupported_storage_type: is not a supported storage type. storage_error: There was an error with the storage connection. invalid_input: The input is invalid. + invalid_child_for_parent: is not allowed as a parent for this view type. activity: item: created_by_on: dicipta oleh %{user} pada %{datetime} @@ -3338,6 +3368,24 @@ ms: general_text_false: palsu gui_validation_error: 1 ralat gui_validation_error_plural: "%{count} ralat" + health_reports: + report_component: + checks: + failures: + other: "%{count} checks failed" + success: All checks passed + warnings: + other: "%{count} checks returned a warning" + summary: + failure: Some checks failed and the system does not work as expected. + success: All connections and systems are working as expected. + warning: Some checks returned a warning. This can lead to unexpected behaviour. + result_component: + status: + failed: Failed + passed: Passed + skipped: Skipped + warning: Warning homescreen: additional: projects: Projek terbaru yang dapat dilihat dalam contoh ini. @@ -3639,6 +3687,7 @@ ms: label_age: Umur label_ago: hari yang lalu label_all: semua + label_all_uppercase: All label_all_time: sepanjang masa label_all_words: Semua perkataan label_all_open_wps: Buka semua @@ -4170,6 +4219,7 @@ ms: label_role_plural: 'Peranan ' + label_role_missing_permissions: "%{role} (missing required permissions)" label_role_search: Tetapkan peranan ke ahli baharu label_scm: SCM label_scroll_left: Skrol kiri @@ -4393,7 +4443,7 @@ ms: you_have: Anda mempunyai logo_alt_text: Logo mention: - subject: "%{user_name} menyebut anda dalam #%{id} - %{subject}" + subject: "%{user_name} mentioned you in %{id} - %{subject}" notification: center: Ke pusat pemberitahuan see_in_center: Lihat komen dalam pusat pemberitahuan @@ -4430,7 +4480,7 @@ ms: allowed_actions_html: 'You have the following permissions on this work package: %{allowed_actions}. This can change depending on your project role and permissions.' create_account: Untuk mengakses pakej kerja ini, anda perlu mencipta dan mengaktifkan akaun di %{instance}. open_work_package: Buka pakej kerja - subject: 'Pakej kerja #%{id} telah dikongsikan dengan anda' + subject: Work package %{id} was shared with you enterprise_text: Kongsi pakej kerja dengan pengguna yang bukan ahli projek. summary: user: "%{user} telah berkongsi satu pakej kerja bersama anda dengan hak %{role_rights}" @@ -4640,6 +4690,18 @@ ms: text_getting_started_description: Dapatkan gambaran ringkas pengurusan projek dan kolaborasi kumpulan dengan OpenProject. Anda boleh mula semula video ini di menu bantuan. welcome: Selamat datang ke %{app_title} select_language: Sila pilih bahasa anda + open_project: + common: + work_package_card_component: + menu: + label_actions: Work package actions + work_package_card_list_component: + header: + label_actions: Open menu + label_work_package_count: + zero: No work packages + one: "%{count} work package" + other: "%{count} work packages" permission_add_work_package_comments: Add comments permission_add_work_packages: Tambah pakej kerja permission_add_messages: Pos mesej @@ -4657,7 +4719,6 @@ ms: permission_add_work_package_watchers: Tambah pemerhati permission_assign_versions: Tetapkan versi permission_browse_repository: Akses baca-sahaja kepada repositori (melayari dan keluar) - permission_change_wiki_parent_page: 'Tukar induk halaman wiki ' permission_change_work_package_status: Tukar status pakej kerja permission_change_work_package_status_explanation: Benarkan penukaran status tanpa kebenaran Edit pakej kerja permission_comment_news: Komen berita @@ -4672,8 +4733,6 @@ ms: permission_delete_own_messages: Padam mesej sendiri permission_delete_reportings: Padam laporan permission_delete_timelines: Padam garis masa - permission_delete_wiki_pages: Padam halaman wiki - permission_delete_wiki_pages_attachments: Padam lampiran permission_edit_work_package_comments: Moderate comments permission_edit_work_package_comments_explanation: 'Caution: Users with this permission are able to edit anyone''s comment.' permission_edit_work_packages: Edit pakej kerja @@ -4693,12 +4752,10 @@ ms: permission_edit_wiki_pages: Edit halaman wiki permission_export_work_packages: Eksport pakej kerja permission_export_projects: Export projects - permission_export_wiki_pages: Eksport halaman wiki permission_invite_members_by_email: Invite members by email permission_invite_members_by_email_explanation: 'Allows users to invite new members by email. Invited users will receive an email with a link to set their password and activate their account. Depends on the permission to manage members ' - permission_list_attachments: Senarai lampiran permission_log_own_time: Log masa sendiri permission_log_time: Log masa untuk pengguna lain permission_manage_forums: Uruskan forum @@ -4713,7 +4770,6 @@ ms: permission_manage_subtasks: Urus hierarki pakej kerja permission_manage_versions: Urus versi permission_manage_wiki: Urus wiki - permission_manage_wiki_menu: Urus menu wiki permission_manage_own_working_times: Manage own working times permission_manage_own_working_times_explanation: 'Allows users to manage their own working times, and personal non-working days. @@ -4723,8 +4779,6 @@ ms: ' permission_move_work_packages: Alih pakej kerja - permission_protect_wiki_pages: Lindungi halaman wiki - permission_rename_wiki_pages: Nama semula halaman wiki permission_save_queries: Simpan paparan permission_search_project: Cari projek permission_select_custom_fields: Pilih ruang tersuai @@ -5101,6 +5155,9 @@ ms: setting_mail_handler_body_delimiter_regex: Memangkas e-mel yang hampir sama dengan regex ini setting_mail_handler_ignore_filenames: Lampiran mel yang diabaikan setting_new_project_user_role_id: Peranan yang diberikan kepada pengguna bukan pentadbir yang mencipta projek + setting_new_project_user_role_id_caption: 'Only roles that include the permissions to edit project attributes and to manage members are listed, so that the creator can complete the project setup. + + ' setting_new_project_send_confirmation_email: Send notification to author when creating a new project setting_new_project_notification_text: Notification text setting_password_active_rules: Password requirements @@ -5517,6 +5574,7 @@ ms: text_project_identifier_format: Must start with a lowercase letter. Only lowercase letters (a-z), numbers, dashes and underscores are allowed. text_reassign: 'Tugaskan semula ke pakej kerja:' text_regexp_multiline: Regex digunakan dalam mod berbilang baris. cth., ^---\s+ + text_rename_wiki_page: Rename wiki page text_repository_usernames_mapping: "Pilih atau kemas kini pengguna OpenProject yang dipetakan ke setiap nama pengguna yang ditemui dalam log repositori.\nPengguna dengan OpenProject dan nama pengguna repositori atau e-mel yang sama dipetakan secara automatik. " text_status_changed_by_changeset: Dilaksanakan dalam set perubahan %{value}. text_table_difference_description: Dalam jadual ini, %{entries} yang tunggal dipaparkan. Anda boleh lihat perbezaan antara mana-mana dua entri dengan mula memilih kotak penyemakan dalam jadual. Apabila butang di bawah jadual ditekan, perbezaan akan ditunjukkan. @@ -5949,8 +6007,6 @@ ms: scopes: Kebenaran successful_application_revocation: Pembatalan aplikasi %{application_name} berjaya. none_given: Tiada aplikasi OAuth yang telah diberi akses ke akaun anda. - x_active_tokens: - other: "%{count} token aktif" flows: authorization_code: Aliran kod kebenaran client_credentials: Aliran kelayakan pelanggan @@ -5960,8 +6016,9 @@ ms: client_credentials_impersonation_html: 'Secara default, OpenProject menyediakan kebenaran OAuth 2.0 melalui %{authorization_code_flow_link}. Anda boleh memilih untuk mengaktifkan %{client_credentials_flow_link}, tetapi anda mesti menyediakan pengguna yang akan mewakili permintaan. ' + confirm_revoke_my_application: + other: Do you really want to remove this application? This will revoke %{count} tokens active for it. authorization_error: Sebuah ralat kebenaran telah berlaku. - revoke_my_application_confirmation: Adakah anda benar-benar mahu memadam aplikasi ini? Ini akan menarik balik %{token_count} yang aktif darinya. my_registered_applications: Aplikasi OAuth berdaftar oauth_client: urn_connection_status: diff --git a/config/locales/crowdin/ne.yml b/config/locales/crowdin/ne.yml index 03fe1357d3a..a593ea2eb1b 100644 --- a/config/locales/crowdin/ne.yml +++ b/config/locales/crowdin/ne.yml @@ -419,7 +419,8 @@ ne: error_special_characters: Special characters not allowed error_not_fully_uppercased: Must be uppercase error_in_use: Already in use as another project's active handle - error_reserved: Reserved by another project's handle history + error_used_in_past: Reserved by another project's handle history + error_reserved_by_system: Reserved as a system keyword error_unknown: Needs manual review remaining_projects: one: "... 1 more project" @@ -460,8 +461,12 @@ ne: ignore: Ignore changes save: Save changes and continue role_selector: + title: Select roles label: 'Role: %{role}' no_role: Select role + roles: + one: One role selected + other: "%{count} roles selected" blankslate: title: No status transitions configured description: Add statuses to start configuring workflows for this role @@ -1110,6 +1115,8 @@ ne: no_results_title_text: There is currently no news to report. no_results_content_text: Add a news item roles: + edit: + default_for_new_projects_warning: 'This role is configured as the default role given to non-admin users who create a project. Do not remove the following permissions, otherwise project creators will be unable to complete the setup of their newly created projects:' permissions: section_check_all_label: Assign all %{module} permissions section_uncheck_all_label: Unassign all %{module} permissions @@ -2000,6 +2007,29 @@ ne: type: Type version: Version watcher: Watcher + ordered_persisted_query_entity: + persisted_query: Persisted query + entity: Entity + position: Position + persisted_query: + name: Name + views: Views + filters: Filters + orders: Orders + selects: Selects + persisted_view: + name: Name + query: Query + parent: Parent view + public: Public + user_card_view: + secondary_info: Secondary info + show_status_badge: Show status badge + show_email: Show email + tag_source: Tag source + tag_limit: Tag limit + card_size: Card size + columns_per_row: Columns per row errors: messages: accepted: must be accepted. @@ -2517,6 +2547,7 @@ ne: unsupported_storage_type: is not a supported storage type. storage_error: There was an error with the storage connection. invalid_input: The input is invalid. + invalid_child_for_parent: is not allowed as a parent for this view type. activity: item: created_by_on: created by %{user} on %{datetime} @@ -3391,6 +3422,26 @@ ne: general_text_false: 'false' gui_validation_error: 1 error gui_validation_error_plural: "%{count} errors" + health_reports: + report_component: + checks: + failures: + one: "%{count} check failed" + other: "%{count} checks failed" + success: All checks passed + warnings: + one: "%{count} check returned a warning" + other: "%{count} checks returned a warning" + summary: + failure: Some checks failed and the system does not work as expected. + success: All connections and systems are working as expected. + warning: Some checks returned a warning. This can lead to unexpected behaviour. + result_component: + status: + failed: Failed + passed: Passed + skipped: Skipped + warning: Warning homescreen: additional: projects: Newest visible projects in this instance. @@ -3692,6 +3743,7 @@ ne: label_age: Age label_ago: days ago label_all: all + label_all_uppercase: All label_all_time: all time label_all_words: All words label_all_open_wps: All open @@ -4219,6 +4271,7 @@ ne: label_role_new: New role label_role_grantable: Grantable role label_role_plural: भूमिकाहरु + label_role_missing_permissions: "%{role} (missing required permissions)" label_role_search: Assign role to new members label_scm: SCM label_scroll_left: Scroll left @@ -4445,7 +4498,7 @@ ne: you_have: You have logo_alt_text: Logo mention: - subject: "%{user_name} mentioned you in #%{id} - %{subject}" + subject: "%{user_name} mentioned you in %{id} - %{subject}" notification: center: To notification center see_in_center: See comment in notification center @@ -4483,7 +4536,7 @@ ne: allowed_actions_html: 'You have the following permissions on this work package: %{allowed_actions}. This can change depending on your project role and permissions.' create_account: To access this work package, you will need to create and activate an account on %{instance}. open_work_package: Open work package - subject: 'Work package #%{id} was shared with you' + subject: Work package %{id} was shared with you enterprise_text: Share work packages with users who are not members of the project. summary: user: "%{user} shared a work package with you with %{role_rights} rights" @@ -4694,6 +4747,18 @@ ne: text_getting_started_description: Get a quick overview of project management and team collaboration with OpenProject. You can restart this video from the help menu. welcome: Welcome to %{app_title} select_language: Please select your language + open_project: + common: + work_package_card_component: + menu: + label_actions: Work package actions + work_package_card_list_component: + header: + label_actions: Open menu + label_work_package_count: + zero: No work packages + one: "%{count} work package" + other: "%{count} work packages" permission_add_work_package_comments: Add comments permission_add_work_packages: Add work packages permission_add_messages: Post messages @@ -4711,7 +4776,6 @@ ne: permission_add_work_package_watchers: Add watchers permission_assign_versions: Assign versions permission_browse_repository: Read-only access to repository (browse and checkout) - permission_change_wiki_parent_page: Change parent wiki page permission_change_work_package_status: Change work package status permission_change_work_package_status_explanation: Allows changing status without Edit work packages permission permission_comment_news: Comment news @@ -4726,8 +4790,6 @@ ne: permission_delete_own_messages: Delete own messages permission_delete_reportings: Delete reportings permission_delete_timelines: Delete timelines - permission_delete_wiki_pages: Delete wiki pages - permission_delete_wiki_pages_attachments: Delete attachments permission_edit_work_package_comments: Moderate comments permission_edit_work_package_comments_explanation: 'Caution: Users with this permission are able to edit anyone''s comment.' permission_edit_work_packages: Edit work packages @@ -4747,12 +4809,10 @@ ne: permission_edit_wiki_pages: Edit wiki pages permission_export_work_packages: Export work packages permission_export_projects: Export projects - permission_export_wiki_pages: Export wiki pages permission_invite_members_by_email: Invite members by email permission_invite_members_by_email_explanation: 'Allows users to invite new members by email. Invited users will receive an email with a link to set their password and activate their account. Depends on the permission to manage members ' - permission_list_attachments: List attachments permission_log_own_time: Log own time permission_log_time: Log time for other users permission_manage_forums: Manage forums @@ -4767,7 +4827,6 @@ ne: permission_manage_subtasks: Manage work package hierarchies permission_manage_versions: Manage versions permission_manage_wiki: Manage wiki - permission_manage_wiki_menu: Manage wiki menu permission_manage_own_working_times: Manage own working times permission_manage_own_working_times_explanation: 'Allows users to manage their own working times, and personal non-working days. @@ -4777,8 +4836,6 @@ ne: ' permission_move_work_packages: Move work packages - permission_protect_wiki_pages: Protect wiki pages - permission_rename_wiki_pages: Rename wiki pages permission_save_queries: Save views permission_search_project: Search project permission_select_custom_fields: Select custom fields @@ -5157,6 +5214,9 @@ ne: setting_mail_handler_body_delimiter_regex: Truncate emails matching this regex setting_mail_handler_ignore_filenames: इमेलमा संलग्नहरु बेवास्ता गरियो setting_new_project_user_role_id: Role given to a non-admin user who creates a project + setting_new_project_user_role_id_caption: 'Only roles that include the permissions to edit project attributes and to manage members are listed, so that the creator can complete the project setup. + + ' setting_new_project_send_confirmation_email: Send notification to author when creating a new project setting_new_project_notification_text: Notification text setting_password_active_rules: Password requirements @@ -5573,6 +5633,7 @@ ne: text_project_identifier_format: Must start with a lowercase letter. Only lowercase letters (a-z), numbers, dashes and underscores are allowed. text_reassign: 'Reassign to work package:' text_regexp_multiline: The regex is applied in a multi-line mode. e.g., ^---\s+ + text_rename_wiki_page: Rename wiki page text_repository_usernames_mapping: |- Select or update the OpenProject user mapped to each username found in the repository log. Users with the same OpenProject and repository username or email are automatically mapped. @@ -6006,9 +6067,6 @@ ne: scopes: Permissions successful_application_revocation: Revocation of application %{application_name} successful. none_given: No OAuth applications have been granted access to your user account. - x_active_tokens: - one: one active token - other: "%{count} active token" flows: authorization_code: Authorization code flow client_credentials: Client credentials flow @@ -6018,8 +6076,10 @@ ne: client_credentials_impersonation_html: 'By default, OpenProject provides OAuth 2.0 authorization via %{authorization_code_flow_link}. You can optionally enable %{client_credentials_flow_link}, but you must provide a user on whose behalf requests will be performed. ' + confirm_revoke_my_application: + one: Do you really want to remove this application? This will revoke one token active for it. + other: Do you really want to remove this application? This will revoke %{count} tokens active for it. authorization_error: An authorization error has occurred. - revoke_my_application_confirmation: Do you really want to remove this application? This will revoke %{token_count} active for it. my_registered_applications: Registered OAuth applications oauth_client: urn_connection_status: diff --git a/config/locales/crowdin/nl.yml b/config/locales/crowdin/nl.yml index dea68a0a95a..d7493aaa9f5 100644 --- a/config/locales/crowdin/nl.yml +++ b/config/locales/crowdin/nl.yml @@ -419,7 +419,8 @@ nl: error_special_characters: Special characters not allowed error_not_fully_uppercased: Must be uppercase error_in_use: Already in use as another project's active handle - error_reserved: Reserved by another project's handle history + error_used_in_past: Reserved by another project's handle history + error_reserved_by_system: Reserved as a system keyword error_unknown: Needs manual review remaining_projects: one: "... 1 more project" @@ -460,8 +461,12 @@ nl: ignore: Ignore changes save: Save changes and continue role_selector: + title: Select roles label: 'Role: %{role}' no_role: Select role + roles: + one: One role selected + other: "%{count} roles selected" blankslate: title: No status transitions configured description: Add statuses to start configuring workflows for this role @@ -1108,6 +1113,8 @@ nl: no_results_title_text: Er is momenteel geen nieuws om te rapporteren. no_results_content_text: Voeg een nieuwsitem toe roles: + edit: + default_for_new_projects_warning: 'This role is configured as the default role given to non-admin users who create a project. Do not remove the following permissions, otherwise project creators will be unable to complete the setup of their newly created projects:' permissions: section_check_all_label: Assign all %{module} permissions section_uncheck_all_label: Unassign all %{module} permissions @@ -1998,6 +2005,29 @@ nl: type: Type version: Versie watcher: Kijker + ordered_persisted_query_entity: + persisted_query: Persisted query + entity: Entity + position: Position + persisted_query: + name: Name + views: Views + filters: Filters + orders: Orders + selects: Selects + persisted_view: + name: Name + query: Query + parent: Parent view + public: Public + user_card_view: + secondary_info: Secondary info + show_status_badge: Show status badge + show_email: Show email + tag_source: Tag source + tag_limit: Tag limit + card_size: Card size + columns_per_row: Columns per row errors: messages: accepted: moet geaccepteerd worden. @@ -2513,6 +2543,7 @@ nl: unsupported_storage_type: is not a supported storage type. storage_error: There was an error with the storage connection. invalid_input: The input is invalid. + invalid_child_for_parent: is not allowed as a parent for this view type. activity: item: created_by_on: aangemaakt door %{user} op %{datetime} @@ -3387,6 +3418,26 @@ nl: general_text_false: onwaar gui_validation_error: 1 fout gui_validation_error_plural: "%{count} fouten" + health_reports: + report_component: + checks: + failures: + one: "%{count} check failed" + other: "%{count} checks failed" + success: All checks passed + warnings: + one: "%{count} check returned a warning" + other: "%{count} checks returned a warning" + summary: + failure: Some checks failed and the system does not work as expected. + success: All connections and systems are working as expected. + warning: Some checks returned a warning. This can lead to unexpected behaviour. + result_component: + status: + failed: Failed + passed: Passed + skipped: Skipped + warning: Warning homescreen: additional: projects: Nieuwste zichtbare projecten in deze instantie. @@ -3688,6 +3739,7 @@ nl: label_age: Leeftijd label_ago: dagen geleden label_all: alle + label_all_uppercase: All label_all_time: aller tijden label_all_words: Alle woorden label_all_open_wps: Alles open @@ -4215,6 +4267,7 @@ nl: label_role_new: Nieuwe rol label_role_grantable: Grantable role label_role_plural: Rollen + label_role_missing_permissions: "%{role} (missing required permissions)" label_role_search: Rol toewijzen aan nieuwe leden label_scm: SCM label_scroll_left: Scroll left @@ -4441,7 +4494,7 @@ nl: you_have: U heeft logo_alt_text: Logo mention: - subject: "%{user_name} heeft je genoemd in #%{id} - %{subject}" + subject: "%{user_name} mentioned you in %{id} - %{subject}" notification: center: Naar meldingscentrum see_in_center: Bekijk commentaar in notificatie center @@ -4479,7 +4532,7 @@ nl: allowed_actions_html: 'You have the following permissions on this work package: %{allowed_actions}. This can change depending on your project role and permissions.' create_account: To access this work package, you will need to create and activate an account on %{instance}. open_work_package: Open work package - subject: 'Work package #%{id} was shared with you' + subject: Work package %{id} was shared with you enterprise_text: Werkpakketten delen met gebruikers die geen lid zijn van het project. summary: user: "%{user} een werkpakket met u heeft gedeeld met %{role_rights} rechten" @@ -4688,6 +4741,18 @@ nl: text_getting_started_description: Krijg een snel overzicht van projectbeheer en teamsamenwerking met OpenProject. U kunt deze video opnieuw starten vanuit het helpmenu. welcome: Welkom bij %{app_title} select_language: Gelieve uw taal te kiezen + open_project: + common: + work_package_card_component: + menu: + label_actions: Work package actions + work_package_card_list_component: + header: + label_actions: Open menu + label_work_package_count: + zero: No work packages + one: "%{count} work package" + other: "%{count} work packages" permission_add_work_package_comments: Add comments permission_add_work_packages: Werkpakketten toevoegen permission_add_messages: Berichten posten @@ -4705,7 +4770,6 @@ nl: permission_add_work_package_watchers: Kijkers toevoegen permission_assign_versions: Versies toewijzen permission_browse_repository: Alleen-lezen toegang tot opslagplaats (bladeren en uitchecken) - permission_change_wiki_parent_page: Bovenliggende wiki-pagina wijzigen permission_change_work_package_status: Change work package status permission_change_work_package_status_explanation: Allows changing status without Edit work packages permission permission_comment_news: Opmerking nieuws @@ -4720,8 +4784,6 @@ nl: permission_delete_own_messages: Eigen berichten verwijderen permission_delete_reportings: Rapporteringen verwijderen permission_delete_timelines: Tijdlijnen verwijderen - permission_delete_wiki_pages: Wiki pagina's verwijderen - permission_delete_wiki_pages_attachments: Bijlagen verwijderen permission_edit_work_package_comments: Moderate comments permission_edit_work_package_comments_explanation: 'Caution: Users with this permission are able to edit anyone''s comment.' permission_edit_work_packages: Werkpakketten bewerken @@ -4741,12 +4803,10 @@ nl: permission_edit_wiki_pages: Wiki pagina's bewerken permission_export_work_packages: Werkpakketten exporteren permission_export_projects: Export projects - permission_export_wiki_pages: Wiki pagina's exporteren permission_invite_members_by_email: Invite members by email permission_invite_members_by_email_explanation: 'Allows users to invite new members by email. Invited users will receive an email with a link to set their password and activate their account. Depends on the permission to manage members ' - permission_list_attachments: Bijlagen weergeven permission_log_own_time: Eigen tijd registreren permission_log_time: Log tijd voor andere gebruikers permission_manage_forums: Forum beheren @@ -4761,7 +4821,6 @@ nl: permission_manage_subtasks: Beheer werkpakket hiërarchieën permission_manage_versions: Versies beheren permission_manage_wiki: Wiki beheren - permission_manage_wiki_menu: Wiki menu beheren permission_manage_own_working_times: Manage own working times permission_manage_own_working_times_explanation: 'Allows users to manage their own working times, and personal non-working days. @@ -4771,8 +4830,6 @@ nl: ' permission_move_work_packages: Werkpakketten verplaatsen - permission_protect_wiki_pages: Wiki-pagina's beveiligen - permission_rename_wiki_pages: Wiki-pagina's wijzigen permission_save_queries: Weergaves opslaan permission_search_project: Search project permission_select_custom_fields: Aangepaste velden selecteren @@ -5143,6 +5200,9 @@ nl: setting_mail_handler_body_delimiter_regex: E-mails die overeenkomen met deze regex afkappen setting_mail_handler_ignore_filenames: Genegeerde e-mailbijlagen setting_new_project_user_role_id: Rol gegeven aan een niet-admin-gebruiker die een project maakt + setting_new_project_user_role_id_caption: 'Only roles that include the permissions to edit project attributes and to manage members are listed, so that the creator can complete the project setup. + + ' setting_new_project_send_confirmation_email: Send notification to author when creating a new project setting_new_project_notification_text: Notification text setting_password_active_rules: Password requirements @@ -5559,6 +5619,7 @@ nl: text_project_identifier_format: Must start with a lowercase letter. Only lowercase letters (a-z), numbers, dashes and underscores are allowed. text_reassign: 'Opnieuw toewijzen aan werkpakket:' text_regexp_multiline: De regex wordt toegepast in een modus met meerdere regels. bijvoorbeeld, ^---\s+ + text_rename_wiki_page: Rename wiki page text_repository_usernames_mapping: Selecteer of update de gebruiker van de OpenProject gelinkt aan elke gebruikersnaam gevonden in het repository log. Gebruikers met de zelfde OpenProject en repository gebruikersnaam of e-mail worden automatisch gelinkt. text_status_changed_by_changeset: Toegepast in changeset %{value}. text_table_difference_description: In deze tabel worden de enkele %{entries} weergegeven. U kunt het verschil tussen twee vermeldingen bekijken door eerst de bijhorende selectievakjes te selecteren in de tabel. Bij het klikken op de knop onder de tabel worden de verschillen weergegeven. @@ -5990,9 +6051,6 @@ nl: scopes: Machtigingen successful_application_revocation: Intrekking van toepassing %{application_name} succesvol. none_given: Geen OAuth-toepassingen zijn toegang verleend tot uw gebruikersaccount. - x_active_tokens: - one: één actieve token - other: "%{count} actieve token" flows: authorization_code: Autorisatiecode stroom client_credentials: Client referenties stroom @@ -6002,8 +6060,10 @@ nl: client_credentials_impersonation_html: 'Standaard biedt OpenProject OAuth 2.0 autorisatie via %{authorization_code_flow_link}. U kunt optioneel %{client_credentials_flow_link} inschakelen, maar u moet een gebruiker geven wier verzoeken namens zullen worden uitgevoerd. ' + confirm_revoke_my_application: + one: Do you really want to remove this application? This will revoke one token active for it. + other: Do you really want to remove this application? This will revoke %{count} tokens active for it. authorization_error: Er is een autorisatiefout opgetreden. - revoke_my_application_confirmation: Weet u zeker dat u deze applicatie wilt verwijderen? Dit zal %{token_count} actief voor deze verwijderen. my_registered_applications: Geregistreerde OAuth toepassingen oauth_client: urn_connection_status: diff --git a/config/locales/crowdin/no.yml b/config/locales/crowdin/no.yml index 85910ba74cc..5c2b54bbfb1 100644 --- a/config/locales/crowdin/no.yml +++ b/config/locales/crowdin/no.yml @@ -419,7 +419,8 @@ error_special_characters: Special characters not allowed error_not_fully_uppercased: Must be uppercase error_in_use: Already in use as another project's active handle - error_reserved: Reserved by another project's handle history + error_used_in_past: Reserved by another project's handle history + error_reserved_by_system: Reserved as a system keyword error_unknown: Needs manual review remaining_projects: one: "... 1 more project" @@ -460,8 +461,12 @@ ignore: Ignore changes save: Save changes and continue role_selector: + title: Select roles label: 'Role: %{role}' no_role: Select role + roles: + one: One role selected + other: "%{count} roles selected" blankslate: title: No status transitions configured description: Add statuses to start configuring workflows for this role @@ -1110,6 +1115,8 @@ no_results_title_text: Det er ingen nyheter å vise. no_results_content_text: Legg til nyhet roles: + edit: + default_for_new_projects_warning: 'This role is configured as the default role given to non-admin users who create a project. Do not remove the following permissions, otherwise project creators will be unable to complete the setup of their newly created projects:' permissions: section_check_all_label: Assign all %{module} permissions section_uncheck_all_label: Unassign all %{module} permissions @@ -1998,6 +2005,29 @@ type: Type version: Versjon watcher: Overvåker + ordered_persisted_query_entity: + persisted_query: Persisted query + entity: Entity + position: Position + persisted_query: + name: Name + views: Views + filters: Filters + orders: Orders + selects: Selects + persisted_view: + name: Name + query: Query + parent: Parent view + public: Public + user_card_view: + secondary_info: Secondary info + show_status_badge: Show status badge + show_email: Show email + tag_source: Tag source + tag_limit: Tag limit + card_size: Card size + columns_per_row: Columns per row errors: messages: accepted: må aksepteres @@ -2515,6 +2545,7 @@ unsupported_storage_type: is not a supported storage type. storage_error: There was an error with the storage connection. invalid_input: The input is invalid. + invalid_child_for_parent: is not allowed as a parent for this view type. activity: item: created_by_on: skapt av %{user} på %{datetime} @@ -3389,6 +3420,26 @@ general_text_false: usant gui_validation_error: 1 feil gui_validation_error_plural: "%{count} feil" + health_reports: + report_component: + checks: + failures: + one: "%{count} check failed" + other: "%{count} checks failed" + success: All checks passed + warnings: + one: "%{count} check returned a warning" + other: "%{count} checks returned a warning" + summary: + failure: Some checks failed and the system does not work as expected. + success: All connections and systems are working as expected. + warning: Some checks returned a warning. This can lead to unexpected behaviour. + result_component: + status: + failed: Failed + passed: Passed + skipped: Skipped + warning: Warning homescreen: additional: projects: Nyeste synlige prosjekter i denne forekomsten. @@ -3690,6 +3741,7 @@ label_age: Alder label_ago: dager siden label_all: alle + label_all_uppercase: All label_all_time: alle tidspunkt label_all_words: Alle ord label_all_open_wps: Alle åpne @@ -4217,6 +4269,7 @@ label_role_new: Ny rolle label_role_grantable: Grantable role label_role_plural: Rolle + label_role_missing_permissions: "%{role} (missing required permissions)" label_role_search: Tilordne rolle til nye medlemmer label_scm: SCM label_scroll_left: Bla til venstre @@ -4443,7 +4496,7 @@ you_have: Du har logo_alt_text: Logo mention: - subject: "%{user_name} har nevnt deg i #%{id} – %{subject}" + subject: "%{user_name} mentioned you in %{id} - %{subject}" notification: center: Til varslingssenter see_in_center: Se kommentar i varslingssenter @@ -4481,7 +4534,7 @@ allowed_actions_html: 'You have the following permissions on this work package: %{allowed_actions}. This can change depending on your project role and permissions.' create_account: For å få tilgang til denne arbeidspakken, må du opprette og aktivere en konto for %{instance}. open_work_package: Åpne arbeidspakke - subject: 'Arbeidspakke #%{id} ble delt med deg' + subject: Work package %{id} was shared with you enterprise_text: Del arbeidspakker med brukere som ikke er medlemmer i prosjektet. summary: user: "%{user} delte en arbeidspakke med deg %{role_rights} rettigheter" @@ -4692,6 +4745,18 @@ text_getting_started_description: Få en rask oversikt over prosjektledelse og teamsamarbeid med OpenProject. Du kan starte denne videoen på nytt fra hjelp-menyen. welcome: Velkommen til %{app_title} select_language: Vennligst velg språk + open_project: + common: + work_package_card_component: + menu: + label_actions: Work package actions + work_package_card_list_component: + header: + label_actions: Open menu + label_work_package_count: + zero: No work packages + one: "%{count} work package" + other: "%{count} work packages" permission_add_work_package_comments: Add comments permission_add_work_packages: Legg til arbeidspakker permission_add_messages: Skriv meldinger @@ -4709,7 +4774,6 @@ permission_add_work_package_watchers: Legg til overvåker permission_assign_versions: Tilordne versjoner permission_browse_repository: Skrivebeskyttet tilgang til arkivet (bla og utsjekking) - permission_change_wiki_parent_page: Endre overordnet wiki-side permission_change_work_package_status: Endre status på arbeidspakke permission_change_work_package_status_explanation: Tillater endring av status uten å legge til arbeidspakker permission_comment_news: Kommenter nyheter @@ -4724,8 +4788,6 @@ permission_delete_own_messages: Slette egne meldinger permission_delete_reportings: Slett rapporteringer permission_delete_timelines: Slett tidslinjer - permission_delete_wiki_pages: Slett wiki-sider - permission_delete_wiki_pages_attachments: Slett vedlegg permission_edit_work_package_comments: Moderate comments permission_edit_work_package_comments_explanation: 'Caution: Users with this permission are able to edit anyone''s comment.' permission_edit_work_packages: Rediger arbeidspakker @@ -4745,12 +4807,10 @@ permission_edit_wiki_pages: Rediger wiki-sider permission_export_work_packages: Eksporter arbeidspakker permission_export_projects: Export projects - permission_export_wiki_pages: Eksportèr wiki-sider permission_invite_members_by_email: Invite members by email permission_invite_members_by_email_explanation: 'Allows users to invite new members by email. Invited users will receive an email with a link to set their password and activate their account. Depends on the permission to manage members ' - permission_list_attachments: List vedlegg permission_log_own_time: Logg egen tid permission_log_time: Logg tid for andre brukere permission_manage_forums: Administrere forum @@ -4765,7 +4825,6 @@ permission_manage_subtasks: Administrere arbeidspakkehierarkier permission_manage_versions: Administrere versjoner permission_manage_wiki: Administrere wiki - permission_manage_wiki_menu: Administrere wiki-meny permission_manage_own_working_times: Manage own working times permission_manage_own_working_times_explanation: 'Allows users to manage their own working times, and personal non-working days. @@ -4775,8 +4834,6 @@ ' permission_move_work_packages: Flytt arbeidspakker - permission_protect_wiki_pages: Beskytt wiki-sider - permission_rename_wiki_pages: Gi nytt navn til wiki-sider permission_save_queries: Lagre visninger permission_search_project: Søk i prosjekt permission_select_custom_fields: Velg egendefinerte felt @@ -5155,6 +5212,9 @@ setting_mail_handler_body_delimiter_regex: Avkort e-post som samsvarer med denne regex setting_mail_handler_ignore_filenames: Ignorert e-postvedlegg setting_new_project_user_role_id: Rolle gitt til en ikke-administrativ bruker som oppretter et prosjekt + setting_new_project_user_role_id_caption: 'Only roles that include the permissions to edit project attributes and to manage members are listed, so that the creator can complete the project setup. + + ' setting_new_project_send_confirmation_email: Send notification to author when creating a new project setting_new_project_notification_text: Notification text setting_password_active_rules: Password requirements @@ -5571,6 +5631,7 @@ text_project_identifier_format: Must start with a lowercase letter. Only lowercase letters (a-z), numbers, dashes and underscores are allowed. text_reassign: 'Tilordne til arbeidspakke:' text_regexp_multiline: Denne regexen brukes i flerlinjemodus. f.eks ^---\s+ + text_rename_wiki_page: Rename wiki page text_repository_usernames_mapping: |- Velg eller oppdater OpenProject-brukeren knyttet til hvert enkelt brukernavn i pakkebrønn-loggen. Brukere med samme OpenProject- og pakkebrønn-brukernavn eller e-post tilknyttes automatisk. @@ -6004,9 +6065,6 @@ scopes: Tilganger successful_application_revocation: Tilbaketrekking av appen %{application_name} vellykket. none_given: Ingen OAuth-applikasjoner har blitt gitt tilgang til brukerkontoen din. - x_active_tokens: - one: en aktiv nøkkel - other: "%{count} aktive nøkler" flows: authorization_code: Autorisasjon kode flyt client_credentials: Kundens innloggingsflyt @@ -6016,8 +6074,10 @@ client_credentials_impersonation_html: 'Som standard gir OpenProject OAuth 2.0 autorisasjon via %{authorization_code_flow_link}. Du kan eventuelt aktivere %{client_credentials_flow_link}, men du må oppgi en bruker som forespørselen blir utført på vegne av. ' + confirm_revoke_my_application: + one: Do you really want to remove this application? This will revoke one token active for it. + other: Do you really want to remove this application? This will revoke %{count} tokens active for it. authorization_error: Det oppstod en godkjenningsfeil. - revoke_my_application_confirmation: Vil du virkelig fjerne denne applikasjonen? Dette vil fjerne %{token_count} aktive nøkler for den. my_registered_applications: Registrerte OAuth-søknader oauth_client: urn_connection_status: diff --git a/config/locales/crowdin/pl.yml b/config/locales/crowdin/pl.yml index 85006b2d7cb..273fe6b5afe 100644 --- a/config/locales/crowdin/pl.yml +++ b/config/locales/crowdin/pl.yml @@ -431,7 +431,8 @@ pl: error_special_characters: Znaki specjalne są niedozwolone error_not_fully_uppercased: Musi być pisany wielkimi literami error_in_use: Już używany jako aktywne dojście innego projektu - error_reserved: Zarezerwowany przez historię dojść innego projektu + error_used_in_past: Zarezerwowany przez historię dojść innego projektu + error_reserved_by_system: Zarezerwowany jako systemowe słowo kluczowe error_unknown: Wymaga ręcznego sprawdzenia remaining_projects: one: "...jeszcze 1 projekt" @@ -476,8 +477,14 @@ pl: ignore: Zignoruj zmiany save: Zapisz zmiany i kontynuuj role_selector: + title: Wybierz role label: 'Rola: %{role}' no_role: Wybierz rolę + roles: + one: One role selected + few: "%{count} roles selected" + many: "%{count} roles selected" + other: "%{count} roles selected" blankslate: title: Nie skonfigurowano przejść statusów description: Dodaj statusy, aby rozpocząć konfigurowanie przepływów pracy dla tej roli @@ -1139,6 +1146,8 @@ pl: no_results_title_text: Nie ma jeszcze żadnych wiadomości do wyświetlenia. no_results_content_text: Dodaj nowy element roles: + edit: + default_for_new_projects_warning: 'Ta rola jest skonfigurowana jako domyślna rola nadawana użytkownikom niebędącym administratorami, a którzy tworzą projekt. Nie usuwaj poniższych uprawnień, w przeciwnym razie twórcy projektów nie będą mogli ukończyć konfiguracji swoich nowo utworzonych projektów:' permissions: section_check_all_label: Przypisz wszystkie uprawnienia do %{module} section_uncheck_all_label: Cofnij przypisanie wszystkich uprawnień do %{module} @@ -2036,6 +2045,29 @@ pl: type: Typ version: Wersja watcher: Obserwator + ordered_persisted_query_entity: + persisted_query: Przetrwałe zapytanie + entity: Pole + position: Pozycja + persisted_query: + name: Nazwa + views: Widoki + filters: Filtry + orders: Zamówienia + selects: Wybory + persisted_view: + name: Nazwa + query: Zapytanie + parent: Widok nadrzędny + public: Publiczny + user_card_view: + secondary_info: Dodatkowe informacje + show_status_badge: Pokaż odznakę statusu + show_email: Pokaż adres e-mail + tag_source: Źródło tagów + tag_limit: Limit tagów + card_size: Rozmiar karty + columns_per_row: Liczba kolumn w wierszu errors: messages: accepted: musi być zaakceptowane. @@ -2587,6 +2619,7 @@ pl: unsupported_storage_type: nie jest obsługiwanym typem magazynu. storage_error: Wystąpił błąd połączenia z magazynem. invalid_input: Dane wejściowe są nieprawidłowe. + invalid_child_for_parent: nie jest dozwolony jako nadrzędny dla tego typu widoku. activity: item: created_by_on: utworzone %{datetime} przez %{user} @@ -3505,6 +3538,30 @@ pl: general_text_false: fałsz gui_validation_error: 1 błąd gui_validation_error_plural: "%{count} błędy/ów" + health_reports: + report_component: + checks: + failures: + one: "%{count} kontrola nie powiodła się" + few: "%{count} kontrole nie powiodły się" + many: "%{count} kontroli nie powiodło się" + other: "%{count} kontroli nie powiodło się" + success: Wszystkie kontrole powiodły się + warnings: + one: "%{count} kontrola zwróciła ostrzeżenie" + few: "%{count} kontrole zwróciły ostrzeżenie" + many: "%{count} kontroli zwróciło ostrzeżenie" + other: "%{count} kontroli zwróciło ostrzeżenie" + summary: + failure: Niektóre kontrole nie powiodły się i system nie działa zgodnie z oczekiwaniami. + success: Wszystkie połączenia i systemy działają zgodnie z oczekiwaniami. + warning: Niektóre kontrole zwróciły ostrzeżenie. Może to prowadzić do nieoczekiwanego sposobu działania. + result_component: + status: + failed: Niepowodzenie + passed: Zaliczono + skipped: Pominięto + warning: Ostrzeżenie homescreen: additional: projects: Najnowsze projekty @@ -3806,6 +3863,7 @@ pl: label_age: Wiek label_ago: dni temu label_all: wszystkie + label_all_uppercase: Wszystkie label_all_time: cały czas label_all_words: Wszystkie słowa label_all_open_wps: Wszystkie otwarte @@ -4333,6 +4391,7 @@ pl: label_role_new: Nowa rola label_role_grantable: Przyznawana rola label_role_plural: Role + label_role_missing_permissions: "%{role} (brak wymaganych uprawnień)" label_role_search: Przydziel role nowemu członkowi label_scm: SCM label_scroll_left: Przewiń w lewo @@ -4565,7 +4624,7 @@ pl: you_have: Masz logo_alt_text: Logo mention: - subject: "%{user_name} wspomniał o tobie w #%{id} - %{subject}" + subject: "%{user_name} wspomniał o tobie w %{id} — %{subject}" notification: center: Do centrum powiadomień see_in_center: Zobacz komentarz w centrum powiadomień @@ -4605,7 +4664,7 @@ pl: allowed_actions_html: 'Masz następujące uprawnienia do tego pakietu roboczego: %{allowed_actions}. Może się to zmienić w zależności Twojej od roli i uprawnień w projekcie.' create_account: 'Aby uzyskać dostęp do tego pakietu roboczego, musisz utworzyć i aktywować konto w %{instance}. ' open_work_package: Otwórz pakiet roboczy - subject: Udostępniono Ci pakiet roboczy nr %{id} + subject: Udostępniono Ci pakiet roboczy %{id} enterprise_text: Udostępnij pakiety robocze użytkownikom, którzy nie są członkami projektu. summary: user: Użytkownik %{user} udostępnił Ci pakiet roboczy z uprawnieniami %{role_rights} @@ -4822,6 +4881,18 @@ pl: text_getting_started_description: Uzyskaj szybki przegląd zarządzania projektem i współpracy zespołu w OpenProject. Możesz zrestartować ten film z menu pomocy. welcome: Witamy w %{app_title} select_language: Wybierz język + open_project: + common: + work_package_card_component: + menu: + label_actions: Działania pakietu roboczego + work_package_card_list_component: + header: + label_actions: Open menu + label_work_package_count: + zero: No work packages + one: "%{count} work package" + other: "%{count} work packages" permission_add_work_package_comments: Dodaj komentarze permission_add_work_packages: Dodawanie pakietów roboczych permission_add_messages: Wysyłanie wiadomości @@ -4839,7 +4910,6 @@ pl: permission_add_work_package_watchers: Dodawanie obserwatorów permission_assign_versions: Przypisz wersje permission_browse_repository: Dostęp do repozytorium tylko do odczytu (przegląd i sprawdzenie) - permission_change_wiki_parent_page: Zmiana strony nadrzędnej wiki permission_change_work_package_status: Zmień status pakietu roboczego permission_change_work_package_status_explanation: Umożliwia zmianę statusu bez uprawnienia Edycja pakietów roboczych permission_comment_news: Komentowanie Nowości @@ -4854,8 +4924,6 @@ pl: permission_delete_own_messages: Usuwanie własnych wiadomości permission_delete_reportings: Usuwanie raportów permission_delete_timelines: Usuwanie osi czasu - permission_delete_wiki_pages: Usuwanie stron wiki - permission_delete_wiki_pages_attachments: Usuwanie załączników permission_edit_work_package_comments: Moderuj komentarze permission_edit_work_package_comments_explanation: 'Przestroga: użytkownicy z tym uprawnieniem mogą edytować komentarze wszystkich innych osób.' permission_edit_work_packages: Edycja pakietów roboczych @@ -4875,12 +4943,10 @@ pl: permission_edit_wiki_pages: Edycja stron wiki permission_export_work_packages: Eksportowanie pakietów roboczych permission_export_projects: Eksportuj projekty - permission_export_wiki_pages: Eksportowanie stron wiki permission_invite_members_by_email: Zaproś członków pocztą elektroniczną permission_invite_members_by_email_explanation: 'Umożliwia użytkownikom zapraszanie nowych członków pocztą elektroniczną. Zaproszeni użytkownicy otrzymają wiadomość e-mail z linkiem do ustawienia hasła i aktywacji konta. Zależy od uprawnień do zarządzania członkami ' - permission_list_attachments: Lista załączników permission_log_own_time: Zarejestruj spędzony czas permission_log_time: Zarejestruj czas pozostałych użytkowników permission_manage_forums: Zarządzanie forum @@ -4895,7 +4961,6 @@ pl: permission_manage_subtasks: Zarządzaj hierarchiami pakietów prac permission_manage_versions: Zarządzanie wersjami permission_manage_wiki: Zarządzanie wiki - permission_manage_wiki_menu: Zarządzanie menu wiki permission_manage_own_working_times: Zarządzaj własnymi godzinami pracy permission_manage_own_working_times_explanation: 'Umożliwia użytkownikom zarządzanie własnym czasem pracy i osobistymi dniami wolnymi od pracy. @@ -4905,8 +4970,6 @@ pl: ' permission_move_work_packages: Przenoszenie pakietów roboczych - permission_protect_wiki_pages: Blokowanie stron wiki - permission_rename_wiki_pages: Zmiana nazw strony wiki permission_save_queries: Zapisz widoki permission_search_project: Wyszukaj projekt permission_select_custom_fields: Wybierz pola niestandardowe @@ -5273,6 +5336,9 @@ pl: setting_mail_handler_body_delimiter_regex: Skróć wiadomości e-mail pasujące to wyrażenia regularnego setting_mail_handler_ignore_filenames: Ignorowane załączniki do poczty setting_new_project_user_role_id: Rola dla użytkownika bez uprawnień administratora, który tworzy projekt + setting_new_project_user_role_id_caption: 'Wyświetlane na liście są tylko role, które zawierają uprawnienia do edycji atrybutów projektu i zarządzania członkami, dzięki czemu twórca może dokończyć konfigurację projektu. + + ' setting_new_project_send_confirmation_email: Wyślij powiadomienie do autora podczas tworzenia nowego projektu setting_new_project_notification_text: Tekst powiadomienia setting_password_active_rules: Wymagania dotyczące hasła @@ -5688,6 +5754,7 @@ pl: text_project_identifier_format: Musi zaczynać się od małej litery. Dozwolone są tylko małe litery (a–z), cyfry, myślniki i znaki podkreślenia. text_reassign: 'Ponowne przydzielenie do Zestawu zadań:' text_regexp_multiline: Wyrażenie regularne jest stosowane w trybie wielolinijkowym. np. ^---\s+ + text_rename_wiki_page: Zmień nazwę strony wiki text_repository_usernames_mapping: |- Wybierz lub zaktualizuj użytkownika OpenProject do każdego użytkownika w dzienniku repozytorium. Użytkownicy z tym samym loginem lub adresem e-mail w OpenProject i repozytorium są automatycznie mapowani. @@ -6123,11 +6190,6 @@ pl: scopes: Uprawnienia successful_application_revocation: Unieważnienie uprawnień aplikacji %{application_name} powiodło się. none_given: Żadnym aplikacjom OAuth nie udzielono dostępu do tego konta użytkownika. - x_active_tokens: - one: jeden aktywny token - few: "%{count} aktywnych tokenów" - many: "%{count} aktywnych tokenów" - other: "%{count} aktywnych tokenów" flows: authorization_code: Przepływ Kod autoryzacji client_credentials: Przepływ Poświadczenia klienta @@ -6137,8 +6199,12 @@ pl: client_credentials_impersonation_html: 'Domyślnie OpenProject zapewnia autoryzację OAuth 2.0, stosując %{authorization_code_flow_link}. Można opcjonalnie włączyć %{client_credentials_flow_link}, ale musisz podać użytkownika, w którego imieniu będą wykonywane żądania. ' + confirm_revoke_my_application: + one: Czy na pewno chcesz usunąć tę aplikację? Unieważni to jej jeden aktywny token. + few: Czy na pewno chcesz usunąć tę aplikację? Unieważni to jej %{count} aktywne tokeny. + many: Czy na pewno chcesz usunąć tę aplikację? Unieważni to jej %{count} aktywnych tokenów. + other: Czy na pewno chcesz usunąć tę aplikację? Unieważni to jej %{count} aktywnego tokenu. authorization_error: Wystąpił błąd autoryzacji. - revoke_my_application_confirmation: Czy na pewno chcesz usunąć tę aplikację? Unieważni to jej aktywne tokeny (%{token_count}). my_registered_applications: Zarejestrowane aplikacje OAuth oauth_client: urn_connection_status: diff --git a/config/locales/crowdin/pt-BR.yml b/config/locales/crowdin/pt-BR.yml index df76e746a87..bcd8827fb7e 100644 --- a/config/locales/crowdin/pt-BR.yml +++ b/config/locales/crowdin/pt-BR.yml @@ -419,7 +419,8 @@ pt-BR: error_special_characters: Caracteres especiais não são permitidos error_not_fully_uppercased: Deve estar em maiúsculas error_in_use: Já está em uso como identificador ativo de outro projeto - error_reserved: Reservado pelo histórico de identificadores de outro projeto + error_used_in_past: Reservado pelo histórico de identificadores de outro projeto + error_reserved_by_system: Reservado como uma palavra-chave do sistema error_unknown: Requer revisão manual remaining_projects: one: "… mais 1 projeto" @@ -460,8 +461,12 @@ pt-BR: ignore: Ignorar alterações save: Salvar alterações e continuar role_selector: + title: Selecionar funções label: 'Função: %{role}' no_role: Selecionar função + roles: + one: One role selected + other: "%{count} roles selected" blankslate: title: Nenhuma transição de status configurada description: Adicione status para começar a configurar fluxos de trabalho para esta função @@ -1110,6 +1115,8 @@ pt-BR: no_results_title_text: Atualmente, não há notícias para comunicar. no_results_content_text: Adicionar um item de notícias roles: + edit: + default_for_new_projects_warning: 'Falha ao mover o usuário entre departamentos. Este perfil está configurado como o perfil padrão atribuído a usuários não administradores que criam um projeto. Não remova as permissões a seguir, caso contrário os criadores de projetos não conseguirão concluir a configuração dos novos projetos que criarem:' permissions: section_check_all_label: Atribuir todas as permissões de %{module} section_uncheck_all_label: Remover todas as permissões de %{module} @@ -1997,6 +2004,29 @@ pt-BR: type: Tipo version: Versão watcher: Observador + ordered_persisted_query_entity: + persisted_query: Consulta persistida + entity: Entidade + position: Posição + persisted_query: + name: Nome + views: Visualizações + filters: Filtros + orders: Pedidos + selects: Seleções + persisted_view: + name: Nome + query: Consulta + parent: Visualização pai + public: Público + user_card_view: + secondary_info: Informações secundárias + show_status_badge: Mostrar selo de status + show_email: Exibir e-mail + tag_source: Fonte do marcador + tag_limit: Limite de marcadores + card_size: Tamanho do cartão + columns_per_row: Colunas por linha errors: messages: accepted: deve ser aceito. @@ -2514,6 +2544,7 @@ pt-BR: unsupported_storage_type: não é um tipo de armazenamento compatível. storage_error: Ocorreu um erro na conexão com o armazenamento. invalid_input: A entrada é inválida. + invalid_child_for_parent: não é permitido como pai para este tipo de visualização. activity: item: created_by_on: criado por %{user} em %{datetime} @@ -3388,6 +3419,26 @@ pt-BR: general_text_false: falso gui_validation_error: 1 erro gui_validation_error_plural: "%{count} erros" + health_reports: + report_component: + checks: + failures: + one: Falha em %{count} verificação + other: Falha em %{count} verificações + success: Todas as verificações foram aprovadas + warnings: + one: "%{count} verificação retornou um aviso" + other: "%{count} verificações retornaram um aviso" + summary: + failure: Algumas verificações falharam e o sistema não está funcionando como esperado. + success: Todas as conexões e sistemas estão operando normalmente. + warning: Alguns testes retornaram um alerta. Isso pode causar comportamentos inesperados. + result_component: + status: + failed: Falhou + passed: Aprovado + skipped: Ignorando + warning: Aviso homescreen: additional: projects: Projetos mais recentes visíveis nesta instância. @@ -3689,6 +3740,7 @@ pt-BR: label_age: Idade label_ago: dias atrás label_all: todos + label_all_uppercase: Todos label_all_time: todos os tempos label_all_words: Todas as palavras label_all_open_wps: Tudo aberto @@ -4216,6 +4268,7 @@ pt-BR: label_role_new: Nova função label_role_grantable: Função concedível label_role_plural: Papéis + label_role_missing_permissions: "%{role} (permissões obrigatórias ausentes)" label_role_search: Atribuir papéis aos novos membros label_scm: SCM label_scroll_left: Rolar para a esquerda @@ -4442,7 +4495,7 @@ pt-BR: you_have: Você possui logo_alt_text: Logotipo mention: - subject: "%{user_name} mencionou você em #%{id} - %{subject}" + subject: "%{user_name} mencionou você em %{id} - %{subject}" notification: center: Para o centro de notificação see_in_center: Ver comentário no centro de notificações @@ -4480,7 +4533,7 @@ pt-BR: allowed_actions_html: 'Você possui as seguintes permissões neste pacote de trabalho: %{allowed_actions}. Isso pode mudar dependendo da sua função e das permissões no projeto.' create_account: Para acessar este pacote de trabalho, você terá que criar e ativar uma conta em %{instance}. open_work_package: Abrir pacote de trabalho - subject: O Pacote de trabalho nº %{id} foi compartilhado com você + subject: O pacote de trabalho %{id} foi compartilhado com você enterprise_text: Compartilhe pacotes de trabalho com usuários que não são membros do projeto. summary: user: "%{user} compartilhou um pacote de trabalho com você com privilégios de %{role_rights}" @@ -4690,6 +4743,18 @@ pt-BR: text_getting_started_description: Obtenha uma visão geral da gestão de projetos e colaboração entre equipes com o OpenProject. Você pode assistir este vídeo novamente no menu de ajuda. welcome: Bem-vindo ao %{app_title} select_language: Por favor, selecione seu idioma + open_project: + common: + work_package_card_component: + menu: + label_actions: Ações do pacote de trabalho + work_package_card_list_component: + header: + label_actions: Open menu + label_work_package_count: + zero: No work packages + one: "%{count} work package" + other: "%{count} work packages" permission_add_work_package_comments: Adicionar comentários permission_add_work_packages: Adicionar pacotes de trabalho permission_add_messages: Postar mensagens @@ -4707,7 +4772,6 @@ pt-BR: permission_add_work_package_watchers: Adicionar observadores permission_assign_versions: Atribuir versões permission_browse_repository: Acesso somente leitura ao repositório (browse e check-out) - permission_change_wiki_parent_page: Alterar página pai da wiki permission_change_work_package_status: Alterar status do pacote de trabalho permission_change_work_package_status_explanation: Permite alterar o status sem permissão para Editar pacotes de trabalho permission_comment_news: Comentar notícias @@ -4722,8 +4786,6 @@ pt-BR: permission_delete_own_messages: Apagar as próprias mensagens permission_delete_reportings: Excluir relatórios permission_delete_timelines: Excluir cronogramas - permission_delete_wiki_pages: Excluir páginas wiki - permission_delete_wiki_pages_attachments: Excluir anexos permission_edit_work_package_comments: Moderar comentários permission_edit_work_package_comments_explanation: 'Atenção: Usuários com esta permissão podem editar comentários de qualquer pessoa.' permission_edit_work_packages: Editar pacotes de trabalho @@ -4743,12 +4805,10 @@ pt-BR: permission_edit_wiki_pages: Editar páginas wiki permission_export_work_packages: Exportar pacotes de trabalho permission_export_projects: Exportar projetos - permission_export_wiki_pages: Exportar páginas wiki permission_invite_members_by_email: Convidar membros por e-mail permission_invite_members_by_email_explanation: 'Permite que usuários convidem novos membros por e-mail. Os usuários convidados receberão um e-mail com um link para definir sua senha e ativar a conta. Depende da permissão para gerenciar membros ' - permission_list_attachments: Lista de anexos permission_log_own_time: Registrar própria hora permission_log_time: Registrar hora para outros usuários permission_manage_forums: Gerenciar fóruns @@ -4763,7 +4823,6 @@ pt-BR: permission_manage_subtasks: Gerenciar hierarquias dos pacotes de trabalho permission_manage_versions: Gerenciar versões permission_manage_wiki: Gerenciar wiki - permission_manage_wiki_menu: Gerenciar menu da wiki permission_manage_own_working_times: Gerenciar seus próprios horários de trabalho permission_manage_own_working_times_explanation: 'Permite que os usuários gerenciem seus próprios horários de trabalho e seus dias não úteis pessoais. @@ -4773,8 +4832,6 @@ pt-BR: ' permission_move_work_packages: Mover pacotes de trabalho - permission_protect_wiki_pages: Proteger páginas wiki - permission_rename_wiki_pages: Renomear páginas wiki permission_save_queries: Salvar visões permission_search_project: Buscar projeto permission_select_custom_fields: Selecionar campos personalizados @@ -5145,6 +5202,9 @@ pt-BR: setting_mail_handler_body_delimiter_regex: Truncar e-mails correspondentes a esta expressão regular setting_mail_handler_ignore_filenames: Anexos de e-mail ignorados setting_new_project_user_role_id: Função atribuída a um usuário não administrador que cria um projeto + setting_new_project_user_role_id_caption: 'Apenas funções que incluem permissões para editar atributos do projeto e gerenciar membros são listadas, para que o criador possa concluir a configuração do projeto. + + ' setting_new_project_send_confirmation_email: Enviar notificação ao autor ao criar um novo projeto setting_new_project_notification_text: Texto de notificação setting_password_active_rules: Requisitos de senha @@ -5557,6 +5617,7 @@ pt-BR: text_project_identifier_format: Deve começar com uma letra minúscula. Apenas letras minúsculas (a-z), números, hífens e underscores são permitidos. text_reassign: 'Reatribua ao pacote de trabalho:' text_regexp_multiline: 'A expressão regular é aplicada no modo multilinha. Por exemplo: ^---\s+' + text_rename_wiki_page: Renomear página wiki text_repository_usernames_mapping: Selecionar ou atualizar o usuário do OpenProject mapeado para cada nome de usuário encontrado no log do repositório. Os usuários com o mesmo nome de usuário OpenProject e repositório ou e-mail serão mapeados automaticamente. text_status_changed_by_changeset: Aplicado no conjunto de alterações %{value}. text_table_difference_description: Nesta tabela, os únicos %{entries} são mostrados. Você pode ver a diferença entre quaisquer duas entradas selecionando primeiro as caixas de seleção correspondentes na tabela. Ao clicar no botão abaixo da tabela são mostradas as diferenças. @@ -5988,9 +6049,6 @@ pt-BR: scopes: Permissões successful_application_revocation: Revogação da aplicação %{application_name} bem sucedida. none_given: Nenhum aplicativo OAuth recebeu acesso à sua conta de usuário. - x_active_tokens: - one: um token ativo - other: "%{count} token(s) ativo(s)" flows: authorization_code: Fluxo de código de autorização client_credentials: Fluxo de credenciais do cliente @@ -6000,8 +6058,10 @@ pt-BR: client_credentials_impersonation_html: 'Por padrão, o OpenProject fornece autorização OAuth 2.0 via %{authorization_code_flow_link}. Você pode habilitar opcionalmente %{client_credentials_flow_link}, mas você deve fornecer um usuário em cujo nome as requisições serão realizadas. ' + confirm_revoke_my_application: + one: Você realmente deseja remover esta aplicação? Isso irá revogar um token ativo associado a ela. + other: Você realmente deseja remover esta aplicação? Isso irá revogar %{count} tokens ativos associados a ela. authorization_error: Ocorreu um erro de autorização. - revoke_my_application_confirmation: Você quer realmente remover esta aplicação? Isso irá revogar %{token_count} ativo(s) para ele. my_registered_applications: Aplicações OAuth registradas oauth_client: urn_connection_status: diff --git a/config/locales/crowdin/pt-PT.yml b/config/locales/crowdin/pt-PT.yml index b4a0f1ff976..1d3fb0b656c 100644 --- a/config/locales/crowdin/pt-PT.yml +++ b/config/locales/crowdin/pt-PT.yml @@ -419,7 +419,8 @@ pt-PT: error_special_characters: Caracteres especiais não são permitidos error_not_fully_uppercased: Deve estar em maiúsculas error_in_use: Já está a ser utilizado como identificador ativo de outro projeto - error_reserved: Reservado pelo histórico do identificador de outro projeto + error_used_in_past: Reservado pelo histórico do identificador de outro projeto + error_reserved_by_system: Reservado como palavra-chave do sistema error_unknown: Precisa de revisão manual remaining_projects: one: "... mais 1 projeto" @@ -460,8 +461,12 @@ pt-PT: ignore: Ignorar alterações save: Guardar as alterações e continuar role_selector: + title: Selecionar funções label: 'Função: %{role}' no_role: Selecionar função + roles: + one: One role selected + other: "%{count} roles selected" blankslate: title: Não há transições de estado configuradas description: Adicione estados para começar a configurar fluxos de trabalho para esta função @@ -1109,6 +1114,8 @@ pt-PT: no_results_title_text: Atualmente, não existem notícias para comunicar. no_results_content_text: Adicione um item de notícias roles: + edit: + default_for_new_projects_warning: 'Esta função está configurada como função predefinida atribuída aos utilizadores não administradores que criam um projeto. Não remova as seguintes permissões, caso contrário os criadores não conseguirão concluir a configuração dos seus projetos recém-criados:' permissions: section_check_all_label: Atribua todas as permissões de %{module} section_uncheck_all_label: Anular a atribuição de todas as permissões de %{module} @@ -1998,6 +2005,29 @@ pt-PT: type: Tipo version: Versão watcher: Monitor + ordered_persisted_query_entity: + persisted_query: Consulta persistente + entity: Entidade + position: Posição + persisted_query: + name: Nome + views: Visualizações + filters: Filtros + orders: Pedidos + selects: Seleciona + persisted_view: + name: Nome + query: Consulta + parent: Vista geral + public: Público + user_card_view: + secondary_info: Informações secundárias + show_status_badge: Mostrar distintivo de estado + show_email: Mostrar e-mail + tag_source: Fonte da etiqueta + tag_limit: Limite da etiqueta + card_size: Tamanho do cartão + columns_per_row: Colunas por linha errors: messages: accepted: deve ser aceite. @@ -2515,6 +2545,7 @@ pt-PT: unsupported_storage_type: não é um tipo de armazenamento suportado. storage_error: Ocorreu um erro na ligação ao armazenamento. invalid_input: A entrada é inválida. + invalid_child_for_parent: não é permitido como pai para este tipo de vista. activity: item: created_by_on: criado por %{user} em %{datetime} @@ -3389,6 +3420,26 @@ pt-PT: general_text_false: falso gui_validation_error: 1 erro gui_validation_error_plural: "%{count} erros" + health_reports: + report_component: + checks: + failures: + one: "%{count} verificação falhou" + other: "%{count} verificações falharam" + success: Todas as verificações passaram + warnings: + one: "%{count} verificação devolvida com um aviso" + other: "%{count} verificações devolvidas com um aviso" + summary: + failure: Algumas verificações não foram aprovadas e o sistema não funciona como esperado. + success: Todas as ligações e sistemas estão a funcionar como esperado. + warning: Algumas verificações foram devolvidas com um aviso. Pode levar a comportamento inesperado. + result_component: + status: + failed: Falhou + passed: Aprovado + skipped: Ignorado + warning: Aviso homescreen: additional: projects: Mais recentes projectos visíveis nesta instância. @@ -3690,6 +3741,7 @@ pt-PT: label_age: Idade label_ago: dias atrás label_all: todos + label_all_uppercase: Tudo label_all_time: sempre label_all_words: Todas as palavras label_all_open_wps: Tudo aberto @@ -4217,6 +4269,7 @@ pt-PT: label_role_new: Nova função label_role_grantable: Função concedível label_role_plural: Papel + label_role_missing_permissions: "%{role} (faltam permissões necessárias)" label_role_search: Atribuir função aos novos membros label_scm: SCM label_scroll_left: Deslocar para a esquerda @@ -4443,7 +4496,7 @@ pt-PT: you_have: Você tem logo_alt_text: Logo mention: - subject: "%{user_name} mencionou-o em #%{id} - %{subject}" + subject: "%{user_name} mencionou-o em %{id} - %{subject}" notification: center: Para o centro de notificações see_in_center: Ver comentário no centro de notificações @@ -4481,7 +4534,7 @@ pt-PT: allowed_actions_html: 'Tem as seguintes permissões para este pacote de trabalho: %{allowed_actions}. Isto pode mudar consoante a sua função no projeto e as permissões.' create_account: 'Para aceder a este pacote de trabalho, terá de criar e ativar uma conta em %{instance}. ' open_work_package: Abrir pacote de trabalho - subject: 'O pacote de trabalho #%{id} foi partilhado consigo' + subject: O pacote de trabalho %{id} foi partilhado consigo enterprise_text: Partilhe pacotes de trabalho com utilizadores que não são membros do projeto. summary: user: "%{user} compartilhou um pacote de trabalho com você com privilégios %{role_rights}" @@ -4689,6 +4742,18 @@ pt-PT: text_getting_started_description: Obtenha um resumo rápido da gestão do projeto e colaboração da equipa com o OpenProject. Pode reiniciar este vídeo a partir do menu de ajuda. welcome: Bem-vindo ao %{app_title} select_language: Selecione o seu idioma + open_project: + common: + work_package_card_component: + menu: + label_actions: Ações do pacote de trabalho + work_package_card_list_component: + header: + label_actions: Open menu + label_work_package_count: + zero: No work packages + one: "%{count} work package" + other: "%{count} work packages" permission_add_work_package_comments: Adicionar comentários permission_add_work_packages: Adicionar pacotes de trabalho permission_add_messages: Publicar mensagens @@ -4706,7 +4771,6 @@ pt-PT: permission_add_work_package_watchers: Adicionar observadores permission_assign_versions: Atribuir versões permission_browse_repository: Acesso só de leitura ao repositório (navegar e fazer checkout) - permission_change_wiki_parent_page: Alterar a página wiki fonte permission_change_work_package_status: Altere o estado do pacote de trabalho permission_change_work_package_status_explanation: Permite alterar o estado sem permissão de edição de pacotes de trabalho permission_comment_news: Comentar notícias @@ -4721,8 +4785,6 @@ pt-PT: permission_delete_own_messages: Eliminar as próprias mensagens permission_delete_reportings: Eliminar comunicações permission_delete_timelines: Apagar cronogramas - permission_delete_wiki_pages: Eliminar páginas wiki - permission_delete_wiki_pages_attachments: Eliminar anexos permission_edit_work_package_comments: Moderar comentários permission_edit_work_package_comments_explanation: 'Atenção: os utilizadores com esta permissão podem editar os comentários de qualquer pessoa.' permission_edit_work_packages: Editar pacotes de trabalho @@ -4742,12 +4804,10 @@ pt-PT: permission_edit_wiki_pages: Editar páginas wiki permission_export_work_packages: Exportar pacotes de trabalho permission_export_projects: Exportar projetos - permission_export_wiki_pages: Exportar páginas wiki permission_invite_members_by_email: Convidar membros por e-mail permission_invite_members_by_email_explanation: 'Permite aos utilizadores convidar novos membros por e-mail. Os utilizadores convidados receberão um e-mail com um link para definir a palavra-passe e ativar a conta. Depende da permissão para gerir membros ' - permission_list_attachments: Lista de anexos permission_log_own_time: Registar o próprio tempo permission_log_time: Registar tempo para outros utilizadores permission_manage_forums: Gerir fóruns @@ -4762,7 +4822,6 @@ pt-PT: permission_manage_subtasks: Gerir hierarquias dos pacotes de trabalho permission_manage_versions: Gerir versões permission_manage_wiki: Gerir wiki - permission_manage_wiki_menu: Gerir menu da wiki permission_manage_own_working_times: Gerir o próprio horário de trabalho permission_manage_own_working_times_explanation: 'Permite aos utilizadores gerir os seus próprios horários de trabalho e dias de folga por motivos pessoais. @@ -4772,8 +4831,6 @@ pt-PT: ' permission_move_work_packages: Mover pacotes de trabalho - permission_protect_wiki_pages: Proteger páginas da wiki - permission_rename_wiki_pages: Renomear páginas da wiki permission_save_queries: Guardar visualizações permission_search_project: Pesquisar projeto permission_select_custom_fields: Escolher campos adicionais... @@ -5140,6 +5197,9 @@ pt-PT: setting_mail_handler_body_delimiter_regex: Truncar emails com correspondência a este regex setting_mail_handler_ignore_filenames: Anexos de e-mail ignorados setting_new_project_user_role_id: Função atribuída a um utilizador não-administrador que cria um projeto + setting_new_project_user_role_id_caption: 'Apenas são listadas as funções que incluem as permissões para editar os atributos do projeto e gerir membros, para que o criador possa concluir a configuração do projeto. + + ' setting_new_project_send_confirmation_email: Enviar notificação ao autor ao criar um novo projeto setting_new_project_notification_text: Texto da notificação setting_password_active_rules: Requisitos da palavra-passe @@ -5556,6 +5616,7 @@ pt-PT: text_project_identifier_format: Deve começar com uma letra minúscula. Só são permitidas letras minúsculas (a-z), números, traços e sublinhados. text_reassign: 'Reatribuir pacote de trabalho:' text_regexp_multiline: Regex é aplicado num modo de várias linhas. por exemplo, ^---\s+ + text_rename_wiki_page: Mudar o nome da página wiki text_repository_usernames_mapping: |- Selecionar ou atualizar o utilizador de OpenProjecto mapeado a cada nome de utilizador encontrado no repositório. Utilizadores com o mesmo nome de utilizador ou e-mail no OpenProject e no repositório são mapeados automaticamente. @@ -5989,9 +6050,6 @@ pt-PT: scopes: Permissões successful_application_revocation: Revogação da aplicação %{application_name} bem sucedida. none_given: Nenhuma aplicação OAuth foi autorizada a aceder à sua conta de utilizador. - x_active_tokens: - one: um token ativo - other: "%{count} tokens ativos" flows: authorization_code: Fluxo de código de autorização client_credentials: Fluxo de credenciais do cliente @@ -6001,8 +6059,10 @@ pt-PT: client_credentials_impersonation_html: 'Por padrão, o OpenProject fornece autorização OAuth 2.0 via %{authorization_code_flow_link}. Opcionalmente, pode habilitar %{client_credentials_flow_link}, mas deve fornecer um utilizador em cujo nome serão feitos os pedidos. ' + confirm_revoke_my_application: + one: Quero mesmo remover esta aplicação? Isto irá revogar um token ativo para a mesma. + other: Quer mesmo remover esta aplicação? Isto irá revogar %{count} tokens ativos para a mesma. authorization_error: Ocorreu um erro de autorização. - revoke_my_application_confirmation: Pretende remover esta aplicação? Isto irá revogar %{token_count} ativo para ela. my_registered_applications: Aplicações OAuth registadas oauth_client: urn_connection_status: diff --git a/config/locales/crowdin/ro.yml b/config/locales/crowdin/ro.yml index bfcc9dde258..225cc58cf03 100644 --- a/config/locales/crowdin/ro.yml +++ b/config/locales/crowdin/ro.yml @@ -425,7 +425,8 @@ ro: error_special_characters: Special characters not allowed error_not_fully_uppercased: Must be uppercase error_in_use: Already in use as another project's active handle - error_reserved: Reserved by another project's handle history + error_used_in_past: Reserved by another project's handle history + error_reserved_by_system: Reserved as a system keyword error_unknown: Needs manual review remaining_projects: one: "... 1 more project" @@ -468,8 +469,13 @@ ro: ignore: Ignore changes save: Save changes and continue role_selector: + title: Select roles label: 'Role: %{role}' no_role: Select role + roles: + one: One role selected + few: "%{count} roles selected" + other: "%{count} roles selected" blankslate: title: No status transitions configured description: Add statuses to start configuring workflows for this role @@ -1125,6 +1131,8 @@ ro: no_results_title_text: În acest moment nu există știri de raportat. no_results_content_text: Adaugă știre nouă roles: + edit: + default_for_new_projects_warning: 'This role is configured as the default role given to non-admin users who create a project. Do not remove the following permissions, otherwise project creators will be unable to complete the setup of their newly created projects:' permissions: section_check_all_label: Assign all %{module} permissions section_uncheck_all_label: Unassign all %{module} permissions @@ -2020,6 +2028,29 @@ ro: type: Tip version: Versiune watcher: Observator + ordered_persisted_query_entity: + persisted_query: Persisted query + entity: Entity + position: Position + persisted_query: + name: Name + views: Views + filters: Filters + orders: Orders + selects: Selects + persisted_view: + name: Name + query: Query + parent: Parent view + public: Public + user_card_view: + secondary_info: Secondary info + show_status_badge: Show status badge + show_email: Show email + tag_source: Tag source + tag_limit: Tag limit + card_size: Card size + columns_per_row: Columns per row errors: messages: accepted: trebuie acceptat. @@ -2555,6 +2586,7 @@ ro: unsupported_storage_type: is not a supported storage type. storage_error: There was an error with the storage connection. invalid_input: The input is invalid. + invalid_child_for_parent: is not allowed as a parent for this view type. activity: item: created_by_on: creat de %{user} în %{datetime} @@ -3452,6 +3484,28 @@ ro: general_text_false: fals gui_validation_error: o eroare gui_validation_error_plural: "%{count} erori" + health_reports: + report_component: + checks: + failures: + one: "%{count} check failed" + few: "%{count} checks failed" + other: "%{count} checks failed" + success: All checks passed + warnings: + one: "%{count} check returned a warning" + few: "%{count} checks returned a warning" + other: "%{count} checks returned a warning" + summary: + failure: Some checks failed and the system does not work as expected. + success: All connections and systems are working as expected. + warning: Some checks returned a warning. This can lead to unexpected behaviour. + result_component: + status: + failed: Failed + passed: Passed + skipped: Skipped + warning: Warning homescreen: additional: projects: Proiecte vizibile noi. @@ -3753,6 +3807,7 @@ ro: label_age: Vârstă label_ago: zile în urmă label_all: toate + label_all_uppercase: All label_all_time: oricând label_all_words: Toate cuvintele label_all_open_wps: Toate deschise @@ -3917,7 +3972,7 @@ ro: label_duplicated_by: dublat de label_duplicate: duplicat label_duplicates: dublează - label_edit: Editează + label_edit: Editare label_edit_x: 'Editare: %{x}' label_view_x: 'View: %{x}' label_enable_multi_select: Comutare selecție multiplă @@ -3974,7 +4029,7 @@ ro: label_global_roles: Roluri globale label_git_path: Calea catre directorul .git label_greater_or_equal: ">=" - label_group_by: Grupează după + label_group_by: Grupare după label_group_new: Grupare nouă label_group: Grup label_group_named: Grup %{name} @@ -4280,6 +4335,7 @@ ro: label_role_new: Rol nou label_role_grantable: Grantable role label_role_plural: Roluri + label_role_missing_permissions: "%{role} (missing required permissions)" label_role_search: Atribuirea rolului noilor membri label_scm: SCM label_scroll_left: Derulează la stânga @@ -4509,7 +4565,7 @@ ro: you_have: Aveți logo_alt_text: Logo-ul mention: - subject: "%{user_name} te-a menționat în #%{id} - %{subject}" + subject: "%{user_name} mentioned you in %{id} - %{subject}" notification: center: Centrul de notificare see_in_center: Vezi comentariul în centrul de notificări @@ -4548,7 +4604,7 @@ ro: allowed_actions_html: 'You have the following permissions on this work package: %{allowed_actions}. This can change depending on your project role and permissions.' create_account: To access this work package, you will need to create and activate an account on %{instance}. open_work_package: Open work package - subject: 'Work package #%{id} was shared with you' + subject: Work package %{id} was shared with you enterprise_text: Share work packages with users who are not members of the project. summary: user: "%{user} shared a work package with you with %{role_rights} rights" @@ -4762,6 +4818,18 @@ ro: text_getting_started_description: Obține o imagine de ansamblu rapidă a gestionării proiectelor și a colaborării în echipă cu OpenProject. Poți reporni acest videoclip din meniul de ajutor. welcome: Bun venit la %{app_title} select_language: Te rog selectează limba + open_project: + common: + work_package_card_component: + menu: + label_actions: Work package actions + work_package_card_list_component: + header: + label_actions: Open menu + label_work_package_count: + zero: No work packages + one: "%{count} work package" + other: "%{count} work packages" permission_add_work_package_comments: Add comments permission_add_work_packages: Adaugă pachete de lucru permission_add_messages: Publicare mesaje @@ -4779,7 +4847,6 @@ ro: permission_add_work_package_watchers: Adaugă observatori permission_assign_versions: Atribuie versiuni permission_browse_repository: Acces doar citire la repo (vizualizare și descărcare) - permission_change_wiki_parent_page: Schimbare pagina wiki părinte permission_change_work_package_status: Schimbare stare pachet de lucru permission_change_work_package_status_explanation: Allows changing status without Edit work packages permission permission_comment_news: Comentare noutăți @@ -4794,8 +4861,6 @@ ro: permission_delete_own_messages: Ștergere mesaje proprii permission_delete_reportings: Ștergere raportări permission_delete_timelines: Ștergere linii de timp - permission_delete_wiki_pages: Ștergere pagini wiki - permission_delete_wiki_pages_attachments: Ștergere atașamente permission_edit_work_package_comments: Moderate comments permission_edit_work_package_comments_explanation: 'Caution: Users with this permission are able to edit anyone''s comment.' permission_edit_work_packages: Editare pachete de lucru @@ -4815,12 +4880,10 @@ ro: permission_edit_wiki_pages: Editare pagini wiki permission_export_work_packages: Export pachete de lucru permission_export_projects: Export projects - permission_export_wiki_pages: Export pagini wiki permission_invite_members_by_email: Invite members by email permission_invite_members_by_email_explanation: 'Allows users to invite new members by email. Invited users will receive an email with a link to set their password and activate their account. Depends on the permission to manage members ' - permission_list_attachments: Listare atașamente permission_log_own_time: Înregistrare timp propriu permission_log_time: Înregistrare timp pentru alți utilizatori permission_manage_forums: Gestionare forumuri @@ -4835,7 +4898,6 @@ ro: permission_manage_subtasks: Gestionați ierarhiile pachetelor de lucru permission_manage_versions: Gestionare versiuni permission_manage_wiki: Gestionare wiki - permission_manage_wiki_menu: Gestionare meniu wiki permission_manage_own_working_times: Manage own working times permission_manage_own_working_times_explanation: 'Allows users to manage their own working times, and personal non-working days. @@ -4845,8 +4907,6 @@ ro: ' permission_move_work_packages: Mutare pachete de lucru - permission_protect_wiki_pages: Protejare pagini wiki - permission_rename_wiki_pages: Redenumește pagini wiki permission_save_queries: Salvare vizualizări permission_search_project: Caută proiect permission_select_custom_fields: Selectează câmpuri personalizate @@ -5221,6 +5281,9 @@ ro: setting_mail_handler_body_delimiter_regex: Trunchiază email-uri care se potrivesc cu acest regex setting_mail_handler_ignore_filenames: Atașamente de e-mail ignorate setting_new_project_user_role_id: Rol atribuit unui utilizator non-administrator care crează un proiect + setting_new_project_user_role_id_caption: 'Only roles that include the permissions to edit project attributes and to manage members are listed, so that the creator can complete the project setup. + + ' setting_new_project_send_confirmation_email: Trimite notificare autorului la crearea unui proiect nou setting_new_project_notification_text: Notification text setting_password_active_rules: Password requirements @@ -5635,6 +5698,7 @@ ro: text_project_identifier_format: Must start with a lowercase letter. Only lowercase letters (a-z), numbers, dashes and underscores are allowed. text_reassign: 'Reatribuire la pachetul de lucru:' text_regexp_multiline: 'Formula regex este aplicată într-un mod multilinie - de exemplu: ^---\s+' + text_rename_wiki_page: Rename wiki page text_repository_usernames_mapping: |- Selectați sau modificați contul OpenProject mapat la fiecare cont din istoricul repo-ului. Utilizatorii cu cont sau e-mail identic în OpenProject și repo sunt echivalați automat. @@ -6069,10 +6133,6 @@ ro: scopes: Permisiuni successful_application_revocation: Revocarea cererii %{application_name} a avut succes. none_given: Nu a fost acordat acces la contul dvs. de utilizator niciunei aplicații OAuth. - x_active_tokens: - one: un jeton activ - few: activ - other: "%{count} jeton activ" flows: authorization_code: Fluxul codului de autorizare client_credentials: Credențiale client ID utilizator @@ -6082,8 +6142,11 @@ ro: client_credentials_impersonation_html: 'În mod implicit, OpenProject oferă autorizare OAuth 2.0 prin %{authorization_code_flow_link}. Puteți activa opțional %{client_credentials_flow_link}, dar trebuie să furnizați un utilizator în numele căruia vor fi efectuate cererile. ' + confirm_revoke_my_application: + one: Do you really want to remove this application? This will revoke one token active for it. + few: Do you really want to remove this application? This will revoke %{count} tokens active for it. + other: Do you really want to remove this application? This will revoke %{count} tokens active for it. authorization_error: A apărut o eroare internă. - revoke_my_application_confirmation: Chiar doriți să eliminați această aplicație? Acest lucru va anula %{token_count} active pentru aceasta. my_registered_applications: Aplicații OAuth înregistrate oauth_client: urn_connection_status: diff --git a/config/locales/crowdin/ru.yml b/config/locales/crowdin/ru.yml index 469c888ee93..c5b28d33ed1 100644 --- a/config/locales/crowdin/ru.yml +++ b/config/locales/crowdin/ru.yml @@ -431,7 +431,8 @@ ru: error_special_characters: Специальные символы не допускаются error_not_fully_uppercased: Должно быть заглавными error_in_use: Уже используется в другом проекте - error_reserved: Зарезервировано другим проектом + error_used_in_past: Зарезервировано другим проектом + error_reserved_by_system: Зарезервировано как системное ключевое слово error_unknown: Требуется ручная проверка remaining_projects: one: "... еще 1 проект" @@ -476,8 +477,14 @@ ru: ignore: Игнорировать изменения save: Сохранить изменения и продолжить role_selector: + title: Выберите роли label: 'Роль: %{role}' no_role: Выберите роль + roles: + one: Выбрана одна роль + few: "%{count} роли выбрано" + many: "%{count} ролей выбрано" + other: "%{count} ролей выбрано" blankslate: title: Переходы статуса не настроены description: Добавьте статусы, чтобы начать настройку рабочих процессов для этой роли @@ -1139,6 +1146,8 @@ ru: no_results_title_text: На данный момент новостей для отчета нет. no_results_content_text: Добавить новость roles: + edit: + default_for_new_projects_warning: 'Эта роль настроена как роль по умолчанию, предоставляемая пользователям, не являющимся администраторами, которые создают проект. Не удаляйте следующие разрешения, иначе создатели проектов не смогут завершить настройку своих новых проектов:' permissions: section_check_all_label: Назначьте все разрешения %{module} section_uncheck_all_label: Отменить все разрешения %{module} @@ -2043,6 +2052,29 @@ ru: type: Тип version: Этапы watcher: Наблюдатель + ordered_persisted_query_entity: + persisted_query: Постоянный запрос + entity: Сущность + position: Позиция + persisted_query: + name: Имя + views: Представления + filters: Фильтры + orders: Порядок + selects: Выбирает + persisted_view: + name: Имя + query: Запрос + parent: Родительское представление + public: Общий + user_card_view: + secondary_info: Дополнительная информация + show_status_badge: Показать значок статуса + show_email: Показать адрес эл. почты + tag_source: Источник тегов + tag_limit: Лимит тегов + card_size: Размер карты + columns_per_row: Столбцов в строке errors: messages: accepted: нужно подтвердить. @@ -2594,6 +2626,7 @@ ru: unsupported_storage_type: не является поддерживаемым типом хранения. storage_error: Произошла ошибка при подключении к хранилищу. invalid_input: Введены неверные данные. + invalid_child_for_parent: не может быть родителем для этого типа представления. activity: item: created_by_on: создано %{user} %{datetime} @@ -3516,6 +3549,30 @@ ru: general_text_false: Ложно gui_validation_error: 1 ошибка gui_validation_error_plural: "%{count} ошибок" + health_reports: + report_component: + checks: + failures: + one: "%{count} проверка не удалась" + few: "%{count} проверки не удалось" + many: "%{count} проверок не удалось" + other: "%{count} проверок не удалось" + success: Все проверки пройдены + warnings: + one: "%{count} проверка с предупреждением" + few: "%{count} проверки с предупреждением" + many: "%{count} проверок с предупреждением" + other: "%{count} проверок с предупреждением" + summary: + failure: Некоторые проверки не удались, и система не работает, как ожидалось. + success: Все соединения и системы работают, как и ожидалось. + warning: Некоторые проверки вернули предупреждение. Это может привести к неожиданному поведению. + result_component: + status: + failed: Ошибка + passed: Пройден + skipped: Пропущен + warning: Предупреждение homescreen: additional: projects: Новые видимые проекты в данном экземпляре. @@ -3817,6 +3874,7 @@ ru: label_age: Возраст label_ago: дней назад label_all: все + label_all_uppercase: Всё label_all_time: все время label_all_words: Все слова label_all_open_wps: Все открытые @@ -4344,6 +4402,7 @@ ru: label_role_new: Новая роль label_role_grantable: Назначаемая роль label_role_plural: Роли + label_role_missing_permissions: "%{role} (отсутствуют необходимые разрешения)" label_role_search: Назначить роль для новых участников label_scm: SCM label_scroll_left: Прокрутить влево @@ -4616,7 +4675,7 @@ ru: allowed_actions_html: 'У вас есть следующие права на этот пакет работ: %{allowed_actions}. Это может измениться в зависимости от роли и прав вашего проекта.' create_account: Для доступа к этому пакету работ необходимо создать и активировать учетную запись на %{instance}. open_work_package: Открыть пакет работ - subject: 'Пакет работ #%{id} был разделен с вами' + subject: Вам был предоставлен общий доступ к пакету работ %{id} enterprise_text: Поделиться пакетом работ с пользователями, которые не являются участниками проекта. summary: user: "%{user} поделился с вами пакетом работ с правами %{role_rights}" @@ -4827,6 +4886,18 @@ ru: text_getting_started_description: Получите быстрый обзор управления проектом и сотрудничества команды с OpenProject. Вы можете перезапустить это видео в меню справки. welcome: Добро пожаловать в %{app_title} select_language: Пожалуйста, выберите язык + open_project: + common: + work_package_card_component: + menu: + label_actions: Действия с пакетом работ + work_package_card_list_component: + header: + label_actions: Открыть меню + label_work_package_count: + zero: Пакетов работ нет + one: "%{count} пакет работ" + other: "%{count} пакетов работ" permission_add_work_package_comments: Добавить комментарии permission_add_work_packages: Добавление пакетов работ permission_add_messages: Написать сообщения @@ -4844,7 +4915,6 @@ ru: permission_add_work_package_watchers: Добавить наблюдателей permission_assign_versions: Назначить версии permission_browse_repository: Возможность только чтения из репозитория (просмотр и проверка) - permission_change_wiki_parent_page: Смена родительской wiki-страницы permission_change_work_package_status: Изменить статус пакета работ permission_change_work_package_status_explanation: Позволяет изменять статус без редактирования разрешения пакетов работ permission_comment_news: Комментировать новость @@ -4859,8 +4929,6 @@ ru: permission_delete_own_messages: Удалить свои сообщения permission_delete_reportings: Удалить отчеты permission_delete_timelines: Удалить графики - permission_delete_wiki_pages: Удалить wiki-страницы - permission_delete_wiki_pages_attachments: Удалить вложения permission_edit_work_package_comments: Модерировать комментарии permission_edit_work_package_comments_explanation: 'Внимание: Пользователи с таким правом могут редактировать любые комментарии.' permission_edit_work_packages: Редактировать пакеты работ @@ -4880,12 +4948,10 @@ ru: permission_edit_wiki_pages: Редактировать wiki-страницы permission_export_work_packages: Экспорт пакетов работ permission_export_projects: Экспорт проектов - permission_export_wiki_pages: Экспорт wiki-страниц permission_invite_members_by_email: Пригласить участников по электронной почте permission_invite_members_by_email_explanation: 'Позволяет пользователям приглашать новых пользователей по электронной почте. Приглашенные пользователи получат письмо со ссылкой для установки пароля и активации учетной записи. Зависит от разрешения на управление участниками ' - permission_list_attachments: Отобразить список прикреплённых файлов permission_log_own_time: Добавить свои трудозатраты permission_log_time: Журналировать трудозатраты других пользователей permission_manage_forums: Управление форумами @@ -4900,7 +4966,6 @@ ru: permission_manage_subtasks: Управление иерархиями пакетов работ permission_manage_versions: Управление этапами permission_manage_wiki: Управление wiki - permission_manage_wiki_menu: Управление меню wiki permission_manage_own_working_times: Управлять своим рабочим временем permission_manage_own_working_times_explanation: 'Позволяет пользователям управлять своим рабочим временем и личными нерабочими днями. @@ -4910,8 +4975,6 @@ ru: ' permission_move_work_packages: Переместить пакет работ - permission_protect_wiki_pages: Защитить wiki-страницы - permission_rename_wiki_pages: Переименование wiki-страниц permission_save_queries: Сохранить представления permission_search_project: Поиск проекта permission_select_custom_fields: Выберите настраиваемые поля @@ -5278,6 +5341,9 @@ ru: setting_mail_handler_body_delimiter_regex: Сообщение усекается по этому регулярному выражению setting_mail_handler_ignore_filenames: Игнорируемые вложения почты setting_new_project_user_role_id: Роль, назначаемая пользователю-создателю проекта, не являющемуся администратором + setting_new_project_user_role_id_caption: 'В список попадают только роли, имеющие права на редактирование атрибутов проекта и управление участниками, чтобы создатель мог завершить настройку проекта. + + ' setting_new_project_send_confirmation_email: Отправить уведомление автору при создании нового проекта setting_new_project_notification_text: Текст уведомления setting_password_active_rules: Требования к паролю @@ -5690,6 +5756,7 @@ ru: text_project_identifier_format: Должен начинаться со строчной буквы. Допускаются только строчные буквы (a-z), цифры, тире и подчеркивания. text_reassign: 'Переназначить для пакета работ:' text_regexp_multiline: 'Регулярное выражение применяется в многострочном режиме. Например: ^---\s+' + text_rename_wiki_page: Переименовать wiki-страницу text_repository_usernames_mapping: Выберете или обновите пользователя OpenProject сопоставленного с именами пользователей найдеными в журнале репозитория. Пользователи с одинаковыми именами в OpenProject и в репозитории или почте будут сопоставлены автоматически. text_status_changed_by_changeset: Применены в наборе изменений %{value}. text_table_difference_description: В этой таблице показаны одинарные %{entries}. Посмотреть разницу между любыми двумя записями можно, выбрав флажки и нажав на кнопку. Под таблицей будут показаны различия. @@ -6123,11 +6190,6 @@ ru: scopes: Разрешения successful_application_revocation: Отмена приложения %{application_name} проведена успешно. none_given: Никаким приложениям OAuth не было предоставлено доступа к учетной записи пользователя. - x_active_tokens: - one: один активный маркер - few: "%{count} активных маркеров" - many: "%{count} активных маркеров" - other: "%{count} активных маркеров" flows: authorization_code: Поток кода авторизации client_credentials: Поток учетных данных клиента @@ -6137,8 +6199,12 @@ ru: client_credentials_impersonation_html: 'По умолчанию OpenProject предоставляет авторизацию OAuth 2.0 через %{authorization_code_flow_link}. Можете опционально включить %{client_credentials_flow_link}, но вы должны предоставить пользователя, от имени которого будут выполняться запросы. ' + confirm_revoke_my_application: + one: Вы действительно хотите удалить это приложение? Это приведет к отзыву одного активного токена. + few: Вы действительно хотите удалить это приложение? Это приведет к отзыву %{count} активных токенов. + many: Вы действительно хотите удалить это приложение? Это приведет к отзыву %{count} активных токенов. + other: Вы действительно хотите удалить это приложение? Это приведет к отзыву %{count} активных токенов. authorization_error: Произошла ошибка авторизации. - revoke_my_application_confirmation: Вы действительно хотите удалить это приложение? Это действие будет отменено %{token_count}. my_registered_applications: Зарегистрированные OAuth приложения oauth_client: urn_connection_status: diff --git a/config/locales/crowdin/rw.yml b/config/locales/crowdin/rw.yml index 73d03498727..f3976d075dc 100644 --- a/config/locales/crowdin/rw.yml +++ b/config/locales/crowdin/rw.yml @@ -419,7 +419,8 @@ rw: error_special_characters: Special characters not allowed error_not_fully_uppercased: Must be uppercase error_in_use: Already in use as another project's active handle - error_reserved: Reserved by another project's handle history + error_used_in_past: Reserved by another project's handle history + error_reserved_by_system: Reserved as a system keyword error_unknown: Needs manual review remaining_projects: one: "... 1 more project" @@ -460,8 +461,12 @@ rw: ignore: Ignore changes save: Save changes and continue role_selector: + title: Select roles label: 'Role: %{role}' no_role: Select role + roles: + one: One role selected + other: "%{count} roles selected" blankslate: title: No status transitions configured description: Add statuses to start configuring workflows for this role @@ -1110,6 +1115,8 @@ rw: no_results_title_text: There is currently no news to report. no_results_content_text: Add a news item roles: + edit: + default_for_new_projects_warning: 'This role is configured as the default role given to non-admin users who create a project. Do not remove the following permissions, otherwise project creators will be unable to complete the setup of their newly created projects:' permissions: section_check_all_label: Assign all %{module} permissions section_uncheck_all_label: Unassign all %{module} permissions @@ -2000,6 +2007,29 @@ rw: type: Type version: Version watcher: Watcher + ordered_persisted_query_entity: + persisted_query: Persisted query + entity: Entity + position: Position + persisted_query: + name: Name + views: Views + filters: Filters + orders: Orders + selects: Selects + persisted_view: + name: Name + query: Query + parent: Parent view + public: Public + user_card_view: + secondary_info: Secondary info + show_status_badge: Show status badge + show_email: Show email + tag_source: Tag source + tag_limit: Tag limit + card_size: Card size + columns_per_row: Columns per row errors: messages: accepted: must be accepted. @@ -2517,6 +2547,7 @@ rw: unsupported_storage_type: is not a supported storage type. storage_error: There was an error with the storage connection. invalid_input: The input is invalid. + invalid_child_for_parent: is not allowed as a parent for this view type. activity: item: created_by_on: created by %{user} on %{datetime} @@ -3391,6 +3422,26 @@ rw: general_text_false: 'false' gui_validation_error: 1 error gui_validation_error_plural: "%{count} errors" + health_reports: + report_component: + checks: + failures: + one: "%{count} check failed" + other: "%{count} checks failed" + success: All checks passed + warnings: + one: "%{count} check returned a warning" + other: "%{count} checks returned a warning" + summary: + failure: Some checks failed and the system does not work as expected. + success: All connections and systems are working as expected. + warning: Some checks returned a warning. This can lead to unexpected behaviour. + result_component: + status: + failed: Failed + passed: Passed + skipped: Skipped + warning: Warning homescreen: additional: projects: Newest visible projects in this instance. @@ -3692,6 +3743,7 @@ rw: label_age: Age label_ago: days ago label_all: all + label_all_uppercase: All label_all_time: all time label_all_words: All words label_all_open_wps: All open @@ -4219,6 +4271,7 @@ rw: label_role_new: New role label_role_grantable: Grantable role label_role_plural: Roles + label_role_missing_permissions: "%{role} (missing required permissions)" label_role_search: Assign role to new members label_scm: SCM label_scroll_left: Scroll left @@ -4445,7 +4498,7 @@ rw: you_have: You have logo_alt_text: Logo mention: - subject: "%{user_name} mentioned you in #%{id} - %{subject}" + subject: "%{user_name} mentioned you in %{id} - %{subject}" notification: center: To notification center see_in_center: See comment in notification center @@ -4483,7 +4536,7 @@ rw: allowed_actions_html: 'You have the following permissions on this work package: %{allowed_actions}. This can change depending on your project role and permissions.' create_account: To access this work package, you will need to create and activate an account on %{instance}. open_work_package: Open work package - subject: 'Work package #%{id} was shared with you' + subject: Work package %{id} was shared with you enterprise_text: Share work packages with users who are not members of the project. summary: user: "%{user} shared a work package with you with %{role_rights} rights" @@ -4694,6 +4747,18 @@ rw: text_getting_started_description: Get a quick overview of project management and team collaboration with OpenProject. You can restart this video from the help menu. welcome: Welcome to %{app_title} select_language: Please select your language + open_project: + common: + work_package_card_component: + menu: + label_actions: Work package actions + work_package_card_list_component: + header: + label_actions: Open menu + label_work_package_count: + zero: No work packages + one: "%{count} work package" + other: "%{count} work packages" permission_add_work_package_comments: Add comments permission_add_work_packages: Add work packages permission_add_messages: Post messages @@ -4711,7 +4776,6 @@ rw: permission_add_work_package_watchers: Add watchers permission_assign_versions: Assign versions permission_browse_repository: Read-only access to repository (browse and checkout) - permission_change_wiki_parent_page: Change parent wiki page permission_change_work_package_status: Change work package status permission_change_work_package_status_explanation: Allows changing status without Edit work packages permission permission_comment_news: Comment news @@ -4726,8 +4790,6 @@ rw: permission_delete_own_messages: Delete own messages permission_delete_reportings: Delete reportings permission_delete_timelines: Delete timelines - permission_delete_wiki_pages: Delete wiki pages - permission_delete_wiki_pages_attachments: Delete attachments permission_edit_work_package_comments: Moderate comments permission_edit_work_package_comments_explanation: 'Caution: Users with this permission are able to edit anyone''s comment.' permission_edit_work_packages: Edit work packages @@ -4747,12 +4809,10 @@ rw: permission_edit_wiki_pages: Edit wiki pages permission_export_work_packages: Export work packages permission_export_projects: Export projects - permission_export_wiki_pages: Export wiki pages permission_invite_members_by_email: Invite members by email permission_invite_members_by_email_explanation: 'Allows users to invite new members by email. Invited users will receive an email with a link to set their password and activate their account. Depends on the permission to manage members ' - permission_list_attachments: List attachments permission_log_own_time: Log own time permission_log_time: Log time for other users permission_manage_forums: Manage forums @@ -4767,7 +4827,6 @@ rw: permission_manage_subtasks: Manage work package hierarchies permission_manage_versions: Manage versions permission_manage_wiki: Manage wiki - permission_manage_wiki_menu: Manage wiki menu permission_manage_own_working_times: Manage own working times permission_manage_own_working_times_explanation: 'Allows users to manage their own working times, and personal non-working days. @@ -4777,8 +4836,6 @@ rw: ' permission_move_work_packages: Move work packages - permission_protect_wiki_pages: Protect wiki pages - permission_rename_wiki_pages: Rename wiki pages permission_save_queries: Save views permission_search_project: Search project permission_select_custom_fields: Select custom fields @@ -5157,6 +5214,9 @@ rw: setting_mail_handler_body_delimiter_regex: Truncate emails matching this regex setting_mail_handler_ignore_filenames: Ignored mail attachments setting_new_project_user_role_id: Role given to a non-admin user who creates a project + setting_new_project_user_role_id_caption: 'Only roles that include the permissions to edit project attributes and to manage members are listed, so that the creator can complete the project setup. + + ' setting_new_project_send_confirmation_email: Send notification to author when creating a new project setting_new_project_notification_text: Notification text setting_password_active_rules: Password requirements @@ -5573,6 +5633,7 @@ rw: text_project_identifier_format: Must start with a lowercase letter. Only lowercase letters (a-z), numbers, dashes and underscores are allowed. text_reassign: 'Reassign to work package:' text_regexp_multiline: The regex is applied in a multi-line mode. e.g., ^---\s+ + text_rename_wiki_page: Rename wiki page text_repository_usernames_mapping: |- Select or update the OpenProject user mapped to each username found in the repository log. Users with the same OpenProject and repository username or email are automatically mapped. @@ -6006,9 +6067,6 @@ rw: scopes: Permissions successful_application_revocation: Revocation of application %{application_name} successful. none_given: No OAuth applications have been granted access to your user account. - x_active_tokens: - one: one active token - other: "%{count} active token" flows: authorization_code: Authorization code flow client_credentials: Client credentials flow @@ -6018,8 +6076,10 @@ rw: client_credentials_impersonation_html: 'By default, OpenProject provides OAuth 2.0 authorization via %{authorization_code_flow_link}. You can optionally enable %{client_credentials_flow_link}, but you must provide a user on whose behalf requests will be performed. ' + confirm_revoke_my_application: + one: Do you really want to remove this application? This will revoke one token active for it. + other: Do you really want to remove this application? This will revoke %{count} tokens active for it. authorization_error: An authorization error has occurred. - revoke_my_application_confirmation: Do you really want to remove this application? This will revoke %{token_count} active for it. my_registered_applications: Registered OAuth applications oauth_client: urn_connection_status: diff --git a/config/locales/crowdin/si.yml b/config/locales/crowdin/si.yml index 41f6ab7867e..39e3e38828c 100644 --- a/config/locales/crowdin/si.yml +++ b/config/locales/crowdin/si.yml @@ -419,7 +419,8 @@ si: error_special_characters: Special characters not allowed error_not_fully_uppercased: Must be uppercase error_in_use: Already in use as another project's active handle - error_reserved: Reserved by another project's handle history + error_used_in_past: Reserved by another project's handle history + error_reserved_by_system: Reserved as a system keyword error_unknown: Needs manual review remaining_projects: one: "... 1 more project" @@ -460,8 +461,12 @@ si: ignore: Ignore changes save: Save changes and continue role_selector: + title: Select roles label: 'Role: %{role}' no_role: Select role + roles: + one: One role selected + other: "%{count} roles selected" blankslate: title: No status transitions configured description: Add statuses to start configuring workflows for this role @@ -1110,6 +1115,8 @@ si: no_results_title_text: වාර්තා කිරීමට දැනට කිසිදු ප්රවෘත්තියක් නොමැත. no_results_content_text: ප්රවෘත්ති අයිතමයක් එක් කරන්න roles: + edit: + default_for_new_projects_warning: 'This role is configured as the default role given to non-admin users who create a project. Do not remove the following permissions, otherwise project creators will be unable to complete the setup of their newly created projects:' permissions: section_check_all_label: Assign all %{module} permissions section_uncheck_all_label: Unassign all %{module} permissions @@ -2000,6 +2007,29 @@ si: type: වර්ගය version: අනුවාදය watcher: මුරකරු + ordered_persisted_query_entity: + persisted_query: Persisted query + entity: Entity + position: Position + persisted_query: + name: Name + views: Views + filters: Filters + orders: Orders + selects: Selects + persisted_view: + name: Name + query: Query + parent: Parent view + public: Public + user_card_view: + secondary_info: Secondary info + show_status_badge: Show status badge + show_email: Show email + tag_source: Tag source + tag_limit: Tag limit + card_size: Card size + columns_per_row: Columns per row errors: messages: accepted: පිළිගත යුතුය. @@ -2517,6 +2547,7 @@ si: unsupported_storage_type: is not a supported storage type. storage_error: There was an error with the storage connection. invalid_input: The input is invalid. + invalid_child_for_parent: is not allowed as a parent for this view type. activity: item: created_by_on: created by %{user} on %{datetime} @@ -3391,6 +3422,26 @@ si: general_text_false: අසත්ය gui_validation_error: 1 දෝෂය gui_validation_error_plural: "%{count} දෝෂ" + health_reports: + report_component: + checks: + failures: + one: "%{count} check failed" + other: "%{count} checks failed" + success: All checks passed + warnings: + one: "%{count} check returned a warning" + other: "%{count} checks returned a warning" + summary: + failure: Some checks failed and the system does not work as expected. + success: All connections and systems are working as expected. + warning: Some checks returned a warning. This can lead to unexpected behaviour. + result_component: + status: + failed: Failed + passed: Passed + skipped: Skipped + warning: Warning homescreen: additional: projects: මෙම අවස්ථාවෙහිදී නවතම දෘශ්ය ව්යාපෘති. @@ -3692,6 +3743,7 @@ si: label_age: වයස label_ago: දින කිහිපයකට පෙර label_all: සියලු + label_all_uppercase: All label_all_time: සියලු කාලය label_all_words: සියලු වචන label_all_open_wps: සියල්ල විවෘතයි @@ -4219,6 +4271,7 @@ si: label_role_new: නව භූමිකාව label_role_grantable: Grantable role label_role_plural: භූමිකාවන් + label_role_missing_permissions: "%{role} (missing required permissions)" label_role_search: නව සාමාජිකයින්ට කාර්යභාරය පැවරීම label_scm: SCM label_scroll_left: Scroll left @@ -4445,7 +4498,7 @@ si: you_have: ඔබට තිබේ logo_alt_text: Logo mention: - subject: "%{user_name} mentioned you in #%{id} - %{subject}" + subject: "%{user_name} mentioned you in %{id} - %{subject}" notification: center: To notification center see_in_center: See comment in notification center @@ -4483,7 +4536,7 @@ si: allowed_actions_html: 'You have the following permissions on this work package: %{allowed_actions}. This can change depending on your project role and permissions.' create_account: To access this work package, you will need to create and activate an account on %{instance}. open_work_package: Open work package - subject: 'Work package #%{id} was shared with you' + subject: Work package %{id} was shared with you enterprise_text: Share work packages with users who are not members of the project. summary: user: "%{user} shared a work package with you with %{role_rights} rights" @@ -4694,6 +4747,18 @@ si: text_getting_started_description: Get a quick overview of project management and team collaboration with OpenProject. You can restart this video from the help menu. welcome: Welcome to %{app_title} select_language: කරුණාකර ඔබේ භාෂාව තෝරන්න + open_project: + common: + work_package_card_component: + menu: + label_actions: Work package actions + work_package_card_list_component: + header: + label_actions: Open menu + label_work_package_count: + zero: No work packages + one: "%{count} work package" + other: "%{count} work packages" permission_add_work_package_comments: Add comments permission_add_work_packages: වැඩ පැකේජ එකතු කරන්න permission_add_messages: තැපැල් පණිවිඩ @@ -4711,7 +4776,6 @@ si: permission_add_work_package_watchers: මුරකරුවන් එකතු කරන්න permission_assign_versions: අනුවාදයන් පැවරීම permission_browse_repository: ගබඩාවට කියවීමට පමණක් ප්රවේශය (පිරික්සන්න සහ පිරික්සන්න) - permission_change_wiki_parent_page: මව් විකි පිටුව වෙනස් කරන්න permission_change_work_package_status: Change work package status permission_change_work_package_status_explanation: Allows changing status without Edit work packages permission permission_comment_news: අදහස් ප්රවෘත්ති @@ -4726,8 +4790,6 @@ si: permission_delete_own_messages: තමන්ගේම පණිවිඩ මකන්න permission_delete_reportings: වාර්තා මකන්න permission_delete_timelines: කාලනියමයන් මකන්න - permission_delete_wiki_pages: විකි පිටු මකන්න - permission_delete_wiki_pages_attachments: ඇමුණුම් මකන්න permission_edit_work_package_comments: Moderate comments permission_edit_work_package_comments_explanation: 'Caution: Users with this permission are able to edit anyone''s comment.' permission_edit_work_packages: වැඩ පැකේජ සංස්කරණය කරන්න @@ -4747,12 +4809,10 @@ si: permission_edit_wiki_pages: විකි පිටු සංස්කරණය කරන්න permission_export_work_packages: අපනයන වැඩ පැකේජ permission_export_projects: Export projects - permission_export_wiki_pages: විකි පිටු අපනයනය කරන්න permission_invite_members_by_email: Invite members by email permission_invite_members_by_email_explanation: 'Allows users to invite new members by email. Invited users will receive an email with a link to set their password and activate their account. Depends on the permission to manage members ' - permission_list_attachments: ලැයිස්තු ඇමුණුම් permission_log_own_time: Log own time permission_log_time: Log time for other users permission_manage_forums: සංසද කළමනාකරණය කරන්න @@ -4767,7 +4827,6 @@ si: permission_manage_subtasks: Manage work package hierarchies permission_manage_versions: අනුවාද කළමනාකරණය කරන්න permission_manage_wiki: විකි කළමනාකරණය කරන්න - permission_manage_wiki_menu: විකි මෙනුව කළමනාකරණය කරන්න permission_manage_own_working_times: Manage own working times permission_manage_own_working_times_explanation: 'Allows users to manage their own working times, and personal non-working days. @@ -4777,8 +4836,6 @@ si: ' permission_move_work_packages: වැඩ පැකේජ ගෙනයාම - permission_protect_wiki_pages: විකි පිටු ආරක්ෂා කරන්න - permission_rename_wiki_pages: විකි පිටු නැවත නම් කරන්න permission_save_queries: අදහස් සුරකින්න permission_search_project: Search project permission_select_custom_fields: Select custom fields @@ -5157,6 +5214,9 @@ si: setting_mail_handler_body_delimiter_regex: මෙම regex ගැලපෙන ඊමේල් Truncate setting_mail_handler_ignore_filenames: නොසලකා හරින ලද තැපැල් ඇමුණුම් setting_new_project_user_role_id: ව්යාපෘතියක් නිර්මාණය කරන පරිපාලක නොවන පරිශීලකයෙකුට ලබා දී ඇති කාර්යභාරය + setting_new_project_user_role_id_caption: 'Only roles that include the permissions to edit project attributes and to manage members are listed, so that the creator can complete the project setup. + + ' setting_new_project_send_confirmation_email: Send notification to author when creating a new project setting_new_project_notification_text: Notification text setting_password_active_rules: Password requirements @@ -5573,6 +5633,7 @@ si: text_project_identifier_format: Must start with a lowercase letter. Only lowercase letters (a-z), numbers, dashes and underscores are allowed. text_reassign: 'වැඩ පැකේජයට නැවත පැවරීම:' text_regexp_multiline: 'රීජෙක්ස් බහු රේඛා මාදිලියක යොදනු ලැබේ. උදා: ^ —\ s+' + text_rename_wiki_page: Rename wiki page text_repository_usernames_mapping: |- ගබඩාවේ ඇති එක් එක් පරිශීලක නාමයට සිතියම් ගත කර ඇති OpenProject පරිශීලකයා තෝරන්න හෝ යාවත්කාලීන කරන්න. එකම OpenProject සහ ගබඩාව පරිශීලක නාමය හෝ විද්යුත් තැපෑල සහිත පරිශීලකයින් ස්වයංක්රීයව සිතියම් ගත කරනු ලැබේ. @@ -6006,9 +6067,6 @@ si: scopes: අවසර successful_application_revocation: අයදුම්පත අවලංගු කිරීම %{application_name} සාර්ථකයි. none_given: කිසිදු OAUTH යෙදුම් ඔබගේ පරිශීලක ගිණුමට ප්රවේශය ලබා දී නොමැත. - x_active_tokens: - one: එක් ක්රියාකාරී ටෝකනය - other: "%{count} ක්රියාකාරී ටෝකනය" flows: authorization_code: බලය කේත ප්රවාහය client_credentials: සේවාලාභියා අක්තපත්ර ගලා @@ -6018,8 +6076,10 @@ si: client_credentials_impersonation_html: 'පෙරනිමියෙන්, OpenProject මඟින් OAUTH 2.0 බලය %{authorization_code_flow_link}හරහා සපයයි. ඔබට විකල්පයක් ලෙස %{client_credentials_flow_link}සක්රීය කළ හැකිය, නමුත් ඔබ වෙනුවෙන් ඉල්ලීම් සිදු කරනු ලබන පරිශීලකයෙකුට ලබා දිය යුතුය. ' + confirm_revoke_my_application: + one: Do you really want to remove this application? This will revoke one token active for it. + other: Do you really want to remove this application? This will revoke %{count} tokens active for it. authorization_error: බලය පැවරීමේ දෝෂයක් සිදුවී ඇත. - revoke_my_application_confirmation: ඔබට ඇත්තටම මෙම යෙදුම ඉවත් කිරීමට අවශ්යද? මෙය %{token_count} ක් අවලංගු කරනු ඇත. my_registered_applications: ලියාපදිංචි OAUTH අයදුම්පත් oauth_client: urn_connection_status: diff --git a/config/locales/crowdin/sk.yml b/config/locales/crowdin/sk.yml index d7428644ae2..b0fcaa34a50 100644 --- a/config/locales/crowdin/sk.yml +++ b/config/locales/crowdin/sk.yml @@ -431,7 +431,8 @@ sk: error_special_characters: Special characters not allowed error_not_fully_uppercased: Must be uppercase error_in_use: Already in use as another project's active handle - error_reserved: Reserved by another project's handle history + error_used_in_past: Reserved by another project's handle history + error_reserved_by_system: Reserved as a system keyword error_unknown: Needs manual review remaining_projects: one: "... 1 more project" @@ -476,8 +477,14 @@ sk: ignore: Ignore changes save: Save changes and continue role_selector: + title: Select roles label: 'Role: %{role}' no_role: Select role + roles: + one: One role selected + few: "%{count} roles selected" + many: "%{count} roles selected" + other: "%{count} roles selected" blankslate: title: No status transitions configured description: Add statuses to start configuring workflows for this role @@ -1140,6 +1147,8 @@ sk: no_results_title_text: V súčasnosti nie sú žiadne novinky pre nahlásenie. no_results_content_text: Pridať novinku roles: + edit: + default_for_new_projects_warning: 'This role is configured as the default role given to non-admin users who create a project. Do not remove the following permissions, otherwise project creators will be unable to complete the setup of their newly created projects:' permissions: section_check_all_label: Assign all %{module} permissions section_uncheck_all_label: Unassign all %{module} permissions @@ -2040,6 +2049,29 @@ sk: type: Typ version: Verzia watcher: Pozorovateľ + ordered_persisted_query_entity: + persisted_query: Persisted query + entity: Entity + position: Position + persisted_query: + name: Name + views: Views + filters: Filters + orders: Orders + selects: Selects + persisted_view: + name: Name + query: Query + parent: Parent view + public: Public + user_card_view: + secondary_info: Secondary info + show_status_badge: Show status badge + show_email: Show email + tag_source: Tag source + tag_limit: Tag limit + card_size: Card size + columns_per_row: Columns per row errors: messages: accepted: musí byť akceptovaný. @@ -2591,6 +2623,7 @@ sk: unsupported_storage_type: is not a supported storage type. storage_error: There was an error with the storage connection. invalid_input: The input is invalid. + invalid_child_for_parent: is not allowed as a parent for this view type. activity: item: created_by_on: created by %{user} on %{datetime} @@ -3511,6 +3544,30 @@ sk: general_text_false: nesprávny gui_validation_error: 1 chyba gui_validation_error_plural: "%{count} chýb" + health_reports: + report_component: + checks: + failures: + one: "%{count} check failed" + few: "%{count} checks failed" + many: "%{count} checks failed" + other: "%{count} checks failed" + success: All checks passed + warnings: + one: "%{count} check returned a warning" + few: "%{count} checks returned a warning" + many: "%{count} checks returned a warning" + other: "%{count} checks returned a warning" + summary: + failure: Some checks failed and the system does not work as expected. + success: All connections and systems are working as expected. + warning: Some checks returned a warning. This can lead to unexpected behaviour. + result_component: + status: + failed: Failed + passed: Passed + skipped: Skipped + warning: Warning homescreen: additional: projects: Najnovšie viditeľné projekty v tejto inštancii. @@ -3812,6 +3869,7 @@ sk: label_age: Vek label_ago: dní späť label_all: Všetky + label_all_uppercase: All label_all_time: všetok čas label_all_words: Všetky slová label_all_open_wps: Všetky otvorené @@ -4339,6 +4397,7 @@ sk: label_role_new: Nová rola label_role_grantable: Grantable role label_role_plural: Roly + label_role_missing_permissions: "%{role} (missing required permissions)" label_role_search: Priradenie role pre nových užívateľov label_scm: SCM label_scroll_left: Scroll left @@ -4571,7 +4630,7 @@ sk: you_have: You have logo_alt_text: Logo mention: - subject: "%{user_name} mentioned you in #%{id} - %{subject}" + subject: "%{user_name} mentioned you in %{id} - %{subject}" notification: center: To notification center see_in_center: See comment in notification center @@ -4611,7 +4670,7 @@ sk: allowed_actions_html: 'You have the following permissions on this work package: %{allowed_actions}. This can change depending on your project role and permissions.' create_account: To access this work package, you will need to create and activate an account on %{instance}. open_work_package: Open work package - subject: 'Work package #%{id} was shared with you' + subject: Work package %{id} was shared with you enterprise_text: Share work packages with users who are not members of the project. summary: user: "%{user} shared a work package with you with %{role_rights} rights" @@ -4826,6 +4885,18 @@ sk: text_getting_started_description: Get a quick overview of project management and team collaboration with OpenProject. You can restart this video from the help menu. welcome: Welcome to %{app_title} select_language: Prosím vyberte Váš jazyk + open_project: + common: + work_package_card_component: + menu: + label_actions: Work package actions + work_package_card_list_component: + header: + label_actions: Open menu + label_work_package_count: + zero: No work packages + one: "%{count} work package" + other: "%{count} work packages" permission_add_work_package_comments: Add comments permission_add_work_packages: Pridať pracovné balíky permission_add_messages: Publikovať správy @@ -4843,7 +4914,6 @@ sk: permission_add_work_package_watchers: Pridať pozorovateľov permission_assign_versions: Assign versions permission_browse_repository: Prístup do úložiska iba na čítanie (prehliadanie a kontrola) - permission_change_wiki_parent_page: Zmeniť nadradenú wiki stránku permission_change_work_package_status: Change work package status permission_change_work_package_status_explanation: Allows changing status without Edit work packages permission permission_comment_news: Komentovanie noviniek @@ -4858,8 +4928,6 @@ sk: permission_delete_own_messages: Odstrániť vlastné správy permission_delete_reportings: Odstrániť prehľady permission_delete_timelines: Odstrániť časové osy - permission_delete_wiki_pages: Odstrániť wiki stránky - permission_delete_wiki_pages_attachments: Odstrániť prílohy permission_edit_work_package_comments: Moderate comments permission_edit_work_package_comments_explanation: 'Caution: Users with this permission are able to edit anyone''s comment.' permission_edit_work_packages: Upraviť pracovné balíčky @@ -4879,12 +4947,10 @@ sk: permission_edit_wiki_pages: Úprava wiki stránok permission_export_work_packages: Export pracovných balíčkov permission_export_projects: Export projects - permission_export_wiki_pages: Export wiki stránok permission_invite_members_by_email: Invite members by email permission_invite_members_by_email_explanation: 'Allows users to invite new members by email. Invited users will receive an email with a link to set their password and activate their account. Depends on the permission to manage members ' - permission_list_attachments: Zoznam príloh permission_log_own_time: Log own time permission_log_time: Log time for other users permission_manage_forums: Spravovať diskusie @@ -4899,7 +4965,6 @@ sk: permission_manage_subtasks: Manage work package hierarchies permission_manage_versions: Spravovať verzie permission_manage_wiki: Spravovať Wiki - permission_manage_wiki_menu: Správa wiki menu permission_manage_own_working_times: Manage own working times permission_manage_own_working_times_explanation: 'Allows users to manage their own working times, and personal non-working days. @@ -4909,8 +4974,6 @@ sk: ' permission_move_work_packages: Presunúť pracovné balíčky - permission_protect_wiki_pages: Ochrana wikistránok - permission_rename_wiki_pages: Premenovanie wikistránok permission_save_queries: Uložiť zobrazenia permission_search_project: Search project permission_select_custom_fields: Select custom fields @@ -5289,6 +5352,9 @@ sk: setting_mail_handler_body_delimiter_regex: Skrátiť e-maily zodpovedajúce tomuto regex setting_mail_handler_ignore_filenames: Ignorované prílohy e-mailu setting_new_project_user_role_id: Rola priradená užívateľovi bez práv administrátora, ktorý projekt vytvoril + setting_new_project_user_role_id_caption: 'Only roles that include the permissions to edit project attributes and to manage members are listed, so that the creator can complete the project setup. + + ' setting_new_project_send_confirmation_email: Send notification to author when creating a new project setting_new_project_notification_text: Notification text setting_password_active_rules: Password requirements @@ -5701,6 +5767,7 @@ sk: text_project_identifier_format: Must start with a lowercase letter. Only lowercase letters (a-z), numbers, dashes and underscores are allowed. text_reassign: 'Zaradenie do pracovného balíčka:' text_regexp_multiline: Regex je aplikovaný v režime s viacerými riadkami. napríklad ^---\s+ + text_rename_wiki_page: Rename wiki page text_repository_usernames_mapping: |- Vyberte alebo aktualizujte priradenie používateľov systému OpenProject k menám používateľov nájdených v zázname repozitára. Používatelia s rovnakým prihlasovacím menom alebo emailom v systéme OpenProject a repozitári sú priradení automaticky. @@ -6136,11 +6203,6 @@ sk: scopes: Oprávnenia successful_application_revocation: Zrušenie aplikácie %{application_name} bolo úspešné. none_given: Žiadnym aplikáciám OAuth nebol udelený prístup k vášmu používateľskému účtu. - x_active_tokens: - one: jeden aktívny token - few: "%{count} aktívne tokeny" - many: "%{count} aktívne tokeny" - other: "%{count} aktívne tokeny" flows: authorization_code: Tok autorizácie client_credentials: Tok klientských poverení @@ -6150,8 +6212,12 @@ sk: client_credentials_impersonation_html: 'V predvolenom nastavení OpenProject poskytuje autorizáciu OAuth 2.0 cez %{authorization_code_flow_link}. Môžete voliteľne povoliť %{client_credentials_flow_link}, ale musíte určiť používateľa, v mene ktorého budú žiadosti vykonávané. ' + confirm_revoke_my_application: + one: Do you really want to remove this application? This will revoke one token active for it. + few: Do you really want to remove this application? This will revoke %{count} tokens active for it. + many: Do you really want to remove this application? This will revoke %{count} tokens active for it. + other: Do you really want to remove this application? This will revoke %{count} tokens active for it. authorization_error: Vyskytla sa chyba autorizácie. - revoke_my_application_confirmation: Naozaj chcete odstrániť túto aplikáciu? Týmto sa zrušia aktívne tokeny %{token_count}. my_registered_applications: Registrované aplikácie OAuth oauth_client: urn_connection_status: diff --git a/config/locales/crowdin/sl.yml b/config/locales/crowdin/sl.yml index 2f0c2134f82..c41d1551d38 100644 --- a/config/locales/crowdin/sl.yml +++ b/config/locales/crowdin/sl.yml @@ -433,7 +433,8 @@ sl: error_special_characters: Special characters not allowed error_not_fully_uppercased: Must be uppercase error_in_use: Already in use as another project's active handle - error_reserved: Reserved by another project's handle history + error_used_in_past: Reserved by another project's handle history + error_reserved_by_system: Reserved as a system keyword error_unknown: Needs manual review remaining_projects: one: "... 1 more project" @@ -478,8 +479,14 @@ sl: ignore: Ignore changes save: Save changes and continue role_selector: + title: Select roles label: 'Role: %{role}' no_role: Select role + roles: + one: One role selected + two: "%{count} roles selected" + few: "%{count} roles selected" + other: "%{count} roles selected" blankslate: title: No status transitions configured description: Add statuses to start configuring workflows for this role @@ -1141,6 +1148,8 @@ sl: no_results_title_text: Trenutno ni nobenih novic za poročanje. no_results_content_text: Dodajte novico roles: + edit: + default_for_new_projects_warning: 'This role is configured as the default role given to non-admin users who create a project. Do not remove the following permissions, otherwise project creators will be unable to complete the setup of their newly created projects:' permissions: section_check_all_label: Assign all %{module} permissions section_uncheck_all_label: Unassign all %{module} permissions @@ -2041,6 +2050,29 @@ sl: type: Vrsta version: Različica watcher: Opazovalec + ordered_persisted_query_entity: + persisted_query: Persisted query + entity: Entity + position: Position + persisted_query: + name: Name + views: Views + filters: Filters + orders: Orders + selects: Selects + persisted_view: + name: Name + query: Query + parent: Parent view + public: Public + user_card_view: + secondary_info: Secondary info + show_status_badge: Show status badge + show_email: Show email + tag_source: Tag source + tag_limit: Tag limit + card_size: Card size + columns_per_row: Columns per row errors: messages: accepted: mora biti sprejeto. @@ -2600,6 +2632,7 @@ sl: unsupported_storage_type: is not a supported storage type. storage_error: There was an error with the storage connection. invalid_input: The input is invalid. + invalid_child_for_parent: is not allowed as a parent for this view type. activity: item: created_by_on: created by %{user} on %{datetime} @@ -2978,8 +3011,8 @@ sl: - avgust - september - oktober - - november - - december + - November + - December order: - :leto - :mesec @@ -3522,6 +3555,30 @@ sl: general_text_false: Napačno gui_validation_error: 1 napaka gui_validation_error_plural: "%{count} errors" + health_reports: + report_component: + checks: + failures: + one: "%{count} check failed" + two: "%{count} checks failed" + few: "%{count} checks failed" + other: "%{count} checks failed" + success: All checks passed + warnings: + one: "%{count} check returned a warning" + two: "%{count} checks returned a warning" + few: "%{count} checks returned a warning" + other: "%{count} checks returned a warning" + summary: + failure: Some checks failed and the system does not work as expected. + success: All connections and systems are working as expected. + warning: Some checks returned a warning. This can lead to unexpected behaviour. + result_component: + status: + failed: Failed + passed: Passed + skipped: Skipped + warning: Warning homescreen: additional: projects: Najnovejši vidni projekti v tem primeru. @@ -3825,6 +3882,7 @@ sl: label_age: Starost label_ago: pred dnevi label_all: vsi + label_all_uppercase: All label_all_time: Ves čas label_all_words: Vse besede label_all_open_wps: Vse odprto @@ -4354,6 +4412,7 @@ sl: label_role_new: Nova vloga label_role_grantable: Grantable role label_role_plural: Vloge + label_role_missing_permissions: "%{role} (missing required permissions)" label_role_search: Dodelite vlogo novim članom label_scm: SCM label_scroll_left: Scroll left @@ -4586,7 +4645,7 @@ sl: you_have: You have logo_alt_text: Logotip mention: - subject: "%{user_name} vas je omenil v #%{id} - %{subject}" + subject: "%{user_name} mentioned you in %{id} - %{subject}" notification: center: V središče za obvestila see_in_center: Preglej komentar v središču za obvestila @@ -4626,7 +4685,7 @@ sl: allowed_actions_html: 'You have the following permissions on this work package: %{allowed_actions}. This can change depending on your project role and permissions.' create_account: To access this work package, you will need to create and activate an account on %{instance}. open_work_package: Open work package - subject: 'Work package #%{id} was shared with you' + subject: Work package %{id} was shared with you enterprise_text: Share work packages with users who are not members of the project. summary: user: "%{user} shared a work package with you with %{role_rights} rights" @@ -4843,6 +4902,18 @@ sl: text_getting_started_description: Get a quick overview of project management and team collaboration with OpenProject. You can restart this video from the help menu. welcome: Welcome to %{app_title} select_language: Prosimo izberite jezik + open_project: + common: + work_package_card_component: + menu: + label_actions: Work package actions + work_package_card_list_component: + header: + label_actions: Open menu + label_work_package_count: + zero: No work packages + one: "%{count} work package" + other: "%{count} work packages" permission_add_work_package_comments: Add comments permission_add_work_packages: Dodaj delovne pakete permission_add_messages: Objavi sporočila @@ -4860,7 +4931,6 @@ sl: permission_add_work_package_watchers: Dodaj opazovalce permission_assign_versions: Dodeli različice permission_browse_repository: Dostop samo za branje do skladišča (brskanje in odjava) - permission_change_wiki_parent_page: Zamenjaj nadrejeno stran wiki permission_change_work_package_status: Change work package status permission_change_work_package_status_explanation: Allows changing status without Edit work packages permission permission_comment_news: Komentiraj novice @@ -4875,8 +4945,6 @@ sl: permission_delete_own_messages: Izbriši lastna sporočila permission_delete_reportings: Izbrišite poročila permission_delete_timelines: Izbrišite časovnice - permission_delete_wiki_pages: Izbrišite wiki strani - permission_delete_wiki_pages_attachments: Izbriši priponke permission_edit_work_package_comments: Moderate comments permission_edit_work_package_comments_explanation: 'Caution: Users with this permission are able to edit anyone''s comment.' permission_edit_work_packages: Uredi delovne pakete @@ -4896,12 +4964,10 @@ sl: permission_edit_wiki_pages: Uredi wiki strani permission_export_work_packages: Izvozi delovne pakete permission_export_projects: Export projects - permission_export_wiki_pages: Izvozi wiki strani permission_invite_members_by_email: Invite members by email permission_invite_members_by_email_explanation: 'Allows users to invite new members by email. Invited users will receive an email with a link to set their password and activate their account. Depends on the permission to manage members ' - permission_list_attachments: Navedi priloge permission_log_own_time: Log own time permission_log_time: Log time for other users permission_manage_forums: Uredi forume @@ -4916,7 +4982,6 @@ sl: permission_manage_subtasks: Upravljaj hierarhijo delovnih paketov permission_manage_versions: Uredi različice permission_manage_wiki: Uredi wiki - permission_manage_wiki_menu: Uredi wiki meni permission_manage_own_working_times: Manage own working times permission_manage_own_working_times_explanation: 'Allows users to manage their own working times, and personal non-working days. @@ -4926,8 +4991,6 @@ sl: ' permission_move_work_packages: Premaknite delovne pakete - permission_protect_wiki_pages: Zaščiti wiki strani - permission_rename_wiki_pages: Preimenujte wiki strani permission_save_queries: Shrani poglede … permission_search_project: Search project permission_select_custom_fields: Select custom fields @@ -5308,6 +5371,9 @@ sl: setting_mail_handler_body_delimiter_regex: skrajšaj e-poštna sporočila, ki se ujemajo s tem izražanjem setting_mail_handler_ignore_filenames: Zanemarjene priloge e-pošte setting_new_project_user_role_id: Vloga, dodeljena neadministratorskemu uporabniku, ki je ustvaril projekt + setting_new_project_user_role_id_caption: 'Only roles that include the permissions to edit project attributes and to manage members are listed, so that the creator can complete the project setup. + + ' setting_new_project_send_confirmation_email: Send notification to author when creating a new project setting_new_project_notification_text: Notification text setting_password_active_rules: Password requirements @@ -5728,6 +5794,7 @@ sl: text_project_identifier_format: Must start with a lowercase letter. Only lowercase letters (a-z), numbers, dashes and underscores are allowed. text_reassign: 'Ponovno dodelitev delovnemu paketu:' text_regexp_multiline: Označba se uporablja v večvrstičnem načinu. npr. ^ --- \ s + + text_rename_wiki_page: Rename wiki page text_repository_usernames_mapping: |- Izberite ali posodobite uporabnika OpenProject, vezanega na vsako uporabniško ime, ki ga najdete v dnevniku repozitorija. Uporabniki z istim uporabniškim imenom ali e-poštnim imenom skladišča OpenProject se samodejno povežejo. @@ -6183,11 +6250,6 @@ sl: scopes: Dovoljenja successful_application_revocation: Razveljavitev prijave %{application_name} je bila uspešna. none_given: Noben program OAuth ni omogočil dostopa do vašega uporabniškega računa. - x_active_tokens: - one: en aktiven žeton - two: "%{count} aktivnih žetonov" - few: "%{count} aktivnih žetonov" - other: "%{count} aktivnih žetonov" flows: authorization_code: Tok avtorizacije client_credentials: Pretok poverilnic stranke @@ -6197,8 +6259,12 @@ sl: client_credentials_impersonation_html: 'OpenProject privzeto zagotavlja pooblastilo OAuth 2.0 prek %{authorization_code_flow_link}. Izbirno lahko omogočite %{client_credentials_flow_link}, vendar morate navesti uporabnika, po imenu katerega se bodo izvajale zahteve. ' + confirm_revoke_my_application: + one: Do you really want to remove this application? This will revoke one token active for it. + two: Do you really want to remove this application? This will revoke %{count} tokens active for it. + few: Do you really want to remove this application? This will revoke %{count} tokens active for it. + other: Do you really want to remove this application? This will revoke %{count} tokens active for it. authorization_error: Prišlo je do napake v avtorizaciji. - revoke_my_application_confirmation: Ali res želite odstraniti to aplikacijo? To bo preklicalo %{token_count} aktivno. my_registered_applications: Registrirane aplikacije OAuth oauth_client: urn_connection_status: diff --git a/config/locales/crowdin/sr.yml b/config/locales/crowdin/sr.yml index e635aabc063..eab4b7c20e7 100644 --- a/config/locales/crowdin/sr.yml +++ b/config/locales/crowdin/sr.yml @@ -425,7 +425,8 @@ sr: error_special_characters: Special characters not allowed error_not_fully_uppercased: Must be uppercase error_in_use: Already in use as another project's active handle - error_reserved: Reserved by another project's handle history + error_used_in_past: Reserved by another project's handle history + error_reserved_by_system: Reserved as a system keyword error_unknown: Needs manual review remaining_projects: one: "... 1 more project" @@ -468,8 +469,13 @@ sr: ignore: Ignore changes save: Save changes and continue role_selector: + title: Select roles label: 'Role: %{role}' no_role: Select role + roles: + one: One role selected + few: "%{count} roles selected" + other: "%{count} roles selected" blankslate: title: No status transitions configured description: Add statuses to start configuring workflows for this role @@ -1125,6 +1131,8 @@ sr: no_results_title_text: There is currently no news to report. no_results_content_text: Add a news item roles: + edit: + default_for_new_projects_warning: 'This role is configured as the default role given to non-admin users who create a project. Do not remove the following permissions, otherwise project creators will be unable to complete the setup of their newly created projects:' permissions: section_check_all_label: Assign all %{module} permissions section_uncheck_all_label: Unassign all %{module} permissions @@ -2020,6 +2028,29 @@ sr: type: Type version: Verzija watcher: Watcher + ordered_persisted_query_entity: + persisted_query: Persisted query + entity: Entity + position: Position + persisted_query: + name: Name + views: Views + filters: Filters + orders: Orders + selects: Selects + persisted_view: + name: Name + query: Query + parent: Parent view + public: Public + user_card_view: + secondary_info: Secondary info + show_status_badge: Show status badge + show_email: Show email + tag_source: Tag source + tag_limit: Tag limit + card_size: Card size + columns_per_row: Columns per row errors: messages: accepted: must be accepted. @@ -2555,6 +2586,7 @@ sr: unsupported_storage_type: is not a supported storage type. storage_error: There was an error with the storage connection. invalid_input: The input is invalid. + invalid_child_for_parent: is not allowed as a parent for this view type. activity: item: created_by_on: created by %{user} on %{datetime} @@ -3452,6 +3484,28 @@ sr: general_text_false: 'false' gui_validation_error: 1 error gui_validation_error_plural: "%{count} errors" + health_reports: + report_component: + checks: + failures: + one: "%{count} check failed" + few: "%{count} checks failed" + other: "%{count} checks failed" + success: All checks passed + warnings: + one: "%{count} check returned a warning" + few: "%{count} checks returned a warning" + other: "%{count} checks returned a warning" + summary: + failure: Some checks failed and the system does not work as expected. + success: All connections and systems are working as expected. + warning: Some checks returned a warning. This can lead to unexpected behaviour. + result_component: + status: + failed: Failed + passed: Passed + skipped: Skipped + warning: Warning homescreen: additional: projects: Newest visible projects in this instance. @@ -3753,6 +3807,7 @@ sr: label_age: Age label_ago: days ago label_all: all + label_all_uppercase: All label_all_time: all time label_all_words: All words label_all_open_wps: All open @@ -4280,6 +4335,7 @@ sr: label_role_new: New role label_role_grantable: Grantable role label_role_plural: Roles + label_role_missing_permissions: "%{role} (missing required permissions)" label_role_search: Assign role to new members label_scm: SCM label_scroll_left: Scroll left @@ -4509,7 +4565,7 @@ sr: you_have: You have logo_alt_text: Logo mention: - subject: "%{user_name} mentioned you in #%{id} - %{subject}" + subject: "%{user_name} mentioned you in %{id} - %{subject}" notification: center: To notification center see_in_center: See comment in notification center @@ -4548,7 +4604,7 @@ sr: allowed_actions_html: 'You have the following permissions on this work package: %{allowed_actions}. This can change depending on your project role and permissions.' create_account: To access this work package, you will need to create and activate an account on %{instance}. open_work_package: Open work package - subject: 'Work package #%{id} was shared with you' + subject: Work package %{id} was shared with you enterprise_text: Share work packages with users who are not members of the project. summary: user: "%{user} shared a work package with you with %{role_rights} rights" @@ -4760,6 +4816,18 @@ sr: text_getting_started_description: Get a quick overview of project management and team collaboration with OpenProject. You can restart this video from the help menu. welcome: Welcome to %{app_title} select_language: Please select your language + open_project: + common: + work_package_card_component: + menu: + label_actions: Work package actions + work_package_card_list_component: + header: + label_actions: Open menu + label_work_package_count: + zero: No work packages + one: "%{count} work package" + other: "%{count} work packages" permission_add_work_package_comments: Add comments permission_add_work_packages: Add work packages permission_add_messages: Post messages @@ -4777,7 +4845,6 @@ sr: permission_add_work_package_watchers: Add watchers permission_assign_versions: Assign versions permission_browse_repository: Read-only access to repository (browse and checkout) - permission_change_wiki_parent_page: Change parent wiki page permission_change_work_package_status: Change work package status permission_change_work_package_status_explanation: Allows changing status without Edit work packages permission permission_comment_news: Comment news @@ -4792,8 +4859,6 @@ sr: permission_delete_own_messages: Delete own messages permission_delete_reportings: Delete reportings permission_delete_timelines: Delete timelines - permission_delete_wiki_pages: Delete wiki pages - permission_delete_wiki_pages_attachments: Delete attachments permission_edit_work_package_comments: Moderate comments permission_edit_work_package_comments_explanation: 'Caution: Users with this permission are able to edit anyone''s comment.' permission_edit_work_packages: Edit work packages @@ -4813,12 +4878,10 @@ sr: permission_edit_wiki_pages: Edit wiki pages permission_export_work_packages: Export work packages permission_export_projects: Export projects - permission_export_wiki_pages: Export wiki pages permission_invite_members_by_email: Invite members by email permission_invite_members_by_email_explanation: 'Allows users to invite new members by email. Invited users will receive an email with a link to set their password and activate their account. Depends on the permission to manage members ' - permission_list_attachments: List attachments permission_log_own_time: Log own time permission_log_time: Log time for other users permission_manage_forums: Manage forums @@ -4833,7 +4896,6 @@ sr: permission_manage_subtasks: Manage work package hierarchies permission_manage_versions: Manage versions permission_manage_wiki: Manage wiki - permission_manage_wiki_menu: Manage wiki menu permission_manage_own_working_times: Manage own working times permission_manage_own_working_times_explanation: 'Allows users to manage their own working times, and personal non-working days. @@ -4843,8 +4905,6 @@ sr: ' permission_move_work_packages: Move work packages - permission_protect_wiki_pages: Protect wiki pages - permission_rename_wiki_pages: Rename wiki pages permission_save_queries: Save views permission_search_project: Search project permission_select_custom_fields: Select custom fields @@ -5223,6 +5283,9 @@ sr: setting_mail_handler_body_delimiter_regex: Truncate emails matching this regex setting_mail_handler_ignore_filenames: Ignored mail attachments setting_new_project_user_role_id: Role given to a non-admin user who creates a project + setting_new_project_user_role_id_caption: 'Only roles that include the permissions to edit project attributes and to manage members are listed, so that the creator can complete the project setup. + + ' setting_new_project_send_confirmation_email: Send notification to author when creating a new project setting_new_project_notification_text: Notification text setting_password_active_rules: Password requirements @@ -5639,6 +5702,7 @@ sr: text_project_identifier_format: Must start with a lowercase letter. Only lowercase letters (a-z), numbers, dashes and underscores are allowed. text_reassign: 'Reassign to work package:' text_regexp_multiline: The regex is applied in a multi-line mode. e.g., ^---\s+ + text_rename_wiki_page: Rename wiki page text_repository_usernames_mapping: |- Select or update the OpenProject user mapped to each username found in the repository log. Users with the same OpenProject and repository username or email are automatically mapped. @@ -6073,10 +6137,6 @@ sr: scopes: Permissions successful_application_revocation: Revocation of application %{application_name} successful. none_given: No OAuth applications have been granted access to your user account. - x_active_tokens: - one: one active token - few: "%{count} active token" - other: "%{count} active token" flows: authorization_code: Authorization code flow client_credentials: Client credentials flow @@ -6086,8 +6146,11 @@ sr: client_credentials_impersonation_html: 'By default, OpenProject provides OAuth 2.0 authorization via %{authorization_code_flow_link}. You can optionally enable %{client_credentials_flow_link}, but you must provide a user on whose behalf requests will be performed. ' + confirm_revoke_my_application: + one: Do you really want to remove this application? This will revoke one token active for it. + few: Do you really want to remove this application? This will revoke %{count} tokens active for it. + other: Do you really want to remove this application? This will revoke %{count} tokens active for it. authorization_error: An authorization error has occurred. - revoke_my_application_confirmation: Do you really want to remove this application? This will revoke %{token_count} active for it. my_registered_applications: Registered OAuth applications oauth_client: urn_connection_status: diff --git a/config/locales/crowdin/sv.yml b/config/locales/crowdin/sv.yml index 2bba0750853..9a9c261f6a1 100644 --- a/config/locales/crowdin/sv.yml +++ b/config/locales/crowdin/sv.yml @@ -419,7 +419,8 @@ sv: error_special_characters: Special characters not allowed error_not_fully_uppercased: Must be uppercase error_in_use: Already in use as another project's active handle - error_reserved: Reserved by another project's handle history + error_used_in_past: Reserved by another project's handle history + error_reserved_by_system: Reserved as a system keyword error_unknown: Needs manual review remaining_projects: one: "... 1 more project" @@ -460,8 +461,12 @@ sv: ignore: Ignore changes save: Save changes and continue role_selector: + title: Select roles label: 'Role: %{role}' no_role: Select role + roles: + one: One role selected + other: "%{count} roles selected" blankslate: title: No status transitions configured description: Add statuses to start configuring workflows for this role @@ -1110,6 +1115,8 @@ sv: no_results_title_text: Det finns för närvarande inget att rapportera. no_results_content_text: Lägg till nyhet roles: + edit: + default_for_new_projects_warning: 'This role is configured as the default role given to non-admin users who create a project. Do not remove the following permissions, otherwise project creators will be unable to complete the setup of their newly created projects:' permissions: section_check_all_label: Assign all %{module} permissions section_uncheck_all_label: Unassign all %{module} permissions @@ -2000,6 +2007,29 @@ sv: type: Typ version: Version watcher: Bevakare + ordered_persisted_query_entity: + persisted_query: Persisted query + entity: Entity + position: Position + persisted_query: + name: Name + views: Views + filters: Filters + orders: Orders + selects: Selects + persisted_view: + name: Name + query: Query + parent: Parent view + public: Public + user_card_view: + secondary_info: Secondary info + show_status_badge: Show status badge + show_email: Show email + tag_source: Tag source + tag_limit: Tag limit + card_size: Card size + columns_per_row: Columns per row errors: messages: accepted: måste accepteras. @@ -2517,6 +2547,7 @@ sv: unsupported_storage_type: is not a supported storage type. storage_error: There was an error with the storage connection. invalid_input: The input is invalid. + invalid_child_for_parent: is not allowed as a parent for this view type. activity: item: created_by_on: created by %{user} on %{datetime} @@ -3391,6 +3422,26 @@ sv: general_text_false: falsk gui_validation_error: ett fel gui_validation_error_plural: "%{count} fel" + health_reports: + report_component: + checks: + failures: + one: "%{count} check failed" + other: "%{count} checks failed" + success: All checks passed + warnings: + one: "%{count} check returned a warning" + other: "%{count} checks returned a warning" + summary: + failure: Some checks failed and the system does not work as expected. + success: All connections and systems are working as expected. + warning: Some checks returned a warning. This can lead to unexpected behaviour. + result_component: + status: + failed: Failed + passed: Passed + skipped: Skipped + warning: Warning homescreen: additional: projects: De senast synliga projekten just nu. @@ -3692,6 +3743,7 @@ sv: label_age: Ålder label_ago: dagar sedan label_all: alla + label_all_uppercase: All label_all_time: all tid label_all_words: Alla ord label_all_open_wps: Alla öppna @@ -4219,6 +4271,7 @@ sv: label_role_new: Ny roll label_role_grantable: Grantable role label_role_plural: Roll + label_role_missing_permissions: "%{role} (missing required permissions)" label_role_search: Tilldela rollen till nya medlemmar label_scm: SCM label_scroll_left: Scroll left @@ -4445,7 +4498,7 @@ sv: you_have: Du har logo_alt_text: Logotyp mention: - subject: "%{user_name} mentioned you in #%{id} - %{subject}" + subject: "%{user_name} mentioned you in %{id} - %{subject}" notification: center: To notification center see_in_center: See comment in notification center @@ -4483,7 +4536,7 @@ sv: allowed_actions_html: 'You have the following permissions on this work package: %{allowed_actions}. This can change depending on your project role and permissions.' create_account: To access this work package, you will need to create and activate an account on %{instance}. open_work_package: Open work package - subject: 'Work package #%{id} was shared with you' + subject: Work package %{id} was shared with you enterprise_text: Share work packages with users who are not members of the project. summary: user: "%{user} shared a work package with you with %{role_rights} rights" @@ -4692,6 +4745,18 @@ sv: text_getting_started_description: Get a quick overview of project management and team collaboration with OpenProject. You can restart this video from the help menu. welcome: Welcome to %{app_title} select_language: Välj ditt språk + open_project: + common: + work_package_card_component: + menu: + label_actions: Work package actions + work_package_card_list_component: + header: + label_actions: Open menu + label_work_package_count: + zero: No work packages + one: "%{count} work package" + other: "%{count} work packages" permission_add_work_package_comments: Lägg till kommentarer permission_add_work_packages: Lägg till arbetspaket permission_add_messages: Publicera meddelanden @@ -4709,7 +4774,6 @@ sv: permission_add_work_package_watchers: Lägg till bevakare permission_assign_versions: Tilldela versioner permission_browse_repository: Skrivskyddad åtkomst till databasen (bläddra och och checka ut) - permission_change_wiki_parent_page: Ändra överordnad wiki-sida permission_change_work_package_status: Change work package status permission_change_work_package_status_explanation: Allows changing status without Edit work packages permission permission_comment_news: Kommentera nyhet @@ -4724,8 +4788,6 @@ sv: permission_delete_own_messages: Ta bort egna meddelanden permission_delete_reportings: Ta bort rapporter permission_delete_timelines: Ta bort tidslinjer - permission_delete_wiki_pages: Ta bort wikisidor - permission_delete_wiki_pages_attachments: Ta bort bifogade filer permission_edit_work_package_comments: Moderera kommentarer permission_edit_work_package_comments_explanation: 'Caution: Users with this permission are able to edit anyone''s comment.' permission_edit_work_packages: Redigera arbetspaket @@ -4745,12 +4807,10 @@ sv: permission_edit_wiki_pages: Redigera wiki-sidor permission_export_work_packages: Exportera arbetspaket permission_export_projects: Export projects - permission_export_wiki_pages: Exportera wiki-sidor permission_invite_members_by_email: Invite members by email permission_invite_members_by_email_explanation: 'Allows users to invite new members by email. Invited users will receive an email with a link to set their password and activate their account. Depends on the permission to manage members ' - permission_list_attachments: Lista bifogade filer permission_log_own_time: Logga egen tid permission_log_time: Loggtid för andra användare permission_manage_forums: Hantera forum @@ -4765,7 +4825,6 @@ sv: permission_manage_subtasks: Manage work package hierarchies permission_manage_versions: Hantera versioner permission_manage_wiki: Hantera wiki - permission_manage_wiki_menu: Hantera wiki-menyn permission_manage_own_working_times: Manage own working times permission_manage_own_working_times_explanation: 'Allows users to manage their own working times, and personal non-working days. @@ -4775,8 +4834,6 @@ sv: ' permission_move_work_packages: Flytta arbetspaket - permission_protect_wiki_pages: Skydda wiki-sidor - permission_rename_wiki_pages: Byt namn på wiki-sidor permission_save_queries: Spara vyer permission_search_project: Sök projekt permission_select_custom_fields: Välj anpassade fält @@ -5145,6 +5202,9 @@ sv: setting_mail_handler_body_delimiter_regex: Trunkera e-postmeddelanden enligt följande regex setting_mail_handler_ignore_filenames: Ignorerade e-postbilagor setting_new_project_user_role_id: Roll som ges till en icke-administratör som skapar ett projekt + setting_new_project_user_role_id_caption: 'Only roles that include the permissions to edit project attributes and to manage members are listed, so that the creator can complete the project setup. + + ' setting_new_project_send_confirmation_email: Send notification to author when creating a new project setting_new_project_notification_text: Notification text setting_password_active_rules: Password requirements @@ -5557,6 +5617,7 @@ sv: text_project_identifier_format: Must start with a lowercase letter. Only lowercase letters (a-z), numbers, dashes and underscores are allowed. text_reassign: 'Tilldela till arbetspaket:' text_regexp_multiline: Regex appliceras i flerradsläge. t.ex. ^---\s+ + text_rename_wiki_page: Rename wiki page text_repository_usernames_mapping: Välj eller uppdatera OpenProject användaren koppling till varje användarnamn i versionsarkivloggen. Användare med samma användarnamn eller E-post i OpenProject och versionsarkivet kopplas automatiskt. text_status_changed_by_changeset: Tillämpad i uppdatering %{value}. text_table_difference_description: I den här tabellen visas %{entries}. Genom att markera två poster och sedan klicka på knappen nedanför tabellen kan du jämföra dessa och titta på eventuella skillnader. @@ -5988,9 +6049,6 @@ sv: scopes: Behörigheter successful_application_revocation: Återkallande av applikation %{application_name} lyckades. none_given: Inga OAuth-program har beviljats åtkomst till ditt användarkonto. - x_active_tokens: - one: en aktiv token - other: "%{count} aktiv token" flows: authorization_code: Flöde för auktoriseringskod client_credentials: Flöde för klientuppgifter @@ -6000,8 +6058,10 @@ sv: client_credentials_impersonation_html: 'Som standard ger OpenProject OAuth 2.0-auktorisering via %{authorization_code_flow_link}. Du kan valfritt aktivera %{client_credentials_flow_link}, men du måste tillhandahålla en användare för vars räkning förfrågningar kommer att utföras. ' + confirm_revoke_my_application: + one: Do you really want to remove this application? This will revoke one token active for it. + other: Do you really want to remove this application? This will revoke %{count} tokens active for it. authorization_error: Ett auktoriseringsfel har inträffat. - revoke_my_application_confirmation: Vill du verkligen ta bort denna applikation? Detta kommer att återkalla %{token_count} aktiv för den. my_registered_applications: Registrerade OAuth applikationer oauth_client: urn_connection_status: diff --git a/config/locales/crowdin/th.yml b/config/locales/crowdin/th.yml index 4ebb1a3bbab..c13ca40f9c1 100644 --- a/config/locales/crowdin/th.yml +++ b/config/locales/crowdin/th.yml @@ -413,7 +413,8 @@ th: error_special_characters: Special characters not allowed error_not_fully_uppercased: Must be uppercase error_in_use: Already in use as another project's active handle - error_reserved: Reserved by another project's handle history + error_used_in_past: Reserved by another project's handle history + error_reserved_by_system: Reserved as a system keyword error_unknown: Needs manual review remaining_projects: other: "... %{count} more projects" @@ -452,8 +453,11 @@ th: ignore: Ignore changes save: Save changes and continue role_selector: + title: Select roles label: 'Role: %{role}' no_role: Select role + roles: + other: "%{count} roles selected" blankslate: title: No status transitions configured description: Add statuses to start configuring workflows for this role @@ -1095,6 +1099,8 @@ th: no_results_title_text: There is currently no news to report. no_results_content_text: Add a news item roles: + edit: + default_for_new_projects_warning: 'This role is configured as the default role given to non-admin users who create a project. Do not remove the following permissions, otherwise project creators will be unable to complete the setup of their newly created projects:' permissions: section_check_all_label: Assign all %{module} permissions section_uncheck_all_label: Unassign all %{module} permissions @@ -1980,6 +1986,29 @@ th: type: ประเภท version: เวอร์ชัน watcher: ผู้ดูข้อมูล + ordered_persisted_query_entity: + persisted_query: Persisted query + entity: Entity + position: Position + persisted_query: + name: Name + views: Views + filters: Filters + orders: Orders + selects: Selects + persisted_view: + name: Name + query: Query + parent: Parent view + public: Public + user_card_view: + secondary_info: Secondary info + show_status_badge: Show status badge + show_email: Show email + tag_source: Tag source + tag_limit: Tag limit + card_size: Card size + columns_per_row: Columns per row errors: messages: accepted: must be accepted. @@ -2479,6 +2508,7 @@ th: unsupported_storage_type: is not a supported storage type. storage_error: There was an error with the storage connection. invalid_input: The input is invalid. + invalid_child_for_parent: is not allowed as a parent for this view type. activity: item: created_by_on: created by %{user} on %{datetime} @@ -3330,6 +3360,24 @@ th: general_text_false: เป็นเท็จ gui_validation_error: พบ 1 ข้อผิดพลาด gui_validation_error_plural: พบ %{count} ข้อผิดพลาด + health_reports: + report_component: + checks: + failures: + other: "%{count} checks failed" + success: All checks passed + warnings: + other: "%{count} checks returned a warning" + summary: + failure: Some checks failed and the system does not work as expected. + success: All connections and systems are working as expected. + warning: Some checks returned a warning. This can lead to unexpected behaviour. + result_component: + status: + failed: Failed + passed: Passed + skipped: Skipped + warning: Warning homescreen: additional: projects: Newest visible projects in this instance. @@ -3631,6 +3679,7 @@ th: label_age: ระยะเวลา label_ago: วันที่ผ่านมา label_all: ทั้งหมด + label_all_uppercase: All label_all_time: ตลอดเวลา label_all_words: ทุกคำ label_all_open_wps: All open @@ -4158,6 +4207,7 @@ th: label_role_new: บทบาทใหม่ label_role_grantable: Grantable role label_role_plural: บทบาท + label_role_missing_permissions: "%{role} (missing required permissions)" label_role_search: Assign role to new members label_scm: SCM label_scroll_left: Scroll left @@ -4381,7 +4431,7 @@ th: you_have: You have logo_alt_text: Logo mention: - subject: "%{user_name} mentioned you in #%{id} - %{subject}" + subject: "%{user_name} mentioned you in %{id} - %{subject}" notification: center: To notification center see_in_center: See comment in notification center @@ -4418,7 +4468,7 @@ th: allowed_actions_html: 'You have the following permissions on this work package: %{allowed_actions}. This can change depending on your project role and permissions.' create_account: To access this work package, you will need to create and activate an account on %{instance}. open_work_package: Open work package - subject: 'Work package #%{id} was shared with you' + subject: Work package %{id} was shared with you enterprise_text: Share work packages with users who are not members of the project. summary: user: "%{user} shared a work package with you with %{role_rights} rights" @@ -4628,6 +4678,18 @@ th: text_getting_started_description: Get a quick overview of project management and team collaboration with OpenProject. You can restart this video from the help menu. welcome: Welcome to %{app_title} select_language: Please select your language + open_project: + common: + work_package_card_component: + menu: + label_actions: Work package actions + work_package_card_list_component: + header: + label_actions: Open menu + label_work_package_count: + zero: No work packages + one: "%{count} work package" + other: "%{count} work packages" permission_add_work_package_comments: Add comments permission_add_work_packages: เพิ่มลำดับภารกิจ permission_add_messages: โพสต์ข้อความ @@ -4645,7 +4707,6 @@ th: permission_add_work_package_watchers: เพิ่มผู้เฝ้าดู permission_assign_versions: Assign versions permission_browse_repository: Read-only access to repository (browse and checkout) - permission_change_wiki_parent_page: เปลี่ยนแปลงหลักหน้าวิกิ permission_change_work_package_status: Change work package status permission_change_work_package_status_explanation: Allows changing status without Edit work packages permission permission_comment_news: แสดงความคิดเห็นเกี่ยวกับข่าว @@ -4660,8 +4721,6 @@ th: permission_delete_own_messages: ลบข้อความของคุณ permission_delete_reportings: ลบรายงาน permission_delete_timelines: ลบแผนผังเวลา - permission_delete_wiki_pages: ลบหน้าวิกิ - permission_delete_wiki_pages_attachments: ลบไฟล์แนบ permission_edit_work_package_comments: Moderate comments permission_edit_work_package_comments_explanation: 'Caution: Users with this permission are able to edit anyone''s comment.' permission_edit_work_packages: แก้ไขชุดภารกิจ @@ -4681,12 +4740,10 @@ th: permission_edit_wiki_pages: แก้ไขหน้าวิกิ permission_export_work_packages: Export work packages permission_export_projects: Export projects - permission_export_wiki_pages: เอกซ์ปอร์ตหน้าวิกิ permission_invite_members_by_email: Invite members by email permission_invite_members_by_email_explanation: 'Allows users to invite new members by email. Invited users will receive an email with a link to set their password and activate their account. Depends on the permission to manage members ' - permission_list_attachments: รายการสิ่งที่แนบมา permission_log_own_time: Log own time permission_log_time: Log time for other users permission_manage_forums: จัดการกระทู้ @@ -4701,7 +4758,6 @@ th: permission_manage_subtasks: Manage work package hierarchies permission_manage_versions: จัดการเวอร์ชั่น permission_manage_wiki: จัดการวิกิ - permission_manage_wiki_menu: จัดการเมนูวิกิ permission_manage_own_working_times: Manage own working times permission_manage_own_working_times_explanation: 'Allows users to manage their own working times, and personal non-working days. @@ -4711,8 +4767,6 @@ th: ' permission_move_work_packages: ย้ายชุดภารกิจ - permission_protect_wiki_pages: ป้องกันหน้าวิกิ - permission_rename_wiki_pages: เปลี่ยนชื่อหน้าวิกิ permission_save_queries: Save views permission_search_project: Search project permission_select_custom_fields: Select custom fields @@ -5091,6 +5145,9 @@ th: setting_mail_handler_body_delimiter_regex: Truncate emails matching this regex setting_mail_handler_ignore_filenames: Ignored mail attachments setting_new_project_user_role_id: 'บทบาทที่ให้กับผู้ใช้ที่สร้างโครงการ ซึ่งไม่ใช่ผู้ดูแลระบบ ' + setting_new_project_user_role_id_caption: 'Only roles that include the permissions to edit project attributes and to manage members are listed, so that the creator can complete the project setup. + + ' setting_new_project_send_confirmation_email: Send notification to author when creating a new project setting_new_project_notification_text: Notification text setting_password_active_rules: Password requirements @@ -5507,6 +5564,7 @@ th: text_project_identifier_format: Must start with a lowercase letter. Only lowercase letters (a-z), numbers, dashes and underscores are allowed. text_reassign: 'Reassign to work package:' text_regexp_multiline: The regex is applied in a multi-line mode. e.g., ^---\s+ + text_rename_wiki_page: Rename wiki page text_repository_usernames_mapping: |- Select or update the OpenProject user mapped to each username found in the repository log. Users with the same OpenProject and repository username or email are automatically mapped. @@ -5939,8 +5997,6 @@ th: scopes: สิทธิ์ successful_application_revocation: Revocation of application %{application_name} successful. none_given: No OAuth applications have been granted access to your user account. - x_active_tokens: - other: "%{count} active token" flows: authorization_code: Authorization code flow client_credentials: Client credentials flow @@ -5950,8 +6006,9 @@ th: client_credentials_impersonation_html: 'By default, OpenProject provides OAuth 2.0 authorization via %{authorization_code_flow_link}. You can optionally enable %{client_credentials_flow_link}, but you must provide a user on whose behalf requests will be performed. ' + confirm_revoke_my_application: + other: Do you really want to remove this application? This will revoke %{count} tokens active for it. authorization_error: An authorization error has occurred. - revoke_my_application_confirmation: Do you really want to remove this application? This will revoke %{token_count} active for it. my_registered_applications: Registered OAuth applications oauth_client: urn_connection_status: diff --git a/config/locales/crowdin/tr.yml b/config/locales/crowdin/tr.yml index 8cb24552c61..0df77aef2cf 100644 --- a/config/locales/crowdin/tr.yml +++ b/config/locales/crowdin/tr.yml @@ -419,7 +419,8 @@ tr: error_special_characters: Special characters not allowed error_not_fully_uppercased: Must be uppercase error_in_use: Already in use as another project's active handle - error_reserved: Reserved by another project's handle history + error_used_in_past: Reserved by another project's handle history + error_reserved_by_system: Reserved as a system keyword error_unknown: Needs manual review remaining_projects: one: "... 1 more project" @@ -460,8 +461,12 @@ tr: ignore: Ignore changes save: Save changes and continue role_selector: + title: Select roles label: 'Role: %{role}' no_role: Select role + roles: + one: One role selected + other: "%{count} roles selected" blankslate: title: No status transitions configured description: Add statuses to start configuring workflows for this role @@ -1111,6 +1116,8 @@ tr: no_results_title_text: Şu anda rapor edilecek bir haber yok. no_results_content_text: Haber öğesi ekle roles: + edit: + default_for_new_projects_warning: 'This role is configured as the default role given to non-admin users who create a project. Do not remove the following permissions, otherwise project creators will be unable to complete the setup of their newly created projects:' permissions: section_check_all_label: Assign all %{module} permissions section_uncheck_all_label: Unassign all %{module} permissions @@ -2001,6 +2008,29 @@ tr: type: Tür version: Sürüm watcher: Takip eden + ordered_persisted_query_entity: + persisted_query: Persisted query + entity: Entity + position: Position + persisted_query: + name: Name + views: Views + filters: Filters + orders: Orders + selects: Selects + persisted_view: + name: Name + query: Query + parent: Parent view + public: Public + user_card_view: + secondary_info: Secondary info + show_status_badge: Show status badge + show_email: Show email + tag_source: Tag source + tag_limit: Tag limit + card_size: Card size + columns_per_row: Columns per row errors: messages: accepted: kabul edilmelidir. @@ -2522,6 +2552,7 @@ tr: unsupported_storage_type: desteklenen bir depolama türü değildir. storage_error: There was an error with the storage connection. invalid_input: Giriş geçersiz. + invalid_child_for_parent: is not allowed as a parent for this view type. activity: item: created_by_on: "%{user} tarafından %{datetime} tarihinde oluşturuldu" @@ -3396,6 +3427,26 @@ tr: general_text_false: yanlış gui_validation_error: 1 hata gui_validation_error_plural: "%{count} hata" + health_reports: + report_component: + checks: + failures: + one: "%{count} check failed" + other: "%{count} checks failed" + success: All checks passed + warnings: + one: "%{count} check returned a warning" + other: "%{count} checks returned a warning" + summary: + failure: Some checks failed and the system does not work as expected. + success: All connections and systems are working as expected. + warning: Some checks returned a warning. This can lead to unexpected behaviour. + result_component: + status: + failed: Failed + passed: Passed + skipped: Skipped + warning: Warning homescreen: additional: projects: Bu bölümdeki görülebilir en yeni projeler. @@ -3697,6 +3748,7 @@ tr: label_age: Yaş label_ago: gün önce label_all: tüm + label_all_uppercase: All label_all_time: her zaman label_all_words: Bütün kelimeler label_all_open_wps: Tüm açık @@ -4224,6 +4276,7 @@ tr: label_role_new: Yeni rol label_role_grantable: Verilebilir rol label_role_plural: Yetkiler + label_role_missing_permissions: "%{role} (missing required permissions)" label_role_search: Yeni üyelere rol atama label_scm: YKM label_scroll_left: Sola kaydır @@ -4450,7 +4503,7 @@ tr: you_have: Var logo_alt_text: Logo mention: - subject: "%{user_name}, #%{id} - %{subject} içinde sizden bahsetti" + subject: "%{user_name} mentioned you in %{id} - %{subject}" notification: center: Bildirim Merkezi see_in_center: Bildirim merkezinde yorumu görün @@ -4488,7 +4541,7 @@ tr: allowed_actions_html: 'You have the following permissions on this work package: %{allowed_actions}. This can change depending on your project role and permissions.' create_account: To access this work package, you will need to create and activate an account on %{instance}. open_work_package: İş paketini aç - subject: 'İş paketi #%{id} sizinle paylaşıldı' + subject: Work package %{id} was shared with you enterprise_text: İş paketlerini proje üyesi olmayan kullanıcılarla paylaşın. summary: user: "%{user} shared a work package with you with %{role_rights} rights" @@ -4698,6 +4751,18 @@ tr: text_getting_started_description: OpenProject ile proje yönetimi ve ekip çalışması konusunda genel bir fikir edinin. Bu videoyu yardım menüsünden yeniden başlatabilirsiniz. welcome: "%{app_title}'e hoş geldiniz" select_language: Lütfen dilinizi seçin + open_project: + common: + work_package_card_component: + menu: + label_actions: Work package actions + work_package_card_list_component: + header: + label_actions: Open menu + label_work_package_count: + zero: No work packages + one: "%{count} work package" + other: "%{count} work packages" permission_add_work_package_comments: Yorum ekle permission_add_work_packages: İş paketi eklemek permission_add_messages: İleti göndermek @@ -4715,7 +4780,6 @@ tr: permission_add_work_package_watchers: Takip eden ekle permission_assign_versions: Sürüm ata permission_browse_repository: Depoya salt okunur erişim (göz atma ve ödeme) - permission_change_wiki_parent_page: Üst Wiki sayfasını değiştirmek permission_change_work_package_status: İş paketi durumunu değiştirme permission_change_work_package_status_explanation: Allows changing status without Edit work packages permission permission_comment_news: Haberlere yorum yazmak @@ -4730,8 +4794,6 @@ tr: permission_delete_own_messages: Kendi iletilerini silmek permission_delete_reportings: Raporları silmek permission_delete_timelines: Zaman akışını silmek - permission_delete_wiki_pages: Wiki sayfalarını silmek - permission_delete_wiki_pages_attachments: Ekleri silmek permission_edit_work_package_comments: Yorumları denetle permission_edit_work_package_comments_explanation: 'Caution: Users with this permission are able to edit anyone''s comment.' permission_edit_work_packages: İş paketlerini düzenlemek @@ -4751,12 +4813,10 @@ tr: permission_edit_wiki_pages: Wiki sayfalarını düzenlemek permission_export_work_packages: İş paketlerini dışarı aktar permission_export_projects: Export projects - permission_export_wiki_pages: Wiki sayfalarını dışarı aktar permission_invite_members_by_email: Invite members by email permission_invite_members_by_email_explanation: 'Allows users to invite new members by email. Invited users will receive an email with a link to set their password and activate their account. Depends on the permission to manage members ' - permission_list_attachments: Ekleri listelemek permission_log_own_time: Kendi zamanını günlüğe kaydet permission_log_time: Diğer kullanıcıların zamanını günlüğe kaydet permission_manage_forums: Forumları yönetmek @@ -4771,7 +4831,6 @@ tr: permission_manage_subtasks: İş paketi kategorilerini yönet permission_manage_versions: Sürümleri yönetmek permission_manage_wiki: Wiki'yi yönet - permission_manage_wiki_menu: Wiki menüsünü yönet permission_manage_own_working_times: Manage own working times permission_manage_own_working_times_explanation: 'Allows users to manage their own working times, and personal non-working days. @@ -4781,8 +4840,6 @@ tr: ' permission_move_work_packages: İş paketini taşı - permission_protect_wiki_pages: Wiki sayfalarını koruma - permission_rename_wiki_pages: Wiki sayfalarını yeniden adlandır permission_save_queries: Görünüm kaydetmek permission_search_project: Projeyi ara permission_select_custom_fields: Özel alanları seçin @@ -5159,6 +5216,9 @@ tr: setting_mail_handler_body_delimiter_regex: Bu düzenli ifade ile uyuşan e-postaları kırp setting_mail_handler_ignore_filenames: Yoksayılan posta ekleri setting_new_project_user_role_id: Bir proje oluşturan yönetici olmayan bir kullanıcıya verilen rolü + setting_new_project_user_role_id_caption: 'Only roles that include the permissions to edit project attributes and to manage members are listed, so that the creator can complete the project setup. + + ' setting_new_project_send_confirmation_email: Send notification to author when creating a new project setting_new_project_notification_text: Notification text setting_password_active_rules: Password requirements @@ -5571,6 +5631,7 @@ tr: text_project_identifier_format: Must start with a lowercase letter. Only lowercase letters (a-z), numbers, dashes and underscores are allowed. text_reassign: 'İş paketine yeniden atama:' text_regexp_multiline: Regex (düzenli ifade) birden çok satırlı modda uygulanır. Örneğin, ^---\s+ + text_rename_wiki_page: Rename wiki page text_repository_usernames_mapping: Depo günlüklerinde bulunan her kullanıcı adına eşlenen OpenProject kullanıcısını seçin veya güncelleyin. Aynı OpenProject ve depo kullanıcı adına veya e-postasına sahip kullanıcılar otomatik olarak eşleştirilir. text_status_changed_by_changeset: Uygulanan Değişiklik listesi %{value}. text_table_difference_description: Bu tabloda tek %{entries} girdisi gösteriliyor. İki girdi arasındaki farkı görmek için, tablodaki ilgili alanların üzerindeki seçim kutularını işaretlemelisiniz. Seçiminizden sonra tablonun altındakı tuşa tıklayarak farkları görebilirsiniz. @@ -6004,9 +6065,6 @@ tr: scopes: İzinler successful_application_revocation: "%{application_name} uygulamasının iptali başarılı oldu." none_given: Hiçbir OAuth uygulamasına kullanıcı hesabınıza erişim izni verilmedi. - x_active_tokens: - one: bir aktif belirteç - other: "%{count} aktif belirteç" flows: authorization_code: Yetki kodu akışı client_credentials: Müşteri kimlik bilgisi akışı @@ -6016,8 +6074,10 @@ tr: client_credentials_impersonation_html: 'Varsayılan olarak, OpenProject,%{authorization_code_flow_link}. yoluyla OAuth 2.0 yetkilendirmesi sağlar. İsteğe bağlı olarak%{client_credentials_flow_link} özelliğini etkinleştirebilirsiniz, ancak kendi adına istekleri gerçekleştirilecek bir kullanıcı sağlamanız gerekir. ' + confirm_revoke_my_application: + one: Do you really want to remove this application? This will revoke one token active for it. + other: Do you really want to remove this application? This will revoke %{count} tokens active for it. authorization_error: Bir yetkilendirme hatası oluştu. - revoke_my_application_confirmation: Bu uygulamayı gerçekten kaldırmak istiyor musunuz? Bu, %{token_count} aktif olanını iptal edecektir. my_registered_applications: OAuth uygulamalarını kayıtedin oauth_client: urn_connection_status: diff --git a/config/locales/crowdin/uk.yml b/config/locales/crowdin/uk.yml index df11e8b077e..dea4e6a440c 100644 --- a/config/locales/crowdin/uk.yml +++ b/config/locales/crowdin/uk.yml @@ -431,7 +431,8 @@ uk: error_special_characters: Не дозволяється використовувати спеціальні символи error_not_fully_uppercased: Літери мають бути великими error_in_use: Уже використовується як активний дескриптор іншого проєкту - error_reserved: Зарезервовано в історії дескрипторів іншого проєкту + error_used_in_past: Зарезервовано в історії дескрипторів іншого проєкту + error_reserved_by_system: Зарезервовано як системне ключове слово error_unknown: Потребує ручної перевірки remaining_projects: one: "… ще 1 проєкт" @@ -476,8 +477,14 @@ uk: ignore: Ігнорувати зміни save: Зберегти зміни й продовжити role_selector: + title: Виберіть ролі label: 'Роль: %{role}' no_role: Виберіть роль + roles: + one: One role selected + few: "%{count} roles selected" + many: "%{count} roles selected" + other: "%{count} roles selected" blankslate: title: Переходи статусів не налаштовано description: Додайте статуси, щоб почати налаштовувати робочі процеси для цієї ролі @@ -1140,6 +1147,8 @@ uk: no_results_title_text: Наразі немає жодної новини. no_results_content_text: Додати новину roles: + edit: + default_for_new_projects_warning: 'Відповідно до налаштувань, ця роль за умовчанням надається користувачам, які створюють проєкт, але не є адміністраторами. Не вилучайте вказані далі права, інакше автори не зможуть завершити налаштування новостворених проєктів:' permissions: section_check_all_label: Призначити всі дозволи модуля «%{module}» section_uncheck_all_label: Скасувати призначення всіх дозволів модуля «%{module}» @@ -2035,6 +2044,29 @@ uk: type: Тип version: Версія watcher: Спостерігач + ordered_persisted_query_entity: + persisted_query: Постійний запит + entity: Сутність + position: Позиція + persisted_query: + name: Назва + views: Подання + filters: Фільтри + orders: Порядок + selects: Вибране + persisted_view: + name: Назва + query: Запит + parent: Батьківське подання + public: Загальнодоступне + user_card_view: + secondary_info: Додаткова інформація + show_status_badge: Показати значок статусу + show_email: Показати електронну адресу + tag_source: Джерело тегів + tag_limit: Ліміт тегів + card_size: Розмір картки + columns_per_row: Стовпців у рядку errors: messages: accepted: повинні бути прийняті. @@ -2592,6 +2624,7 @@ uk: unsupported_storage_type: не є типом сховища, що підтримується. storage_error: Помилка з’єднання зі сховищем. invalid_input: Введено недійсні дані. + invalid_child_for_parent: не допускається як батьківський елемент для цього типу подання. activity: item: created_by_on: створено %{datetime} користувачем %{user} @@ -3512,6 +3545,30 @@ uk: general_text_false: хибне значення gui_validation_error: 1 помилка gui_validation_error_plural: "%{count} помилок" + health_reports: + report_component: + checks: + failures: + one: "%{count} перевірку не пройдено" + few: "%{count} перевірки не пройдено" + many: "%{count} перевірок не пройдено" + other: "%{count} перевірки не пройдено" + success: Усі перевірки пройдено + warnings: + one: "%{count} перевірка завершилася з попередженням" + few: "%{count} перевірок завершилося з попередженням" + many: "%{count} перевірок завершилося з попередженням" + other: "%{count} перевірки завершилося з попередженням" + summary: + failure: Деякі перевірки не пройдено, і система працює неналежним чином. + success: Усі підключення й системи працюють належним чином. + warning: Деякі перевірки завершилися з попередженням. Це може призвести до неочікуваної поведінки. + result_component: + status: + failed: Не пройдено + passed: Пройдено + skipped: Пропущено + warning: Попередження homescreen: additional: projects: Нові видимі проекти в цьому екземплярі. @@ -3813,6 +3870,7 @@ uk: label_age: Вік label_ago: днів тому label_all: всі + label_all_uppercase: Усі label_all_time: весь час label_all_words: Всі слова label_all_open_wps: Всі відкрити @@ -4062,7 +4120,7 @@ uk: label_index_by_title: Індекс за назвою label_information: Інформація label_information_plural: Інформація - label_installation_guides: Інструкції із встановлення + label_installation_guides: Інструкції зі встановлення label_integer: Ціле число label_interface: Інтерфейс label_internal: Власне @@ -4340,6 +4398,7 @@ uk: label_role_new: Нова роль label_role_grantable: Роль, що надається label_role_plural: Роль + label_role_missing_permissions: "%{role} (відсутні необхідні дозволи)" label_role_search: Призначити роль для нових членів label_scm: Тип сховища label_scroll_left: Гортати вліво @@ -4572,7 +4631,7 @@ uk: you_have: У вас logo_alt_text: Логотип mention: - subject: 'Користувач %{user_name} згадав вас у #%{id} – %{subject}' + subject: Користувач %{user_name} згадав вас у %{id} (%{subject}) notification: center: Центр сповіщень see_in_center: Переглянути коментарі у центрі сповіщень @@ -4612,7 +4671,7 @@ uk: allowed_actions_html: 'Ви маєте такі дозволи в цьому пакеті робіт: %{allowed_actions}. Однак вони можуть змінюватися залежно від ролі й дозволів, які у вас є в проєкті.' create_account: 'Щоб отримати доступ до цього пакета робіт, вам знадобиться створити й активувати обліковий запис в %{instance}. ' open_work_package: Відкрити пакет робіт - subject: 'Вам надано доступ до пакета робіт #%{id}' + subject: Вам надано доступ до пакета робіт %{id} enterprise_text: Діліться пакетами робіт із користувачами, які не належать до учасників проєкту. summary: user: "%{user} надав(-ла) вам доступ до пакета робіт із такими правами: %{role_rights}" @@ -4824,6 +4883,18 @@ uk: text_getting_started_description: Отримайте стислий огляд управління проєктами та командної роботи в OpenProject. Це відео можна переглянути знову в меню довідки. welcome: Вітаємо в додатку %{app_title} select_language: Будь ласка, виберіть мову + open_project: + common: + work_package_card_component: + menu: + label_actions: Дії з пакетом робіт + work_package_card_list_component: + header: + label_actions: Open menu + label_work_package_count: + zero: No work packages + one: "%{count} work package" + other: "%{count} work packages" permission_add_work_package_comments: Додавання коментарів permission_add_work_packages: Додати робочі пакети permission_add_messages: Відправка повідомлень @@ -4841,7 +4912,6 @@ uk: permission_add_work_package_watchers: Додати спостерігачів permission_assign_versions: Призначити версії permission_browse_repository: Доступ лише на читання з репозиторію (перегляд і перевірка) - permission_change_wiki_parent_page: Змінити батьківську wiki сторінку permission_change_work_package_status: Змінити статус пакета робіт permission_change_work_package_status_explanation: Дає змогу змінювати статус без дозволу «Редагування пакетів робіт» permission_comment_news: Коментування новин @@ -4856,8 +4926,6 @@ uk: permission_delete_own_messages: Видалення власних повідомлень permission_delete_reportings: Видалити звіти permission_delete_timelines: Видалити графіки - permission_delete_wiki_pages: Видалення wiki-сторінок - permission_delete_wiki_pages_attachments: Видалення прикріплених файлів permission_edit_work_package_comments: Модерування коментарів permission_edit_work_package_comments_explanation: Увага! Користувачі із цим дозволом можуть редагувати будь-чиї коментарі. permission_edit_work_packages: Редагувати робочі пакети @@ -4877,12 +4945,10 @@ uk: permission_edit_wiki_pages: Редагування wiki-сторінок permission_export_work_packages: Експорт робочих пакетів permission_export_projects: Експорт проєктів - permission_export_wiki_pages: Експорт wiki-сторінок permission_invite_members_by_email: Запрошення учасників електронною поштою permission_invite_members_by_email_explanation: 'Дозвольте запрошувати нових користувачів електронною поштою. Запрошені користувачі отримають лист із посиланням для встановлення пароля й активації облікового запису. На це налаштування впливає дозвіл на керування користувачами. ' - permission_list_attachments: Список вкладень permission_log_own_time: Реєструвати власний час permission_log_time: Реєструвати час для інших користувачів permission_manage_forums: Управління форумами @@ -4897,7 +4963,6 @@ uk: permission_manage_subtasks: Керування ієрархіями пакетів робіт permission_manage_versions: Управління версіями permission_manage_wiki: Управління wiki - permission_manage_wiki_menu: Керування wiki-меню permission_manage_own_working_times: Керувати власним робочим часом permission_manage_own_working_times_explanation: 'Дозволяє користувачам керувати власним робочим часом і особистими неробочими днями. @@ -4907,8 +4972,6 @@ uk: ' permission_move_work_packages: Переміщення робочих пакетів - permission_protect_wiki_pages: Захист wiki-сторінок - permission_rename_wiki_pages: Перейменування wiki-сторінок permission_save_queries: Зберегти перегляди permission_search_project: Пошук проєктів permission_select_custom_fields: Вибирати власні поля @@ -5287,6 +5350,9 @@ uk: setting_mail_handler_body_delimiter_regex: Обрізати електронні листи, які відповідають цьому регулярному виразу setting_mail_handler_ignore_filenames: Проігноровані вкладення пошти setting_new_project_user_role_id: Роль, що призначається користувачу, створившому проект + setting_new_project_user_role_id_caption: 'Наведено лише ті ролі, які включають дозволи на редагування атрибутів проєкту й керування учасниками, щоб автор міг завершити налаштування проєкту. + + ' setting_new_project_send_confirmation_email: Надсилати сповіщення автору при створенні нового проєкту setting_new_project_notification_text: Текст сповіщення setting_password_active_rules: Вимоги до пароля @@ -5703,6 +5769,7 @@ uk: text_project_identifier_format: Має починатися з малої літери й містити лише малі літери (a–z), цифри, тире й символи підкреслення. text_reassign: 'Перепризначити робочому пакету:' text_regexp_multiline: Реестр застосовується в багаторядковому режимі. наприклад, --- --- + text_rename_wiki_page: Перейменувати сторінку Wiki text_repository_usernames_mapping: |- Виберіть або оновіть користувача OpenProject, зіставленого з кожним ім'ям користувача в журналі репозиторію. Користувачі з таким самим ім'ям користувача або електронною поштою OpenProject автоматично відображаються. @@ -6138,11 +6205,6 @@ uk: scopes: Дозволи successful_application_revocation: Відкликання заявки %{application_name} успішне. none_given: Жодних програм OAuth не було надано доступ до вашого облікового запису користувача. - x_active_tokens: - one: один активний маркер - few: "%{count} активний маркер" - many: "%{count} активний маркер" - other: "%{count} активний маркер" flows: authorization_code: Потік авторизації коду client_credentials: Потік облікових даних клієнта @@ -6152,8 +6214,12 @@ uk: client_credentials_impersonation_html: 'За замовчуванням OpenProject надає авторизацію OAuth 2.0 через %{authorization_code_flow_link}. За бажанням можна включити %{client_credentials_flow_link} але ви повинні надати користувачеві, від імені будуть кого виконуватися запити. ' + confirm_revoke_my_application: + one: Ви дійсно бажаєте видалити цей застосунок? Це призведе до скасування одного активного маркера. + few: Ви дійсно бажаєте видалити цей застосунок? Це призведе до скасування %{count} активних маркерів. + many: Ви дійсно бажаєте видалити цей застосунок? Це призведе до скасування %{count} активних маркерів. + other: Ви дійсно бажаєте видалити цей застосунок? Це призведе до скасування %{count} активного маркера. authorization_error: Сталася помилка авторизації. - revoke_my_application_confirmation: Ви дійсно бажаєте видалити цю програму? Це скасує %{token_count} активація для цього. my_registered_applications: Зареєстровані програми OAuth oauth_client: urn_connection_status: diff --git a/config/locales/crowdin/uz.yml b/config/locales/crowdin/uz.yml index efdc9bcba47..ea1d96dbcc2 100644 --- a/config/locales/crowdin/uz.yml +++ b/config/locales/crowdin/uz.yml @@ -419,7 +419,8 @@ uz: error_special_characters: Special characters not allowed error_not_fully_uppercased: Must be uppercase error_in_use: Already in use as another project's active handle - error_reserved: Reserved by another project's handle history + error_used_in_past: Reserved by another project's handle history + error_reserved_by_system: Reserved as a system keyword error_unknown: Needs manual review remaining_projects: one: "... 1 more project" @@ -460,8 +461,12 @@ uz: ignore: Ignore changes save: Save changes and continue role_selector: + title: Select roles label: 'Role: %{role}' no_role: Select role + roles: + one: One role selected + other: "%{count} roles selected" blankslate: title: No status transitions configured description: Add statuses to start configuring workflows for this role @@ -1110,6 +1115,8 @@ uz: no_results_title_text: There is currently no news to report. no_results_content_text: Add a news item roles: + edit: + default_for_new_projects_warning: 'This role is configured as the default role given to non-admin users who create a project. Do not remove the following permissions, otherwise project creators will be unable to complete the setup of their newly created projects:' permissions: section_check_all_label: Assign all %{module} permissions section_uncheck_all_label: Unassign all %{module} permissions @@ -2000,6 +2007,29 @@ uz: type: Type version: Version watcher: Watcher + ordered_persisted_query_entity: + persisted_query: Persisted query + entity: Entity + position: Position + persisted_query: + name: Name + views: Views + filters: Filters + orders: Orders + selects: Selects + persisted_view: + name: Name + query: Query + parent: Parent view + public: Public + user_card_view: + secondary_info: Secondary info + show_status_badge: Show status badge + show_email: Show email + tag_source: Tag source + tag_limit: Tag limit + card_size: Card size + columns_per_row: Columns per row errors: messages: accepted: must be accepted. @@ -2517,6 +2547,7 @@ uz: unsupported_storage_type: is not a supported storage type. storage_error: There was an error with the storage connection. invalid_input: The input is invalid. + invalid_child_for_parent: is not allowed as a parent for this view type. activity: item: created_by_on: created by %{user} on %{datetime} @@ -3391,6 +3422,26 @@ uz: general_text_false: 'false' gui_validation_error: 1 error gui_validation_error_plural: "%{count} errors" + health_reports: + report_component: + checks: + failures: + one: "%{count} check failed" + other: "%{count} checks failed" + success: All checks passed + warnings: + one: "%{count} check returned a warning" + other: "%{count} checks returned a warning" + summary: + failure: Some checks failed and the system does not work as expected. + success: All connections and systems are working as expected. + warning: Some checks returned a warning. This can lead to unexpected behaviour. + result_component: + status: + failed: Failed + passed: Passed + skipped: Skipped + warning: Warning homescreen: additional: projects: Newest visible projects in this instance. @@ -3692,6 +3743,7 @@ uz: label_age: Age label_ago: days ago label_all: all + label_all_uppercase: All label_all_time: all time label_all_words: All words label_all_open_wps: All open @@ -4219,6 +4271,7 @@ uz: label_role_new: New role label_role_grantable: Grantable role label_role_plural: Roles + label_role_missing_permissions: "%{role} (missing required permissions)" label_role_search: Assign role to new members label_scm: SCM label_scroll_left: Scroll left @@ -4445,7 +4498,7 @@ uz: you_have: You have logo_alt_text: Logo mention: - subject: "%{user_name} mentioned you in #%{id} - %{subject}" + subject: "%{user_name} mentioned you in %{id} - %{subject}" notification: center: To notification center see_in_center: See comment in notification center @@ -4483,7 +4536,7 @@ uz: allowed_actions_html: 'You have the following permissions on this work package: %{allowed_actions}. This can change depending on your project role and permissions.' create_account: To access this work package, you will need to create and activate an account on %{instance}. open_work_package: Open work package - subject: 'Work package #%{id} was shared with you' + subject: Work package %{id} was shared with you enterprise_text: Share work packages with users who are not members of the project. summary: user: "%{user} shared a work package with you with %{role_rights} rights" @@ -4694,6 +4747,18 @@ uz: text_getting_started_description: Get a quick overview of project management and team collaboration with OpenProject. You can restart this video from the help menu. welcome: Welcome to %{app_title} select_language: Please select your language + open_project: + common: + work_package_card_component: + menu: + label_actions: Work package actions + work_package_card_list_component: + header: + label_actions: Open menu + label_work_package_count: + zero: No work packages + one: "%{count} work package" + other: "%{count} work packages" permission_add_work_package_comments: Add comments permission_add_work_packages: Add work packages permission_add_messages: Post messages @@ -4711,7 +4776,6 @@ uz: permission_add_work_package_watchers: Add watchers permission_assign_versions: Assign versions permission_browse_repository: Read-only access to repository (browse and checkout) - permission_change_wiki_parent_page: Change parent wiki page permission_change_work_package_status: Change work package status permission_change_work_package_status_explanation: Allows changing status without Edit work packages permission permission_comment_news: Comment news @@ -4726,8 +4790,6 @@ uz: permission_delete_own_messages: Delete own messages permission_delete_reportings: Delete reportings permission_delete_timelines: Delete timelines - permission_delete_wiki_pages: Delete wiki pages - permission_delete_wiki_pages_attachments: Delete attachments permission_edit_work_package_comments: Moderate comments permission_edit_work_package_comments_explanation: 'Caution: Users with this permission are able to edit anyone''s comment.' permission_edit_work_packages: Edit work packages @@ -4747,12 +4809,10 @@ uz: permission_edit_wiki_pages: Edit wiki pages permission_export_work_packages: Export work packages permission_export_projects: Export projects - permission_export_wiki_pages: Export wiki pages permission_invite_members_by_email: Invite members by email permission_invite_members_by_email_explanation: 'Allows users to invite new members by email. Invited users will receive an email with a link to set their password and activate their account. Depends on the permission to manage members ' - permission_list_attachments: List attachments permission_log_own_time: Log own time permission_log_time: Log time for other users permission_manage_forums: Manage forums @@ -4767,7 +4827,6 @@ uz: permission_manage_subtasks: Manage work package hierarchies permission_manage_versions: Manage versions permission_manage_wiki: Manage wiki - permission_manage_wiki_menu: Manage wiki menu permission_manage_own_working_times: Manage own working times permission_manage_own_working_times_explanation: 'Allows users to manage their own working times, and personal non-working days. @@ -4777,8 +4836,6 @@ uz: ' permission_move_work_packages: Move work packages - permission_protect_wiki_pages: Protect wiki pages - permission_rename_wiki_pages: Rename wiki pages permission_save_queries: Save views permission_search_project: Search project permission_select_custom_fields: Select custom fields @@ -5157,6 +5214,9 @@ uz: setting_mail_handler_body_delimiter_regex: Truncate emails matching this regex setting_mail_handler_ignore_filenames: Ignored mail attachments setting_new_project_user_role_id: Role given to a non-admin user who creates a project + setting_new_project_user_role_id_caption: 'Only roles that include the permissions to edit project attributes and to manage members are listed, so that the creator can complete the project setup. + + ' setting_new_project_send_confirmation_email: Send notification to author when creating a new project setting_new_project_notification_text: Notification text setting_password_active_rules: Password requirements @@ -5573,6 +5633,7 @@ uz: text_project_identifier_format: Must start with a lowercase letter. Only lowercase letters (a-z), numbers, dashes and underscores are allowed. text_reassign: 'Reassign to work package:' text_regexp_multiline: The regex is applied in a multi-line mode. e.g., ^---\s+ + text_rename_wiki_page: Rename wiki page text_repository_usernames_mapping: |- Select or update the OpenProject user mapped to each username found in the repository log. Users with the same OpenProject and repository username or email are automatically mapped. @@ -6006,9 +6067,6 @@ uz: scopes: Permissions successful_application_revocation: Revocation of application %{application_name} successful. none_given: No OAuth applications have been granted access to your user account. - x_active_tokens: - one: one active token - other: "%{count} active token" flows: authorization_code: Authorization code flow client_credentials: Client credentials flow @@ -6018,8 +6076,10 @@ uz: client_credentials_impersonation_html: 'By default, OpenProject provides OAuth 2.0 authorization via %{authorization_code_flow_link}. You can optionally enable %{client_credentials_flow_link}, but you must provide a user on whose behalf requests will be performed. ' + confirm_revoke_my_application: + one: Do you really want to remove this application? This will revoke one token active for it. + other: Do you really want to remove this application? This will revoke %{count} tokens active for it. authorization_error: An authorization error has occurred. - revoke_my_application_confirmation: Do you really want to remove this application? This will revoke %{token_count} active for it. my_registered_applications: Registered OAuth applications oauth_client: urn_connection_status: diff --git a/config/locales/crowdin/vi.yml b/config/locales/crowdin/vi.yml index ad3be53d0da..2fe128da4cc 100644 --- a/config/locales/crowdin/vi.yml +++ b/config/locales/crowdin/vi.yml @@ -413,7 +413,8 @@ vi: error_special_characters: Special characters not allowed error_not_fully_uppercased: Must be uppercase error_in_use: Already in use as another project's active handle - error_reserved: Reserved by another project's handle history + error_used_in_past: Reserved by another project's handle history + error_reserved_by_system: Reserved as a system keyword error_unknown: Needs manual review remaining_projects: other: "... %{count} more projects" @@ -452,8 +453,11 @@ vi: ignore: Ignore changes save: Save changes and continue role_selector: + title: Select roles label: 'Role: %{role}' no_role: Select role + roles: + other: "%{count} roles selected" blankslate: title: No status transitions configured description: Add statuses to start configuring workflows for this role @@ -1097,6 +1101,8 @@ vi: no_results_title_text: Hiện không có tin tức báo cáo. no_results_content_text: Thêm một mục tin tức roles: + edit: + default_for_new_projects_warning: 'This role is configured as the default role given to non-admin users who create a project. Do not remove the following permissions, otherwise project creators will be unable to complete the setup of their newly created projects:' permissions: section_check_all_label: Gán tất cả các quyền %{module} section_uncheck_all_label: Bỏ gán tất cả quyền %{module} @@ -1982,6 +1988,29 @@ vi: type: loại version: Phiên bản watcher: Người quan sát + ordered_persisted_query_entity: + persisted_query: Persisted query + entity: Entity + position: Position + persisted_query: + name: Name + views: Views + filters: Filters + orders: Orders + selects: Selects + persisted_view: + name: Name + query: Query + parent: Parent view + public: Public + user_card_view: + secondary_info: Secondary info + show_status_badge: Show status badge + show_email: Show email + tag_source: Tag source + tag_limit: Tag limit + card_size: Card size + columns_per_row: Columns per row errors: messages: accepted: phải được đồng ý @@ -2481,6 +2510,7 @@ vi: unsupported_storage_type: không phải là loại lưu trữ được hỗ trợ. storage_error: Đã xảy ra lỗi với kết nối lưu trữ. invalid_input: Đầu vào không hợp lệ. + invalid_child_for_parent: is not allowed as a parent for this view type. activity: item: created_by_on: được tạo bởi %{user} vào %{datetime} @@ -2537,7 +2567,7 @@ vi: base: 'Lỗi tổng quan:' body: cơ thể category: thể loại - comment: bình luận + comment: Nhận xét comments: bình luận content: Nội dung color: màu sắc @@ -3332,6 +3362,24 @@ vi: general_text_false: 'false' gui_validation_error: 1 lỗi gui_validation_error_plural: "%{count} lỗi" + health_reports: + report_component: + checks: + failures: + other: "%{count} checks failed" + success: All checks passed + warnings: + other: "%{count} checks returned a warning" + summary: + failure: Some checks failed and the system does not work as expected. + success: All connections and systems are working as expected. + warning: Some checks returned a warning. This can lead to unexpected behaviour. + result_component: + status: + failed: Failed + passed: Passed + skipped: Skipped + warning: Warning homescreen: additional: projects: Các dự án có thể nhìn thấy mới nhất trong trường hợp này. @@ -3633,6 +3681,7 @@ vi: label_age: Tuổi label_ago: vài ngày trước label_all: tất cả + label_all_uppercase: All label_all_time: tất cả thời gian label_all_words: Tất cả các từ label_all_open_wps: Mở tất cả @@ -4160,6 +4209,7 @@ vi: label_role_new: Vai trò mới label_role_grantable: Vai trò có thể cấp label_role_plural: Vai trò + label_role_missing_permissions: "%{role} (missing required permissions)" label_role_search: Chỉ định vai trò cho các thành viên mới label_scm: SCM label_scroll_left: Cuộn sang trái @@ -4234,7 +4284,7 @@ vi: label_used_by: Được dùng bởi label_used_by_types: Được sử dụng bởi các loại label_used_in_projects: Được sử dụng trong các dự án - label_user: người dùng + label_user: Người dùng label_user_and_permission: Người dùng và quyền label_user_named: Người dùng %{name} label_user_activity_html: "%{value}'s activity" @@ -4383,7 +4433,7 @@ vi: you_have: bạn có logo_alt_text: biểu tượng mention: - subject: "%{user_name} đã nhắc đến bạn trong #%{id} - %{subject}" + subject: "%{user_name} mentioned you in %{id} - %{subject}" notification: center: Đến trung tâm thông báo see_in_center: Xem bình luận trong trung tâm thông báo @@ -4420,7 +4470,7 @@ vi: allowed_actions_html: 'You have the following permissions on this work package: %{allowed_actions}. This can change depending on your project role and permissions.' create_account: Để truy cập gói công việc này, bạn cần tạo và kích hoạt tài khoản trên %{instance}. open_work_package: Mở gói công việc - subject: 'Gói công việc #%{id} đã được chia sẻ với bạn' + subject: Work package %{id} was shared with you enterprise_text: Chia sẻ các gói công việc với người dùng không phải là thành viên của dự án. summary: user: "%{user} đã chia sẻ gói công việc với bạn với quyền %{role_rights}" @@ -4638,6 +4688,18 @@ vi: text_getting_started_description: Nhận tổng quan nhanh về quản lý dự án và cộng tác nhóm với OpenProject. Bạn có thể khởi động lại video này từ menu trợ giúp. welcome: Chào mừng đến với %{app_title} select_language: Vui lòng chọn ngôn ngữ của bạn + open_project: + common: + work_package_card_component: + menu: + label_actions: Work package actions + work_package_card_list_component: + header: + label_actions: Open menu + label_work_package_count: + zero: No work packages + one: "%{count} work package" + other: "%{count} work packages" permission_add_work_package_comments: Thêm nhận xét permission_add_work_packages: Thêm mới Gói công việc permission_add_messages: Đăng tin nhắn @@ -4655,7 +4717,6 @@ vi: permission_add_work_package_watchers: Thêm người theo dõi permission_assign_versions: Chỉ định phiên bản permission_browse_repository: Quyền truy cập chỉ đọc vào kho lưu trữ (duyệt và kiểm tra) - permission_change_wiki_parent_page: Thay đổi trang wiki cha permission_change_work_package_status: Thay đổi trạng thái gói công việc permission_change_work_package_status_explanation: Cho phép thay đổi trạng thái mà không có quyền Chỉnh sửa gói công việc permission_comment_news: Chú thích vào tin mới @@ -4670,8 +4731,6 @@ vi: permission_delete_own_messages: Xóa tin nhắn của tôi permission_delete_reportings: Xóa các báo cáo permission_delete_timelines: Xóa dòng thời gian - permission_delete_wiki_pages: Xóa các trang wiki - permission_delete_wiki_pages_attachments: Xóa tệp đính kèm permission_edit_work_package_comments: Kiểm duyệt bình luận permission_edit_work_package_comments_explanation: 'Thận trọng: Người dùng có quyền này có thể chỉnh sửa nhận xét của bất kỳ ai.' permission_edit_work_packages: Chỉnh sửa gói công việc @@ -4691,12 +4750,10 @@ vi: permission_edit_wiki_pages: Chỉnh sửa trang wiki permission_export_work_packages: Xuất gói công việc permission_export_projects: Dự án xuất khẩu - permission_export_wiki_pages: Xuất trang wiki permission_invite_members_by_email: Mời thành viên qua email permission_invite_members_by_email_explanation: 'Cho phép người dùng mời thành viên mới qua email. Người dùng được mời sẽ nhận được email có liên kết để đặt mật khẩu và kích hoạt tài khoản của họ. Phụ thuộc vào quyền quản lý thành viên ' - permission_list_attachments: Liệt kê tệp đính kèm permission_log_own_time: Đăng nhập thời gian riêng permission_log_time: Đăng nhập thời gian cho người dùng khác permission_manage_forums: Quản lý diễn đàn @@ -4711,7 +4768,6 @@ vi: permission_manage_subtasks: Quản lý phân cấp gói công việc permission_manage_versions: Quản lý phiên bản permission_manage_wiki: Quản lý wiki - permission_manage_wiki_menu: Quản lý menu wiki permission_manage_own_working_times: Manage own working times permission_manage_own_working_times_explanation: 'Allows users to manage their own working times, and personal non-working days. @@ -4721,8 +4777,6 @@ vi: ' permission_move_work_packages: Di chuyển gói công việc - permission_protect_wiki_pages: Bảo vệ các trang wiki - permission_rename_wiki_pages: Đổi tên các trang wiki permission_save_queries: Lưu các chế độ xem permission_search_project: Tìm kiếm dự án permission_select_custom_fields: Chọn trường tùy chỉnh @@ -5101,6 +5155,9 @@ vi: setting_mail_handler_body_delimiter_regex: Xén các email phù hợp với biểu thức này setting_mail_handler_ignore_filenames: Tập tin đính kèm mail bị bỏ qua setting_new_project_user_role_id: Vai trò được cấp cho người dùng không phải quản trị viên tạo dự án + setting_new_project_user_role_id_caption: 'Only roles that include the permissions to edit project attributes and to manage members are listed, so that the creator can complete the project setup. + + ' setting_new_project_send_confirmation_email: Gửi thông báo cho tác giả khi tạo dự án mới setting_new_project_notification_text: Văn bản thông báo setting_password_active_rules: Password requirements @@ -5519,6 +5576,7 @@ vi: text_project_identifier_format: Must start with a lowercase letter. Only lowercase letters (a-z), numbers, dashes and underscores are allowed. text_reassign: 'Phân công lại cho gói công việc:' text_regexp_multiline: 'Biểu thức được áp dụng ở chế độ đa dòng. Ví dụ: ^---\s+' + text_rename_wiki_page: Rename wiki page text_repository_usernames_mapping: |- Chọn hoặc cập nhật người dùng OpenProject được ánh xạ tới từng tên người dùng được tìm thấy trong nhật ký kho lưu trữ. Người dùng có cùng tên người dùng hoặc email của OpenProject và kho lưu trữ sẽ được tự động ánh xạ. @@ -5951,8 +6009,6 @@ vi: scopes: quyền successful_application_revocation: Thu hồi ứng dụng %{application_name} thành công. none_given: Không có ứng dụng OAuth nào được cấp quyền truy cập vào tài khoản người dùng của bạn. - x_active_tokens: - other: "%{count} mã thông báo hoạt động" flows: authorization_code: Luồng mã ủy quyền client_credentials: Luồng thông tin xác thực của khách hàng @@ -5962,8 +6018,9 @@ vi: client_credentials_impersonation_html: 'Theo mặc định, OpenProject cung cấp ủy quyền OAuth 2.0 thông qua %{authorization_code_flow_link}. Bạn có thể tùy ý bật %{client_credentials_flow_link}, nhưng bạn phải cung cấp người dùng mà yêu cầu của họ sẽ được thực hiện thay mặt họ. ' + confirm_revoke_my_application: + other: Do you really want to remove this application? This will revoke %{count} tokens active for it. authorization_error: Đã xảy ra lỗi ủy quyền. - revoke_my_application_confirmation: Bạn có thực sự muốn xóa ứng dụng này? Điều này sẽ thu hồi %{token_count} hoạt động cho nó. my_registered_applications: Ứng dụng OAuth đã đăng ký oauth_client: urn_connection_status: diff --git a/config/locales/crowdin/zh-CN.seeders.yml b/config/locales/crowdin/zh-CN.seeders.yml index 30e63f026bc..212a0e3692c 100644 --- a/config/locales/crowdin/zh-CN.seeders.yml +++ b/config/locales/crowdin/zh-CN.seeders.yml @@ -97,7 +97,7 @@ zh-CN: demo-project: name: 演示项目 status_explanation: 所有任务都按计划进行。相关人员均知晓各自任务。系统已完全建立。 - description: 这是对此演示 Scrum 项目目标的简短摘要。 + description: 这是对此演示项目目标的简短摘要。 news: item_0: title: 欢迎来到您的演示项目 @@ -201,7 +201,7 @@ zh-CN: scrum-project: name: Scrum 项目 status_explanation: 所有任务都按计划进行。相关人员均知晓各自任务。系统已完全建立。 - description: 这是对此演示 Scrum 项目目标的简短摘要。 + description: 这是对此演示Scrum项目目标的简短摘要。 news: item_0: title: 欢迎来到您的 Scrum 演示项目 diff --git a/config/locales/crowdin/zh-CN.yml b/config/locales/crowdin/zh-CN.yml index a45fd18c704..c2b1259dffe 100644 --- a/config/locales/crowdin/zh-CN.yml +++ b/config/locales/crowdin/zh-CN.yml @@ -89,7 +89,7 @@ zh-CN: token_caption: 要详细了解如何激活企业版,请查阅我们的[文档](docs_url)。 add_token: 上传企业版支持令牌 replace_token: 替换您当前的支持令牌 - order: 订购本地部署版的 Enterprise edition + order: 订购本地部署的 Enterprise edition paste: 粘贴您企业版的支持令牌 required_for_feature: 此功能仅限具激活的企业版支持令牌的订阅者使用。 enterprise_link: 如需了解详细信息,请单击此处。 @@ -411,7 +411,8 @@ zh-CN: error_special_characters: 不允许使用特殊字符 error_not_fully_uppercased: 必须为大写字母 error_in_use: 已用作另一个项目的有效标识名 - error_reserved: 由另一个项目的标识名历史保留 + error_used_in_past: 由另一个项目的标识名历史保留 + error_reserved_by_system: 保留为系统关键字 error_unknown: 需要手动检查 remaining_projects: other: "…其他 %{count} 个项目" @@ -450,8 +451,11 @@ zh-CN: ignore: 忽略更改 save: 保存更改并继续 role_selector: + title: 选择角色 label: 角色:%{role} no_role: 选择角色 + roles: + other: "%{count} roles selected" blankslate: title: 未配置状态过渡 description: 添加状态,以开始为此角色配置工作流 @@ -1092,6 +1096,8 @@ zh-CN: no_results_title_text: 目前没有消息报告。 no_results_content_text: 添加新闻项 roles: + edit: + default_for_new_projects_warning: 此角色被配置为创建项目的非管理员用户所具有的默认角色。请勿移除以下权限,否则项目创建者将无法完成新建项目的设置: permissions: section_check_all_label: 指定所有 %{module} 权限 section_uncheck_all_label: 取消指定所有 %{module} 权限 @@ -1697,7 +1703,7 @@ zh-CN: page: 页 row_count: 行数 column_count: 列数 - widgets: 微件 + widgets: 小部件 journal: notes: 备注 cause_type: Cause 类型 @@ -1976,6 +1982,29 @@ zh-CN: type: 类型 version: 版本 watcher: 关注者 + ordered_persisted_query_entity: + persisted_query: 持续查询 + entity: 实体 + position: 位置 + persisted_query: + name: 名称 + views: 视图 + filters: 筛选器 + orders: 订单 + selects: 选择 + persisted_view: + name: 名称 + query: 查询 + parent: 父视图 + public: 公开 + user_card_view: + secondary_info: 次要信息 + show_status_badge: 显示状态标识 + show_email: 显示邮箱 + tag_source: 标签来源 + tag_limit: 标签限制 + card_size: 卡片大小 + columns_per_row: 每行列数 errors: messages: accepted: 必须接受。 @@ -2475,6 +2504,7 @@ zh-CN: unsupported_storage_type: 不是支持的存储空间类型。 storage_error: 连接存储空间时出错。 invalid_input: 输入无效。 + invalid_child_for_parent: 不允许作为此视图类型的父项。 activity: item: created_by_on: '由 %{user} 创建于 %{datetime} ' @@ -3326,6 +3356,24 @@ zh-CN: general_text_false: 非 gui_validation_error: 1 错误 gui_validation_error_plural: "%{count} 错误" + health_reports: + report_component: + checks: + failures: + other: "%{count} 个检查失败" + success: 所有检查均通过 + warnings: + other: "%{count} 个检查返回警告" + summary: + failure: 某些检查失败,系统无法按预期运行。 + success: 所有连接和系统均按预期运行。 + warning: 某些检查返回警告。这可能导致出现异常行为。 + result_component: + status: + failed: 失败 + passed: 通过 + skipped: 已跳过 + warning: 警告 homescreen: additional: projects: 此 OpenProject 实例中的最新可见项目。 @@ -3627,6 +3675,7 @@ zh-CN: label_age: 年龄 label_ago: 天前 label_all: 所有 + label_all_uppercase: 全部 label_all_time: 所有的时间 label_all_words: 所有的词 label_all_open_wps: 全部打开 @@ -4146,7 +4195,7 @@ zh-CN: label_revision_id: 修订版本 %{value} label_revision_plural: 修订 label_roadmap: 路线图 - label_roadmap_edit: 编辑路线图%{name} + label_roadmap_edit: 编辑路线图 %{name} label_roadmap_due_in: "%{value} 到期" label_roadmap_no_work_packages: 该版本没有工作包。 label_roadmap_overdue: "%{value} 超时" @@ -4154,6 +4203,7 @@ zh-CN: label_role_new: 新的角色 label_role_grantable: 可授予的角色 label_role_plural: 角色 + label_role_missing_permissions: "%{role} (缺少所需的权限)" label_role_search: 将角色分配给新成员 label_scm: SCM label_scroll_left: 向左滚动 @@ -4377,7 +4427,7 @@ zh-CN: you_have: 您有 logo_alt_text: 徽标 mention: - subject: "%{user_name} 在 #%{id} - %{subject} 中提及了您" + subject: "%{user_name} 在 %{id} - %{subject} 中提及了您" notification: center: 前往通知中心 see_in_center: 在通知中心查看评论 @@ -4414,7 +4464,7 @@ zh-CN: allowed_actions_html: 您对此工作包具有以下权限:%{allowed_actions}。允许的操作根据您的项目角色和权限而变化。 create_account: 要访问此工作包,您需要创建一个 %{instance} 帐户。 open_work_package: 打开工作包 - subject: '工作包 #%{id} 已被分享给你' + subject: 工作包 %{id} 已与您共享 enterprise_text: 与非此项目成员的用户共享工作包。 summary: user: "%{user} 向您共享了一个拥有 %{role_rights} 权限的工作包" @@ -4627,6 +4677,18 @@ zh-CN: text_getting_started_description: 快速了解 OpenProject 的项目管理和团队协作。您可以从帮助菜单重新启动此视频。 welcome: 欢迎使用 %{app_title} select_language: 请选择您的语言 + open_project: + common: + work_package_card_component: + menu: + label_actions: 工作包操作 + work_package_card_list_component: + header: + label_actions: Open menu + label_work_package_count: + zero: No work packages + one: "%{count} work package" + other: "%{count} work packages" permission_add_work_package_comments: 添加评论 permission_add_work_packages: 添加工作包 permission_add_messages: 发布消息 @@ -4644,7 +4706,6 @@ zh-CN: permission_add_work_package_watchers: 添加关注者 permission_assign_versions: 分配版本 permission_browse_repository: 只读访问存储库 (浏览和检出) - permission_change_wiki_parent_page: 更改上级维基页面 permission_change_work_package_status: 更改工作包状态 permission_change_work_package_status_explanation: 允许在不编辑工作包权限的情况下更改状态 permission_comment_news: 评论新闻 @@ -4659,8 +4720,6 @@ zh-CN: permission_delete_own_messages: 删除自己的消息 permission_delete_reportings: 删除报告 permission_delete_timelines: 删除时间线 - permission_delete_wiki_pages: 删除维基页面 - permission_delete_wiki_pages_attachments: 删除附件 permission_edit_work_package_comments: 审核评论 permission_edit_work_package_comments_explanation: 注意:拥有此权限的用户可以编辑任何人的评论。 permission_edit_work_packages: 编辑工作包 @@ -4680,12 +4739,10 @@ zh-CN: permission_edit_wiki_pages: 编辑维基页面 permission_export_work_packages: 导出工作包 permission_export_projects: 导出项目 - permission_export_wiki_pages: 导出维基页面 permission_invite_members_by_email: 通过电子邮件邀请成员 permission_invite_members_by_email_explanation: '允许用户通过电子邮件邀请新会员。邀请用户将收到一封包含链接的电子邮件来设置密码并激活他们的帐户。 依赖于管理会员的权限 ' - permission_list_attachments: 列出附件 permission_log_own_time: 记录自己的时间 permission_log_time: 记录其他用户的时间 permission_manage_forums: 管理论坛 @@ -4700,7 +4757,6 @@ zh-CN: permission_manage_subtasks: 管理工作包层次结构 permission_manage_versions: 管理版本 permission_manage_wiki: 管理维基 - permission_manage_wiki_menu: 管理维基菜单 permission_manage_own_working_times: 管理自己的工作时间 permission_manage_own_working_times_explanation: '允许用户管理自己的工作时间和个人非工作日。 @@ -4710,8 +4766,6 @@ zh-CN: ' permission_move_work_packages: 移动工作包 - permission_protect_wiki_pages: 保护维基页面 - permission_rename_wiki_pages: 重命名维基页面 permission_save_queries: 保存界面设置 permission_search_project: 搜索项目 permission_select_custom_fields: 选择自定义字段 @@ -4906,7 +4960,7 @@ zh-CN: managed: 在 OpenProject 中创建新的存储库 storage: not_available: 磁盘存储开销不可用于此存储库。 - update_timeout: 在 N 分钟内保留存储库最后所需的磁盘空间信息。由于计算存储库所需的磁盘空间可能增加系统开销,增加该值可以减少性能影响。 + update_timeout: 在 N 分钟内保留存储库最后所需磁盘空间的信息。由于计算存储库所需的磁盘空间可能增加系统开销,增加该值可以减少性能影响。 oauth_application_details_html: 关闭此窗口后,将无法再次访问客户端密钥值。请将这些值复制到 Nextcloud OpenProject 集成设置中: oauth_application_details_link_text: 转到设置页面 setup_documentation_details: 如果您在配置新文件存储方面需要帮助,请查看文档: @@ -5080,6 +5134,9 @@ zh-CN: setting_mail_handler_body_delimiter_regex: 清空符合此正则表达式的电子邮件 setting_mail_handler_ignore_filenames: 忽略的邮件附件 setting_new_project_user_role_id: 给创建项目的非管理员用户的角色 + setting_new_project_user_role_id_caption: '有编辑项目属性和管理成员权限的角色才会被列出,以便创建者完成项目设置。 + + ' setting_new_project_send_confirmation_email: 创建新项目时向作者发送通知 setting_new_project_notification_text: 通知文本 setting_password_active_rules: 密码要求 @@ -5134,7 +5191,7 @@ zh-CN: setting_session_ttl_hint: 当设置的值低于5时,其作用类似于禁用。 setting_session_ttl_enabled: 会话过期 setting_start_of_week: 一周起始日 - setting_sys_api_enabled: 启用存储库管理网页服务 + setting_sys_api_enabled: 启用版本库管理 web 服务 setting_sys_api_description: 存储库管理网页服务提供了集成的,用户授权的存储库访问。 setting_time_format: 时间 setting_total_percent_complete_mode: 计算 完成% 层次结构总数 @@ -5496,6 +5553,7 @@ zh-CN: text_project_identifier_format: 必须以小写字母开头。仅允许使用小写字母 (a-z)、数字、 短划线和下划线。 text_reassign: '重新分配工作包:' text_regexp_multiline: 以多行模式应用正则表达式,如 ^---\s+ + text_rename_wiki_page: 重命名 Wiki 页面 text_repository_usernames_mapping: |- 选择或更新每个在存储库日志中发现的用户名所映射到的 OpenProject 用户。 使用相同 OpenProject 和存储库用户名或电子邮件的用户已被自动映射。 @@ -5620,7 +5678,7 @@ zh-CN: warning_user_limit_reached_admin_html: '添加额外的用户将超出当前限值。请[升级您的方案](upgrade_url),以确保外部用户能够访问此实例。 ' - warning_user_limit_reached_instructions: '您已达到用户限制(%{current}/%{max} 活跃用户)。请联系 sales@openproject.com 升级您的企业版计划以添加额外用户。 + warning_user_limit_reached_instructions: '您达到了用户限制(%{current}/%{max}活跃用户)。 请联系sales@openproject.com以升级您的Enterprise edition计划并添加其他用户。 ' warning_protocol_mismatch_html: '' @@ -5928,8 +5986,6 @@ zh-CN: scopes: 权限 successful_application_revocation: 已成功撤销应用程序 %{application_name}。 none_given: 没有 OAuth 应用程序已获得访问您的用户帐户的权限。 - x_active_tokens: - other: "%{count} 个有效令牌" flows: authorization_code: 授权码流 client_credentials: 客户端凭据流 @@ -5939,8 +5995,9 @@ zh-CN: client_credentials_impersonation_html: '默认情况下,OpenProject 通过 %{authorization_code_flow_link} 提供 OAuth 2.0 授权。您可以选择启用 %{client_credentials_flow_link},但您必须提供代其执行请求的用户。 ' + confirm_revoke_my_application: + other: 您真的要删除此应用程序吗?这将撤销 %{count} 已激活的令牌。 authorization_error: 发生了验证错误。 - revoke_my_application_confirmation: 确定想要移除此应用程序吗?这将撤销对其有效的 %{token_count}。 my_registered_applications: 已注册的 OAuth 应用程序 oauth_client: urn_connection_status: diff --git a/config/locales/crowdin/zh-TW.yml b/config/locales/crowdin/zh-TW.yml index 4de9f9fcbe4..27bf4e09cae 100644 --- a/config/locales/crowdin/zh-TW.yml +++ b/config/locales/crowdin/zh-TW.yml @@ -413,7 +413,8 @@ zh-TW: error_special_characters: Special characters not allowed error_not_fully_uppercased: Must be uppercase error_in_use: Already in use as another project's active handle - error_reserved: Reserved by another project's handle history + error_used_in_past: Reserved by another project's handle history + error_reserved_by_system: Reserved as a system keyword error_unknown: Needs manual review remaining_projects: other: "... %{count} more projects" @@ -452,8 +453,11 @@ zh-TW: ignore: Ignore changes save: Save changes and continue role_selector: + title: Select roles label: 'Role: %{role}' no_role: Select role + roles: + other: "%{count} roles selected" blankslate: title: No status transitions configured description: Add statuses to start configuring workflows for this role @@ -1095,6 +1099,8 @@ zh-TW: no_results_title_text: 目前沒有新消息報告 no_results_content_text: 新增一個消息 roles: + edit: + default_for_new_projects_warning: 'This role is configured as the default role given to non-admin users who create a project. Do not remove the following permissions, otherwise project creators will be unable to complete the setup of their newly created projects:' permissions: section_check_all_label: 指定所有 %{module} 權限 section_uncheck_all_label: 取消指定所有 %{module} 權限 @@ -1976,6 +1982,29 @@ zh-TW: type: 類型 version: 版本 watcher: 監看者 + ordered_persisted_query_entity: + persisted_query: Persisted query + entity: Entity + position: Position + persisted_query: + name: Name + views: Views + filters: Filters + orders: Orders + selects: Selects + persisted_view: + name: Name + query: Query + parent: Parent view + public: Public + user_card_view: + secondary_info: Secondary info + show_status_badge: Show status badge + show_email: Show email + tag_source: Tag source + tag_limit: Tag limit + card_size: Card size + columns_per_row: Columns per row errors: messages: accepted: 必須被接受 @@ -2475,6 +2504,7 @@ zh-TW: unsupported_storage_type: 不是支援的儲存類型。 storage_error: 儲存連線出錯。 invalid_input: 輸入無效。 + invalid_child_for_parent: is not allowed as a parent for this view type. activity: item: created_by_on: 由 %{user} 於 %{datetime} 新增 @@ -3324,6 +3354,24 @@ zh-TW: general_text_false: 否 gui_validation_error: 1 錯誤 gui_validation_error_plural: "%{count} 個錯誤" + health_reports: + report_component: + checks: + failures: + other: "%{count} checks failed" + success: All checks passed + warnings: + other: "%{count} checks returned a warning" + summary: + failure: Some checks failed and the system does not work as expected. + success: All connections and systems are working as expected. + warning: Some checks returned a warning. This can lead to unexpected behaviour. + result_component: + status: + failed: Failed + passed: Passed + skipped: Skipped + warning: Warning homescreen: additional: projects: 最新的可見專案 @@ -3625,6 +3673,7 @@ zh-TW: label_age: 年齡 label_ago: 天前 label_all: 所有 + label_all_uppercase: All label_all_time: 所有的時間 label_all_words: 所以的詞 label_all_open_wps: 所有「未關閉」工作套件 @@ -3831,7 +3880,7 @@ zh-TW: label_filter_add: 新增條件 label_filter_by: 篩選條件: label_filter_any_name_attribute: 名稱屬性 - label_filter_plural: 篩選條件 + label_filter_plural: 篩選器 label_filters_toggle: 顯示/隱藏篩選條件 label_float: 浮點數 label_folder: 資料夾 @@ -3845,8 +3894,8 @@ zh-TW: label_global_modules: 全域模組 label_global_roles: 全域角色 label_git_path: ".git 目錄的路徑" - label_greater_or_equal: 之前 - label_group_by: 分類 + label_greater_or_equal: ">=" + label_group_by: 分組依據 label_group_new: 新增群組 label_group: 群組 label_group_named: 群組名稱 %{name} @@ -3858,7 +3907,7 @@ zh-TW: label_hierarchy: 階層 label_hierarchy_leaf: 頁面結構頁 label_home: Home - label_subject_or_id: 名稱或 id + label_subject_or_id: 主旨或 id label_calendar_subscriptions: 訂閱行事曆 label_identifier: 識別碼 label_project_identifier: Project identifier @@ -3910,7 +3959,7 @@ zh-TW: label_latest_revision_plural: 最新版本 label_ldap_authentication: LDAP 認證 label_learn_more: 了解更多 - label_less_or_equal: 之後 + label_less_or_equal: "<=" label_less_than_ago: 幾天內 label_link_url: 連結(URL) label_list: 清單 @@ -4152,6 +4201,7 @@ zh-TW: label_role_new: 新增角色 label_role_grantable: 可授予的角色 label_role_plural: 角色 + label_role_missing_permissions: "%{role} (missing required permissions)" label_role_search: 為新成員分配角色 label_scm: SCM label_scroll_left: 向左捲動 @@ -4375,7 +4425,7 @@ zh-TW: you_have: 你擁有 logo_alt_text: 商標 mention: - subject: "%{user_name} 在「 #%{id} - %{subject} 」提到您" + subject: "%{user_name} mentioned you in %{id} - %{subject}" notification: center: 顯示通知中心 see_in_center: 詳見通知中心留言 @@ -4415,7 +4465,7 @@ zh-TW: allowed_actions_html: 'You have the following permissions on this work package: %{allowed_actions}. This can change depending on your project role and permissions.' create_account: 要存取此工作套件,您需要建立一個 %{instance} 帳戶。 open_work_package: 開啟工作套件 - subject: '有個工作套件 #%{id} 與您共同參與' + subject: Work package %{id} was shared with you enterprise_text: 與不是專案成員的使用者共同參與工作套件。 summary: user: '%{user} 將一個工作套件邀請您參與,權限:%{role_rights}"' @@ -4627,6 +4677,18 @@ zh-TW: text_getting_started_description: 快速瞭解 OpenProject 的項目管理和團隊協作。您可以從幫助菜單重新啓動此視頻。 welcome: 歡迎使用 %{app_title} select_language: 請選擇您的語言 + open_project: + common: + work_package_card_component: + menu: + label_actions: Work package actions + work_package_card_list_component: + header: + label_actions: Open menu + label_work_package_count: + zero: No work packages + one: "%{count} work package" + other: "%{count} work packages" permission_add_work_package_comments: 增加留言 permission_add_work_packages: 新增工作套件 permission_add_messages: 張貼訊息 @@ -4644,7 +4706,6 @@ zh-TW: permission_add_work_package_watchers: 新增監看者 permission_assign_versions: 指派版本 permission_browse_repository: 唯讀版本庫 (瀏覽和 Checkout) - permission_change_wiki_parent_page: 更改上層 Wiki 頁面 permission_change_work_package_status: 變更工作套件狀態 permission_change_work_package_status_explanation: 允許在無編輯工作套件權限的情況下更改狀態 permission_comment_news: 在「最新消息」留言 @@ -4659,8 +4720,6 @@ zh-TW: permission_delete_own_messages: 刪除自己張貼的訊息 permission_delete_reportings: 刪除報表 permission_delete_timelines: 刪除時間軸 - permission_delete_wiki_pages: 刪除維基頁面 - permission_delete_wiki_pages_attachments: 刪除附件 permission_edit_work_package_comments: 審閱留言 permission_edit_work_package_comments_explanation: 注意:擁有此權限的使用者可以編輯任何人的註解。 permission_edit_work_packages: 編輯工作套件 @@ -4680,12 +4739,10 @@ zh-TW: permission_edit_wiki_pages: 編輯維基頁面 permission_export_work_packages: 匯出工作套件 permission_export_projects: 匯出專案 - permission_export_wiki_pages: 匯出維基頁面 permission_invite_members_by_email: 透過電子郵件邀請會員 permission_invite_members_by_email_explanation: '允許使用者透過電子郵件邀請新會員。受邀的使用者會收到一封電子郵件,內含設定密碼和啟動帳戶的連結。取決於管理會員的權限 ' - permission_list_attachments: 列出附件 permission_log_own_time: 記錄個人耗時 permission_log_time: 紀錄他人耗時 permission_manage_forums: 管理討論區 @@ -4700,7 +4757,6 @@ zh-TW: permission_manage_subtasks: 管理工作套件階層 permission_manage_versions: 管理版本 permission_manage_wiki: 管理維基 - permission_manage_wiki_menu: 管理維基選單 permission_manage_own_working_times: Manage own working times permission_manage_own_working_times_explanation: 'Allows users to manage their own working times, and personal non-working days. @@ -4710,8 +4766,6 @@ zh-TW: ' permission_move_work_packages: 移動工作套件 - permission_protect_wiki_pages: 專案維基頁面 - permission_rename_wiki_pages: 重新命名維基頁面 permission_save_queries: 儲存版面 permission_search_project: 搜尋專案 permission_select_custom_fields: 選擇客製欄位 @@ -5086,6 +5140,9 @@ zh-TW: setting_mail_handler_body_delimiter_regex: 清空符合正規表達式的電子郵件 setting_mail_handler_ignore_filenames: 依附件名稱排除 setting_new_project_user_role_id: 非管理員用户新建專案時將被赋予的(在該專案中的)角色 + setting_new_project_user_role_id_caption: 'Only roles that include the permissions to edit project attributes and to manage members are listed, so that the creator can complete the project setup. + + ' setting_new_project_send_confirmation_email: 建立新專案時傳送通知給作者 setting_new_project_notification_text: 通知文字 setting_password_active_rules: Password requirements @@ -5506,6 +5563,7 @@ zh-TW: text_project_identifier_format: Must start with a lowercase letter. Only lowercase letters (a-z), numbers, dashes and underscores are allowed. text_reassign: 重新指派到工作套件: text_regexp_multiline: 這個正規表達式套用在多行模式。 e.g., ^---\s+ + text_rename_wiki_page: Rename wiki page text_repository_usernames_mapping: |- 選擇或更新與版本庫中的帳號所對應的OpenProject使用者。 版本庫中與OpenProject的使用者具有相同名稱或email將被自動對應。 @@ -5944,8 +6002,6 @@ zh-TW: scopes: 權限 successful_application_revocation: 已成功撤銷應用程序 %{application_name}。 none_given: 沒有 OAuth 應用程序已獲得訪問您的用戶帳戶的權限。 - x_active_tokens: - other: "%{count} 已啟用令牌(Token)" flows: authorization_code: 授權碼流程 client_credentials: 客戶端憑據流 @@ -5955,8 +6011,9 @@ zh-TW: client_credentials_impersonation_html: '默認情況下,OpenProject 通過 %{authorization_code_flow_link} 提供 OAuth 2.0 授權。您可以選擇啓用 %{client_credentials_flow_link},但您必須提供代其執行請求的用戶。 ' + confirm_revoke_my_application: + other: Do you really want to remove this application? This will revoke %{count} tokens active for it. authorization_error: 授權錯誤。 - revoke_my_application_confirmation: 確定想要移除此應用程序嗎?這將撤銷對其有效的 %{token_count}。 my_registered_applications: 已註冊的 OAuth 應用程式 oauth_client: urn_connection_status: diff --git a/config/locales/en.yml b/config/locales/en.yml index 06245c632ad..23f6b13c18a 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -431,7 +431,8 @@ en: error_special_characters: Special characters not allowed error_not_fully_uppercased: Must be uppercase error_in_use: Already in use as another project's active handle - error_reserved: Reserved by another project's handle history + error_used_in_past: Reserved by another project's handle history + error_reserved_by_system: Reserved as a system keyword error_unknown: Needs manual review remaining_projects: one: "... 1 more project" @@ -473,8 +474,12 @@ en: ignore: "Ignore changes" save: "Save changes and continue" role_selector: + title: "Select roles" label: "Role: %{role}" no_role: "Select role" + roles: + one: "One role selected" + other: "%{count} roles selected" blankslate: title: "No status transitions configured" description: "Add statuses to start configuring workflows for this role" @@ -1160,6 +1165,11 @@ en: no_results_content_text: Add a news item roles: + edit: + default_for_new_projects_warning: >- + This role is configured as the default role given to non-admin users who create a project. + Do not remove the following permissions, otherwise project creators will be unable to complete + the setup of their newly created projects: permissions: section_check_all_label: "Assign all %{module} permissions" section_uncheck_all_label: "Unassign all %{module} permissions" @@ -2083,6 +2093,29 @@ en: type: "Type" version: "Version" watcher: "Watcher" + ordered_persisted_query_entity: + persisted_query: "Persisted query" + entity: "Entity" + position: "Position" + persisted_query: + name: "Name" + views: "Views" + filters: "Filters" + orders: "Orders" + selects: "Selects" + persisted_view: + name: "Name" + query: "Query" + parent: "Parent view" + public: "Public" + user_card_view: + secondary_info: "Secondary info" + show_status_badge: "Show status badge" + show_email: "Show email" + tag_source: "Tag source" + tag_limit: "Tag limit" + card_size: "Card size" + columns_per_row: "Columns per row" errors: messages: @@ -2603,6 +2636,7 @@ en: unsupported_storage_type: "is not a supported storage type." storage_error: "There was an error with the storage connection." invalid_input: "The input is invalid." + invalid_child_for_parent: "is not allowed as a parent for this view type." activity: item: @@ -3513,6 +3547,27 @@ en: gui_validation_error: "1 error" gui_validation_error_plural: "%{count} errors" + health_reports: + report_component: + checks: + failures: + one: "%{count} check failed" + other: "%{count} checks failed" + success: All checks passed + warnings: + one: "%{count} check returned a warning" + other: "%{count} checks returned a warning" + summary: + failure: Some checks failed and the system does not work as expected. + success: All connections and systems are working as expected. + warning: Some checks returned a warning. This can lead to unexpected behaviour. + result_component: + status: + failed: Failed + passed: Passed + skipped: Skipped + warning: Warning + homescreen: additional: projects: "Newest visible projects in this instance." @@ -3829,6 +3884,7 @@ en: label_age: "Age" label_ago: "days ago" label_all: "all" + label_all_uppercase: "All" label_all_time: "all time" label_all_words: "All words" label_all_open_wps: "All open" @@ -4357,6 +4413,7 @@ en: label_role_new: "New role" label_role_grantable: "Grantable role" label_role_plural: "Roles" + label_role_missing_permissions: "%{role} (missing required permissions)" label_role_search: "Assign role to new members" label_scm: "SCM" label_scroll_left: "Scroll left" @@ -4583,7 +4640,7 @@ en: you_have: "You have" logo_alt_text: "Logo" mention: - subject: "%{user_name} mentioned you in #%{id} - %{subject}" + subject: "%{user_name} mentioned you in %{id} - %{subject}" notification: center: "To notification center" see_in_center: "See comment in notification center" @@ -4621,7 +4678,7 @@ en: allowed_actions_html: "You have the following permissions on this work package: %{allowed_actions}. This can change depending on your project role and permissions." create_account: "To access this work package, you will need to create and activate an account on %{instance}." open_work_package: "Open work package" - subject: "Work package #%{id} was shared with you" + subject: "Work package %{id} was shared with you" enterprise_text: "Share work packages with users who are not members of the project." summary: user: "%{user} shared a work package with you with %{role_rights} rights" @@ -4842,6 +4899,19 @@ en: welcome: "Welcome to %{app_title}" select_language: "Please select your language" + open_project: + common: + work_package_card_component: + menu: + label_actions: "Work package actions" + work_package_card_list_component: + header: + label_actions: "Open menu" + label_work_package_count: + zero: "No work packages" + one: "%{count} work package" + other: "%{count} work packages" + permission_add_work_package_comments: "Add comments" permission_add_work_packages: "Add work packages" permission_add_messages: "Post messages" @@ -4859,7 +4929,6 @@ en: permission_add_work_package_watchers: "Add watchers" permission_assign_versions: "Assign versions" permission_browse_repository: "Read-only access to repository (browse and checkout)" - permission_change_wiki_parent_page: "Change parent wiki page" permission_change_work_package_status: "Change work package status" permission_change_work_package_status_explanation: "Allows changing status without Edit work packages permission" permission_comment_news: "Comment news" @@ -4874,8 +4943,6 @@ en: permission_delete_own_messages: "Delete own messages" permission_delete_reportings: "Delete reportings" permission_delete_timelines: "Delete timelines" - permission_delete_wiki_pages: "Delete wiki pages" - permission_delete_wiki_pages_attachments: "Delete attachments" permission_edit_work_package_comments: "Moderate comments" permission_edit_work_package_comments_explanation: "Caution: Users with this permission are able to edit anyone's comment." permission_edit_work_packages: "Edit work packages" @@ -4895,13 +4962,11 @@ en: permission_edit_wiki_pages: "Edit wiki pages" permission_export_work_packages: "Export work packages" permission_export_projects: "Export projects" - permission_export_wiki_pages: "Export wiki pages" permission_invite_members_by_email: "Invite members by email" permission_invite_members_by_email_explanation: > Allows users to invite new members by email. Invited users will receive an email with a link to set their password and activate their account. Depends on the permission to manage members - permission_list_attachments: "List attachments" permission_log_own_time: "Log own time" permission_log_time: "Log time for other users" permission_manage_forums: "Manage forums" @@ -4916,7 +4981,6 @@ en: permission_manage_subtasks: "Manage work package hierarchies" permission_manage_versions: "Manage versions" permission_manage_wiki: "Manage wiki" - permission_manage_wiki_menu: "Manage wiki menu" permission_manage_own_working_times: "Manage own working times" permission_manage_own_working_times_explanation: > Allows users to manage their own working times, and personal non-working days. @@ -4924,8 +4988,6 @@ en: permission_manage_working_times_explanation: > Allows users to manage working times for all users, including personal non-working days. permission_move_work_packages: "Move work packages" - permission_protect_wiki_pages: "Protect wiki pages" - permission_rename_wiki_pages: "Rename wiki pages" permission_save_queries: "Save views" permission_search_project: "Search project" permission_select_custom_fields: "Select custom fields" @@ -5323,6 +5385,9 @@ en: setting_mail_handler_body_delimiter_regex: "Truncate emails matching this regex" setting_mail_handler_ignore_filenames: "Ignored mail attachments" setting_new_project_user_role_id: "Role given to a non-admin user who creates a project" + setting_new_project_user_role_id_caption: > + Only roles that include the permissions to edit project attributes and to manage members are listed, + so that the creator can complete the project setup. setting_new_project_send_confirmation_email: "Send notification to author when creating a new project" setting_new_project_notification_text: "Notification text" setting_password_active_rules: "Password requirements" @@ -5771,6 +5836,7 @@ en: text_project_identifier_format: "Must start with a lowercase letter. Only lowercase letters (a-z), numbers, dashes and underscores are allowed." text_reassign: "Reassign to work package:" text_regexp_multiline: 'The regex is applied in a multi-line mode. e.g., ^---\s+' + text_rename_wiki_page: "Rename wiki page" text_repository_usernames_mapping: "Select or update the OpenProject user mapped to each username found in the repository log.\nUsers with the same OpenProject and repository username or email are automatically mapped." text_status_changed_by_changeset: "Applied in changeset %{value}." text_table_difference_description: "In this table the single %{entries} are shown. You can view the difference between any two entries by first selecting the according checkboxes in the table. When clicking on the button below the table the differences are shown." @@ -6244,9 +6310,6 @@ en: scopes: "Permissions" successful_application_revocation: "Revocation of application %{application_name} successful." none_given: "No OAuth applications have been granted access to your user account." - x_active_tokens: - one: "one active token" - other: "%{count} active token" flows: authorization_code: "Authorization code flow" client_credentials: "Client credentials flow" @@ -6256,8 +6319,10 @@ en: client_credentials_impersonation_html: > By default, OpenProject provides OAuth 2.0 authorization via %{authorization_code_flow_link}. You can optionally enable %{client_credentials_flow_link}, but you must provide a user on whose behalf requests will be performed. + confirm_revoke_my_application: + one: "Do you really want to remove this application? This will revoke one token active for it." + other: "Do you really want to remove this application? This will revoke %{count} tokens active for it." authorization_error: "An authorization error has occurred." - revoke_my_application_confirmation: "Do you really want to remove this application? This will revoke %{token_count} active for it." my_registered_applications: "Registered OAuth applications" oauth_client: diff --git a/config/routes.rb b/config/routes.rb index bc9cf3b0732..0b53becfc63 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -1131,9 +1131,16 @@ Rails.application.routes.draw do work_package_split_view: true end + concern :with_split_create do + get "details/new", + action: :split_create, + as: :split_create, + work_package_split_create: true + end + resources :notifications, only: :index do collection do - concerns :with_split_view, base_route: :notifications_path + concerns :with_split_view post :mark_all_read resource :menu, module: :notifications, only: %i[show], as: :notifications_menu diff --git a/config/static_links.yml b/config/static_links.yml index 934980ae3f1..41255a2c525 100644 --- a/config/static_links.yml +++ b/config/static_links.yml @@ -184,10 +184,12 @@ sysadmin_docs: href: https://www.openproject.org/docs/system-admin-guide/users-permissions/roles-permissions/#roles-and-permissions ldap: href: https://www.openproject.org/docs/system-admin-guide/authentication/ldap-connections/ + ldap_group_sync: + href: https://www.openproject.org/docs/system-admin-guide/authentication/ldap-connections/ldap-group-synchronization/ mcp_resources: - href: https://www.openproject.org/docs/system-admin-guide/integrations/mcp-server/#resources + href: https://www.openproject.org/docs/system-admin-guide/integrations/mcp-server/#resources mcp_tools: - href: https://www.openproject.org/docs/system-admin-guide/integrations/mcp-server/#tools + href: https://www.openproject.org/docs/system-admin-guide/integrations/mcp-server/#tools oidc: href: https://www.openproject.org/docs/system-admin-guide/authentication/openid-providers/ oidc_acr_values: diff --git a/db/AGENTS.md b/db/AGENTS.md new file mode 100644 index 00000000000..adaa4a6aa8d --- /dev/null +++ b/db/AGENTS.md @@ -0,0 +1,29 @@ +# Database + +## Code Style + +### Database Migrations +- Follow Rails migration conventions +- Migrations are "squashed" between major releases (see `docs/development/migrations/`) + +## Commands + +### Local + +```bash +bundle exec rails g migration MigrationName # Generate a migration +bundle exec rails db:migrate # Run migrations +bundle exec rails db:rollback # Rollback last migration +bundle exec rails db:seed # Seed sample data +``` + +### Docker + +```bash +bin/compose exec backend bundle exec rails db:migrate # Run migrations +bin/compose exec backend bundle exec rails db:seed # Seed data +``` + +## Important Note + +**CRITICAL**: `config/database.yml` must NOT exist when using Docker (rename or delete it) diff --git a/db/CLAUDE.md b/db/CLAUDE.md new file mode 120000 index 00000000000..47dc3e3d863 --- /dev/null +++ b/db/CLAUDE.md @@ -0,0 +1 @@ +AGENTS.md \ No newline at end of file diff --git a/db/migrate/20260422081417_create_persisted_queries.rb b/db/migrate/20260422081417_create_persisted_queries.rb new file mode 100644 index 00000000000..35b28e08883 --- /dev/null +++ b/db/migrate/20260422081417_create_persisted_queries.rb @@ -0,0 +1,47 @@ +# frozen_string_literal: true + +#-- copyright +# OpenProject is an open source project management software. +# Copyright (C) the OpenProject GmbH +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License version 3. +# +# OpenProject is a fork of ChiliProject, which is a fork of Redmine. The copyright follows: +# Copyright (C) 2006-2013 Jean-Philippe Lang +# Copyright (C) 2010-2013 the ChiliProject Team +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +# See COPYRIGHT and LICENSE files for more details. +#++ + +class CreatePersistedQueries < ActiveRecord::Migration[8.1] + def change + create_table :persisted_queries do |t| + t.string :type + t.string :name, null: true + t.references :project, foreign_key: true, null: true + t.references :principal, foreign_key: { to_table: :users }, null: true + t.jsonb :filters, default: [] + t.jsonb :selects, default: [] + t.jsonb :orders, default: [] + + t.timestamps + + t.index :type + end + end +end diff --git a/db/migrate/20260422081810_create_persisted_views.rb b/db/migrate/20260422081810_create_persisted_views.rb new file mode 100644 index 00000000000..86712cf334e --- /dev/null +++ b/db/migrate/20260422081810_create_persisted_views.rb @@ -0,0 +1,48 @@ +# frozen_string_literal: true + +#-- copyright +# OpenProject is an open source project management software. +# Copyright (C) the OpenProject GmbH +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License version 3. +# +# OpenProject is a fork of ChiliProject, which is a fork of Redmine. The copyright follows: +# Copyright (C) 2006-2013 Jean-Philippe Lang +# Copyright (C) 2010-2013 the ChiliProject Team +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +# See COPYRIGHT and LICENSE files for more details. +#++ + +class CreatePersistedViews < ActiveRecord::Migration[8.1] + def change + create_table :persisted_views do |t| + t.string :type + t.string :name + t.references :project, foreign_key: true, null: true + t.references :principal, foreign_key: { to_table: :users }, null: true + t.references :query, polymorphic: true, null: true + t.references :parent, foreign_key: { to_table: :persisted_views }, null: true + t.jsonb :options, default: {}, null: false + t.boolean :public, default: false, null: false + + t.timestamps + + t.index :type + end + end +end diff --git a/db/migrate/20260422110809_create_ordered_persisted_query_entities.rb b/db/migrate/20260422110809_create_ordered_persisted_query_entities.rb new file mode 100644 index 00000000000..f162dd06dd1 --- /dev/null +++ b/db/migrate/20260422110809_create_ordered_persisted_query_entities.rb @@ -0,0 +1,47 @@ +# frozen_string_literal: true + +#-- copyright +# OpenProject is an open source project management software. +# Copyright (C) the OpenProject GmbH +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License version 3. +# +# OpenProject is a fork of ChiliProject, which is a fork of Redmine. The copyright follows: +# Copyright (C) 2006-2013 Jean-Philippe Lang +# Copyright (C) 2010-2013 the ChiliProject Team +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +# See COPYRIGHT and LICENSE files for more details. +#++ + +class CreateOrderedPersistedQueryEntities < ActiveRecord::Migration[8.1] + def change + create_table :ordered_persisted_query_entities do |t| # rubocop:disable Rails/CreateTableWithTimestamps + t.integer :position, null: false + t.references :persisted_query, + null: false, + foreign_key: { on_delete: :cascade } + t.references :entity, polymorphic: true, null: false + + t.index %i[persisted_query_id entity_type entity_id], + unique: true, + name: "index_ordered_pq_entities_on_query_and_entity" + t.index %i[persisted_query_id position], + name: "index_ordered_pq_entities_on_query_and_position" + end + end +end diff --git a/db/migrate/20260424094655_add_category_to_persisted_view.rb b/db/migrate/20260424094655_add_category_to_persisted_view.rb new file mode 100644 index 00000000000..faf108f1bcc --- /dev/null +++ b/db/migrate/20260424094655_add_category_to_persisted_view.rb @@ -0,0 +1,8 @@ +# frozen_string_literal: true + +class AddCategoryToPersistedView < ActiveRecord::Migration[8.1] + def change + add_column :persisted_views, :category, :string, null: true + add_index :persisted_views, :category + end +end diff --git a/db/migrate/20260428133700_create_health_reports.rb b/db/migrate/20260428133700_create_health_reports.rb new file mode 100644 index 00000000000..d0f11358640 --- /dev/null +++ b/db/migrate/20260428133700_create_health_reports.rb @@ -0,0 +1,39 @@ +# frozen_string_literal: true + +#-- copyright +# OpenProject is an open source project management software. +# Copyright (C) the OpenProject GmbH +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License version 3. +# +# OpenProject is a fork of ChiliProject, which is a fork of Redmine. The copyright follows: +# Copyright (C) 2006-2013 Jean-Philippe Lang +# Copyright (C) 2010-2013 the ChiliProject Team +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +# See COPYRIGHT and LICENSE files for more details. +#++ + +class CreateHealthReports < ActiveRecord::Migration[8.1] + def change + create_table :health_reports do |t| + t.belongs_to :subject, null: false, polymorphic: true, index: true + t.jsonb :results, null: false, default: {} + t.timestamps null: false + end + end +end diff --git a/db/migrate/20260505143842_add_index_good_jobs_finished_at_for_cleanup.rb b/db/migrate/20260505143842_add_index_good_jobs_finished_at_for_cleanup.rb new file mode 100644 index 00000000000..91f1f041fd0 --- /dev/null +++ b/db/migrate/20260505143842_add_index_good_jobs_finished_at_for_cleanup.rb @@ -0,0 +1,18 @@ +# frozen_string_literal: true + +class AddIndexGoodJobsFinishedAtForCleanup < ActiveRecord::Migration[8.1] + disable_ddl_transaction! + + def change + reversible do |dir| + dir.up do + # Ensure this incremental update migration is idempotent + # with monolithic install migration. + return if connection.index_exists? :good_jobs, [:finished_at], name: :index_good_jobs_jobs_on_finished_at_only + end + end + + add_index :good_jobs, [:finished_at], where: "finished_at IS NOT NULL", name: :index_good_jobs_jobs_on_finished_at_only, + algorithm: :concurrently + end +end diff --git a/db/migrate/20260505143843_remove_extraneous_finished_at_index.rb b/db/migrate/20260505143843_remove_extraneous_finished_at_index.rb new file mode 100644 index 00000000000..3acab83636d --- /dev/null +++ b/db/migrate/20260505143843_remove_extraneous_finished_at_index.rb @@ -0,0 +1,18 @@ +# frozen_string_literal: true + +class RemoveExtraneousFinishedAtIndex < ActiveRecord::Migration[8.1] + disable_ddl_transaction! + + def change + reversible do |dir| + dir.up do + # Ensure this incremental update migration is idempotent + # with monolithic install migration. + return unless connection.index_exists? :good_jobs, [:finished_at], name: :index_good_jobs_jobs_on_finished_at + end + end + + remove_index :good_jobs, [:finished_at], where: "retried_good_job_id IS NULL AND finished_at IS NOT NULL", + name: :index_good_jobs_jobs_on_finished_at, algorithm: :concurrently + end +end diff --git a/db/migrate/20260505143844_add_lock_type_to_good_jobs.rb b/db/migrate/20260505143844_add_lock_type_to_good_jobs.rb new file mode 100644 index 00000000000..048742008d1 --- /dev/null +++ b/db/migrate/20260505143844_add_lock_type_to_good_jobs.rb @@ -0,0 +1,7 @@ +# frozen_string_literal: true + +class AddLockTypeToGoodJobs < ActiveRecord::Migration[8.1] + def change + add_column :good_jobs, :lock_type, :integer, limit: 2 unless column_exists?(:good_jobs, :lock_type) + end +end diff --git a/db/migrate/20260505143845_add_index_good_jobs_for_candidate_dequeue_unlocked.rb b/db/migrate/20260505143845_add_index_good_jobs_for_candidate_dequeue_unlocked.rb new file mode 100644 index 00000000000..f6aeb417568 --- /dev/null +++ b/db/migrate/20260505143845_add_index_good_jobs_for_candidate_dequeue_unlocked.rb @@ -0,0 +1,14 @@ +# frozen_string_literal: true + +class AddIndexGoodJobsForCandidateDequeueUnlocked < ActiveRecord::Migration[8.1] + disable_ddl_transaction! + + def change + add_index :good_jobs, %i[priority scheduled_at id], + name: :index_good_jobs_for_candidate_dequeue_unlocked, + order: { priority: "ASC NULLS LAST", scheduled_at: :asc, id: :asc }, + where: "finished_at IS NULL AND locked_by_id IS NULL", + algorithm: :concurrently, + if_not_exists: true + end +end diff --git a/db/migrate/20260505143846_add_index_good_jobs_priority_scheduled_at.rb b/db/migrate/20260505143846_add_index_good_jobs_priority_scheduled_at.rb new file mode 100644 index 00000000000..e34e6e7bae6 --- /dev/null +++ b/db/migrate/20260505143846_add_index_good_jobs_priority_scheduled_at.rb @@ -0,0 +1,23 @@ +# frozen_string_literal: true + +class AddIndexGoodJobsPriorityScheduledAt < ActiveRecord::Migration[8.1] + disable_ddl_transaction! + + def change + reversible do |dir| + dir.up do + # Ensure this incremental update migration is idempotent + # with monolithic install migration. + return if connection.index_name_exists?(:good_jobs, "index_good_jobs_on_priority_scheduled_at_unfinished") && + connection.index_name_exists?(:good_jobs, "index_good_jobs_on_queue_name_priority_scheduled_at_unfinished") + end + end + + add_index :good_jobs, %i[priority scheduled_at id], + where: "finished_at IS NULL", name: "index_good_jobs_on_priority_scheduled_at_unfinished", + algorithm: :concurrently + add_index :good_jobs, %i[queue_name scheduled_at id], + where: "finished_at IS NULL", name: "index_good_jobs_on_queue_name_priority_scheduled_at_unfinished", + algorithm: :concurrently + end +end diff --git a/db/migrate/20260505143847_add_index_good_jobs_queue_name.rb b/db/migrate/20260505143847_add_index_good_jobs_queue_name.rb new file mode 100644 index 00000000000..4ef964402e1 --- /dev/null +++ b/db/migrate/20260505143847_add_index_good_jobs_queue_name.rb @@ -0,0 +1,12 @@ +# frozen_string_literal: true + +class AddIndexGoodJobsQueueName < ActiveRecord::Migration[8.1] + disable_ddl_transaction! + + def change + add_index :good_jobs, :queue_name, + name: :index_good_jobs_on_queue_name, + algorithm: :concurrently, + if_not_exists: true + end +end diff --git a/db/migrate/20260505143848_add_index_good_jobs_created_at.rb b/db/migrate/20260505143848_add_index_good_jobs_created_at.rb new file mode 100644 index 00000000000..34ce3acef29 --- /dev/null +++ b/db/migrate/20260505143848_add_index_good_jobs_created_at.rb @@ -0,0 +1,12 @@ +# frozen_string_literal: true + +class AddIndexGoodJobsCreatedAt < ActiveRecord::Migration[8.1] + disable_ddl_transaction! + + def change + add_index :good_jobs, :created_at, + name: :index_good_jobs_on_created_at, + algorithm: :concurrently, + if_not_exists: true + end +end diff --git a/db/migrate/20260505143849_add_index_good_jobs_discarded.rb b/db/migrate/20260505143849_add_index_good_jobs_discarded.rb new file mode 100644 index 00000000000..2052ed8b7e0 --- /dev/null +++ b/db/migrate/20260505143849_add_index_good_jobs_discarded.rb @@ -0,0 +1,14 @@ +# frozen_string_literal: true + +class AddIndexGoodJobsDiscarded < ActiveRecord::Migration[8.1] + disable_ddl_transaction! + + def change + add_index :good_jobs, :finished_at, + name: :index_good_jobs_on_discarded, + order: { finished_at: :desc }, + where: "finished_at IS NOT NULL AND error IS NOT NULL", + algorithm: :concurrently, + if_not_exists: true + end +end diff --git a/db/migrate/20260505143850_add_index_good_jobs_scheduled_at_and_queue_name.rb b/db/migrate/20260505143850_add_index_good_jobs_scheduled_at_and_queue_name.rb new file mode 100644 index 00000000000..00e3aa57fd3 --- /dev/null +++ b/db/migrate/20260505143850_add_index_good_jobs_scheduled_at_and_queue_name.rb @@ -0,0 +1,12 @@ +# frozen_string_literal: true + +class AddIndexGoodJobsScheduledAtAndQueueName < ActiveRecord::Migration[8.1] + disable_ddl_transaction! + + def change + add_index :good_jobs, %i[scheduled_at queue_name], + name: :index_good_jobs_on_scheduled_at_and_queue_name, + algorithm: :concurrently, + if_not_exists: true + end +end diff --git a/db/migrate/20260505143851_add_index_good_jobs_on_unfinished_or_errored.rb b/db/migrate/20260505143851_add_index_good_jobs_on_unfinished_or_errored.rb new file mode 100644 index 00000000000..265cae4ed2f --- /dev/null +++ b/db/migrate/20260505143851_add_index_good_jobs_on_unfinished_or_errored.rb @@ -0,0 +1,13 @@ +# frozen_string_literal: true + +class AddIndexGoodJobsOnUnfinishedOrErrored < ActiveRecord::Migration[8.1] + disable_ddl_transaction! + + def change + add_index :good_jobs, :id, + name: :index_good_jobs_on_unfinished_or_errored, + where: "finished_at IS NULL OR error IS NOT NULL", + algorithm: :concurrently, + if_not_exists: true + end +end diff --git a/docker-compose.yml b/docker-compose.yml index c7c9ad81806..fb409e6138d 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -42,7 +42,7 @@ x-op-backend: &backend OPENPROJECT_CACHE__MEMCACHE__SERVER: cache:11211 OPENPROJECT_RAILS__CACHE__STORE: file_store OPENPROJECT_RAILS__RELATIVE__URL__ROOT: "${OPENPROJECT_RAILS__RELATIVE__URL__ROOT:-}" - DATABASE_URL: postgresql://${DB_USERNAME:-postgres}:${DB_PASSWORD:-postgres}@${DB_HOST:-db}:${DB_PORT:-5432}/${DB_DATABASE:-openproject} + DATABASE_URL: postgresql://${DB_USERNAME:-postgres}:${DB_PASSWORD:-postgres}@${DB_HOST:-db}:${DB_PORT:-5432}/${DB_DATABASE:-openproject}?pool=100 OPENPROJECT_EDITION: ${OPENPROJECT_EDITION:-standard} OPENPROJECT_WEB_MAX__THREADS: 1 OPENPROJECT_WEB_MIN__THREADS: 1 diff --git a/docker/ci/entrypoint.sh b/docker/ci/entrypoint.sh index acddb089af7..4f9b3b5d681 100755 --- a/docker/ci/entrypoint.sh +++ b/docker/ci/entrypoint.sh @@ -156,22 +156,24 @@ setup_tests() { } run_units() { - shopt -s extglob + shopt -s extglob globstar nullglob reset_dbs - execute "time bundle exec turbo_tests --verbose -n $JOBS --runtime-log spec/support/runtime-logs/turbo_runtime_units.log {,modules/*/}spec/!(features)" + execute "time bundle exec turbo_tests --verbose -n $JOBS --runtime-log spec/support/runtime-logs/turbo_runtime_units.log {,modules/*/}spec/{!(features)/**/,}*_spec.rb" cleanup } run_features() { + shopt -s globstar nullglob run_background start_hocuspocus reset_dbs - execute "time bundle exec turbo_tests --verbose -n $JOBS --runtime-log spec/support/runtime-logs/turbo_runtime_features.log {,modules/*/}spec/features" + execute "time bundle exec turbo_tests --verbose -n $JOBS --runtime-log spec/support/runtime-logs/turbo_runtime_features.log {,modules/*/}spec/features/**/*_spec.rb" cleanup } run_all() { + shopt -s globstar nullglob reset_dbs - execute "time bundle exec turbo_tests --verbose -n $JOBS --runtime-log spec/support/runtime-logs/turbo_runtime_all.log {,modules/*/}spec" + execute "time bundle exec turbo_tests --verbose -n $JOBS --runtime-log spec/support/runtime-logs/turbo_runtime_all.log {,modules/*/}spec/**/*_spec.rb" cleanup } diff --git a/docker/dev/AGENTS.md b/docker/dev/AGENTS.md new file mode 100644 index 00000000000..f7492804b5a --- /dev/null +++ b/docker/dev/AGENTS.md @@ -0,0 +1,61 @@ +# Docker Development + +The Docker development environment uses configurations in `docker/dev/` and the `bin/compose` wrapper script. + +## Setup + +```bash +# Initial setup (first time only) +bin/compose setup # Installs backend and frontend dependencies + +# Starting services +bin/compose start # Start backend and frontend in background +bin/compose run # Start frontend in background, backend in foreground (for debugging with pry) + +# Running tests +bin/compose rspec spec/models/user_spec.rb # Run specific tests in backend-test container + +# Other operations +bin/compose reset # Remove all containers and volumes (requires setup again) +bin/compose # Pass any docker-compose command directly +``` + +## Important Notes + +- **CRITICAL**: `config/database.yml` must NOT exist when using Docker (rename or delete it) +- Most developers use a local `docker-compose.override.yml` for custom port mappings and configurations +- Copy `docker-compose.override.example.yml` to `docker-compose.override.yml` and customize as needed +- Default ports: Backend at http://localhost:3000 (or 4200 for frontend dev server) +- Services: `backend`, `frontend`, `worker`, `db`, `db-test`, `backend-test`, `cache` +- Persisted volumes: `pgdata`, `bundle`, `npm`, `tmp`, `opdata` (data survives container restarts) +- Docker build context: Uses Dockerfiles in `docker/dev/backend/` and `docker/dev/frontend/` + +## Commands Reference + +```bash +# Setup and lifecycle +bin/compose setup # Setup Docker environment (first time) +bin/compose start # Start all services in background +bin/compose run # Start frontend in background, backend in foreground +bin/compose reset # Remove all containers and volumes +bin/compose stop # Stop all services +bin/compose down # Stop and remove containers + +# Testing +bin/compose rspec spec/models/user_spec.rb # Run specific tests +bin/compose exec backend bundle exec rspec # Run tests directly in backend container + +# Development +bin/compose exec backend bundle exec rails console # Rails console +bin/compose logs backend # View backend logs +bin/compose logs -f backend # Follow backend logs +bin/compose ps # List running containers + +# Database +bin/compose exec backend bundle exec rails db:migrate # Run migrations +bin/compose exec backend bundle exec rails db:seed # Seed data + +# Direct docker-compose commands +bin/compose up -d # Start services +bin/compose restart backend # Restart backend service +``` diff --git a/docker/dev/CLAUDE.md b/docker/dev/CLAUDE.md new file mode 120000 index 00000000000..47dc3e3d863 --- /dev/null +++ b/docker/dev/CLAUDE.md @@ -0,0 +1 @@ +AGENTS.md \ No newline at end of file diff --git a/docker/dev/keycloak/docker-compose.yml b/docker/dev/keycloak/docker-compose.yml index 9c2f933ea8b..ce18dc99999 100644 --- a/docker/dev/keycloak/docker-compose.yml +++ b/docker/dev/keycloak/docker-compose.yml @@ -12,7 +12,7 @@ services: - POSTGRES_PASSWORD=keycloak keycloak: - image: quay.io/keycloak/keycloak:26.2 + image: quay.io/keycloak/keycloak:26.6 command: - "start-dev" - "--proxy-headers" diff --git a/docker/prod/entrypoint.sh b/docker/prod/entrypoint.sh index 0cc2e095162..d9697b635cd 100755 --- a/docker/prod/entrypoint.sh +++ b/docker/prod/entrypoint.sh @@ -49,17 +49,17 @@ if [ "$(id -u)" = '0' ]; then echo "-----> Setting PGVERSION=$PGVERSION PGBIN=$PGBIN PGCONF_FILE=$PGCONF_FILE" export PATH="$PGBIN:$PATH" - mkdir -p $APP_DATA_PATH/{files,git,svn} + mkdir -p "$APP_DATA_PATH"/{files,git,svn} # The $APP_DATA_PATH may be hosted on a NAS that creates snapshots (or a btrfs filesystem). In such a case, the .snapshot folder cannot be touched. - find $APP_DATA_PATH | grep -v .snapshot | xargs -n 1 chown $APP_USER:$APP_USER + find "$APP_DATA_PATH" -path '*/.snapshot*' -prune -o -exec chown "$APP_USER:$APP_USER" {} + if [ -d /etc/apache2/sites-enabled ]; then - chown -R $APP_USER:$APP_USER /etc/apache2/sites-enabled + chown -R "$APP_USER:$APP_USER" /etc/apache2/sites-enabled echo "OpenProject currently expects to be reached on the following domain: ${SERVER_NAME:=localhost}, which does not seem to be how your installation is configured." > /var/www/html/index.html echo "If you are an administrator, please ensure you have correctly set the SERVER_NAME variable when launching your container." >> /var/www/html/index.html fi # Clean up any dangling PID file - rm -f $APP_PATH/tmp/pids/* + rm -f "$APP_PATH"/tmp/pids/* # Clean up a dangling PID file of apache if [ -e "$APACHE_PIDFILE" ]; then diff --git a/docs/installation-and-operations/configuration/README.md b/docs/installation-and-operations/configuration/README.md index fc6ac60120c..3b2121878a9 100644 --- a/docs/installation-and-operations/configuration/README.md +++ b/docs/installation-and-operations/configuration/README.md @@ -715,6 +715,26 @@ To disable rendering the badge, uncheck the setting at Administration > Syste OPENPROJECT_SECURITY__BADGE__DISPLAYED="false" ``` +### Content Security Policy image sources + +Configure the allowed sources for the `img-src` CSP directive. + +*default: `["*", "data:", "blob:"]`* + +OpenProject always adds `'self'` and `rails_asset_host` (if configured) to `img-src` automatically, so same-origin and asset-hosted images remain allowed even if not listed in this setting. + +Example to only allow secure remote images (plus data/blob): + +```yaml +OPENPROJECT_CSP__IMG__SRC="https: data: blob:" +``` + +Example to restrict to specific hosts: + +```yaml +OPENPROJECT_CSP__IMG__SRC="https://cdn.example.com https://images.example.com data: blob:" +``` + ### Cache configuration options diff --git a/docs/installation-and-operations/configuration/environment/README.md b/docs/installation-and-operations/configuration/environment/README.md index 1f6ab3c5327..f4772257e3b 100644 --- a/docs/installation-and-operations/configuration/environment/README.md +++ b/docs/installation-and-operations/configuration/environment/README.md @@ -180,6 +180,7 @@ OPENPROJECT_COST__REPORTING__CACHE__FILTER__CLASSES (default=true) OPENPROJECT_COSTS__CURRENCY (default="EUR") Currency OPENPROJECT_COSTS__CURRENCY__FORMAT (default="%n %u") Format of currency OPENPROJECT_CROSS__PROJECT__WORK__PACKAGE__RELATIONS (default=true) Allow cross-project work package relations +OPENPROJECT_CSP__IMG__SRC (default=["*", "data:", "blob:"]) Allowed sources for the CSP img-src directive. OPENPROJECT_DATABASE__CIPHER__KEY (default=nil) Encryption key for repository credentials OPENPROJECT_DATE__FORMAT (default=nil) Date OPENPROJECT_DAYS__PER__MONTH (default=20) This will define what is considered a “month” when displaying duration in a more natural way (for example, if a month is 20 days, 60 days would be 3 months. diff --git a/extensions/op-blocknote-hocuspocus/package-lock.json b/extensions/op-blocknote-hocuspocus/package-lock.json index 7fc972ded74..396522626f3 100644 --- a/extensions/op-blocknote-hocuspocus/package-lock.json +++ b/extensions/op-blocknote-hocuspocus/package-lock.json @@ -18,7 +18,7 @@ "devDependencies": { "@blocknote/core": "^0.44.2", "@eslint/js": "^9.35.0", - "@eslint/json": "^0.14.0", + "@eslint/json": "^1.2.0", "@stylistic/eslint-plugin": "^5.3.1", "@types/node": "^25.0.2", "eslint": "^9.35.0", @@ -317,13 +317,12 @@ "license": "MIT" }, "node_modules/@esbuild/aix-ppc64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.12.tgz", - "integrity": "sha512-Hhmwd6CInZ3dwpuGTF8fJG6yoWmsToE+vYgD4nytZVxcu1ulHpUQRAB1UJ8+N1Am3Mz4+xOByoQoSZf4D+CpkA==", + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.27.7.tgz", + "integrity": "sha512-EKX3Qwmhz1eMdEJokhALr0YiD0lhQNwDqkPYyPhiSwKrh7/4KRjQc04sZ8db+5DVVnZ1LmbNDI1uAMPEUBnQPg==", "cpu": [ "ppc64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -334,13 +333,12 @@ } }, "node_modules/@esbuild/android-arm": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.12.tgz", - "integrity": "sha512-VJ+sKvNA/GE7Ccacc9Cha7bpS8nyzVv0jdVgwNDaR4gDMC/2TTRc33Ip8qrNYUcpkOHUT5OZ0bUcNNVZQ9RLlg==", + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.27.7.tgz", + "integrity": "sha512-jbPXvB4Yj2yBV7HUfE2KHe4GJX51QplCN1pGbYjvsyCZbQmies29EoJbkEc+vYuU5o45AfQn37vZlyXy4YJ8RQ==", "cpu": [ "arm" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -351,13 +349,12 @@ } }, "node_modules/@esbuild/android-arm64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.12.tgz", - "integrity": "sha512-6AAmLG7zwD1Z159jCKPvAxZd4y/VTO0VkprYy+3N2FtJ8+BQWFXU+OxARIwA46c5tdD9SsKGZ/1ocqBS/gAKHg==", + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.27.7.tgz", + "integrity": "sha512-62dPZHpIXzvChfvfLJow3q5dDtiNMkwiRzPylSCfriLvZeq0a1bWChrGx/BbUbPwOrsWKMn8idSllklzBy+dgQ==", "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -368,13 +365,12 @@ } }, "node_modules/@esbuild/android-x64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.12.tgz", - "integrity": "sha512-5jbb+2hhDHx5phYR2By8GTWEzn6I9UqR11Kwf22iKbNpYrsmRB18aX/9ivc5cabcUiAT/wM+YIZ6SG9QO6a8kg==", + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.27.7.tgz", + "integrity": "sha512-x5VpMODneVDb70PYV2VQOmIUUiBtY3D3mPBG8NxVk5CogneYhkR7MmM3yR/uMdITLrC1ml/NV1rj4bMJuy9MCg==", "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -385,13 +381,12 @@ } }, "node_modules/@esbuild/darwin-arm64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.12.tgz", - "integrity": "sha512-N3zl+lxHCifgIlcMUP5016ESkeQjLj/959RxxNYIthIg+CQHInujFuXeWbWMgnTo4cp5XVHqFPmpyu9J65C1Yg==", + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.27.7.tgz", + "integrity": "sha512-5lckdqeuBPlKUwvoCXIgI2D9/ABmPq3Rdp7IfL70393YgaASt7tbju3Ac+ePVi3KDH6N2RqePfHnXkaDtY9fkw==", "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -402,13 +397,12 @@ } }, "node_modules/@esbuild/darwin-x64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.12.tgz", - "integrity": "sha512-HQ9ka4Kx21qHXwtlTUVbKJOAnmG1ipXhdWTmNXiPzPfWKpXqASVcWdnf2bnL73wgjNrFXAa3yYvBSd9pzfEIpA==", + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.27.7.tgz", + "integrity": "sha512-rYnXrKcXuT7Z+WL5K980jVFdvVKhCHhUwid+dDYQpH+qu+TefcomiMAJpIiC2EM3Rjtq0sO3StMV/+3w3MyyqQ==", "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -419,13 +413,12 @@ } }, "node_modules/@esbuild/freebsd-arm64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.12.tgz", - "integrity": "sha512-gA0Bx759+7Jve03K1S0vkOu5Lg/85dou3EseOGUes8flVOGxbhDDh/iZaoek11Y8mtyKPGF3vP8XhnkDEAmzeg==", + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.27.7.tgz", + "integrity": "sha512-B48PqeCsEgOtzME2GbNM2roU29AMTuOIN91dsMO30t+Ydis3z/3Ngoj5hhnsOSSwNzS+6JppqWsuhTp6E82l2w==", "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -436,13 +429,12 @@ } }, "node_modules/@esbuild/freebsd-x64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.12.tgz", - "integrity": "sha512-TGbO26Yw2xsHzxtbVFGEXBFH0FRAP7gtcPE7P5yP7wGy7cXK2oO7RyOhL5NLiqTlBh47XhmIUXuGciXEqYFfBQ==", + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.27.7.tgz", + "integrity": "sha512-jOBDK5XEjA4m5IJK3bpAQF9/Lelu/Z9ZcdhTRLf4cajlB+8VEhFFRjWgfy3M1O4rO2GQ/b2dLwCUGpiF/eATNQ==", "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -453,13 +445,12 @@ } }, "node_modules/@esbuild/linux-arm": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.12.tgz", - "integrity": "sha512-lPDGyC1JPDou8kGcywY0YILzWlhhnRjdof3UlcoqYmS9El818LLfJJc3PXXgZHrHCAKs/Z2SeZtDJr5MrkxtOw==", + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.27.7.tgz", + "integrity": "sha512-RkT/YXYBTSULo3+af8Ib0ykH8u2MBh57o7q/DAs3lTJlyVQkgQvlrPTnjIzzRPQyavxtPtfg0EopvDyIt0j1rA==", "cpu": [ "arm" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -470,13 +461,12 @@ } }, "node_modules/@esbuild/linux-arm64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.12.tgz", - "integrity": "sha512-8bwX7a8FghIgrupcxb4aUmYDLp8pX06rGh5HqDT7bB+8Rdells6mHvrFHHW2JAOPZUbnjUpKTLg6ECyzvas2AQ==", + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.27.7.tgz", + "integrity": "sha512-RZPHBoxXuNnPQO9rvjh5jdkRmVizktkT7TCDkDmQ0W2SwHInKCAV95GRuvdSvA7w4VMwfCjUiPwDi0ZO6Nfe9A==", "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -487,13 +477,12 @@ } }, "node_modules/@esbuild/linux-ia32": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.12.tgz", - "integrity": "sha512-0y9KrdVnbMM2/vG8KfU0byhUN+EFCny9+8g202gYqSSVMonbsCfLjUO+rCci7pM0WBEtz+oK/PIwHkzxkyharA==", + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.27.7.tgz", + "integrity": "sha512-GA48aKNkyQDbd3KtkplYWT102C5sn/EZTY4XROkxONgruHPU72l+gW+FfF8tf2cFjeHaRbWpOYa/uRBz/Xq1Pg==", "cpu": [ "ia32" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -504,13 +493,12 @@ } }, "node_modules/@esbuild/linux-loong64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.12.tgz", - "integrity": "sha512-h///Lr5a9rib/v1GGqXVGzjL4TMvVTv+s1DPoxQdz7l/AYv6LDSxdIwzxkrPW438oUXiDtwM10o9PmwS/6Z0Ng==", + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.27.7.tgz", + "integrity": "sha512-a4POruNM2oWsD4WKvBSEKGIiWQF8fZOAsycHOt6JBpZ+JN2n2JH9WAv56SOyu9X5IqAjqSIPTaJkqN8F7XOQ5Q==", "cpu": [ "loong64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -521,13 +509,12 @@ } }, "node_modules/@esbuild/linux-mips64el": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.12.tgz", - "integrity": "sha512-iyRrM1Pzy9GFMDLsXn1iHUm18nhKnNMWscjmp4+hpafcZjrr2WbT//d20xaGljXDBYHqRcl8HnxbX6uaA/eGVw==", + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.27.7.tgz", + "integrity": "sha512-KabT5I6StirGfIz0FMgl1I+R1H73Gp0ofL9A3nG3i/cYFJzKHhouBV5VWK1CSgKvVaG4q1RNpCTR2LuTVB3fIw==", "cpu": [ "mips64el" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -538,13 +525,12 @@ } }, "node_modules/@esbuild/linux-ppc64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.12.tgz", - "integrity": "sha512-9meM/lRXxMi5PSUqEXRCtVjEZBGwB7P/D4yT8UG/mwIdze2aV4Vo6U5gD3+RsoHXKkHCfSxZKzmDssVlRj1QQA==", + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.27.7.tgz", + "integrity": "sha512-gRsL4x6wsGHGRqhtI+ifpN/vpOFTQtnbsupUF5R5YTAg+y/lKelYR1hXbnBdzDjGbMYjVJLJTd2OFmMewAgwlQ==", "cpu": [ "ppc64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -555,13 +541,12 @@ } }, "node_modules/@esbuild/linux-riscv64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.12.tgz", - "integrity": "sha512-Zr7KR4hgKUpWAwb1f3o5ygT04MzqVrGEGXGLnj15YQDJErYu/BGg+wmFlIDOdJp0PmB0lLvxFIOXZgFRrdjR0w==", + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.27.7.tgz", + "integrity": "sha512-hL25LbxO1QOngGzu2U5xeXtxXcW+/GvMN3ejANqXkxZ/opySAZMrc+9LY/WyjAan41unrR3YrmtTsUpwT66InQ==", "cpu": [ "riscv64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -572,13 +557,12 @@ } }, "node_modules/@esbuild/linux-s390x": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.12.tgz", - "integrity": "sha512-MsKncOcgTNvdtiISc/jZs/Zf8d0cl/t3gYWX8J9ubBnVOwlk65UIEEvgBORTiljloIWnBzLs4qhzPkJcitIzIg==", + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.27.7.tgz", + "integrity": "sha512-2k8go8Ycu1Kb46vEelhu1vqEP+UeRVj2zY1pSuPdgvbd5ykAw82Lrro28vXUrRmzEsUV0NzCf54yARIK8r0fdw==", "cpu": [ "s390x" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -589,13 +573,12 @@ } }, "node_modules/@esbuild/linux-x64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.12.tgz", - "integrity": "sha512-uqZMTLr/zR/ed4jIGnwSLkaHmPjOjJvnm6TVVitAa08SLS9Z0VM8wIRx7gWbJB5/J54YuIMInDquWyYvQLZkgw==", + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.27.7.tgz", + "integrity": "sha512-hzznmADPt+OmsYzw1EE33ccA+HPdIqiCRq7cQeL1Jlq2gb1+OyWBkMCrYGBJ+sxVzve2ZJEVeePbLM2iEIZSxA==", "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -606,13 +589,12 @@ } }, "node_modules/@esbuild/netbsd-arm64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.12.tgz", - "integrity": "sha512-xXwcTq4GhRM7J9A8Gv5boanHhRa/Q9KLVmcyXHCTaM4wKfIpWkdXiMog/KsnxzJ0A1+nD+zoecuzqPmCRyBGjg==", + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.27.7.tgz", + "integrity": "sha512-b6pqtrQdigZBwZxAn1UpazEisvwaIDvdbMbmrly7cDTMFnw/+3lVxxCTGOrkPVnsYIosJJXAsILG9XcQS+Yu6w==", "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -623,13 +605,12 @@ } }, "node_modules/@esbuild/netbsd-x64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.12.tgz", - "integrity": "sha512-Ld5pTlzPy3YwGec4OuHh1aCVCRvOXdH8DgRjfDy/oumVovmuSzWfnSJg+VtakB9Cm0gxNO9BzWkj6mtO1FMXkQ==", + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.27.7.tgz", + "integrity": "sha512-OfatkLojr6U+WN5EDYuoQhtM+1xco+/6FSzJJnuWiUw5eVcicbyK3dq5EeV/QHT1uy6GoDhGbFpprUiHUYggrw==", "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -640,13 +621,12 @@ } }, "node_modules/@esbuild/openbsd-arm64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.12.tgz", - "integrity": "sha512-fF96T6KsBo/pkQI950FARU9apGNTSlZGsv1jZBAlcLL1MLjLNIWPBkj5NlSz8aAzYKg+eNqknrUJ24QBybeR5A==", + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.27.7.tgz", + "integrity": "sha512-AFuojMQTxAz75Fo8idVcqoQWEHIXFRbOc1TrVcFSgCZtQfSdc1RXgB3tjOn/krRHENUB4j00bfGjyl2mJrU37A==", "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -657,13 +637,12 @@ } }, "node_modules/@esbuild/openbsd-x64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.12.tgz", - "integrity": "sha512-MZyXUkZHjQxUvzK7rN8DJ3SRmrVrke8ZyRusHlP+kuwqTcfWLyqMOE3sScPPyeIXN/mDJIfGXvcMqCgYKekoQw==", + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.27.7.tgz", + "integrity": "sha512-+A1NJmfM8WNDv5CLVQYJ5PshuRm/4cI6WMZRg1by1GwPIQPCTs1GLEUHwiiQGT5zDdyLiRM/l1G0Pv54gvtKIg==", "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -674,13 +653,12 @@ } }, "node_modules/@esbuild/openharmony-arm64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.25.12.tgz", - "integrity": "sha512-rm0YWsqUSRrjncSXGA7Zv78Nbnw4XL6/dzr20cyrQf7ZmRcsovpcRBdhD43Nuk3y7XIoW2OxMVvwuRvk9XdASg==", + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.27.7.tgz", + "integrity": "sha512-+KrvYb/C8zA9CU/g0sR6w2RBw7IGc5J2BPnc3dYc5VJxHCSF1yNMxTV5LQ7GuKteQXZtspjFbiuW5/dOj7H4Yw==", "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -691,13 +669,12 @@ } }, "node_modules/@esbuild/sunos-x64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.12.tgz", - "integrity": "sha512-3wGSCDyuTHQUzt0nV7bocDy72r2lI33QL3gkDNGkod22EsYl04sMf0qLb8luNKTOmgF/eDEDP5BFNwoBKH441w==", + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.27.7.tgz", + "integrity": "sha512-ikktIhFBzQNt/QDyOL580ti9+5mL/YZeUPKU2ivGtGjdTYoqz6jObj6nOMfhASpS4GU4Q/Clh1QtxWAvcYKamA==", "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -708,13 +685,12 @@ } }, "node_modules/@esbuild/win32-arm64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.12.tgz", - "integrity": "sha512-rMmLrur64A7+DKlnSuwqUdRKyd3UE7oPJZmnljqEptesKM8wx9J8gx5u0+9Pq0fQQW8vqeKebwNXdfOyP+8Bsg==", + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.27.7.tgz", + "integrity": "sha512-7yRhbHvPqSpRUV7Q20VuDwbjW5kIMwTHpptuUzV+AA46kiPze5Z7qgt6CLCK3pWFrHeNfDd1VKgyP4O+ng17CA==", "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -725,13 +701,12 @@ } }, "node_modules/@esbuild/win32-ia32": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.12.tgz", - "integrity": "sha512-HkqnmmBoCbCwxUKKNPBixiWDGCpQGVsrQfJoVGYLPT41XWF8lHuE5N6WhVia2n4o5QK5M4tYr21827fNhi4byQ==", + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.27.7.tgz", + "integrity": "sha512-SmwKXe6VHIyZYbBLJrhOoCJRB/Z1tckzmgTLfFYOfpMAx63BJEaL9ExI8x7v0oAO3Zh6D/Oi1gVxEYr5oUCFhw==", "cpu": [ "ia32" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -742,13 +717,12 @@ } }, "node_modules/@esbuild/win32-x64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.12.tgz", - "integrity": "sha512-alJC0uCZpTFrSL0CCDjcgleBXPnCrEAhTBILpeAp7M/OFgoqtAetfBzX0xM00MUsVVPpVjlPuMbREqnZCXaTnA==", + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.27.7.tgz", + "integrity": "sha512-56hiAJPhwQ1R4i+21FVF7V8kSD5zZTdHcVuRFMW0hn753vVfQN8xlx4uOPT4xoGH0Z/oVATuR82AiqSTDIpaHg==", "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -892,19 +866,46 @@ } }, "node_modules/@eslint/json": { - "version": "0.14.0", - "resolved": "https://registry.npmjs.org/@eslint/json/-/json-0.14.0.tgz", - "integrity": "sha512-rvR/EZtvUG3p9uqrSmcDJPYSH7atmWr0RnFWN6m917MAPx82+zQgPUmDu0whPFG6XTyM0vB/hR6c1Q63OaYtCQ==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@eslint/json/-/json-1.2.0.tgz", + "integrity": "sha512-CEFEyNgvzu8zn5QwVYDg3FaG+ZKUeUsNYitFpMYJAqoAlnw68EQgNbUfheSmexZr4n0wZPrAkPLuvsLaXO6wRw==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@eslint/core": "^0.17.0", - "@eslint/plugin-kit": "^0.4.1", + "@eslint/core": "^1.1.1", + "@eslint/plugin-kit": "^0.6.1", "@humanwhocodes/momoa": "^3.3.10", "natural-compare": "^1.4.0" }, "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + "node": "^20.19.0 || ^22.13.0 || >=24" + } + }, + "node_modules/@eslint/json/node_modules/@eslint/core": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-1.2.1.tgz", + "integrity": "sha512-MwcE1P+AZ4C6DWlpin/OmOA54mmIZ/+xZuJiQd4SyB29oAJjN30UW9wkKNptW2ctp4cEsvhlLY/CsQ1uoHDloQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@types/json-schema": "^7.0.15" + }, + "engines": { + "node": "^20.19.0 || ^22.13.0 || >=24" + } + }, + "node_modules/@eslint/json/node_modules/@eslint/plugin-kit": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.6.1.tgz", + "integrity": "sha512-iH1B076HoAshH1mLpHMgwdGeTs0CYwL0SPMkGuSebZrwBp16v415e9NZXg2jtrqPVQjf6IANe2Vtlr5KswtcZQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/core": "^1.1.1", + "levn": "^0.4.1" + }, + "engines": { + "node": "^20.19.0 || ^22.13.0 || >=24" } }, "node_modules/@eslint/object-schema": { @@ -3093,10 +3094,9 @@ } }, "node_modules/esbuild": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.12.tgz", - "integrity": "sha512-bbPBYYrtZbkt6Os6FiTLCTFxvq4tt3JKall1vRwshA3fdVztsLAatFaZobhkBC8/BrPetoa0oksYoKXoG4ryJg==", - "dev": true, + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.27.7.tgz", + "integrity": "sha512-IxpibTjyVnmrIQo5aqNpCgoACA/dTKLTlhMHihVHhdkxKyPO1uBBthumT0rdHmcsk9uMonIWS0m4FljWzILh3w==", "hasInstallScript": true, "license": "MIT", "bin": { @@ -3106,32 +3106,32 @@ "node": ">=18" }, "optionalDependencies": { - "@esbuild/aix-ppc64": "0.25.12", - "@esbuild/android-arm": "0.25.12", - "@esbuild/android-arm64": "0.25.12", - "@esbuild/android-x64": "0.25.12", - "@esbuild/darwin-arm64": "0.25.12", - "@esbuild/darwin-x64": "0.25.12", - "@esbuild/freebsd-arm64": "0.25.12", - "@esbuild/freebsd-x64": "0.25.12", - "@esbuild/linux-arm": "0.25.12", - "@esbuild/linux-arm64": "0.25.12", - "@esbuild/linux-ia32": "0.25.12", - "@esbuild/linux-loong64": "0.25.12", - "@esbuild/linux-mips64el": "0.25.12", - "@esbuild/linux-ppc64": "0.25.12", - "@esbuild/linux-riscv64": "0.25.12", - "@esbuild/linux-s390x": "0.25.12", - "@esbuild/linux-x64": "0.25.12", - "@esbuild/netbsd-arm64": "0.25.12", - "@esbuild/netbsd-x64": "0.25.12", - "@esbuild/openbsd-arm64": "0.25.12", - "@esbuild/openbsd-x64": "0.25.12", - "@esbuild/openharmony-arm64": "0.25.12", - "@esbuild/sunos-x64": "0.25.12", - "@esbuild/win32-arm64": "0.25.12", - "@esbuild/win32-ia32": "0.25.12", - "@esbuild/win32-x64": "0.25.12" + "@esbuild/aix-ppc64": "0.27.7", + "@esbuild/android-arm": "0.27.7", + "@esbuild/android-arm64": "0.27.7", + "@esbuild/android-x64": "0.27.7", + "@esbuild/darwin-arm64": "0.27.7", + "@esbuild/darwin-x64": "0.27.7", + "@esbuild/freebsd-arm64": "0.27.7", + "@esbuild/freebsd-x64": "0.27.7", + "@esbuild/linux-arm": "0.27.7", + "@esbuild/linux-arm64": "0.27.7", + "@esbuild/linux-ia32": "0.27.7", + "@esbuild/linux-loong64": "0.27.7", + "@esbuild/linux-mips64el": "0.27.7", + "@esbuild/linux-ppc64": "0.27.7", + "@esbuild/linux-riscv64": "0.27.7", + "@esbuild/linux-s390x": "0.27.7", + "@esbuild/linux-x64": "0.27.7", + "@esbuild/netbsd-arm64": "0.27.7", + "@esbuild/netbsd-x64": "0.27.7", + "@esbuild/openbsd-arm64": "0.27.7", + "@esbuild/openbsd-x64": "0.27.7", + "@esbuild/openharmony-arm64": "0.27.7", + "@esbuild/sunos-x64": "0.27.7", + "@esbuild/win32-arm64": "0.27.7", + "@esbuild/win32-ia32": "0.27.7", + "@esbuild/win32-x64": "0.27.7" } }, "node_modules/escalade": { @@ -6648,463 +6648,6 @@ "fsevents": "~2.3.3" } }, - "node_modules/tsx/node_modules/@esbuild/aix-ppc64": { - "version": "0.27.1", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.27.1.tgz", - "integrity": "sha512-HHB50pdsBX6k47S4u5g/CaLjqS3qwaOVE5ILsq64jyzgMhLuCuZ8rGzM9yhsAjfjkbgUPMzZEPa7DAp7yz6vuA==", - "cpu": [ - "ppc64" - ], - "license": "MIT", - "optional": true, - "os": [ - "aix" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/tsx/node_modules/@esbuild/android-arm": { - "version": "0.27.1", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.27.1.tgz", - "integrity": "sha512-kFqa6/UcaTbGm/NncN9kzVOODjhZW8e+FRdSeypWe6j33gzclHtwlANs26JrupOntlcWmB0u8+8HZo8s7thHvg==", - "cpu": [ - "arm" - ], - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/tsx/node_modules/@esbuild/android-arm64": { - "version": "0.27.1", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.27.1.tgz", - "integrity": "sha512-45fuKmAJpxnQWixOGCrS+ro4Uvb4Re9+UTieUY2f8AEc+t7d4AaZ6eUJ3Hva7dtrxAAWHtlEFsXFMAgNnGU9uQ==", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/tsx/node_modules/@esbuild/android-x64": { - "version": "0.27.1", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.27.1.tgz", - "integrity": "sha512-LBEpOz0BsgMEeHgenf5aqmn/lLNTFXVfoWMUox8CtWWYK9X4jmQzWjoGoNb8lmAYml/tQ/Ysvm8q7szu7BoxRQ==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/tsx/node_modules/@esbuild/darwin-arm64": { - "version": "0.27.1", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.27.1.tgz", - "integrity": "sha512-veg7fL8eMSCVKL7IW4pxb54QERtedFDfY/ASrumK/SbFsXnRazxY4YykN/THYqFnFwJ0aVjiUrVG2PwcdAEqQQ==", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/tsx/node_modules/@esbuild/darwin-x64": { - "version": "0.27.1", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.27.1.tgz", - "integrity": "sha512-+3ELd+nTzhfWb07Vol7EZ+5PTbJ/u74nC6iv4/lwIU99Ip5uuY6QoIf0Hn4m2HoV0qcnRivN3KSqc+FyCHjoVQ==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/tsx/node_modules/@esbuild/freebsd-arm64": { - "version": "0.27.1", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.27.1.tgz", - "integrity": "sha512-/8Rfgns4XD9XOSXlzUDepG8PX+AVWHliYlUkFI3K3GB6tqbdjYqdhcb4BKRd7C0BhZSoaCxhv8kTcBrcZWP+xg==", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/tsx/node_modules/@esbuild/freebsd-x64": { - "version": "0.27.1", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.27.1.tgz", - "integrity": "sha512-GITpD8dK9C+r+5yRT/UKVT36h/DQLOHdwGVwwoHidlnA168oD3uxA878XloXebK4Ul3gDBBIvEdL7go9gCUFzQ==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/tsx/node_modules/@esbuild/linux-arm": { - "version": "0.27.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.27.1.tgz", - "integrity": "sha512-ieMID0JRZY/ZeCrsFQ3Y3NlHNCqIhTprJfDgSB3/lv5jJZ8FX3hqPyXWhe+gvS5ARMBJ242PM+VNz/ctNj//eA==", - "cpu": [ - "arm" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/tsx/node_modules/@esbuild/linux-arm64": { - "version": "0.27.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.27.1.tgz", - "integrity": "sha512-W9//kCrh/6in9rWIBdKaMtuTTzNj6jSeG/haWBADqLLa9P8O5YSRDzgD5y9QBok4AYlzS6ARHifAb75V6G670Q==", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/tsx/node_modules/@esbuild/linux-ia32": { - "version": "0.27.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.27.1.tgz", - "integrity": "sha512-VIUV4z8GD8rtSVMfAj1aXFahsi/+tcoXXNYmXgzISL+KB381vbSTNdeZHHHIYqFyXcoEhu9n5cT+05tRv13rlw==", - "cpu": [ - "ia32" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/tsx/node_modules/@esbuild/linux-loong64": { - "version": "0.27.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.27.1.tgz", - "integrity": "sha512-l4rfiiJRN7sTNI//ff65zJ9z8U+k6zcCg0LALU5iEWzY+a1mVZ8iWC1k5EsNKThZ7XCQ6YWtsZ8EWYm7r1UEsg==", - "cpu": [ - "loong64" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/tsx/node_modules/@esbuild/linux-mips64el": { - "version": "0.27.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.27.1.tgz", - "integrity": "sha512-U0bEuAOLvO/DWFdygTHWY8C067FXz+UbzKgxYhXC0fDieFa0kDIra1FAhsAARRJbvEyso8aAqvPdNxzWuStBnA==", - "cpu": [ - "mips64el" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/tsx/node_modules/@esbuild/linux-ppc64": { - "version": "0.27.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.27.1.tgz", - "integrity": "sha512-NzdQ/Xwu6vPSf/GkdmRNsOfIeSGnh7muundsWItmBsVpMoNPVpM61qNzAVY3pZ1glzzAxLR40UyYM23eaDDbYQ==", - "cpu": [ - "ppc64" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/tsx/node_modules/@esbuild/linux-riscv64": { - "version": "0.27.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.27.1.tgz", - "integrity": "sha512-7zlw8p3IApcsN7mFw0O1Z1PyEk6PlKMu18roImfl3iQHTnr/yAfYv6s4hXPidbDoI2Q0pW+5xeoM4eTCC0UdrQ==", - "cpu": [ - "riscv64" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/tsx/node_modules/@esbuild/linux-s390x": { - "version": "0.27.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.27.1.tgz", - "integrity": "sha512-cGj5wli+G+nkVQdZo3+7FDKC25Uh4ZVwOAK6A06Hsvgr8WqBBuOy/1s+PUEd/6Je+vjfm6stX0kmib5b/O2Ykw==", - "cpu": [ - "s390x" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/tsx/node_modules/@esbuild/linux-x64": { - "version": "0.27.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.27.1.tgz", - "integrity": "sha512-z3H/HYI9MM0HTv3hQZ81f+AKb+yEoCRlUby1F80vbQ5XdzEMyY/9iNlAmhqiBKw4MJXwfgsh7ERGEOhrM1niMA==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/tsx/node_modules/@esbuild/netbsd-arm64": { - "version": "0.27.1", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.27.1.tgz", - "integrity": "sha512-wzC24DxAvk8Em01YmVXyjl96Mr+ecTPyOuADAvjGg+fyBpGmxmcr2E5ttf7Im8D0sXZihpxzO1isus8MdjMCXQ==", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/tsx/node_modules/@esbuild/netbsd-x64": { - "version": "0.27.1", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.27.1.tgz", - "integrity": "sha512-1YQ8ybGi2yIXswu6eNzJsrYIGFpnlzEWRl6iR5gMgmsrR0FcNoV1m9k9sc3PuP5rUBLshOZylc9nqSgymI+TYg==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/tsx/node_modules/@esbuild/openbsd-arm64": { - "version": "0.27.1", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.27.1.tgz", - "integrity": "sha512-5Z+DzLCrq5wmU7RDaMDe2DVXMRm2tTDvX2KU14JJVBN2CT/qov7XVix85QoJqHltpvAOZUAc3ndU56HSMWrv8g==", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/tsx/node_modules/@esbuild/openbsd-x64": { - "version": "0.27.1", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.27.1.tgz", - "integrity": "sha512-Q73ENzIdPF5jap4wqLtsfh8YbYSZ8Q0wnxplOlZUOyZy7B4ZKW8DXGWgTCZmF8VWD7Tciwv5F4NsRf6vYlZtqg==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/tsx/node_modules/@esbuild/openharmony-arm64": { - "version": "0.27.1", - "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.27.1.tgz", - "integrity": "sha512-ajbHrGM/XiK+sXM0JzEbJAen+0E+JMQZ2l4RR4VFwvV9JEERx+oxtgkpoKv1SevhjavK2z2ReHk32pjzktWbGg==", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "openharmony" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/tsx/node_modules/@esbuild/sunos-x64": { - "version": "0.27.1", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.27.1.tgz", - "integrity": "sha512-IPUW+y4VIjuDVn+OMzHc5FV4GubIwPnsz6ubkvN8cuhEqH81NovB53IUlrlBkPMEPxvNnf79MGBoz8rZ2iW8HA==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "sunos" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/tsx/node_modules/@esbuild/win32-arm64": { - "version": "0.27.1", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.27.1.tgz", - "integrity": "sha512-RIVRWiljWA6CdVu8zkWcRmGP7iRRIIwvhDKem8UMBjPql2TXM5PkDVvvrzMtj1V+WFPB4K7zkIGM7VzRtFkjdg==", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/tsx/node_modules/@esbuild/win32-ia32": { - "version": "0.27.1", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.27.1.tgz", - "integrity": "sha512-2BR5M8CPbptC1AK5JbJT1fWrHLvejwZidKx3UMSF0ecHMa+smhi16drIrCEggkgviBwLYd5nwrFLSl5Kho96RQ==", - "cpu": [ - "ia32" - ], - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/tsx/node_modules/@esbuild/win32-x64": { - "version": "0.27.1", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.27.1.tgz", - "integrity": "sha512-d5X6RMYv6taIymSk8JBP+nxv8DQAMY6A51GPgusqLdK9wBz5wWIXy1KjTck6HnjE9hqJzJRdk+1p/t5soSbCtw==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/tsx/node_modules/esbuild": { - "version": "0.27.1", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.27.1.tgz", - "integrity": "sha512-yY35KZckJJuVVPXpvjgxiCuVEJT67F6zDeVTv4rizyPrfGBUpZQsvmxnN+C371c2esD/hNMjj4tpBhuueLN7aA==", - "hasInstallScript": true, - "license": "MIT", - "bin": { - "esbuild": "bin/esbuild" - }, - "engines": { - "node": ">=18" - }, - "optionalDependencies": { - "@esbuild/aix-ppc64": "0.27.1", - "@esbuild/android-arm": "0.27.1", - "@esbuild/android-arm64": "0.27.1", - "@esbuild/android-x64": "0.27.1", - "@esbuild/darwin-arm64": "0.27.1", - "@esbuild/darwin-x64": "0.27.1", - "@esbuild/freebsd-arm64": "0.27.1", - "@esbuild/freebsd-x64": "0.27.1", - "@esbuild/linux-arm": "0.27.1", - "@esbuild/linux-arm64": "0.27.1", - "@esbuild/linux-ia32": "0.27.1", - "@esbuild/linux-loong64": "0.27.1", - "@esbuild/linux-mips64el": "0.27.1", - "@esbuild/linux-ppc64": "0.27.1", - "@esbuild/linux-riscv64": "0.27.1", - "@esbuild/linux-s390x": "0.27.1", - "@esbuild/linux-x64": "0.27.1", - "@esbuild/netbsd-arm64": "0.27.1", - "@esbuild/netbsd-x64": "0.27.1", - "@esbuild/openbsd-arm64": "0.27.1", - "@esbuild/openbsd-x64": "0.27.1", - "@esbuild/openharmony-arm64": "0.27.1", - "@esbuild/sunos-x64": "0.27.1", - "@esbuild/win32-arm64": "0.27.1", - "@esbuild/win32-ia32": "0.27.1", - "@esbuild/win32-x64": "0.27.1" - } - }, "node_modules/type-check": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", @@ -7458,13 +7001,13 @@ } }, "node_modules/vite": { - "version": "7.2.7", - "resolved": "https://registry.npmjs.org/vite/-/vite-7.2.7.tgz", - "integrity": "sha512-ITcnkFeR3+fI8P1wMgItjGrR10170d8auB4EpMLPqmx6uxElH3a/hHGQabSHKdqd4FXWO1nFIp9rRn7JQ34ACQ==", + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/vite/-/vite-7.3.2.tgz", + "integrity": "sha512-Bby3NOsna2jsjfLVOHKes8sGwgl4TT0E6vvpYgnAYDIF/tie7MRaFthmKuHx1NSXjiTueXH3do80FMQgvEktRg==", "dev": true, "license": "MIT", "dependencies": { - "esbuild": "^0.25.0", + "esbuild": "^0.27.0", "fdir": "^6.5.0", "picomatch": "^4.0.3", "postcss": "^8.5.6", diff --git a/extensions/op-blocknote-hocuspocus/package.json b/extensions/op-blocknote-hocuspocus/package.json index 53c994eb0e5..eb6c394f33a 100644 --- a/extensions/op-blocknote-hocuspocus/package.json +++ b/extensions/op-blocknote-hocuspocus/package.json @@ -32,7 +32,7 @@ "devDependencies": { "@blocknote/core": "^0.44.2", "@eslint/js": "^9.35.0", - "@eslint/json": "^0.14.0", + "@eslint/json": "^1.2.0", "@stylistic/eslint-plugin": "^5.3.1", "@types/node": "^25.0.2", "eslint": "^9.35.0", diff --git a/frontend/AGENTS.md b/frontend/AGENTS.md new file mode 100644 index 00000000000..b4e9968d486 --- /dev/null +++ b/frontend/AGENTS.md @@ -0,0 +1,45 @@ +# Frontend + +## Directory Structure + +- `./src/` - Frontend code + - `./src/app/` - Legacy Angular modules/components + - `./src/stimulus/` - Stimulus controllers + - `./src/turbo/` - Turbo integration + +## Configuration Files + +- `eslint.config.mjs` - JavaScript/TypeScript linting +- `../package.json` / `./frontend/package.json` - Node.js dependencies + +## Version Requirements + +- Node: `^22.21.0` (see `package.json` engines) + +## Setup + +```bash +npm ci && cd .. # Install Node packages +``` + +## Code Style + +### JavaScript/TypeScript +- **New development**: Use Hotwire (Turbo + Stimulus) with server-rendered HTML +- **Legacy code**: Follow ESLint rules +- Prefer TypeScript over JavaScript +- Use [Primer Design System](https://primer.style/product/) via ViewComponent + +## Linting + +```bash +# JavaScript/TypeScript +npx eslint src/ && cd .. +``` + +## Testing + +```bash +# Frontend (Jasmine/Karma) +npm test && cd .. +``` diff --git a/frontend/CLAUDE.md b/frontend/CLAUDE.md new file mode 120000 index 00000000000..47dc3e3d863 --- /dev/null +++ b/frontend/CLAUDE.md @@ -0,0 +1 @@ +AGENTS.md \ No newline at end of file diff --git a/frontend/angular.json b/frontend/angular.json index ca103122a9e..041ea30c195 100644 --- a/frontend/angular.json +++ b/frontend/angular.json @@ -48,10 +48,6 @@ "input": "src/spot.scss", "bundleName": "spot" }, - { - "input": "src/backlogs.scss", - "bundleName": "backlogs" - }, { "input": "node_modules/@blocknote/mantine/src/style.css", "bundleName": "blocknote" @@ -61,7 +57,8 @@ "src/vendor/jquery-ui-1.14.1/jquery-ui.css", "src/vendor/jquery-ui-1.14.1/jquery-ui.structure.css", "src/vendor/jquery-ui-1.14.1/jquery-ui.theme.css", - "node_modules/flatpickr/dist/flatpickr.min.css" + "node_modules/flatpickr/dist/flatpickr.min.css", + "src/vendor/ckeditor/ckeditor.css" ], "stylePreprocessorOptions": { "includePaths": [ @@ -149,20 +146,12 @@ } }, "test": { - "builder": "@angular-devkit/build-angular:karma", + "builder": "@angular-builders/custom-esbuild:unit-test", "options": { - "preserveSymlinks": true, - "main": "src/test.ts", - "karmaConfig": "./karma.conf.js", "tsConfig": "tsconfig.spec.json", - "scripts": [], - "styles": [], - "stylePreprocessorOptions": { - "includePaths": [ - "src/assets/sass/" - ] - }, - "assets": [] + "buildTarget": "OpenProject:build", + "providersFile": "src/test-providers.ts", + "setupFiles": ["src/test-setup.ts"] } }, "lint": { diff --git a/frontend/ci-plugins-generator.js b/frontend/ci-plugins-generator.js index f3bfd7e3bc4..7d15215410e 100644 --- a/frontend/ci-plugins-generator.js +++ b/frontend/ci-plugins-generator.js @@ -68,4 +68,17 @@ function generatePluginModule(plugins) { fs.writeFileSync(fileRegister, result); }; +function generatePluginStyles(plugins) { + const fileRegister = path.join(railsRoot, 'frontend/src/app/features/plugins/linked-plugins.styles.sass'); + console.log(`Regenerating frontend plugin sass ${fileRegister}.`); + + const imports = plugins + .filter(([, pluginPath]) => fs.existsSync(path.join(pluginPath, 'frontend', 'module', 'global_styles'))) + .map(([name]) => `@import "./linked/${name}/global_styles"`) + .join('\n'); + + fs.writeFileSync(fileRegister, `// Generated by ci-plugins-generator.js\n${imports}\n`); +}; + generatePluginModule(allFrontendPlugins); +generatePluginStyles(allFrontendPlugins); diff --git a/frontend/eslint.config.mjs b/frontend/eslint.config.mjs index 8c9e8b67404..463a3884bbd 100644 --- a/frontend/eslint.config.mjs +++ b/frontend/eslint.config.mjs @@ -1,7 +1,7 @@ import eslint from '@eslint/js'; import globals from 'globals'; import tseslint from 'typescript-eslint'; -import jasmine from 'eslint-plugin-jasmine'; +import vitest from '@vitest/eslint-plugin'; import angular from 'angular-eslint'; import stylistic from '@stylistic/eslint-plugin'; @@ -159,17 +159,11 @@ export default defineConfig([ }, { files: ['**/*.spec.ts'], - plugins: { jasmine }, - extends: [ - jasmine.configs.recommended, - ], + ...vitest.configs.recommended, rules: { - /** - * Any template/HTML related rules you wish to use/reconfigure over and above the - * recommended set provided by the @angular-eslint project would go here. - */ + ...vitest.configs.recommended.rules, - // jasmine is unusable with unsafe member access, as expect(...) is always any + // vitest expect(...) is always any '@typescript-eslint/no-unsafe-member-access': 'off', '@typescript-eslint/no-unsafe-call': 'off', diff --git a/frontend/karma.conf.js b/frontend/karma.conf.js deleted file mode 100644 index 256971bcabf..00000000000 --- a/frontend/karma.conf.js +++ /dev/null @@ -1,68 +0,0 @@ -// Karma configuration file, see link for more information -// https://karma-runner.github.io/1.0/config/configuration-file.html - -module.exports = function (config) { - config.set({ - basePath: '', - files: [ - // I18n.js is provided by the Asset pipeline, - // which is unavailable for unit tests. - // For testing, shim its functionality - 'node_modules/jquery/dist/jquery.js', - // 'node_modules/angular-mocks/angular-mocks.js' - ], - frameworks: ['jasmine', '@angular-devkit/build-angular'], - plugins: [ - require('karma-jasmine'), - require('karma-chrome-launcher'), - require('karma-coverage'), - require('@angular-devkit/build-angular/plugins/karma'), - require('karma-spec-reporter'), - ], - client:{ - clearContext: false // leave Jasmine Spec Runner output visible in browser - }, - coverageReporter: { - dir: require('path').join(__dirname, 'coverage'), - subdir: '.', - reporters: [ - { type: 'html' }, - { type: 'text-summary' }, - { type: 'lcov', subdir: 'report-lcov' }, - ] - }, - preprocessors: { - 'src/**/*.ts': 'coverage' - }, - angularCli: { - environment: 'dev' - }, - reporters: ['spec', 'coverage'], - specReporter: { - maxLogLines: 5, // limit number of lines logged per test - suppressErrorSummary: false, // do not print error summary - suppressFailed: false, // do not print information about failed tests - suppressPassed: false, // do not print information about passed tests - suppressSkipped: true, // do not print information about skipped tests - showSpecTiming: true, // print the time elapsed for each spec - failFast: false, - }, - port: 9876, - colors: true, - failOnEmptyTestSuite: true, - logLevel: config.LOG_INFO, - autoWatch: true, - browsers: ['ChromeHeadlessNoSandbox'], - customLaunchers: { - ChromeHeadlessNoSandbox: { - base: 'ChromeHeadless', - flags: ['--no-sandbox', '--disable-gpu'] - }, - ChromeWithDebug: { - base: 'Chrome', - flags: ['--no-sandbox', '--debug', '--auto-open-devtools-for-tabs'] - } - }, - singleRun: false - }); -}; diff --git a/frontend/package-lock.json b/frontend/package-lock.json index 082de3070af..f5b21a17811 100644 --- a/frontend/package-lock.json +++ b/frontend/package-lock.json @@ -9,18 +9,18 @@ "version": "0.1.0", "license": "GPLv3", "dependencies": { - "@angular/animations": "^21.1.6", - "@angular/cdk": "^21.1.6", - "@angular/cli": "^21.1.5", - "@angular/common": "^21.1.6", - "@angular/compiler": "^21.1.6", - "@angular/compiler-cli": "^21.1.6", - "@angular/core": "^21.2.4", - "@angular/elements": "^21.1.6", - "@angular/forms": "^21.1.6", - "@angular/platform-browser": "^21.1.6", - "@angular/platform-browser-dynamic": "^21.1.6", - "@angular/router": "^21.1.6", + "@angular/animations": "^21.2.11", + "@angular/cdk": "^21.2.9", + "@angular/cli": "^21.2.9", + "@angular/common": "^21.2.11", + "@angular/compiler": "^21.2.11", + "@angular/compiler-cli": "^21.2.11", + "@angular/core": "^21.2.11", + "@angular/elements": "^21.2.11", + "@angular/forms": "^21.2.11", + "@angular/platform-browser": "^21.2.11", + "@angular/platform-browser-dynamic": "^21.2.11", + "@angular/router": "^21.2.11", "@appsignal/javascript": "^1.6.1", "@appsignal/plugin-breadcrumbs-console": "^1.1.37", "@appsignal/plugin-breadcrumbs-network": "^1.1.24", @@ -48,27 +48,27 @@ "@hotwired/stimulus": "^3.2.2", "@hotwired/turbo": "^8.0.20", "@hotwired/turbo-rails": "^8.0.20", - "@knowledgecode/delegate": "^0.10.0", + "@knowledgecode/delegate": "^0.10.3", "@kolkov/ngx-gallery": "^2.0.1", "@mantine/core": "^8.3.13", - "@mantine/hooks": "^8.3.6", + "@mantine/hooks": "^9.0.1", "@mantine/utils": "^6.0.22", - "@ng-select/ng-option-highlight": "^21.8.0", + "@ng-select/ng-option-highlight": "^21.8.2", "@ng-select/ng-select": "^21.8.0", "@ngneat/content-loader": "^7.0.0", "@openproject/octicons-angular": "^19.34.0", - "@openproject/primer-view-components": "^0.84.5", + "@openproject/primer-view-components": "^0.85.0", "@openproject/reactivestates": "^3.0.1", "@primer/css": "^22.1.0", "@primer/live-region-element": "^0.8.0", "@primer/primitives": "^11.5.1", - "@primer/view-components": "npm:@openproject/primer-view-components@^0.84.5", + "@primer/view-components": "npm:@openproject/primer-view-components@^0.85.0", "@rails/request.js": "^0.0.13", "@stimulus-components/auto-submit": "^6.0.0", "@stimulus-components/reveal": "^5.0.0", "@tiptap/extensions": "^3.20.0", "@uirouter/angular": "^17.0.0", - "@uirouter/core": "^6.1.0", + "@uirouter/core": "^6.1.2", "@uirouter/rx": "^1.0.0", "@w11k/ngx-componentdestroyed": "^5.0.2", "@xeokit/xeokit-bim-viewer": "2.7.1", @@ -79,7 +79,7 @@ "chartjs-plugin-datalabels": "^2.2.0", "codemirror": "^5.62.0", "copy-text-to-clipboard": "^3.2.2", - "core-js": "^3.48.0", + "core-js": "^3.49.0", "crossvent": "^1.5.4", "dom-autoscroller": "^2.2.8", "dom-plane": "^1.0.2", @@ -94,7 +94,7 @@ "jquery.caret": "^0.3.1", "json5": "^2.2.2", "lit-html": "^3.3.2", - "lodash": "^4.17.23", + "lodash": "^4.18.1", "luxon": "^3.7.2", "mark.js": "^8.11.0", "mdx-embed": "^1.1.2", @@ -103,16 +103,16 @@ "moment-timezone": "^0.6.0", "mousetrap": "~1.6.3", "ng-dynamic-component": "^10.7.0", - "ng2-charts": "^8.0.0", + "ng2-charts": "^10.0.0", "ng2-dragula": "^6.0.0", "ngx-cookie-service": "^21.1.0", "observable-array": "0.0.4", "op-blocknote-extensions": "https://github.com/opf/op-blocknote-extensions/releases/download/v0.0.24/op-blocknote-extensions-0.0.24.tgz", - "openapi-explorer": "^2.4.788", + "openapi-explorer": "^2.4.793", "pako": "^2.0.3", "qr-creator": "^1.0.0", - "react": "^19.2.4", - "react-dom": "^19.2.4", + "react": "^19.2.5", + "react-dom": "^19.2.5", "reflect-metadata": "^0.2.2", "rxjs": "^7.8.0", "screenfull": "^6.0.2", @@ -124,21 +124,20 @@ "turbo_power": "^0.7.1", "typedjson": "^1.5.1", "urijs": "^1.19.11", - "uuid": "^13.0.0" + "uuid": "^14.0.0" }, "devDependencies": { "@angular-builders/custom-esbuild": "^21.0.3", - "@angular-devkit/build-angular": "^21.1.5", + "@angular-devkit/build-angular": "^21.2.9", "@angular-eslint/builder": "20.7.0", "@angular-eslint/eslint-plugin": "20.7.0", "@angular-eslint/eslint-plugin-template": "20.7.0", "@angular-eslint/schematics": "20.7.0", "@angular-eslint/template-parser": "20.7.0", - "@angular/language-service": "21.1.6", + "@angular/language-service": "21.2.11", "@eslint/js": "^9.39.2", - "@html-eslint/eslint-plugin": "^0.58.1", - "@html-eslint/parser": "^0.58.1", - "@jsdevtools/coverage-istanbul-loader": "3.0.5", + "@html-eslint/eslint-plugin": "^0.59.0", + "@html-eslint/parser": "^0.59.0", "@stylistic/eslint-plugin": "^5.7.1", "@types/codemirror": "5.60.5", "@types/dom-navigation": "^1.0.7", @@ -146,7 +145,6 @@ "@types/flot": "^0.0.36", "@types/hammerjs": "^2.0.36", "@types/hotwired__turbo": "^8.0.5", - "@types/jasmine": "~6.0.0", "@types/jquery": "^3.5.33", "@types/jqueryui": "^1.12.24", "@types/lodash": "^4.17.23", @@ -161,28 +159,22 @@ "@types/webpack-env": "^1.16.0", "@typescript-eslint/eslint-plugin": "8.53.0", "@typescript-eslint/parser": "8.53.1", + "@vitest/coverage-v8": "^4.1.5", + "@vitest/eslint-plugin": "^1.6.16", "angular-eslint": "^21.1.0", "browserslist": "^4.28.1", "eslint": "^9.39.2", "eslint-plugin-import": "^2.32.0", - "eslint-plugin-jasmine": "^4.2.2", "eslint-plugin-jsx-a11y": "^6.10.2", "eslint-plugin-react": "^7.37.5", "eslint-plugin-react-hooks": "^7.0.1", - "globals": "^17.3.0", - "jasmine-core": "~6.1.0", - "jasmine-spec-reporter": "~7.0.0", - "karma": "~6.4.4", - "karma-chrome-launcher": "~3.2.0", - "karma-coverage": "~2.2.1", - "karma-coverage-istanbul-reporter": "~3.0.3", - "karma-jasmine": "~5.1.0", - "karma-jasmine-html-reporter": "^2.1.0", - "karma-spec-reporter": "^0.0.36", + "globals": "^17.5.0", + "jsdom": "^29.1.1", "source-map-explorer": "^2.5.2", "ts-node": "~10.9.2", "typescript": "^5.9.3", "typescript-eslint": "^8.56.1", + "vitest": "^4.1.5", "wscat": "^6.1.0" }, "optionalDependencies": { @@ -190,195 +182,181 @@ } }, "node_modules/@algolia/abtesting": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/@algolia/abtesting/-/abtesting-1.12.2.tgz", - "integrity": "sha512-oWknd6wpfNrmRcH0vzed3UPX0i17o4kYLM5OMITyMVM2xLgaRbIafoxL0e8mcrNNb0iORCJA0evnNDKRYth5WQ==", - "license": "MIT", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@algolia/abtesting/-/abtesting-1.14.1.tgz", + "integrity": "sha512-Dkj0BgPiLAaim9sbQ97UKDFHJE/880wgStAM18U++NaJ/2Cws34J5731ovJifr6E3Pv4T2CqvMXf8qLCC417Ew==", "dependencies": { - "@algolia/client-common": "5.46.2", - "@algolia/requester-browser-xhr": "5.46.2", - "@algolia/requester-fetch": "5.46.2", - "@algolia/requester-node-http": "5.46.2" + "@algolia/client-common": "5.48.1", + "@algolia/requester-browser-xhr": "5.48.1", + "@algolia/requester-fetch": "5.48.1", + "@algolia/requester-node-http": "5.48.1" }, "engines": { "node": ">= 14.0.0" } }, "node_modules/@algolia/client-abtesting": { - "version": "5.46.2", - "resolved": "https://registry.npmjs.org/@algolia/client-abtesting/-/client-abtesting-5.46.2.tgz", - "integrity": "sha512-oRSUHbylGIuxrlzdPA8FPJuwrLLRavOhAmFGgdAvMcX47XsyM+IOGa9tc7/K5SPvBqn4nhppOCEz7BrzOPWc4A==", - "license": "MIT", + "version": "5.48.1", + "resolved": "https://registry.npmjs.org/@algolia/client-abtesting/-/client-abtesting-5.48.1.tgz", + "integrity": "sha512-LV5qCJdj+/m9I+Aj91o+glYszrzd7CX6NgKaYdTOj4+tUYfbS62pwYgUfZprYNayhkQpVFcrW8x8ZlIHpS23Vw==", "dependencies": { - "@algolia/client-common": "5.46.2", - "@algolia/requester-browser-xhr": "5.46.2", - "@algolia/requester-fetch": "5.46.2", - "@algolia/requester-node-http": "5.46.2" + "@algolia/client-common": "5.48.1", + "@algolia/requester-browser-xhr": "5.48.1", + "@algolia/requester-fetch": "5.48.1", + "@algolia/requester-node-http": "5.48.1" }, "engines": { "node": ">= 14.0.0" } }, "node_modules/@algolia/client-analytics": { - "version": "5.46.2", - "resolved": "https://registry.npmjs.org/@algolia/client-analytics/-/client-analytics-5.46.2.tgz", - "integrity": "sha512-EPBN2Oruw0maWOF4OgGPfioTvd+gmiNwx0HmD9IgmlS+l75DatcBkKOPNJN+0z3wBQWUO5oq602ATxIfmTQ8bA==", - "license": "MIT", + "version": "5.48.1", + "resolved": "https://registry.npmjs.org/@algolia/client-analytics/-/client-analytics-5.48.1.tgz", + "integrity": "sha512-/AVoMqHhPm14CcHq7mwB+bUJbfCv+jrxlNvRjXAuO+TQa+V37N8k1b0ijaRBPdmSjULMd8KtJbQyUyabXOu6Kg==", "dependencies": { - "@algolia/client-common": "5.46.2", - "@algolia/requester-browser-xhr": "5.46.2", - "@algolia/requester-fetch": "5.46.2", - "@algolia/requester-node-http": "5.46.2" + "@algolia/client-common": "5.48.1", + "@algolia/requester-browser-xhr": "5.48.1", + "@algolia/requester-fetch": "5.48.1", + "@algolia/requester-node-http": "5.48.1" }, "engines": { "node": ">= 14.0.0" } }, "node_modules/@algolia/client-common": { - "version": "5.46.2", - "resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-5.46.2.tgz", - "integrity": "sha512-Hj8gswSJNKZ0oyd0wWissqyasm+wTz1oIsv5ZmLarzOZAp3vFEda8bpDQ8PUhO+DfkbiLyVnAxsPe4cGzWtqkg==", - "license": "MIT", + "version": "5.48.1", + "resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-5.48.1.tgz", + "integrity": "sha512-VXO+qu2Ep6ota28ktvBm3sG53wUHS2n7bgLWmce5jTskdlCD0/JrV4tnBm1l7qpla1CeoQb8D7ShFhad+UoSOw==", "engines": { "node": ">= 14.0.0" } }, "node_modules/@algolia/client-insights": { - "version": "5.46.2", - "resolved": "https://registry.npmjs.org/@algolia/client-insights/-/client-insights-5.46.2.tgz", - "integrity": "sha512-6dBZko2jt8FmQcHCbmNLB0kCV079Mx/DJcySTL3wirgDBUH7xhY1pOuUTLMiGkqM5D8moVZTvTdRKZUJRkrwBA==", - "license": "MIT", + "version": "5.48.1", + "resolved": "https://registry.npmjs.org/@algolia/client-insights/-/client-insights-5.48.1.tgz", + "integrity": "sha512-zl+Qyb0nLg+Y5YvKp1Ij+u9OaPaKg2/EPzTwKNiVyOHnQJlFxmXyUZL1EInczAZsEY8hVpPCLtNfhMhfxluXKQ==", "dependencies": { - "@algolia/client-common": "5.46.2", - "@algolia/requester-browser-xhr": "5.46.2", - "@algolia/requester-fetch": "5.46.2", - "@algolia/requester-node-http": "5.46.2" + "@algolia/client-common": "5.48.1", + "@algolia/requester-browser-xhr": "5.48.1", + "@algolia/requester-fetch": "5.48.1", + "@algolia/requester-node-http": "5.48.1" }, "engines": { "node": ">= 14.0.0" } }, "node_modules/@algolia/client-personalization": { - "version": "5.46.2", - "resolved": "https://registry.npmjs.org/@algolia/client-personalization/-/client-personalization-5.46.2.tgz", - "integrity": "sha512-1waE2Uqh/PHNeDXGn/PM/WrmYOBiUGSVxAWqiJIj73jqPqvfzZgzdakHscIVaDl6Cp+j5dwjsZ5LCgaUr6DtmA==", - "license": "MIT", + "version": "5.48.1", + "resolved": "https://registry.npmjs.org/@algolia/client-personalization/-/client-personalization-5.48.1.tgz", + "integrity": "sha512-r89Qf9Oo9mKWQXumRu/1LtvVJAmEDpn8mHZMc485pRfQUMAwSSrsnaw1tQ3sszqzEgAr1c7rw6fjBI+zrAXTOw==", "dependencies": { - "@algolia/client-common": "5.46.2", - "@algolia/requester-browser-xhr": "5.46.2", - "@algolia/requester-fetch": "5.46.2", - "@algolia/requester-node-http": "5.46.2" + "@algolia/client-common": "5.48.1", + "@algolia/requester-browser-xhr": "5.48.1", + "@algolia/requester-fetch": "5.48.1", + "@algolia/requester-node-http": "5.48.1" }, "engines": { "node": ">= 14.0.0" } }, "node_modules/@algolia/client-query-suggestions": { - "version": "5.46.2", - "resolved": "https://registry.npmjs.org/@algolia/client-query-suggestions/-/client-query-suggestions-5.46.2.tgz", - "integrity": "sha512-EgOzTZkyDcNL6DV0V/24+oBJ+hKo0wNgyrOX/mePBM9bc9huHxIY2352sXmoZ648JXXY2x//V1kropF/Spx83w==", - "license": "MIT", + "version": "5.48.1", + "resolved": "https://registry.npmjs.org/@algolia/client-query-suggestions/-/client-query-suggestions-5.48.1.tgz", + "integrity": "sha512-TPKNPKfghKG/bMSc7mQYD9HxHRUkBZA4q1PEmHgICaSeHQscGqL4wBrKkhfPlDV1uYBKW02pbFMUhsOt7p4ZpA==", "dependencies": { - "@algolia/client-common": "5.46.2", - "@algolia/requester-browser-xhr": "5.46.2", - "@algolia/requester-fetch": "5.46.2", - "@algolia/requester-node-http": "5.46.2" + "@algolia/client-common": "5.48.1", + "@algolia/requester-browser-xhr": "5.48.1", + "@algolia/requester-fetch": "5.48.1", + "@algolia/requester-node-http": "5.48.1" }, "engines": { "node": ">= 14.0.0" } }, "node_modules/@algolia/client-search": { - "version": "5.46.2", - "resolved": "https://registry.npmjs.org/@algolia/client-search/-/client-search-5.46.2.tgz", - "integrity": "sha512-ZsOJqu4HOG5BlvIFnMU0YKjQ9ZI6r3C31dg2jk5kMWPSdhJpYL9xa5hEe7aieE+707dXeMI4ej3diy6mXdZpgA==", - "license": "MIT", + "version": "5.48.1", + "resolved": "https://registry.npmjs.org/@algolia/client-search/-/client-search-5.48.1.tgz", + "integrity": "sha512-4Fu7dnzQyQmMFknYwTiN/HxPbH4DyxvQ1m+IxpPp5oslOgz8m6PG5qhiGbqJzH4HiT1I58ecDiCAC716UyVA8Q==", "dependencies": { - "@algolia/client-common": "5.46.2", - "@algolia/requester-browser-xhr": "5.46.2", - "@algolia/requester-fetch": "5.46.2", - "@algolia/requester-node-http": "5.46.2" + "@algolia/client-common": "5.48.1", + "@algolia/requester-browser-xhr": "5.48.1", + "@algolia/requester-fetch": "5.48.1", + "@algolia/requester-node-http": "5.48.1" }, "engines": { "node": ">= 14.0.0" } }, "node_modules/@algolia/ingestion": { - "version": "1.46.2", - "resolved": "https://registry.npmjs.org/@algolia/ingestion/-/ingestion-1.46.2.tgz", - "integrity": "sha512-1Uw2OslTWiOFDtt83y0bGiErJYy5MizadV0nHnOoHFWMoDqWW0kQoMFI65pXqRSkVvit5zjXSLik2xMiyQJDWQ==", - "license": "MIT", + "version": "1.48.1", + "resolved": "https://registry.npmjs.org/@algolia/ingestion/-/ingestion-1.48.1.tgz", + "integrity": "sha512-/RFq3TqtXDUUawwic/A9xylA2P3LDMO8dNhphHAUOU51b1ZLHrmZ6YYJm3df1APz7xLY1aht6okCQf+/vmrV9w==", "dependencies": { - "@algolia/client-common": "5.46.2", - "@algolia/requester-browser-xhr": "5.46.2", - "@algolia/requester-fetch": "5.46.2", - "@algolia/requester-node-http": "5.46.2" + "@algolia/client-common": "5.48.1", + "@algolia/requester-browser-xhr": "5.48.1", + "@algolia/requester-fetch": "5.48.1", + "@algolia/requester-node-http": "5.48.1" }, "engines": { "node": ">= 14.0.0" } }, "node_modules/@algolia/monitoring": { - "version": "1.46.2", - "resolved": "https://registry.npmjs.org/@algolia/monitoring/-/monitoring-1.46.2.tgz", - "integrity": "sha512-xk9f+DPtNcddWN6E7n1hyNNsATBCHIqAvVGG2EAGHJc4AFYL18uM/kMTiOKXE/LKDPyy1JhIerrh9oYb7RBrgw==", - "license": "MIT", + "version": "1.48.1", + "resolved": "https://registry.npmjs.org/@algolia/monitoring/-/monitoring-1.48.1.tgz", + "integrity": "sha512-Of0jTeAZRyRhC7XzDSjJef0aBkgRcvRAaw0ooYRlOw57APii7lZdq+layuNdeL72BRq1snaJhoMMwkmLIpJScw==", "dependencies": { - "@algolia/client-common": "5.46.2", - "@algolia/requester-browser-xhr": "5.46.2", - "@algolia/requester-fetch": "5.46.2", - "@algolia/requester-node-http": "5.46.2" + "@algolia/client-common": "5.48.1", + "@algolia/requester-browser-xhr": "5.48.1", + "@algolia/requester-fetch": "5.48.1", + "@algolia/requester-node-http": "5.48.1" }, "engines": { "node": ">= 14.0.0" } }, "node_modules/@algolia/recommend": { - "version": "5.46.2", - "resolved": "https://registry.npmjs.org/@algolia/recommend/-/recommend-5.46.2.tgz", - "integrity": "sha512-NApbTPj9LxGzNw4dYnZmj2BoXiAc8NmbbH6qBNzQgXklGklt/xldTvu+FACN6ltFsTzoNU6j2mWNlHQTKGC5+Q==", - "license": "MIT", + "version": "5.48.1", + "resolved": "https://registry.npmjs.org/@algolia/recommend/-/recommend-5.48.1.tgz", + "integrity": "sha512-bE7JcpFXzxF5zHwj/vkl2eiCBvyR1zQ7aoUdO+GDXxGp0DGw7nI0p8Xj6u8VmRQ+RDuPcICFQcCwRIJT5tDJFw==", "dependencies": { - "@algolia/client-common": "5.46.2", - "@algolia/requester-browser-xhr": "5.46.2", - "@algolia/requester-fetch": "5.46.2", - "@algolia/requester-node-http": "5.46.2" + "@algolia/client-common": "5.48.1", + "@algolia/requester-browser-xhr": "5.48.1", + "@algolia/requester-fetch": "5.48.1", + "@algolia/requester-node-http": "5.48.1" }, "engines": { "node": ">= 14.0.0" } }, "node_modules/@algolia/requester-browser-xhr": { - "version": "5.46.2", - "resolved": "https://registry.npmjs.org/@algolia/requester-browser-xhr/-/requester-browser-xhr-5.46.2.tgz", - "integrity": "sha512-ekotpCwpSp033DIIrsTpYlGUCF6momkgupRV/FA3m62SreTSZUKjgK6VTNyG7TtYfq9YFm/pnh65bATP/ZWJEg==", - "license": "MIT", + "version": "5.48.1", + "resolved": "https://registry.npmjs.org/@algolia/requester-browser-xhr/-/requester-browser-xhr-5.48.1.tgz", + "integrity": "sha512-MK3wZ2koLDnvH/AmqIF1EKbJlhRS5j74OZGkLpxI4rYvNi9Jn/C7vb5DytBnQ4KUWts7QsmbdwHkxY5txQHXVw==", "dependencies": { - "@algolia/client-common": "5.46.2" + "@algolia/client-common": "5.48.1" }, "engines": { "node": ">= 14.0.0" } }, "node_modules/@algolia/requester-fetch": { - "version": "5.46.2", - "resolved": "https://registry.npmjs.org/@algolia/requester-fetch/-/requester-fetch-5.46.2.tgz", - "integrity": "sha512-gKE+ZFi/6y7saTr34wS0SqYFDcjHW4Wminv8PDZEi0/mE99+hSrbKgJWxo2ztb5eqGirQTgIh1AMVacGGWM1iw==", - "license": "MIT", + "version": "5.48.1", + "resolved": "https://registry.npmjs.org/@algolia/requester-fetch/-/requester-fetch-5.48.1.tgz", + "integrity": "sha512-2oDT43Y5HWRSIQMPQI4tA/W+TN/N2tjggZCUsqQV440kxzzoPGsvv9QP1GhQ4CoDa+yn6ygUsGp6Dr+a9sPPSg==", "dependencies": { - "@algolia/client-common": "5.46.2" + "@algolia/client-common": "5.48.1" }, "engines": { "node": ">= 14.0.0" } }, "node_modules/@algolia/requester-node-http": { - "version": "5.46.2", - "resolved": "https://registry.npmjs.org/@algolia/requester-node-http/-/requester-node-http-5.46.2.tgz", - "integrity": "sha512-ciPihkletp7ttweJ8Zt+GukSVLp2ANJHU+9ttiSxsJZThXc4Y2yJ8HGVWesW5jN1zrsZsezN71KrMx/iZsOYpg==", - "license": "MIT", + "version": "5.48.1", + "resolved": "https://registry.npmjs.org/@algolia/requester-node-http/-/requester-node-http-5.48.1.tgz", + "integrity": "sha512-xcaCqbhupVWhuBP1nwbk1XNvwrGljozutEiLx06mvqDf3o8cHyEgQSHS4fKJM+UAggaWVnnFW+Nne5aQ8SUJXg==", "dependencies": { - "@algolia/client-common": "5.46.2" + "@algolia/client-common": "5.48.1" }, "engines": { "node": ">= 14.0.0" @@ -646,63 +624,63 @@ } }, "node_modules/@angular-devkit/build-angular": { - "version": "21.1.5", - "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-21.1.5.tgz", - "integrity": "sha512-B2jOBAiVl+hA3PLwpxfrbW/gA7SDu9Uv+hQwHYrdwL2XXDVwaQ+c3z9BS3yJDQTkb/TrAJ0sfa2zVLC4b/rHzg==", + "version": "21.2.9", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-21.2.9.tgz", + "integrity": "sha512-tWvY6NwyQb4P3dVH2uLbr0NCw6BJO4mo60+oT3+Ftll3bzb3L+rJyEknZzqUI3k4YalJ95YS+n5hOOHXefICUQ==", "dev": true, "dependencies": { "@ampproject/remapping": "2.3.0", - "@angular-devkit/architect": "0.2101.5", - "@angular-devkit/build-webpack": "0.2101.5", - "@angular-devkit/core": "21.1.5", - "@angular/build": "21.1.5", - "@babel/core": "7.28.5", - "@babel/generator": "7.28.5", + "@angular-devkit/architect": "0.2102.9", + "@angular-devkit/build-webpack": "0.2102.9", + "@angular-devkit/core": "21.2.9", + "@angular/build": "21.2.9", + "@babel/core": "7.29.0", + "@babel/generator": "7.29.1", "@babel/helper-annotate-as-pure": "7.27.3", "@babel/helper-split-export-declaration": "7.24.7", - "@babel/plugin-transform-async-generator-functions": "7.28.0", - "@babel/plugin-transform-async-to-generator": "7.27.1", - "@babel/plugin-transform-runtime": "7.28.5", - "@babel/preset-env": "7.28.5", - "@babel/runtime": "7.28.4", + "@babel/plugin-transform-async-generator-functions": "7.29.0", + "@babel/plugin-transform-async-to-generator": "7.28.6", + "@babel/plugin-transform-runtime": "7.29.0", + "@babel/preset-env": "7.29.2", + "@babel/runtime": "7.29.2", "@discoveryjs/json-ext": "0.6.3", - "@ngtools/webpack": "21.1.5", + "@ngtools/webpack": "21.2.9", "ansi-colors": "4.1.3", - "autoprefixer": "10.4.23", + "autoprefixer": "10.4.27", "babel-loader": "10.0.0", "browserslist": "^4.26.0", - "copy-webpack-plugin": "13.0.1", - "css-loader": "7.1.2", - "esbuild-wasm": "0.27.2", + "copy-webpack-plugin": "14.0.0", + "css-loader": "7.1.3", + "esbuild-wasm": "0.27.3", "http-proxy-middleware": "3.0.5", "istanbul-lib-instrument": "6.0.3", "jsonc-parser": "3.3.1", "karma-source-map-support": "1.4.0", "less": "4.4.2", - "less-loader": "12.3.0", + "less-loader": "12.3.1", "license-webpack-plugin": "4.0.2", "loader-utils": "3.3.1", - "mini-css-extract-plugin": "2.9.4", + "mini-css-extract-plugin": "2.10.0", "open": "11.0.0", - "ora": "9.0.0", - "picomatch": "4.0.3", + "ora": "9.3.0", + "picomatch": "4.0.4", "piscina": "5.1.4", - "postcss": "8.5.6", + "postcss": "8.5.12", "postcss-loader": "8.2.0", "resolve-url-loader": "5.0.0", "rxjs": "7.8.2", - "sass": "1.97.1", - "sass-loader": "16.0.6", - "semver": "7.7.3", + "sass": "1.97.3", + "sass-loader": "16.0.7", + "semver": "7.7.4", "source-map-loader": "5.0.0", "source-map-support": "0.5.21", - "terser": "5.44.1", + "terser": "5.46.0", "tinyglobby": "0.2.15", "tree-kill": "1.2.2", "tslib": "2.8.1", - "webpack": "5.105.0", + "webpack": "5.105.2", "webpack-dev-middleware": "7.4.5", - "webpack-dev-server": "5.2.2", + "webpack-dev-server": "5.2.3", "webpack-merge": "6.0.1", "webpack-subresource-integrity": "5.1.0" }, @@ -712,7 +690,7 @@ "yarn": ">= 1.13.0" }, "optionalDependencies": { - "esbuild": "0.27.2" + "esbuild": "0.27.3" }, "peerDependencies": { "@angular/compiler-cli": "^21.0.0", @@ -721,7 +699,7 @@ "@angular/platform-browser": "^21.0.0", "@angular/platform-server": "^21.0.0", "@angular/service-worker": "^21.0.0", - "@angular/ssr": "^21.1.5", + "@angular/ssr": "^21.2.9", "@web/test-runner": "^0.20.0", "browser-sync": "^3.0.2", "jest": "^30.2.0", @@ -778,12 +756,12 @@ } }, "node_modules/@angular-devkit/build-angular/node_modules/@angular-devkit/architect": { - "version": "0.2101.5", - "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.2101.5.tgz", - "integrity": "sha512-eTo6wWzUW5AyBBLTbaUTpBHhGbZhzteErtNGklWkhjicCr/soNH+2mVtvg8bqA8sNreYffK1VXKFsq5NyMh5qg==", + "version": "0.2102.9", + "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.2102.9.tgz", + "integrity": "sha512-OlPEtd5pPZSFdkXEIyZ93jsfBrkvUrVPb3xs4z2WPRnBRk9jyey40eKnmql86KRHfdn4WjHpmde4NDgtDpZRxQ==", "dev": true, "dependencies": { - "@angular-devkit/core": "21.1.5", + "@angular-devkit/core": "21.2.9", "rxjs": "7.8.2" }, "bin": { @@ -796,15 +774,15 @@ } }, "node_modules/@angular-devkit/build-angular/node_modules/@angular-devkit/core": { - "version": "21.1.5", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-21.1.5.tgz", - "integrity": "sha512-KUKbllHvHefkAbTBjWNpRPyrpBqecW+6HBBAR+XNbKBuFTHkG+gxtuwMXNsvO5KECKwQphvQt5h3g05Xtaf0LQ==", + "version": "21.2.9", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-21.2.9.tgz", + "integrity": "sha512-04rdOGEzjLWFHlyAwqtuikginFeQ2jfXS5HqqKNP0VtG6Uu9NUDAEW5UDvXgqkEMfCDwGZbmg2iRHxp3AmAKVw==", "dev": true, "dependencies": { "ajv": "8.18.0", "ajv-formats": "3.0.1", "jsonc-parser": "3.3.1", - "picomatch": "4.0.3", + "picomatch": "4.0.4", "rxjs": "7.8.2", "source-map": "0.7.6" }, @@ -869,7 +847,6 @@ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz", "integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==", "dev": true, - "license": "MIT", "engines": { "node": ">=12" }, @@ -877,48 +854,11 @@ "url": "https://github.com/chalk/ansi-regex?sponsor=1" } }, - "node_modules/@angular-devkit/build-angular/node_modules/autoprefixer": { - "version": "10.4.23", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.23.tgz", - "integrity": "sha512-YYTXSFulfwytnjAPlw8QHncHJmlvFKtczb8InXaAx9Q0LbfDnfEYDE55omerIJKihhmU61Ft+cAOSzQVaBUmeA==", - "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.28.1", - "caniuse-lite": "^1.0.30001760", - "fraction.js": "^5.3.4", - "picocolors": "^1.1.1", - "postcss-value-parser": "^4.2.0" - }, - "bin": { - "autoprefixer": "bin/autoprefixer" - }, - "engines": { - "node": "^10 || ^12 || >=14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, "node_modules/@angular-devkit/build-angular/node_modules/chalk": { "version": "5.6.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.6.2.tgz", "integrity": "sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==", "dev": true, - "license": "MIT", "engines": { "node": "^12.17.0 || ^14.13 || >=16.0.0" }, @@ -931,7 +871,6 @@ "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-3.4.0.tgz", "integrity": "sha512-bXfOC4QcT1tKXGorxL3wbJm6XJPDqEnij2gQ2m7ESQuE+/z9YFIWnl/5RpTiKWbMq3EVKR4fRLJGn6DVfu0mpw==", "dev": true, - "license": "MIT", "engines": { "node": ">=18.20" }, @@ -976,7 +915,6 @@ "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-7.0.1.tgz", "integrity": "sha512-ja1E3yCr9i/0hmBVaM0bfwDjnGy8I/s6PP4DFp+yP+a+mrHO4Rm7DtmnqROTUkHIkqffC84YY7AeqX6oFk0WFg==", "dev": true, - "license": "MIT", "dependencies": { "is-unicode-supported": "^2.0.0", "yoctocolors": "^2.1.1" @@ -1010,11 +948,10 @@ } }, "node_modules/@angular-devkit/build-angular/node_modules/ora": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/ora/-/ora-9.0.0.tgz", - "integrity": "sha512-m0pg2zscbYgWbqRR6ABga5c3sZdEon7bSgjnlXC64kxtxLOyjRcbbUkLj7HFyy/FTD+P2xdBWu8snGhYI0jc4A==", + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/ora/-/ora-9.3.0.tgz", + "integrity": "sha512-lBX72MWFduWEf7v7uWf5DHp9Jn5BI8bNPGuFgtXMmr2uDz2Gz2749y3am3agSDdkhHPHYmmxEGSKH85ZLGzgXw==", "dev": true, - "license": "MIT", "dependencies": { "chalk": "^5.6.2", "cli-cursor": "^5.0.0", @@ -1022,9 +959,8 @@ "is-interactive": "^2.0.0", "is-unicode-supported": "^2.1.0", "log-symbols": "^7.0.1", - "stdin-discarder": "^0.2.2", - "string-width": "^8.1.0", - "strip-ansi": "^7.1.2" + "stdin-discarder": "^0.3.1", + "string-width": "^8.1.0" }, "engines": { "node": ">=20" @@ -1034,9 +970,9 @@ } }, "node_modules/@angular-devkit/build-angular/node_modules/picomatch": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", - "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz", + "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==", "dev": true, "engines": { "node": ">=12" @@ -1045,15 +981,38 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, - "node_modules/@angular-devkit/build-angular/node_modules/string-width": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-8.1.0.tgz", - "integrity": "sha512-Kxl3KJGb/gxkaUMOjRsQ8IrXiGW75O4E3RPjFIINOVH8AMl2SQ/yWdTzWwF3FevIX9LcMAjJW+GRwAlAbTSXdg==", + "node_modules/@angular-devkit/build-angular/node_modules/semver": { + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz", + "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/stdin-discarder": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/stdin-discarder/-/stdin-discarder-0.3.2.tgz", + "integrity": "sha512-eCPu1qRxPVkl5605OTWF8Wz40b4Mf45NY5LQmVPQ599knfs5QhASUm9GbJ5BDMDOXgrnh0wyEdvzmL//YMlw0A==", + "dev": true, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/string-width": { + "version": "8.2.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-8.2.1.tgz", + "integrity": "sha512-IIaP0g3iy9Cyy18w3M9YcaDudujEAVHKt3a3QJg1+sr/oX96TbaGUubG0hJyCjCBThFH+tFpcIyoUHUn1ogaLA==", "dev": true, - "license": "MIT", "dependencies": { - "get-east-asian-width": "^1.3.0", - "strip-ansi": "^7.1.0" + "get-east-asian-width": "^1.5.0", + "strip-ansi": "^7.1.2" }, "engines": { "node": ">=20" @@ -1063,13 +1022,12 @@ } }, "node_modules/@angular-devkit/build-angular/node_modules/strip-ansi": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.2.tgz", - "integrity": "sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.2.0.tgz", + "integrity": "sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w==", "dev": true, - "license": "MIT", "dependencies": { - "ansi-regex": "^6.0.1" + "ansi-regex": "^6.2.2" }, "engines": { "node": ">=12" @@ -1096,12 +1054,12 @@ } }, "node_modules/@angular-devkit/build-webpack": { - "version": "0.2101.5", - "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.2101.5.tgz", - "integrity": "sha512-G3mvUXiSU3DL1QKngq/yXT94Wr+IdqtOM/1VC3NmsV9KX3OSfwfc560dmhY1efqc9gBA5qL+7kLlgV7Kx/Su3A==", + "version": "0.2102.9", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.2102.9.tgz", + "integrity": "sha512-X7Mx6wxPYzpBNnLts+uppy/ksJbaEDXH3mWXqjGoyFJzXIUj3MAspdqlyqiLw1goDEmeBoqs+zbwkxXZIUkxmg==", "dev": true, "dependencies": { - "@angular-devkit/architect": "0.2101.5", + "@angular-devkit/architect": "0.2102.9", "rxjs": "7.8.2" }, "engines": { @@ -1115,12 +1073,12 @@ } }, "node_modules/@angular-devkit/build-webpack/node_modules/@angular-devkit/architect": { - "version": "0.2101.5", - "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.2101.5.tgz", - "integrity": "sha512-eTo6wWzUW5AyBBLTbaUTpBHhGbZhzteErtNGklWkhjicCr/soNH+2mVtvg8bqA8sNreYffK1VXKFsq5NyMh5qg==", + "version": "0.2102.9", + "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.2102.9.tgz", + "integrity": "sha512-OlPEtd5pPZSFdkXEIyZ93jsfBrkvUrVPb3xs4z2WPRnBRk9jyey40eKnmql86KRHfdn4WjHpmde4NDgtDpZRxQ==", "dev": true, "dependencies": { - "@angular-devkit/core": "21.1.5", + "@angular-devkit/core": "21.2.9", "rxjs": "7.8.2" }, "bin": { @@ -1133,15 +1091,15 @@ } }, "node_modules/@angular-devkit/build-webpack/node_modules/@angular-devkit/core": { - "version": "21.1.5", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-21.1.5.tgz", - "integrity": "sha512-KUKbllHvHefkAbTBjWNpRPyrpBqecW+6HBBAR+XNbKBuFTHkG+gxtuwMXNsvO5KECKwQphvQt5h3g05Xtaf0LQ==", + "version": "21.2.9", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-21.2.9.tgz", + "integrity": "sha512-04rdOGEzjLWFHlyAwqtuikginFeQ2jfXS5HqqKNP0VtG6Uu9NUDAEW5UDvXgqkEMfCDwGZbmg2iRHxp3AmAKVw==", "dev": true, "dependencies": { "ajv": "8.18.0", "ajv-formats": "3.0.1", "jsonc-parser": "3.3.1", - "picomatch": "4.0.3", + "picomatch": "4.0.4", "rxjs": "7.8.2", "source-map": "0.7.6" }, @@ -1193,9 +1151,9 @@ } }, "node_modules/@angular-devkit/build-webpack/node_modules/picomatch": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", - "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz", + "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==", "dev": true, "engines": { "node": ">=12" @@ -1439,9 +1397,9 @@ "license": "MIT" }, "node_modules/@angular/animations": { - "version": "21.1.6", - "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-21.1.6.tgz", - "integrity": "sha512-Ft8B0tHBRyd7ORpbaa2S0yRqHSdsyMH6oot7ODAA3kv03k4GTwp74U6Y/NyV4JoZ+lr28+EV4YMv3mAqJwIy/g==", + "version": "21.2.11", + "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-21.2.11.tgz", + "integrity": "sha512-CpyK3XxcjuYj8cl/eaKZYxrIpVOG7Ci49YSPIzyY5bzxMv7znOoRuPnEMV/EENfiQ12IraWCBh9dd7g37PBjOw==", "dependencies": { "tslib": "^2.3.0" }, @@ -1449,25 +1407,25 @@ "node": "^20.19.0 || ^22.12.0 || >=24.0.0" }, "peerDependencies": { - "@angular/core": "21.1.6" + "@angular/core": "21.2.11" } }, "node_modules/@angular/build": { - "version": "21.1.5", - "resolved": "https://registry.npmjs.org/@angular/build/-/build-21.1.5.tgz", - "integrity": "sha512-v2eDinWKlSKuk5pyMMY8j5TMFW8HA9B1l13TrDDpxsRGAAzekg7TFNyuh1x9Y6Rq4Vn+8/8pCjMUPZigzWbMhQ==", + "version": "21.2.9", + "resolved": "https://registry.npmjs.org/@angular/build/-/build-21.2.9.tgz", + "integrity": "sha512-XYP5ALB56NWvcQisznmvQdVU6WJdUCAuCAEN2eDZNVd9X1IqRNfewQfFH6FyHo7SrK4GHDReqm6xWW6rs0+weQ==", "dev": true, "dependencies": { "@ampproject/remapping": "2.3.0", - "@angular-devkit/architect": "0.2101.5", - "@babel/core": "7.28.5", + "@angular-devkit/architect": "0.2102.9", + "@babel/core": "7.29.0", "@babel/helper-annotate-as-pure": "7.27.3", "@babel/helper-split-export-declaration": "7.24.7", "@inquirer/confirm": "5.1.21", - "@vitejs/plugin-basic-ssl": "2.1.0", - "beasties": "0.3.5", + "@vitejs/plugin-basic-ssl": "2.1.4", + "beasties": "0.4.1", "browserslist": "^4.26.0", - "esbuild": "0.27.2", + "esbuild": "0.27.3", "https-proxy-agent": "7.0.6", "istanbul-lib-instrument": "6.0.3", "jsonc-parser": "3.3.1", @@ -1475,16 +1433,16 @@ "magic-string": "0.30.21", "mrmime": "2.0.1", "parse5-html-rewriting-stream": "8.0.0", - "picomatch": "4.0.3", + "picomatch": "4.0.4", "piscina": "5.1.4", - "rolldown": "1.0.0-beta.58", - "sass": "1.97.1", - "semver": "7.7.3", + "rolldown": "1.0.0-rc.4", + "sass": "1.97.3", + "semver": "7.7.4", "source-map-support": "0.5.21", "tinyglobby": "0.2.15", - "undici": "7.20.0", - "vite": "7.3.0", - "watchpack": "2.5.0" + "undici": "7.24.4", + "vite": "7.3.2", + "watchpack": "2.5.1" }, "engines": { "node": "^20.19.0 || ^22.12.0 || >=24.0.0", @@ -1492,7 +1450,7 @@ "yarn": ">= 1.13.0" }, "optionalDependencies": { - "lmdb": "3.4.4" + "lmdb": "3.5.1" }, "peerDependencies": { "@angular/compiler": "^21.0.0", @@ -1502,7 +1460,7 @@ "@angular/platform-browser": "^21.0.0", "@angular/platform-server": "^21.0.0", "@angular/service-worker": "^21.0.0", - "@angular/ssr": "^21.1.5", + "@angular/ssr": "^21.2.9", "karma": "^6.4.0", "less": "^4.2.0", "ng-packagr": "^21.0.0", @@ -1552,12 +1510,12 @@ } }, "node_modules/@angular/build/node_modules/@angular-devkit/architect": { - "version": "0.2101.5", - "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.2101.5.tgz", - "integrity": "sha512-eTo6wWzUW5AyBBLTbaUTpBHhGbZhzteErtNGklWkhjicCr/soNH+2mVtvg8bqA8sNreYffK1VXKFsq5NyMh5qg==", + "version": "0.2102.9", + "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.2102.9.tgz", + "integrity": "sha512-OlPEtd5pPZSFdkXEIyZ93jsfBrkvUrVPb3xs4z2WPRnBRk9jyey40eKnmql86KRHfdn4WjHpmde4NDgtDpZRxQ==", "dev": true, "dependencies": { - "@angular-devkit/core": "21.1.5", + "@angular-devkit/core": "21.2.9", "rxjs": "7.8.2" }, "bin": { @@ -1570,15 +1528,15 @@ } }, "node_modules/@angular/build/node_modules/@angular-devkit/core": { - "version": "21.1.5", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-21.1.5.tgz", - "integrity": "sha512-KUKbllHvHefkAbTBjWNpRPyrpBqecW+6HBBAR+XNbKBuFTHkG+gxtuwMXNsvO5KECKwQphvQt5h3g05Xtaf0LQ==", + "version": "21.2.9", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-21.2.9.tgz", + "integrity": "sha512-04rdOGEzjLWFHlyAwqtuikginFeQ2jfXS5HqqKNP0VtG6Uu9NUDAEW5UDvXgqkEMfCDwGZbmg2iRHxp3AmAKVw==", "dev": true, "dependencies": { "ajv": "8.18.0", "ajv-formats": "3.0.1", "jsonc-parser": "3.3.1", - "picomatch": "4.0.3", + "picomatch": "4.0.4", "rxjs": "7.8.2", "source-map": "0.7.6" }, @@ -1657,9 +1615,9 @@ } }, "node_modules/@angular/build/node_modules/picomatch": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", - "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz", + "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==", "dev": true, "engines": { "node": ">=12" @@ -1668,10 +1626,22 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, + "node_modules/@angular/build/node_modules/semver": { + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz", + "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/@angular/cdk": { - "version": "21.1.6", - "resolved": "https://registry.npmjs.org/@angular/cdk/-/cdk-21.1.6.tgz", - "integrity": "sha512-a6isY8eWxfRO99KPs8GLMQRDE06diNbPmD9tcYi+EWxjPFOZ88QJmMN8a0yja+LDQaG2kRbNBLjYUEro3qCpTQ==", + "version": "21.2.9", + "resolved": "https://registry.npmjs.org/@angular/cdk/-/cdk-21.2.9.tgz", + "integrity": "sha512-0JXsr8f7xjV2815esTSq4+zGqWMa0CyNT/DV1F7lYS6qkYXcFdYUzGcd/WjNL05VKkajkSkWmTi6uyVsOpYdGA==", "dependencies": { "parse5": "^8.0.0", "tslib": "^2.3.0" @@ -1708,29 +1678,28 @@ } }, "node_modules/@angular/cli": { - "version": "21.1.5", - "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-21.1.5.tgz", - "integrity": "sha512-ljqvAzSk8FKMaYW/aZhR+SXjudbQViYYkMlJvJUClGpokjDM9KfJWPX+QZfr2J+piW5yaaHmFaIMddO9QxkUDQ==", + "version": "21.2.9", + "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-21.2.9.tgz", + "integrity": "sha512-KldNb7vCEVOeyEUK57dguP3dTjYeikBmAohjAouu8JLtY8OOI+tf/TA31Gco/rxZ3nGqBwkvrqpD4rcDf5AhUA==", "dependencies": { - "@angular-devkit/architect": "0.2101.5", - "@angular-devkit/core": "21.1.5", - "@angular-devkit/schematics": "21.1.5", + "@angular-devkit/architect": "0.2102.9", + "@angular-devkit/core": "21.2.9", + "@angular-devkit/schematics": "21.2.9", "@inquirer/prompts": "7.10.1", "@listr2/prompt-adapter-inquirer": "3.0.5", "@modelcontextprotocol/sdk": "1.26.0", - "@schematics/angular": "21.1.5", + "@schematics/angular": "21.2.9", "@yarnpkg/lockfile": "1.1.0", - "algoliasearch": "5.46.2", + "algoliasearch": "5.48.1", "ini": "6.0.0", "jsonc-parser": "3.3.1", "listr2": "9.0.5", "npm-package-arg": "13.0.2", - "pacote": "21.0.4", + "pacote": "21.3.1", "parse5-html-rewriting-stream": "8.0.0", - "resolve": "1.22.11", - "semver": "7.7.3", + "semver": "7.7.4", "yargs": "18.0.0", - "zod": "4.3.5" + "zod": "4.3.6" }, "bin": { "ng": "bin/ng.js" @@ -1742,11 +1711,11 @@ } }, "node_modules/@angular/cli/node_modules/@angular-devkit/architect": { - "version": "0.2101.5", - "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.2101.5.tgz", - "integrity": "sha512-eTo6wWzUW5AyBBLTbaUTpBHhGbZhzteErtNGklWkhjicCr/soNH+2mVtvg8bqA8sNreYffK1VXKFsq5NyMh5qg==", + "version": "0.2102.9", + "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.2102.9.tgz", + "integrity": "sha512-OlPEtd5pPZSFdkXEIyZ93jsfBrkvUrVPb3xs4z2WPRnBRk9jyey40eKnmql86KRHfdn4WjHpmde4NDgtDpZRxQ==", "dependencies": { - "@angular-devkit/core": "21.1.5", + "@angular-devkit/core": "21.2.9", "rxjs": "7.8.2" }, "bin": { @@ -1759,14 +1728,14 @@ } }, "node_modules/@angular/cli/node_modules/@angular-devkit/core": { - "version": "21.1.5", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-21.1.5.tgz", - "integrity": "sha512-KUKbllHvHefkAbTBjWNpRPyrpBqecW+6HBBAR+XNbKBuFTHkG+gxtuwMXNsvO5KECKwQphvQt5h3g05Xtaf0LQ==", + "version": "21.2.9", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-21.2.9.tgz", + "integrity": "sha512-04rdOGEzjLWFHlyAwqtuikginFeQ2jfXS5HqqKNP0VtG6Uu9NUDAEW5UDvXgqkEMfCDwGZbmg2iRHxp3AmAKVw==", "dependencies": { "ajv": "8.18.0", "ajv-formats": "3.0.1", "jsonc-parser": "3.3.1", - "picomatch": "4.0.3", + "picomatch": "4.0.4", "rxjs": "7.8.2", "source-map": "0.7.6" }, @@ -1785,14 +1754,14 @@ } }, "node_modules/@angular/cli/node_modules/@angular-devkit/schematics": { - "version": "21.1.5", - "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-21.1.5.tgz", - "integrity": "sha512-CGmoorQL5+mVCJEHwHWOrhSd1hFxB3h66i9wUDizJAEQUM3mSml5SiglHArpWY/G4GmFwi6XVe+Jm3U8J/mcFg==", + "version": "21.2.9", + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-21.2.9.tgz", + "integrity": "sha512-Gyyuq2Vet70AMkbC+e0L6rjzjZWjSOyKTlOJvd99GjjyWQf6eezjd8IcF17ppKJsML6YUagO2I6AlWROq5yJmg==", "dependencies": { - "@angular-devkit/core": "21.1.5", + "@angular-devkit/core": "21.2.9", "jsonc-parser": "3.3.1", "magic-string": "0.30.21", - "ora": "9.0.0", + "ora": "9.3.0", "rxjs": "7.8.2" }, "engines": { @@ -1922,9 +1891,9 @@ } }, "node_modules/@angular/cli/node_modules/ora": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/ora/-/ora-9.0.0.tgz", - "integrity": "sha512-m0pg2zscbYgWbqRR6ABga5c3sZdEon7bSgjnlXC64kxtxLOyjRcbbUkLj7HFyy/FTD+P2xdBWu8snGhYI0jc4A==", + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/ora/-/ora-9.3.0.tgz", + "integrity": "sha512-lBX72MWFduWEf7v7uWf5DHp9Jn5BI8bNPGuFgtXMmr2uDz2Gz2749y3am3agSDdkhHPHYmmxEGSKH85ZLGzgXw==", "dependencies": { "chalk": "^5.6.2", "cli-cursor": "^5.0.0", @@ -1932,9 +1901,8 @@ "is-interactive": "^2.0.0", "is-unicode-supported": "^2.1.0", "log-symbols": "^7.0.1", - "stdin-discarder": "^0.2.2", - "string-width": "^8.1.0", - "strip-ansi": "^7.1.2" + "stdin-discarder": "^0.3.1", + "string-width": "^8.1.0" }, "engines": { "node": ">=20" @@ -1944,9 +1912,9 @@ } }, "node_modules/@angular/cli/node_modules/ora/node_modules/string-width": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-8.2.0.tgz", - "integrity": "sha512-6hJPQ8N0V0P3SNmP6h2J99RLuzrWz2gvT7VnK5tKvrNqJoyS9W4/Fb8mo31UiPvy00z7DQXkP2hnKBVav76thw==", + "version": "8.2.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-8.2.1.tgz", + "integrity": "sha512-IIaP0g3iy9Cyy18w3M9YcaDudujEAVHKt3a3QJg1+sr/oX96TbaGUubG0hJyCjCBThFH+tFpcIyoUHUn1ogaLA==", "dependencies": { "get-east-asian-width": "^1.5.0", "strip-ansi": "^7.1.2" @@ -1959,9 +1927,9 @@ } }, "node_modules/@angular/cli/node_modules/picomatch": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", - "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz", + "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==", "engines": { "node": ">=12" }, @@ -1969,6 +1937,28 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, + "node_modules/@angular/cli/node_modules/semver": { + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz", + "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@angular/cli/node_modules/stdin-discarder": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/stdin-discarder/-/stdin-discarder-0.3.2.tgz", + "integrity": "sha512-eCPu1qRxPVkl5605OTWF8Wz40b4Mf45NY5LQmVPQ599knfs5QhASUm9GbJ5BDMDOXgrnh0wyEdvzmL//YMlw0A==", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/@angular/cli/node_modules/string-width": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz", @@ -2045,9 +2035,9 @@ } }, "node_modules/@angular/common": { - "version": "21.1.6", - "resolved": "https://registry.npmjs.org/@angular/common/-/common-21.1.6.tgz", - "integrity": "sha512-qEfwyJhebl2tHwFhKHE/ZzsCLMWnQ0u/UDS23KUA4tTWaOKH8Usu7DS1B3KnUravII8R6ZpYn86L+B903v9WxA==", + "version": "21.2.11", + "resolved": "https://registry.npmjs.org/@angular/common/-/common-21.2.11.tgz", + "integrity": "sha512-3Z3SABXpzM6fkX21WCRP6IwrjxNQVHM/3Fk2OXScExOAzpaOpS2bDgS4NB6rtCbmzKL/NFSp7ZPIZigfdqnWGw==", "dependencies": { "tslib": "^2.3.0" }, @@ -2055,14 +2045,14 @@ "node": "^20.19.0 || ^22.12.0 || >=24.0.0" }, "peerDependencies": { - "@angular/core": "21.1.6", + "@angular/core": "21.2.11", "rxjs": "^6.5.3 || ^7.4.0" } }, "node_modules/@angular/compiler": { - "version": "21.1.6", - "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-21.1.6.tgz", - "integrity": "sha512-8RFdfbWTyx+OiRkiK2LsYPuhv8b65S3x/4+98kZRCrzP6YNjq/qsuqpfMUIKwnjok78FfhGyEx4I5LOV3Vkabw==", + "version": "21.2.11", + "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-21.2.11.tgz", + "integrity": "sha512-/KdE0kPQr24K/aNsdIDS2or555+8CrQxyRB5MxPKy3/8d6EvilEY/UN7pB7A5xgRQtUPMea08ZzLFJVp1qNbDA==", "dependencies": { "tslib": "^2.3.0" }, @@ -2071,11 +2061,11 @@ } }, "node_modules/@angular/compiler-cli": { - "version": "21.1.6", - "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-21.1.6.tgz", - "integrity": "sha512-0JU2cBDMSB4hU4KwDS2ThrkGh+Njf8Yfm11CKR0NWbHGwW1xHa7whlcpUzX/USqL+FNGXQ75R0fOcZrT86YvrA==", + "version": "21.2.11", + "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-21.2.11.tgz", + "integrity": "sha512-qp/LgptDYJvpEHVVdwBEtkcbybre/ftanu0qJMpH3mu5FC4HEEOChl+9m7UVrmL4jC1ZkoZcgtzsGKAQr8mw2g==", "dependencies": { - "@babel/core": "7.28.5", + "@babel/core": "7.29.0", "@jridgewell/sourcemap-codec": "^1.4.14", "chokidar": "^5.0.0", "convert-source-map": "^1.5.1", @@ -2092,8 +2082,8 @@ "node": "^20.19.0 || ^22.12.0 || >=24.0.0" }, "peerDependencies": { - "@angular/compiler": "21.1.6", - "typescript": ">=5.9 <6.0" + "@angular/compiler": "21.2.11", + "typescript": ">=5.9 <6.1" }, "peerDependenciesMeta": { "typescript": { @@ -2249,9 +2239,9 @@ } }, "node_modules/@angular/core": { - "version": "21.2.4", - "resolved": "https://registry.npmjs.org/@angular/core/-/core-21.2.4.tgz", - "integrity": "sha512-2+gd67ZuXHpGOqeb2o7XZPueEWEP81eJza2tSHkT5QMV8lnYllDEmaNnkPxnIjSLGP1O3PmiXxo4z8ibHkLZwg==", + "version": "21.2.11", + "resolved": "https://registry.npmjs.org/@angular/core/-/core-21.2.11.tgz", + "integrity": "sha512-EULAfQ0m/I9hZJes74OFlrnfDWqlfV0esE0CkHehO5IEF9rd769+dfuGEAJAzrz+/6Q3PhS0bWDYiT68z1H8Ag==", "dependencies": { "tslib": "^2.3.0" }, @@ -2259,7 +2249,7 @@ "node": "^20.19.0 || ^22.12.0 || >=24.0.0" }, "peerDependencies": { - "@angular/compiler": "21.2.4", + "@angular/compiler": "21.2.11", "rxjs": "^6.5.3 || ^7.4.0", "zone.js": "~0.15.0 || ~0.16.0" }, @@ -2273,9 +2263,9 @@ } }, "node_modules/@angular/elements": { - "version": "21.1.6", - "resolved": "https://registry.npmjs.org/@angular/elements/-/elements-21.1.6.tgz", - "integrity": "sha512-LvF0kgh1XxLlXyw5CS5C787HYFAIGVHAg9HNgGZKINeu16Og7KCnsVszAyWiVn1t3trcLARcScYgrOcuwBYzIg==", + "version": "21.2.11", + "resolved": "https://registry.npmjs.org/@angular/elements/-/elements-21.2.11.tgz", + "integrity": "sha512-7pQNZxJQ7Ojs70hfrMb90rgWehuAogsYcYG9MOUZWUq45OAiUNLHn37KXq/Jl0y/OpDjKi2qT9N/lmOrkT3tpA==", "dependencies": { "tslib": "^2.3.0" }, @@ -2283,14 +2273,14 @@ "node": "^20.19.0 || ^22.12.0 || >=24.0.0" }, "peerDependencies": { - "@angular/core": "21.1.6", + "@angular/core": "21.2.11", "rxjs": "^6.5.3 || ^7.4.0" } }, "node_modules/@angular/forms": { - "version": "21.1.6", - "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-21.1.6.tgz", - "integrity": "sha512-Bw3nVDWihGUGyys7oq2zdJ2MjvJvU1x1WaExYmp3rKU3S7rQXGq6IxY8bopTtHirTANrY2KUEnJ2IlK+xVg9OA==", + "version": "21.2.11", + "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-21.2.11.tgz", + "integrity": "sha512-F67V612wHxPXHrbp825VirYfGPKBUM8PvL9atN2Ku1fsdGSFPU3hTxu1HU8fKYLLBpKYVVuqFqzaU/qIpTXGYA==", "dependencies": { "@standard-schema/spec": "^1.0.0", "tslib": "^2.3.0" @@ -2299,25 +2289,25 @@ "node": "^20.19.0 || ^22.12.0 || >=24.0.0" }, "peerDependencies": { - "@angular/common": "21.1.6", - "@angular/core": "21.1.6", - "@angular/platform-browser": "21.1.6", + "@angular/common": "21.2.11", + "@angular/core": "21.2.11", + "@angular/platform-browser": "21.2.11", "rxjs": "^6.5.3 || ^7.4.0" } }, "node_modules/@angular/language-service": { - "version": "21.1.6", - "resolved": "https://registry.npmjs.org/@angular/language-service/-/language-service-21.1.6.tgz", - "integrity": "sha512-I2gYI9cKP/B/rUz8WVaWNpuULSdq4W+ZUm6YQyUXdGEh3dDEssK1xLucPBfUT7RAr6h7+w5/RS+zKWC1q9g24w==", + "version": "21.2.11", + "resolved": "https://registry.npmjs.org/@angular/language-service/-/language-service-21.2.11.tgz", + "integrity": "sha512-M5BVtsfgjUdR/9SkVFBQ/WoAoSSybeYOeAzuBThwmAz4CA+yvZtyuJNlaUQ2IaF7f5TCtg05Pg9YRgKOusK3HQ==", "dev": true, "engines": { "node": "^20.19.0 || ^22.12.0 || >=24.0.0" } }, "node_modules/@angular/platform-browser": { - "version": "21.1.6", - "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-21.1.6.tgz", - "integrity": "sha512-im6aNcgYdIYIVW2262ATkC39WUmhc+KVNVKwKtO5jlOsq9TWmxT1/esncEAlokMe5os6eeb/Ga4D6Ghj0gj4Ig==", + "version": "21.2.11", + "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-21.2.11.tgz", + "integrity": "sha512-Uz/KwGjSEvbE8J9kNSSetzxhBWjCXv9OuxH1w2WkW6jLNU3vgvzuKX7SXDyUys6KJv5TqkClJ9BLeU11QbmJdw==", "dependencies": { "tslib": "^2.3.0" }, @@ -2325,9 +2315,9 @@ "node": "^20.19.0 || ^22.12.0 || >=24.0.0" }, "peerDependencies": { - "@angular/animations": "21.1.6", - "@angular/common": "21.1.6", - "@angular/core": "21.1.6" + "@angular/animations": "21.2.11", + "@angular/common": "21.2.11", + "@angular/core": "21.2.11" }, "peerDependenciesMeta": { "@angular/animations": { @@ -2336,9 +2326,9 @@ } }, "node_modules/@angular/platform-browser-dynamic": { - "version": "21.1.6", - "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-21.1.6.tgz", - "integrity": "sha512-lVtHkhK/jnrGdX+4S8ItfMO+5buHAU9NMHeDq+QqalnXznMaC7Qd4BPLcRWW4QAI177zG0NE1Bet5cjO75N9+w==", + "version": "21.2.11", + "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-21.2.11.tgz", + "integrity": "sha512-wdlYzXkc6X6f8mj2jLlaDJlRiwmurffAf37NCXMNqgTTc0j0iD/DLd3JQScMVCJ9bZ0se02EF5X3Z82W0vmmPA==", "dependencies": { "tslib": "^2.3.0" }, @@ -2346,16 +2336,16 @@ "node": "^20.19.0 || ^22.12.0 || >=24.0.0" }, "peerDependencies": { - "@angular/common": "21.1.6", - "@angular/compiler": "21.1.6", - "@angular/core": "21.1.6", - "@angular/platform-browser": "21.1.6" + "@angular/common": "21.2.11", + "@angular/compiler": "21.2.11", + "@angular/core": "21.2.11", + "@angular/platform-browser": "21.2.11" } }, "node_modules/@angular/router": { - "version": "21.1.6", - "resolved": "https://registry.npmjs.org/@angular/router/-/router-21.1.6.tgz", - "integrity": "sha512-JJn0gfeRks2czbeLmtxxjIlmKtOmjYi3yAaoAwiwpbfVHPLJeJ32axLJREAU0dBkThF8YD+r18uEJ9UrvkqrtA==", + "version": "21.2.11", + "resolved": "https://registry.npmjs.org/@angular/router/-/router-21.2.11.tgz", + "integrity": "sha512-IB7/KuRDsxAjCOxYNccq2LdCTKuu59cx5MmOhrt+TarvkNE/xdlFkP7vtrCl44DJt0q7/tveWvsn5oqTw7rN7A==", "dependencies": { "tslib": "^2.3.0" }, @@ -2363,9 +2353,9 @@ "node": "^20.19.0 || ^22.12.0 || >=24.0.0" }, "peerDependencies": { - "@angular/common": "21.1.6", - "@angular/core": "21.1.6", - "@angular/platform-browser": "21.1.6", + "@angular/common": "21.2.11", + "@angular/core": "21.2.11", + "@angular/platform-browser": "21.2.11", "rxjs": "^6.5.3 || ^7.4.0" } }, @@ -2405,6 +2395,57 @@ "@appsignal/javascript": "=1.6.1" } }, + "node_modules/@asamuzakjp/css-color": { + "version": "5.1.11", + "resolved": "https://registry.npmjs.org/@asamuzakjp/css-color/-/css-color-5.1.11.tgz", + "integrity": "sha512-KVw6qIiCTUQhByfTd78h2yD1/00waTmm9uy/R7Ck/ctUyAPj+AEDLkQIdJW0T8+qGgj3j5bpNKK7Q3G+LedJWg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@asamuzakjp/generational-cache": "^1.0.1", + "@csstools/css-calc": "^3.2.0", + "@csstools/css-color-parser": "^4.1.0", + "@csstools/css-parser-algorithms": "^4.0.0", + "@csstools/css-tokenizer": "^4.0.0" + }, + "engines": { + "node": "^20.19.0 || ^22.12.0 || >=24.0.0" + } + }, + "node_modules/@asamuzakjp/dom-selector": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/@asamuzakjp/dom-selector/-/dom-selector-7.1.1.tgz", + "integrity": "sha512-67RZDnYRc8H/8MLDgQCDE//zoqVFwajkepHZgmXrbwybzXOEwOWGPYGmALYl9J2DOLfFPPs6kKCqmbzV895hTQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@asamuzakjp/generational-cache": "^1.0.1", + "@asamuzakjp/nwsapi": "^2.3.9", + "bidi-js": "^1.0.3", + "css-tree": "^3.2.1", + "is-potential-custom-element-name": "^1.0.1" + }, + "engines": { + "node": "^20.19.0 || ^22.12.0 || >=24.0.0" + } + }, + "node_modules/@asamuzakjp/generational-cache": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@asamuzakjp/generational-cache/-/generational-cache-1.0.1.tgz", + "integrity": "sha512-wajfB8KqzMCN2KGNFdLkReeHncd0AslUSrvHVvvYWuU8ghncRJoA50kT3zP9MVL0+9g4/67H+cdvBskj9THPzg==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^20.19.0 || ^22.12.0 || >=24.0.0" + } + }, + "node_modules/@asamuzakjp/nwsapi": { + "version": "2.3.9", + "resolved": "https://registry.npmjs.org/@asamuzakjp/nwsapi/-/nwsapi-2.3.9.tgz", + "integrity": "sha512-n8GuYSrI9bF7FFZ/SjhwevlHc8xaVlb/7HmHelnc/PZXBD2ZR49NnN9sMMuDdEGPeeRQ5d0hqlSlEpgCX3Wl0Q==", + "dev": true, + "license": "MIT" + }, "node_modules/@authress/login": { "version": "2.6.417", "resolved": "https://registry.npmjs.org/@authress/login/-/login-2.6.417.tgz", @@ -2419,10 +2460,9 @@ } }, "node_modules/@babel/code-frame": { - "version": "7.28.6", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.28.6.tgz", - "integrity": "sha512-JYgintcMjRiCvS8mMECzaEn+m3PfoQiyqukOMCCVQtoJGYJw8j/8LBJEiqkHLkfwCcs74E3pbAUFNg7d9VNJ+Q==", - "license": "MIT", + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.29.0.tgz", + "integrity": "sha512-9NhCeYjq9+3uxgdtp20LSiJXJvN0FeCtNGpJxuMFZ1Kv3cWUNb6DOhJwUvcVCzKGR66cw4njwM6hrJLqgOwbcw==", "dependencies": { "@babel/helper-validator-identifier": "^7.28.5", "js-tokens": "^4.0.0", @@ -2433,29 +2473,27 @@ } }, "node_modules/@babel/compat-data": { - "version": "7.28.6", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.28.6.tgz", - "integrity": "sha512-2lfu57JtzctfIrcGMz992hyLlByuzgIk58+hhGCxjKZ3rWI82NnVLjXcaTqkI2NvlcvOskZaiZ5kjUALo3Lpxg==", - "license": "MIT", + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.29.0.tgz", + "integrity": "sha512-T1NCJqT/j9+cn8fvkt7jtwbLBfLC/1y1c7NtCeXFRgzGTsafi68MRv8yzkYSapBnFA6L3U2VSc02ciDzoAJhJg==", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/core": { - "version": "7.28.5", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.28.5.tgz", - "integrity": "sha512-e7jT4DxYvIDLk1ZHmU/m/mB19rex9sv0c2ftBtjSBv+kVM/902eh0fINUzD7UwLLNR+jU585GxUJ8/EBfAM5fw==", - "license": "MIT", + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.29.0.tgz", + "integrity": "sha512-CGOfOJqWjg2qW/Mb6zNsDm+u5vFQ8DxXfbM09z69p5Z6+mE1ikP2jUXw+j42Pf1XTYED2Rni5f95npYeuwMDQA==", "dependencies": { - "@babel/code-frame": "^7.27.1", - "@babel/generator": "^7.28.5", - "@babel/helper-compilation-targets": "^7.27.2", - "@babel/helper-module-transforms": "^7.28.3", - "@babel/helpers": "^7.28.4", - "@babel/parser": "^7.28.5", - "@babel/template": "^7.27.2", - "@babel/traverse": "^7.28.5", - "@babel/types": "^7.28.5", + "@babel/code-frame": "^7.29.0", + "@babel/generator": "^7.29.0", + "@babel/helper-compilation-targets": "^7.28.6", + "@babel/helper-module-transforms": "^7.28.6", + "@babel/helpers": "^7.28.6", + "@babel/parser": "^7.29.0", + "@babel/template": "^7.28.6", + "@babel/traverse": "^7.29.0", + "@babel/types": "^7.29.0", "@jridgewell/remapping": "^2.3.5", "convert-source-map": "^2.0.0", "debug": "^4.1.0", @@ -2485,13 +2523,12 @@ } }, "node_modules/@babel/generator": { - "version": "7.28.5", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.28.5.tgz", - "integrity": "sha512-3EwLFhZ38J4VyIP6WNtt2kUdW9dokXA9Cr4IVIFHuCpZ3H8/YFOl5JjZHisrn1fATPBmKKqXzDFvh9fUwHz6CQ==", - "license": "MIT", + "version": "7.29.1", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.29.1.tgz", + "integrity": "sha512-qsaF+9Qcm2Qv8SRIMMscAvG4O3lJ0F1GuMo5HR/Bp02LopNgnZBC/EkbevHFeGs4ls/oPz9v+Bsmzbkbe+0dUw==", "dependencies": { - "@babel/parser": "^7.28.5", - "@babel/types": "^7.28.5", + "@babel/parser": "^7.29.0", + "@babel/types": "^7.29.0", "@jridgewell/gen-mapping": "^0.3.12", "@jridgewell/trace-mapping": "^0.3.28", "jsesc": "^3.0.2" @@ -2542,7 +2579,6 @@ "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.28.6.tgz", "integrity": "sha512-dTOdvsjnG3xNT9Y0AUg1wAl38y+4Rl4sf9caSQZOXdNqVn+H+HbbJ4IyyHaIqNR6SW9oJpA/RuRjsjCw2IdIow==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-annotate-as-pure": "^7.27.3", "@babel/helper-member-expression-to-functions": "^7.28.5", @@ -2564,7 +2600,6 @@ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, - "license": "ISC", "bin": { "semver": "bin/semver.js" } @@ -2574,7 +2609,6 @@ "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.28.5.tgz", "integrity": "sha512-N1EhvLtHzOvj7QQOUCCS3NrPJP8c5W6ZXCHDn7Yialuy1iu4r5EmIYkXlKNqT99Ciw+W0mDqWoR6HWMZlFP3hw==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-annotate-as-pure": "^7.27.3", "regexpu-core": "^6.3.1", @@ -2592,23 +2626,21 @@ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, - "license": "ISC", "bin": { "semver": "bin/semver.js" } }, "node_modules/@babel/helper-define-polyfill-provider": { - "version": "0.6.5", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.5.tgz", - "integrity": "sha512-uJnGFcPsWQK8fvjgGP5LZUZZsYGIoPeRjSF5PGwrelYgq7Q15/Ft9NGFp1zglwgIv//W0uG4BevRuSJRyylZPg==", + "version": "0.6.8", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.8.tgz", + "integrity": "sha512-47UwBLPpQi1NoWzLuHNjRoHlYXMwIJoBf7MFou6viC/sIHWYygpvr0B6IAyh5sBdA2nr2LPIRww8lfaUVQINBA==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/helper-compilation-targets": "^7.27.2", - "@babel/helper-plugin-utils": "^7.27.1", - "debug": "^4.4.1", + "@babel/helper-compilation-targets": "^7.28.6", + "@babel/helper-plugin-utils": "^7.28.6", + "debug": "^4.4.3", "lodash.debounce": "^4.0.8", - "resolve": "^1.22.10" + "resolve": "^1.22.11" }, "peerDependencies": { "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" @@ -2619,7 +2651,6 @@ "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", "dev": true, - "license": "MIT", "dependencies": { "ms": "^2.1.3" }, @@ -2646,7 +2677,6 @@ "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.28.5.tgz", "integrity": "sha512-cwM7SBRZcPCLgl8a7cY0soT1SptSzAlMH39vwiRpOQkJlh53r5hdHwLSCZpQdVLT39sZt+CRpNwYG4Y2v77atg==", "dev": true, - "license": "MIT", "dependencies": { "@babel/traverse": "^7.28.5", "@babel/types": "^7.28.5" @@ -2690,7 +2720,6 @@ "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.27.1.tgz", "integrity": "sha512-URMGH08NzYFhubNSGJrpUEphGKQwMQYBySzat5cAByY1/YgIRkULnIy3tAMeszlL/so2HbeilYloUmSpd7GdVw==", "dev": true, - "license": "MIT", "dependencies": { "@babel/types": "^7.27.1" }, @@ -2703,7 +2732,6 @@ "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.28.6.tgz", "integrity": "sha512-S9gzZ/bz83GRysI7gAD4wPT/AI3uCnY+9xn+Mx/KPs2JwHJIz1W8PZkg2cqyt3RNOBM8ejcXhV6y8Og7ly/Dug==", "dev": true, - "license": "MIT", "engines": { "node": ">=6.9.0" } @@ -2713,7 +2741,6 @@ "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.27.1.tgz", "integrity": "sha512-7fiA521aVw8lSPeI4ZOD3vRFkoqkJcS+z4hFo82bFSH/2tNd6eJ5qCVMS5OzDmZh/kaHQeBaeyxK6wljcPtveA==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-annotate-as-pure": "^7.27.1", "@babel/helper-wrap-function": "^7.27.1", @@ -2731,7 +2758,6 @@ "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.28.6.tgz", "integrity": "sha512-mq8e+laIk94/yFec3DxSjCRD2Z0TAjhVbEJY3UQrlwVo15Lmt7C2wAUbK4bjnTs4APkwsYLTahXRraQXhb1WCg==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-member-expression-to-functions": "^7.28.5", "@babel/helper-optimise-call-expression": "^7.27.1", @@ -2749,7 +2775,6 @@ "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.27.1.tgz", "integrity": "sha512-Tub4ZKEXqbPjXgWLl2+3JpQAYBJ8+ikpQ2Ocj/q/r0LwE3UhENh7EUabyHjz2kCEsrRY83ew2DQdHluuiDQFzg==", "dev": true, - "license": "MIT", "dependencies": { "@babel/traverse": "^7.27.1", "@babel/types": "^7.27.1" @@ -2803,7 +2828,6 @@ "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.28.6.tgz", "integrity": "sha512-z+PwLziMNBeSQJonizz2AGnndLsP2DeGHIxDAn+wdHOGuo4Fo1x1HBPPXeE9TAOPHNNWQKCSlA2VZyYyyibDnQ==", "dev": true, - "license": "MIT", "dependencies": { "@babel/template": "^7.28.6", "@babel/traverse": "^7.28.6", @@ -2827,12 +2851,11 @@ } }, "node_modules/@babel/parser": { - "version": "7.28.6", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.28.6.tgz", - "integrity": "sha512-TeR9zWR18BvbfPmGbLampPMW+uW1NZnJlRuuHso8i87QZNq2JRF9i6RgxRqtEq+wQGsS19NNTWr2duhnE49mfQ==", - "license": "MIT", + "version": "7.29.2", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.29.2.tgz", + "integrity": "sha512-4GgRzy/+fsBa72/RZVJmGKPmZu9Byn8o4MoLpmNe1m8ZfYnz5emHLQz3U4gLud6Zwl0RZIcgiLD7Uq7ySFuDLA==", "dependencies": { - "@babel/types": "^7.28.6" + "@babel/types": "^7.29.0" }, "bin": { "parser": "bin/babel-parser.js" @@ -2846,7 +2869,6 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.28.5.tgz", "integrity": "sha512-87GDMS3tsmMSi/3bWOte1UblL+YUTFMV8SZPZ2eSEL17s74Cw/l63rR6NmGVKMYW2GYi85nE+/d6Hw5N0bEk2Q==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.27.1", "@babel/traverse": "^7.28.5" @@ -2863,7 +2885,6 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-class-field-initializer-scope/-/plugin-bugfix-safari-class-field-initializer-scope-7.27.1.tgz", "integrity": "sha512-qNeq3bCKnGgLkEXUuFry6dPlGfCdQNZbn7yUAPCInwAJHMU7THJfrBSozkcWq5sNM6RcF3S8XyQL2A52KNR9IA==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" }, @@ -2879,7 +2900,6 @@ "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.27.1.tgz", "integrity": "sha512-g4L7OYun04N1WyqMNjldFwlfPCLVkgB54A/YCXICZYBsvJJE3kByKv9c9+R/nAfmIfjl2rKYLNyMHboYbZaWaA==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" }, @@ -2895,7 +2915,6 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.27.1.tgz", "integrity": "sha512-oO02gcONcD5O1iTLi/6frMJBIwWEHceWGSGqrpCmEL8nogiS6J9PBlE48CaK20/Jx1LuRml9aDftLgdjXT8+Cw==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.27.1", "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1", @@ -2913,7 +2932,6 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.28.6.tgz", "integrity": "sha512-a0aBScVTlNaiUe35UtfxAN7A/tehvvG4/ByO6+46VPKTRSlfnAFsgKy0FUh+qAkQrDTmhDkT+IBOKlOoMUxQ0g==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.28.6", "@babel/traverse": "^7.28.6" @@ -2930,7 +2948,6 @@ "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, - "license": "MIT", "engines": { "node": ">=6.9.0" }, @@ -2943,7 +2960,6 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.28.6.tgz", "integrity": "sha512-pSJUpFHdx9z5nqTSirOCMtYVP2wFgoWhP0p3g8ONK/4IHhLIBd0B9NYqAvIUAhq+OkhO4VM1tENCt0cjlsNShw==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.28.6" }, @@ -2959,7 +2975,6 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.28.6.tgz", "integrity": "sha512-jiLC0ma9XkQT3TKJ9uYvlakm66Pamywo+qwL+oL8HJOvc6TWdZXVfhqJr8CCzbSGUAbDOzlGHJC1U+vRfLQDvw==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.28.6" }, @@ -2975,7 +2990,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, - "license": "MIT", "dependencies": { "@babel/helper-create-regexp-features-plugin": "^7.18.6", "@babel/helper-plugin-utils": "^7.18.6" @@ -2992,7 +3006,6 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.27.1.tgz", "integrity": "sha512-8Z4TGic6xW70FKThA5HYEKKyBpOOsucTOD1DjU3fZxDg+K3zBJcXMFnt/4yQiZnf5+MiOMSXQ9PaEK/Ilh1DeA==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" }, @@ -3004,15 +3017,14 @@ } }, "node_modules/@babel/plugin-transform-async-generator-functions": { - "version": "7.28.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.28.0.tgz", - "integrity": "sha512-BEOdvX4+M765icNPZeidyADIvQ1m1gmunXufXxvRESy/jNNyfovIqUyE7MVgGBjWktCoJlzvFA1To2O4ymIO3Q==", + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.29.0.tgz", + "integrity": "sha512-va0VdWro4zlBr2JsXC+ofCPB2iG12wPtVGTWFx2WLDOM3nYQZZIGP82qku2eW/JR83sD+k2k+CsNtyEbUqhU6w==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-plugin-utils": "^7.28.6", "@babel/helper-remap-async-to-generator": "^7.27.1", - "@babel/traverse": "^7.28.0" + "@babel/traverse": "^7.29.0" }, "engines": { "node": ">=6.9.0" @@ -3022,14 +3034,13 @@ } }, "node_modules/@babel/plugin-transform-async-to-generator": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.27.1.tgz", - "integrity": "sha512-NREkZsZVJS4xmTr8qzE5y8AfIPqsdQfRuUiLRTEzb7Qii8iFWCyDKaUV2c0rCuh4ljDZ98ALHP/PetiBV2nddA==", + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.28.6.tgz", + "integrity": "sha512-ilTRcmbuXjsMmcZ3HASTe4caH5Tpo93PkTxF9oG2VZsSWsahydmcEHhix9Ik122RcTnZnUzPbmux4wh1swfv7g==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/helper-module-imports": "^7.27.1", - "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-module-imports": "^7.28.6", + "@babel/helper-plugin-utils": "^7.28.6", "@babel/helper-remap-async-to-generator": "^7.27.1" }, "engines": { @@ -3044,7 +3055,6 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.27.1.tgz", "integrity": "sha512-cnqkuOtZLapWYZUYM5rVIdv1nXYuFVIltZ6ZJ7nIj585QsjKM5dhL2Fu/lICXZ1OyIAFc7Qy+bvDAtTXqGrlhg==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" }, @@ -3060,7 +3070,6 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.28.6.tgz", "integrity": "sha512-tt/7wOtBmwHPNMPu7ax4pdPz6shjFrmHDghvNC+FG9Qvj7D6mJcoRQIF5dy4njmxR941l6rgtvfSB2zX3VlUIw==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.28.6" }, @@ -3076,7 +3085,6 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.28.6.tgz", "integrity": "sha512-dY2wS3I2G7D697VHndN91TJr8/AAfXQNt5ynCTI/MpxMsSzHp+52uNivYT5wCPax3whc47DR8Ba7cmlQMg24bw==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-create-class-features-plugin": "^7.28.6", "@babel/helper-plugin-utils": "^7.28.6" @@ -3093,7 +3101,6 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.28.6.tgz", "integrity": "sha512-rfQ++ghVwTWTqQ7w8qyDxL1XGihjBss4CmTgGRCTAC9RIbhVpyp4fOeZtta0Lbf+dTNIVJer6ych2ibHwkZqsQ==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-create-class-features-plugin": "^7.28.6", "@babel/helper-plugin-utils": "^7.28.6" @@ -3110,7 +3117,6 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.28.6.tgz", "integrity": "sha512-EF5KONAqC5zAqT783iMGuM2ZtmEBy+mJMOKl2BCvPZ2lVrwvXnB6o+OBWCS+CoeCCpVRF2sA2RBKUxvT8tQT5Q==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-annotate-as-pure": "^7.27.3", "@babel/helper-compilation-targets": "^7.28.6", @@ -3131,7 +3137,6 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.28.6.tgz", "integrity": "sha512-bcc3k0ijhHbc2lEfpFHgx7eYw9KNXqOerKWfzbxEHUGKnS3sz9C4CNL9OiFN1297bDNfUiSO7DaLzbvHQQQ1BQ==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.28.6", "@babel/template": "^7.28.6" @@ -3148,7 +3153,6 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.28.5.tgz", "integrity": "sha512-Kl9Bc6D0zTUcFUvkNuQh4eGXPKKNDOJQXVyyM4ZAQPMveniJdxi8XMJwLo+xSoW3MIq81bD33lcUe9kZpl0MCw==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.27.1", "@babel/traverse": "^7.28.5" @@ -3165,7 +3169,6 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.28.6.tgz", "integrity": "sha512-SljjowuNKB7q5Oayv4FoPzeB74g3QgLt8IVJw9ADvWy3QnUb/01aw8I4AVv8wYnPvQz2GDDZ/g3GhcNyDBI4Bg==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-create-regexp-features-plugin": "^7.28.5", "@babel/helper-plugin-utils": "^7.28.6" @@ -3182,7 +3185,6 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.27.1.tgz", "integrity": "sha512-MTyJk98sHvSs+cvZ4nOauwTTG1JeonDjSGvGGUNHreGQns+Mpt6WX/dVzWBHgg+dYZhkC4X+zTDfkTU+Vy9y7Q==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" }, @@ -3194,11 +3196,10 @@ } }, "node_modules/@babel/plugin-transform-duplicate-named-capturing-groups-regex": { - "version": "7.28.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-named-capturing-groups-regex/-/plugin-transform-duplicate-named-capturing-groups-regex-7.28.6.tgz", - "integrity": "sha512-5suVoXjC14lUN6ZL9OLKIHCNVWCrqGqlmEp/ixdXjvgnEl/kauLvvMO/Xw9NyMc95Joj1AeLVPVMvibBgSoFlA==", + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-named-capturing-groups-regex/-/plugin-transform-duplicate-named-capturing-groups-regex-7.29.0.tgz", + "integrity": "sha512-zBPcW2lFGxdiD8PUnPwJjag2J9otbcLQzvbiOzDxpYXyCuYX9agOwMPGn1prVH0a4qzhCKu24rlH4c1f7yA8rw==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-create-regexp-features-plugin": "^7.28.5", "@babel/helper-plugin-utils": "^7.28.6" @@ -3215,7 +3216,6 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.27.1.tgz", "integrity": "sha512-MHzkWQcEmjzzVW9j2q8LGjwGWpG2mjwaaB0BNQwst3FIjqsg8Ct/mIZlvSPJvfi9y2AC8mi/ktxbFVL9pZ1I4A==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" }, @@ -3231,7 +3231,6 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-explicit-resource-management/-/plugin-transform-explicit-resource-management-7.28.6.tgz", "integrity": "sha512-Iao5Konzx2b6g7EPqTy40UZbcdXE126tTxVFr/nAIj+WItNxjKSYTEw3RC+A2/ZetmdJsgueL1KhaMCQHkLPIg==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.28.6", "@babel/plugin-transform-destructuring": "^7.28.5" @@ -3248,7 +3247,6 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.28.6.tgz", "integrity": "sha512-WitabqiGjV/vJ0aPOLSFfNY1u9U3R7W36B03r5I2KoNix+a3sOhJ3pKFB3R5It9/UiK78NiO0KE9P21cMhlPkw==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.28.6" }, @@ -3264,7 +3262,6 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.27.1.tgz", "integrity": "sha512-tQvHWSZ3/jH2xuq/vZDy0jNn+ZdXJeM8gHvX4lnJmsc3+50yPlWdZXIc5ay+umX+2/tJIqHqiEqcJvxlmIvRvQ==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" }, @@ -3280,7 +3277,6 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.27.1.tgz", "integrity": "sha512-BfbWFFEJFQzLCQ5N8VocnCtA8J1CLkNTe2Ms2wocj75dd6VpiqS5Z5quTYcUoo4Yq+DN0rtikODccuv7RU81sw==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.27.1", "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1" @@ -3297,7 +3293,6 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.27.1.tgz", "integrity": "sha512-1bQeydJF9Nr1eBCMMbC+hdwmRlsv5XYOMu03YSWFwNs0HsAmtSxxF1fyuYPqemVldVyFmlCU7w8UE14LupUSZQ==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-compilation-targets": "^7.27.1", "@babel/helper-plugin-utils": "^7.27.1", @@ -3315,7 +3310,6 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.28.6.tgz", "integrity": "sha512-Nr+hEN+0geQkzhbdgQVPoqr47lZbm+5fCUmO70722xJZd0Mvb59+33QLImGj6F+DkK3xgDi1YVysP8whD6FQAw==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.28.6" }, @@ -3331,7 +3325,6 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.27.1.tgz", "integrity": "sha512-0HCFSepIpLTkLcsi86GG3mTUzxV5jpmbv97hTETW3yzrAij8aqlD36toB1D0daVFJM8NK6GvKO0gslVQmm+zZA==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" }, @@ -3347,7 +3340,6 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.28.6.tgz", "integrity": "sha512-+anKKair6gpi8VsM/95kmomGNMD0eLz1NQ8+Pfw5sAwWH9fGYXT50E55ZpV0pHUHWf6IUTWPM+f/7AAff+wr9A==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.28.6" }, @@ -3363,7 +3355,6 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.27.1.tgz", "integrity": "sha512-hqoBX4dcZ1I33jCSWcXrP+1Ku7kdqXf1oeah7ooKOIiAdKQ+uqftgCFNOSzA5AMS2XIHEYeGFg4cKRCdpxzVOQ==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" }, @@ -3379,7 +3370,6 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.27.1.tgz", "integrity": "sha512-iCsytMg/N9/oFq6n+gFTvUYDZQOMK5kEdeYxmxt91fcJGycfxVP9CnrxoliM0oumFERba2i8ZtwRUCMhvP1LnA==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-module-transforms": "^7.27.1", "@babel/helper-plugin-utils": "^7.27.1" @@ -3396,7 +3386,6 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.28.6.tgz", "integrity": "sha512-jppVbf8IV9iWWwWTQIxJMAJCWBuuKx71475wHwYytrRGQ2CWiDvYlADQno3tcYpS/T2UUWFQp3nVtYfK/YBQrA==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-module-transforms": "^7.28.6", "@babel/helper-plugin-utils": "^7.28.6" @@ -3409,16 +3398,15 @@ } }, "node_modules/@babel/plugin-transform-modules-systemjs": { - "version": "7.28.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.28.5.tgz", - "integrity": "sha512-vn5Jma98LCOeBy/KpeQhXcV2WZgaRUtjwQmjoBuLNlOmkg0fB5pdvYVeWRYI69wWKwK2cD1QbMiUQnoujWvrew==", + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.29.0.tgz", + "integrity": "sha512-PrujnVFbOdUpw4UHiVwKvKRLMMic8+eC0CuNlxjsyZUiBjhFdPsewdXCkveh2KqBA9/waD0W1b4hXSOBQJezpQ==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/helper-module-transforms": "^7.28.3", - "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-module-transforms": "^7.28.6", + "@babel/helper-plugin-utils": "^7.28.6", "@babel/helper-validator-identifier": "^7.28.5", - "@babel/traverse": "^7.28.5" + "@babel/traverse": "^7.29.0" }, "engines": { "node": ">=6.9.0" @@ -3432,7 +3420,6 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.27.1.tgz", "integrity": "sha512-iQBE/xC5BV1OxJbp6WG7jq9IWiD+xxlZhLrdwpPkTX3ydmXdvoCpyfJN7acaIBZaOqTfr76pgzqBJflNbeRK+w==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-module-transforms": "^7.27.1", "@babel/helper-plugin-utils": "^7.27.1" @@ -3445,14 +3432,13 @@ } }, "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.27.1.tgz", - "integrity": "sha512-SstR5JYy8ddZvD6MhV0tM/j16Qds4mIpJTOd1Yu9J9pJjH93bxHECF7pgtc28XvkzTD6Pxcm/0Z73Hvk7kb3Ng==", + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.29.0.tgz", + "integrity": "sha512-1CZQA5KNAD6ZYQLPw7oi5ewtDNxH/2vuCh+6SmvgDfhumForvs8a1o9n0UrEoBD8HU4djO2yWngTQlXl1NDVEQ==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.27.1", - "@babel/helper-plugin-utils": "^7.27.1" + "@babel/helper-create-regexp-features-plugin": "^7.28.5", + "@babel/helper-plugin-utils": "^7.28.6" }, "engines": { "node": ">=6.9.0" @@ -3466,7 +3452,6 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.27.1.tgz", "integrity": "sha512-f6PiYeqXQ05lYq3TIfIDu/MtliKUbNwkGApPUvyo6+tc7uaR4cPjPe7DFPr15Uyycg2lZU6btZ575CuQoYh7MQ==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" }, @@ -3482,7 +3467,6 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.28.6.tgz", "integrity": "sha512-3wKbRgmzYbw24mDJXT7N+ADXw8BC/imU9yo9c9X9NKaLF1fW+e5H1U5QjMUBe4Qo4Ox/o++IyUkl1sVCLgevKg==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.28.6" }, @@ -3498,7 +3482,6 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.28.6.tgz", "integrity": "sha512-SJR8hPynj8outz+SlStQSwvziMN4+Bq99it4tMIf5/Caq+3iOc0JtKyse8puvyXkk3eFRIA5ID/XfunGgO5i6w==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.28.6" }, @@ -3514,7 +3497,6 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.28.6.tgz", "integrity": "sha512-5rh+JR4JBC4pGkXLAcYdLHZjXudVxWMXbB6u6+E9lRL5TrGVbHt1TjxGbZ8CkmYw9zjkB7jutzOROArsqtncEA==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-compilation-targets": "^7.28.6", "@babel/helper-plugin-utils": "^7.28.6", @@ -3534,7 +3516,6 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.27.1.tgz", "integrity": "sha512-SFy8S9plRPbIcxlJ8A6mT/CxFdJx/c04JEctz4jf8YZaVS2px34j7NXRrlGlHkN/M2gnpL37ZpGRGVFLd3l8Ng==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.27.1", "@babel/helper-replace-supers": "^7.27.1" @@ -3551,7 +3532,6 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.28.6.tgz", "integrity": "sha512-R8ja/Pyrv0OGAvAXQhSTmWyPJPml+0TMqXlO5w+AsMEiwb2fg3WkOvob7UxFSL3OIttFSGSRFKQsOhJ/X6HQdQ==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.28.6" }, @@ -3567,7 +3547,6 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.28.6.tgz", "integrity": "sha512-A4zobikRGJTsX9uqVFdafzGkqD30t26ck2LmOzAuLL8b2x6k3TIqRiT2xVvA9fNmFeTX484VpsdgmKNA0bS23w==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.28.6", "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1" @@ -3584,7 +3563,6 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.27.7.tgz", "integrity": "sha512-qBkYTYCb76RRxUM6CcZA5KRu8K4SM8ajzVeUgVdMVO9NN9uI/GaVmBg/WKJJGnNokV9SY8FxNOVWGXzqzUidBg==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" }, @@ -3600,7 +3578,6 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.28.6.tgz", "integrity": "sha512-piiuapX9CRv7+0st8lmuUlRSmX6mBcVeNQ1b4AYzJxfCMuBfB0vBXDiGSmm03pKJw1v6cZ8KSeM+oUnM6yAExg==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-create-class-features-plugin": "^7.28.6", "@babel/helper-plugin-utils": "^7.28.6" @@ -3617,7 +3594,6 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.28.6.tgz", "integrity": "sha512-b97jvNSOb5+ehyQmBpmhOCiUC5oVK4PMnpRvO7+ymFBoqYjeDHIU9jnrNUuwHOiL9RpGDoKBpSViarV+BU+eVA==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-annotate-as-pure": "^7.27.3", "@babel/helper-create-class-features-plugin": "^7.28.6", @@ -3635,7 +3611,6 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.27.1.tgz", "integrity": "sha512-oThy3BCuCha8kDZ8ZkgOg2exvPYUlprMukKQXI1r1pJ47NCvxfkEy8vK+r/hT9nF0Aa4H1WUPZZjHTFtAhGfmQ==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" }, @@ -3647,11 +3622,10 @@ } }, "node_modules/@babel/plugin-transform-regenerator": { - "version": "7.28.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.28.6.tgz", - "integrity": "sha512-eZhoEZHYQLL5uc1gS5e9/oTknS0sSSAtd5TkKMUp3J+S/CaUjagc0kOUPsEbDmMeva0nC3WWl4SxVY6+OBuxfw==", + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.29.0.tgz", + "integrity": "sha512-FijqlqMA7DmRdg/aINBSs04y8XNTYw/lr1gJ2WsmBnnaNw1iS43EPkJW+zK7z65auG3AWRFXWj+NcTQwYptUog==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.28.6" }, @@ -3667,7 +3641,6 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regexp-modifiers/-/plugin-transform-regexp-modifiers-7.28.6.tgz", "integrity": "sha512-QGWAepm9qxpaIs7UM9FvUSnCGlb8Ua1RhyM4/veAxLwt3gMat/LSGrZixyuj4I6+Kn9iwvqCyPTtbdxanYoWYg==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-create-regexp-features-plugin": "^7.28.5", "@babel/helper-plugin-utils": "^7.28.6" @@ -3684,7 +3657,6 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.27.1.tgz", "integrity": "sha512-V2ABPHIJX4kC7HegLkYoDpfg9PVmuWy/i6vUM5eGK22bx4YVFD3M5F0QQnWQoDs6AGsUWTVOopBiMFQgHaSkVw==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" }, @@ -3696,14 +3668,13 @@ } }, "node_modules/@babel/plugin-transform-runtime": { - "version": "7.28.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.28.5.tgz", - "integrity": "sha512-20NUVgOrinudkIBzQ2bNxP08YpKprUkRTiRSd2/Z5GOdPImJGkoN4Z7IQe1T5AdyKI1i5L6RBmluqdSzvaq9/w==", + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.29.0.tgz", + "integrity": "sha512-jlaRT5dJtMaMCV6fAuLbsQMSwz/QkvaHOHOSXRitGGwSpR1blCY4KUKoyP2tYO8vJcqYe8cEj96cqSztv3uF9w==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/helper-module-imports": "^7.27.1", - "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-module-imports": "^7.28.6", + "@babel/helper-plugin-utils": "^7.28.6", "babel-plugin-polyfill-corejs2": "^0.4.14", "babel-plugin-polyfill-corejs3": "^0.13.0", "babel-plugin-polyfill-regenerator": "^0.6.5", @@ -3721,7 +3692,6 @@ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, - "license": "ISC", "bin": { "semver": "bin/semver.js" } @@ -3731,7 +3701,6 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.27.1.tgz", "integrity": "sha512-N/wH1vcn4oYawbJ13Y/FxcQrWk63jhfNa7jef0ih7PHSIHX2LB7GWE1rkPrOnka9kwMxb6hMl19p7lidA+EHmQ==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" }, @@ -3747,7 +3716,6 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.28.6.tgz", "integrity": "sha512-9U4QObUC0FtJl05AsUcodau/RWDytrU6uKgkxu09mLR9HLDAtUMoPuuskm5huQsoktmsYpI+bGmq+iapDcriKA==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.28.6", "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1" @@ -3764,7 +3732,6 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.27.1.tgz", "integrity": "sha512-lhInBO5bi/Kowe2/aLdBAawijx+q1pQzicSgnkB6dUPc1+RC8QmJHKf2OjvU+NZWitguJHEaEmbV6VWEouT58g==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" }, @@ -3780,7 +3747,6 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.27.1.tgz", "integrity": "sha512-fBJKiV7F2DxZUkg5EtHKXQdbsbURW3DZKQUWphDum0uRP6eHGGa/He9mc0mypL680pb+e/lDIthRohlv8NCHkg==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" }, @@ -3796,7 +3762,6 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.27.1.tgz", "integrity": "sha512-RiSILC+nRJM7FY5srIyc4/fGIwUhyDuuBSdWn4y6yT6gm652DpCHZjIipgn6B7MQ1ITOUnAKWixEUjQRIBIcLw==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" }, @@ -3812,7 +3777,6 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.27.1.tgz", "integrity": "sha512-Ysg4v6AmF26k9vpfFuTZg8HRfVWzsh1kVfowA23y9j/Gu6dOuahdUVhkLqpObp3JIv27MLSii6noRnuKN8H0Mg==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" }, @@ -3828,7 +3792,6 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.28.6.tgz", "integrity": "sha512-4Wlbdl/sIZjzi/8St0evF0gEZrgOswVO6aOzqxh1kDZOl9WmLrHq2HtGhnOJZmHZYKP8WZ1MDLCt5DAWwRo57A==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-create-regexp-features-plugin": "^7.28.5", "@babel/helper-plugin-utils": "^7.28.6" @@ -3845,7 +3808,6 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.27.1.tgz", "integrity": "sha512-xvINq24TRojDuyt6JGtHmkVkrfVV3FPT16uytxImLeBZqW3/H52yN+kM1MGuyPkIQxrzKwPHs5U/MP3qKyzkGw==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-create-regexp-features-plugin": "^7.27.1", "@babel/helper-plugin-utils": "^7.27.1" @@ -3862,7 +3824,6 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.28.6.tgz", "integrity": "sha512-/wHc/paTUmsDYN7SZkpWxogTOBNnlx7nBQYfy6JJlCT7G3mVhltk3e++N7zV0XfgGsrqBxd4rJQt9H16I21Y1Q==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-create-regexp-features-plugin": "^7.28.5", "@babel/helper-plugin-utils": "^7.28.6" @@ -3875,81 +3836,80 @@ } }, "node_modules/@babel/preset-env": { - "version": "7.28.5", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.28.5.tgz", - "integrity": "sha512-S36mOoi1Sb6Fz98fBfE+UZSpYw5mJm0NUHtIKrOuNcqeFauy1J6dIvXm2KRVKobOSaGq4t/hBXdN4HGU3wL9Wg==", + "version": "7.29.2", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.29.2.tgz", + "integrity": "sha512-DYD23veRYGvBFhcTY1iUvJnDNpuqNd/BzBwCvzOTKUnJjKg5kpUBh3/u9585Agdkgj+QuygG7jLfOPWMa2KVNw==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/compat-data": "^7.28.5", - "@babel/helper-compilation-targets": "^7.27.2", - "@babel/helper-plugin-utils": "^7.27.1", + "@babel/compat-data": "^7.29.0", + "@babel/helper-compilation-targets": "^7.28.6", + "@babel/helper-plugin-utils": "^7.28.6", "@babel/helper-validator-option": "^7.27.1", "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.28.5", "@babel/plugin-bugfix-safari-class-field-initializer-scope": "^7.27.1", "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.27.1", "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.27.1", - "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.28.3", + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.28.6", "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", - "@babel/plugin-syntax-import-assertions": "^7.27.1", - "@babel/plugin-syntax-import-attributes": "^7.27.1", + "@babel/plugin-syntax-import-assertions": "^7.28.6", + "@babel/plugin-syntax-import-attributes": "^7.28.6", "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", "@babel/plugin-transform-arrow-functions": "^7.27.1", - "@babel/plugin-transform-async-generator-functions": "^7.28.0", - "@babel/plugin-transform-async-to-generator": "^7.27.1", + "@babel/plugin-transform-async-generator-functions": "^7.29.0", + "@babel/plugin-transform-async-to-generator": "^7.28.6", "@babel/plugin-transform-block-scoped-functions": "^7.27.1", - "@babel/plugin-transform-block-scoping": "^7.28.5", - "@babel/plugin-transform-class-properties": "^7.27.1", - "@babel/plugin-transform-class-static-block": "^7.28.3", - "@babel/plugin-transform-classes": "^7.28.4", - "@babel/plugin-transform-computed-properties": "^7.27.1", + "@babel/plugin-transform-block-scoping": "^7.28.6", + "@babel/plugin-transform-class-properties": "^7.28.6", + "@babel/plugin-transform-class-static-block": "^7.28.6", + "@babel/plugin-transform-classes": "^7.28.6", + "@babel/plugin-transform-computed-properties": "^7.28.6", "@babel/plugin-transform-destructuring": "^7.28.5", - "@babel/plugin-transform-dotall-regex": "^7.27.1", + "@babel/plugin-transform-dotall-regex": "^7.28.6", "@babel/plugin-transform-duplicate-keys": "^7.27.1", - "@babel/plugin-transform-duplicate-named-capturing-groups-regex": "^7.27.1", + "@babel/plugin-transform-duplicate-named-capturing-groups-regex": "^7.29.0", "@babel/plugin-transform-dynamic-import": "^7.27.1", - "@babel/plugin-transform-explicit-resource-management": "^7.28.0", - "@babel/plugin-transform-exponentiation-operator": "^7.28.5", + "@babel/plugin-transform-explicit-resource-management": "^7.28.6", + "@babel/plugin-transform-exponentiation-operator": "^7.28.6", "@babel/plugin-transform-export-namespace-from": "^7.27.1", "@babel/plugin-transform-for-of": "^7.27.1", "@babel/plugin-transform-function-name": "^7.27.1", - "@babel/plugin-transform-json-strings": "^7.27.1", + "@babel/plugin-transform-json-strings": "^7.28.6", "@babel/plugin-transform-literals": "^7.27.1", - "@babel/plugin-transform-logical-assignment-operators": "^7.28.5", + "@babel/plugin-transform-logical-assignment-operators": "^7.28.6", "@babel/plugin-transform-member-expression-literals": "^7.27.1", "@babel/plugin-transform-modules-amd": "^7.27.1", - "@babel/plugin-transform-modules-commonjs": "^7.27.1", - "@babel/plugin-transform-modules-systemjs": "^7.28.5", + "@babel/plugin-transform-modules-commonjs": "^7.28.6", + "@babel/plugin-transform-modules-systemjs": "^7.29.0", "@babel/plugin-transform-modules-umd": "^7.27.1", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.27.1", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.29.0", "@babel/plugin-transform-new-target": "^7.27.1", - "@babel/plugin-transform-nullish-coalescing-operator": "^7.27.1", - "@babel/plugin-transform-numeric-separator": "^7.27.1", - "@babel/plugin-transform-object-rest-spread": "^7.28.4", + "@babel/plugin-transform-nullish-coalescing-operator": "^7.28.6", + "@babel/plugin-transform-numeric-separator": "^7.28.6", + "@babel/plugin-transform-object-rest-spread": "^7.28.6", "@babel/plugin-transform-object-super": "^7.27.1", - "@babel/plugin-transform-optional-catch-binding": "^7.27.1", - "@babel/plugin-transform-optional-chaining": "^7.28.5", + "@babel/plugin-transform-optional-catch-binding": "^7.28.6", + "@babel/plugin-transform-optional-chaining": "^7.28.6", "@babel/plugin-transform-parameters": "^7.27.7", - "@babel/plugin-transform-private-methods": "^7.27.1", - "@babel/plugin-transform-private-property-in-object": "^7.27.1", + "@babel/plugin-transform-private-methods": "^7.28.6", + "@babel/plugin-transform-private-property-in-object": "^7.28.6", "@babel/plugin-transform-property-literals": "^7.27.1", - "@babel/plugin-transform-regenerator": "^7.28.4", - "@babel/plugin-transform-regexp-modifiers": "^7.27.1", + "@babel/plugin-transform-regenerator": "^7.29.0", + "@babel/plugin-transform-regexp-modifiers": "^7.28.6", "@babel/plugin-transform-reserved-words": "^7.27.1", "@babel/plugin-transform-shorthand-properties": "^7.27.1", - "@babel/plugin-transform-spread": "^7.27.1", + "@babel/plugin-transform-spread": "^7.28.6", "@babel/plugin-transform-sticky-regex": "^7.27.1", "@babel/plugin-transform-template-literals": "^7.27.1", "@babel/plugin-transform-typeof-symbol": "^7.27.1", "@babel/plugin-transform-unicode-escapes": "^7.27.1", - "@babel/plugin-transform-unicode-property-regex": "^7.27.1", + "@babel/plugin-transform-unicode-property-regex": "^7.28.6", "@babel/plugin-transform-unicode-regex": "^7.27.1", - "@babel/plugin-transform-unicode-sets-regex": "^7.27.1", + "@babel/plugin-transform-unicode-sets-regex": "^7.28.6", "@babel/preset-modules": "0.1.6-no-external-plugins", - "babel-plugin-polyfill-corejs2": "^0.4.14", - "babel-plugin-polyfill-corejs3": "^0.13.0", - "babel-plugin-polyfill-regenerator": "^0.6.5", - "core-js-compat": "^3.43.0", + "babel-plugin-polyfill-corejs2": "^0.4.15", + "babel-plugin-polyfill-corejs3": "^0.14.0", + "babel-plugin-polyfill-regenerator": "^0.6.6", + "core-js-compat": "^3.48.0", "semver": "^6.3.1" }, "engines": { @@ -3959,12 +3919,24 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/preset-env/node_modules/babel-plugin-polyfill-corejs3": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.14.2.tgz", + "integrity": "sha512-coWpDLJ410R781Npmn/SIBZEsAetR4xVi0SxLMXPaMO4lSf1MwnkGYMtkFxew0Dn8B3/CpbpYxN0JCgg8mn67g==", + "dev": true, + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.6.8", + "core-js-compat": "^3.48.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.1", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, - "license": "ISC", "bin": { "semver": "bin/semver.js" } @@ -3974,7 +3946,6 @@ "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, - "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.0.0", "@babel/types": "^7.4.4", @@ -3985,10 +3956,9 @@ } }, "node_modules/@babel/runtime": { - "version": "7.28.4", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.28.4.tgz", - "integrity": "sha512-Q/N6JNWvIvPnLDvjlE1OUBLPQHH6l3CltCEsHIujp45zQUSSh8K+gHnaEX45yAT1nyngnINhvWtzN+Nb9D8RAQ==", - "license": "MIT", + "version": "7.29.2", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.29.2.tgz", + "integrity": "sha512-JiDShH45zKHWyGe4ZNVRrCjBz8Nh9TMmZG1kh4QTK8hCBTWBi8Da+i7s1fJw7/lYpM4ccepSNfqzZ/QvABBi5g==", "engines": { "node": ">=6.9.0" } @@ -4020,44 +3990,26 @@ } }, "node_modules/@babel/traverse": { - "version": "7.28.6", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.28.6.tgz", - "integrity": "sha512-fgWX62k02qtjqdSNTAGxmKYY/7FSL9WAS1o2Hu5+I5m9T0yxZzr4cnrfXQ/MX0rIifthCSs6FKTlzYbJcPtMNg==", - "license": "MIT", + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.29.0.tgz", + "integrity": "sha512-4HPiQr0X7+waHfyXPZpWPfWL/J7dcN1mx9gL6WdQVMbPnF3+ZhSMs8tCxN7oHddJE9fhNE7+lxdnlyemKfJRuA==", "dependencies": { - "@babel/code-frame": "^7.28.6", - "@babel/generator": "^7.28.6", + "@babel/code-frame": "^7.29.0", + "@babel/generator": "^7.29.0", "@babel/helper-globals": "^7.28.0", - "@babel/parser": "^7.28.6", + "@babel/parser": "^7.29.0", "@babel/template": "^7.28.6", - "@babel/types": "^7.28.6", + "@babel/types": "^7.29.0", "debug": "^4.3.1" }, "engines": { "node": ">=6.9.0" } }, - "node_modules/@babel/traverse/node_modules/@babel/generator": { - "version": "7.28.6", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.28.6.tgz", - "integrity": "sha512-lOoVRwADj8hjf7al89tvQ2a1lf53Z+7tiXMgpZJL3maQPDxh0DgLMN62B2MKUOFcoodBHLMbDM6WAbKgNy5Suw==", - "license": "MIT", - "dependencies": { - "@babel/parser": "^7.28.6", - "@babel/types": "^7.28.6", - "@jridgewell/gen-mapping": "^0.3.12", - "@jridgewell/trace-mapping": "^0.3.28", - "jsesc": "^3.0.2" - }, - "engines": { - "node": ">=6.9.0" - } - }, "node_modules/@babel/types": { - "version": "7.28.6", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.6.tgz", - "integrity": "sha512-0ZrskXVEHSWIqZM/sQZ4EV3jZJXRkio/WCxaqKZP1g//CEWEPSfeZFcms4XeKBCHU0ZKnIkdJeU/kF+eRp5lBg==", - "license": "MIT", + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.29.0.tgz", + "integrity": "sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A==", "dependencies": { "@babel/helper-string-parser": "^7.27.1", "@babel/helper-validator-identifier": "^7.28.5" @@ -4066,6 +4018,16 @@ "node": ">=6.9.0" } }, + "node_modules/@bcoe/v8-coverage": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-1.0.2.tgz", + "integrity": "sha512-6zABk/ECA/QYSCQ1NGiVwwbQerUCZ+TQbp64Q3AgmfNvurHH0j8TtXa1qbShXA6qqkpAj4V5W8pP6mLe1mcMqA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + } + }, "node_modules/@blocknote/core": { "version": "0.44.2", "resolved": "https://registry.npmjs.org/@blocknote/core/-/core-0.44.2.tgz", @@ -4186,13 +4148,17 @@ "integrity": "sha512-i1L7noDNxtFyL5DmZafWy1wRVhGehQmzZaz1HiN5e7iylJMSZR7ekOV7NsIqa5qBldlLrsKv4HbgFUVlQrz8Mw==", "license": "MIT" }, - "node_modules/@colors/colors": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", - "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==", + "node_modules/@bramus/specificity": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/@bramus/specificity/-/specificity-2.4.2.tgz", + "integrity": "sha512-ctxtJ/eA+t+6q2++vj5j7FYX3nRu311q1wfYH3xjlLOsczhlhxAg2FWNUXhpGvAw3BWo1xBcvOV6/YLc2r5FJw==", "dev": true, - "engines": { - "node": ">=0.1.90" + "license": "MIT", + "dependencies": { + "css-tree": "^3.0.0" + }, + "bin": { + "specificity": "bin/cli.js" } }, "node_modules/@cspotcode/source-map-support": { @@ -4219,6 +4185,146 @@ "@jridgewell/sourcemap-codec": "^1.4.10" } }, + "node_modules/@csstools/color-helpers": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/@csstools/color-helpers/-/color-helpers-6.0.2.tgz", + "integrity": "sha512-LMGQLS9EuADloEFkcTBR3BwV/CGHV7zyDxVRtVDTwdI2Ca4it0CCVTT9wCkxSgokjE5Ho41hEPgb8OEUwoXr6Q==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "engines": { + "node": ">=20.19.0" + } + }, + "node_modules/@csstools/css-calc": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@csstools/css-calc/-/css-calc-3.2.0.tgz", + "integrity": "sha512-bR9e6o2BDB12jzN/gIbjHa5wLJ4UjD1CB9pM7ehlc0ddk6EBz+yYS1EV2MF55/HUxrHcB/hehAyt5vhsA3hx7w==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "engines": { + "node": ">=20.19.0" + }, + "peerDependencies": { + "@csstools/css-parser-algorithms": "^4.0.0", + "@csstools/css-tokenizer": "^4.0.0" + } + }, + "node_modules/@csstools/css-color-parser": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@csstools/css-color-parser/-/css-color-parser-4.1.0.tgz", + "integrity": "sha512-U0KhLYmy2GVj6q4T3WaAe6NPuFYCPQoE3b0dRGxejWDgcPp8TP7S5rVdM5ZrFaqu4N67X8YaPBw14dQSYx3IyQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "dependencies": { + "@csstools/color-helpers": "^6.0.2", + "@csstools/css-calc": "^3.2.0" + }, + "engines": { + "node": ">=20.19.0" + }, + "peerDependencies": { + "@csstools/css-parser-algorithms": "^4.0.0", + "@csstools/css-tokenizer": "^4.0.0" + } + }, + "node_modules/@csstools/css-parser-algorithms": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-4.0.0.tgz", + "integrity": "sha512-+B87qS7fIG3L5h3qwJ/IFbjoVoOe/bpOdh9hAjXbvx0o8ImEmUsGXN0inFOnk2ChCFgqkkGFQ+TpM5rbhkKe4w==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "engines": { + "node": ">=20.19.0" + }, + "peerDependencies": { + "@csstools/css-tokenizer": "^4.0.0" + } + }, + "node_modules/@csstools/css-syntax-patches-for-csstree": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@csstools/css-syntax-patches-for-csstree/-/css-syntax-patches-for-csstree-1.1.3.tgz", + "integrity": "sha512-SH60bMfrRCJF3morcdk57WklujF4Jr/EsQUzqkarfHXEFcAR1gg7fS/chAE922Sehgzc1/+Tz5H3Ypa1HiEKrg==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "peerDependencies": { + "css-tree": "^3.2.1" + }, + "peerDependenciesMeta": { + "css-tree": { + "optional": true + } + } + }, + "node_modules/@csstools/css-tokenizer": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-4.0.0.tgz", + "integrity": "sha512-QxULHAm7cNu72w97JUNCBFODFaXpbDg+dP8b/oWFAZ2MTRppA3U00Y2L1HqaS4J6yBqxwa/Y3nMBaxVKbB/NsA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "engines": { + "node": ">=20.19.0" + } + }, "node_modules/@datorama/akita": { "version": "8.0.1", "resolved": "https://registry.npmjs.org/@datorama/akita/-/akita-8.0.1.tgz", @@ -4228,40 +4334,6 @@ "tslib": "2.4.1" } }, - "node_modules/@emnapi/core": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.8.1.tgz", - "integrity": "sha512-AvT9QFpxK0Zd8J0jopedNm+w/2fIzvtPKPjqyw9jwvBaReTTqPBk9Hixaz7KbjimP+QNz605/XnjFcDAL2pqBg==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "@emnapi/wasi-threads": "1.1.0", - "tslib": "^2.4.0" - } - }, - "node_modules/@emnapi/runtime": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.8.1.tgz", - "integrity": "sha512-mehfKSMWjjNol8659Z8KxEMrdSJDDot5SXMq00dM8BN4o+CLNXQ0xH2V7EchNHV4RmbZLmmPdEaXZc5H2FXmDg==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "tslib": "^2.4.0" - } - }, - "node_modules/@emnapi/wasi-threads": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.1.0.tgz", - "integrity": "sha512-WI0DdZ8xFSbgMjR1sFsKABJ/C5OnRrjT06JXbZKexJGrDuPTzZdDYfFlsgcCXCyf+suG5QU2e/y1Wo2V/OapLQ==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "tslib": "^2.4.0" - } - }, "node_modules/@emoji-mart/data": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/@emoji-mart/data/-/data-1.2.1.tgz", @@ -4290,14 +4362,13 @@ "license": "MIT" }, "node_modules/@esbuild/aix-ppc64": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.27.2.tgz", - "integrity": "sha512-GZMB+a0mOMZs4MpDbj8RJp4cw+w1WV5NYD6xzgvzUJ5Ek2jerwfO2eADyI6ExDSUED+1X8aMbegahsJi+8mgpw==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.27.3.tgz", + "integrity": "sha512-9fJMTNFTWZMh5qwrBItuziu834eOCUcEqymSH7pY+zoMVEZg3gcPuBNxH1EvfVYe9h0x/Ptw8KBzv7qxb7l8dg==", "cpu": [ "ppc64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "aix" @@ -4307,14 +4378,13 @@ } }, "node_modules/@esbuild/android-arm": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.27.2.tgz", - "integrity": "sha512-DVNI8jlPa7Ujbr1yjU2PfUSRtAUZPG9I1RwW4F4xFB1Imiu2on0ADiI/c3td+KmDtVKNbi+nffGDQMfcIMkwIA==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.27.3.tgz", + "integrity": "sha512-i5D1hPY7GIQmXlXhs2w8AWHhenb00+GxjxRncS2ZM7YNVGNfaMxgzSGuO8o8SJzRc/oZwU2bcScvVERk03QhzA==", "cpu": [ "arm" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "android" @@ -4324,14 +4394,13 @@ } }, "node_modules/@esbuild/android-arm64": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.27.2.tgz", - "integrity": "sha512-pvz8ZZ7ot/RBphf8fv60ljmaoydPU12VuXHImtAs0XhLLw+EXBi2BLe3OYSBslR4rryHvweW5gmkKFwTiFy6KA==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.27.3.tgz", + "integrity": "sha512-YdghPYUmj/FX2SYKJ0OZxf+iaKgMsKHVPF1MAq/P8WirnSpCStzKJFjOjzsW0QQ7oIAiccHdcqjbHmJxRb/dmg==", "cpu": [ "arm64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "android" @@ -4341,14 +4410,13 @@ } }, "node_modules/@esbuild/android-x64": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.27.2.tgz", - "integrity": "sha512-z8Ank4Byh4TJJOh4wpz8g2vDy75zFL0TlZlkUkEwYXuPSgX8yzep596n6mT7905kA9uHZsf/o2OJZubl2l3M7A==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.27.3.tgz", + "integrity": "sha512-IN/0BNTkHtk8lkOM8JWAYFg4ORxBkZQf9zXiEOfERX/CzxW3Vg1ewAhU7QSWQpVIzTW+b8Xy+lGzdYXV6UZObQ==", "cpu": [ "x64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "android" @@ -4358,14 +4426,13 @@ } }, "node_modules/@esbuild/darwin-arm64": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.27.2.tgz", - "integrity": "sha512-davCD2Zc80nzDVRwXTcQP/28fiJbcOwvdolL0sOiOsbwBa72kegmVU0Wrh1MYrbuCL98Omp5dVhQFWRKR2ZAlg==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.27.3.tgz", + "integrity": "sha512-Re491k7ByTVRy0t3EKWajdLIr0gz2kKKfzafkth4Q8A5n1xTHrkqZgLLjFEHVD+AXdUGgQMq+Godfq45mGpCKg==", "cpu": [ "arm64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "darwin" @@ -4375,14 +4442,13 @@ } }, "node_modules/@esbuild/darwin-x64": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.27.2.tgz", - "integrity": "sha512-ZxtijOmlQCBWGwbVmwOF/UCzuGIbUkqB1faQRf5akQmxRJ1ujusWsb3CVfk/9iZKr2L5SMU5wPBi1UWbvL+VQA==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.27.3.tgz", + "integrity": "sha512-vHk/hA7/1AckjGzRqi6wbo+jaShzRowYip6rt6q7VYEDX4LEy1pZfDpdxCBnGtl+A5zq8iXDcyuxwtv3hNtHFg==", "cpu": [ "x64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "darwin" @@ -4392,14 +4458,13 @@ } }, "node_modules/@esbuild/freebsd-arm64": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.27.2.tgz", - "integrity": "sha512-lS/9CN+rgqQ9czogxlMcBMGd+l8Q3Nj1MFQwBZJyoEKI50XGxwuzznYdwcav6lpOGv5BqaZXqvBSiB/kJ5op+g==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.27.3.tgz", + "integrity": "sha512-ipTYM2fjt3kQAYOvo6vcxJx3nBYAzPjgTCk7QEgZG8AUO3ydUhvelmhrbOheMnGOlaSFUoHXB6un+A7q4ygY9w==", "cpu": [ "arm64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "freebsd" @@ -4409,14 +4474,13 @@ } }, "node_modules/@esbuild/freebsd-x64": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.27.2.tgz", - "integrity": "sha512-tAfqtNYb4YgPnJlEFu4c212HYjQWSO/w/h/lQaBK7RbwGIkBOuNKQI9tqWzx7Wtp7bTPaGC6MJvWI608P3wXYA==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.27.3.tgz", + "integrity": "sha512-dDk0X87T7mI6U3K9VjWtHOXqwAMJBNN2r7bejDsc+j03SEjtD9HrOl8gVFByeM0aJksoUuUVU9TBaZa2rgj0oA==", "cpu": [ "x64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "freebsd" @@ -4426,14 +4490,13 @@ } }, "node_modules/@esbuild/linux-arm": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.27.2.tgz", - "integrity": "sha512-vWfq4GaIMP9AIe4yj1ZUW18RDhx6EPQKjwe7n8BbIecFtCQG4CfHGaHuh7fdfq+y3LIA2vGS/o9ZBGVxIDi9hw==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.27.3.tgz", + "integrity": "sha512-s6nPv2QkSupJwLYyfS+gwdirm0ukyTFNl3KTgZEAiJDd+iHZcbTPPcWCcRYH+WlNbwChgH2QkE9NSlNrMT8Gfw==", "cpu": [ "arm" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "linux" @@ -4443,14 +4506,13 @@ } }, "node_modules/@esbuild/linux-arm64": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.27.2.tgz", - "integrity": "sha512-hYxN8pr66NsCCiRFkHUAsxylNOcAQaxSSkHMMjcpx0si13t1LHFphxJZUiGwojB1a/Hd5OiPIqDdXONia6bhTw==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.27.3.tgz", + "integrity": "sha512-sZOuFz/xWnZ4KH3YfFrKCf1WyPZHakVzTiqji3WDc0BCl2kBwiJLCXpzLzUBLgmp4veFZdvN5ChW4Eq/8Fc2Fg==", "cpu": [ "arm64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "linux" @@ -4460,14 +4522,13 @@ } }, "node_modules/@esbuild/linux-ia32": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.27.2.tgz", - "integrity": "sha512-MJt5BRRSScPDwG2hLelYhAAKh9imjHK5+NE/tvnRLbIqUWa+0E9N4WNMjmp/kXXPHZGqPLxggwVhz7QP8CTR8w==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.27.3.tgz", + "integrity": "sha512-yGlQYjdxtLdh0a3jHjuwOrxQjOZYD/C9PfdbgJJF3TIZWnm/tMd/RcNiLngiu4iwcBAOezdnSLAwQDPqTmtTYg==", "cpu": [ "ia32" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "linux" @@ -4477,14 +4538,13 @@ } }, "node_modules/@esbuild/linux-loong64": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.27.2.tgz", - "integrity": "sha512-lugyF1atnAT463aO6KPshVCJK5NgRnU4yb3FUumyVz+cGvZbontBgzeGFO1nF+dPueHD367a2ZXe1NtUkAjOtg==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.27.3.tgz", + "integrity": "sha512-WO60Sn8ly3gtzhyjATDgieJNet/KqsDlX5nRC5Y3oTFcS1l0KWba+SEa9Ja1GfDqSF1z6hif/SkpQJbL63cgOA==", "cpu": [ "loong64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "linux" @@ -4494,14 +4554,13 @@ } }, "node_modules/@esbuild/linux-mips64el": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.27.2.tgz", - "integrity": "sha512-nlP2I6ArEBewvJ2gjrrkESEZkB5mIoaTswuqNFRv/WYd+ATtUpe9Y09RnJvgvdag7he0OWgEZWhviS1OTOKixw==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.27.3.tgz", + "integrity": "sha512-APsymYA6sGcZ4pD6k+UxbDjOFSvPWyZhjaiPyl/f79xKxwTnrn5QUnXR5prvetuaSMsb4jgeHewIDCIWljrSxw==", "cpu": [ "mips64el" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "linux" @@ -4511,14 +4570,13 @@ } }, "node_modules/@esbuild/linux-ppc64": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.27.2.tgz", - "integrity": "sha512-C92gnpey7tUQONqg1n6dKVbx3vphKtTHJaNG2Ok9lGwbZil6DrfyecMsp9CrmXGQJmZ7iiVXvvZH6Ml5hL6XdQ==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.27.3.tgz", + "integrity": "sha512-eizBnTeBefojtDb9nSh4vvVQ3V9Qf9Df01PfawPcRzJH4gFSgrObw+LveUyDoKU3kxi5+9RJTCWlj4FjYXVPEA==", "cpu": [ "ppc64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "linux" @@ -4528,14 +4586,13 @@ } }, "node_modules/@esbuild/linux-riscv64": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.27.2.tgz", - "integrity": "sha512-B5BOmojNtUyN8AXlK0QJyvjEZkWwy/FKvakkTDCziX95AowLZKR6aCDhG7LeF7uMCXEJqwa8Bejz5LTPYm8AvA==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.27.3.tgz", + "integrity": "sha512-3Emwh0r5wmfm3ssTWRQSyVhbOHvqegUDRd0WhmXKX2mkHJe1SFCMJhagUleMq+Uci34wLSipf8Lagt4LlpRFWQ==", "cpu": [ "riscv64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "linux" @@ -4545,14 +4602,13 @@ } }, "node_modules/@esbuild/linux-s390x": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.27.2.tgz", - "integrity": "sha512-p4bm9+wsPwup5Z8f4EpfN63qNagQ47Ua2znaqGH6bqLlmJ4bx97Y9JdqxgGZ6Y8xVTixUnEkoKSHcpRlDnNr5w==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.27.3.tgz", + "integrity": "sha512-pBHUx9LzXWBc7MFIEEL0yD/ZVtNgLytvx60gES28GcWMqil8ElCYR4kvbV2BDqsHOvVDRrOxGySBM9Fcv744hw==", "cpu": [ "s390x" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "linux" @@ -4562,14 +4618,13 @@ } }, "node_modules/@esbuild/linux-x64": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.27.2.tgz", - "integrity": "sha512-uwp2Tip5aPmH+NRUwTcfLb+W32WXjpFejTIOWZFw/v7/KnpCDKG66u4DLcurQpiYTiYwQ9B7KOeMJvLCu/OvbA==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.27.3.tgz", + "integrity": "sha512-Czi8yzXUWIQYAtL/2y6vogER8pvcsOsk5cpwL4Gk5nJqH5UZiVByIY8Eorm5R13gq+DQKYg0+JyQoytLQas4dA==", "cpu": [ "x64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "linux" @@ -4579,14 +4634,13 @@ } }, "node_modules/@esbuild/netbsd-arm64": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.27.2.tgz", - "integrity": "sha512-Kj6DiBlwXrPsCRDeRvGAUb/LNrBASrfqAIok+xB0LxK8CHqxZ037viF13ugfsIpePH93mX7xfJp97cyDuTZ3cw==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.27.3.tgz", + "integrity": "sha512-sDpk0RgmTCR/5HguIZa9n9u+HVKf40fbEUt+iTzSnCaGvY9kFP0YKBWZtJaraonFnqef5SlJ8/TiPAxzyS+UoA==", "cpu": [ "arm64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "netbsd" @@ -4596,14 +4650,13 @@ } }, "node_modules/@esbuild/netbsd-x64": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.27.2.tgz", - "integrity": "sha512-HwGDZ0VLVBY3Y+Nw0JexZy9o/nUAWq9MlV7cahpaXKW6TOzfVno3y3/M8Ga8u8Yr7GldLOov27xiCnqRZf0tCA==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.27.3.tgz", + "integrity": "sha512-P14lFKJl/DdaE00LItAukUdZO5iqNH7+PjoBm+fLQjtxfcfFE20Xf5CrLsmZdq5LFFZzb5JMZ9grUwvtVYzjiA==", "cpu": [ "x64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "netbsd" @@ -4613,14 +4666,13 @@ } }, "node_modules/@esbuild/openbsd-arm64": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.27.2.tgz", - "integrity": "sha512-DNIHH2BPQ5551A7oSHD0CKbwIA/Ox7+78/AWkbS5QoRzaqlev2uFayfSxq68EkonB+IKjiuxBFoV8ESJy8bOHA==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.27.3.tgz", + "integrity": "sha512-AIcMP77AvirGbRl/UZFTq5hjXK+2wC7qFRGoHSDrZ5v5b8DK/GYpXW3CPRL53NkvDqb9D+alBiC/dV0Fb7eJcw==", "cpu": [ "arm64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "openbsd" @@ -4630,14 +4682,13 @@ } }, "node_modules/@esbuild/openbsd-x64": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.27.2.tgz", - "integrity": "sha512-/it7w9Nb7+0KFIzjalNJVR5bOzA9Vay+yIPLVHfIQYG/j+j9VTH84aNB8ExGKPU4AzfaEvN9/V4HV+F+vo8OEg==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.27.3.tgz", + "integrity": "sha512-DnW2sRrBzA+YnE70LKqnM3P+z8vehfJWHXECbwBmH/CU51z6FiqTQTHFenPlHmo3a8UgpLyH3PT+87OViOh1AQ==", "cpu": [ "x64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "openbsd" @@ -4647,14 +4698,13 @@ } }, "node_modules/@esbuild/openharmony-arm64": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.27.2.tgz", - "integrity": "sha512-LRBbCmiU51IXfeXk59csuX/aSaToeG7w48nMwA6049Y4J4+VbWALAuXcs+qcD04rHDuSCSRKdmY63sruDS5qag==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.27.3.tgz", + "integrity": "sha512-NinAEgr/etERPTsZJ7aEZQvvg/A6IsZG/LgZy+81wON2huV7SrK3e63dU0XhyZP4RKGyTm7aOgmQk0bGp0fy2g==", "cpu": [ "arm64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "openharmony" @@ -4664,14 +4714,13 @@ } }, "node_modules/@esbuild/sunos-x64": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.27.2.tgz", - "integrity": "sha512-kMtx1yqJHTmqaqHPAzKCAkDaKsffmXkPHThSfRwZGyuqyIeBvf08KSsYXl+abf5HDAPMJIPnbBfXvP2ZC2TfHg==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.27.3.tgz", + "integrity": "sha512-PanZ+nEz+eWoBJ8/f8HKxTTD172SKwdXebZ0ndd953gt1HRBbhMsaNqjTyYLGLPdoWHy4zLU7bDVJztF5f3BHA==", "cpu": [ "x64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "sunos" @@ -4681,14 +4730,13 @@ } }, "node_modules/@esbuild/win32-arm64": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.27.2.tgz", - "integrity": "sha512-Yaf78O/B3Kkh+nKABUF++bvJv5Ijoy9AN1ww904rOXZFLWVc5OLOfL56W+C8F9xn5JQZa3UX6m+IktJnIb1Jjg==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.27.3.tgz", + "integrity": "sha512-B2t59lWWYrbRDw/tjiWOuzSsFh1Y/E95ofKz7rIVYSQkUYBjfSgf6oeYPNWHToFRr2zx52JKApIcAS/D5TUBnA==", "cpu": [ "arm64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "win32" @@ -4698,14 +4746,13 @@ } }, "node_modules/@esbuild/win32-ia32": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.27.2.tgz", - "integrity": "sha512-Iuws0kxo4yusk7sw70Xa2E2imZU5HoixzxfGCdxwBdhiDgt9vX9VUCBhqcwY7/uh//78A1hMkkROMJq9l27oLQ==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.27.3.tgz", + "integrity": "sha512-QLKSFeXNS8+tHW7tZpMtjlNb7HKau0QDpwm49u0vUp9y1WOF+PEzkU84y9GqYaAVW8aH8f3GcBck26jh54cX4Q==", "cpu": [ "ia32" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "win32" @@ -4715,14 +4762,13 @@ } }, "node_modules/@esbuild/win32-x64": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.27.2.tgz", - "integrity": "sha512-sRdU18mcKf7F+YgheI/zGf5alZatMUTKj/jNS6l744f9u3WFu4v7twcUI9vu4mknF4Y9aDlblIie0IM+5xxaqQ==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.27.3.tgz", + "integrity": "sha512-4uJGhsxuptu3OcpVAzli+/gWusVGwZZHTlS63hh++ehExkVT8SgiEf7/uC/PclrPPkLhZqGgCTjd0VWLo6xMqA==", "cpu": [ "x64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "win32" @@ -4899,6 +4945,24 @@ "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } }, + "node_modules/@exodus/bytes": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/@exodus/bytes/-/bytes-1.15.0.tgz", + "integrity": "sha512-UY0nlA+feH81UGSHv92sLEPLCeZFjXOuHhrIo0HQydScuQc8s0A7kL/UdgwgDq8g8ilksmuoF35YVTNphV2aBQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^20.19.0 || ^22.12.0 || >=24.0.0" + }, + "peerDependencies": { + "@noble/hashes": "^1.8.0 || ^2.0.0" + }, + "peerDependenciesMeta": { + "@noble/hashes": { + "optional": true + } + } + }, "node_modules/@floating-ui/core": { "version": "1.7.3", "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.7.3.tgz", @@ -5139,6 +5203,14 @@ "@fullcalendar/core": "~6.1.20" } }, + "node_modules/@gar/promise-retry": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@gar/promise-retry/-/promise-retry-1.0.3.tgz", + "integrity": "sha512-GmzA9ckNokPypTg10pgpeHNQe7ph+iIKKmhKu3Ob9ANkswreCx7R3cKmY781K8QK3AqVL3xVh9A42JvIAbkkSA==", + "engines": { + "node": "^20.17.0 || >=22.9.0" + } + }, "node_modules/@github/auto-check-element": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/@github/auto-check-element/-/auto-check-element-6.0.0.tgz", @@ -5230,6 +5302,13 @@ "prosemirror-view": "^1.0.0" } }, + "node_modules/@harperfast/extended-iterable": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@harperfast/extended-iterable/-/extended-iterable-1.0.3.tgz", + "integrity": "sha512-sSAYhQca3rDWtQUHSAPeO7axFIUJOI6hn1gjRC5APVE1a90tuyT8f5WIgRsFhhWA7htNkju2veB9eWL6YHi/Lw==", + "dev": true, + "optional": true + }, "node_modules/@hocuspocus/common": { "version": "3.4.4", "resolved": "https://registry.npmjs.org/@hocuspocus/common/-/common-3.4.4.tgz", @@ -5287,12 +5366,12 @@ } }, "node_modules/@html-eslint/core": { - "version": "0.58.1", - "resolved": "https://registry.npmjs.org/@html-eslint/core/-/core-0.58.1.tgz", - "integrity": "sha512-GHYDt2Q3ws9aa0/bmMhkv21ExQJnrjKY/iByjdBVp3lBq49wlzIzvAfcx4Bsp+RMV3oPZhzlnLhPpXLuVYt2mQ==", + "version": "0.59.0", + "resolved": "https://registry.npmjs.org/@html-eslint/core/-/core-0.59.0.tgz", + "integrity": "sha512-/s5W9Iivmf2RXVzQlFboXQRqK62JQdKvcIdFMP5K1kxbVEJxha/VUo1Rafn1GKgLQsP5QIbUjoZbzGlN7fVxog==", "dev": true, "dependencies": { - "@html-eslint/types": "^0.58.1", + "@html-eslint/types": "^0.59.0", "html-standard": "^0.0.13" }, "engines": { @@ -5300,17 +5379,17 @@ } }, "node_modules/@html-eslint/eslint-plugin": { - "version": "0.58.1", - "resolved": "https://registry.npmjs.org/@html-eslint/eslint-plugin/-/eslint-plugin-0.58.1.tgz", - "integrity": "sha512-aizTTKbNF2sW+lXWP+uWBoo5Ud9xtUkr70+0pYhItwJF0yhRqLQ91PhW+9afC0daymQjn13MunzDPwGPG0seDg==", + "version": "0.59.0", + "resolved": "https://registry.npmjs.org/@html-eslint/eslint-plugin/-/eslint-plugin-0.59.0.tgz", + "integrity": "sha512-RMABPGdTkBtDIqexNBzxB3d4S1C+3PvxC8bLV2/U6tTmrRj8oNOqJ7Bwwtt35HJEQclfZvL0y3XZk+/E/MhNsQ==", "dev": true, "dependencies": { "@eslint/plugin-kit": "^0.4.1", - "@html-eslint/core": "^0.58.1", - "@html-eslint/parser": "^0.58.1", - "@html-eslint/template-parser": "^0.58.1", - "@html-eslint/template-syntax-parser": "^0.58.1", - "@html-eslint/types": "^0.58.1", + "@html-eslint/core": "^0.59.0", + "@html-eslint/parser": "^0.59.0", + "@html-eslint/template-parser": "^0.59.0", + "@html-eslint/template-syntax-parser": "^0.59.0", + "@html-eslint/types": "^0.59.0", "@rviscomi/capo.js": "^2.1.0", "html-standard": "^0.0.13" }, @@ -5322,40 +5401,40 @@ } }, "node_modules/@html-eslint/parser": { - "version": "0.58.1", - "resolved": "https://registry.npmjs.org/@html-eslint/parser/-/parser-0.58.1.tgz", - "integrity": "sha512-a87peH9HcVDrKZZIYdfMlPZ+72nIktAitKcdoHQevuaXWsgvDtClKihJyy5dZS9md6hIbCh62Og5gQRhl85ZMg==", + "version": "0.59.0", + "resolved": "https://registry.npmjs.org/@html-eslint/parser/-/parser-0.59.0.tgz", + "integrity": "sha512-dsUdpOkFrq0HmPyy8kuw2uN98LIzEepdI/Xj6QimgPQ4GOmjDRocuOCcuBI1K+F9O+NYXdaKMtZ3SzI1V/jB4g==", "dev": true, "dependencies": { - "@html-eslint/template-syntax-parser": "^0.58.1", - "@html-eslint/types": "^0.58.1", + "@html-eslint/template-syntax-parser": "^0.59.0", + "@html-eslint/types": "^0.59.0", "css-tree": "^3.1.0", "es-html-parser": "0.3.1" } }, "node_modules/@html-eslint/template-parser": { - "version": "0.58.1", - "resolved": "https://registry.npmjs.org/@html-eslint/template-parser/-/template-parser-0.58.1.tgz", - "integrity": "sha512-qo6jTc4Y6vVgwPc2w+EQigH7uCAn+LExxE5oG1URRT98UiJ7dItX0Qk44r/+5XQwSS1TsdvBNLxM2NAktETSWA==", + "version": "0.59.0", + "resolved": "https://registry.npmjs.org/@html-eslint/template-parser/-/template-parser-0.59.0.tgz", + "integrity": "sha512-3MN4uizEeSVP2l6jgy5COAH6V3PnnJUcaq2jU6elbB4EP+zBfh6KOG2yk9DmnjfNTL2SgXOlk3WkEY3LXDluqQ==", "dev": true, "dependencies": { - "@html-eslint/types": "^0.58.1", + "@html-eslint/types": "^0.59.0", "es-html-parser": "0.3.1" } }, "node_modules/@html-eslint/template-syntax-parser": { - "version": "0.58.1", - "resolved": "https://registry.npmjs.org/@html-eslint/template-syntax-parser/-/template-syntax-parser-0.58.1.tgz", - "integrity": "sha512-P1ZhxIPm9qFWSees2/EZ7Etg1OXziqzRZEuI9goO91fJS6dmdT4JnHLugN06FLL706RwpvenBUlE0iZA9/MXdg==", + "version": "0.59.0", + "resolved": "https://registry.npmjs.org/@html-eslint/template-syntax-parser/-/template-syntax-parser-0.59.0.tgz", + "integrity": "sha512-CMPPLP0EcgoJyU3k6girTPtxuXssHTh3/eFO8S2LagnBCXtJfMu5F3IahXamwMCMVbzaCDzIhg1doXL5Rw7vUQ==", "dev": true, "dependencies": { - "@html-eslint/types": "^0.58.1" + "@html-eslint/types": "^0.59.0" } }, "node_modules/@html-eslint/types": { - "version": "0.58.1", - "resolved": "https://registry.npmjs.org/@html-eslint/types/-/types-0.58.1.tgz", - "integrity": "sha512-1F2A5XXpgfHQ8dm14E/EztyERoVldT91VGMZCJECZpidf5Cbc21vxeHLT6/POTJm0ICJOmyBlocF62i/rkoVEQ==", + "version": "0.59.0", + "resolved": "https://registry.npmjs.org/@html-eslint/types/-/types-0.59.0.tgz", + "integrity": "sha512-YwNaTUQW5ObFFUohbGe1X0az2biDOH/6e6GR9VympbFUObUoWlXasGqRRMKi7IbxGPOZ8ucZK89ZWeAFm56Pwg==", "dev": true, "dependencies": { "@types/css-tree": "^2.3.11", @@ -5795,7 +5874,6 @@ "version": "4.0.1", "resolved": "https://registry.npmjs.org/@isaacs/fs-minipass/-/fs-minipass-4.0.1.tgz", "integrity": "sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w==", - "license": "ISC", "dependencies": { "minipass": "^7.0.4" }, @@ -5857,41 +5935,15 @@ "license": "MIT" }, "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.29", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.29.tgz", - "integrity": "sha512-uw6guiW/gcAGPDhLmd77/6lW8QLeiV5RUTsAX46Db6oLhGaVj4lhnPwb184s1bkc8kdVg/+h988dro8GRDpmYQ==", + "version": "0.3.31", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz", + "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==", + "license": "MIT", "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", "@jridgewell/sourcemap-codec": "^1.4.14" } }, - "node_modules/@jsdevtools/coverage-istanbul-loader": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/@jsdevtools/coverage-istanbul-loader/-/coverage-istanbul-loader-3.0.5.tgz", - "integrity": "sha512-EUCPEkaRPvmHjWAAZkWMT7JDzpw7FKB00WTISaiXsbNOd5hCHg77XLA8sLYLFDo1zepYLo2w7GstN8YBqRXZfA==", - "dev": true, - "dependencies": { - "convert-source-map": "^1.7.0", - "istanbul-lib-instrument": "^4.0.3", - "loader-utils": "^2.0.0", - "merge-source-map": "^1.1.0", - "schema-utils": "^2.7.0" - } - }, - "node_modules/@jsdevtools/coverage-istanbul-loader/node_modules/loader-utils": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", - "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", - "dev": true, - "dependencies": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^2.1.2" - }, - "engines": { - "node": ">=8.9.0" - } - }, "node_modules/@jsdevtools/ono": { "version": "7.1.3", "resolved": "https://registry.npmjs.org/@jsdevtools/ono/-/ono-7.1.3.tgz", @@ -5903,7 +5955,6 @@ "resolved": "https://registry.npmjs.org/@jsonjoy.com/base64/-/base64-1.1.2.tgz", "integrity": "sha512-q6XAnWQDIMA3+FTiOYajoYqySkO+JSat0ytXGSuRdq9uXE7o92gzuQwQM14xaCRlBLGq3v5miDGC4vkVTn54xA==", "dev": true, - "license": "Apache-2.0", "engines": { "node": ">=10.0" }, @@ -5916,11 +5967,10 @@ } }, "node_modules/@jsonjoy.com/buffers": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@jsonjoy.com/buffers/-/buffers-1.2.1.tgz", - "integrity": "sha512-12cdlDwX4RUM3QxmUbVJWqZ/mrK6dFQH4Zxq6+r1YXKXYBNgZXndx2qbCJwh3+WWkCSn67IjnlG3XYTvmvYtgA==", + "version": "17.67.0", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/buffers/-/buffers-17.67.0.tgz", + "integrity": "sha512-tfExRpYxBvi32vPs9ZHaTjSP4fHAfzSmcahOfNxtvGHcyJel+aibkPlGeBB+7AoC6hL7lXIE++8okecBxx7lcw==", "dev": true, - "license": "Apache-2.0", "engines": { "node": ">=10.0" }, @@ -5937,7 +5987,269 @@ "resolved": "https://registry.npmjs.org/@jsonjoy.com/codegen/-/codegen-1.0.0.tgz", "integrity": "sha512-E8Oy+08cmCf0EK/NMxpaJZmOxPqM+6iSe2S4nlSBrPZOORoDJILxtbSUEDKQyTamm/BVAhIGllOBNU79/dwf0g==", "dev": true, - "license": "Apache-2.0", + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, + "node_modules/@jsonjoy.com/fs-core": { + "version": "4.57.2", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/fs-core/-/fs-core-4.57.2.tgz", + "integrity": "sha512-SVjwklkpIV5wrynpYtuYnfYH1QF4/nDuLBX7VXdb+3miglcAgBVZb/5y0cOsehRV/9Vb+3UqhkMq3/NR3ztdkQ==", + "dev": true, + "dependencies": { + "@jsonjoy.com/fs-node-builtins": "4.57.2", + "@jsonjoy.com/fs-node-utils": "4.57.2", + "thingies": "^2.5.0" + }, + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, + "node_modules/@jsonjoy.com/fs-fsa": { + "version": "4.57.2", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/fs-fsa/-/fs-fsa-4.57.2.tgz", + "integrity": "sha512-fhO8+iR2I+OCw668ISDJdn1aArc9zx033sWejIyzQ8RBeXa9bDSaUeA3ix0poYOfrj1KdOzytmYNv2/uLDfV6g==", + "dev": true, + "dependencies": { + "@jsonjoy.com/fs-core": "4.57.2", + "@jsonjoy.com/fs-node-builtins": "4.57.2", + "@jsonjoy.com/fs-node-utils": "4.57.2", + "thingies": "^2.5.0" + }, + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, + "node_modules/@jsonjoy.com/fs-node": { + "version": "4.57.2", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/fs-node/-/fs-node-4.57.2.tgz", + "integrity": "sha512-nX2AdL6cOFwLdju9G4/nbRnYevmCJbh7N7hvR3gGm97Cs60uEjyd0rpR+YBS7cTg175zzl22pGKXR5USaQMvKg==", + "dev": true, + "dependencies": { + "@jsonjoy.com/fs-core": "4.57.2", + "@jsonjoy.com/fs-node-builtins": "4.57.2", + "@jsonjoy.com/fs-node-utils": "4.57.2", + "@jsonjoy.com/fs-print": "4.57.2", + "@jsonjoy.com/fs-snapshot": "4.57.2", + "glob-to-regex.js": "^1.0.0", + "thingies": "^2.5.0" + }, + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, + "node_modules/@jsonjoy.com/fs-node-builtins": { + "version": "4.57.2", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/fs-node-builtins/-/fs-node-builtins-4.57.2.tgz", + "integrity": "sha512-xhiegylRmhw43Ki2HO1ZBL7DQ5ja/qpRsL29VtQ2xuUHiuDGbgf2uD4p9Qd8hJI5P6RCtGYD50IXHXVq/Ocjcg==", + "dev": true, + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, + "node_modules/@jsonjoy.com/fs-node-to-fsa": { + "version": "4.57.2", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/fs-node-to-fsa/-/fs-node-to-fsa-4.57.2.tgz", + "integrity": "sha512-18LmWTSONhoAPW+IWRuf8w/+zRolPFGPeGwMxlAhhfY11EKzX+5XHDBPAw67dBF5dxDErHJbl40U+3IXSDRXSQ==", + "dev": true, + "dependencies": { + "@jsonjoy.com/fs-fsa": "4.57.2", + "@jsonjoy.com/fs-node-builtins": "4.57.2", + "@jsonjoy.com/fs-node-utils": "4.57.2" + }, + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, + "node_modules/@jsonjoy.com/fs-node-utils": { + "version": "4.57.2", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/fs-node-utils/-/fs-node-utils-4.57.2.tgz", + "integrity": "sha512-rsPSJgekz43IlNbLyAM/Ab+ouYLWGp5DDBfYBNNEqDaSpsbXfthBn29Q4muFA9L0F+Z3mKo+CWlgSCXrf+mOyQ==", + "dev": true, + "dependencies": { + "@jsonjoy.com/fs-node-builtins": "4.57.2" + }, + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, + "node_modules/@jsonjoy.com/fs-print": { + "version": "4.57.2", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/fs-print/-/fs-print-4.57.2.tgz", + "integrity": "sha512-wK9NSow48i4DbDl9F1CQE5TqnyZOJ04elU3WFG5aJ76p+YxO/ulyBBQvKsessPxdo381Bc2pcEoyPujMOhcRqQ==", + "dev": true, + "dependencies": { + "@jsonjoy.com/fs-node-utils": "4.57.2", + "tree-dump": "^1.1.0" + }, + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, + "node_modules/@jsonjoy.com/fs-snapshot": { + "version": "4.57.2", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/fs-snapshot/-/fs-snapshot-4.57.2.tgz", + "integrity": "sha512-GdduDZuoP5V/QCgJkx9+BZ6SC0EZ/smXAdTS7PfMqgMTGXLlt/bH/FqMYaqB9JmLf05sJPtO0XRbAwwkEEPbVw==", + "dev": true, + "dependencies": { + "@jsonjoy.com/buffers": "^17.65.0", + "@jsonjoy.com/fs-node-utils": "4.57.2", + "@jsonjoy.com/json-pack": "^17.65.0", + "@jsonjoy.com/util": "^17.65.0" + }, + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, + "node_modules/@jsonjoy.com/fs-snapshot/node_modules/@jsonjoy.com/base64": { + "version": "17.67.0", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/base64/-/base64-17.67.0.tgz", + "integrity": "sha512-5SEsJGsm15aP8TQGkDfJvz9axgPwAEm98S5DxOuYe8e1EbfajcDmgeXXzccEjh+mLnjqEKrkBdjHWS5vFNwDdw==", + "dev": true, + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, + "node_modules/@jsonjoy.com/fs-snapshot/node_modules/@jsonjoy.com/codegen": { + "version": "17.67.0", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/codegen/-/codegen-17.67.0.tgz", + "integrity": "sha512-idnkUplROpdBOV0HMcwhsCUS5TRUi9poagdGs70A6S4ux9+/aPuKbh8+UYRTLYQHtXvAdNfQWXDqZEx5k4Dj2Q==", + "dev": true, + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, + "node_modules/@jsonjoy.com/fs-snapshot/node_modules/@jsonjoy.com/json-pack": { + "version": "17.67.0", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/json-pack/-/json-pack-17.67.0.tgz", + "integrity": "sha512-t0ejURcGaZsn1ClbJ/3kFqSOjlryd92eQY465IYrezsXmPcfHPE/av4twRSxf6WE+TkZgLY+71vCZbiIiFKA/w==", + "dev": true, + "dependencies": { + "@jsonjoy.com/base64": "17.67.0", + "@jsonjoy.com/buffers": "17.67.0", + "@jsonjoy.com/codegen": "17.67.0", + "@jsonjoy.com/json-pointer": "17.67.0", + "@jsonjoy.com/util": "17.67.0", + "hyperdyperid": "^1.2.0", + "thingies": "^2.5.0", + "tree-dump": "^1.1.0" + }, + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, + "node_modules/@jsonjoy.com/fs-snapshot/node_modules/@jsonjoy.com/json-pointer": { + "version": "17.67.0", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/json-pointer/-/json-pointer-17.67.0.tgz", + "integrity": "sha512-+iqOFInH+QZGmSuaybBUNdh7yvNrXvqR+h3wjXm0N/3JK1EyyFAeGJvqnmQL61d1ARLlk/wJdFKSL+LHJ1eaUA==", + "dev": true, + "dependencies": { + "@jsonjoy.com/util": "17.67.0" + }, + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, + "node_modules/@jsonjoy.com/fs-snapshot/node_modules/@jsonjoy.com/util": { + "version": "17.67.0", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/util/-/util-17.67.0.tgz", + "integrity": "sha512-6+8xBaz1rLSohlGh68D1pdw3AwDi9xydm8QNlAFkvnavCJYSze+pxoW2VKP8p308jtlMRLs5NTHfPlZLd4w7ew==", + "dev": true, + "dependencies": { + "@jsonjoy.com/buffers": "17.67.0", + "@jsonjoy.com/codegen": "17.67.0" + }, "engines": { "node": ">=10.0" }, @@ -5954,7 +6266,6 @@ "resolved": "https://registry.npmjs.org/@jsonjoy.com/json-pack/-/json-pack-1.21.0.tgz", "integrity": "sha512-+AKG+R2cfZMShzrF2uQw34v3zbeDYUqnQ+jg7ORic3BGtfw9p/+N6RJbq/kkV8JmYZaINknaEQ2m0/f693ZPpg==", "dev": true, - "license": "Apache-2.0", "dependencies": { "@jsonjoy.com/base64": "^1.1.2", "@jsonjoy.com/buffers": "^1.2.0", @@ -5976,12 +6287,27 @@ "tslib": "2" } }, + "node_modules/@jsonjoy.com/json-pack/node_modules/@jsonjoy.com/buffers": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/buffers/-/buffers-1.2.1.tgz", + "integrity": "sha512-12cdlDwX4RUM3QxmUbVJWqZ/mrK6dFQH4Zxq6+r1YXKXYBNgZXndx2qbCJwh3+WWkCSn67IjnlG3XYTvmvYtgA==", + "dev": true, + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, "node_modules/@jsonjoy.com/json-pointer": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/@jsonjoy.com/json-pointer/-/json-pointer-1.0.2.tgz", "integrity": "sha512-Fsn6wM2zlDzY1U+v4Nc8bo3bVqgfNTGcn6dMgs6FjrEnt4ZCe60o6ByKRjOGlI2gow0aE/Q41QOigdTqkyK5fg==", "dev": true, - "license": "Apache-2.0", "dependencies": { "@jsonjoy.com/codegen": "^1.0.0", "@jsonjoy.com/util": "^1.9.0" @@ -6002,7 +6328,6 @@ "resolved": "https://registry.npmjs.org/@jsonjoy.com/util/-/util-1.9.0.tgz", "integrity": "sha512-pLuQo+VPRnN8hfPqUTLTHk126wuYdXVxE6aDmjSeV4NCAgyxWbiOIeNJVtID3h1Vzpoi9m4jXezf73I6LgabgQ==", "dev": true, - "license": "Apache-2.0", "dependencies": { "@jsonjoy.com/buffers": "^1.0.0", "@jsonjoy.com/codegen": "^1.0.0" @@ -6018,11 +6343,26 @@ "tslib": "2" } }, + "node_modules/@jsonjoy.com/util/node_modules/@jsonjoy.com/buffers": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/buffers/-/buffers-1.2.1.tgz", + "integrity": "sha512-12cdlDwX4RUM3QxmUbVJWqZ/mrK6dFQH4Zxq6+r1YXKXYBNgZXndx2qbCJwh3+WWkCSn67IjnlG3XYTvmvYtgA==", + "dev": true, + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, "node_modules/@knowledgecode/delegate": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/@knowledgecode/delegate/-/delegate-0.10.0.tgz", - "integrity": "sha512-bu6T27FlgX+rZY6xKGvM7M6dPXtSaHTj/RpFXoD7bkFths3hn/dqg84uqQWSJTGFljeBBjyzdAlI9eSV0bI1HA==", - "license": "MIT" + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/@knowledgecode/delegate/-/delegate-0.10.3.tgz", + "integrity": "sha512-iuee+vI4XhtiSHv+UpjTU4mDl2Og9FS+Rgvk645At92P3U+GJ3YJfYgC/Gi+fNdAzXCXK2yPHSyc4fF4x93crw==" }, "node_modules/@kolkov/ngx-gallery": { "version": "2.0.1", @@ -6085,98 +6425,91 @@ } }, "node_modules/@lmdb/lmdb-darwin-arm64": { - "version": "3.4.4", - "resolved": "https://registry.npmjs.org/@lmdb/lmdb-darwin-arm64/-/lmdb-darwin-arm64-3.4.4.tgz", - "integrity": "sha512-XaKL705gDWd6XVls3ATDj13ZdML/LqSIxwgnYpG8xTzH2ifArx8fMMDdvqGE/Emd+W6R90W2fveZcJ0AyS8Y0w==", + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-darwin-arm64/-/lmdb-darwin-arm64-3.5.1.tgz", + "integrity": "sha512-tpfN4kKrrMpQ+If1l8bhmoNkECJi0iOu6AEdrTJvWVC+32sLxTARX5Rsu579mPImRP9YFWfWgeRQ5oav7zApQQ==", "cpu": [ "arm64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "darwin" ] }, "node_modules/@lmdb/lmdb-darwin-x64": { - "version": "3.4.4", - "resolved": "https://registry.npmjs.org/@lmdb/lmdb-darwin-x64/-/lmdb-darwin-x64-3.4.4.tgz", - "integrity": "sha512-GPHGEVcwJlkD01GmIr7B4kvbIcUDS2+kBadVEd7lU4can1RZaZQLDDBJRrrNfS2Kavvl0VLI/cMv7UASAXGrww==", + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-darwin-x64/-/lmdb-darwin-x64-3.5.1.tgz", + "integrity": "sha512-+a2tTfc3rmWhLAolFUWRgJtpSuu+Fw/yjn4rF406NMxhfjbMuiOUTDRvRlMFV+DzyjkwnokisskHbCWkS3Ly5w==", "cpu": [ "x64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "darwin" ] }, "node_modules/@lmdb/lmdb-linux-arm": { - "version": "3.4.4", - "resolved": "https://registry.npmjs.org/@lmdb/lmdb-linux-arm/-/lmdb-linux-arm-3.4.4.tgz", - "integrity": "sha512-cmev5/dZr5ACKri9f6GU6lZCXTjMhV72xujlbOhFCgFXrt4W0TxGsmY8kA1BITvH60JBKE50cSxsiulybAbrrw==", + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-linux-arm/-/lmdb-linux-arm-3.5.1.tgz", + "integrity": "sha512-0EgcE6reYr8InjD7V37EgXcYrloqpxVPINy3ig1MwDSbl6LF/vXTYRH9OE1Ti1D8YZnB35ZH9aTcdfSb5lql2A==", "cpu": [ "arm" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "linux" ] }, "node_modules/@lmdb/lmdb-linux-arm64": { - "version": "3.4.4", - "resolved": "https://registry.npmjs.org/@lmdb/lmdb-linux-arm64/-/lmdb-linux-arm64-3.4.4.tgz", - "integrity": "sha512-mALqr7DE42HsiwVTKpQWxacjHoJk+e9p00RWIJqTACh/hpucxp/0lK/XMh5XzWnU/TDCZLukq1+vNqnNumTP/Q==", + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-linux-arm64/-/lmdb-linux-arm64-3.5.1.tgz", + "integrity": "sha512-aoERa5B6ywXdyFeYGQ1gbQpkMkDbEo45qVoXE5QpIRavqjnyPwjOulMkmkypkmsbJ5z4Wi0TBztON8agCTG0Vg==", "cpu": [ "arm64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "linux" ] }, "node_modules/@lmdb/lmdb-linux-x64": { - "version": "3.4.4", - "resolved": "https://registry.npmjs.org/@lmdb/lmdb-linux-x64/-/lmdb-linux-x64-3.4.4.tgz", - "integrity": "sha512-QjLs8OcmCNcraAcLoZyFlo0atzBJniQLLwhtR+ymQqS5kLYpV5RqwriL87BW+ZiR9ZiGgZx3evrz5vnWPtJ1fQ==", + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-linux-x64/-/lmdb-linux-x64-3.5.1.tgz", + "integrity": "sha512-SqNDY1+vpji7bh0sFH5wlWyFTOzjbDOl0/kB5RLLYDAFyd/uw3n7wyrmas3rYPpAW7z18lMOi1yKlTPv967E3g==", "cpu": [ "x64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "linux" ] }, "node_modules/@lmdb/lmdb-win32-arm64": { - "version": "3.4.4", - "resolved": "https://registry.npmjs.org/@lmdb/lmdb-win32-arm64/-/lmdb-win32-arm64-3.4.4.tgz", - "integrity": "sha512-tr/pwHDlZ33forLGAr0tI04cRmP4SgF93yHbb+2zvZiDEyln5yMHhbKDySxY66aUOkhvBvTuHq9q/3YmTj6ZHQ==", + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-win32-arm64/-/lmdb-win32-arm64-3.5.1.tgz", + "integrity": "sha512-50v0O1Lt37cwrmR9vWZK5hRW0Aw+KEmxJJ75fge/zIYdvNKB/0bSMSVR5Uc2OV9JhosIUyklOmrEvavwNJ8D6w==", "cpu": [ "arm64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "win32" ] }, "node_modules/@lmdb/lmdb-win32-x64": { - "version": "3.4.4", - "resolved": "https://registry.npmjs.org/@lmdb/lmdb-win32-x64/-/lmdb-win32-x64-3.4.4.tgz", - "integrity": "sha512-KRzfocJzB/mgoTCqnMawuLSKheHRVTqWfSmouIgYpFs6Hx4zvZSvsZKSCEb5gHmICy7qsx9l06jk3MFTtiFVAQ==", + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-win32-x64/-/lmdb-win32-x64-3.5.1.tgz", + "integrity": "sha512-qwosvPyl+zpUlp3gRb7UcJ3H8S28XHCzkv0Y0EgQToXjQP91ZD67EHSCDmaLjtKhe+GVIW5om1KUpzVLA0l6pg==", "cpu": [ "x64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "win32" @@ -6316,11 +6649,11 @@ } }, "node_modules/@mantine/hooks": { - "version": "8.3.6", - "resolved": "https://registry.npmjs.org/@mantine/hooks/-/hooks-8.3.6.tgz", - "integrity": "sha512-liHfaWXHAkLjJy+Bkr29UsCwAoDQ/a64WrM67lksx8F0qqyjR5RQH8zVlhuOjdpQnwtlUkE/YiTvbJiPcoI0bw==", + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/@mantine/hooks/-/hooks-9.0.1.tgz", + "integrity": "sha512-WM/GbSD8MxZoy3X2IdrbxLq0/0ca4zMA5m7lGw9k1Vecqt1dC/nBed0IJd/w2HGs6avGs9CPlvQ8C4yBEcSnLA==", "peerDependencies": { - "react": "^18.x || ^19.x" + "react": "^19.2.0" } }, "node_modules/@mantine/utils": { @@ -6549,25 +6882,6 @@ "node": ">= 0.8" } }, - "node_modules/@modelcontextprotocol/sdk/node_modules/http-errors": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.1.tgz", - "integrity": "sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ==", - "dependencies": { - "depd": "~2.0.0", - "inherits": "~2.0.4", - "setprototypeof": "~1.2.0", - "statuses": "~2.0.2", - "toidentifier": "~1.0.1" - }, - "engines": { - "node": ">= 0.8" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/express" - } - }, "node_modules/@modelcontextprotocol/sdk/node_modules/iconv-lite": { "version": "0.7.2", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.7.2.tgz", @@ -6690,14 +7004,6 @@ "url": "https://opencollective.com/express" } }, - "node_modules/@modelcontextprotocol/sdk/node_modules/statuses": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.2.tgz", - "integrity": "sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==", - "engines": { - "node": ">= 0.8" - } - }, "node_modules/@modelcontextprotocol/sdk/node_modules/type-is": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/type-is/-/type-is-2.0.1.tgz", @@ -6719,7 +7025,6 @@ "arm64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "darwin" @@ -6733,7 +7038,6 @@ "x64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "darwin" @@ -6747,7 +7051,6 @@ "arm" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "linux" @@ -6761,7 +7064,6 @@ "arm64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "linux" @@ -6775,7 +7077,6 @@ "x64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "linux" @@ -6789,7 +7090,6 @@ "x64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "win32" @@ -7101,27 +7401,27 @@ } }, "node_modules/@napi-rs/wasm-runtime": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-1.1.1.tgz", - "integrity": "sha512-p64ah1M1ld8xjWv3qbvFwHiFVWrq1yFvV4f7w+mzaqiR4IlSgkqhcRdHwsGgomwzBH51sRY4NEowLxnaBjcW/A==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-1.1.4.tgz", + "integrity": "sha512-3NQNNgA1YSlJb/kMH1ildASP9HW7/7kYnRI2szWJaofaS1hWmbGI4H+d3+22aGzXXN9IJ+n+GiFVcGipJP18ow==", "dev": true, - "license": "MIT", "optional": true, "dependencies": { - "@emnapi/core": "^1.7.1", - "@emnapi/runtime": "^1.7.1", "@tybys/wasm-util": "^0.10.1" }, "funding": { "type": "github", "url": "https://github.com/sponsors/Brooooooklyn" + }, + "peerDependencies": { + "@emnapi/core": "^1.7.1", + "@emnapi/runtime": "^1.7.1" } }, "node_modules/@ng-select/ng-option-highlight": { - "version": "21.8.0", - "resolved": "https://registry.npmjs.org/@ng-select/ng-option-highlight/-/ng-option-highlight-21.8.0.tgz", - "integrity": "sha512-A8EMXR9dU6VuItzqoKMiadzQIBDsrhwTTVmmxCsv4XCfpRF32rr+fTyIT1FKVE9DgHOuloi42Hdt6c/NF0iOyg==", - "license": "MIT", + "version": "21.8.2", + "resolved": "https://registry.npmjs.org/@ng-select/ng-option-highlight/-/ng-option-highlight-21.8.2.tgz", + "integrity": "sha512-x9fH607cr6BgFWADMkzPK5wrZCpkBJkNzAXfEiD+gX+MWzgyE74WdY7H5ismrMkT2bMJJ1xysc/ypMzt0E7z7Q==", "dependencies": { "tslib": "^2.3.0" }, @@ -7159,9 +7459,9 @@ } }, "node_modules/@ngtools/webpack": { - "version": "21.1.5", - "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-21.1.5.tgz", - "integrity": "sha512-5nG9v/nEzsaKxgw5NurM6tPKPw0OYsCM3DL4ZI8+TidT55hYbsroTnyBcHBouJ1qlZlQXNtlsjsjBmBDtF7JZA==", + "version": "21.2.9", + "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-21.2.9.tgz", + "integrity": "sha512-1x/N26l76nYAsLjUdeaIn+u4mRRxTFSopDqxtJ1OXIkcJUYTgdK783q5n+ZGI7+S/o0D77XigLg8Dy5NHljn9A==", "dev": true, "engines": { "node": "^20.19.0 || ^22.12.0 || >=24.0.0", @@ -7174,11 +7474,22 @@ "webpack": "^5.54.0" } }, + "node_modules/@noble/hashes": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.4.0.tgz", + "integrity": "sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg==", + "dev": true, + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, "node_modules/@npmcli/agent": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/@npmcli/agent/-/agent-4.0.0.tgz", "integrity": "sha512-kAQTcEN9E8ERLVg5AsGwLNoFb+oEG6engbqAU2P43gD4JEIkNGMHdVQ096FsOAAYpZPB0RSt0zgInKIAS1l5QA==", - "license": "ISC", "dependencies": { "agent-base": "^7.1.0", "http-proxy-agent": "^7.0.0", @@ -7191,10 +7502,9 @@ } }, "node_modules/@npmcli/agent/node_modules/lru-cache": { - "version": "11.2.4", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.2.4.tgz", - "integrity": "sha512-B5Y16Jr9LB9dHVkh6ZevG+vAbOsNOYCX+sXvFWFu7B3Iz5mijW3zdbMyhsh8ANd2mSWBYdJgnqi+mL7/LrOPYg==", - "license": "BlueOak-1.0.0", + "version": "11.3.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.3.5.tgz", + "integrity": "sha512-NxVFwLAnrd9i7KUBxC4DrUhmgjzOs+1Qm50D3oF1/oL+r1NpZ4gA7xvG0/zJ8evR7zIKn4vLf7qTNduWFtCrRw==", "engines": { "node": "20 || >=22" } @@ -7203,7 +7513,6 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-5.0.0.tgz", "integrity": "sha512-7OsC1gNORBEawOa5+j2pXN9vsicaIOH5cPXxoR6fJOmH6/EXpJB2CajXOu1fPRFun2m1lktEFX11+P89hqO/og==", - "license": "ISC", "dependencies": { "semver": "^7.3.5" }, @@ -7212,17 +7521,16 @@ } }, "node_modules/@npmcli/git": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/@npmcli/git/-/git-7.0.1.tgz", - "integrity": "sha512-+XTFxK2jJF/EJJ5SoAzXk3qwIDfvFc5/g+bD274LZ7uY7LE8sTfG6Z8rOanPl2ZEvZWqNvmEdtXC25cE54VcoA==", - "license": "ISC", + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@npmcli/git/-/git-7.0.2.tgz", + "integrity": "sha512-oeolHDjExNAJAnlYP2qzNjMX/Xi9bmu78C9dIGr4xjobrSKbuMYCph8lTzn4vnW3NjIqVmw/f8BCfouqyJXlRg==", "dependencies": { + "@gar/promise-retry": "^1.0.0", "@npmcli/promise-spawn": "^9.0.0", "ini": "^6.0.0", "lru-cache": "^11.2.1", "npm-pick-manifest": "^11.0.1", "proc-log": "^6.0.0", - "promise-retry": "^2.0.1", "semver": "^7.3.5", "which": "^6.0.0" }, @@ -7231,30 +7539,27 @@ } }, "node_modules/@npmcli/git/node_modules/isexe": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz", - "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==", - "license": "ISC", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-4.0.0.tgz", + "integrity": "sha512-FFUtZMpoZ8RqHS3XeXEmHWLA4thH+ZxCv2lOiPIn1Xc7CxrqhWzNSDzD+/chS/zbYezmiwWLdQC09JdQKmthOw==", "engines": { - "node": ">=16" + "node": ">=20" } }, "node_modules/@npmcli/git/node_modules/lru-cache": { - "version": "11.2.4", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.2.4.tgz", - "integrity": "sha512-B5Y16Jr9LB9dHVkh6ZevG+vAbOsNOYCX+sXvFWFu7B3Iz5mijW3zdbMyhsh8ANd2mSWBYdJgnqi+mL7/LrOPYg==", - "license": "BlueOak-1.0.0", + "version": "11.3.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.3.5.tgz", + "integrity": "sha512-NxVFwLAnrd9i7KUBxC4DrUhmgjzOs+1Qm50D3oF1/oL+r1NpZ4gA7xvG0/zJ8evR7zIKn4vLf7qTNduWFtCrRw==", "engines": { "node": "20 || >=22" } }, "node_modules/@npmcli/git/node_modules/which": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/which/-/which-6.0.0.tgz", - "integrity": "sha512-f+gEpIKMR9faW/JgAgPK1D7mekkFoqbmiwvNzuhsHetni20QSgzg9Vhn0g2JSJkkfehQnqdUAx7/e15qS1lPxg==", - "license": "ISC", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/which/-/which-6.0.1.tgz", + "integrity": "sha512-oGLe46MIrCRqX7ytPUf66EAYvdeMIZYn3WaocqqKZAxrBpkqHfL/qvTyJ/bTk5+AqHCjXmrv3CEWgy368zhRUg==", "dependencies": { - "isexe": "^3.1.1" + "isexe": "^4.0.0" }, "bin": { "node-which": "bin/which.js" @@ -7267,7 +7572,6 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/@npmcli/installed-package-contents/-/installed-package-contents-4.0.0.tgz", "integrity": "sha512-yNyAdkBxB72gtZ4GrwXCM0ZUedo9nIbOMKfGjt6Cu6DXf0p8y1PViZAKDC8q8kv/fufx0WTjRBdSlyrvnP7hmA==", - "license": "ISC", "dependencies": { "npm-bundled": "^5.0.0", "npm-normalize-package-bin": "^5.0.0" @@ -7283,16 +7587,14 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/@npmcli/node-gyp/-/node-gyp-5.0.0.tgz", "integrity": "sha512-uuG5HZFXLfyFKqg8QypsmgLQW7smiRjVc45bqD/ofZZcR/uxEjgQU8qDPv0s9TEeMUiAAU/GC5bR6++UdTirIQ==", - "license": "ISC", "engines": { "node": "^20.17.0 || >=22.9.0" } }, "node_modules/@npmcli/package-json": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/@npmcli/package-json/-/package-json-7.0.4.tgz", - "integrity": "sha512-0wInJG3j/K40OJt/33ax47WfWMzZTm6OQxB9cDhTt5huCP2a9g2GnlsxmfN+PulItNPIpPrZ+kfwwUil7eHcZQ==", - "license": "ISC", + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/@npmcli/package-json/-/package-json-7.0.5.tgz", + "integrity": "sha512-iVuTlG3ORq2iaVa1IWUxAO/jIp77tUKBhoMjuzYW2kL4MLN1bi/ofqkZ7D7OOwh8coAx1/S2ge0rMdGv8sLSOQ==", "dependencies": { "@npmcli/git": "^7.0.0", "glob": "^13.0.0", @@ -7300,7 +7602,7 @@ "json-parse-even-better-errors": "^5.0.0", "proc-log": "^6.0.0", "semver": "^7.5.3", - "validate-npm-package-license": "^3.0.4" + "spdx-expression-parse": "^4.0.0" }, "engines": { "node": "^20.17.0 || >=22.9.0" @@ -7310,7 +7612,6 @@ "version": "9.0.1", "resolved": "https://registry.npmjs.org/@npmcli/promise-spawn/-/promise-spawn-9.0.1.tgz", "integrity": "sha512-OLUaoqBuyxeTqUvjA3FZFiXUfYC1alp3Sa99gW3EUDz3tZ3CbXDdcZ7qWKBzicrJleIgucoWamWH1saAmH/l2Q==", - "license": "ISC", "dependencies": { "which": "^6.0.0" }, @@ -7319,21 +7620,19 @@ } }, "node_modules/@npmcli/promise-spawn/node_modules/isexe": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz", - "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==", - "license": "ISC", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-4.0.0.tgz", + "integrity": "sha512-FFUtZMpoZ8RqHS3XeXEmHWLA4thH+ZxCv2lOiPIn1Xc7CxrqhWzNSDzD+/chS/zbYezmiwWLdQC09JdQKmthOw==", "engines": { - "node": ">=16" + "node": ">=20" } }, "node_modules/@npmcli/promise-spawn/node_modules/which": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/which/-/which-6.0.0.tgz", - "integrity": "sha512-f+gEpIKMR9faW/JgAgPK1D7mekkFoqbmiwvNzuhsHetni20QSgzg9Vhn0g2JSJkkfehQnqdUAx7/e15qS1lPxg==", - "license": "ISC", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/which/-/which-6.0.1.tgz", + "integrity": "sha512-oGLe46MIrCRqX7ytPUf66EAYvdeMIZYn3WaocqqKZAxrBpkqHfL/qvTyJ/bTk5+AqHCjXmrv3CEWgy368zhRUg==", "dependencies": { - "isexe": "^3.1.1" + "isexe": "^4.0.0" }, "bin": { "node-which": "bin/which.js" @@ -7346,47 +7645,20 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/@npmcli/redact/-/redact-4.0.0.tgz", "integrity": "sha512-gOBg5YHMfZy+TfHArfVogwgfBeQnKbbGo3pSUyK/gSI0AVu+pEiDVcKlQb0D8Mg1LNRZILZ6XG8I5dJ4KuAd9Q==", - "license": "ISC", "engines": { "node": "^20.17.0 || >=22.9.0" } }, "node_modules/@npmcli/run-script": { - "version": "10.0.3", - "resolved": "https://registry.npmjs.org/@npmcli/run-script/-/run-script-10.0.3.tgz", - "integrity": "sha512-ER2N6itRkzWbbtVmZ9WKaWxVlKlOeBFF1/7xx+KA5J1xKa4JjUwBdb6tDpk0v1qA+d+VDwHI9qmLcXSWcmi+Rw==", - "license": "ISC", + "version": "10.0.4", + "resolved": "https://registry.npmjs.org/@npmcli/run-script/-/run-script-10.0.4.tgz", + "integrity": "sha512-mGUWr1uMnf0le2TwfOZY4SFxZGXGfm4Jtay/nwAa2FLNAKXUoUwaGwBMNH36UHPtinWfTSJ3nqFQr0091CxVGg==", "dependencies": { "@npmcli/node-gyp": "^5.0.0", "@npmcli/package-json": "^7.0.0", "@npmcli/promise-spawn": "^9.0.0", "node-gyp": "^12.1.0", - "proc-log": "^6.0.0", - "which": "^6.0.0" - }, - "engines": { - "node": "^20.17.0 || >=22.9.0" - } - }, - "node_modules/@npmcli/run-script/node_modules/isexe": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz", - "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==", - "license": "ISC", - "engines": { - "node": ">=16" - } - }, - "node_modules/@npmcli/run-script/node_modules/which": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/which/-/which-6.0.0.tgz", - "integrity": "sha512-f+gEpIKMR9faW/JgAgPK1D7mekkFoqbmiwvNzuhsHetni20QSgzg9Vhn0g2JSJkkfehQnqdUAx7/e15qS1lPxg==", - "license": "ISC", - "dependencies": { - "isexe": "^3.1.1" - }, - "bin": { - "node-which": "bin/which.js" + "proc-log": "^6.0.0" }, "engines": { "node": "^20.17.0 || >=22.9.0" @@ -7411,9 +7683,9 @@ } }, "node_modules/@openproject/primer-view-components": { - "version": "0.84.5", - "resolved": "https://registry.npmjs.org/@openproject/primer-view-components/-/primer-view-components-0.84.5.tgz", - "integrity": "sha512-Q2rliK0PC37nku6blaRvlqGuh3WJS5hr7sqdHDvdzUUBoerigRHrNsg3kNy4tUEduAcEaRpsGRGkF1z0LLo2Gw==", + "version": "0.85.0", + "resolved": "https://registry.npmjs.org/@openproject/primer-view-components/-/primer-view-components-0.85.0.tgz", + "integrity": "sha512-W/MUtfOQnkYzPMF6unyVJ6U53epCfpXwP2DcEc3YVzEK6XIaPCSS9a86dK714Na8ysOSL6j9OGgsThyfvToJKw==", "license": "MIT", "dependencies": { "@github/auto-check-element": "^6.0.0", @@ -7446,27 +7718,26 @@ } }, "node_modules/@oxc-project/types": { - "version": "0.106.0", - "resolved": "https://registry.npmjs.org/@oxc-project/types/-/types-0.106.0.tgz", - "integrity": "sha512-QdsH3rZq480VnOHSHgPYOhjL8O8LBdcnSjM408BpPCCUc0JYYZPG9Gafl9i3OcGk/7137o+gweb4cCv3WAUykg==", + "version": "0.113.0", + "resolved": "https://registry.npmjs.org/@oxc-project/types/-/types-0.113.0.tgz", + "integrity": "sha512-Tp3XmgxwNQ9pEN9vxgJBAqdRamHibi76iowQ38O2I4PMpcvNRQNVsU2n1x1nv9yh0XoTrGFzf7cZSGxmixxrhA==", "dev": true, - "license": "MIT", "funding": { "url": "https://github.com/sponsors/Boshen" } }, "node_modules/@parcel/watcher": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.5.1.tgz", - "integrity": "sha512-dfUnCxiN9H4ap84DvD2ubjw+3vUNpstxa0TneY/Paat8a3R4uQZDLSvWjmznAY/DoahqTHl9V46HF/Zs3F29pg==", + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.5.6.tgz", + "integrity": "sha512-tmmZ3lQxAe/k/+rNnXQRawJ4NjxO2hqiOLTHvWchtGZULp4RyFeh6aU4XdOYBFe2KE1oShQTv4AblOs2iOrNnQ==", "dev": true, "hasInstallScript": true, "optional": true, "dependencies": { - "detect-libc": "^1.0.3", + "detect-libc": "^2.0.3", "is-glob": "^4.0.3", - "micromatch": "^4.0.5", - "node-addon-api": "^7.0.0" + "node-addon-api": "^7.0.0", + "picomatch": "^4.0.3" }, "engines": { "node": ">= 10.0.0" @@ -7476,25 +7747,25 @@ "url": "https://opencollective.com/parcel" }, "optionalDependencies": { - "@parcel/watcher-android-arm64": "2.5.1", - "@parcel/watcher-darwin-arm64": "2.5.1", - "@parcel/watcher-darwin-x64": "2.5.1", - "@parcel/watcher-freebsd-x64": "2.5.1", - "@parcel/watcher-linux-arm-glibc": "2.5.1", - "@parcel/watcher-linux-arm-musl": "2.5.1", - "@parcel/watcher-linux-arm64-glibc": "2.5.1", - "@parcel/watcher-linux-arm64-musl": "2.5.1", - "@parcel/watcher-linux-x64-glibc": "2.5.1", - "@parcel/watcher-linux-x64-musl": "2.5.1", - "@parcel/watcher-win32-arm64": "2.5.1", - "@parcel/watcher-win32-ia32": "2.5.1", - "@parcel/watcher-win32-x64": "2.5.1" + "@parcel/watcher-android-arm64": "2.5.6", + "@parcel/watcher-darwin-arm64": "2.5.6", + "@parcel/watcher-darwin-x64": "2.5.6", + "@parcel/watcher-freebsd-x64": "2.5.6", + "@parcel/watcher-linux-arm-glibc": "2.5.6", + "@parcel/watcher-linux-arm-musl": "2.5.6", + "@parcel/watcher-linux-arm64-glibc": "2.5.6", + "@parcel/watcher-linux-arm64-musl": "2.5.6", + "@parcel/watcher-linux-x64-glibc": "2.5.6", + "@parcel/watcher-linux-x64-musl": "2.5.6", + "@parcel/watcher-win32-arm64": "2.5.6", + "@parcel/watcher-win32-ia32": "2.5.6", + "@parcel/watcher-win32-x64": "2.5.6" } }, "node_modules/@parcel/watcher-android-arm64": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-android-arm64/-/watcher-android-arm64-2.5.1.tgz", - "integrity": "sha512-KF8+j9nNbUN8vzOFDpRMsaKBHZ/mcjEjMToVMJOhTozkDonQFFrRcfdLWn6yWKCmJKmdVxSgHiYvTCef4/qcBA==", + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/@parcel/watcher-android-arm64/-/watcher-android-arm64-2.5.6.tgz", + "integrity": "sha512-YQxSS34tPF/6ZG7r/Ih9xy+kP/WwediEUsqmtf0cuCV5TPPKw/PQHRhueUo6JdeFJaqV3pyjm0GdYjZotbRt/A==", "cpu": [ "arm64" ], @@ -7512,9 +7783,9 @@ } }, "node_modules/@parcel/watcher-darwin-arm64": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-arm64/-/watcher-darwin-arm64-2.5.1.tgz", - "integrity": "sha512-eAzPv5osDmZyBhou8PoF4i6RQXAfeKL9tjb3QzYuccXFMQU0ruIc/POh30ePnaOyD1UXdlKguHBmsTs53tVoPw==", + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-arm64/-/watcher-darwin-arm64-2.5.6.tgz", + "integrity": "sha512-Z2ZdrnwyXvvvdtRHLmM4knydIdU9adO3D4n/0cVipF3rRiwP+3/sfzpAwA/qKFL6i1ModaabkU7IbpeMBgiVEA==", "cpu": [ "arm64" ], @@ -7532,9 +7803,9 @@ } }, "node_modules/@parcel/watcher-darwin-x64": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-x64/-/watcher-darwin-x64-2.5.1.tgz", - "integrity": "sha512-1ZXDthrnNmwv10A0/3AJNZ9JGlzrF82i3gNQcWOzd7nJ8aj+ILyW1MTxVk35Db0u91oD5Nlk9MBiujMlwmeXZg==", + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-x64/-/watcher-darwin-x64-2.5.6.tgz", + "integrity": "sha512-HgvOf3W9dhithcwOWX9uDZyn1lW9R+7tPZ4sug+NGrGIo4Rk1hAXLEbcH1TQSqxts0NYXXlOWqVpvS1SFS4fRg==", "cpu": [ "x64" ], @@ -7552,9 +7823,9 @@ } }, "node_modules/@parcel/watcher-freebsd-x64": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-freebsd-x64/-/watcher-freebsd-x64-2.5.1.tgz", - "integrity": "sha512-SI4eljM7Flp9yPuKi8W0ird8TI/JK6CSxju3NojVI6BjHsTyK7zxA9urjVjEKJ5MBYC+bLmMcbAWlZ+rFkLpJQ==", + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/@parcel/watcher-freebsd-x64/-/watcher-freebsd-x64-2.5.6.tgz", + "integrity": "sha512-vJVi8yd/qzJxEKHkeemh7w3YAn6RJCtYlE4HPMoVnCpIXEzSrxErBW5SJBgKLbXU3WdIpkjBTeUNtyBVn8TRng==", "cpu": [ "x64" ], @@ -7572,9 +7843,9 @@ } }, "node_modules/@parcel/watcher-linux-arm-glibc": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-glibc/-/watcher-linux-arm-glibc-2.5.1.tgz", - "integrity": "sha512-RCdZlEyTs8geyBkkcnPWvtXLY44BCeZKmGYRtSgtwwnHR4dxfHRG3gR99XdMEdQ7KeiDdasJwwvNSF5jKtDwdA==", + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-glibc/-/watcher-linux-arm-glibc-2.5.6.tgz", + "integrity": "sha512-9JiYfB6h6BgV50CCfasfLf/uvOcJskMSwcdH1PHH9rvS1IrNy8zad6IUVPVUfmXr+u+Km9IxcfMLzgdOudz9EQ==", "cpu": [ "arm" ], @@ -7592,9 +7863,9 @@ } }, "node_modules/@parcel/watcher-linux-arm-musl": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-musl/-/watcher-linux-arm-musl-2.5.1.tgz", - "integrity": "sha512-6E+m/Mm1t1yhB8X412stiKFG3XykmgdIOqhjWj+VL8oHkKABfu/gjFj8DvLrYVHSBNC+/u5PeNrujiSQ1zwd1Q==", + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-musl/-/watcher-linux-arm-musl-2.5.6.tgz", + "integrity": "sha512-Ve3gUCG57nuUUSyjBq/MAM0CzArtuIOxsBdQ+ftz6ho8n7s1i9E1Nmk/xmP323r2YL0SONs1EuwqBp2u1k5fxg==", "cpu": [ "arm" ], @@ -7612,9 +7883,9 @@ } }, "node_modules/@parcel/watcher-linux-arm64-glibc": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-glibc/-/watcher-linux-arm64-glibc-2.5.1.tgz", - "integrity": "sha512-LrGp+f02yU3BN9A+DGuY3v3bmnFUggAITBGriZHUREfNEzZh/GO06FF5u2kx8x+GBEUYfyTGamol4j3m9ANe8w==", + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-glibc/-/watcher-linux-arm64-glibc-2.5.6.tgz", + "integrity": "sha512-f2g/DT3NhGPdBmMWYoxixqYr3v/UXcmLOYy16Bx0TM20Tchduwr4EaCbmxh1321TABqPGDpS8D/ggOTaljijOA==", "cpu": [ "arm64" ], @@ -7632,9 +7903,9 @@ } }, "node_modules/@parcel/watcher-linux-arm64-musl": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-musl/-/watcher-linux-arm64-musl-2.5.1.tgz", - "integrity": "sha512-cFOjABi92pMYRXS7AcQv9/M1YuKRw8SZniCDw0ssQb/noPkRzA+HBDkwmyOJYp5wXcsTrhxO0zq1U11cK9jsFg==", + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-musl/-/watcher-linux-arm64-musl-2.5.6.tgz", + "integrity": "sha512-qb6naMDGlbCwdhLj6hgoVKJl2odL34z2sqkC7Z6kzir8b5W65WYDpLB6R06KabvZdgoHI/zxke4b3zR0wAbDTA==", "cpu": [ "arm64" ], @@ -7652,9 +7923,9 @@ } }, "node_modules/@parcel/watcher-linux-x64-glibc": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-glibc/-/watcher-linux-x64-glibc-2.5.1.tgz", - "integrity": "sha512-GcESn8NZySmfwlTsIur+49yDqSny2IhPeZfXunQi48DMugKeZ7uy1FX83pO0X22sHntJ4Ub+9k34XQCX+oHt2A==", + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-glibc/-/watcher-linux-x64-glibc-2.5.6.tgz", + "integrity": "sha512-kbT5wvNQlx7NaGjzPFu8nVIW1rWqV780O7ZtkjuWaPUgpv2NMFpjYERVi0UYj1msZNyCzGlaCWEtzc+exjMGbQ==", "cpu": [ "x64" ], @@ -7672,9 +7943,9 @@ } }, "node_modules/@parcel/watcher-linux-x64-musl": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-musl/-/watcher-linux-x64-musl-2.5.1.tgz", - "integrity": "sha512-n0E2EQbatQ3bXhcH2D1XIAANAcTZkQICBPVaxMeaCVBtOpBZpWJuf7LwyWPSBDITb7In8mqQgJ7gH8CILCURXg==", + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-musl/-/watcher-linux-x64-musl-2.5.6.tgz", + "integrity": "sha512-1JRFeC+h7RdXwldHzTsmdtYR/Ku8SylLgTU/reMuqdVD7CtLwf0VR1FqeprZ0eHQkO0vqsbvFLXUmYm/uNKJBg==", "cpu": [ "x64" ], @@ -7692,9 +7963,9 @@ } }, "node_modules/@parcel/watcher-win32-arm64": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-arm64/-/watcher-win32-arm64-2.5.1.tgz", - "integrity": "sha512-RFzklRvmc3PkjKjry3hLF9wD7ppR4AKcWNzH7kXR7GUe0Igb3Nz8fyPwtZCSquGrhU5HhUNDr/mKBqj7tqA2Vw==", + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-arm64/-/watcher-win32-arm64-2.5.6.tgz", + "integrity": "sha512-3ukyebjc6eGlw9yRt678DxVF7rjXatWiHvTXqphZLvo7aC5NdEgFufVwjFfY51ijYEWpXbqF5jtrK275z52D4Q==", "cpu": [ "arm64" ], @@ -7712,9 +7983,9 @@ } }, "node_modules/@parcel/watcher-win32-ia32": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-ia32/-/watcher-win32-ia32-2.5.1.tgz", - "integrity": "sha512-c2KkcVN+NJmuA7CGlaGD1qJh1cLfDnQsHjE89E60vUEMlqduHGCdCLJCID5geFVM0dOtA3ZiIO8BoEQmzQVfpQ==", + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-ia32/-/watcher-win32-ia32-2.5.6.tgz", + "integrity": "sha512-k35yLp1ZMwwee3Ez/pxBi5cf4AoBKYXj00CZ80jUz5h8prpiaQsiRPKQMxoLstNuqe2vR4RNPEAEcjEFzhEz/g==", "cpu": [ "ia32" ], @@ -7732,9 +8003,9 @@ } }, "node_modules/@parcel/watcher-win32-x64": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-x64/-/watcher-win32-x64-2.5.1.tgz", - "integrity": "sha512-9lHBdJITeNR++EvSQVUcaZoWupyHfXe1jZvGZ06O/5MflPcuPLtEphScIBL+AiCWBO46tDSHzWyD0uDmmZqsgA==", + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-x64/-/watcher-win32-x64-2.5.6.tgz", + "integrity": "sha512-hbQlYcCq5dlAX9Qx+kFb0FHue6vbjlf0FrNzSKdYK2APUf7tGfGxQCk2ihEREmbR6ZMc0MVAD5RIX/41gpUzTw==", "cpu": [ "x64" ], @@ -7751,19 +8022,6 @@ "url": "https://opencollective.com/parcel" } }, - "node_modules/@parcel/watcher/node_modules/detect-libc": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", - "integrity": "sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==", - "dev": true, - "optional": true, - "bin": { - "detect-libc": "bin/detect-libc.js" - }, - "engines": { - "node": ">=0.10" - } - }, "node_modules/@parcel/watcher/node_modules/node-addon-api": { "version": "7.1.1", "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.1.1.tgz", @@ -7771,6 +8029,167 @@ "dev": true, "optional": true }, + "node_modules/@parcel/watcher/node_modules/picomatch": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz", + "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==", + "dev": true, + "optional": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/@peculiar/asn1-cms": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-cms/-/asn1-cms-2.6.1.tgz", + "integrity": "sha512-vdG4fBF6Lkirkcl53q6eOdn3XYKt+kJTG59edgRZORlg/3atWWEReRCx5rYE1ZzTTX6vLK5zDMjHh7vbrcXGtw==", + "dev": true, + "dependencies": { + "@peculiar/asn1-schema": "^2.6.0", + "@peculiar/asn1-x509": "^2.6.1", + "@peculiar/asn1-x509-attr": "^2.6.1", + "asn1js": "^3.0.6", + "tslib": "^2.8.1" + } + }, + "node_modules/@peculiar/asn1-csr": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-csr/-/asn1-csr-2.6.1.tgz", + "integrity": "sha512-WRWnKfIocHyzFYQTka8O/tXCiBquAPSrRjXbOkHbO4qdmS6loffCEGs+rby6WxxGdJCuunnhS2duHURhjyio6w==", + "dev": true, + "dependencies": { + "@peculiar/asn1-schema": "^2.6.0", + "@peculiar/asn1-x509": "^2.6.1", + "asn1js": "^3.0.6", + "tslib": "^2.8.1" + } + }, + "node_modules/@peculiar/asn1-ecc": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-ecc/-/asn1-ecc-2.6.1.tgz", + "integrity": "sha512-+Vqw8WFxrtDIN5ehUdvlN2m73exS2JVG0UAyfVB31gIfor3zWEAQPD+K9ydCxaj3MLen9k0JhKpu9LqviuCE1g==", + "dev": true, + "dependencies": { + "@peculiar/asn1-schema": "^2.6.0", + "@peculiar/asn1-x509": "^2.6.1", + "asn1js": "^3.0.6", + "tslib": "^2.8.1" + } + }, + "node_modules/@peculiar/asn1-pfx": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-pfx/-/asn1-pfx-2.6.1.tgz", + "integrity": "sha512-nB5jVQy3MAAWvq0KY0R2JUZG8bO/bTLpnwyOzXyEh/e54ynGTatAR+csOnXkkVD9AFZ2uL8Z7EV918+qB1qDvw==", + "dev": true, + "dependencies": { + "@peculiar/asn1-cms": "^2.6.1", + "@peculiar/asn1-pkcs8": "^2.6.1", + "@peculiar/asn1-rsa": "^2.6.1", + "@peculiar/asn1-schema": "^2.6.0", + "asn1js": "^3.0.6", + "tslib": "^2.8.1" + } + }, + "node_modules/@peculiar/asn1-pkcs8": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-pkcs8/-/asn1-pkcs8-2.6.1.tgz", + "integrity": "sha512-JB5iQ9Izn5yGMw3ZG4Nw3Xn/hb/G38GYF3lf7WmJb8JZUydhVGEjK/ZlFSWhnlB7K/4oqEs8HnfFIKklhR58Tw==", + "dev": true, + "dependencies": { + "@peculiar/asn1-schema": "^2.6.0", + "@peculiar/asn1-x509": "^2.6.1", + "asn1js": "^3.0.6", + "tslib": "^2.8.1" + } + }, + "node_modules/@peculiar/asn1-pkcs9": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-pkcs9/-/asn1-pkcs9-2.6.1.tgz", + "integrity": "sha512-5EV8nZoMSxeWmcxWmmcolg22ojZRgJg+Y9MX2fnE2bGRo5KQLqV5IL9kdSQDZxlHz95tHvIq9F//bvL1OeNILw==", + "dev": true, + "dependencies": { + "@peculiar/asn1-cms": "^2.6.1", + "@peculiar/asn1-pfx": "^2.6.1", + "@peculiar/asn1-pkcs8": "^2.6.1", + "@peculiar/asn1-schema": "^2.6.0", + "@peculiar/asn1-x509": "^2.6.1", + "@peculiar/asn1-x509-attr": "^2.6.1", + "asn1js": "^3.0.6", + "tslib": "^2.8.1" + } + }, + "node_modules/@peculiar/asn1-rsa": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-rsa/-/asn1-rsa-2.6.1.tgz", + "integrity": "sha512-1nVMEh46SElUt5CB3RUTV4EG/z7iYc7EoaDY5ECwganibQPkZ/Y2eMsTKB/LeyrUJ+W/tKoD9WUqIy8vB+CEdA==", + "dev": true, + "dependencies": { + "@peculiar/asn1-schema": "^2.6.0", + "@peculiar/asn1-x509": "^2.6.1", + "asn1js": "^3.0.6", + "tslib": "^2.8.1" + } + }, + "node_modules/@peculiar/asn1-schema": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-schema/-/asn1-schema-2.6.0.tgz", + "integrity": "sha512-xNLYLBFTBKkCzEZIw842BxytQQATQv+lDTCEMZ8C196iJcJJMBUZxrhSTxLaohMyKK8QlzRNTRkUmanucnDSqg==", + "dev": true, + "dependencies": { + "asn1js": "^3.0.6", + "pvtsutils": "^1.3.6", + "tslib": "^2.8.1" + } + }, + "node_modules/@peculiar/asn1-x509": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-x509/-/asn1-x509-2.6.1.tgz", + "integrity": "sha512-O9jT5F1A2+t3r7C4VT7LYGXqkGLK7Kj1xFpz7U0isPrubwU5PbDoyYtx6MiGst29yq7pXN5vZbQFKRCP+lLZlA==", + "dev": true, + "dependencies": { + "@peculiar/asn1-schema": "^2.6.0", + "asn1js": "^3.0.6", + "pvtsutils": "^1.3.6", + "tslib": "^2.8.1" + } + }, + "node_modules/@peculiar/asn1-x509-attr": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-x509-attr/-/asn1-x509-attr-2.6.1.tgz", + "integrity": "sha512-tlW6cxoHwgcQghnJwv3YS+9OO1737zgPogZ+CgWRUK4roEwIPzRH4JEiG770xe5HX2ATfCpmX60gurfWIF9dcQ==", + "dev": true, + "dependencies": { + "@peculiar/asn1-schema": "^2.6.0", + "@peculiar/asn1-x509": "^2.6.1", + "asn1js": "^3.0.6", + "tslib": "^2.8.1" + } + }, + "node_modules/@peculiar/x509": { + "version": "1.14.3", + "resolved": "https://registry.npmjs.org/@peculiar/x509/-/x509-1.14.3.tgz", + "integrity": "sha512-C2Xj8FZ0uHWeCXXqX5B4/gVFQmtSkiuOolzAgutjTfseNOHT3pUjljDZsTSxXFGgio54bCzVFqmEOUrIVk8RDA==", + "dev": true, + "dependencies": { + "@peculiar/asn1-cms": "^2.6.0", + "@peculiar/asn1-csr": "^2.6.0", + "@peculiar/asn1-ecc": "^2.6.0", + "@peculiar/asn1-pkcs9": "^2.6.0", + "@peculiar/asn1-rsa": "^2.6.0", + "@peculiar/asn1-schema": "^2.6.0", + "@peculiar/asn1-x509": "^2.6.0", + "pvtsutils": "^1.3.6", + "reflect-metadata": "^0.2.2", + "tslib": "^2.8.1", + "tsyringe": "^4.10.0" + }, + "engines": { + "node": ">=20.0.0" + } + }, "node_modules/@primer/behaviors": { "version": "1.3.5", "resolved": "https://registry.npmjs.org/@primer/behaviors/-/behaviors-1.3.5.tgz", @@ -7815,9 +8234,9 @@ }, "node_modules/@primer/view-components": { "name": "@openproject/primer-view-components", - "version": "0.84.5", - "resolved": "https://registry.npmjs.org/@openproject/primer-view-components/-/primer-view-components-0.84.5.tgz", - "integrity": "sha512-Q2rliK0PC37nku6blaRvlqGuh3WJS5hr7sqdHDvdzUUBoerigRHrNsg3kNy4tUEduAcEaRpsGRGkF1z0LLo2Gw==", + "version": "0.85.0", + "resolved": "https://registry.npmjs.org/@openproject/primer-view-components/-/primer-view-components-0.85.0.tgz", + "integrity": "sha512-W/MUtfOQnkYzPMF6unyVJ6U53epCfpXwP2DcEc3YVzEK6XIaPCSS9a86dK714Na8ysOSL6j9OGgsThyfvToJKw==", "license": "MIT", "dependencies": { "@github/auto-check-element": "^6.0.0", @@ -7874,14 +8293,13 @@ "license": "MIT" }, "node_modules/@rolldown/binding-android-arm64": { - "version": "1.0.0-beta.58", - "resolved": "https://registry.npmjs.org/@rolldown/binding-android-arm64/-/binding-android-arm64-1.0.0-beta.58.tgz", - "integrity": "sha512-mWj5eE4Qc8TbPdGGaaLvBb9XfDPvE1EmZkJQgiGKwchkWH4oAJcRAKMTw7ZHnb1L+t7Ah41sBkAecaIsuUgsug==", + "version": "1.0.0-rc.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-android-arm64/-/binding-android-arm64-1.0.0-rc.4.tgz", + "integrity": "sha512-vRq9f4NzvbdZavhQbjkJBx7rRebDKYR9zHfO/Wg486+I7bSecdUapzCm5cyXoK+LHokTxgSq7A5baAXUZkIz0w==", "cpu": [ "arm64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "android" @@ -7891,14 +8309,13 @@ } }, "node_modules/@rolldown/binding-darwin-arm64": { - "version": "1.0.0-beta.58", - "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.0.0-beta.58.tgz", - "integrity": "sha512-wFxUymI/5R8bH8qZFYDfAxAN9CyISEIYke+95oZPiv6EWo88aa5rskjVcCpKA532R+klFmdqjbbaD56GNmTF4Q==", + "version": "1.0.0-rc.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.0.0-rc.4.tgz", + "integrity": "sha512-kFgEvkWLqt3YCgKB5re9RlIrx9bRsvyVUnaTakEpOPuLGzLpLapYxE9BufJNvPg8GjT6mB1alN4yN1NjzoeM8Q==", "cpu": [ "arm64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "darwin" @@ -7908,14 +8325,13 @@ } }, "node_modules/@rolldown/binding-darwin-x64": { - "version": "1.0.0-beta.58", - "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-x64/-/binding-darwin-x64-1.0.0-beta.58.tgz", - "integrity": "sha512-ybp3MkPj23VDV9PhtRwdU5qrGhlViWRV5BjKwO6epaSlUD5lW0WyY+roN3ZAzbma/9RrMTgZ/a/gtQq8YXOcqw==", + "version": "1.0.0-rc.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-x64/-/binding-darwin-x64-1.0.0-rc.4.tgz", + "integrity": "sha512-JXmaOJGsL/+rsmMfutcDjxWM2fTaVgCHGoXS7nE8Z3c9NAYjGqHvXrAhMUZvMpHS/k7Mg+X7n/MVKb7NYWKKww==", "cpu": [ "x64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "darwin" @@ -7925,14 +8341,13 @@ } }, "node_modules/@rolldown/binding-freebsd-x64": { - "version": "1.0.0-beta.58", - "resolved": "https://registry.npmjs.org/@rolldown/binding-freebsd-x64/-/binding-freebsd-x64-1.0.0-beta.58.tgz", - "integrity": "sha512-Evxj3yh7FWvyklUYZa0qTVT9N2zX9TPDqGF056hl8hlCZ9/ndQ2xMv6uw9PD1VlLpukbsqL+/C6M0qwipL0QMg==", + "version": "1.0.0-rc.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-freebsd-x64/-/binding-freebsd-x64-1.0.0-rc.4.tgz", + "integrity": "sha512-ep3Catd6sPnHTM0P4hNEvIv5arnDvk01PfyJIJ+J3wVCG1eEaPo09tvFqdtcaTrkwQy0VWR24uz+cb4IsK53Qw==", "cpu": [ "x64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "freebsd" @@ -7942,14 +8357,13 @@ } }, "node_modules/@rolldown/binding-linux-arm-gnueabihf": { - "version": "1.0.0-beta.58", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.0.0-beta.58.tgz", - "integrity": "sha512-tYeXprDOrEgVHUbPXH6MPso4cM/c6RTkmJNICMQlYdki4hGMh92aj3yU6CKs+4X5gfG0yj5kVUw/L4M685SYag==", + "version": "1.0.0-rc.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.0.0-rc.4.tgz", + "integrity": "sha512-LwA5ayKIpnsgXJEwWc3h8wPiS33NMIHd9BhsV92T8VetVAbGe2qXlJwNVDGHN5cOQ22R9uYvbrQir2AB+ntT2w==", "cpu": [ "arm" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "linux" @@ -7959,14 +8373,13 @@ } }, "node_modules/@rolldown/binding-linux-arm64-gnu": { - "version": "1.0.0-beta.58", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.0.0-beta.58.tgz", - "integrity": "sha512-N78vmZzP6zG967Ohr+MasCjmKtis0geZ1SOVmxrA0/bklTQSzH5kHEjW5Qn+i1taFno6GEre1E40v0wuWsNOQw==", + "version": "1.0.0-rc.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.0.0-rc.4.tgz", + "integrity": "sha512-AC1WsGdlV1MtGay/OQ4J9T7GRadVnpYRzTcygV1hKnypbYN20Yh4t6O1Sa2qRBMqv1etulUknqXjc3CTIsBu6A==", "cpu": [ "arm64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "linux" @@ -7976,14 +8389,13 @@ } }, "node_modules/@rolldown/binding-linux-arm64-musl": { - "version": "1.0.0-beta.58", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.0.0-beta.58.tgz", - "integrity": "sha512-l+p4QVtG72C7wI2SIkNQw/KQtSjuYwS3rV6AKcWrRBF62ClsFUcif5vLaZIEbPrCXu5OFRXigXFJnxYsVVZqdQ==", + "version": "1.0.0-rc.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.0.0-rc.4.tgz", + "integrity": "sha512-lU+6rgXXViO61B4EudxtVMXSOfiZONR29Sys5VGSetUY7X8mg9FCKIIjcPPj8xNDeYzKl+H8F/qSKOBVFJChCQ==", "cpu": [ "arm64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "linux" @@ -7993,14 +8405,13 @@ } }, "node_modules/@rolldown/binding-linux-x64-gnu": { - "version": "1.0.0-beta.58", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.0.0-beta.58.tgz", - "integrity": "sha512-urzJX0HrXxIh0FfxwWRjfPCMeInU9qsImLQxHBgLp5ivji1EEUnOfux8KxPPnRQthJyneBrN2LeqUix9DYrNaQ==", + "version": "1.0.0-rc.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.0.0-rc.4.tgz", + "integrity": "sha512-DZaN1f0PGp/bSvKhtw50pPsnln4T13ycDq1FrDWRiHmWt1JeW+UtYg9touPFf8yt993p8tS2QjybpzKNTxYEwg==", "cpu": [ "x64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "linux" @@ -8010,14 +8421,13 @@ } }, "node_modules/@rolldown/binding-linux-x64-musl": { - "version": "1.0.0-beta.58", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-musl/-/binding-linux-x64-musl-1.0.0-beta.58.tgz", - "integrity": "sha512-7ijfVK3GISnXIwq/1FZo+KyAUJjL3kWPJ7rViAL6MWeEBhEgRzJ0yEd9I8N9aut8Y8ab+EKFJyRNMWZuUBwQ0A==", + "version": "1.0.0-rc.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-musl/-/binding-linux-x64-musl-1.0.0-rc.4.tgz", + "integrity": "sha512-RnGxwZLN7fhMMAItnD6dZ7lvy+TI7ba+2V54UF4dhaWa/p8I/ys1E73KO6HmPmgz92ZkfD8TXS1IMV8+uhbR9g==", "cpu": [ "x64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "linux" @@ -8027,14 +8437,13 @@ } }, "node_modules/@rolldown/binding-openharmony-arm64": { - "version": "1.0.0-beta.58", - "resolved": "https://registry.npmjs.org/@rolldown/binding-openharmony-arm64/-/binding-openharmony-arm64-1.0.0-beta.58.tgz", - "integrity": "sha512-/m7sKZCS+cUULbzyJTIlv8JbjNohxbpAOA6cM+lgWgqVzPee3U6jpwydrib328JFN/gF9A99IZEnuGYqEDJdww==", + "version": "1.0.0-rc.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-openharmony-arm64/-/binding-openharmony-arm64-1.0.0-rc.4.tgz", + "integrity": "sha512-6lcI79+X8klGiGd8yHuTgQRjuuJYNggmEml+RsyN596P23l/zf9FVmJ7K0KVKkFAeYEdg0iMUKyIxiV5vebDNQ==", "cpu": [ "arm64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "openharmony" @@ -8044,14 +8453,13 @@ } }, "node_modules/@rolldown/binding-wasm32-wasi": { - "version": "1.0.0-beta.58", - "resolved": "https://registry.npmjs.org/@rolldown/binding-wasm32-wasi/-/binding-wasm32-wasi-1.0.0-beta.58.tgz", - "integrity": "sha512-6SZk7zMgv+y3wFFQ9qE5P9NnRHcRsptL1ypmudD26PDY+PvFCvfHRkJNfclWnvacVGxjowr7JOL3a9fd1wWhUw==", + "version": "1.0.0-rc.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-wasm32-wasi/-/binding-wasm32-wasi-1.0.0-rc.4.tgz", + "integrity": "sha512-wz7ohsKCAIWy91blZ/1FlpPdqrsm1xpcEOQVveWoL6+aSPKL4VUcoYmmzuLTssyZxRpEwzuIxL/GDsvpjaBtOw==", "cpu": [ "wasm32" ], "dev": true, - "license": "MIT", "optional": true, "dependencies": { "@napi-rs/wasm-runtime": "^1.1.1" @@ -8061,14 +8469,13 @@ } }, "node_modules/@rolldown/binding-win32-arm64-msvc": { - "version": "1.0.0-beta.58", - "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.0.0-beta.58.tgz", - "integrity": "sha512-sFqfYPnBZ6xBhMkadB7UD0yjEDRvs7ipR3nCggblN+N4ODCXY6qhg/bKL39+W+dgQybL7ErD4EGERVbW9DAWvg==", + "version": "1.0.0-rc.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.0.0-rc.4.tgz", + "integrity": "sha512-cfiMrfuWCIgsFmcVG0IPuO6qTRHvF7NuG3wngX1RZzc6dU8FuBFb+J3MIR5WrdTNozlumfgL4cvz+R4ozBCvsQ==", "cpu": [ "arm64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "win32" @@ -8078,14 +8485,13 @@ } }, "node_modules/@rolldown/binding-win32-x64-msvc": { - "version": "1.0.0-beta.58", - "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.0.0-beta.58.tgz", - "integrity": "sha512-AnFWJdAqB8+IDPcGrATYs67Kik/6tnndNJV2jGRmwlbeNiQQ8GhRJU8ETRlINfII0pqi9k4WWLnb00p1QCxw/Q==", + "version": "1.0.0-rc.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.0.0-rc.4.tgz", + "integrity": "sha512-p6UeR9y7ht82AH57qwGuFYn69S6CZ7LLKdCKy/8T3zS9VTrJei2/CGsTUV45Da4Z9Rbhc7G4gyWQ/Ioamqn09g==", "cpu": [ "x64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "win32" @@ -8095,16 +8501,15 @@ } }, "node_modules/@rolldown/pluginutils": { - "version": "1.0.0-beta.58", - "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-beta.58.tgz", - "integrity": "sha512-qWhDs6yFGR5xDfdrwiSa3CWGIHxD597uGE/A9xGqytBjANvh4rLCTTkq7szhMV4+Ygh+PMS90KVJ8xWG/TkX4w==", - "dev": true, - "license": "MIT" + "version": "1.0.0-rc.4", + "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-rc.4.tgz", + "integrity": "sha512-1BrrmTu0TWfOP1riA8uakjFc9bpIUGzVKETsOtzY39pPga8zELGDl8eu1Dx7/gjM5CAz14UknsUMpBO8L+YntQ==", + "dev": true }, "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.59.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.59.0.tgz", - "integrity": "sha512-upnNBkA6ZH2VKGcBj9Fyl9IGNPULcjXRlg0LLeaioQWueH30p6IXtJEbKAgvyv+mJaMxSm1l6xwDXYjpEMiLMg==", + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.60.2.tgz", + "integrity": "sha512-dnlp69efPPg6Uaw2dVqzWRfAWRnYVb1XJ8CyyhIbZeaq4CA5/mLeZ1IEt9QqQxmbdvagjLIm2ZL8BxXv5lH4Yw==", "cpu": [ "arm" ], @@ -8115,9 +8520,9 @@ ] }, "node_modules/@rollup/rollup-android-arm64": { - "version": "4.59.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.59.0.tgz", - "integrity": "sha512-hZ+Zxj3SySm4A/DylsDKZAeVg0mvi++0PYVceVyX7hemkw7OreKdCvW2oQ3T1FMZvCaQXqOTHb8qmBShoqk69Q==", + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.60.2.tgz", + "integrity": "sha512-OqZTwDRDchGRHHm/hwLOL7uVPB9aUvI0am/eQuWMNyFHf5PSEQmyEeYYheA0EPPKUO/l0uigCp+iaTjoLjVoHg==", "cpu": [ "arm64" ], @@ -8128,9 +8533,9 @@ ] }, "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.59.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.59.0.tgz", - "integrity": "sha512-W2Psnbh1J8ZJw0xKAd8zdNgF9HRLkdWwwdWqubSVk0pUuQkoHnv7rx4GiF9rT4t5DIZGAsConRE3AxCdJ4m8rg==", + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.60.2.tgz", + "integrity": "sha512-UwRE7CGpvSVEQS8gUMBe1uADWjNnVgP3Iusyda1nSRwNDCsRjnGc7w6El6WLQsXmZTbLZx9cecegumcitNfpmA==", "cpu": [ "arm64" ], @@ -8141,9 +8546,9 @@ ] }, "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.59.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.59.0.tgz", - "integrity": "sha512-ZW2KkwlS4lwTv7ZVsYDiARfFCnSGhzYPdiOU4IM2fDbL+QGlyAbjgSFuqNRbSthybLbIJ915UtZBtmuLrQAT/w==", + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.60.2.tgz", + "integrity": "sha512-gjEtURKLCC5VXm1I+2i1u9OhxFsKAQJKTVB8WvDAHF+oZlq0GTVFOlTlO1q3AlCTE/DF32c16ESvfgqR7343/g==", "cpu": [ "x64" ], @@ -8154,9 +8559,9 @@ ] }, "node_modules/@rollup/rollup-freebsd-arm64": { - "version": "4.59.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.59.0.tgz", - "integrity": "sha512-EsKaJ5ytAu9jI3lonzn3BgG8iRBjV4LxZexygcQbpiU0wU0ATxhNVEpXKfUa0pS05gTcSDMKpn3Sx+QB9RlTTA==", + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.60.2.tgz", + "integrity": "sha512-Bcl6CYDeAgE70cqZaMojOi/eK63h5Me97ZqAQoh77VPjMysA/4ORQBRGo3rRy45x4MzVlU9uZxs8Uwy7ZaKnBw==", "cpu": [ "arm64" ], @@ -8167,9 +8572,9 @@ ] }, "node_modules/@rollup/rollup-freebsd-x64": { - "version": "4.59.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.59.0.tgz", - "integrity": "sha512-d3DuZi2KzTMjImrxoHIAODUZYoUUMsuUiY4SRRcJy6NJoZ6iIqWnJu9IScV9jXysyGMVuW+KNzZvBLOcpdl3Vg==", + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.60.2.tgz", + "integrity": "sha512-LU+TPda3mAE2QB0/Hp5VyeKJivpC6+tlOXd1VMoXV/YFMvk/MNk5iXeBfB4MQGRWyOYVJ01625vjkr0Az98OJQ==", "cpu": [ "x64" ], @@ -8180,9 +8585,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.59.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.59.0.tgz", - "integrity": "sha512-t4ONHboXi/3E0rT6OZl1pKbl2Vgxf9vJfWgmUoCEVQVxhW6Cw/c8I6hbbu7DAvgp82RKiH7TpLwxnJeKv2pbsw==", + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.60.2.tgz", + "integrity": "sha512-2QxQrM+KQ7DAW4o22j+XZ6RKdxjLD7BOWTP0Bv0tmjdyhXSsr2Ul1oJDQqh9Zf5qOwTuTc7Ek83mOFaKnodPjg==", "cpu": [ "arm" ], @@ -8193,9 +8598,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-musleabihf": { - "version": "4.59.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.59.0.tgz", - "integrity": "sha512-CikFT7aYPA2ufMD086cVORBYGHffBo4K8MQ4uPS/ZnY54GKj36i196u8U+aDVT2LX4eSMbyHtyOh7D7Zvk2VvA==", + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.60.2.tgz", + "integrity": "sha512-TbziEu2DVsTEOPif2mKWkMeDMLoYjx95oESa9fkQQK7r/Orta0gnkcDpzwufEcAO2BLBsD7mZkXGFqEdMRRwfw==", "cpu": [ "arm" ], @@ -8206,9 +8611,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.59.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.59.0.tgz", - "integrity": "sha512-jYgUGk5aLd1nUb1CtQ8E+t5JhLc9x5WdBKew9ZgAXg7DBk0ZHErLHdXM24rfX+bKrFe+Xp5YuJo54I5HFjGDAA==", + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.60.2.tgz", + "integrity": "sha512-bO/rVDiDUuM2YfuCUwZ1t1cP+/yqjqz+Xf2VtkdppefuOFS2OSeAfgafaHNkFn0t02hEyXngZkxtGqXcXwO8Rg==", "cpu": [ "arm64" ], @@ -8219,9 +8624,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.59.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.59.0.tgz", - "integrity": "sha512-peZRVEdnFWZ5Bh2KeumKG9ty7aCXzzEsHShOZEFiCQlDEepP1dpUl/SrUNXNg13UmZl+gzVDPsiCwnV1uI0RUA==", + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.60.2.tgz", + "integrity": "sha512-hr26p7e93Rl0Za+JwW7EAnwAvKkehh12BU1Llm9Ykiibg4uIr2rbpxG9WCf56GuvidlTG9KiiQT/TXT1yAWxTA==", "cpu": [ "arm64" ], @@ -8232,9 +8637,9 @@ ] }, "node_modules/@rollup/rollup-linux-loong64-gnu": { - "version": "4.59.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.59.0.tgz", - "integrity": "sha512-gbUSW/97f7+r4gHy3Jlup8zDG190AuodsWnNiXErp9mT90iCy9NKKU0Xwx5k8VlRAIV2uU9CsMnEFg/xXaOfXg==", + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.60.2.tgz", + "integrity": "sha512-pOjB/uSIyDt+ow3k/RcLvUAOGpysT2phDn7TTUB3n75SlIgZzM6NKAqlErPhoFU+npgY3/n+2HYIQVbF70P9/A==", "cpu": [ "loong64" ], @@ -8245,9 +8650,9 @@ ] }, "node_modules/@rollup/rollup-linux-loong64-musl": { - "version": "4.59.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.59.0.tgz", - "integrity": "sha512-yTRONe79E+o0FWFijasoTjtzG9EBedFXJMl888NBEDCDV9I2wGbFFfJQQe63OijbFCUZqxpHz1GzpbtSFikJ4Q==", + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.60.2.tgz", + "integrity": "sha512-2/w+q8jszv9Ww1c+6uJT3OwqhdmGP2/4T17cu8WuwyUuuaCDDJ2ojdyYwZzCxx0GcsZBhzi3HmH+J5pZNXnd+Q==", "cpu": [ "loong64" ], @@ -8258,9 +8663,9 @@ ] }, "node_modules/@rollup/rollup-linux-ppc64-gnu": { - "version": "4.59.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.59.0.tgz", - "integrity": "sha512-sw1o3tfyk12k3OEpRddF68a1unZ5VCN7zoTNtSn2KndUE+ea3m3ROOKRCZxEpmT9nsGnogpFP9x6mnLTCaoLkA==", + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.60.2.tgz", + "integrity": "sha512-11+aL5vKheYgczxtPVVRhdptAM2H7fcDR5Gw4/bTcteuZBlH4oP9f5s9zYO9aGZvoGeBpqXI/9TZZihZ609wKw==", "cpu": [ "ppc64" ], @@ -8271,9 +8676,9 @@ ] }, "node_modules/@rollup/rollup-linux-ppc64-musl": { - "version": "4.59.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.59.0.tgz", - "integrity": "sha512-+2kLtQ4xT3AiIxkzFVFXfsmlZiG5FXYW7ZyIIvGA7Bdeuh9Z0aN4hVyXS/G1E9bTP/vqszNIN/pUKCk/BTHsKA==", + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.60.2.tgz", + "integrity": "sha512-i16fokAGK46IVZuV8LIIwMdtqhin9hfYkCh8pf8iC3QU3LpwL+1FSFGej+O7l3E/AoknL6Dclh2oTdnRMpTzFQ==", "cpu": [ "ppc64" ], @@ -8284,9 +8689,9 @@ ] }, "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.59.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.59.0.tgz", - "integrity": "sha512-NDYMpsXYJJaj+I7UdwIuHHNxXZ/b/N2hR15NyH3m2qAtb/hHPA4g4SuuvrdxetTdndfj9b1WOmy73kcPRoERUg==", + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.60.2.tgz", + "integrity": "sha512-49FkKS6RGQoriDSK/6E2GkAsAuU5kETFCh7pG4yD/ylj9rKhTmO3elsnmBvRD4PgJPds5W2PkhC82aVwmUcJ7A==", "cpu": [ "riscv64" ], @@ -8297,9 +8702,9 @@ ] }, "node_modules/@rollup/rollup-linux-riscv64-musl": { - "version": "4.59.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.59.0.tgz", - "integrity": "sha512-nLckB8WOqHIf1bhymk+oHxvM9D3tyPndZH8i8+35p/1YiVoVswPid2yLzgX7ZJP0KQvnkhM4H6QZ5m0LzbyIAg==", + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.60.2.tgz", + "integrity": "sha512-mjYNkHPfGpUR00DuM1ZZIgs64Hpf4bWcz9Z41+4Q+pgDx73UwWdAYyf6EG/lRFldmdHHzgrYyge5akFUW0D3mQ==", "cpu": [ "riscv64" ], @@ -8310,9 +8715,9 @@ ] }, "node_modules/@rollup/rollup-linux-s390x-gnu": { - "version": "4.59.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.59.0.tgz", - "integrity": "sha512-oF87Ie3uAIvORFBpwnCvUzdeYUqi2wY6jRFWJAy1qus/udHFYIkplYRW+wo+GRUP4sKzYdmE1Y3+rY5Gc4ZO+w==", + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.60.2.tgz", + "integrity": "sha512-ALyvJz965BQk8E9Al/JDKKDLH2kfKFLTGMlgkAbbYtZuJt9LU8DW3ZoDMCtQpXAltZxwBHevXz5u+gf0yA0YoA==", "cpu": [ "s390x" ], @@ -8323,9 +8728,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.59.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.59.0.tgz", - "integrity": "sha512-3AHmtQq/ppNuUspKAlvA8HtLybkDflkMuLK4DPo77DfthRb71V84/c4MlWJXixZz4uruIH4uaa07IqoAkG64fg==", + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.60.2.tgz", + "integrity": "sha512-UQjrkIdWrKI626Du8lCQ6MJp/6V1LAo2bOK9OTu4mSn8GGXIkPXk/Vsp4bLHCd9Z9Iz2OTEaokUE90VweJgIYQ==", "cpu": [ "x64" ], @@ -8336,9 +8741,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.59.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.59.0.tgz", - "integrity": "sha512-2UdiwS/9cTAx7qIUZB/fWtToJwvt0Vbo0zmnYt7ED35KPg13Q0ym1g442THLC7VyI6JfYTP4PiSOWyoMdV2/xg==", + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.60.2.tgz", + "integrity": "sha512-bTsRGj6VlSdn/XD4CGyzMnzaBs9bsRxy79eTqTCBsA8TMIEky7qg48aPkvJvFe1HyzQ5oMZdg7AnVlWQSKLTnw==", "cpu": [ "x64" ], @@ -8349,9 +8754,9 @@ ] }, "node_modules/@rollup/rollup-openbsd-x64": { - "version": "4.59.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-openbsd-x64/-/rollup-openbsd-x64-4.59.0.tgz", - "integrity": "sha512-M3bLRAVk6GOwFlPTIxVBSYKUaqfLrn8l0psKinkCFxl4lQvOSz8ZrKDz2gxcBwHFpci0B6rttydI4IpS4IS/jQ==", + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openbsd-x64/-/rollup-openbsd-x64-4.60.2.tgz", + "integrity": "sha512-6d4Z3534xitaA1FcMWP7mQPq5zGwBmGbhphh2DwaA1aNIXUu3KTOfwrWpbwI4/Gr0uANo7NTtaykFyO2hPuFLg==", "cpu": [ "x64" ], @@ -8362,9 +8767,9 @@ ] }, "node_modules/@rollup/rollup-openharmony-arm64": { - "version": "4.59.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.59.0.tgz", - "integrity": "sha512-tt9KBJqaqp5i5HUZzoafHZX8b5Q2Fe7UjYERADll83O4fGqJ49O1FsL6LpdzVFQcpwvnyd0i+K/VSwu/o/nWlA==", + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.60.2.tgz", + "integrity": "sha512-NetAg5iO2uN7eB8zE5qrZ3CSil+7IJt4WDFLcC75Ymywq1VZVD6qJ6EvNLjZ3rEm6gB7XW5JdT60c6MN35Z85Q==", "cpu": [ "arm64" ], @@ -8375,9 +8780,9 @@ ] }, "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.59.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.59.0.tgz", - "integrity": "sha512-V5B6mG7OrGTwnxaNUzZTDTjDS7F75PO1ae6MJYdiMu60sq0CqN5CVeVsbhPxalupvTX8gXVSU9gq+Rx1/hvu6A==", + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.60.2.tgz", + "integrity": "sha512-NCYhOotpgWZ5kdxCZsv6Iudx0wX8980Q/oW4pNFNihpBKsDbEA1zpkfxJGC0yugsUuyDZ7gL37dbzwhR0VI7pQ==", "cpu": [ "arm64" ], @@ -8388,9 +8793,9 @@ ] }, "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.59.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.59.0.tgz", - "integrity": "sha512-UKFMHPuM9R0iBegwzKF4y0C4J9u8C6MEJgFuXTBerMk7EJ92GFVFYBfOZaSGLu6COf7FxpQNqhNS4c4icUPqxA==", + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.60.2.tgz", + "integrity": "sha512-RXsaOqXxfoUBQoOgvmmijVxJnW2IGB0eoMO7F8FAjaj0UTywUO/luSqimWBJn04WNgUkeNhh7fs7pESXajWmkg==", "cpu": [ "ia32" ], @@ -8401,9 +8806,9 @@ ] }, "node_modules/@rollup/rollup-win32-x64-gnu": { - "version": "4.59.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.59.0.tgz", - "integrity": "sha512-laBkYlSS1n2L8fSo1thDNGrCTQMmxjYY5G0WFWjFFYZkKPjsMBsgJfGf4TLxXrF6RyhI60L8TMOjBMvXiTcxeA==", + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.60.2.tgz", + "integrity": "sha512-qdAzEULD+/hzObedtmV6iBpdL5TIbKVztGiK7O3/KYSf+HIzU257+MX1EXJcyIiDbMAqmbwaufcYPvyRryeZtA==", "cpu": [ "x64" ], @@ -8414,9 +8819,9 @@ ] }, "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.59.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.59.0.tgz", - "integrity": "sha512-2HRCml6OztYXyJXAvdDXPKcawukWY2GpR5/nxKp4iBgiO3wcoEGkAaqctIbZcNB6KlUQBIqt8VYkNSj2397EfA==", + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.60.2.tgz", + "integrity": "sha512-Nd/SgG27WoA9e+/TdK74KnHz852TLa94ovOYySo/yMPuTmpckK/jIF2jSwS3g7ELSKXK13/cVdmg1Z/DaCWKxA==", "cpu": [ "x64" ], @@ -8439,12 +8844,12 @@ "dev": true }, "node_modules/@schematics/angular": { - "version": "21.1.5", - "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-21.1.5.tgz", - "integrity": "sha512-AndJ17ePYUoqJqiIF9VaXbGAFfOqDcHuAxhwozsQlWDzwgQSOUC/WWeG9hKVCgMD6tE02Sxr2ova9DiBKsLQNg==", + "version": "21.2.9", + "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-21.2.9.tgz", + "integrity": "sha512-1renEbBZz9Yw3A0GUOJ6x6E1jd2Vu/fX5tEGiFNbIoWaNwa71SlFTvKKqaYxiYQkrpc7oexVJ2ymuvOfgTbI1w==", "dependencies": { - "@angular-devkit/core": "21.1.5", - "@angular-devkit/schematics": "21.1.5", + "@angular-devkit/core": "21.2.9", + "@angular-devkit/schematics": "21.2.9", "jsonc-parser": "3.3.1" }, "engines": { @@ -8454,14 +8859,14 @@ } }, "node_modules/@schematics/angular/node_modules/@angular-devkit/core": { - "version": "21.1.5", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-21.1.5.tgz", - "integrity": "sha512-KUKbllHvHefkAbTBjWNpRPyrpBqecW+6HBBAR+XNbKBuFTHkG+gxtuwMXNsvO5KECKwQphvQt5h3g05Xtaf0LQ==", + "version": "21.2.9", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-21.2.9.tgz", + "integrity": "sha512-04rdOGEzjLWFHlyAwqtuikginFeQ2jfXS5HqqKNP0VtG6Uu9NUDAEW5UDvXgqkEMfCDwGZbmg2iRHxp3AmAKVw==", "dependencies": { "ajv": "8.18.0", "ajv-formats": "3.0.1", "jsonc-parser": "3.3.1", - "picomatch": "4.0.3", + "picomatch": "4.0.4", "rxjs": "7.8.2", "source-map": "0.7.6" }, @@ -8480,14 +8885,14 @@ } }, "node_modules/@schematics/angular/node_modules/@angular-devkit/schematics": { - "version": "21.1.5", - "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-21.1.5.tgz", - "integrity": "sha512-CGmoorQL5+mVCJEHwHWOrhSd1hFxB3h66i9wUDizJAEQUM3mSml5SiglHArpWY/G4GmFwi6XVe+Jm3U8J/mcFg==", + "version": "21.2.9", + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-21.2.9.tgz", + "integrity": "sha512-Gyyuq2Vet70AMkbC+e0L6rjzjZWjSOyKTlOJvd99GjjyWQf6eezjd8IcF17ppKJsML6YUagO2I6AlWROq5yJmg==", "dependencies": { - "@angular-devkit/core": "21.1.5", + "@angular-devkit/core": "21.2.9", "jsonc-parser": "3.3.1", "magic-string": "0.30.21", - "ora": "9.0.0", + "ora": "9.3.0", "rxjs": "7.8.2" }, "engines": { @@ -8584,9 +8989,9 @@ } }, "node_modules/@schematics/angular/node_modules/ora": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/ora/-/ora-9.0.0.tgz", - "integrity": "sha512-m0pg2zscbYgWbqRR6ABga5c3sZdEon7bSgjnlXC64kxtxLOyjRcbbUkLj7HFyy/FTD+P2xdBWu8snGhYI0jc4A==", + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/ora/-/ora-9.3.0.tgz", + "integrity": "sha512-lBX72MWFduWEf7v7uWf5DHp9Jn5BI8bNPGuFgtXMmr2uDz2Gz2749y3am3agSDdkhHPHYmmxEGSKH85ZLGzgXw==", "dependencies": { "chalk": "^5.6.2", "cli-cursor": "^5.0.0", @@ -8594,9 +8999,8 @@ "is-interactive": "^2.0.0", "is-unicode-supported": "^2.1.0", "log-symbols": "^7.0.1", - "stdin-discarder": "^0.2.2", - "string-width": "^8.1.0", - "strip-ansi": "^7.1.2" + "stdin-discarder": "^0.3.1", + "string-width": "^8.1.0" }, "engines": { "node": ">=20" @@ -8606,9 +9010,9 @@ } }, "node_modules/@schematics/angular/node_modules/picomatch": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", - "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz", + "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==", "engines": { "node": ">=12" }, @@ -8616,10 +9020,21 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, + "node_modules/@schematics/angular/node_modules/stdin-discarder": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/stdin-discarder/-/stdin-discarder-0.3.2.tgz", + "integrity": "sha512-eCPu1qRxPVkl5605OTWF8Wz40b4Mf45NY5LQmVPQ599knfs5QhASUm9GbJ5BDMDOXgrnh0wyEdvzmL//YMlw0A==", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/@schematics/angular/node_modules/string-width": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-8.2.0.tgz", - "integrity": "sha512-6hJPQ8N0V0P3SNmP6h2J99RLuzrWz2gvT7VnK5tKvrNqJoyS9W4/Fb8mo31UiPvy00z7DQXkP2hnKBVav76thw==", + "version": "8.2.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-8.2.1.tgz", + "integrity": "sha512-IIaP0g3iy9Cyy18w3M9YcaDudujEAVHKt3a3QJg1+sr/oX96TbaGUubG0hJyCjCBThFH+tFpcIyoUHUn1ogaLA==", "dependencies": { "get-east-asian-width": "^1.5.0", "strip-ansi": "^7.1.2" @@ -8665,7 +9080,6 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/@sigstore/bundle/-/bundle-4.0.0.tgz", "integrity": "sha512-NwCl5Y0V6Di0NexvkTqdoVfmjTaQwoLM236r89KEojGmq/jMls8S+zb7yOwAPdXvbwfKDlP+lmXgAL4vKSQT+A==", - "license": "Apache-2.0", "dependencies": { "@sigstore/protobuf-specs": "^0.5.0" }, @@ -8674,45 +9088,41 @@ } }, "node_modules/@sigstore/core": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@sigstore/core/-/core-3.1.0.tgz", - "integrity": "sha512-o5cw1QYhNQ9IroioJxpzexmPjfCe7gzafd2RY3qnMpxr4ZEja+Jad/U8sgFpaue6bOaF+z7RVkyKVV44FN+N8A==", - "license": "Apache-2.0", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@sigstore/core/-/core-3.2.0.tgz", + "integrity": "sha512-kxHrDQ9YgfrWUSXU0cjsQGv8JykOFZQ9ErNKbFPWzk3Hgpwu8x2hHrQ9IdA8yl+j9RTLTC3sAF3Tdq1IQCP4oA==", "engines": { "node": "^20.17.0 || >=22.9.0" } }, "node_modules/@sigstore/protobuf-specs": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/@sigstore/protobuf-specs/-/protobuf-specs-0.5.0.tgz", - "integrity": "sha512-MM8XIwUjN2bwvCg1QvrMtbBmpcSHrkhFSCu1D11NyPvDQ25HEc4oG5/OcQfd/Tlf/OxmKWERDj0zGE23jQaMwA==", - "license": "Apache-2.0", + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/@sigstore/protobuf-specs/-/protobuf-specs-0.5.1.tgz", + "integrity": "sha512-/ScWUhhoFasJsSRGTVBwId1loQjjnjAfE4djL6ZhrXRpNCmPTnUKF5Jokd58ILseOMjzET3UrMOtJPS9sYeI0g==", "engines": { "node": "^18.17.0 || >=20.5.0" } }, "node_modules/@sigstore/sign": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/@sigstore/sign/-/sign-4.1.0.tgz", - "integrity": "sha512-Vx1RmLxLGnSUqx/o5/VsCjkuN5L7y+vxEEwawvc7u+6WtX2W4GNa7b9HEjmcRWohw/d6BpATXmvOwc78m+Swdg==", - "license": "Apache-2.0", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/@sigstore/sign/-/sign-4.1.1.tgz", + "integrity": "sha512-Hf4xglukg0XXQ2RiD5vSoLjdPe8OBUPA8XeVjUObheuDcWdYWrnH/BNmxZCzkAy68MzmNCxXLeurJvs6hcP2OQ==", "dependencies": { + "@gar/promise-retry": "^1.0.2", "@sigstore/bundle": "^4.0.0", - "@sigstore/core": "^3.1.0", + "@sigstore/core": "^3.2.0", "@sigstore/protobuf-specs": "^0.5.0", - "make-fetch-happen": "^15.0.3", - "proc-log": "^6.1.0", - "promise-retry": "^2.0.1" + "make-fetch-happen": "^15.0.4", + "proc-log": "^6.1.0" }, "engines": { "node": "^20.17.0 || >=22.9.0" } }, "node_modules/@sigstore/tuf": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@sigstore/tuf/-/tuf-4.0.1.tgz", - "integrity": "sha512-OPZBg8y5Vc9yZjmWCHrlWPMBqW5yd8+wFNl+thMdtcWz3vjVSoJQutF8YkrzI0SLGnkuFof4HSsWUhXrf219Lw==", - "license": "Apache-2.0", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@sigstore/tuf/-/tuf-4.0.2.tgz", + "integrity": "sha512-TCAzTy0xzdP79EnxSjq9KQ3eaR7+FmudLC6eRKknVKZbV7ZNlGLClAAQb/HMNJ5n2OBNk2GT1tEmU0xuPr+SLQ==", "dependencies": { "@sigstore/protobuf-specs": "^0.5.0", "tuf-js": "^4.1.0" @@ -8725,7 +9135,6 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/@sigstore/verify/-/verify-3.1.0.tgz", "integrity": "sha512-mNe0Iigql08YupSOGv197YdHpPPr+EzDZmfCgMc7RPNaZTw5aLN01nBl6CHJOh3BGtnMIj83EeN4butBchc8Ag==", - "license": "Apache-2.0", "dependencies": { "@sigstore/bundle": "^4.0.0", "@sigstore/core": "^3.1.0", @@ -8735,12 +9144,6 @@ "node": "^20.17.0 || >=22.9.0" } }, - "node_modules/@socket.io/component-emitter": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@socket.io/component-emitter/-/component-emitter-3.1.0.tgz", - "integrity": "sha512-+9jVqKhRSpsc591z5vX+X5Yyw+he/HCB4iQ/RYxw35CEPaY1gnsNE43nf9n9AaYjAQrTiI/mOwKUKdUs9vf7Xg==", - "dev": true - }, "node_modules/@standard-schema/spec": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@standard-schema/spec/-/spec-1.1.0.tgz", @@ -9121,7 +9524,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/@tufjs/canonical-json/-/canonical-json-2.0.0.tgz", "integrity": "sha512-yVtV8zsdo8qFHe+/3kw81dSLyF7D576A5cCFCi4X7B39tWT7SekaEFUnvnWJHz+9qO7qJTah1JbrDjWKqFtdWA==", - "license": "MIT", "engines": { "node": "^16.14.0 || >=18.0.0" } @@ -9130,7 +9532,6 @@ "version": "4.1.0", "resolved": "https://registry.npmjs.org/@tufjs/models/-/models-4.1.0.tgz", "integrity": "sha512-Y8cK9aggNRsqJVaKUlEYs4s7CvQ1b1ta2DVPyAimb0I2qhzjNk+A+mxvll/klL0RlfuIUei8BF7YWiua4kQqww==", - "license": "MIT", "dependencies": { "@tufjs/canonical-json": "2.0.0", "minimatch": "^10.1.1" @@ -9148,9 +9549,9 @@ } }, "node_modules/@tufjs/models/node_modules/brace-expansion": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.3.tgz", - "integrity": "sha512-fy6KJm2RawA5RcHkLa1z/ScpBeA762UF9KmZQxwIbDtRJrgLzM10depAiEQ+CXYcoiqW1/m96OAAoke2nE9EeA==", + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.5.tgz", + "integrity": "sha512-VZznLgtwhn+Mact9tfiwx64fA9erHH/MCXEUfB/0bX/6Fz6ny5EGTXYltMocqg4xFAQZtnO3DHWWXi8RiuN7cQ==", "dependencies": { "balanced-match": "^4.0.2" }, @@ -9159,11 +9560,11 @@ } }, "node_modules/@tufjs/models/node_modules/minimatch": { - "version": "10.2.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.4.tgz", - "integrity": "sha512-oRjTw/97aTBN0RHbYCdtF1MQfvusSIBQM0IZEgzl6426+8jSC0nF1a/GmnVLpfB9yyr6g6FTqWqiZVbxrtaCIg==", + "version": "10.2.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.5.tgz", + "integrity": "sha512-MULkVLfKGYDFYejP07QOurDLLQpcjk7Fw+7jXS2R2czRQzR56yHRveU5NDJEOviH+hETZKSkIk5c+T23GjFUMg==", "dependencies": { - "brace-expansion": "^5.0.2" + "brace-expansion": "^5.0.5" }, "engines": { "node": "18 || 20 || >=22" @@ -9177,7 +9578,6 @@ "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.10.1.tgz", "integrity": "sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg==", "dev": true, - "license": "MIT", "optional": true, "dependencies": { "tslib": "^2.4.0" @@ -9202,6 +9602,17 @@ "@types/node": "*" } }, + "node_modules/@types/chai": { + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-5.2.3.tgz", + "integrity": "sha512-Mw558oeA9fFbv65/y4mHtXDs9bPnFMZAL/jxdPFUpOHHIXX91mcgEHbS5Lahr+pwZFR8A7GQleRWeI6cGFC2UA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/deep-eql": "*", + "assertion-error": "^2.0.1" + } + }, "node_modules/@types/codemirror": { "version": "5.60.5", "resolved": "https://registry.npmjs.org/@types/codemirror/-/codemirror-5.60.5.tgz", @@ -9212,9 +9623,9 @@ } }, "node_modules/@types/connect": { - "version": "3.4.35", - "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz", - "integrity": "sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==", + "version": "3.4.38", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz", + "integrity": "sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==", "dev": true, "dependencies": { "@types/node": "*" @@ -9230,23 +9641,6 @@ "@types/node": "*" } }, - "node_modules/@types/cookie": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.4.1.tgz", - "integrity": "sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/cors": { - "version": "2.8.17", - "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.17.tgz", - "integrity": "sha512-8CGDvrBj1zgo2qE+oS3pOCyYNqCPryMWY2bGfwA0dcfopWGgxs+78df0Rs3rc9THP4JkOhLsAa+15VdpAqkcUA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, "node_modules/@types/css-tree": { "version": "2.3.11", "resolved": "https://registry.npmjs.org/@types/css-tree/-/css-tree-2.3.11.tgz", @@ -9262,6 +9656,13 @@ "@types/ms": "*" } }, + "node_modules/@types/deep-eql": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@types/deep-eql/-/deep-eql-4.0.2.tgz", + "integrity": "sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw==", + "dev": true, + "license": "MIT" + }, "node_modules/@types/dom-navigation": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/@types/dom-navigation/-/dom-navigation-1.0.7.tgz", @@ -9302,21 +9703,21 @@ "license": "MIT" }, "node_modules/@types/express": { - "version": "4.17.23", - "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.23.tgz", - "integrity": "sha512-Crp6WY9aTYP3qPi2wGDo9iUe/rceX01UMhnF1jmwDcKCFM6cx7YhGP/Mpr3y9AASpfHixIG0E6azCcL5OcDHsQ==", + "version": "4.17.25", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.25.tgz", + "integrity": "sha512-dVd04UKsfpINUnK0yBoYHDF3xu7xVH4BuDotC/xGuycx4CgbP48X/KF/586bcObxT0HENHXEU8Nqtu6NR+eKhw==", "dev": true, "dependencies": { "@types/body-parser": "*", "@types/express-serve-static-core": "^4.17.33", "@types/qs": "*", - "@types/serve-static": "*" + "@types/serve-static": "^1" } }, "node_modules/@types/express-serve-static-core": { - "version": "4.19.6", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.19.6.tgz", - "integrity": "sha512-N4LZ2xG7DatVqhCZzOGb1Yi5lMbXSZcmdLDe9EzSndPV2HpWYWzRbaerl2n27irrm94EPpprqa8KpskPT085+A==", + "version": "4.19.8", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.19.8.tgz", + "integrity": "sha512-02S5fmqeoKzVZCHPZid4b8JH2eM5HzQLZWN2FohQEy/0eXTq8VXZfSN6Pcr3F6N9R/vNrj7cpgbhjie6m/1tCA==", "dev": true, "dependencies": { "@types/node": "*", @@ -9377,12 +9778,6 @@ "@types/node": "*" } }, - "node_modules/@types/jasmine": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/@types/jasmine/-/jasmine-6.0.0.tgz", - "integrity": "sha512-18lgGsLmEh3VJk9eZ5wAjTISxdqzl6YOwu8UdMpolajN57QOCNbl+AbHUd+Yu9ItrsFdB+c8LSZSGNg8nHaguw==", - "dev": true - }, "node_modules/@types/jquery": { "version": "3.5.33", "resolved": "https://registry.npmjs.org/@types/jquery/-/jquery-3.5.33.tgz", @@ -9450,6 +9845,12 @@ "integrity": "sha512-RGdgjQUZba5p6QEFAVx2OGb8rQDL/cPRG7GiedRzMcJ1tYnUANBncjbSB1NRGwbvjcPeikRABz2nshyPk1bhWg==", "license": "MIT" }, + "node_modules/@types/mime": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.5.tgz", + "integrity": "sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==", + "dev": true + }, "node_modules/@types/mousetrap": { "version": "1.6.15", "resolved": "https://registry.npmjs.org/@types/mousetrap/-/mousetrap-1.6.15.tgz", @@ -9468,15 +9869,6 @@ "integrity": "sha512-fAtCfv4jJg+ExtXhvCkCqUKZ+4ok/JQk01qDKhL5BDDoS3AxKXhV5/MAVUZyQnSEd2GT92fkgZl0pz0Q0AzcIQ==", "dev": true }, - "node_modules/@types/node-forge": { - "version": "1.3.13", - "resolved": "https://registry.npmjs.org/@types/node-forge/-/node-forge-1.3.13.tgz", - "integrity": "sha512-zePQJSW5QkwSHKRApqWCVKeKoSOt4xvEnLENZPjyvm9Ezdf/EyDeJM7jqLzOwjVICQQzvLZ63T55MKdJB5H6ww==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, "node_modules/@types/pako": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/@types/pako/-/pako-2.0.4.tgz", @@ -9484,9 +9876,9 @@ "dev": true }, "node_modules/@types/qs": { - "version": "6.14.0", - "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.14.0.tgz", - "integrity": "sha512-eOunJqu0K1923aExK6y8p6fsihYEn/BYuQ4g0CxAAgFc4b/ZLN4CrsRZ55srTdqoiLzU2B2evC+apEIxprEzkQ==", + "version": "6.15.0", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.15.0.tgz", + "integrity": "sha512-JawvT8iBVWpzTrz3EGw9BTQFg3BQNmwERdKE22vlTxawwtbyUSlMppvZYKLZzB5zgACXdXxbD3m1bXaMqP/9ow==", "dev": true }, "node_modules/@types/rails__request.js": { @@ -9539,21 +9931,14 @@ "dev": true }, "node_modules/@types/send": { - "version": "0.17.5", - "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.5.tgz", - "integrity": "sha512-z6F2D3cOStZvuk2SaP6YrwkNO65iTZcwA2ZkSABegdkAh/lf+Aa/YQndZVfmEXT5vgAp6zv06VQ3ejSVjAny4w==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@types/send/-/send-1.2.1.tgz", + "integrity": "sha512-arsCikDvlU99zl1g69TcAB3mzZPpxgw0UQnaHeC1Nwb015xp8bknZv5rIfri9xTOcMuaVgvabfIRA7PSZVuZIQ==", "dev": true, "dependencies": { - "@types/mime": "^1", "@types/node": "*" } }, - "node_modules/@types/send/node_modules/@types/mime": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.5.tgz", - "integrity": "sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==", - "dev": true - }, "node_modules/@types/serve-index": { "version": "1.9.4", "resolved": "https://registry.npmjs.org/@types/serve-index/-/serve-index-1.9.4.tgz", @@ -9564,14 +9949,24 @@ } }, "node_modules/@types/serve-static": { - "version": "1.15.8", - "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.8.tgz", - "integrity": "sha512-roei0UY3LhpOJvjbIP6ZZFngyLKl5dskOtDhxY5THRSpO+ZI+nzJ+m5yUMzGrp89YRa7lvknKkMYjqQFGwA7Sg==", + "version": "1.15.10", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.10.tgz", + "integrity": "sha512-tRs1dB+g8Itk72rlSI2ZrW6vZg0YrLI81iQSTkMmOqnqCaNr/8Ek4VwWcN5vZgCYWbg/JJSGBlUaYGAOP73qBw==", "dev": true, "dependencies": { "@types/http-errors": "*", "@types/node": "*", - "@types/send": "*" + "@types/send": "<1" + } + }, + "node_modules/@types/serve-static/node_modules/@types/send": { + "version": "0.17.6", + "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.6.tgz", + "integrity": "sha512-Uqt8rPBE8SY0RK8JB1EzVOIZ32uqy8HwdxCnoCOsYrvnswqmFZ/k+9Ikidlk/ImhsdvBsloHbAlewb2IEBV/Og==", + "dev": true, + "dependencies": { + "@types/mime": "^1", + "@types/node": "*" } }, "node_modules/@types/sizzle": { @@ -9645,6 +10040,15 @@ "dev": true, "license": "MIT" }, + "node_modules/@types/ws": { + "version": "8.18.1", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.18.1.tgz", + "integrity": "sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, "node_modules/@typescript-eslint/eslint-plugin": { "version": "8.53.0", "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.53.0.tgz", @@ -9808,9 +10212,9 @@ } }, "node_modules/@typescript-eslint/eslint-plugin/node_modules/brace-expansion": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", - "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.1.0.tgz", + "integrity": "sha512-TN1kCZAgdgweJhWWpgKYrQaMNHcDULHkWwQIspdtjV4Y5aurRdZpjAqn6yX3FPqTA9ngHCc4hJxMAMgGfve85w==", "dev": true, "dependencies": { "balanced-match": "^1.0.0" @@ -10140,9 +10544,9 @@ } }, "node_modules/@typescript-eslint/type-utils/node_modules/brace-expansion": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", - "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.1.0.tgz", + "integrity": "sha512-TN1kCZAgdgweJhWWpgKYrQaMNHcDULHkWwQIspdtjV4Y5aurRdZpjAqn6yX3FPqTA9ngHCc4hJxMAMgGfve85w==", "dev": true, "dependencies": { "balanced-match": "^1.0.0" @@ -10233,9 +10637,9 @@ } }, "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", - "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.1.0.tgz", + "integrity": "sha512-TN1kCZAgdgweJhWWpgKYrQaMNHcDULHkWwQIspdtjV4Y5aurRdZpjAqn6yX3FPqTA9ngHCc4hJxMAMgGfve85w==", "dev": true, "dependencies": { "balanced-match": "^1.0.0" @@ -10417,9 +10821,9 @@ } }, "node_modules/@typescript-eslint/utils/node_modules/brace-expansion": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.4.tgz", - "integrity": "sha512-h+DEnpVvxmfVefa4jFbCf5HdH5YMDXRsmKflpf1pILZWRFlTbJpxeU55nJl4Smt5HQaGzg1o6RHFPJaOqnmBDg==", + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.5.tgz", + "integrity": "sha512-VZznLgtwhn+Mact9tfiwx64fA9erHH/MCXEUfB/0bX/6Fz6ny5EGTXYltMocqg4xFAQZtnO3DHWWXi8RiuN7cQ==", "dev": true, "dependencies": { "balanced-match": "^4.0.2" @@ -10519,9 +10923,9 @@ } }, "node_modules/@uirouter/core": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/@uirouter/core/-/core-6.1.1.tgz", - "integrity": "sha512-vA+OolBOe0R8dbFk5mgaj30LzYzOoGhMJzj356KVQcx+wKdZHUs0dnMPuuHbKe/CEbErTgFA3MfRAW96qVc2hA==", + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/@uirouter/core/-/core-6.1.2.tgz", + "integrity": "sha512-pYcg+cxVd9E9poC7AJf7ZrlQQrwAV6KVkiPvlbLJX5km+pBWrUOGQhdd87oIGc7/5iVQ7qSiAdl9QD+l55yegg==", "engines": { "node": ">=4.0.0" } @@ -10541,11 +10945,10 @@ "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==" }, "node_modules/@vitejs/plugin-basic-ssl": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@vitejs/plugin-basic-ssl/-/plugin-basic-ssl-2.1.0.tgz", - "integrity": "sha512-dOxxrhgyDIEUADhb/8OlV9JIqYLgos03YorAueTIeOUskLJSEsfwCByjbu98ctXitUN3znXKp0bYD/WHSudCeA==", + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-basic-ssl/-/plugin-basic-ssl-2.1.4.tgz", + "integrity": "sha512-HXciTXN/sDBYWgeAD4V4s0DN0g72x5mlxQhHxtYu3Tt8BLa6MzcJZUyDVFCdtjNs3bfENVHVzOsmooTVuNgAAw==", "dev": true, - "license": "MIT", "engines": { "node": "^18.0.0 || ^20.0.0 || >=22.0.0" }, @@ -10553,6 +10956,419 @@ "vite": "^6.0.0 || ^7.0.0" } }, + "node_modules/@vitest/coverage-v8": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/@vitest/coverage-v8/-/coverage-v8-4.1.5.tgz", + "integrity": "sha512-38C0/Ddb7HcRG0Z4/DUem8x57d2p9jYgp18mkaYswEOQBGsI1CG4f/hjm0ZCeaJfWhSZ4k7jgs29V1Zom7Ki9A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@bcoe/v8-coverage": "^1.0.2", + "@vitest/utils": "4.1.5", + "ast-v8-to-istanbul": "^1.0.0", + "istanbul-lib-coverage": "^3.2.2", + "istanbul-lib-report": "^3.0.1", + "istanbul-reports": "^3.2.0", + "magicast": "^0.5.2", + "obug": "^2.1.1", + "std-env": "^4.0.0-rc.1", + "tinyrainbow": "^3.1.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "@vitest/browser": "4.1.5", + "vitest": "4.1.5" + }, + "peerDependenciesMeta": { + "@vitest/browser": { + "optional": true + } + } + }, + "node_modules/@vitest/eslint-plugin": { + "version": "1.6.17", + "resolved": "https://registry.npmjs.org/@vitest/eslint-plugin/-/eslint-plugin-1.6.17.tgz", + "integrity": "sha512-sIVY9ZeVcXyPxFCNRkIt8Yw4keKIcUyp9/8qnmuomPwE+ST1htw5sZsbqdUMTiah9SmCg1JYoK9RqdDtPeNYYg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/scope-manager": "^8.58.0", + "@typescript-eslint/utils": "^8.58.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@typescript-eslint/eslint-plugin": "*", + "eslint": ">=8.57.0", + "typescript": ">=5.0.0", + "vitest": "*" + }, + "peerDependenciesMeta": { + "@typescript-eslint/eslint-plugin": { + "optional": true + }, + "typescript": { + "optional": true + }, + "vitest": { + "optional": true + } + } + }, + "node_modules/@vitest/eslint-plugin/node_modules/@typescript-eslint/project-service": { + "version": "8.59.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.59.2.tgz", + "integrity": "sha512-+2hqvEkeyf/0FBor67duF0Ll7Ot8jyKzDQOSrxazF/danillRq2DwR9dLptsXpoZQqxE1UisSmoZewrlPas9Vw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/tsconfig-utils": "^8.59.2", + "@typescript-eslint/types": "^8.59.2", + "debug": "^4.4.3" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "typescript": ">=4.8.4 <6.1.0" + } + }, + "node_modules/@vitest/eslint-plugin/node_modules/@typescript-eslint/scope-manager": { + "version": "8.59.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.59.2.tgz", + "integrity": "sha512-JzfyEpEtOU89CcFSwyNS3mu4MLvLSXqnmX05+aKBDM+TdR5jzcGOEBwxwGNxrEQ7p/z6kK2WyioCGBf2zZBnvg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "8.59.2", + "@typescript-eslint/visitor-keys": "8.59.2" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@vitest/eslint-plugin/node_modules/@typescript-eslint/tsconfig-utils": { + "version": "8.59.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.59.2.tgz", + "integrity": "sha512-BKK4alN7oi4C/zv4VqHQ+uRU+lTa6JGIZ7s1juw7b3RHo9OfKB+bKX3u0iVZetdsUCBBkSbdWbarJbmN0fTeSw==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "typescript": ">=4.8.4 <6.1.0" + } + }, + "node_modules/@vitest/eslint-plugin/node_modules/@typescript-eslint/types": { + "version": "8.59.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.59.2.tgz", + "integrity": "sha512-e82GVOE8Ps3E++Egvb6Y3Dw0S10u8NkQ9KXmtRhCWJJ8kDhOJTvtMAWnFL16kB1583goCWXsr0NieKCZMs2/0Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@vitest/eslint-plugin/node_modules/@typescript-eslint/typescript-estree": { + "version": "8.59.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.59.2.tgz", + "integrity": "sha512-o0XPGNwcWw+FIwStOWn+BwBuEmL6QXP0rsvAFg7ET1dey1Nr6Wb1ac8p5HEsK0ygO/6mUxlk+YWQD9xcb/nnXg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/project-service": "8.59.2", + "@typescript-eslint/tsconfig-utils": "8.59.2", + "@typescript-eslint/types": "8.59.2", + "@typescript-eslint/visitor-keys": "8.59.2", + "debug": "^4.4.3", + "minimatch": "^10.2.2", + "semver": "^7.7.3", + "tinyglobby": "^0.2.15", + "ts-api-utils": "^2.5.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "typescript": ">=4.8.4 <6.1.0" + } + }, + "node_modules/@vitest/eslint-plugin/node_modules/@typescript-eslint/utils": { + "version": "8.59.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.59.2.tgz", + "integrity": "sha512-Juw3EinkXqjaffxz6roowvV7GZT/kET5vSKKZT6upl5TXdWkLkYmNPXwDDL2Vkt2DPn0nODIS4egC/0AGxKo/Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.9.1", + "@typescript-eslint/scope-manager": "8.59.2", + "@typescript-eslint/types": "8.59.2", + "@typescript-eslint/typescript-estree": "8.59.2" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", + "typescript": ">=4.8.4 <6.1.0" + } + }, + "node_modules/@vitest/eslint-plugin/node_modules/@typescript-eslint/visitor-keys": { + "version": "8.59.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.59.2.tgz", + "integrity": "sha512-NwjLUnGy8/Zfx23fl50tRC8rYaYnM52xNRYFAXvmiil9yh1+K6aRVQMnzW6gQB/1DLgWt977lYQn7C+wtgXZiA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "8.59.2", + "eslint-visitor-keys": "^5.0.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@vitest/eslint-plugin/node_modules/balanced-match": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz", + "integrity": "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "18 || 20 || >=22" + } + }, + "node_modules/@vitest/eslint-plugin/node_modules/brace-expansion": { + "version": "5.0.6", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.6.tgz", + "integrity": "sha512-kLpxurY4Z4r9sgMsyG0Z9uzsBlgiU/EFKhj/h91/8yHu0edo7XuixOIH3VcJ8kkxs6/jPzoI6U9Vj3WqbMQ94g==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^4.0.2" + }, + "engines": { + "node": "18 || 20 || >=22" + } + }, + "node_modules/@vitest/eslint-plugin/node_modules/debug": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/@vitest/eslint-plugin/node_modules/eslint-visitor-keys": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-5.0.1.tgz", + "integrity": "sha512-tD40eHxA35h0PEIZNeIjkHoDR4YjjJp34biM0mDvplBe//mB+IHCqHDGV7pxF+7MklTvighcCPPZC7ynWyjdTA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^20.19.0 || ^22.13.0 || >=24" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@vitest/eslint-plugin/node_modules/minimatch": { + "version": "10.2.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.5.tgz", + "integrity": "sha512-MULkVLfKGYDFYejP07QOurDLLQpcjk7Fw+7jXS2R2czRQzR56yHRveU5NDJEOviH+hETZKSkIk5c+T23GjFUMg==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "brace-expansion": "^5.0.5" + }, + "engines": { + "node": "18 || 20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@vitest/expect": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-4.1.5.tgz", + "integrity": "sha512-PWBaRY5JoKuRnHlUHfpV/KohFylaDZTupcXN1H9vYryNLOnitSw60Mw9IAE2r67NbwwzBw/Cc/8q9BK3kIX8Kw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@standard-schema/spec": "^1.1.0", + "@types/chai": "^5.2.2", + "@vitest/spy": "4.1.5", + "@vitest/utils": "4.1.5", + "chai": "^6.2.2", + "tinyrainbow": "^3.1.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/mocker": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-4.1.5.tgz", + "integrity": "sha512-/x2EmFC4mT4NNzqvC3fmesuV97w5FC903KPmey4gsnJiMQ3Be1IlDKVaDaG8iqaLFHqJ2FVEkxZk5VmeLjIItw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/spy": "4.1.5", + "estree-walker": "^3.0.3", + "magic-string": "^0.30.21" + }, + "funding": { + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "msw": "^2.4.9", + "vite": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "msw": { + "optional": true + }, + "vite": { + "optional": true + } + } + }, + "node_modules/@vitest/mocker/node_modules/magic-string": { + "version": "0.30.21", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz", + "integrity": "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.5" + } + }, + "node_modules/@vitest/pretty-format": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-4.1.5.tgz", + "integrity": "sha512-7I3q6l5qr03dVfMX2wCo9FxwSJbPdwKjy2uu/YPpU3wfHvIL4QHwVRp57OfGrDFeUJ8/8QdfBKIV12FTtLn00g==", + "dev": true, + "license": "MIT", + "dependencies": { + "tinyrainbow": "^3.1.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/runner": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-4.1.5.tgz", + "integrity": "sha512-2D+o7Pr82IEO46YPpoA/YU0neeyr6FTerQb5Ro7BUnBuv6NQtT/kmVnczngiMEBhzgqz2UZYl5gArejsyERDSQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/utils": "4.1.5", + "pathe": "^2.0.3" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/snapshot": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-4.1.5.tgz", + "integrity": "sha512-zypXEt4KH/XgKGPUz4eC2AvErYx0My5hfL8oDb1HzGFpEk1P62bxSohdyOmvz+d9UJwanI68MKwr2EquOaOgMQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/pretty-format": "4.1.5", + "@vitest/utils": "4.1.5", + "magic-string": "^0.30.21", + "pathe": "^2.0.3" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/snapshot/node_modules/magic-string": { + "version": "0.30.21", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz", + "integrity": "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.5" + } + }, + "node_modules/@vitest/spy": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-4.1.5.tgz", + "integrity": "sha512-2lNOsh6+R2Idnf1TCZqSwYlKN2E/iDlD8sgU59kYVl+OMDmvldO1VDk39smRfpUNwYpNRVn3w4YfuC7KfbBnkQ==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/utils": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-4.1.5.tgz", + "integrity": "sha512-76wdkrmfXfqGjueGgnb45ITPyUi1ycZ4IHgC2bhPDUfWHklY/q3MdLOAB+TF1e6xfl8NxNY0ZYaPCFNWSsw3Ug==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/pretty-format": "4.1.5", + "convert-source-map": "^2.0.0", + "tinyrainbow": "^3.1.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/utils/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, + "license": "MIT" + }, "node_modules/@vscode/l10n": { "version": "0.0.18", "resolved": "https://registry.npmjs.org/@vscode/l10n/-/l10n-0.0.18.tgz", @@ -10759,7 +11575,6 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-4.0.0.tgz", "integrity": "sha512-a1wflyaL0tHtJSmLSOVybYhy22vRih4eduhhrkcjgrWGnRfrZtovJ2FRjxuTtkkj47O/baf0R86QU5OuYpz8fA==", - "license": "ISC", "engines": { "node": "^20.17.0 || >=22.9.0" } @@ -10887,35 +11702,25 @@ } } }, - "node_modules/ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "dev": true, - "peerDependencies": { - "ajv": "^6.9.1" - } - }, "node_modules/algoliasearch": { - "version": "5.46.2", - "resolved": "https://registry.npmjs.org/algoliasearch/-/algoliasearch-5.46.2.tgz", - "integrity": "sha512-qqAXW9QvKf2tTyhpDA4qXv1IfBwD2eduSW6tUEBFIfCeE9gn9HQ9I5+MaKoenRuHrzk5sQoNh1/iof8mY7uD6Q==", - "license": "MIT", + "version": "5.48.1", + "resolved": "https://registry.npmjs.org/algoliasearch/-/algoliasearch-5.48.1.tgz", + "integrity": "sha512-Rf7xmeuIo7nb6S4mp4abW2faW8DauZyE2faBIKFaUfP3wnpOvNSbiI5AwVhqBNj0jPgBWEvhyCu0sLjN2q77Rg==", "dependencies": { - "@algolia/abtesting": "1.12.2", - "@algolia/client-abtesting": "5.46.2", - "@algolia/client-analytics": "5.46.2", - "@algolia/client-common": "5.46.2", - "@algolia/client-insights": "5.46.2", - "@algolia/client-personalization": "5.46.2", - "@algolia/client-query-suggestions": "5.46.2", - "@algolia/client-search": "5.46.2", - "@algolia/ingestion": "1.46.2", - "@algolia/monitoring": "1.46.2", - "@algolia/recommend": "5.46.2", - "@algolia/requester-browser-xhr": "5.46.2", - "@algolia/requester-fetch": "5.46.2", - "@algolia/requester-node-http": "5.46.2" + "@algolia/abtesting": "1.14.1", + "@algolia/client-abtesting": "5.48.1", + "@algolia/client-analytics": "5.48.1", + "@algolia/client-common": "5.48.1", + "@algolia/client-insights": "5.48.1", + "@algolia/client-personalization": "5.48.1", + "@algolia/client-query-suggestions": "5.48.1", + "@algolia/client-search": "5.48.1", + "@algolia/ingestion": "1.48.1", + "@algolia/monitoring": "1.48.1", + "@algolia/recommend": "5.48.1", + "@algolia/requester-browser-xhr": "5.48.1", + "@algolia/requester-fetch": "5.48.1", + "@algolia/requester-node-http": "5.48.1" }, "engines": { "node": ">= 14.0.0" @@ -11534,12 +12339,55 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/asn1js": { + "version": "3.0.10", + "resolved": "https://registry.npmjs.org/asn1js/-/asn1js-3.0.10.tgz", + "integrity": "sha512-S2s3aOytiKdFRdulw2qPE51MzjzVOisppcVv7jVFR+Kw0kxwvFrDcYA0h7Ndqbmj0HkMIXYWaoj7fli8kgx1eg==", + "dev": true, + "dependencies": { + "pvtsutils": "^1.3.6", + "pvutils": "^1.1.5", + "tslib": "^2.8.1" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/assertion-error": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-2.0.1.tgz", + "integrity": "sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + } + }, "node_modules/ast-types-flow": { "version": "0.0.8", "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.8.tgz", "integrity": "sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==", "dev": true }, + "node_modules/ast-v8-to-istanbul": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/ast-v8-to-istanbul/-/ast-v8-to-istanbul-1.0.0.tgz", + "integrity": "sha512-1fSfIwuDICFA4LKkCzRPO7F0hzFf0B7+Xqrl27ynQaa+Rh0e1Es0v6kWHPott3lU10AyAr7oKHa65OppjLn3Rg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.31", + "estree-walker": "^3.0.3", + "js-tokens": "^10.0.0" + } + }, + "node_modules/ast-v8-to-istanbul/node_modules/js-tokens": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-10.0.0.tgz", + "integrity": "sha512-lM/UBzQmfJRo9ABXbPWemivdCW8V2G8FHaHdypQaIy523snUjog0W71ayWXTjiR+ixeMyVHN2XcpnTd/liPg/Q==", + "dev": true, + "license": "MIT" + }, "node_modules/async": { "version": "3.2.6", "resolved": "https://registry.npmjs.org/async/-/async-3.2.6.tgz", @@ -11637,14 +12485,13 @@ } }, "node_modules/babel-plugin-polyfill-corejs2": { - "version": "0.4.14", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.14.tgz", - "integrity": "sha512-Co2Y9wX854ts6U8gAAPXfn0GmAyctHuK8n0Yhfjd6t30g7yvKjspvvOo9yG+z52PZRgFErt7Ka2pYnXCjLKEpg==", + "version": "0.4.17", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.17.tgz", + "integrity": "sha512-aTyf30K/rqAsNwN76zYrdtx8obu0E4KoUME29B1xj+B3WxgvWkp943vYQ+z8Mv3lw9xHXMHpvSPOBxzAkIa94w==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/compat-data": "^7.27.7", - "@babel/helper-define-polyfill-provider": "^0.6.5", + "@babel/compat-data": "^7.28.6", + "@babel/helper-define-polyfill-provider": "^0.6.8", "semver": "^6.3.1" }, "peerDependencies": { @@ -11656,7 +12503,6 @@ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, - "license": "ISC", "bin": { "semver": "bin/semver.js" } @@ -11666,7 +12512,6 @@ "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.13.0.tgz", "integrity": "sha512-U+GNwMdSFgzVmfhNm8GJUX88AadB3uo9KpJqS3FaqNIPKgySuvMb+bHPsOmmuWyIcuqZj/pzt1RUIUZns4y2+A==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-define-polyfill-provider": "^0.6.5", "core-js-compat": "^3.43.0" @@ -11676,13 +12521,12 @@ } }, "node_modules/babel-plugin-polyfill-regenerator": { - "version": "0.6.5", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.5.tgz", - "integrity": "sha512-ISqQ2frbiNU9vIJkzg7dlPpznPZ4jOiUQ1uSmB0fEHeowtN3COYRsXr/xexn64NpU13P06jc/L5TgiJXOgrbEg==", + "version": "0.6.8", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.8.tgz", + "integrity": "sha512-M762rNHfSF1EV3SLtnCJXFoQbbIIz0OyRwnCmV0KPC7qosSfCO0QLTSuJX3ayAebubhE6oYBAYPrBA5ljowaZg==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.6.5" + "@babel/helper-define-polyfill-provider": "^0.6.8" }, "peerDependencies": { "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" @@ -11732,16 +12576,6 @@ ], "license": "MIT" }, - "node_modules/base64id": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/base64id/-/base64id-2.0.0.tgz", - "integrity": "sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^4.5.0 || >= 5.9" - } - }, "node_modules/base64url": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/base64url/-/base64url-3.0.1.tgz", @@ -11775,9 +12609,9 @@ "dev": true }, "node_modules/beasties": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/beasties/-/beasties-0.3.5.tgz", - "integrity": "sha512-NaWu+f4YrJxEttJSm16AzMIFtVldCvaJ68b1L098KpqXmxt9xOLtKoLkKxb8ekhOrLqEJAbvT6n6SEvB/sac7A==", + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/beasties/-/beasties-0.4.1.tgz", + "integrity": "sha512-2Imdcw3LznDuxAbJM26RHniOLAzE6WgrK8OuvVXCQtNBS8rsnD9zsSEa3fHl4hHpUY7BYTlrpvtPVbvu9G6neg==", "dev": true, "dependencies": { "css-select": "^6.0.0", @@ -11787,10 +12621,21 @@ "htmlparser2": "^10.0.0", "picocolors": "^1.1.1", "postcss": "^8.4.49", - "postcss-media-query-parser": "^0.2.3" + "postcss-media-query-parser": "^0.2.3", + "postcss-safe-parser": "^7.0.1" }, "engines": { - "node": ">=14.0.0" + "node": ">=18.0.0" + } + }, + "node_modules/bidi-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/bidi-js/-/bidi-js-1.0.3.tgz", + "integrity": "sha512-RKshQI1R3YQ+n9YJz2QQ147P66ELpa1FQEg20Dk8oW9t2KgLbpDLLp9aGZ7y8WHSshDknG0bknqGw5/tyCs5tw==", + "dev": true, + "license": "MIT", + "dependencies": { + "require-from-string": "^2.0.2" } }, "node_modules/big.js": { @@ -11853,43 +12698,12 @@ "ms": "2.0.0" } }, - "node_modules/body-parser/node_modules/http-errors": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.1.tgz", - "integrity": "sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "depd": "~2.0.0", - "inherits": "~2.0.4", - "setprototypeof": "~1.2.0", - "statuses": "~2.0.2", - "toidentifier": "~1.0.1" - }, - "engines": { - "node": ">= 0.8" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/express" - } - }, "node_modules/body-parser/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", "dev": true }, - "node_modules/body-parser/node_modules/statuses": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.2.tgz", - "integrity": "sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, "node_modules/bonjour-service": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.3.0.tgz", @@ -11907,11 +12721,10 @@ "dev": true }, "node_modules/brace-expansion": { - "version": "1.1.12", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", - "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.14.tgz", + "integrity": "sha512-MWPGfDxnyzKU7rNOW9SP/c50vi3xrmrua/+6hfPbCS2ABNWfx24vPidzvC7krjU/RTo235sV776ymlsMtGKj8g==", "dev": true, - "license": "MIT", "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -12032,11 +12845,19 @@ "node": ">= 0.8" } }, + "node_modules/bytestreamjs": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/bytestreamjs/-/bytestreamjs-2.0.1.tgz", + "integrity": "sha512-U1Z/ob71V/bXfVABvNr/Kumf5VyeQRBEm6Txb0PQ6S7V5GpBM3w4Cbqz/xPDicR5tN0uvDifng8C+5qECeGwyQ==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, "node_modules/cacache": { - "version": "20.0.3", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-20.0.3.tgz", - "integrity": "sha512-3pUp4e8hv07k1QlijZu6Kn7c9+ZpWWk4j3F8N3xPuCExULobqJydKYOTj1FTq58srkJsXvO7LbGAH4C0ZU3WGw==", - "license": "ISC", + "version": "20.0.4", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-20.0.4.tgz", + "integrity": "sha512-M3Lab8NPYlZU2exsL3bMVvMrMqgwCnMWfdZbK28bn3pK6APT/Te/I8hjRPNu1uwORY9a1eEQoifXbKPQMfMTOA==", "dependencies": { "@npmcli/fs": "^5.0.0", "fs-minipass": "^3.0.0", @@ -12047,18 +12868,16 @@ "minipass-flush": "^1.0.5", "minipass-pipeline": "^1.2.4", "p-map": "^7.0.2", - "ssri": "^13.0.0", - "unique-filename": "^5.0.0" + "ssri": "^13.0.0" }, "engines": { "node": "^20.17.0 || >=22.9.0" } }, "node_modules/cacache/node_modules/lru-cache": { - "version": "11.2.4", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.2.4.tgz", - "integrity": "sha512-B5Y16Jr9LB9dHVkh6ZevG+vAbOsNOYCX+sXvFWFu7B3Iz5mijW3zdbMyhsh8ANd2mSWBYdJgnqi+mL7/LrOPYg==", - "license": "BlueOak-1.0.0", + "version": "11.3.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.3.5.tgz", + "integrity": "sha512-NxVFwLAnrd9i7KUBxC4DrUhmgjzOs+1Qm50D3oF1/oL+r1NpZ4gA7xvG0/zJ8evR7zIKn4vLf7qTNduWFtCrRw==", "engines": { "node": "20 || >=22" } @@ -12163,6 +12982,16 @@ "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/chai": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/chai/-/chai-6.2.2.tgz", + "integrity": "sha512-NUPRluOfOiTKBKvWPtSD4PhFvWCqOi0BGStNWs57X9js7XGTprSmFoz5F0tWhR4WPjNeR9jXqdC7/UpSJTnlRg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + } + }, "node_modules/chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", @@ -12272,7 +13101,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/chownr/-/chownr-3.0.0.tgz", "integrity": "sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g==", - "license": "BlueOak-1.0.0", "engines": { "node": ">=18" } @@ -12465,15 +13293,6 @@ "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==" }, - "node_modules/colors": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", - "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", - "dev": true, - "engines": { - "node": ">=0.1.90" - } - }, "node_modules/comma-separated-tokens": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz", @@ -12544,47 +13363,12 @@ "node": ">= 0.6" } }, - "node_modules/compression/node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "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/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", "dev": true }, - "node_modules/connect": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/connect/-/connect-3.7.0.tgz", - "integrity": "sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==", - "dev": true, - "dependencies": { - "debug": "2.6.9", - "finalhandler": "1.1.2", - "parseurl": "~1.3.3", - "utils-merge": "1.0.1" - }, - "engines": { - "node": ">= 0.10.0" - } - }, "node_modules/connect-history-api-fallback": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-2.0.0.tgz", @@ -12594,21 +13378,6 @@ "node": ">=0.8" } }, - "node_modules/connect/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/connect/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - }, "node_modules/content-disposition": { "version": "0.5.4", "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", @@ -12621,26 +13390,6 @@ "node": ">= 0.6" } }, - "node_modules/content-disposition/node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "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/content-type": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", @@ -12672,9 +13421,9 @@ } }, "node_modules/cookie-signature": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.7.tgz", + "integrity": "sha512-NXdYc3dLr47pBkpUCHtKSwIOQXLVn8dZEuywboCOJY/osA0wFSLlSawr3KN8qXJEyX66FcONTH8EIlVuK0yyFA==", "dev": true }, "node_modules/copy-anything": { @@ -12702,19 +13451,19 @@ } }, "node_modules/copy-webpack-plugin": { - "version": "13.0.1", - "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-13.0.1.tgz", - "integrity": "sha512-J+YV3WfhY6W/Xf9h+J1znYuqTye2xkBUIGyTPWuBAT27qajBa5mR4f8WBmfDY3YjRftT2kqZZiLi1qf0H+UOFw==", + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-14.0.0.tgz", + "integrity": "sha512-3JLW90aBGeaTLpM7mYQKpnVdgsUZRExY55giiZgLuX/xTQRUs1dOCwbBnWnvY6Q6rfZoXMNwzOQJCSZPppfqXA==", "dev": true, "dependencies": { "glob-parent": "^6.0.1", "normalize-path": "^3.0.0", "schema-utils": "^4.2.0", - "serialize-javascript": "^6.0.2", + "serialize-javascript": "^7.0.3", "tinyglobby": "^0.2.12" }, "engines": { - "node": ">= 18.12.0" + "node": ">= 20.9.0" }, "funding": { "type": "opencollective", @@ -12749,9 +13498,9 @@ } }, "node_modules/copy-webpack-plugin/node_modules/schema-utils": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.3.2.tgz", - "integrity": "sha512-Gn/JaSk/Mt9gYubxTtSn/QCV4em9mpAPiR1rqy/Ocu19u/G9J5WWdNoUT4SiV6mFC3y6cxyFcFwdzPM3FgxGAQ==", + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.3.3.tgz", + "integrity": "sha512-eflK8wEtyOE6+hsaRVPxvUKYCpRgzLqDTb8krvAsRIwOGlHoSgYLgBXoubGgLd2fT41/OUYdb48v4k4WWHQurA==", "dev": true, "dependencies": { "@types/json-schema": "^7.0.9", @@ -12768,9 +13517,9 @@ } }, "node_modules/core-js": { - "version": "3.48.0", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.48.0.tgz", - "integrity": "sha512-zpEHTy1fjTMZCKLHUZoVeylt9XrzaIN2rbPXEt0k+q7JE5CkCZdo6bNq55bn24a69CH7ErAVLKijxJja4fw+UQ==", + "version": "3.49.0", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.49.0.tgz", + "integrity": "sha512-es1U2+YTtzpwkxVLwAFdSpaIMyQaq0PBgm3YD1W3Qpsn1NAmO3KSgZfu+oGSWVu6NvLHoHCV/aYcsE5wiB7ALg==", "hasInstallScript": true, "funding": { "type": "opencollective", @@ -12778,13 +13527,12 @@ } }, "node_modules/core-js-compat": { - "version": "3.47.0", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.47.0.tgz", - "integrity": "sha512-IGfuznZ/n7Kp9+nypamBhvwdwLsW6KC8IOaURw2doAK5e98AG3acVLdh0woOnEqCfUtS+Vu882JE4k/DAm3ItQ==", + "version": "3.49.0", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.49.0.tgz", + "integrity": "sha512-VQXt1jr9cBz03b331DFDCCP90b3fanciLkgiOoy8SBHy06gNf+vQ1A3WFLqG7I8TipYIKeYK9wxd0tUrvHcOZA==", "dev": true, - "license": "MIT", "dependencies": { - "browserslist": "^4.28.0" + "browserslist": "^4.28.1" }, "funding": { "type": "opencollective", @@ -12916,19 +13664,19 @@ } }, "node_modules/css-loader": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-7.1.2.tgz", - "integrity": "sha512-6WvYYn7l/XEGN8Xu2vWFt9nVzrCn39vKyTEFf/ExEyoksJjjSZV/0/35XPlMbpnr6VGhZIUg5yJrL8tGfes/FA==", + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-7.1.3.tgz", + "integrity": "sha512-frbERmjT0UC5lMheWpJmMilnt9GEhbZJN/heUb7/zaJYeIzj5St9HvDcfshzzOqbsS+rYpMk++2SD3vGETDSyA==", "dev": true, "dependencies": { "icss-utils": "^5.1.0", - "postcss": "^8.4.33", + "postcss": "^8.4.40", "postcss-modules-extract-imports": "^3.1.0", "postcss-modules-local-by-default": "^4.0.5", "postcss-modules-scope": "^3.2.0", "postcss-modules-values": "^4.0.0", "postcss-value-parser": "^4.2.0", - "semver": "^7.5.4" + "semver": "^7.6.3" }, "engines": { "node": ">= 18.12.0" @@ -12978,24 +13726,19 @@ } }, "node_modules/css-tree": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-3.1.0.tgz", - "integrity": "sha512-0eW44TGN5SQXU1mWSkKwFstI/22X2bG1nYzZTYMAWjylYURhse752YgbE4Cx46AC+bAvI+/dYTPRk1LqSUnu6w==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-3.2.1.tgz", + "integrity": "sha512-X7sjQzceUhu1u7Y/ylrRZFU2FS6LRiFVp6rKLPg23y3x3c3DOKAwuXGDp+PAGjh6CSnCjYeAul8pcT8bAl+lSA==", "dev": true, + "license": "MIT", "dependencies": { - "mdn-data": "2.12.2", - "source-map-js": "^1.0.1" + "mdn-data": "2.27.1", + "source-map-js": "^1.2.1" }, "engines": { "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0" } }, - "node_modules/css-tree/node_modules/mdn-data": { - "version": "2.12.2", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.12.2.tgz", - "integrity": "sha512-IEn+pegP1aManZuckezWCO+XZQDplx1366JoVhTpMpBB1sPey/SbveZQUosKiKiGYjg1wH4pMlNgXbCiYgihQA==", - "dev": true - }, "node_modules/css-what": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/css-what/-/css-what-7.0.0.tgz", @@ -13045,6 +13788,20 @@ "integrity": "sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==", "dev": true }, + "node_modules/data-urls": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-7.0.0.tgz", + "integrity": "sha512-23XHcCF+coGYevirZceTVD7NdJOqVn+49IHyxgszm+JIiHLoB2TkmPtsYkNWT1pvRSGkc35L6NHs0yHkN2SumA==", + "dev": true, + "license": "MIT", + "dependencies": { + "whatwg-mimetype": "^5.0.0", + "whatwg-url": "^16.0.0" + }, + "engines": { + "node": "^20.19.0 || ^22.12.0 || >=24.0.0" + } + }, "node_modules/data-view-buffer": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.2.tgz", @@ -13096,15 +13853,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/date-format": { - "version": "4.0.14", - "resolved": "https://registry.npmjs.org/date-format/-/date-format-4.0.14.tgz", - "integrity": "sha512-39BOQLs9ZjKh0/patS9nrT8wc3ioX3/eA/zgbKNopnF2wCqJEoxywwwElATYvRsXdnOxA/OQeQoFZ3rFjVajhg==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, "node_modules/debug": { "version": "4.3.7", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", @@ -13121,6 +13869,13 @@ } } }, + "node_modules/decimal.js": { + "version": "10.6.0", + "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.6.0.tgz", + "integrity": "sha512-YpgQiITW3JXGntzdUmyUR1V812Hn8T1YVXhCu+wO3OpS4eU9l4YdD3qjyiKdV6mvV29zapkMeD390UVEf2lkUg==", + "dev": true, + "license": "MIT" + }, "node_modules/decode-named-character-reference": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/decode-named-character-reference/-/decode-named-character-reference-1.2.0.tgz", @@ -13247,7 +14002,6 @@ "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz", "integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==", "dev": true, - "license": "Apache-2.0", "optional": true, "engines": { "node": ">=8" @@ -13278,12 +14032,6 @@ "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/di": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/di/-/di-0.0.1.tgz", - "integrity": "sha512-uJaamHkagcZtHPqCIHZxnFrXlunQXgBOsZSUOWwFw31QJCAbyTBoHMW75YOTur5ZNx8pIeAKgf6GWIgaqqiLhA==", - "dev": true - }, "node_modules/diff": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", @@ -13331,18 +14079,6 @@ "create-point-cb": "^1.0.0" } }, - "node_modules/dom-serialize": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/dom-serialize/-/dom-serialize-2.2.1.tgz", - "integrity": "sha512-Yra4DbvoW7/Z6LBN560ZwXMjoNOSAN2wRsKFGc4iBeso+mpIA6qj1vfdf9HpMaKAqG6wXTy+1SYEzmNpKXOSsQ==", - "dev": true, - "dependencies": { - "custom-event": "~1.0.0", - "ent": "~2.2.0", - "extend": "^3.0.0", - "void-elements": "^2.0.0" - } - }, "node_modules/dom-serializer": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", @@ -13497,99 +14233,19 @@ "node": ">= 4" } }, - "node_modules/encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", - "dev": true, - "engines": { - "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==", - "license": "MIT", - "optional": 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==", - "license": "MIT", - "optional": true, - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/engine.io": { - "version": "6.6.2", - "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-6.6.2.tgz", - "integrity": "sha512-gmNvsYi9C8iErnZdVcJnvCpSKbWTt1E8+JZo8b+daLninywUWi5NQ5STSHZ9rFjFO7imNcvb8Pc5pe/wMR5xEw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/cookie": "^0.4.1", - "@types/cors": "^2.8.12", - "@types/node": ">=10.0.0", - "accepts": "~1.3.4", - "base64id": "2.0.0", - "cookie": "~0.7.2", - "cors": "~2.8.5", - "debug": "~4.3.1", - "engine.io-parser": "~5.2.1", - "ws": "~8.17.1" - }, - "engines": { - "node": ">=10.2.0" - } - }, - "node_modules/engine.io-parser": { - "version": "5.2.3", - "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.2.3.tgz", - "integrity": "sha512-HqD3yTBfnBxIrbnM1DoD6Pcq8NECnh8d4As1Qgh0z5Gg3jRRIqijury0CL3ghu/edArpUYiYqQiDUQBIs4np3Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/engine.io/node_modules/cookie": { - "version": "0.7.2", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.2.tgz", - "integrity": "sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, "node_modules/enhanced-resolve": { - "version": "5.19.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.19.0.tgz", - "integrity": "sha512-phv3E1Xl4tQOShqSte26C7Fl84EwUdZsyOuSSk9qtAGyyQs2s3jJzComh+Abf4g187lUUAvH+H26omrqia2aGg==", + "version": "5.21.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.21.0.tgz", + "integrity": "sha512-otxSQPw4lkOZWkHpB3zaEQs6gWYEsmX4xQF68ElXC/TWvGxGMSGOvoNbaLXm6/cS/fSfHtsEdw90y20PCd+sCA==", "dev": true, "dependencies": { "graceful-fs": "^4.2.4", - "tapable": "^2.3.0" + "tapable": "^2.3.3" }, "engines": { "node": ">=10.13.0" } }, - "node_modules/ent": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/ent/-/ent-2.2.0.tgz", - "integrity": "sha512-GHrMyVZQWvTIdDtpiEXdHZnFQKzeO09apj8Cbl4pKWy4i0Oprcq17usfDt5aO63swf0JOeMWjWQE/LzgSRuWpA==", - "dev": true - }, "node_modules/entities": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", @@ -13625,8 +14281,7 @@ "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==", - "license": "MIT" + "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==" }, "node_modules/errno": { "version": "0.1.8", @@ -13772,9 +14427,9 @@ } }, "node_modules/es-module-lexer": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-2.0.0.tgz", - "integrity": "sha512-5POEcUuZybH7IdmGsD8wlf0AI55wMecM9rVBTI/qEAy2c1kTOm3DjFYjrBdI2K3BaJjJYfYFeRtM0t9ssnRuxw==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-2.1.0.tgz", + "integrity": "sha512-n27zTYMjYu1aj4MjCWzSP7G9r75utsaoc8m61weK+W8JMBGGQybd43GstCXZ3WNmSFtGT9wi59qQTW6mhTR5LQ==", "dev": true }, "node_modules/es-object-atoms": { @@ -13834,6 +14489,11 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/es-toolkit": { + "version": "1.46.1", + "resolved": "https://registry.npmjs.org/es-toolkit/-/es-toolkit-1.46.1.tgz", + "integrity": "sha512-5eNtXOs3tbfxXOj04tjjseeWkRWaoCjdEI+96DgwzZoe6c9juL49pXlzAFTI72aWC9Y8p7168g6XIKjh7k6pyQ==" + }, "node_modules/es5-ext": { "version": "0.10.64", "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.64.tgz", @@ -13932,12 +14592,11 @@ } }, "node_modules/esbuild": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.27.2.tgz", - "integrity": "sha512-HyNQImnsOC7X9PMNaCIeAm4ISCQXs5a5YasTXVliKv4uuBo1dKrG0A+uQS8M5eXjVMnLg3WgXaKvprHlFJQffw==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.27.3.tgz", + "integrity": "sha512-8VwMnyGCONIs6cWue2IdpHxHnAjzxnw2Zr7MkVxB2vjmQ2ivqGFb4LEG3SMnv0Gb2F/G/2yA8zUaiL1gywDCCg==", "dev": true, "hasInstallScript": true, - "license": "MIT", "bin": { "esbuild": "bin/esbuild" }, @@ -13945,40 +14604,39 @@ "node": ">=18" }, "optionalDependencies": { - "@esbuild/aix-ppc64": "0.27.2", - "@esbuild/android-arm": "0.27.2", - "@esbuild/android-arm64": "0.27.2", - "@esbuild/android-x64": "0.27.2", - "@esbuild/darwin-arm64": "0.27.2", - "@esbuild/darwin-x64": "0.27.2", - "@esbuild/freebsd-arm64": "0.27.2", - "@esbuild/freebsd-x64": "0.27.2", - "@esbuild/linux-arm": "0.27.2", - "@esbuild/linux-arm64": "0.27.2", - "@esbuild/linux-ia32": "0.27.2", - "@esbuild/linux-loong64": "0.27.2", - "@esbuild/linux-mips64el": "0.27.2", - "@esbuild/linux-ppc64": "0.27.2", - "@esbuild/linux-riscv64": "0.27.2", - "@esbuild/linux-s390x": "0.27.2", - "@esbuild/linux-x64": "0.27.2", - "@esbuild/netbsd-arm64": "0.27.2", - "@esbuild/netbsd-x64": "0.27.2", - "@esbuild/openbsd-arm64": "0.27.2", - "@esbuild/openbsd-x64": "0.27.2", - "@esbuild/openharmony-arm64": "0.27.2", - "@esbuild/sunos-x64": "0.27.2", - "@esbuild/win32-arm64": "0.27.2", - "@esbuild/win32-ia32": "0.27.2", - "@esbuild/win32-x64": "0.27.2" + "@esbuild/aix-ppc64": "0.27.3", + "@esbuild/android-arm": "0.27.3", + "@esbuild/android-arm64": "0.27.3", + "@esbuild/android-x64": "0.27.3", + "@esbuild/darwin-arm64": "0.27.3", + "@esbuild/darwin-x64": "0.27.3", + "@esbuild/freebsd-arm64": "0.27.3", + "@esbuild/freebsd-x64": "0.27.3", + "@esbuild/linux-arm": "0.27.3", + "@esbuild/linux-arm64": "0.27.3", + "@esbuild/linux-ia32": "0.27.3", + "@esbuild/linux-loong64": "0.27.3", + "@esbuild/linux-mips64el": "0.27.3", + "@esbuild/linux-ppc64": "0.27.3", + "@esbuild/linux-riscv64": "0.27.3", + "@esbuild/linux-s390x": "0.27.3", + "@esbuild/linux-x64": "0.27.3", + "@esbuild/netbsd-arm64": "0.27.3", + "@esbuild/netbsd-x64": "0.27.3", + "@esbuild/openbsd-arm64": "0.27.3", + "@esbuild/openbsd-x64": "0.27.3", + "@esbuild/openharmony-arm64": "0.27.3", + "@esbuild/sunos-x64": "0.27.3", + "@esbuild/win32-arm64": "0.27.3", + "@esbuild/win32-ia32": "0.27.3", + "@esbuild/win32-x64": "0.27.3" } }, "node_modules/esbuild-wasm": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/esbuild-wasm/-/esbuild-wasm-0.27.2.tgz", - "integrity": "sha512-eUTnl8eh+v8UZIZh4MrMOKDAc8Lm7+NqP3pyuTORGFY1s/o9WoiJgKnwXy+te2J3hX7iRbFSHEyig7GsPeeJyw==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/esbuild-wasm/-/esbuild-wasm-0.27.3.tgz", + "integrity": "sha512-AUXuOxZ145/5Az+lIqk6TdJbxKTyDGkXMJpTExmBdbnHR6n6qAFx+F4oG9ORpVYJ9dQYeQAqzv51TO4DFKsbXw==", "dev": true, - "license": "MIT", "bin": { "esbuild": "bin/esbuild" }, @@ -14207,16 +14865,6 @@ "strip-bom": "^3.0.0" } }, - "node_modules/eslint-plugin-jasmine": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/eslint-plugin-jasmine/-/eslint-plugin-jasmine-4.2.2.tgz", - "integrity": "sha512-nALbewRk63uz28UGNhUTJyd6GofXxVNFpWFNAwr9ySc6kpSRIoO4suwZqIYz3cfJmCacilmjp7+1Ocjr7zRagA==", - "dev": true, - "engines": { - "node": ">=8", - "npm": ">=6" - } - }, "node_modules/eslint-plugin-jsx-a11y": { "version": "6.10.2", "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.10.2.tgz", @@ -14504,6 +15152,16 @@ "node": ">=4.0" } }, + "node_modules/estree-walker": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0" + } + }, "node_modules/esutils": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", @@ -14575,11 +15233,20 @@ "node": ">=18.0.0" } }, + "node_modules/expect-type": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/expect-type/-/expect-type-1.3.0.tgz", + "integrity": "sha512-knvyeauYhqjOYvQ66MznSMs83wmHrCycNEN6Ao+2AeYEfxUIkuiVxdEa1qlGEPK+We3n0THiDciYSsCcgW/DoA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=12.0.0" + } + }, "node_modules/exponential-backoff": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/exponential-backoff/-/exponential-backoff-3.1.3.tgz", - "integrity": "sha512-ZgEeZXj30q+I0EN+CbSSpIyPaJ5HVQD18Z1m+u1FXbAeT94mr1zw50q4q6jiiC447Nl/YTcIYSAftiGqetwXCA==", - "license": "Apache-2.0" + "integrity": "sha512-ZgEeZXj30q+I0EN+CbSSpIyPaJ5HVQD18Z1m+u1FXbAeT94mr1zw50q4q6jiiC447Nl/YTcIYSAftiGqetwXCA==" }, "node_modules/express": { "version": "4.22.1", @@ -14663,17 +15330,17 @@ } }, "node_modules/express/node_modules/finalhandler": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.1.tgz", - "integrity": "sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==", + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.2.tgz", + "integrity": "sha512-aA4RyPcd3badbdABGDuTXCMTtOneUCAYH/gxoYRTZlIJdF0YPWuGqiAsIrhNnnqdXGswYk6dGujem4w80UJFhg==", "dev": true, "dependencies": { "debug": "2.6.9", "encodeurl": "~2.0.0", "escape-html": "~1.0.3", - "on-finished": "2.4.1", + "on-finished": "~2.4.1", "parseurl": "~1.3.3", - "statuses": "2.0.1", + "statuses": "~2.0.2", "unpipe": "~1.0.0" }, "engines": { @@ -14686,26 +15353,6 @@ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", "dev": true }, - "node_modules/express/node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "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/ext": { "version": "1.7.0", "resolved": "https://registry.npmjs.org/ext/-/ext-1.7.0.tgz", @@ -14812,11 +15459,10 @@ } }, "node_modules/filelist/node_modules/brace-expansion": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", - "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.1.0.tgz", + "integrity": "sha512-TN1kCZAgdgweJhWWpgKYrQaMNHcDULHkWwQIspdtjV4Y5aurRdZpjAqn6yX3FPqTA9ngHCc4hJxMAMgGfve85w==", "dev": true, - "license": "MIT", "dependencies": { "balanced-match": "^1.0.0" } @@ -14845,60 +15491,6 @@ "node": ">=8" } }, - "node_modules/finalhandler": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", - "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", - "dev": true, - "dependencies": { - "debug": "2.6.9", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "on-finished": "~2.3.0", - "parseurl": "~1.3.3", - "statuses": "~1.5.0", - "unpipe": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/finalhandler/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/finalhandler/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - }, - "node_modules/finalhandler/node_modules/on-finished": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", - "integrity": "sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==", - "dev": true, - "dependencies": { - "ee-first": "1.1.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/finalhandler/node_modules/statuses": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, "node_modules/find-up": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", @@ -14950,9 +15542,9 @@ "dev": true }, "node_modules/follow-redirects": { - "version": "1.15.6", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz", - "integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==", + "version": "1.16.0", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.16.0.tgz", + "integrity": "sha512-y5rN/uOsadFT/JfYwhxRS5R7Qce+g3zG97+JrtFZlC9klX/W5hD7iiLzScI4nZqUS7DNUdhPgw4xI8W2LuXlUw==", "funding": [ { "type": "individual", @@ -15013,25 +15605,10 @@ "node": ">= 0.6" } }, - "node_modules/fs-extra": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", - "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - }, - "engines": { - "node": ">=6 <7 || >=8" - } - }, "node_modules/fs-minipass": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-3.0.3.tgz", "integrity": "sha512-XUBA9XClHbnJWSfBzjkm6RvPsyg3sryZt06BEQoXcF7EK/xpGaQYJgQKDJSUH5SGZ76Y7pFx1QBnXz09rU5Fbw==", - "license": "ISC", "dependencies": { "minipass": "^7.0.3" }, @@ -15218,7 +15795,6 @@ "resolved": "https://registry.npmjs.org/glob-to-regex.js/-/glob-to-regex.js-1.2.0.tgz", "integrity": "sha512-QMwlOQKU/IzqMUOAZWubUOT8Qft+Y0KQWnX9nK3ch0CJg0tTp4TvGZsTfudYKv2NzoQSyPcnA6TYeIQ3jGichQ==", "dev": true, - "license": "Apache-2.0", "engines": { "node": ">=10.0" }, @@ -15234,8 +15810,7 @@ "version": "0.4.1", "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", - "dev": true, - "license": "BSD-2-Clause" + "dev": true }, "node_modules/glob/node_modules/balanced-match": { "version": "4.0.4", @@ -15246,9 +15821,9 @@ } }, "node_modules/glob/node_modules/brace-expansion": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.3.tgz", - "integrity": "sha512-fy6KJm2RawA5RcHkLa1z/ScpBeA762UF9KmZQxwIbDtRJrgLzM10depAiEQ+CXYcoiqW1/m96OAAoke2nE9EeA==", + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.5.tgz", + "integrity": "sha512-VZznLgtwhn+Mact9tfiwx64fA9erHH/MCXEUfB/0bX/6Fz6ny5EGTXYltMocqg4xFAQZtnO3DHWWXi8RiuN7cQ==", "dependencies": { "balanced-match": "^4.0.2" }, @@ -15294,9 +15869,9 @@ } }, "node_modules/globals": { - "version": "17.3.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-17.3.0.tgz", - "integrity": "sha512-yMqGUQVVCkD4tqjOJf3TnrvaaHDMYp4VlUSObbkIiuCPe/ofdMBFIAcBbCSRFWOnos6qRiTVStDwqPLUclaxIw==", + "version": "17.5.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-17.5.0.tgz", + "integrity": "sha512-qoV+HK2yFl/366t2/Cb3+xxPUo5BuMynomoDmiaZBIdbs+0pYbjfZU+twLhGKp4uCZ/+NbtpVepH5bGCxRyy2g==", "dev": true, "engines": { "node": ">=18" @@ -15753,7 +16328,6 @@ "version": "9.0.2", "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-9.0.2.tgz", "integrity": "sha512-M422h7o/BR3rmCQ8UHi7cyyMqKltdP9Uo+J2fXK+RSAY+wTcKOIRyhTuKv4qn+DJf3g+PL890AzId5KZpX+CBg==", - "license": "ISC", "dependencies": { "lru-cache": "^11.1.0" }, @@ -15762,10 +16336,9 @@ } }, "node_modules/hosted-git-info/node_modules/lru-cache": { - "version": "11.2.4", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.2.4.tgz", - "integrity": "sha512-B5Y16Jr9LB9dHVkh6ZevG+vAbOsNOYCX+sXvFWFu7B3Iz5mijW3zdbMyhsh8ANd2mSWBYdJgnqi+mL7/LrOPYg==", - "license": "BlueOak-1.0.0", + "version": "11.3.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.3.5.tgz", + "integrity": "sha512-NxVFwLAnrd9i7KUBxC4DrUhmgjzOs+1Qm50D3oF1/oL+r1NpZ4gA7xvG0/zJ8evR7zIKn4vLf7qTNduWFtCrRw==", "engines": { "node": "20 || >=22" } @@ -15803,6 +16376,34 @@ "util-deprecate": "~1.0.1" } }, + "node_modules/hpack.js/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "node_modules/hpack.js/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/html-encoding-sniffer": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-6.0.0.tgz", + "integrity": "sha512-CV9TW3Y3f8/wT0BRFc1/KAVQ3TUHiXmaAb6VW9vtiMFf7SLoMd1PdAc4W3KFOFETBJUb90KatHqlsZMWV+R9Gg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@exodus/bytes": "^1.6.0" + }, + "engines": { + "node": "^20.19.0 || ^22.12.0 || >=24.0.0" + } + }, "node_modules/html-escaper": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", @@ -15870,9 +16471,9 @@ } }, "node_modules/htmlparser2": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-10.0.0.tgz", - "integrity": "sha512-TwAZM+zE5Tq3lrEHvOlvwgj1XLWQCtaaibSN11Q+gGBAS7Y1uZSWwXXRe4iF6OXnaq1riyQAPFOBtYc77Mxq0g==", + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-10.1.0.tgz", + "integrity": "sha512-VTZkM9GWRAtEpveh7MSF6SjjrpNVNNVJfFup7xTY3UpFtm67foy9HDVXneLtFVt4pMz5kZtgNcvCniNFb1hlEQ==", "dev": true, "funding": [ "https://github.com/fb55/htmlparser2?sponsor=1", @@ -15884,14 +16485,14 @@ "dependencies": { "domelementtype": "^2.3.0", "domhandler": "^5.0.3", - "domutils": "^3.2.1", - "entities": "^6.0.0" + "domutils": "^3.2.2", + "entities": "^7.0.1" } }, "node_modules/htmlparser2/node_modules/entities": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/entities/-/entities-6.0.1.tgz", - "integrity": "sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==", + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-7.0.1.tgz", + "integrity": "sha512-TWrgLOFUQTH994YUyl1yT4uyavY5nNB5muff+RtWaqNVCAK408b5ZnnbNAUEWLTCpum9w6arT70i1XdQ4UeOPA==", "dev": true, "engines": { "node": ">=0.12" @@ -15903,8 +16504,7 @@ "node_modules/http-cache-semantics": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.2.0.tgz", - "integrity": "sha512-dTxcvPXqPvXBQpq5dUr6mEMJX4oIEFv6bwom3FDwKRDsuIjjJGANqhBuoAn9c1RQJIdAKav33ED65E2ys+87QQ==", - "license": "BSD-2-Clause" + "integrity": "sha512-dTxcvPXqPvXBQpq5dUr6mEMJX4oIEFv6bwom3FDwKRDsuIjjJGANqhBuoAn9c1RQJIdAKav33ED65E2ys+87QQ==" }, "node_modules/http-deceiver": { "version": "1.2.7", @@ -15913,19 +16513,22 @@ "dev": true }, "node_modules/http-errors": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", - "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", - "dev": true, + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.1.tgz", + "integrity": "sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ==", "dependencies": { - "depd": "2.0.0", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "toidentifier": "1.0.1" + "depd": "~2.0.0", + "inherits": "~2.0.4", + "setprototypeof": "~1.2.0", + "statuses": "~2.0.2", + "toidentifier": "~1.0.1" }, "engines": { "node": ">= 0.8" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" } }, "node_modules/http-parser-js": { @@ -15951,7 +16554,6 @@ "version": "7.0.2", "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", - "license": "MIT", "dependencies": { "agent-base": "^7.1.0", "debug": "^4.3.4" @@ -16040,7 +16642,6 @@ "resolved": "https://registry.npmjs.org/hyperdyperid/-/hyperdyperid-1.2.0.tgz", "integrity": "sha512-Y93lCzHYgGWdrJ66yIktxiaGULYc6oGiABxhcO5AufBeOyoIdZF7bIfLaOrbM0iGIOXQQgxxRrFEnb+Y6w1n4A==", "dev": true, - "license": "MIT", "engines": { "node": ">=10.18" } @@ -16150,7 +16751,6 @@ "version": "8.0.0", "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-8.0.0.tgz", "integrity": "sha512-FCeMZT4NiRQGh+YkeKMtWrOmBgWjHjMJ26WQWrRQyoyzqevdaGSakUaJW5xQYmjLlUVk2qUnCjYVBax9EKKg8A==", - "license": "ISC", "dependencies": { "minimatch": "^10.0.3" }, @@ -16167,9 +16767,9 @@ } }, "node_modules/ignore-walk/node_modules/brace-expansion": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.3.tgz", - "integrity": "sha512-fy6KJm2RawA5RcHkLa1z/ScpBeA762UF9KmZQxwIbDtRJrgLzM10depAiEQ+CXYcoiqW1/m96OAAoke2nE9EeA==", + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.5.tgz", + "integrity": "sha512-VZznLgtwhn+Mact9tfiwx64fA9erHH/MCXEUfB/0bX/6Fz6ny5EGTXYltMocqg4xFAQZtnO3DHWWXi8RiuN7cQ==", "dependencies": { "balanced-match": "^4.0.2" }, @@ -16178,11 +16778,11 @@ } }, "node_modules/ignore-walk/node_modules/minimatch": { - "version": "10.2.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.4.tgz", - "integrity": "sha512-oRjTw/97aTBN0RHbYCdtF1MQfvusSIBQM0IZEgzl6426+8jSC0nF1a/GmnVLpfB9yyr6g6FTqWqiZVbxrtaCIg==", + "version": "10.2.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.5.tgz", + "integrity": "sha512-MULkVLfKGYDFYejP07QOurDLLQpcjk7Fw+7jXS2R2czRQzR56yHRveU5NDJEOviH+hETZKSkIk5c+T23GjFUMg==", "dependencies": { - "brace-expansion": "^5.0.2" + "brace-expansion": "^5.0.5" }, "engines": { "node": "18 || 20 || >=22" @@ -16231,6 +16831,7 @@ "version": "0.1.4", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, "engines": { "node": ">=0.8.19" } @@ -16254,7 +16855,6 @@ "version": "6.0.0", "resolved": "https://registry.npmjs.org/ini/-/ini-6.0.0.tgz", "integrity": "sha512-IBTdIkzZNOpqm7q3dRqJvMaldXjDHWkEDfrwGEQTs5eaQMWV+djAhR+wahyNNMAa+qpbDUhBMVt4ZKNwpPm7xQ==", - "license": "ISC", "engines": { "node": "^20.17.0 || >=22.9.0" } @@ -16283,9 +16883,9 @@ } }, "node_modules/ipaddr.js": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.2.0.tgz", - "integrity": "sha512-Ag3wB2o37wslZS19hZqorUnrnzSkpOVy+IiiDEiTqNubEYpYuHWIf6K4psgN2ZWKExS4xhVCrRVfb/wfW8fWJA==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.3.0.tgz", + "integrity": "sha512-Zv/pA+ciVFbCSBBjGfaKUya/CcGmUHzTydLMaTwrUUEM2DIEO3iZvueGxmacvmN50fGpGVKeTXpb2LcYQxeVdg==", "dev": true, "engines": { "node": ">= 10" @@ -16397,6 +16997,7 @@ "version": "2.16.1", "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", + "dev": true, "license": "MIT", "dependencies": { "hasown": "^2.0.2" @@ -16602,9 +17203,9 @@ } }, "node_modules/is-network-error": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-network-error/-/is-network-error-1.1.0.tgz", - "integrity": "sha512-tUdRRAnhT+OtCZR/LxZelH/C7QtjtFrTu5tXCA8pl55eTUElUHT+GPYV8MBMBvea/j+NxQqVt3LbWMRir7Gx9g==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/is-network-error/-/is-network-error-1.3.1.tgz", + "integrity": "sha512-6QCxa49rQbmUWLfk0nuGqzql9U8uaV2H6279bRErPBHe/109hCzsLUBUHfbEtvLIHBd6hyXbgedBSHevm43Edw==", "dev": true, "engines": { "node": ">=16" @@ -16653,6 +17254,13 @@ "node": ">=0.10.0" } }, + "node_modules/is-potential-custom-element-name": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", + "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==", + "dev": true, + "license": "MIT" + }, "node_modules/is-promise": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-4.0.0.tgz", @@ -16832,18 +17440,6 @@ "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", "dev": true }, - "node_modules/isbinaryfile": { - "version": "4.0.10", - "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.10.tgz", - "integrity": "sha512-iHrqe5shvBUcFbmZq9zOQHBoeOhZJu6RQGrDpBgenUm/Am+F3JM2MgQj+rK3Z601fzrL5gLZWtAPH2OBaSVcyw==", - "dev": true, - "engines": { - "node": ">= 8.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/gjtorikian/" - } - }, "node_modules/iselement": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/iselement/-/iselement-1.1.4.tgz", @@ -16882,30 +17478,6 @@ "node": ">=8" } }, - "node_modules/istanbul-lib-instrument": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz", - "integrity": "sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==", - "dev": true, - "dependencies": { - "@babel/core": "^7.7.5", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.0.0", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-instrument/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/istanbul-lib-report": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", @@ -16935,34 +17507,12 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/istanbul-lib-source-maps": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", - "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", - "dev": true, - "dependencies": { - "debug": "^4.1.1", - "istanbul-lib-coverage": "^3.0.0", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/istanbul-lib-source-maps/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/istanbul-reports": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.6.tgz", - "integrity": "sha512-TLgnMkKg3iTDsQ9PbPTdpfAK2DzjF9mqUG7RMgcQl8oFjad8ob4laGxv5XV5U9MAfx8D6tSJiUyuAwzLicaxlg==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.2.0.tgz", + "integrity": "sha512-HGYWWS/ehqTV3xN10i23tkPkpH46MLCIMFNCaaKNavAXTF1RkqxawEPtnjnGZ6XKSInBKkiOA5BKS+aZiY3AvA==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "html-escaper": "^2.0.0", "istanbul-lib-report": "^3.0.0" @@ -17006,22 +17556,6 @@ "node": ">=10" } }, - "node_modules/jasmine-core": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-6.1.0.tgz", - "integrity": "sha512-p/tjBw58O6vxKIWMlrU+yys8lqR3+l3UrqwNTT7wpj+dQ7N4etQekFM8joI+cWzPDYqZf54kN+hLC1+s5TvZvg==", - "dev": true - }, - "node_modules/jasmine-spec-reporter": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/jasmine-spec-reporter/-/jasmine-spec-reporter-7.0.0.tgz", - "integrity": "sha512-OtC7JRasiTcjsaCBPtMO0Tl8glCejM4J4/dNuOJdA8lBjz4PmWjYQ6pzb0uzpBNAWJMDudYuj9OdXJWqM2QTJg==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "colors": "1.4.0" - } - }, "node_modules/jest-worker": { "version": "27.5.1", "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", @@ -17100,6 +17634,93 @@ "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" }, + "node_modules/jsdom": { + "version": "29.1.1", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-29.1.1.tgz", + "integrity": "sha512-ECi4Fi2f7BdJtUKTflYRTiaMxIB0O6zfR1fX0GXpUrf6flp8QIYn1UT20YQqdSOfk2dfkCwS8LAFoJDEppNK5Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@asamuzakjp/css-color": "^5.1.11", + "@asamuzakjp/dom-selector": "^7.1.1", + "@bramus/specificity": "^2.4.2", + "@csstools/css-syntax-patches-for-csstree": "^1.1.3", + "@exodus/bytes": "^1.15.0", + "css-tree": "^3.2.1", + "data-urls": "^7.0.0", + "decimal.js": "^10.6.0", + "html-encoding-sniffer": "^6.0.0", + "is-potential-custom-element-name": "^1.0.1", + "lru-cache": "^11.3.5", + "parse5": "^8.0.1", + "saxes": "^6.0.0", + "symbol-tree": "^3.2.4", + "tough-cookie": "^6.0.1", + "undici": "^7.25.0", + "w3c-xmlserializer": "^5.0.0", + "webidl-conversions": "^8.0.1", + "whatwg-mimetype": "^5.0.0", + "whatwg-url": "^16.0.1", + "xml-name-validator": "^5.0.0" + }, + "engines": { + "node": "^20.19.0 || ^22.13.0 || >=24.0.0" + }, + "peerDependencies": { + "canvas": "^3.0.0" + }, + "peerDependenciesMeta": { + "canvas": { + "optional": true + } + } + }, + "node_modules/jsdom/node_modules/entities": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-8.0.0.tgz", + "integrity": "sha512-zwfzJecQ/Uej6tusMqwAqU/6KL2XaB2VZ2Jg54Je6ahNBGNH6Ek6g3jjNCF0fG9EWQKGZNddNjU5F1ZQn/sBnA==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=20.19.0" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/jsdom/node_modules/lru-cache": { + "version": "11.3.6", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.3.6.tgz", + "integrity": "sha512-Gf/KoL3C/MlI7Bt0PGI9I+TeTC/I6r/csU58N4BSNc4lppLBeKsOdFYkK+dX0ABDUMJNfCHTyPpzwwO21Awd3A==", + "dev": true, + "license": "BlueOak-1.0.0", + "engines": { + "node": "20 || >=22" + } + }, + "node_modules/jsdom/node_modules/parse5": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-8.0.1.tgz", + "integrity": "sha512-z1e/HMG90obSGeidlli3hj7cbocou0/wa5HacvI3ASx34PecNjNQeaHNo5WIZpWofN9kgkqV1q5YvXe3F0FoPw==", + "dev": true, + "license": "MIT", + "dependencies": { + "entities": "^8.0.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, + "node_modules/jsdom/node_modules/undici": { + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/undici/-/undici-7.25.0.tgz", + "integrity": "sha512-xXnp4kTyor2Zq+J1FfPI6Eq3ew5h6Vl0F/8d9XU5zZQf1tX9s2Su1/3PiMmUANFULpmksxkClamIZcaUqryHsQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=20.18.1" + } + }, "node_modules/jsesc": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", @@ -17123,7 +17744,6 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-5.0.0.tgz", "integrity": "sha512-ZF1nxZ28VhQouRWhUcVlUIN3qwSgPuswK05s/HIaoetAoE/9tngVmCHjSxmSQPav1nd+lPtTL0YZ/2AFdR/iYQ==", - "license": "MIT", "engines": { "node": "^20.17.0 || >=22.9.0" } @@ -17161,23 +17781,13 @@ "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.3.1.tgz", "integrity": "sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ==" }, - "node_modules/jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", - "dev": true, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, "node_modules/jsonparse": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", "integrity": "sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==", "engines": [ "node >= 0.2.0" - ], - "license": "MIT" + ] }, "node_modules/jsx-ast-utils": { "version": "3.3.5", @@ -17194,229 +17804,6 @@ "node": ">=4.0" } }, - "node_modules/karma": { - "version": "6.4.4", - "resolved": "https://registry.npmjs.org/karma/-/karma-6.4.4.tgz", - "integrity": "sha512-LrtUxbdvt1gOpo3gxG+VAJlJAEMhbWlM4YrFQgql98FwF7+K8K12LYO4hnDdUkNjeztYrOXEMqgTajSWgmtI/w==", - "dev": true, - "license": "MIT", - "dependencies": { - "@colors/colors": "1.5.0", - "body-parser": "^1.19.0", - "braces": "^3.0.2", - "chokidar": "^3.5.1", - "connect": "^3.7.0", - "di": "^0.0.1", - "dom-serialize": "^2.2.1", - "glob": "^7.1.7", - "graceful-fs": "^4.2.6", - "http-proxy": "^1.18.1", - "isbinaryfile": "^4.0.8", - "lodash": "^4.17.21", - "log4js": "^6.4.1", - "mime": "^2.5.2", - "minimatch": "^3.0.4", - "mkdirp": "^0.5.5", - "qjobs": "^1.2.0", - "range-parser": "^1.2.1", - "rimraf": "^3.0.2", - "socket.io": "^4.7.2", - "source-map": "^0.6.1", - "tmp": "^0.2.1", - "ua-parser-js": "^0.7.30", - "yargs": "^16.1.1" - }, - "bin": { - "karma": "bin/karma" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/karma-chrome-launcher": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/karma-chrome-launcher/-/karma-chrome-launcher-3.2.0.tgz", - "integrity": "sha512-rE9RkUPI7I9mAxByQWkGJFXfFD6lE4gC5nPuZdobf/QdTEJI6EU4yIay/cfU/xV4ZxlM5JiTv7zWYgA64NpS5Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "which": "^1.2.1" - } - }, - "node_modules/karma-chrome-launcher/node_modules/which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "which": "bin/which" - } - }, - "node_modules/karma-coverage": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/karma-coverage/-/karma-coverage-2.2.1.tgz", - "integrity": "sha512-yj7hbequkQP2qOSb20GuNSIyE//PgJWHwC2IydLE6XRtsnaflv+/OSGNssPjobYUlhVVagy99TQpqUt3vAUG7A==", - "dev": true, - "license": "MIT", - "dependencies": { - "istanbul-lib-coverage": "^3.2.0", - "istanbul-lib-instrument": "^5.1.0", - "istanbul-lib-report": "^3.0.0", - "istanbul-lib-source-maps": "^4.0.1", - "istanbul-reports": "^3.0.5", - "minimatch": "^3.0.4" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/karma-coverage-istanbul-reporter": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/karma-coverage-istanbul-reporter/-/karma-coverage-istanbul-reporter-3.0.3.tgz", - "integrity": "sha512-wE4VFhG/QZv2Y4CdAYWDbMmcAHeS926ZIji4z+FkB2aF/EposRb6DP6G5ncT/wXhqUfAb/d7kZrNKPonbvsATw==", - "dev": true, - "dependencies": { - "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-report": "^3.0.0", - "istanbul-lib-source-maps": "^3.0.6", - "istanbul-reports": "^3.0.2", - "minimatch": "^3.0.4" - }, - "funding": { - "url": "https://github.com/sponsors/mattlewis92" - } - }, - "node_modules/karma-coverage-istanbul-reporter/node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/karma-coverage-istanbul-reporter/node_modules/istanbul-lib-source-maps": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-3.0.6.tgz", - "integrity": "sha512-R47KzMtDJH6X4/YW9XTx+jrLnZnscW4VpNN+1PViSYTejLVPWv7oov+Duf8YQSPyVRUvueQqz1TcsC6mooZTXw==", - "dev": true, - "dependencies": { - "debug": "^4.1.1", - "istanbul-lib-coverage": "^2.0.5", - "make-dir": "^2.1.0", - "rimraf": "^2.6.3", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/karma-coverage-istanbul-reporter/node_modules/istanbul-lib-source-maps/node_modules/istanbul-lib-coverage": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.5.tgz", - "integrity": "sha512-8aXznuEPCJvGnMSRft4udDRDtb1V3pkQkMMI5LI+6HuQz5oQ4J2UFn1H82raA3qJtyOLkkwVqICBQkjnGtn5mA==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/karma-coverage-istanbul-reporter/node_modules/rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } - }, - "node_modules/karma-coverage-istanbul-reporter/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/karma-coverage/node_modules/istanbul-lib-instrument": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", - "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "@babel/core": "^7.12.3", - "@babel/parser": "^7.14.7", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.2.0", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/karma-coverage/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, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/karma-jasmine": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/karma-jasmine/-/karma-jasmine-5.1.0.tgz", - "integrity": "sha512-i/zQLFrfEpRyQoJF9fsCdTMOF5c2dK7C7OmsuKg2D0YSsuZSfQDiLuaiktbuio6F2wiCsZSnSnieIQ0ant/uzQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "jasmine-core": "^4.1.0" - }, - "engines": { - "node": ">=12" - }, - "peerDependencies": { - "karma": "^6.0.0" - } - }, - "node_modules/karma-jasmine-html-reporter": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/karma-jasmine-html-reporter/-/karma-jasmine-html-reporter-2.1.0.tgz", - "integrity": "sha512-sPQE1+nlsn6Hwb5t+HHwyy0A1FNCVKuL1192b+XNauMYWThz2kweiBVW1DqloRpVvZIJkIoHVB7XRpK78n1xbQ==", - "dev": true, - "license": "MIT", - "peerDependencies": { - "jasmine-core": "^4.0.0 || ^5.0.0", - "karma": "^6.0.0", - "karma-jasmine": "^5.0.0" - } - }, - "node_modules/karma-jasmine/node_modules/jasmine-core": { - "version": "4.6.1", - "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-4.6.1.tgz", - "integrity": "sha512-VYz/BjjmC3klLJlLwA4Kw8ytk0zDSmbbDLNs794VnWmkcCB7I9aAL/D48VNQtmITyPvea2C3jdUMfc3kAoy0PQ==", - "dev": true, - "license": "MIT" - }, "node_modules/karma-source-map-support": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/karma-source-map-support/-/karma-source-map-support-1.4.0.tgz", @@ -17426,87 +17813,6 @@ "source-map-support": "^0.5.5" } }, - "node_modules/karma-spec-reporter": { - "version": "0.0.36", - "resolved": "https://registry.npmjs.org/karma-spec-reporter/-/karma-spec-reporter-0.0.36.tgz", - "integrity": "sha512-11bvOl1x6ryKZph7kmbmMpbi8vsngEGxGOoeTlIcDaH3ab3j8aPJnZ+r+K/SS0sBSGy5VGkGYO2+hLct7hw/6w==", - "dev": true, - "license": "MIT", - "dependencies": { - "colors": "1.4.0" - }, - "peerDependencies": { - "karma": ">=0.9" - } - }, - "node_modules/karma/node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/karma/node_modules/mime": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz", - "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==", - "dev": true, - "bin": { - "mime": "cli.js" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/karma/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/karma/node_modules/yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", - "dev": true, - "dependencies": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/karma/node_modules/yargs-parser": { - "version": "20.2.9", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", - "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", - "dev": true, - "engines": { - "node": ">=10" - } - }, "node_modules/keyv": { "version": "4.5.4", "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", @@ -17550,13 +17856,13 @@ } }, "node_modules/launch-editor": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/launch-editor/-/launch-editor-2.10.0.tgz", - "integrity": "sha512-D7dBRJo/qcGX9xlvt/6wUYzQxjh5G1RvZPgPv8vi4KRU99DVQL/oW7tnVOCCTm2HGeo3C5HvGE5Yrh6UBoZ0vA==", + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/launch-editor/-/launch-editor-2.13.2.tgz", + "integrity": "sha512-4VVDnbOpLXy/s8rdRCSXb+zfMeFR0WlJWpET1iA9CQdlZDfwyLjUuGQzXU4VeOoey6AicSAluWan7Etga6Kcmg==", "dev": true, "dependencies": { - "picocolors": "^1.0.0", - "shell-quote": "^1.8.1" + "picocolors": "^1.1.1", + "shell-quote": "^1.8.3" } }, "node_modules/laz-perf": { @@ -17592,11 +17898,10 @@ } }, "node_modules/less-loader": { - "version": "12.3.0", - "resolved": "https://registry.npmjs.org/less-loader/-/less-loader-12.3.0.tgz", - "integrity": "sha512-0M6+uYulvYIWs52y0LqN4+QM9TqWAohYSNTo4htE8Z7Cn3G/qQMEmktfHmyJT23k+20kU9zHH2wrfFXkxNLtVw==", + "version": "12.3.1", + "resolved": "https://registry.npmjs.org/less-loader/-/less-loader-12.3.1.tgz", + "integrity": "sha512-JZZmG7gMzoDP3VGeEG8Sh6FW5wygB5jYL7Wp29FFihuRTsIBacqO3LbRPr2yStYD11riVf13selLm/CPFRDBRQ==", "dev": true, - "license": "MIT", "engines": { "node": ">= 18.12.0" }, @@ -17605,7 +17910,7 @@ "url": "https://opencollective.com/webpack" }, "peerDependencies": { - "@rspack/core": "0.x || 1.x", + "@rspack/core": "0.x || ^1.0.0 || ^2.0.0-0", "less": "^3.5.0 || ^4.0.0", "webpack": "^5.0.0" }, @@ -17868,14 +18173,14 @@ } }, "node_modules/lmdb": { - "version": "3.4.4", - "resolved": "https://registry.npmjs.org/lmdb/-/lmdb-3.4.4.tgz", - "integrity": "sha512-+Y2DqovevLkb6DrSQ6SXTYLEd6kvlRbhsxzgJrk7BUfOVA/mt21ak6pFDZDKxiAczHMWxrb02kXBTSTIA0O94A==", + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/lmdb/-/lmdb-3.5.1.tgz", + "integrity": "sha512-NYHA0MRPjvNX+vSw8Xxg6FLKxzAG+e7Pt8RqAQA/EehzHVXq9SxDqJIN3JL1hK0dweb884y8kIh6rkWvPyg9Wg==", "dev": true, "hasInstallScript": true, - "license": "MIT", "optional": true, "dependencies": { + "@harperfast/extended-iterable": "^1.0.3", "msgpackr": "^1.11.2", "node-addon-api": "^6.1.0", "node-gyp-build-optional-packages": "5.2.2", @@ -17886,19 +18191,19 @@ "download-lmdb-prebuilds": "bin/download-prebuilds.js" }, "optionalDependencies": { - "@lmdb/lmdb-darwin-arm64": "3.4.4", - "@lmdb/lmdb-darwin-x64": "3.4.4", - "@lmdb/lmdb-linux-arm": "3.4.4", - "@lmdb/lmdb-linux-arm64": "3.4.4", - "@lmdb/lmdb-linux-x64": "3.4.4", - "@lmdb/lmdb-win32-arm64": "3.4.4", - "@lmdb/lmdb-win32-x64": "3.4.4" + "@lmdb/lmdb-darwin-arm64": "3.5.1", + "@lmdb/lmdb-darwin-x64": "3.5.1", + "@lmdb/lmdb-linux-arm": "3.5.1", + "@lmdb/lmdb-linux-arm64": "3.5.1", + "@lmdb/lmdb-linux-x64": "3.5.1", + "@lmdb/lmdb-win32-arm64": "3.5.1", + "@lmdb/lmdb-win32-x64": "3.5.1" } }, "node_modules/loader-runner": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.1.tgz", - "integrity": "sha512-IWqP2SCPhyVFTBtRcgMHdzlf9ul25NwaFx4wCEH/KjAXuuHY4yNjvPXsBokp8jCB936PyWRaPKUNh8NvylLp2Q==", + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.2.tgz", + "integrity": "sha512-DFEqQ3ihfS9blba08cLfYf1NRAIEm+dDjic073DRDc3/JspI/8wYmtDsHwd3+4hwvdxSK7PGaElfTmm0awWJ4w==", "dev": true, "engines": { "node": ">=6.11.5" @@ -17933,14 +18238,9 @@ } }, "node_modules/lodash": { - "version": "4.17.23", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.23.tgz", - "integrity": "sha512-LgVTMpQtIopCi79SJeDiP0TfWi5CNEc/L/aRdTh3yIvmZXTnheWpKjSZhnvMl8iXbC1tFg9gdHHDMLoV7CnG+w==" - }, - "node_modules/lodash-es": { "version": "4.18.1", - "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.18.1.tgz", - "integrity": "sha512-J8xewKD/Gk22OZbhpOVSwcs60zhd95ESDwezOFuA3/099925PdHJ7OFHNTGtajL3AlZkykD32HykiMo+BIBI8A==" + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.18.1.tgz", + "integrity": "sha512-dMInicTPVE8d1e5otfwmmjlxkZoUpiVLwyeTdUsi/Caj/gfzzblBcCE5sRHV/AsjuCmxWrte2TNGSYuCeCq+0Q==" }, "node_modules/lodash.clonedeep": { "version": "4.5.0", @@ -17958,8 +18258,7 @@ "version": "4.0.8", "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/lodash.get": { "version": "4.4.2", @@ -18135,22 +18434,6 @@ "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, - "node_modules/log4js": { - "version": "6.9.1", - "resolved": "https://registry.npmjs.org/log4js/-/log4js-6.9.1.tgz", - "integrity": "sha512-1somDdy9sChrr9/f4UlzhdaGfDR2c/SaD2a4T7qEkG4jTS57/B3qmnjLYePwQ8cqWnUHZI0iAKxMBpCZICiZ2g==", - "dev": true, - "dependencies": { - "date-format": "^4.0.14", - "debug": "^4.3.4", - "flatted": "^3.2.7", - "rfdc": "^1.3.0", - "streamroller": "^3.1.5" - }, - "engines": { - "node": ">=8.0" - } - }, "node_modules/longest-streak": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/longest-streak/-/longest-streak-3.1.0.tgz", @@ -18207,11 +18490,24 @@ "@jridgewell/sourcemap-codec": "^1.5.0" } }, + "node_modules/magicast": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/magicast/-/magicast-0.5.2.tgz", + "integrity": "sha512-E3ZJh4J3S9KfwdjZhe2afj6R9lGIN5Pher1pF39UGrXRqq/VDaGVIGN13BjHd2u8B61hArAGOnso7nBOouW3TQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.29.0", + "@babel/types": "^7.29.0", + "source-map-js": "^1.2.1" + } + }, "node_modules/make-dir": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", "dev": true, + "optional": true, "dependencies": { "pify": "^4.0.1", "semver": "^5.6.0" @@ -18225,6 +18521,7 @@ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", "dev": true, + "optional": true, "bin": { "semver": "bin/semver" } @@ -18236,12 +18533,13 @@ "dev": true }, "node_modules/make-fetch-happen": { - "version": "15.0.3", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-15.0.3.tgz", - "integrity": "sha512-iyyEpDty1mwW3dGlYXAJqC/azFn5PPvgKVwXayOGBSmKLxhKZ9fg4qIan2ePpp1vJIwfFiO34LAPZgq9SZW9Aw==", - "license": "ISC", + "version": "15.0.5", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-15.0.5.tgz", + "integrity": "sha512-uCbIa8jWWmQZt4dSnEStkVC6gdakiinAm4PiGsywIkguF0eWMdcjDz0ECYhUolFU3pFLOev9VNPCEygydXnddg==", "dependencies": { + "@gar/promise-retry": "^1.0.0", "@npmcli/agent": "^4.0.0", + "@npmcli/redact": "^4.0.0", "cacache": "^20.0.1", "http-cache-semantics": "^4.1.1", "minipass": "^7.0.2", @@ -18250,7 +18548,6 @@ "minipass-pipeline": "^1.2.4", "negotiator": "^1.0.0", "proc-log": "^6.0.0", - "promise-retry": "^2.0.1", "ssri": "^13.0.0" }, "engines": { @@ -18261,7 +18558,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-1.0.0.tgz", "integrity": "sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg==", - "license": "MIT", "engines": { "node": ">= 0.6" } @@ -18549,6 +18845,13 @@ "url": "https://opencollective.com/unified" } }, + "node_modules/mdn-data": { + "version": "2.27.1", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.27.1.tgz", + "integrity": "sha512-9Yubnt3e8A0OKwxYSXyhLymGW4sCufcLG6VdiDdUGVkPhpqLxlvP5vl1983gQjJl3tqbrM731mjaZaP68AgosQ==", + "dev": true, + "license": "CC0-1.0" + }, "node_modules/mdurl": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-2.0.0.tgz", @@ -18576,12 +18879,19 @@ } }, "node_modules/memfs": { - "version": "4.52.0", - "resolved": "https://registry.npmjs.org/memfs/-/memfs-4.52.0.tgz", - "integrity": "sha512-dG5ZY1wUCPWhtl4M2mlc7Wx4OrMGtiI79axnScxwDoPR/25biQYrYm21OpKyZcnKv8pvWaX95SRtZgecZ84gFg==", + "version": "4.57.2", + "resolved": "https://registry.npmjs.org/memfs/-/memfs-4.57.2.tgz", + "integrity": "sha512-2nWzSsJzrukurSDna4Z0WywuScK4Id3tSKejgu74u8KCdW4uNrseKRSIDg75C6Yw5ZRqBe0F0EtMNlTbUq8bAQ==", "dev": true, - "license": "Apache-2.0", "dependencies": { + "@jsonjoy.com/fs-core": "4.57.2", + "@jsonjoy.com/fs-fsa": "4.57.2", + "@jsonjoy.com/fs-node": "4.57.2", + "@jsonjoy.com/fs-node-builtins": "4.57.2", + "@jsonjoy.com/fs-node-to-fsa": "4.57.2", + "@jsonjoy.com/fs-node-utils": "4.57.2", + "@jsonjoy.com/fs-print": "4.57.2", + "@jsonjoy.com/fs-snapshot": "4.57.2", "@jsonjoy.com/json-pack": "^1.11.0", "@jsonjoy.com/util": "^1.9.0", "glob-to-regex.js": "^1.0.1", @@ -18592,6 +18902,9 @@ "funding": { "type": "github", "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" } }, "node_modules/memoizee": { @@ -18622,24 +18935,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/merge-source-map": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/merge-source-map/-/merge-source-map-1.1.0.tgz", - "integrity": "sha512-Qkcp7P2ygktpMPh2mCQZaf3jhN6D3Z/qVZHSdWvQ+2Ef5HgRAPBO57A77+ENm0CPx2+1Ce/MYKi3ymqdfuqibw==", - "dev": true, - "dependencies": { - "source-map": "^0.6.1" - } - }, - "node_modules/merge-source-map/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/merge-stream": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", @@ -19279,9 +19574,9 @@ } }, "node_modules/mini-css-extract-plugin": { - "version": "2.9.4", - "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.9.4.tgz", - "integrity": "sha512-ZWYT7ln73Hptxqxk2DxPU9MmapXRhxkJD6tkSR04dnQxm8BGu2hzgKLugK5yySD97u/8yy7Ma7E76k9ZdvtjkQ==", + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.10.0.tgz", + "integrity": "sha512-540P2c5dYnJlyJxTaSloliZexv8rji6rY8FhQN+WF/82iHQfA23j/xtJx97L+mXOML27EqksSek/g4eK7jaL3g==", "dev": true, "dependencies": { "schema-utils": "^4.0.0", @@ -19311,9 +19606,9 @@ } }, "node_modules/mini-css-extract-plugin/node_modules/schema-utils": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.3.2.tgz", - "integrity": "sha512-Gn/JaSk/Mt9gYubxTtSn/QCV4em9mpAPiR1rqy/Ocu19u/G9J5WWdNoUT4SiV6mFC3y6cxyFcFwdzPM3FgxGAQ==", + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.3.3.tgz", + "integrity": "sha512-eflK8wEtyOE6+hsaRVPxvUKYCpRgzLqDTb8krvAsRIwOGlHoSgYLgBXoubGgLd2fT41/OUYdb48v4k4WWHQurA==", "dev": true, "dependencies": { "@types/json-schema": "^7.0.9", @@ -19367,7 +19662,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-2.0.1.tgz", "integrity": "sha512-D7V8PO9oaz7PWGLbCACuI1qEOsq7UKfLotx/C0Aet43fCUB/wfQ7DYeq2oR/svFJGYDHPr38SHATeaj/ZoKHKw==", - "license": "ISC", "dependencies": { "minipass": "^7.0.3" }, @@ -19376,27 +19670,41 @@ } }, "node_modules/minipass-fetch": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-5.0.0.tgz", - "integrity": "sha512-fiCdUALipqgPWrOVTz9fw0XhcazULXOSU6ie40DDbX1F49p1dBrSRBuswndTx1x3vEb/g0FT7vC4c4C2u/mh3A==", - "license": "MIT", + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-5.0.2.tgz", + "integrity": "sha512-2d0q2a8eCi2IRg/IGubCNRJoYbA1+YPXAzQVRFmB45gdGZafyivnZ5YSEfo3JikbjGxOdntGFvBQGqaSMXlAFQ==", "dependencies": { "minipass": "^7.0.3", - "minipass-sized": "^1.0.3", + "minipass-sized": "^2.0.0", "minizlib": "^3.0.1" }, "engines": { "node": "^20.17.0 || >=22.9.0" }, "optionalDependencies": { - "encoding": "^0.1.13" + "iconv-lite": "^0.7.2" + } + }, + "node_modules/minipass-fetch/node_modules/iconv-lite": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.7.2.tgz", + "integrity": "sha512-im9DjEDQ55s9fL4EYzOAv0yMqmMBSZp6G0VvFyTMPKWxiSBHUj9NW/qqLmXUwXrrM7AvqSlTCfvqRb0cM8yYqw==", + "optional": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" } }, "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==", - "license": "ISC", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.7.tgz", + "integrity": "sha512-TbqTz9cUwWyHS2Dy89P3ocAGUGxKjjLuR9z8w4WUTGAVgEj17/4nhgo2Du56i0Fm3Pm30g4iA8Lcqctc76jCzA==", "dependencies": { "minipass": "^3.0.0" }, @@ -19408,7 +19716,6 @@ "version": "3.3.6", "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "license": "ISC", "dependencies": { "yallist": "^4.0.0" }, @@ -19419,14 +19726,12 @@ "node_modules/minipass-flush/node_modules/yallist": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "license": "ISC" + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" }, "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==", - "license": "ISC", "dependencies": { "minipass": "^3.0.0" }, @@ -19438,7 +19743,6 @@ "version": "3.3.6", "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "license": "ISC", "dependencies": { "yallist": "^4.0.0" }, @@ -19449,44 +19753,23 @@ "node_modules/minipass-pipeline/node_modules/yallist": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "license": "ISC" + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" }, "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==", - "license": "ISC", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/minipass-sized/-/minipass-sized-2.0.0.tgz", + "integrity": "sha512-zSsHhto5BcUVM2m1LurnXY6M//cGhVaegT71OfOXoprxT6o780GZd792ea6FfrQkuU4usHZIUczAQMRUE2plzA==", "dependencies": { - "minipass": "^3.0.0" + "minipass": "^7.1.2" }, "engines": { "node": ">=8" } }, - "node_modules/minipass-sized/node_modules/minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "license": "ISC", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/minipass-sized/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "license": "ISC" - }, "node_modules/minizlib": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-3.1.0.tgz", "integrity": "sha512-KZxYo1BUkWD2TVFLr0MQoM8vUUigWD3LlD83a/75BqC+4qE0Hb1Vo5v1FgcfaNXvfXzr+5EhQ6ing/CaBijTlw==", - "license": "MIT", "dependencies": { "minipass": "^7.1.2" }, @@ -19545,11 +19828,10 @@ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" }, "node_modules/msgpackr": { - "version": "1.11.8", - "resolved": "https://registry.npmjs.org/msgpackr/-/msgpackr-1.11.8.tgz", - "integrity": "sha512-bC4UGzHhVvgDNS7kn9tV8fAucIYUBuGojcaLiz7v+P63Lmtm0Xeji8B/8tYKddALXxJLpwIeBmUN3u64C4YkRA==", + "version": "1.11.10", + "resolved": "https://registry.npmjs.org/msgpackr/-/msgpackr-1.11.10.tgz", + "integrity": "sha512-iCZNq+HszvF+fC3anCm4nBmWEnbeIAfpDs6IStAEKhQ2YSgkjzVG2FF9XJqwwQh5bH3N9OUTUt4QwVN6MLMLtA==", "dev": true, - "license": "MIT", "optional": true, "optionalDependencies": { "msgpackr-extract": "^3.0.2" @@ -19561,7 +19843,6 @@ "integrity": "sha512-P0efT1C9jIdVRefqjzOQ9Xml57zpOXnIuS+csaB4MdZbTdmGDLo8XhzBG1N7aO11gKDDkJvBLULeFTo46wwreA==", "dev": true, "hasInstallScript": true, - "license": "MIT", "optional": true, "dependencies": { "node-gyp-build-optional-packages": "5.2.2" @@ -19668,8 +19949,7 @@ "version": "2.6.2", "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/next-tick": { "version": "1.1.0", @@ -19690,19 +19970,18 @@ } }, "node_modules/ng2-charts": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/ng2-charts/-/ng2-charts-8.0.0.tgz", - "integrity": "sha512-nofsNHI2Zt+EAwT+BJBVg0kgOhNo9ukO4CxULlaIi7VwZSr7I1km38kWSoU41Oq6os6qqIh5srnL+CcV+RFPFA==", - "license": "MIT", + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/ng2-charts/-/ng2-charts-10.0.0.tgz", + "integrity": "sha512-mdL75XJrk/0s0YO2ySPQpAHPja85ECDEGNWFlcElJiy/bYliTNGEpeCtctAqZuozTff/E2CwGjyfPFM1ScP2og==", "dependencies": { - "lodash-es": "^4.17.15", + "es-toolkit": "^1.39.7", "tslib": "^2.3.0" }, "peerDependencies": { - "@angular/cdk": ">=19.0.0", - "@angular/common": ">=19.0.0", - "@angular/core": ">=19.0.0", - "@angular/platform-browser": ">=19.0.0", + "@angular/cdk": ">=21.0.0", + "@angular/common": ">=21.0.0", + "@angular/core": ">=21.0.0", + "@angular/platform-browser": ">=21.0.0", "chart.js": "^3.4.0 || ^4.0.0", "rxjs": "^6.5.3 || ^7.4.0" } @@ -19741,33 +20020,22 @@ "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-6.1.0.tgz", "integrity": "sha512-+eawOlIgy680F0kBzPUNFhMZGtJ1YmqM6l4+Crf4IkImjYrO/mqPwRMh352g23uIaQKFItcQ64I7KMaJxHgAVA==", "dev": true, - "license": "MIT", "optional": true }, - "node_modules/node-forge": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.2.tgz", - "integrity": "sha512-6xKiQ+cph9KImrRh0VsjH2d8/GXA4FIMlgU4B757iI1ApvcyA9VlouP0yZJha01V+huImO+kKMU7ih+2+E14fw==", - "dev": true, - "engines": { - "node": ">= 6.13.0" - } - }, "node_modules/node-gyp": { - "version": "12.1.0", - "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-12.1.0.tgz", - "integrity": "sha512-W+RYA8jBnhSr2vrTtlPYPc1K+CSjGpVDRZxcqJcERZ8ND3A1ThWPHRwctTx3qC3oW99jt726jhdz3Y6ky87J4g==", - "license": "MIT", + "version": "12.3.0", + "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-12.3.0.tgz", + "integrity": "sha512-QNcUWM+HgJplcPzBvFBZ9VXacyGZ4+VTOb80PwWR+TlVzoHbRKULNEzpRsnaoxG3Wzr7Qh7BYxGDU3CbKib2Yg==", "dependencies": { "env-paths": "^2.2.0", "exponential-backoff": "^3.1.1", "graceful-fs": "^4.2.6", - "make-fetch-happen": "^15.0.0", "nopt": "^9.0.0", "proc-log": "^6.0.0", "semver": "^7.3.5", - "tar": "^7.5.2", + "tar": "^7.5.4", "tinyglobby": "^0.2.12", + "undici": "^6.25.0", "which": "^6.0.0" }, "bin": { @@ -19782,7 +20050,6 @@ "resolved": "https://registry.npmjs.org/node-gyp-build-optional-packages/-/node-gyp-build-optional-packages-5.2.2.tgz", "integrity": "sha512-s+w+rBWnpTMwSFbaE0UXsRlg7hU4FjekKU4eyAih5T8nJuNZT1nNsskXpxmeqSK9UzkBl6UgRlnKc8hz8IEqOw==", "dev": true, - "license": "MIT", "optional": true, "dependencies": { "detect-libc": "^2.0.1" @@ -19794,21 +20061,27 @@ } }, "node_modules/node-gyp/node_modules/isexe": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz", - "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==", - "license": "ISC", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-4.0.0.tgz", + "integrity": "sha512-FFUtZMpoZ8RqHS3XeXEmHWLA4thH+ZxCv2lOiPIn1Xc7CxrqhWzNSDzD+/chS/zbYezmiwWLdQC09JdQKmthOw==", "engines": { - "node": ">=16" + "node": ">=20" + } + }, + "node_modules/node-gyp/node_modules/undici": { + "version": "6.25.0", + "resolved": "https://registry.npmjs.org/undici/-/undici-6.25.0.tgz", + "integrity": "sha512-ZgpWDC5gmNiuY9CnLVXEH8rl50xhRCuLNA97fAUnKi8RRuV4E6KG31pDTsLVUKnohJE0I3XDrTeEydAXRw47xg==", + "engines": { + "node": ">=18.17" } }, "node_modules/node-gyp/node_modules/which": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/which/-/which-6.0.0.tgz", - "integrity": "sha512-f+gEpIKMR9faW/JgAgPK1D7mekkFoqbmiwvNzuhsHetni20QSgzg9Vhn0g2JSJkkfehQnqdUAx7/e15qS1lPxg==", - "license": "ISC", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/which/-/which-6.0.1.tgz", + "integrity": "sha512-oGLe46MIrCRqX7ytPUf66EAYvdeMIZYn3WaocqqKZAxrBpkqHfL/qvTyJ/bTk5+AqHCjXmrv3CEWgy368zhRUg==", "dependencies": { - "isexe": "^3.1.1" + "isexe": "^4.0.0" }, "bin": { "node-which": "bin/which.js" @@ -19827,7 +20100,6 @@ "version": "9.0.0", "resolved": "https://registry.npmjs.org/nopt/-/nopt-9.0.0.tgz", "integrity": "sha512-Zhq3a+yFKrYwSBluL4H9XP3m3y5uvQkB/09CwDruCiRmR/UJYnn9W4R48ry0uGC70aeTPKLynBtscP9efFFcPw==", - "license": "ISC", "dependencies": { "abbrev": "^4.0.0" }, @@ -19851,7 +20123,6 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-5.0.0.tgz", "integrity": "sha512-JLSpbzh6UUXIEoqPsYBvVNVmyrjVZ1fzEFbqxKkTJQkWBO3xFzFT+KDnSKQWwOQNbuWRwt5LSD6HOTLGIWzfrw==", - "license": "ISC", "dependencies": { "npm-normalize-package-bin": "^5.0.0" }, @@ -19863,7 +20134,6 @@ "version": "8.0.0", "resolved": "https://registry.npmjs.org/npm-install-checks/-/npm-install-checks-8.0.0.tgz", "integrity": "sha512-ScAUdMpyzkbpxoNekQ3tNRdFI8SJ86wgKZSQZdUxT+bj0wVFpsEMWnkXP0twVe1gJyNF5apBWDJhhIbgrIViRA==", - "license": "BSD-2-Clause", "dependencies": { "semver": "^7.1.1" }, @@ -19875,7 +20145,6 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-5.0.0.tgz", "integrity": "sha512-CJi3OS4JLsNMmr2u07OJlhcrPxCeOeP/4xq67aWNai6TNWWbTrlNDgl8NcFKVlcBKp18GPj+EzbNIgrBfZhsag==", - "license": "ISC", "engines": { "node": "^20.17.0 || >=22.9.0" } @@ -19884,7 +20153,6 @@ "version": "13.0.2", "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-13.0.2.tgz", "integrity": "sha512-IciCE3SY3uE84Ld8WZU23gAPPV9rIYod4F+rc+vJ7h7cwAJt9Vk6TVsK60ry7Uj3SRS3bqRRIGuTp9YVlk6WNA==", - "license": "ISC", "dependencies": { "hosted-git-info": "^9.0.0", "proc-log": "^6.0.0", @@ -19896,10 +20164,9 @@ } }, "node_modules/npm-packlist": { - "version": "10.0.3", - "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-10.0.3.tgz", - "integrity": "sha512-zPukTwJMOu5X5uvm0fztwS5Zxyvmk38H/LfidkOMt3gbZVCyro2cD/ETzwzVPcWZA3JOyPznfUN/nkyFiyUbxg==", - "license": "ISC", + "version": "10.0.4", + "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-10.0.4.tgz", + "integrity": "sha512-uMW73iajD8hiH4ZBxEV3HC+eTnppIqwakjOYuvgddnalIw2lJguKviK1pcUJDlIWm1wSJkchpDZDSVVsZEYRng==", "dependencies": { "ignore-walk": "^8.0.0", "proc-log": "^6.0.0" @@ -19912,7 +20179,6 @@ "version": "11.0.3", "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-11.0.3.tgz", "integrity": "sha512-buzyCfeoGY/PxKqmBqn1IUJrZnUi1VVJTdSSRPGI60tJdUhUoSQFhs0zycJokDdOznQentgrpf8LayEHyyYlqQ==", - "license": "ISC", "dependencies": { "npm-install-checks": "^8.0.0", "npm-normalize-package-bin": "^5.0.0", @@ -19927,7 +20193,6 @@ "version": "19.1.1", "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-19.1.1.tgz", "integrity": "sha512-TakBap6OM1w0H73VZVDf44iFXsOS3h+L4wVMXmbWOQroZgFhMch0juN6XSzBNlD965yIKvWg2dfu7NSiaYLxtw==", - "license": "ISC", "dependencies": { "@npmcli/redact": "^4.0.0", "jsonparse": "^1.3.1", @@ -20099,6 +20364,17 @@ "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==", "dev": true }, + "node_modules/obug": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/obug/-/obug-2.1.1.tgz", + "integrity": "sha512-uTqF9MuPraAQ+IsnPf366RG4cP9RtUi7MLO1N3KEc+wb0a6yKpeL0lmk2IB1jY5KHPAlTc6T/JRdC/YqxHNwkQ==", + "dev": true, + "funding": [ + "https://github.com/sponsors/sxzz", + "https://opencollective.com/debug" + ], + "license": "MIT" + }, "node_modules/on-finished": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", @@ -20188,10 +20464,9 @@ } }, "node_modules/openapi-explorer": { - "version": "2.4.788", - "resolved": "https://registry.npmjs.org/openapi-explorer/-/openapi-explorer-2.4.788.tgz", - "integrity": "sha512-463tX2LYtyYJ8Jwgpi2U/Dan7rwfLZm+Ev8K/VZ01O84vyDpo14146jhnJnaMeU9tzmpPNmXrEiK609M1WeAVw==", - "license": "Apache-2.0", + "version": "2.4.793", + "resolved": "https://registry.npmjs.org/openapi-explorer/-/openapi-explorer-2.4.793.tgz", + "integrity": "sha512-6dT+8tKRPKFtfeYsyr5Jkq20H04eZKBXA6t93kofym0DLnpK4Mr/JT7Bv2aGFd5h3MyFOjrLpfNvq7x6oHvNaA==", "dependencies": { "@authress/login": "^2.0", "base64url": "^3.0.1", @@ -20207,6 +20482,7 @@ "openapi-resolver": "^4.1.71", "prismjs": "^1.29.0", "randexp": "^0.5.3", + "toposort": "^2.0.2", "xml-but-prettier": "^1.0.1" }, "engines": { @@ -20370,7 +20646,6 @@ "resolved": "https://registry.npmjs.org/ordered-binary/-/ordered-binary-1.6.1.tgz", "integrity": "sha512-QkCdPooczexPLiXIrbVOPYkR3VO3T6v2OyKRkR1Xbhpy7/LAVXwahnRCgRp78Oe/Ehf0C/HATAxfSr6eA1oX+w==", "dev": true, - "license": "MIT", "optional": true }, "node_modules/orderedmap": { @@ -20430,7 +20705,6 @@ "version": "7.0.4", "resolved": "https://registry.npmjs.org/p-map/-/p-map-7.0.4.tgz", "integrity": "sha512-tkAQEw8ysMzmkhgw8k+1U/iPhWNhykKnSk4Rd5zLoPJCuJaGRPo6YposrZgaxHKzDHdDWWZvE/Sk7hsL2X/CpQ==", - "license": "MIT", "engines": { "node": ">=18" }, @@ -20465,10 +20739,9 @@ } }, "node_modules/pacote": { - "version": "21.0.4", - "resolved": "https://registry.npmjs.org/pacote/-/pacote-21.0.4.tgz", - "integrity": "sha512-RplP/pDW0NNNDh3pnaoIWYPvNenS7UqMbXyvMqJczosiFWTeGGwJC2NQBLqKf4rGLFfwCOnntw1aEp9Jiqm1MA==", - "license": "ISC", + "version": "21.3.1", + "resolved": "https://registry.npmjs.org/pacote/-/pacote-21.3.1.tgz", + "integrity": "sha512-O0EDXi85LF4AzdjG74GUwEArhdvawi/YOHcsW6IijKNj7wm8IvEWNF5GnfuxNpQ/ZpO3L37+v8hqdVh8GgWYhg==", "dependencies": { "@npmcli/git": "^7.0.0", "@npmcli/installed-package-contents": "^4.0.0", @@ -20664,7 +20937,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==" + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true }, "node_modules/path-to-regexp": { "version": "0.1.13", @@ -20672,6 +20946,13 @@ "integrity": "sha512-A/AGNMFN3c8bOlvV9RreMdrv7jsmF9XIfDeCd87+I8RNg6s78BhJxMu69NEMHBSJFxKidViTEdruRwEk/WIKqA==", "dev": true }, + "node_modules/pathe": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz", + "integrity": "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==", + "dev": true, + "license": "MIT" + }, "node_modules/picocolors": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", @@ -20695,6 +20976,7 @@ "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", "dev": true, + "optional": true, "engines": { "node": ">=6" } @@ -20720,6 +21002,23 @@ "node": ">=16.20.0" } }, + "node_modules/pkijs": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/pkijs/-/pkijs-3.4.0.tgz", + "integrity": "sha512-emEcLuomt2j03vxD54giVB4SxTjnsqkU692xZOZXHDVoYyypEm+b3jpiTcc+Cf+myooc+/Ly0z01jqeNHVgJGw==", + "dev": true, + "dependencies": { + "@noble/hashes": "1.4.0", + "asn1js": "^3.0.6", + "bytestreamjs": "^2.0.1", + "pvtsutils": "^1.3.6", + "pvutils": "^1.1.3", + "tslib": "^2.8.1" + }, + "engines": { + "node": ">=16.0.0" + } + }, "node_modules/portfinder": { "version": "1.0.32", "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.32.tgz", @@ -20759,9 +21058,9 @@ } }, "node_modules/postcss": { - "version": "8.5.6", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz", - "integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==", + "version": "8.5.12", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.12.tgz", + "integrity": "sha512-W62t/Se6rA0Az3DfCL0AqJwXuKwBeYg6nOaIgzP+xZ7N5BFCI7DYi1qs6ygUYT6rvfi6t9k65UMLJC+PHZpDAA==", "dev": true, "funding": [ { @@ -20883,10 +21182,36 @@ "postcss": "^8.1.0" } }, + "node_modules/postcss-safe-parser": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/postcss-safe-parser/-/postcss-safe-parser-7.0.1.tgz", + "integrity": "sha512-0AioNCJZ2DPYz5ABT6bddIqlhgwhpHZ/l65YAYo0BCIn0xiDpsnTHz0gnoTGk0OXZW0JRs+cDwL8u/teRdz+8A==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss-safe-parser" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "engines": { + "node": ">=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, "node_modules/postcss-selector-parser": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.0.tgz", - "integrity": "sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.1.tgz", + "integrity": "sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg==", "dev": true, "dependencies": { "cssesc": "^3.0.0", @@ -20946,7 +21271,6 @@ "version": "6.1.0", "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-6.1.0.tgz", "integrity": "sha512-iG+GYldRf2BQ0UDUAd6JQ/RwzaQy6mXmsk/IzlYyal4A4SNFw54MeH4/tLkF4I5WoWG9SQwuqWzS99jaFQHBuQ==", - "license": "ISC", "engines": { "node": "^20.17.0 || >=22.9.0" } @@ -20961,7 +21285,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz", "integrity": "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==", - "license": "MIT", "dependencies": { "err-code": "^2.0.2", "retry": "^0.12.0" @@ -21274,10 +21597,11 @@ "optional": true }, "node_modules/punycode": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", - "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } @@ -21291,13 +21615,22 @@ "node": ">=6" } }, - "node_modules/qjobs": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/qjobs/-/qjobs-1.2.0.tgz", - "integrity": "sha512-8YOJEHtxpySA3fFDyCRxA+UUV+fA+rTWnuWvylOK/NCjhY+b4ocCtmu8TtsWb+mYeU+GCHf/S66KZF/AsteKHg==", + "node_modules/pvtsutils": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/pvtsutils/-/pvtsutils-1.3.6.tgz", + "integrity": "sha512-PLgQXQ6H2FWCaeRak8vvk1GW462lMxB5s3Jm673N82zI4vqtVUPuZdffdZbPDFRoU8kAhItWFtPCWiPpp4/EDg==", + "dev": true, + "dependencies": { + "tslib": "^2.8.1" + } + }, + "node_modules/pvutils": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/pvutils/-/pvutils-1.1.5.tgz", + "integrity": "sha512-KTqnxsgGiQ6ZAzZCVlJH5eOjSnvlyEgx1m8bkRJfOhmGRqfo5KLvmAlACQkrjEtOQ4B7wF9TdSLIs9O90MX9xA==", "dev": true, "engines": { - "node": ">=0.9" + "node": ">=16.0.0" } }, "node_modules/qr-creator": { @@ -21332,15 +21665,6 @@ "node": ">=4" } }, - "node_modules/randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "dev": true, - "dependencies": { - "safe-buffer": "^5.1.0" - } - }, "node_modules/range-parser": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", @@ -21365,54 +21689,23 @@ "node": ">= 0.8" } }, - "node_modules/raw-body/node_modules/http-errors": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.1.tgz", - "integrity": "sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "depd": "~2.0.0", - "inherits": "~2.0.4", - "setprototypeof": "~1.2.0", - "statuses": "~2.0.2", - "toidentifier": "~1.0.1" - }, - "engines": { - "node": ">= 0.8" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/express" - } - }, - "node_modules/raw-body/node_modules/statuses": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.2.tgz", - "integrity": "sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, "node_modules/react": { - "version": "19.2.4", - "resolved": "https://registry.npmjs.org/react/-/react-19.2.4.tgz", - "integrity": "sha512-9nfp2hYpCwOjAN+8TZFGhtWEwgvWHXqESH8qT89AT/lWklpLON22Lc8pEtnpsZz7VmawabSU0gCjnj8aC0euHQ==", + "version": "19.2.5", + "resolved": "https://registry.npmjs.org/react/-/react-19.2.5.tgz", + "integrity": "sha512-llUJLzz1zTUBrskt2pwZgLq59AemifIftw4aB7JxOqf1HY2FDaGDxgwpAPVzHU1kdWabH7FauP4i1oEeer2WCA==", "engines": { "node": ">=0.10.0" } }, "node_modules/react-dom": { - "version": "19.2.4", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.2.4.tgz", - "integrity": "sha512-AXJdLo8kgMbimY95O2aKQqsz2iWi9jMgKJhRBAxECE4IFxfcazB2LmzloIoibJI3C12IlY20+KFaLv+71bUJeQ==", + "version": "19.2.5", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.2.5.tgz", + "integrity": "sha512-J5bAZz+DXMMwW/wV3xzKke59Af6CHY7G4uYLN1OvBcKEsWOs4pQExj86BBKamxl/Ik5bx9whOrvBlSDfWzgSag==", "dependencies": { "scheduler": "^0.27.0" }, "peerDependencies": { - "react": "^19.2.4" + "react": "^19.2.5" } }, "node_modules/react-i18next": { @@ -21617,15 +21910,13 @@ "version": "1.4.2", "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/regenerate-unicode-properties": { "version": "10.2.2", "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.2.2.tgz", "integrity": "sha512-m03P+zhBeQd1RGnYxrGyDAPpWX/epKirLrp8e3qevZdVkKtnCrjjWczIbYc8+xd6vcTStVlqfycTx1KR4LOr0g==", "dev": true, - "license": "MIT", "dependencies": { "regenerate": "^1.4.2" }, @@ -21664,7 +21955,6 @@ "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-6.4.0.tgz", "integrity": "sha512-0ghuzq67LI9bLXpOX/ISfve/Mq33a4aFRzoQYhnnok1JOFpmE/A2TBGkNVenOGEeSBCjIiWcc6MVOG5HEQv0sA==", "dev": true, - "license": "MIT", "dependencies": { "regenerate": "^1.4.2", "regenerate-unicode-properties": "^10.2.2", @@ -21681,15 +21971,13 @@ "version": "0.8.0", "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.8.0.tgz", "integrity": "sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/regjsparser": { - "version": "0.13.0", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.13.0.tgz", - "integrity": "sha512-NZQZdC5wOE/H3UT28fVGL+ikOZcEzfMGk/c3iN9UGxzWHMa1op7274oyiUVrAG4B2EuFhus8SvkaYnhvW92p9Q==", + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.13.1.tgz", + "integrity": "sha512-dLsljMd9sqwRkby8zhO1gSg3PnJIBFid8f4CQj/sXx+7cKx+E7u0PKhZ+U4wmhx7EfmtvnA318oVaIkAB1lRJw==", "dev": true, - "license": "BSD-2-Clause", "dependencies": { "jsesc": "~3.1.0" }, @@ -21873,6 +22161,7 @@ "version": "1.22.11", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.11.tgz", "integrity": "sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ==", + "dev": true, "license": "MIT", "dependencies": { "is-core-module": "^2.16.1", @@ -21993,7 +22282,6 @@ "version": "0.12.0", "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==", - "license": "MIT", "engines": { "node": ">= 4" } @@ -22003,50 +22291,14 @@ "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.4.1.tgz", "integrity": "sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==" }, - "node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/rimraf/node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/rolldown": { - "version": "1.0.0-beta.58", - "resolved": "https://registry.npmjs.org/rolldown/-/rolldown-1.0.0-beta.58.tgz", - "integrity": "sha512-v1FCjMZCan7f+xGAHBi+mqiE4MlH7I+SXEHSQSJoMOGNNB2UYtvMiejsq9YuUOiZjNeUeV/a21nSFbrUR+4ZCQ==", + "version": "1.0.0-rc.4", + "resolved": "https://registry.npmjs.org/rolldown/-/rolldown-1.0.0-rc.4.tgz", + "integrity": "sha512-V2tPDUrY3WSevrvU2E41ijZlpF+5PbZu4giH+VpNraaadsJGHa4fR6IFwsocVwEXDoAdIv5qgPPxgrvKAOIPtA==", "dev": true, - "license": "MIT", "dependencies": { - "@oxc-project/types": "=0.106.0", - "@rolldown/pluginutils": "1.0.0-beta.58" + "@oxc-project/types": "=0.113.0", + "@rolldown/pluginutils": "1.0.0-rc.4" }, "bin": { "rolldown": "bin/cli.mjs" @@ -22055,25 +22307,25 @@ "node": "^20.19.0 || >=22.12.0" }, "optionalDependencies": { - "@rolldown/binding-android-arm64": "1.0.0-beta.58", - "@rolldown/binding-darwin-arm64": "1.0.0-beta.58", - "@rolldown/binding-darwin-x64": "1.0.0-beta.58", - "@rolldown/binding-freebsd-x64": "1.0.0-beta.58", - "@rolldown/binding-linux-arm-gnueabihf": "1.0.0-beta.58", - "@rolldown/binding-linux-arm64-gnu": "1.0.0-beta.58", - "@rolldown/binding-linux-arm64-musl": "1.0.0-beta.58", - "@rolldown/binding-linux-x64-gnu": "1.0.0-beta.58", - "@rolldown/binding-linux-x64-musl": "1.0.0-beta.58", - "@rolldown/binding-openharmony-arm64": "1.0.0-beta.58", - "@rolldown/binding-wasm32-wasi": "1.0.0-beta.58", - "@rolldown/binding-win32-arm64-msvc": "1.0.0-beta.58", - "@rolldown/binding-win32-x64-msvc": "1.0.0-beta.58" + "@rolldown/binding-android-arm64": "1.0.0-rc.4", + "@rolldown/binding-darwin-arm64": "1.0.0-rc.4", + "@rolldown/binding-darwin-x64": "1.0.0-rc.4", + "@rolldown/binding-freebsd-x64": "1.0.0-rc.4", + "@rolldown/binding-linux-arm-gnueabihf": "1.0.0-rc.4", + "@rolldown/binding-linux-arm64-gnu": "1.0.0-rc.4", + "@rolldown/binding-linux-arm64-musl": "1.0.0-rc.4", + "@rolldown/binding-linux-x64-gnu": "1.0.0-rc.4", + "@rolldown/binding-linux-x64-musl": "1.0.0-rc.4", + "@rolldown/binding-openharmony-arm64": "1.0.0-rc.4", + "@rolldown/binding-wasm32-wasi": "1.0.0-rc.4", + "@rolldown/binding-win32-arm64-msvc": "1.0.0-rc.4", + "@rolldown/binding-win32-x64-msvc": "1.0.0-rc.4" } }, "node_modules/rollup": { - "version": "4.59.0", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.59.0.tgz", - "integrity": "sha512-2oMpl67a3zCH9H79LeMcbDhXW/UmWG/y2zuqnF2jQq5uq9TbM9TVyXvA4+t+ne2IIkBdrLpAaRQAvo7YI/Yyeg==", + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.60.2.tgz", + "integrity": "sha512-J9qZyW++QK/09NyN/zeO0dG/1GdGfyp9lV8ajHnRVLfo/uFsbji5mHnDgn/qYdUHyCkM2N+8VyspgZclfAh0eQ==", "dev": true, "dependencies": { "@types/estree": "1.0.8" @@ -22086,31 +22338,31 @@ "npm": ">=8.0.0" }, "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.59.0", - "@rollup/rollup-android-arm64": "4.59.0", - "@rollup/rollup-darwin-arm64": "4.59.0", - "@rollup/rollup-darwin-x64": "4.59.0", - "@rollup/rollup-freebsd-arm64": "4.59.0", - "@rollup/rollup-freebsd-x64": "4.59.0", - "@rollup/rollup-linux-arm-gnueabihf": "4.59.0", - "@rollup/rollup-linux-arm-musleabihf": "4.59.0", - "@rollup/rollup-linux-arm64-gnu": "4.59.0", - "@rollup/rollup-linux-arm64-musl": "4.59.0", - "@rollup/rollup-linux-loong64-gnu": "4.59.0", - "@rollup/rollup-linux-loong64-musl": "4.59.0", - "@rollup/rollup-linux-ppc64-gnu": "4.59.0", - "@rollup/rollup-linux-ppc64-musl": "4.59.0", - "@rollup/rollup-linux-riscv64-gnu": "4.59.0", - "@rollup/rollup-linux-riscv64-musl": "4.59.0", - "@rollup/rollup-linux-s390x-gnu": "4.59.0", - "@rollup/rollup-linux-x64-gnu": "4.59.0", - "@rollup/rollup-linux-x64-musl": "4.59.0", - "@rollup/rollup-openbsd-x64": "4.59.0", - "@rollup/rollup-openharmony-arm64": "4.59.0", - "@rollup/rollup-win32-arm64-msvc": "4.59.0", - "@rollup/rollup-win32-ia32-msvc": "4.59.0", - "@rollup/rollup-win32-x64-gnu": "4.59.0", - "@rollup/rollup-win32-x64-msvc": "4.59.0", + "@rollup/rollup-android-arm-eabi": "4.60.2", + "@rollup/rollup-android-arm64": "4.60.2", + "@rollup/rollup-darwin-arm64": "4.60.2", + "@rollup/rollup-darwin-x64": "4.60.2", + "@rollup/rollup-freebsd-arm64": "4.60.2", + "@rollup/rollup-freebsd-x64": "4.60.2", + "@rollup/rollup-linux-arm-gnueabihf": "4.60.2", + "@rollup/rollup-linux-arm-musleabihf": "4.60.2", + "@rollup/rollup-linux-arm64-gnu": "4.60.2", + "@rollup/rollup-linux-arm64-musl": "4.60.2", + "@rollup/rollup-linux-loong64-gnu": "4.60.2", + "@rollup/rollup-linux-loong64-musl": "4.60.2", + "@rollup/rollup-linux-ppc64-gnu": "4.60.2", + "@rollup/rollup-linux-ppc64-musl": "4.60.2", + "@rollup/rollup-linux-riscv64-gnu": "4.60.2", + "@rollup/rollup-linux-riscv64-musl": "4.60.2", + "@rollup/rollup-linux-s390x-gnu": "4.60.2", + "@rollup/rollup-linux-x64-gnu": "4.60.2", + "@rollup/rollup-linux-x64-musl": "4.60.2", + "@rollup/rollup-openbsd-x64": "4.60.2", + "@rollup/rollup-openharmony-arm64": "4.60.2", + "@rollup/rollup-win32-arm64-msvc": "4.60.2", + "@rollup/rollup-win32-ia32-msvc": "4.60.2", + "@rollup/rollup-win32-x64-gnu": "4.60.2", + "@rollup/rollup-win32-x64-msvc": "4.60.2", "fsevents": "~2.3.2" } }, @@ -22201,10 +22453,24 @@ } }, "node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "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/safe-push-apply": { "version": "1.0.0", @@ -22245,11 +22511,10 @@ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, "node_modules/sass": { - "version": "1.97.1", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.97.1.tgz", - "integrity": "sha512-uf6HoO8fy6ClsrShvMgaKUn14f2EHQLQRtpsZZLeU/Mv0Q1K5P0+x2uvH6Cub39TVVbWNSrraUhDAoFph6vh0A==", + "version": "1.97.3", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.97.3.tgz", + "integrity": "sha512-fDz1zJpd5GycprAbu4Q2PV/RprsRtKC/0z82z0JLgdytmcq0+ujJbJ/09bPGDxCLkKY3Np5cRAOcWiVkLXJURg==", "dev": true, - "license": "MIT", "dependencies": { "chokidar": "^4.0.0", "immutable": "^5.0.2", @@ -22266,11 +22531,10 @@ } }, "node_modules/sass-loader": { - "version": "16.0.6", - "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-16.0.6.tgz", - "integrity": "sha512-sglGzId5gmlfxNs4gK2U3h7HlVRfx278YK6Ono5lwzuvi1jxig80YiuHkaDBVsYIKFhx8wN7XSCI0M2IDS/3qA==", + "version": "16.0.7", + "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-16.0.7.tgz", + "integrity": "sha512-w6q+fRHourZ+e+xA1kcsF27iGM6jdB8teexYCfdUw0sYgcDNeZESnDNT9sUmmPm3ooziwUJXGwZJSTF3kOdBfA==", "dev": true, - "license": "MIT", "dependencies": { "neo-async": "^2.6.2" }, @@ -22282,7 +22546,7 @@ "url": "https://opencollective.com/webpack" }, "peerDependencies": { - "@rspack/core": "0.x || 1.x", + "@rspack/core": "0.x || ^1.0.0 || ^2.0.0-0", "node-sass": "^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0 || ^9.0.0", "sass": "^1.3.0", "sass-embedded": "*", @@ -22311,7 +22575,6 @@ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz", "integrity": "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==", "dev": true, - "license": "MIT", "dependencies": { "readdirp": "^4.0.1" }, @@ -22327,7 +22590,6 @@ "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz", "integrity": "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==", "dev": true, - "license": "MIT", "engines": { "node": ">= 14.18.0" }, @@ -22347,51 +22609,24 @@ "node": ">=11.0.0" } }, + "node_modules/saxes": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/saxes/-/saxes-6.0.0.tgz", + "integrity": "sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==", + "dev": true, + "license": "ISC", + "dependencies": { + "xmlchars": "^2.2.0" + }, + "engines": { + "node": ">=v12.22.7" + } + }, "node_modules/scheduler": { "version": "0.27.0", "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.27.0.tgz", "integrity": "sha512-eNv+WrVbKu1f3vbYJT/xtiF5syA5HPIMtf9IgY/nKg0sWqzAUEvqY/xm7OcZc/qafLx/iO9FgOmeSAp4v5ti/Q==" }, - "node_modules/schema-utils": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz", - "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==", - "dev": true, - "dependencies": { - "@types/json-schema": "^7.0.5", - "ajv": "^6.12.4", - "ajv-keywords": "^3.5.2" - }, - "engines": { - "node": ">= 8.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/schema-utils/node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/schema-utils/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/screenfull": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/screenfull/-/screenfull-6.0.2.tgz", @@ -22415,16 +22650,16 @@ "dev": true }, "node_modules/selfsigned": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.4.1.tgz", - "integrity": "sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-5.5.0.tgz", + "integrity": "sha512-ftnu3TW4+3eBfLRFnDEkzGxSF/10BJBkaLJuBHZX0kiPS7bRdlpZGu6YGt4KngMkdTwJE6MbjavFpqHvqVt+Ew==", "dev": true, "dependencies": { - "@types/node-forge": "^1.3.0", - "node-forge": "^1" + "@peculiar/x509": "^1.14.2", + "pkijs": "^3.3.3" }, "engines": { - "node": ">=10" + "node": ">=18" } }, "node_modules/semver": { @@ -22440,24 +22675,24 @@ } }, "node_modules/send": { - "version": "0.19.0", - "resolved": "https://registry.npmjs.org/send/-/send-0.19.0.tgz", - "integrity": "sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==", + "version": "0.19.2", + "resolved": "https://registry.npmjs.org/send/-/send-0.19.2.tgz", + "integrity": "sha512-VMbMxbDeehAxpOtWJXlcUS5E8iXh6QmN+BkRX1GARS3wRaXEEgzCcB10gTQazO42tpNIya8xIyNx8fll1OFPrg==", "dev": true, "dependencies": { "debug": "2.6.9", "depd": "2.0.0", "destroy": "1.2.0", - "encodeurl": "~1.0.2", + "encodeurl": "~2.0.0", "escape-html": "~1.0.3", "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "2.0.0", + "fresh": "~0.5.2", + "http-errors": "~2.0.1", "mime": "1.6.0", "ms": "2.1.3", - "on-finished": "2.4.1", + "on-finished": "~2.4.1", "range-parser": "~1.2.1", - "statuses": "2.0.1" + "statuses": "~2.0.2" }, "engines": { "node": ">= 0.8.0" @@ -22478,6 +22713,15 @@ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", "dev": true }, + "node_modules/send/node_modules/encodeurl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", + "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, "node_modules/send/node_modules/mime": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", @@ -22491,30 +22735,34 @@ } }, "node_modules/serialize-javascript": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz", - "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==", + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-7.0.5.tgz", + "integrity": "sha512-F4LcB0UqUl1zErq+1nYEEzSHJnIwb3AF2XWB94b+afhrekOUijwooAYqFyRbjYkm2PAKBabx6oYv/xDxNi8IBw==", "dev": true, - "dependencies": { - "randombytes": "^2.1.0" + "engines": { + "node": ">=20.0.0" } }, "node_modules/serve-index": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", - "integrity": "sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==", + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.2.tgz", + "integrity": "sha512-KDj11HScOaLmrPxl70KYNW1PksP4Nb/CLL2yvC+Qd2kHMPEEpfc4Re2e4FOay+bC/+XQl/7zAcWON3JVo5v3KQ==", "dev": true, "dependencies": { - "accepts": "~1.3.4", + "accepts": "~1.3.8", "batch": "0.6.1", "debug": "2.6.9", "escape-html": "~1.0.3", - "http-errors": "~1.6.2", - "mime-types": "~2.1.17", - "parseurl": "~1.3.2" + "http-errors": "~1.8.0", + "mime-types": "~2.1.35", + "parseurl": "~1.3.3" }, "engines": { "node": ">= 0.8.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" } }, "node_modules/serve-index/node_modules/debug": { @@ -22536,38 +22784,27 @@ } }, "node_modules/serve-index/node_modules/http-errors": { - "version": "1.6.3", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", - "integrity": "sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==", + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz", + "integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==", "dev": true, "dependencies": { "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.0", - "statuses": ">= 1.4.0 < 2" + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.1" }, "engines": { "node": ">= 0.6" } }, - "node_modules/serve-index/node_modules/inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", - "dev": true - }, "node_modules/serve-index/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", "dev": true }, - "node_modules/serve-index/node_modules/setprototypeof": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", - "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", - "dev": true - }, "node_modules/serve-index/node_modules/statuses": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", @@ -22578,15 +22815,15 @@ } }, "node_modules/serve-static": { - "version": "1.16.2", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.2.tgz", - "integrity": "sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==", + "version": "1.16.3", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.3.tgz", + "integrity": "sha512-x0RTqQel6g5SY7Lg6ZreMmsOzncHFU7nhnRWkKgWuMTu5NN0DR5oruckMqRvacAN9d5w6ARnRBXl9xhDCgfMeA==", "dev": true, "dependencies": { "encodeurl": "~2.0.0", "escape-html": "~1.0.3", "parseurl": "~1.3.3", - "send": "0.19.0" + "send": "~0.19.1" }, "engines": { "node": ">= 0.8.0" @@ -22769,11 +23006,17 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/siginfo": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/siginfo/-/siginfo-2.0.0.tgz", + "integrity": "sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==", + "dev": true, + "license": "ISC" + }, "node_modules/sigstore": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/sigstore/-/sigstore-4.1.0.tgz", "integrity": "sha512-/fUgUhYghuLzVT/gaJoeVehLCgZiUxPCPMcyVNY0lIf/cTCz58K/WTI7PefDarXxp9nUKpEwg1yyz3eSBMTtgA==", - "license": "Apache-2.0", "dependencies": { "@sigstore/bundle": "^4.0.0", "@sigstore/core": "^3.1.0", @@ -22848,55 +23091,11 @@ "version": "4.2.0", "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", - "license": "MIT", "engines": { "node": ">= 6.0.0", "npm": ">= 3.0.0" } }, - "node_modules/socket.io": { - "version": "4.8.1", - "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.8.1.tgz", - "integrity": "sha512-oZ7iUCxph8WYRHHcjBEc9unw3adt5CmSNlppj/5Q4k2RIrhl8Z5yY2Xr4j9zj0+wzVZ0bxmYoGSzKJnRl6A4yg==", - "dev": true, - "license": "MIT", - "dependencies": { - "accepts": "~1.3.4", - "base64id": "~2.0.0", - "cors": "~2.8.5", - "debug": "~4.3.2", - "engine.io": "~6.6.0", - "socket.io-adapter": "~2.5.2", - "socket.io-parser": "~4.2.4" - }, - "engines": { - "node": ">=10.2.0" - } - }, - "node_modules/socket.io-adapter": { - "version": "2.5.5", - "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.5.5.tgz", - "integrity": "sha512-eLDQas5dzPgOWCk9GuuJC2lBqItuhKI4uxGgo9aIV7MYbk2h9Q6uULEh8WBzThoI7l+qU9Ast9fVUmkqPP9wYg==", - "dev": true, - "license": "MIT", - "dependencies": { - "debug": "~4.3.4", - "ws": "~8.17.1" - } - }, - "node_modules/socket.io-parser": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.2.4.tgz", - "integrity": "sha512-/GbIKmo8ioc+NIWIhwdecY0ge+qVBSMdgxGygevmdHj24bsfgtCmcUUcQ5ZzcylGFHsN3k4HB4Cgkl96KVnuew==", - "dev": true, - "dependencies": { - "@socket.io/component-emitter": "~3.1.0", - "debug": "~4.3.1" - }, - "engines": { - "node": ">=10.0.0" - } - }, "node_modules/sockjs": { "version": "0.3.24", "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.24.tgz", @@ -22921,7 +23120,6 @@ "version": "2.8.7", "resolved": "https://registry.npmjs.org/socks/-/socks-2.8.7.tgz", "integrity": "sha512-HLpt+uLy/pxB+bum/9DzAgiKS8CX1EvbWxI4zlmgGCExImLdiad2iCwXT5Z4c9c3Eq8rP2318mPW2c+QbtjK8A==", - "license": "MIT", "dependencies": { "ip-address": "^10.0.1", "smart-buffer": "^4.2.0" @@ -22935,7 +23133,6 @@ "version": "8.0.5", "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.5.tgz", "integrity": "sha512-HehCEsotFqbPW9sJ8WVYB6UbmIMv7kUUORIF2Nncq4VQvBfNBLibW9YZR5dlYCSUhwcD628pRllm7n+E+YTzJw==", - "license": "MIT", "dependencies": { "agent-base": "^7.1.2", "debug": "^4.3.4", @@ -23137,37 +23334,24 @@ "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/spdx-correct": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", - "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", - "license": "Apache-2.0", - "dependencies": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" - } - }, "node_modules/spdx-exceptions": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz", - "integrity": "sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==", - "license": "CC-BY-3.0" + "integrity": "sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==" }, "node_modules/spdx-expression-parse": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", - "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", - "license": "MIT", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-4.0.0.tgz", + "integrity": "sha512-Clya5JIij/7C6bRR22+tnGXbc4VKlibKSVj2iHvVeX5iMW7s1SIQlqu699JkODJJIhh/pUu8L0/VLh8xflD+LQ==", "dependencies": { "spdx-exceptions": "^2.1.0", "spdx-license-ids": "^3.0.0" } }, "node_modules/spdx-license-ids": { - "version": "3.0.22", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.22.tgz", - "integrity": "sha512-4PRT4nh1EImPbt2jASOKHX7PB7I+e4IWNLvkKFDxNhJlfjbYlleYQh285Z/3mPTHSAK/AvdMmw5BNNuYH8ShgQ==", - "license": "CC0-1.0" + "version": "3.0.23", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.23.tgz", + "integrity": "sha512-CWLcCCH7VLu13TgOH+r8p1O/Znwhqv/dbb6lqWy67G+pT1kHmeD/+V36AVb/vq8QMIQwVShJ6Ssl5FPh0fuSdw==" }, "node_modules/spdy": { "version": "4.0.2", @@ -23205,10 +23389,9 @@ "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==" }, "node_modules/ssri": { - "version": "13.0.0", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-13.0.0.tgz", - "integrity": "sha512-yizwGBpbCn4YomB2lzhZqrHLJoqFGXihNbib3ozhqF/cIp5ue+xSmOQrjNasEE62hFxsCcg/V/z23t4n8jMEng==", - "license": "ISC", + "version": "13.0.1", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-13.0.1.tgz", + "integrity": "sha512-QUiRf1+u9wPTL/76GTYlKttDEBWV1ga9ZXW8BG6kfdeyyM8LGPix9gROyg9V2+P0xNyF3X2Go526xKFdMZrHSQ==", "dependencies": { "minipass": "^7.0.3" }, @@ -23216,19 +23399,33 @@ "node": "^20.17.0 || >=22.9.0" } }, - "node_modules/statuses": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", - "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "node_modules/stackback": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/stackback/-/stackback-0.0.2.tgz", + "integrity": "sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==", "dev": true, + "license": "MIT" + }, + "node_modules/statuses": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.2.tgz", + "integrity": "sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==", "engines": { "node": ">= 0.8" } }, + "node_modules/std-env": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/std-env/-/std-env-4.1.0.tgz", + "integrity": "sha512-Rq7ybcX2RuC55r9oaPVEW7/xu3tj8u4GeBYHBWCychFtzMIr86A7e3PPEBPT37sHStKX3+TiX/Fr/ACmJLVlLQ==", + "dev": true, + "license": "MIT" + }, "node_modules/stdin-discarder": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/stdin-discarder/-/stdin-discarder-0.2.2.tgz", "integrity": "sha512-UhDfHmA92YAlNnCfhmq0VeNL5bDbiZGg7sZ2IvPsXubGkiNa9EC+tUTsjBRsYUAz87btI6/1wf4XoVvQ3uRnmQ==", + "dev": true, "license": "MIT", "engines": { "node": ">=18" @@ -23260,27 +23457,13 @@ "node": ">= 0.4" } }, - "node_modules/streamroller": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/streamroller/-/streamroller-3.1.5.tgz", - "integrity": "sha512-KFxaM7XT+irxvdqSP1LGLgNWbYN7ay5owZ3r/8t77p+EtSUAfUgtl7be3xtqtOmGUl9K9YPO2ca8133RlTjvKw==", - "dev": true, - "dependencies": { - "date-format": "^4.0.14", - "debug": "^4.3.4", - "fs-extra": "^8.1.0" - }, - "engines": { - "node": ">=8.0" - } - }, "node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", "dev": true, "dependencies": { - "safe-buffer": "~5.1.0" + "safe-buffer": "~5.2.0" } }, "node_modules/string-width": { @@ -23538,6 +23721,7 @@ "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, "engines": { "node": ">= 0.4" }, @@ -23545,6 +23729,13 @@ "url": "https://github.com/sponsors/ljharb" } }, + "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, + "license": "MIT" + }, "node_modules/tabbable": { "version": "6.2.0", "resolved": "https://registry.npmjs.org/tabbable/-/tabbable-6.2.0.tgz", @@ -23560,11 +23751,10 @@ } }, "node_modules/tapable": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.3.0.tgz", - "integrity": "sha512-g9ljZiwki/LfxmQADO3dEY1CbpmXT5Hm2fJ+QaGKwSXUylMybePR7/67YW7jOrrvjEgL1Fmz5kzyAjWVWLlucg==", + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.3.3.tgz", + "integrity": "sha512-uxc/zpqFg6x7C8vOE7lh6Lbda8eEL9zmVm/PLeTPBRhh1xCgdWaQ+J1CUieGpIfm2HdtsUpRv+HshiasBMcc6A==", "dev": true, - "license": "MIT", "engines": { "node": ">=6" }, @@ -23574,9 +23764,9 @@ } }, "node_modules/tar": { - "version": "7.5.11", - "resolved": "https://registry.npmjs.org/tar/-/tar-7.5.11.tgz", - "integrity": "sha512-ChjMH33/KetonMTAtpYdgUFr0tbz69Fp2v7zWxQfYZX4g5ZN2nOBXm1R2xyA+lMIKrLKIoKAwFj93jE/avX9cQ==", + "version": "7.5.13", + "resolved": "https://registry.npmjs.org/tar/-/tar-7.5.13.tgz", + "integrity": "sha512-tOG/7GyXpFevhXVh8jOPJrmtRpOTsYqUIkVdVooZYJS/z8WhfQUX8RJILmeuJNinGAMSu1veBr4asSHFt5/hng==", "dependencies": { "@isaacs/fs-minipass": "^4.0.0", "chownr": "^3.0.0", @@ -23592,15 +23782,14 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-5.0.0.tgz", "integrity": "sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw==", - "license": "BlueOak-1.0.0", "engines": { "node": ">=18" } }, "node_modules/terser": { - "version": "5.44.1", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.44.1.tgz", - "integrity": "sha512-t/R3R/n0MSwnnazuPpPNVO60LX0SKL45pyl9YlvxIdkH0Of7D5qM2EVe+yASRIlY5pZ73nclYJfNANGWPwFDZw==", + "version": "5.46.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.46.0.tgz", + "integrity": "sha512-jTwoImyr/QbOWFFso3YoU3ik0jBBDJ6JTOQiy/J2YxVJdZCc+5u7skhNwiOR3FQIygFqVUPHl7qbbxtjW2K3Qg==", "dev": true, "dependencies": { "@jridgewell/source-map": "^0.3.3", @@ -23616,15 +23805,14 @@ } }, "node_modules/terser-webpack-plugin": { - "version": "5.3.16", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.16.tgz", - "integrity": "sha512-h9oBFCWrq78NyWWVcSwZarJkZ01c2AyGrzs1crmHZO3QUg9D61Wu4NPjBy69n7JqylFF5y+CsUZYmYEIZ3mR+Q==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.5.0.tgz", + "integrity": "sha512-UYhptBwhWvfIjKd/UuFo6D8uq9xpGLDK+z8EDsj/zWhrTaH34cKEbrkMKfV5YWqGBvAYA3tlzZbs2R+qYrbQJA==", "dev": true, "dependencies": { "@jridgewell/trace-mapping": "^0.3.25", "jest-worker": "^27.4.5", "schema-utils": "^4.3.0", - "serialize-javascript": "^6.0.2", "terser": "^5.31.1" }, "engines": { @@ -23712,11 +23900,10 @@ } }, "node_modules/thingies": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/thingies/-/thingies-2.5.0.tgz", - "integrity": "sha512-s+2Bwztg6PhWUD7XMfeYm5qliDdSiZm7M7n8KjTkIsm3l/2lgVRc2/Gx/v+ZX8lT4FMA+i8aQvhcWylldc+ZNw==", + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/thingies/-/thingies-2.6.0.tgz", + "integrity": "sha512-rMHRjmlFLM1R96UYPvpmnc3LYtdFrT33JIB7L9hetGue1qAPfn1N2LJeEjxUSidu1Iku+haLZXDuEXUHNGO/lg==", "dev": true, - "license": "MIT", "engines": { "node": ">=10.18" }, @@ -23753,6 +23940,23 @@ "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.3.3.tgz", "integrity": "sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==" }, + "node_modules/tinybench": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.9.0.tgz", + "integrity": "sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==", + "dev": true, + "license": "MIT" + }, + "node_modules/tinyexec": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-1.1.2.tgz", + "integrity": "sha512-dAqSqE/RabpBKI8+h26GfLq6Vb3JVXs30XYQjdMjaj/c2tS8IYYMbIzP599KtRj7c57/wYApb3QjgRgXmrCukA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + } + }, "node_modules/tinyglobby": { "version": "0.2.15", "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.15.tgz", @@ -23781,15 +23985,36 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, - "node_modules/tmp": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.5.tgz", - "integrity": "sha512-voyz6MApa1rQGUxT3E+BK7/ROe8itEx7vD8/HEvt4xwXucvQ5G5oeEiHkmHZJuBO21RpOf+YYm9MOivj709jow==", + "node_modules/tinyrainbow": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/tinyrainbow/-/tinyrainbow-3.1.0.tgz", + "integrity": "sha512-Bf+ILmBgretUrdJxzXM0SgXLZ3XfiaUuOj/IKQHuTXip+05Xn+uyEYdVg0kYDipTBcLrCVyUzAPz7QmArb0mmw==", "dev": true, + "license": "MIT", "engines": { - "node": ">=14.14" + "node": ">=14.0.0" } }, + "node_modules/tldts": { + "version": "7.0.30", + "resolved": "https://registry.npmjs.org/tldts/-/tldts-7.0.30.tgz", + "integrity": "sha512-ELrFxuqsDdHUwoh0XxDbxuLD3Wnz49Z57IFvTtvWy1hJdcMZjXLIuonjilCiWHlT2GbE4Wlv1wKVTzDFnXH1aw==", + "dev": true, + "license": "MIT", + "dependencies": { + "tldts-core": "^7.0.30" + }, + "bin": { + "tldts": "bin/cli.js" + } + }, + "node_modules/tldts-core": { + "version": "7.0.30", + "resolved": "https://registry.npmjs.org/tldts-core/-/tldts-core-7.0.30.tgz", + "integrity": "sha512-uiHN8PIB1VmWyS98eZYja4xzlYqeFZVjb4OuYlJQnZAuJhMw4PbKQOKgHKhBdJR3FE/t5mUQ1Kd80++B+qhD1Q==", + "dev": true, + "license": "MIT" + }, "node_modules/to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", @@ -23819,12 +24044,42 @@ "node": ">=0.6" } }, + "node_modules/toposort": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/toposort/-/toposort-2.0.2.tgz", + "integrity": "sha512-0a5EOkAUp8D4moMi2W8ZF8jcga7BgZd91O/yabJCFY8az+XSzeGyTKs0Aoo897iV1Nj6guFq8orWDS96z91oGg==" + }, + "node_modules/tough-cookie": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-6.0.1.tgz", + "integrity": "sha512-LktZQb3IeoUWB9lqR5EWTHgW/VTITCXg4D21M+lvybRVdylLrRMnqaIONLVb5mav8vM19m44HIcGq4qASeu2Qw==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "tldts": "^7.0.5" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/tr46": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-6.0.0.tgz", + "integrity": "sha512-bLVMLPtstlZ4iMQHpFHTR7GAGj2jxi8Dg0s2h2MafAE4uSWF98FC/3MomU51iQAMf8/qDUbKWf5GxuvvVcXEhw==", + "dev": true, + "license": "MIT", + "dependencies": { + "punycode": "^2.3.1" + }, + "engines": { + "node": ">=20" + } + }, "node_modules/tree-dump": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/tree-dump/-/tree-dump-1.1.0.tgz", "integrity": "sha512-rMuvhU4MCDbcbnleZTFezWsaZXRFemSqAM+7jPnzUl1fo9w3YEKOxAeui0fz3OI4EU4hf23iyA7uQRVko+UaBA==", "dev": true, - "license": "Apache-2.0", "engines": { "node": ">=10.0" }, @@ -23890,9 +24145,9 @@ } }, "node_modules/ts-api-utils": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.4.0.tgz", - "integrity": "sha512-3TaVTaAv2gTiMB35i3FiGJaRfwb3Pyn/j3m/bfAvGe8FB7CF6u+LMYqYlDh7reQf7UNvoTvdfAqHGmPGOSsPmA==", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.5.0.tgz", + "integrity": "sha512-OJ/ibxhPlqrMM0UiNHJ/0CKQkoKF243/AEmplt3qpRgkW8VG7IfOS41h7V8TjITqdByHzrjcS/2si+y4lIh8NA==", "dev": true, "license": "MIT", "engines": { @@ -23965,11 +24220,28 @@ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==" }, + "node_modules/tsyringe": { + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/tsyringe/-/tsyringe-4.10.0.tgz", + "integrity": "sha512-axr3IdNuVIxnaK5XGEUFTu3YmAQ6lllgrvqfEoR16g/HGnYY/6We4oWENtAnzK6/LpJ2ur9PAb80RBt7/U4ugw==", + "dev": true, + "dependencies": { + "tslib": "^1.9.3" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/tsyringe/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, "node_modules/tuf-js": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/tuf-js/-/tuf-js-4.1.0.tgz", "integrity": "sha512-50QV99kCKH5P/Vs4E2Gzp7BopNV+KzTXqWeaxrfu5IQJBOULRsTIS9seSsOVT8ZnGXzCyx55nYWAi4qJzpZKEQ==", - "license": "MIT", "dependencies": { "@tufjs/models": "4.1.0", "debug": "^4.4.3", @@ -23983,7 +24255,6 @@ "version": "4.4.3", "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", - "license": "MIT", "dependencies": { "ms": "^2.1.3" }, @@ -24374,9 +24645,9 @@ } }, "node_modules/typescript-eslint/node_modules/brace-expansion": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.4.tgz", - "integrity": "sha512-h+DEnpVvxmfVefa4jFbCf5HdH5YMDXRsmKflpf1pILZWRFlTbJpxeU55nJl4Smt5HQaGzg1o6RHFPJaOqnmBDg==", + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.5.tgz", + "integrity": "sha512-VZznLgtwhn+Mact9tfiwx64fA9erHH/MCXEUfB/0bX/6Fz6ny5EGTXYltMocqg4xFAQZtnO3DHWWXi8RiuN7cQ==", "dev": true, "dependencies": { "balanced-match": "^4.0.2" @@ -24438,25 +24709,6 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/ua-parser-js": { - "version": "0.7.35", - "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.35.tgz", - "integrity": "sha512-veRf7dawaj9xaWEu9HoTVn5Pggtc/qj+kqTOFvNiN1l0YdxwC1kvel57UCjThjGa3BHBihE8/UJAHI+uQHmd/g==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/ua-parser-js" - }, - { - "type": "paypal", - "url": "https://paypal.me/faisalman" - } - ], - "engines": { - "node": "*" - } - }, "node_modules/uc.micro": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-2.1.0.tgz", @@ -24482,9 +24734,9 @@ } }, "node_modules/undici": { - "version": "7.20.0", - "resolved": "https://registry.npmjs.org/undici/-/undici-7.20.0.tgz", - "integrity": "sha512-MJZrkjyd7DeC+uPZh+5/YaMDxFiiEEaDgbUSVMXayofAkDWF1088CDo+2RPg7B1BuS1qf1vgNE7xqwPxE0DuSQ==", + "version": "7.24.4", + "resolved": "https://registry.npmjs.org/undici/-/undici-7.24.4.tgz", + "integrity": "sha512-BM/JzwwaRXxrLdElV2Uo6cTLEjhSb3WXboncJamZ15NgUURmvlXvxa6xkwIOILIjPNo9i8ku136ZvWV0Uly8+w==", "dev": true, "engines": { "node": ">=20.18.1" @@ -24495,7 +24747,6 @@ "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.1.tgz", "integrity": "sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg==", "dev": true, - "license": "MIT", "engines": { "node": ">=4" } @@ -24505,7 +24756,6 @@ "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", "dev": true, - "license": "MIT", "dependencies": { "unicode-canonical-property-names-ecmascript": "^2.0.0", "unicode-property-aliases-ecmascript": "^2.0.0" @@ -24519,7 +24769,6 @@ "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.2.1.tgz", "integrity": "sha512-JQ84qTuMg4nVkx8ga4A16a1epI9H6uTXAknqxkGF/aFfRLw1xC/Bp24HNLaZhHSkWd3+84t8iXnp1J0kYcZHhg==", "dev": true, - "license": "MIT", "engines": { "node": ">=4" } @@ -24529,7 +24778,6 @@ "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.2.0.tgz", "integrity": "sha512-hpbDzxUY9BFwX+UeBnxv3Sh1q7HFxj48DTmXchNgRa46lO8uj3/1iEn3MiNUYTg1g9ctIqXCCERn8gYZhHC5lQ==", "dev": true, - "license": "MIT", "engines": { "node": ">=4" } @@ -24564,30 +24812,6 @@ "node": ">= 0.8.0" } }, - "node_modules/unique-filename": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-5.0.0.tgz", - "integrity": "sha512-2RaJTAvAb4owyjllTfXzFClJ7WsGxlykkPvCr9pA//LD9goVq+m4PPAeBgNodGZ7nSrntT/auWpJ6Y5IFXcfjg==", - "license": "ISC", - "dependencies": { - "unique-slug": "^6.0.0" - }, - "engines": { - "node": "^20.17.0 || >=22.9.0" - } - }, - "node_modules/unique-slug": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-6.0.0.tgz", - "integrity": "sha512-4Lup7Ezn8W3d52/xBhZBVdx323ckxa7DEvd9kPQHppTkLoJXw6ltrBCyj5pnrxj0qKDxYMJ56CoxNuFCscdTiw==", - "license": "ISC", - "dependencies": { - "imurmurhash": "^0.1.4" - }, - "engines": { - "node": "^20.17.0 || >=22.9.0" - } - }, "node_modules/unist-util-find-after": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/unist-util-find-after/-/unist-util-find-after-5.0.0.tgz", @@ -24670,15 +24894,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", - "dev": true, - "engines": { - "node": ">= 4.0.0" - } - }, "node_modules/unpipe": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", @@ -24857,9 +25072,9 @@ } }, "node_modules/uuid": { - "version": "13.0.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-13.0.0.tgz", - "integrity": "sha512-XQegIaBTVUjSHliKqcnFqYypAd4S+WCYt5NIeRs6w/UAry7z8Y9j5ZwRRL4kzq9U3sD6v+85er9FvkEaBpji2w==", + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-14.0.0.tgz", + "integrity": "sha512-Qo+uWgilfSmAhXCMav1uYFynlQO7fMFiMVZsQqZRMIXp0O7rR7qjkj+cPvBHLgBqi960QCoo/PH2/6ZtVqKvrg==", "funding": [ "https://github.com/sponsors/broofa", "https://github.com/sponsors/ctavan" @@ -24875,21 +25090,10 @@ "dev": true, "license": "MIT" }, - "node_modules/validate-npm-package-license": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", - "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", - "license": "Apache-2.0", - "dependencies": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" - } - }, "node_modules/validate-npm-package-name": { "version": "7.0.2", "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-7.0.2.tgz", "integrity": "sha512-hVDIBwsRruT73PbK7uP5ebUt+ezEtCmzZz3F59BSr2F6OVFnJ/6h8liuvdLrQ88Xmnk6/+xGGuq+pG9WwTuy3A==", - "license": "ISC", "engines": { "node": "^20.17.0 || >=22.9.0" } @@ -24945,11 +25149,10 @@ } }, "node_modules/vite": { - "version": "7.3.0", - "resolved": "https://registry.npmjs.org/vite/-/vite-7.3.0.tgz", - "integrity": "sha512-dZwN5L1VlUBewiP6H9s2+B3e3Jg96D0vzN+Ry73sOefebhYr9f94wwkMNN/9ouoU8pV1BqA1d1zGk8928cx0rg==", + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/vite/-/vite-7.3.2.tgz", + "integrity": "sha512-Bby3NOsna2jsjfLVOHKes8sGwgl4TT0E6vvpYgnAYDIF/tie7MRaFthmKuHx1NSXjiTueXH3do80FMQgvEktRg==", "dev": true, - "license": "MIT", "dependencies": { "esbuild": "^0.27.0", "fdir": "^6.5.0", @@ -25020,11 +25223,10 @@ } }, "node_modules/vite/node_modules/picomatch": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", - "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz", + "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==", "dev": true, - "license": "MIT", "engines": { "node": ">=12" }, @@ -25032,13 +25234,117 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, - "node_modules/void-elements": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-2.0.1.tgz", - "integrity": "sha512-qZKX4RnBzH2ugr8Lxa7x+0V6XD9Sb/ouARtiasEQCHB1EVU4NXtmHsDDrx1dO4ne5fc3J6EW05BP1Dl0z0iung==", + "node_modules/vitest": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/vitest/-/vitest-4.1.5.tgz", + "integrity": "sha512-9Xx1v3/ih3m9hN+SbfkUyy0JAs72ap3r7joc87XL6jwF0jGg6mFBvQ1SrwaX+h8BlkX6Hz9shdd1uo6AF+ZGpg==", "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/expect": "4.1.5", + "@vitest/mocker": "4.1.5", + "@vitest/pretty-format": "4.1.5", + "@vitest/runner": "4.1.5", + "@vitest/snapshot": "4.1.5", + "@vitest/spy": "4.1.5", + "@vitest/utils": "4.1.5", + "es-module-lexer": "^2.0.0", + "expect-type": "^1.3.0", + "magic-string": "^0.30.21", + "obug": "^2.1.1", + "pathe": "^2.0.3", + "picomatch": "^4.0.3", + "std-env": "^4.0.0-rc.1", + "tinybench": "^2.9.0", + "tinyexec": "^1.0.2", + "tinyglobby": "^0.2.15", + "tinyrainbow": "^3.1.0", + "vite": "^6.0.0 || ^7.0.0 || ^8.0.0", + "why-is-node-running": "^2.3.0" + }, + "bin": { + "vitest": "vitest.mjs" + }, "engines": { - "node": ">=0.10.0" + "node": "^20.0.0 || ^22.0.0 || >=24.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "@edge-runtime/vm": "*", + "@opentelemetry/api": "^1.9.0", + "@types/node": "^20.0.0 || ^22.0.0 || >=24.0.0", + "@vitest/browser-playwright": "4.1.5", + "@vitest/browser-preview": "4.1.5", + "@vitest/browser-webdriverio": "4.1.5", + "@vitest/coverage-istanbul": "4.1.5", + "@vitest/coverage-v8": "4.1.5", + "@vitest/ui": "4.1.5", + "happy-dom": "*", + "jsdom": "*", + "vite": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "@edge-runtime/vm": { + "optional": true + }, + "@opentelemetry/api": { + "optional": true + }, + "@types/node": { + "optional": true + }, + "@vitest/browser-playwright": { + "optional": true + }, + "@vitest/browser-preview": { + "optional": true + }, + "@vitest/browser-webdriverio": { + "optional": true + }, + "@vitest/coverage-istanbul": { + "optional": true + }, + "@vitest/coverage-v8": { + "optional": true + }, + "@vitest/ui": { + "optional": true + }, + "happy-dom": { + "optional": true + }, + "jsdom": { + "optional": true + }, + "vite": { + "optional": false + } + } + }, + "node_modules/vitest/node_modules/magic-string": { + "version": "0.30.21", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz", + "integrity": "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.5" + } + }, + "node_modules/vitest/node_modules/picomatch": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz", + "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" } }, "node_modules/vscode-css-languageservice": { @@ -25077,12 +25383,24 @@ "integrity": "sha512-dpojBhNsCNN7T82Tm7k26A6G9ML3NkhDsnw9n/eoxSRlVBB4CEtIQ/KTCLI2Fwf3ataSXRhYFkQi3SlnFwPvPQ==", "license": "MIT" }, - "node_modules/watchpack": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.5.0.tgz", - "integrity": "sha512-e6vZvY6xboSwLz2GD36c16+O/2Z6fKvIf4pOXptw2rY9MVwE/TXc6RGqxD3I3x0a28lwBY7DE+76uTPSsBrrCA==", + "node_modules/w3c-xmlserializer": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-5.0.0.tgz", + "integrity": "sha512-o8qghlI8NZHU1lLPrpi2+Uq7abh4GGPpYANlalzWxyWteJOCsr/P+oPBA49TOLu5FTZO4d3F9MnWJfiMo4BkmA==", "dev": true, "license": "MIT", + "dependencies": { + "xml-name-validator": "^5.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/watchpack": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.5.1.tgz", + "integrity": "sha512-Zn5uXdcFNIA1+1Ei5McRd+iRzfhENPCe7LeABkJtNulSxjma+l7ltNx55BWZkRlwRnpOgHqxnjyaDgJnNXnqzg==", + "dev": true, "dependencies": { "glob-to-regexp": "^0.4.1", "graceful-fs": "^4.1.2" @@ -25105,7 +25423,6 @@ "resolved": "https://registry.npmjs.org/weak-lru-cache/-/weak-lru-cache-1.2.2.tgz", "integrity": "sha512-DEAoo25RfSYMuTGc9vPJzZcZullwIqRDSI9LOy+fkCJPi6hykCnfKaXTuPBDuXAUcqHXyOgFtHNp/kB2FjYHbw==", "dev": true, - "license": "MIT", "optional": true }, "node_modules/web-namespaces": { @@ -25118,10 +25435,20 @@ "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/webidl-conversions": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-8.0.1.tgz", + "integrity": "sha512-BMhLD/Sw+GbJC21C/UgyaZX41nPt8bUTg+jWyDeg7e7YN4xOM05YPSIXceACnXVtqyEw/LMClUQMtMZ+PGGpqQ==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=20" + } + }, "node_modules/webpack": { - "version": "5.105.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.105.0.tgz", - "integrity": "sha512-gX/dMkRQc7QOMzgTe6KsYFM7DxeIONQSui1s0n/0xht36HvrgbxtM1xBlgx596NbpHuQU8P7QpKwrZYwUX48nw==", + "version": "5.105.2", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.105.2.tgz", + "integrity": "sha512-dRXm0a2qcHPUBEzVk8uph0xWSjV/xZxenQQbLwnwP7caQCYpqG1qddwlyEkIDkYn0K8tvmcrZ+bOrzoQ3HxCDw==", "dev": true, "dependencies": { "@types/eslint-scope": "^3.7.7", @@ -25171,7 +25498,6 @@ "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-7.4.5.tgz", "integrity": "sha512-uxQ6YqGdE4hgDKNf7hUiPXOdtkXvBJXrfEGYSx7P7LC8hnUYGK70X6xQXUvXeNyBDDcsiQXpG2m3G9vxowaEuA==", "dev": true, - "license": "MIT", "dependencies": { "colorette": "^2.0.10", "memfs": "^4.43.1", @@ -25213,7 +25539,6 @@ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz", "integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==", "dev": true, - "license": "MIT", "engines": { "node": ">= 0.6" } @@ -25223,7 +25548,6 @@ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-3.0.2.tgz", "integrity": "sha512-Lbgzdk0h4juoQ9fCKXW4by0UJqj+nOOrI9MJ1sSj4nI8aI2eo1qmvQEie4VD1glsS250n15LsWsYtCugiStS5A==", "dev": true, - "license": "MIT", "dependencies": { "mime-db": "^1.54.0" }, @@ -25236,9 +25560,9 @@ } }, "node_modules/webpack-dev-middleware/node_modules/schema-utils": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.3.2.tgz", - "integrity": "sha512-Gn/JaSk/Mt9gYubxTtSn/QCV4em9mpAPiR1rqy/Ocu19u/G9J5WWdNoUT4SiV6mFC3y6cxyFcFwdzPM3FgxGAQ==", + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.3.3.tgz", + "integrity": "sha512-eflK8wEtyOE6+hsaRVPxvUKYCpRgzLqDTb8krvAsRIwOGlHoSgYLgBXoubGgLd2fT41/OUYdb48v4k4WWHQurA==", "dev": true, "dependencies": { "@types/json-schema": "^7.0.9", @@ -25255,14 +25579,14 @@ } }, "node_modules/webpack-dev-server": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-5.2.2.tgz", - "integrity": "sha512-QcQ72gh8a+7JO63TAx/6XZf/CWhgMzu5m0QirvPfGvptOusAxG12w2+aua1Jkjr7hzaWDnJ2n6JFeexMHI+Zjg==", + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-5.2.3.tgz", + "integrity": "sha512-9Gyu2F7+bg4Vv+pjbovuYDhHX+mqdqITykfzdM9UyKqKHlsE5aAjRhR+oOEfXW5vBeu8tarzlJFIZva4ZjAdrQ==", "dev": true, "dependencies": { "@types/bonjour": "^3.5.13", "@types/connect-history-api-fallback": "^1.5.4", - "@types/express": "^4.17.21", + "@types/express": "^4.17.25", "@types/express-serve-static-core": "^4.17.21", "@types/serve-index": "^1.9.4", "@types/serve-static": "^1.15.5", @@ -25272,9 +25596,9 @@ "bonjour-service": "^1.2.1", "chokidar": "^3.6.0", "colorette": "^2.0.10", - "compression": "^1.7.4", + "compression": "^1.8.1", "connect-history-api-fallback": "^2.0.0", - "express": "^4.21.2", + "express": "^4.22.1", "graceful-fs": "^4.2.6", "http-proxy-middleware": "^2.0.9", "ipaddr.js": "^2.1.0", @@ -25282,7 +25606,7 @@ "open": "^10.0.3", "p-retry": "^6.2.0", "schema-utils": "^4.2.0", - "selfsigned": "^2.4.1", + "selfsigned": "^5.5.0", "serve-index": "^1.9.1", "sockjs": "^0.3.24", "spdy": "^4.0.2", @@ -25311,15 +25635,6 @@ } } }, - "node_modules/webpack-dev-server/node_modules/@types/ws": { - "version": "8.18.1", - "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.18.1.tgz", - "integrity": "sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, "node_modules/webpack-dev-server/node_modules/ajv-keywords": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", @@ -25369,9 +25684,9 @@ } }, "node_modules/webpack-dev-server/node_modules/schema-utils": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.3.2.tgz", - "integrity": "sha512-Gn/JaSk/Mt9gYubxTtSn/QCV4em9mpAPiR1rqy/Ocu19u/G9J5WWdNoUT4SiV6mFC3y6cxyFcFwdzPM3FgxGAQ==", + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.3.3.tgz", + "integrity": "sha512-eflK8wEtyOE6+hsaRVPxvUKYCpRgzLqDTb8krvAsRIwOGlHoSgYLgBXoubGgLd2fT41/OUYdb48v4k4WWHQurA==", "dev": true, "dependencies": { "@types/json-schema": "^7.0.9", @@ -25388,9 +25703,9 @@ } }, "node_modules/webpack-dev-server/node_modules/ws": { - "version": "8.18.3", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.3.tgz", - "integrity": "sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==", + "version": "8.20.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.20.0.tgz", + "integrity": "sha512-sAt8BhgNbzCtgGbt2OxmpuryO63ZoDk/sqaB/znQm94T4fCEsy/yV+7CdC1kJhOU9lboAEU7R3kquuycDoibVA==", "dev": true, "engines": { "node": ">=10.0.0" @@ -25511,19 +25826,6 @@ "url": "https://opencollective.com/webpack" } }, - "node_modules/webpack/node_modules/watchpack": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.5.1.tgz", - "integrity": "sha512-Zn5uXdcFNIA1+1Ei5McRd+iRzfhENPCe7LeABkJtNulSxjma+l7ltNx55BWZkRlwRnpOgHqxnjyaDgJnNXnqzg==", - "dev": true, - "dependencies": { - "glob-to-regexp": "^0.4.1", - "graceful-fs": "^4.1.2" - }, - "engines": { - "node": ">=10.13.0" - } - }, "node_modules/websocket-driver": { "version": "0.7.4", "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz", @@ -25547,6 +25849,31 @@ "node": ">=0.8.0" } }, + "node_modules/whatwg-mimetype": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-5.0.0.tgz", + "integrity": "sha512-sXcNcHOC51uPGF0P/D4NVtrkjSU2fNsm9iog4ZvZJsL3rjoDAzXZhkm2MWt1y+PUdggKAYVoMAIYcs78wJ51Cw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=20" + } + }, + "node_modules/whatwg-url": { + "version": "16.0.1", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-16.0.1.tgz", + "integrity": "sha512-1to4zXBxmXHV3IiSSEInrreIlu02vUOvrhxJJH5vcxYTBDAx51cqZiKdyTxlecdKNSjj8EcxGBxNf6Vg+945gw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@exodus/bytes": "^1.11.0", + "tr46": "^6.0.0", + "webidl-conversions": "^8.0.1" + }, + "engines": { + "node": "^20.19.0 || ^22.12.0 || >=24.0.0" + } + }, "node_modules/which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", @@ -25647,6 +25974,23 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/why-is-node-running": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/why-is-node-running/-/why-is-node-running-2.3.0.tgz", + "integrity": "sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==", + "dev": true, + "license": "MIT", + "dependencies": { + "siginfo": "^2.0.0", + "stackback": "0.0.2" + }, + "bin": { + "why-is-node-running": "cli.js" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/wildcard": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.1.tgz", @@ -25751,9 +26095,9 @@ } }, "node_modules/wsl-utils/node_modules/is-wsl": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-3.1.0.tgz", - "integrity": "sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-3.1.1.tgz", + "integrity": "sha512-e6rvdUCiQCAuumZslxRJWR/Doq4VpPR82kqclvcS0efgt430SlGIk05vdCN58+VrzgtIcfNODjozVielycD4Sw==", "dev": true, "dependencies": { "is-inside-container": "^1.0.0" @@ -25774,6 +26118,23 @@ "repeat-string": "^1.5.2" } }, + "node_modules/xml-name-validator": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-5.0.0.tgz", + "integrity": "sha512-EvGK8EJ3DhaHfbRlETOWAS5pO9MZITeauHKJyb8wyajUfQUenkIg2MvLDTZ4T/TgIcm3HU0TFBgWWboAZ30UHg==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18" + } + }, + "node_modules/xmlchars": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", + "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", + "dev": true, + "license": "MIT" + }, "node_modules/y-prosemirror": { "version": "1.3.7", "resolved": "https://registry.npmjs.org/y-prosemirror/-/y-prosemirror-1.3.7.tgz", @@ -25893,10 +26254,9 @@ } }, "node_modules/zod": { - "version": "4.3.5", - "resolved": "https://registry.npmjs.org/zod/-/zod-4.3.5.tgz", - "integrity": "sha512-k7Nwx6vuWx1IJ9Bjuf4Zt1PEllcwe7cls3VNzm4CQ1/hgtFUK2bRNG3rvnpPUhFjmqJKAKtjV576KnUkHocg/g==", - "license": "MIT", + "version": "4.3.6", + "resolved": "https://registry.npmjs.org/zod/-/zod-4.3.6.tgz", + "integrity": "sha512-rftlrkhHZOcjDwkGlnUtZZkvaPHCsDATp4pGpuOOMDaTdDDXF91wuVDJoWoPsKX/3YPQ5fHuF3STjcYyKr+Qhg==", "funding": { "url": "https://github.com/sponsors/colinhacks" } @@ -25934,142 +26294,142 @@ }, "dependencies": { "@algolia/abtesting": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/@algolia/abtesting/-/abtesting-1.12.2.tgz", - "integrity": "sha512-oWknd6wpfNrmRcH0vzed3UPX0i17o4kYLM5OMITyMVM2xLgaRbIafoxL0e8mcrNNb0iORCJA0evnNDKRYth5WQ==", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@algolia/abtesting/-/abtesting-1.14.1.tgz", + "integrity": "sha512-Dkj0BgPiLAaim9sbQ97UKDFHJE/880wgStAM18U++NaJ/2Cws34J5731ovJifr6E3Pv4T2CqvMXf8qLCC417Ew==", "requires": { - "@algolia/client-common": "5.46.2", - "@algolia/requester-browser-xhr": "5.46.2", - "@algolia/requester-fetch": "5.46.2", - "@algolia/requester-node-http": "5.46.2" + "@algolia/client-common": "5.48.1", + "@algolia/requester-browser-xhr": "5.48.1", + "@algolia/requester-fetch": "5.48.1", + "@algolia/requester-node-http": "5.48.1" } }, "@algolia/client-abtesting": { - "version": "5.46.2", - "resolved": "https://registry.npmjs.org/@algolia/client-abtesting/-/client-abtesting-5.46.2.tgz", - "integrity": "sha512-oRSUHbylGIuxrlzdPA8FPJuwrLLRavOhAmFGgdAvMcX47XsyM+IOGa9tc7/K5SPvBqn4nhppOCEz7BrzOPWc4A==", + "version": "5.48.1", + "resolved": "https://registry.npmjs.org/@algolia/client-abtesting/-/client-abtesting-5.48.1.tgz", + "integrity": "sha512-LV5qCJdj+/m9I+Aj91o+glYszrzd7CX6NgKaYdTOj4+tUYfbS62pwYgUfZprYNayhkQpVFcrW8x8ZlIHpS23Vw==", "requires": { - "@algolia/client-common": "5.46.2", - "@algolia/requester-browser-xhr": "5.46.2", - "@algolia/requester-fetch": "5.46.2", - "@algolia/requester-node-http": "5.46.2" + "@algolia/client-common": "5.48.1", + "@algolia/requester-browser-xhr": "5.48.1", + "@algolia/requester-fetch": "5.48.1", + "@algolia/requester-node-http": "5.48.1" } }, "@algolia/client-analytics": { - "version": "5.46.2", - "resolved": "https://registry.npmjs.org/@algolia/client-analytics/-/client-analytics-5.46.2.tgz", - "integrity": "sha512-EPBN2Oruw0maWOF4OgGPfioTvd+gmiNwx0HmD9IgmlS+l75DatcBkKOPNJN+0z3wBQWUO5oq602ATxIfmTQ8bA==", + "version": "5.48.1", + "resolved": "https://registry.npmjs.org/@algolia/client-analytics/-/client-analytics-5.48.1.tgz", + "integrity": "sha512-/AVoMqHhPm14CcHq7mwB+bUJbfCv+jrxlNvRjXAuO+TQa+V37N8k1b0ijaRBPdmSjULMd8KtJbQyUyabXOu6Kg==", "requires": { - "@algolia/client-common": "5.46.2", - "@algolia/requester-browser-xhr": "5.46.2", - "@algolia/requester-fetch": "5.46.2", - "@algolia/requester-node-http": "5.46.2" + "@algolia/client-common": "5.48.1", + "@algolia/requester-browser-xhr": "5.48.1", + "@algolia/requester-fetch": "5.48.1", + "@algolia/requester-node-http": "5.48.1" } }, "@algolia/client-common": { - "version": "5.46.2", - "resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-5.46.2.tgz", - "integrity": "sha512-Hj8gswSJNKZ0oyd0wWissqyasm+wTz1oIsv5ZmLarzOZAp3vFEda8bpDQ8PUhO+DfkbiLyVnAxsPe4cGzWtqkg==" + "version": "5.48.1", + "resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-5.48.1.tgz", + "integrity": "sha512-VXO+qu2Ep6ota28ktvBm3sG53wUHS2n7bgLWmce5jTskdlCD0/JrV4tnBm1l7qpla1CeoQb8D7ShFhad+UoSOw==" }, "@algolia/client-insights": { - "version": "5.46.2", - "resolved": "https://registry.npmjs.org/@algolia/client-insights/-/client-insights-5.46.2.tgz", - "integrity": "sha512-6dBZko2jt8FmQcHCbmNLB0kCV079Mx/DJcySTL3wirgDBUH7xhY1pOuUTLMiGkqM5D8moVZTvTdRKZUJRkrwBA==", + "version": "5.48.1", + "resolved": "https://registry.npmjs.org/@algolia/client-insights/-/client-insights-5.48.1.tgz", + "integrity": "sha512-zl+Qyb0nLg+Y5YvKp1Ij+u9OaPaKg2/EPzTwKNiVyOHnQJlFxmXyUZL1EInczAZsEY8hVpPCLtNfhMhfxluXKQ==", "requires": { - "@algolia/client-common": "5.46.2", - "@algolia/requester-browser-xhr": "5.46.2", - "@algolia/requester-fetch": "5.46.2", - "@algolia/requester-node-http": "5.46.2" + "@algolia/client-common": "5.48.1", + "@algolia/requester-browser-xhr": "5.48.1", + "@algolia/requester-fetch": "5.48.1", + "@algolia/requester-node-http": "5.48.1" } }, "@algolia/client-personalization": { - "version": "5.46.2", - "resolved": "https://registry.npmjs.org/@algolia/client-personalization/-/client-personalization-5.46.2.tgz", - "integrity": "sha512-1waE2Uqh/PHNeDXGn/PM/WrmYOBiUGSVxAWqiJIj73jqPqvfzZgzdakHscIVaDl6Cp+j5dwjsZ5LCgaUr6DtmA==", + "version": "5.48.1", + "resolved": "https://registry.npmjs.org/@algolia/client-personalization/-/client-personalization-5.48.1.tgz", + "integrity": "sha512-r89Qf9Oo9mKWQXumRu/1LtvVJAmEDpn8mHZMc485pRfQUMAwSSrsnaw1tQ3sszqzEgAr1c7rw6fjBI+zrAXTOw==", "requires": { - "@algolia/client-common": "5.46.2", - "@algolia/requester-browser-xhr": "5.46.2", - "@algolia/requester-fetch": "5.46.2", - "@algolia/requester-node-http": "5.46.2" + "@algolia/client-common": "5.48.1", + "@algolia/requester-browser-xhr": "5.48.1", + "@algolia/requester-fetch": "5.48.1", + "@algolia/requester-node-http": "5.48.1" } }, "@algolia/client-query-suggestions": { - "version": "5.46.2", - "resolved": "https://registry.npmjs.org/@algolia/client-query-suggestions/-/client-query-suggestions-5.46.2.tgz", - "integrity": "sha512-EgOzTZkyDcNL6DV0V/24+oBJ+hKo0wNgyrOX/mePBM9bc9huHxIY2352sXmoZ648JXXY2x//V1kropF/Spx83w==", + "version": "5.48.1", + "resolved": "https://registry.npmjs.org/@algolia/client-query-suggestions/-/client-query-suggestions-5.48.1.tgz", + "integrity": "sha512-TPKNPKfghKG/bMSc7mQYD9HxHRUkBZA4q1PEmHgICaSeHQscGqL4wBrKkhfPlDV1uYBKW02pbFMUhsOt7p4ZpA==", "requires": { - "@algolia/client-common": "5.46.2", - "@algolia/requester-browser-xhr": "5.46.2", - "@algolia/requester-fetch": "5.46.2", - "@algolia/requester-node-http": "5.46.2" + "@algolia/client-common": "5.48.1", + "@algolia/requester-browser-xhr": "5.48.1", + "@algolia/requester-fetch": "5.48.1", + "@algolia/requester-node-http": "5.48.1" } }, "@algolia/client-search": { - "version": "5.46.2", - "resolved": "https://registry.npmjs.org/@algolia/client-search/-/client-search-5.46.2.tgz", - "integrity": "sha512-ZsOJqu4HOG5BlvIFnMU0YKjQ9ZI6r3C31dg2jk5kMWPSdhJpYL9xa5hEe7aieE+707dXeMI4ej3diy6mXdZpgA==", + "version": "5.48.1", + "resolved": "https://registry.npmjs.org/@algolia/client-search/-/client-search-5.48.1.tgz", + "integrity": "sha512-4Fu7dnzQyQmMFknYwTiN/HxPbH4DyxvQ1m+IxpPp5oslOgz8m6PG5qhiGbqJzH4HiT1I58ecDiCAC716UyVA8Q==", "requires": { - "@algolia/client-common": "5.46.2", - "@algolia/requester-browser-xhr": "5.46.2", - "@algolia/requester-fetch": "5.46.2", - "@algolia/requester-node-http": "5.46.2" + "@algolia/client-common": "5.48.1", + "@algolia/requester-browser-xhr": "5.48.1", + "@algolia/requester-fetch": "5.48.1", + "@algolia/requester-node-http": "5.48.1" } }, "@algolia/ingestion": { - "version": "1.46.2", - "resolved": "https://registry.npmjs.org/@algolia/ingestion/-/ingestion-1.46.2.tgz", - "integrity": "sha512-1Uw2OslTWiOFDtt83y0bGiErJYy5MizadV0nHnOoHFWMoDqWW0kQoMFI65pXqRSkVvit5zjXSLik2xMiyQJDWQ==", + "version": "1.48.1", + "resolved": "https://registry.npmjs.org/@algolia/ingestion/-/ingestion-1.48.1.tgz", + "integrity": "sha512-/RFq3TqtXDUUawwic/A9xylA2P3LDMO8dNhphHAUOU51b1ZLHrmZ6YYJm3df1APz7xLY1aht6okCQf+/vmrV9w==", "requires": { - "@algolia/client-common": "5.46.2", - "@algolia/requester-browser-xhr": "5.46.2", - "@algolia/requester-fetch": "5.46.2", - "@algolia/requester-node-http": "5.46.2" + "@algolia/client-common": "5.48.1", + "@algolia/requester-browser-xhr": "5.48.1", + "@algolia/requester-fetch": "5.48.1", + "@algolia/requester-node-http": "5.48.1" } }, "@algolia/monitoring": { - "version": "1.46.2", - "resolved": "https://registry.npmjs.org/@algolia/monitoring/-/monitoring-1.46.2.tgz", - "integrity": "sha512-xk9f+DPtNcddWN6E7n1hyNNsATBCHIqAvVGG2EAGHJc4AFYL18uM/kMTiOKXE/LKDPyy1JhIerrh9oYb7RBrgw==", + "version": "1.48.1", + "resolved": "https://registry.npmjs.org/@algolia/monitoring/-/monitoring-1.48.1.tgz", + "integrity": "sha512-Of0jTeAZRyRhC7XzDSjJef0aBkgRcvRAaw0ooYRlOw57APii7lZdq+layuNdeL72BRq1snaJhoMMwkmLIpJScw==", "requires": { - "@algolia/client-common": "5.46.2", - "@algolia/requester-browser-xhr": "5.46.2", - "@algolia/requester-fetch": "5.46.2", - "@algolia/requester-node-http": "5.46.2" + "@algolia/client-common": "5.48.1", + "@algolia/requester-browser-xhr": "5.48.1", + "@algolia/requester-fetch": "5.48.1", + "@algolia/requester-node-http": "5.48.1" } }, "@algolia/recommend": { - "version": "5.46.2", - "resolved": "https://registry.npmjs.org/@algolia/recommend/-/recommend-5.46.2.tgz", - "integrity": "sha512-NApbTPj9LxGzNw4dYnZmj2BoXiAc8NmbbH6qBNzQgXklGklt/xldTvu+FACN6ltFsTzoNU6j2mWNlHQTKGC5+Q==", + "version": "5.48.1", + "resolved": "https://registry.npmjs.org/@algolia/recommend/-/recommend-5.48.1.tgz", + "integrity": "sha512-bE7JcpFXzxF5zHwj/vkl2eiCBvyR1zQ7aoUdO+GDXxGp0DGw7nI0p8Xj6u8VmRQ+RDuPcICFQcCwRIJT5tDJFw==", "requires": { - "@algolia/client-common": "5.46.2", - "@algolia/requester-browser-xhr": "5.46.2", - "@algolia/requester-fetch": "5.46.2", - "@algolia/requester-node-http": "5.46.2" + "@algolia/client-common": "5.48.1", + "@algolia/requester-browser-xhr": "5.48.1", + "@algolia/requester-fetch": "5.48.1", + "@algolia/requester-node-http": "5.48.1" } }, "@algolia/requester-browser-xhr": { - "version": "5.46.2", - "resolved": "https://registry.npmjs.org/@algolia/requester-browser-xhr/-/requester-browser-xhr-5.46.2.tgz", - "integrity": "sha512-ekotpCwpSp033DIIrsTpYlGUCF6momkgupRV/FA3m62SreTSZUKjgK6VTNyG7TtYfq9YFm/pnh65bATP/ZWJEg==", + "version": "5.48.1", + "resolved": "https://registry.npmjs.org/@algolia/requester-browser-xhr/-/requester-browser-xhr-5.48.1.tgz", + "integrity": "sha512-MK3wZ2koLDnvH/AmqIF1EKbJlhRS5j74OZGkLpxI4rYvNi9Jn/C7vb5DytBnQ4KUWts7QsmbdwHkxY5txQHXVw==", "requires": { - "@algolia/client-common": "5.46.2" + "@algolia/client-common": "5.48.1" } }, "@algolia/requester-fetch": { - "version": "5.46.2", - "resolved": "https://registry.npmjs.org/@algolia/requester-fetch/-/requester-fetch-5.46.2.tgz", - "integrity": "sha512-gKE+ZFi/6y7saTr34wS0SqYFDcjHW4Wminv8PDZEi0/mE99+hSrbKgJWxo2ztb5eqGirQTgIh1AMVacGGWM1iw==", + "version": "5.48.1", + "resolved": "https://registry.npmjs.org/@algolia/requester-fetch/-/requester-fetch-5.48.1.tgz", + "integrity": "sha512-2oDT43Y5HWRSIQMPQI4tA/W+TN/N2tjggZCUsqQV440kxzzoPGsvv9QP1GhQ4CoDa+yn6ygUsGp6Dr+a9sPPSg==", "requires": { - "@algolia/client-common": "5.46.2" + "@algolia/client-common": "5.48.1" } }, "@algolia/requester-node-http": { - "version": "5.46.2", - "resolved": "https://registry.npmjs.org/@algolia/requester-node-http/-/requester-node-http-5.46.2.tgz", - "integrity": "sha512-ciPihkletp7ttweJ8Zt+GukSVLp2ANJHU+9ttiSxsJZThXc4Y2yJ8HGVWesW5jN1zrsZsezN71KrMx/iZsOYpg==", + "version": "5.48.1", + "resolved": "https://registry.npmjs.org/@algolia/requester-node-http/-/requester-node-http-5.48.1.tgz", + "integrity": "sha512-xcaCqbhupVWhuBP1nwbk1XNvwrGljozutEiLx06mvqDf3o8cHyEgQSHS4fKJM+UAggaWVnnFW+Nne5aQ8SUJXg==", "requires": { - "@algolia/client-common": "5.46.2" + "@algolia/client-common": "5.48.1" } }, "@ampproject/remapping": { @@ -26219,88 +26579,88 @@ } }, "@angular-devkit/build-angular": { - "version": "21.1.5", - "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-21.1.5.tgz", - "integrity": "sha512-B2jOBAiVl+hA3PLwpxfrbW/gA7SDu9Uv+hQwHYrdwL2XXDVwaQ+c3z9BS3yJDQTkb/TrAJ0sfa2zVLC4b/rHzg==", + "version": "21.2.9", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-21.2.9.tgz", + "integrity": "sha512-tWvY6NwyQb4P3dVH2uLbr0NCw6BJO4mo60+oT3+Ftll3bzb3L+rJyEknZzqUI3k4YalJ95YS+n5hOOHXefICUQ==", "dev": true, "requires": { "@ampproject/remapping": "2.3.0", - "@angular-devkit/architect": "0.2101.5", - "@angular-devkit/build-webpack": "0.2101.5", - "@angular-devkit/core": "21.1.5", - "@angular/build": "21.1.5", - "@babel/core": "7.28.5", - "@babel/generator": "7.28.5", + "@angular-devkit/architect": "0.2102.9", + "@angular-devkit/build-webpack": "0.2102.9", + "@angular-devkit/core": "21.2.9", + "@angular/build": "21.2.9", + "@babel/core": "7.29.0", + "@babel/generator": "7.29.1", "@babel/helper-annotate-as-pure": "7.27.3", "@babel/helper-split-export-declaration": "7.24.7", - "@babel/plugin-transform-async-generator-functions": "7.28.0", - "@babel/plugin-transform-async-to-generator": "7.27.1", - "@babel/plugin-transform-runtime": "7.28.5", - "@babel/preset-env": "7.28.5", - "@babel/runtime": "7.28.4", + "@babel/plugin-transform-async-generator-functions": "7.29.0", + "@babel/plugin-transform-async-to-generator": "7.28.6", + "@babel/plugin-transform-runtime": "7.29.0", + "@babel/preset-env": "7.29.2", + "@babel/runtime": "7.29.2", "@discoveryjs/json-ext": "0.6.3", - "@ngtools/webpack": "21.1.5", + "@ngtools/webpack": "21.2.9", "ansi-colors": "4.1.3", - "autoprefixer": "10.4.23", + "autoprefixer": "10.4.27", "babel-loader": "10.0.0", "browserslist": "^4.26.0", - "copy-webpack-plugin": "13.0.1", - "css-loader": "7.1.2", - "esbuild": "0.27.2", - "esbuild-wasm": "0.27.2", + "copy-webpack-plugin": "14.0.0", + "css-loader": "7.1.3", + "esbuild": "0.27.3", + "esbuild-wasm": "0.27.3", "http-proxy-middleware": "3.0.5", "istanbul-lib-instrument": "6.0.3", "jsonc-parser": "3.3.1", "karma-source-map-support": "1.4.0", "less": "4.4.2", - "less-loader": "12.3.0", + "less-loader": "12.3.1", "license-webpack-plugin": "4.0.2", "loader-utils": "3.3.1", - "mini-css-extract-plugin": "2.9.4", + "mini-css-extract-plugin": "2.10.0", "open": "11.0.0", - "ora": "9.0.0", - "picomatch": "4.0.3", + "ora": "9.3.0", + "picomatch": "4.0.4", "piscina": "5.1.4", - "postcss": "8.5.6", + "postcss": "8.5.12", "postcss-loader": "8.2.0", "resolve-url-loader": "5.0.0", "rxjs": "7.8.2", - "sass": "1.97.1", - "sass-loader": "16.0.6", - "semver": "7.7.3", + "sass": "1.97.3", + "sass-loader": "16.0.7", + "semver": "7.7.4", "source-map-loader": "5.0.0", "source-map-support": "0.5.21", - "terser": "5.44.1", + "terser": "5.46.0", "tinyglobby": "0.2.15", "tree-kill": "1.2.2", "tslib": "2.8.1", - "webpack": "5.105.0", + "webpack": "5.105.2", "webpack-dev-middleware": "7.4.5", - "webpack-dev-server": "5.2.2", + "webpack-dev-server": "5.2.3", "webpack-merge": "6.0.1", "webpack-subresource-integrity": "5.1.0" }, "dependencies": { "@angular-devkit/architect": { - "version": "0.2101.5", - "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.2101.5.tgz", - "integrity": "sha512-eTo6wWzUW5AyBBLTbaUTpBHhGbZhzteErtNGklWkhjicCr/soNH+2mVtvg8bqA8sNreYffK1VXKFsq5NyMh5qg==", + "version": "0.2102.9", + "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.2102.9.tgz", + "integrity": "sha512-OlPEtd5pPZSFdkXEIyZ93jsfBrkvUrVPb3xs4z2WPRnBRk9jyey40eKnmql86KRHfdn4WjHpmde4NDgtDpZRxQ==", "dev": true, "requires": { - "@angular-devkit/core": "21.1.5", + "@angular-devkit/core": "21.2.9", "rxjs": "7.8.2" } }, "@angular-devkit/core": { - "version": "21.1.5", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-21.1.5.tgz", - "integrity": "sha512-KUKbllHvHefkAbTBjWNpRPyrpBqecW+6HBBAR+XNbKBuFTHkG+gxtuwMXNsvO5KECKwQphvQt5h3g05Xtaf0LQ==", + "version": "21.2.9", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-21.2.9.tgz", + "integrity": "sha512-04rdOGEzjLWFHlyAwqtuikginFeQ2jfXS5HqqKNP0VtG6Uu9NUDAEW5UDvXgqkEMfCDwGZbmg2iRHxp3AmAKVw==", "dev": true, "requires": { "ajv": "8.18.0", "ajv-formats": "3.0.1", "jsonc-parser": "3.3.1", - "picomatch": "4.0.3", + "picomatch": "4.0.4", "rxjs": "7.8.2", "source-map": "0.7.6" } @@ -26338,19 +26698,6 @@ "integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==", "dev": true }, - "autoprefixer": { - "version": "10.4.23", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.23.tgz", - "integrity": "sha512-YYTXSFulfwytnjAPlw8QHncHJmlvFKtczb8InXaAx9Q0LbfDnfEYDE55omerIJKihhmU61Ft+cAOSzQVaBUmeA==", - "dev": true, - "requires": { - "browserslist": "^4.28.1", - "caniuse-lite": "^1.0.30001760", - "fraction.js": "^5.3.4", - "picocolors": "^1.1.1", - "postcss-value-parser": "^4.2.0" - } - }, "chalk": { "version": "5.6.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.6.2.tgz", @@ -26410,9 +26757,9 @@ } }, "ora": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/ora/-/ora-9.0.0.tgz", - "integrity": "sha512-m0pg2zscbYgWbqRR6ABga5c3sZdEon7bSgjnlXC64kxtxLOyjRcbbUkLj7HFyy/FTD+P2xdBWu8snGhYI0jc4A==", + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/ora/-/ora-9.3.0.tgz", + "integrity": "sha512-lBX72MWFduWEf7v7uWf5DHp9Jn5BI8bNPGuFgtXMmr2uDz2Gz2749y3am3agSDdkhHPHYmmxEGSKH85ZLGzgXw==", "dev": true, "requires": { "chalk": "^5.6.2", @@ -26421,34 +26768,45 @@ "is-interactive": "^2.0.0", "is-unicode-supported": "^2.1.0", "log-symbols": "^7.0.1", - "stdin-discarder": "^0.2.2", - "string-width": "^8.1.0", - "strip-ansi": "^7.1.2" + "stdin-discarder": "^0.3.1", + "string-width": "^8.1.0" } }, "picomatch": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", - "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz", + "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==", + "dev": true + }, + "semver": { + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz", + "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==", + "dev": true + }, + "stdin-discarder": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/stdin-discarder/-/stdin-discarder-0.3.2.tgz", + "integrity": "sha512-eCPu1qRxPVkl5605OTWF8Wz40b4Mf45NY5LQmVPQ599knfs5QhASUm9GbJ5BDMDOXgrnh0wyEdvzmL//YMlw0A==", "dev": true }, "string-width": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-8.1.0.tgz", - "integrity": "sha512-Kxl3KJGb/gxkaUMOjRsQ8IrXiGW75O4E3RPjFIINOVH8AMl2SQ/yWdTzWwF3FevIX9LcMAjJW+GRwAlAbTSXdg==", + "version": "8.2.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-8.2.1.tgz", + "integrity": "sha512-IIaP0g3iy9Cyy18w3M9YcaDudujEAVHKt3a3QJg1+sr/oX96TbaGUubG0hJyCjCBThFH+tFpcIyoUHUn1ogaLA==", "dev": true, "requires": { - "get-east-asian-width": "^1.3.0", - "strip-ansi": "^7.1.0" + "get-east-asian-width": "^1.5.0", + "strip-ansi": "^7.1.2" } }, "strip-ansi": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.2.tgz", - "integrity": "sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.2.0.tgz", + "integrity": "sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w==", "dev": true, "requires": { - "ansi-regex": "^6.0.1" + "ansi-regex": "^6.2.2" } }, "wsl-utils": { @@ -26464,35 +26822,35 @@ } }, "@angular-devkit/build-webpack": { - "version": "0.2101.5", - "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.2101.5.tgz", - "integrity": "sha512-G3mvUXiSU3DL1QKngq/yXT94Wr+IdqtOM/1VC3NmsV9KX3OSfwfc560dmhY1efqc9gBA5qL+7kLlgV7Kx/Su3A==", + "version": "0.2102.9", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.2102.9.tgz", + "integrity": "sha512-X7Mx6wxPYzpBNnLts+uppy/ksJbaEDXH3mWXqjGoyFJzXIUj3MAspdqlyqiLw1goDEmeBoqs+zbwkxXZIUkxmg==", "dev": true, "requires": { - "@angular-devkit/architect": "0.2101.5", + "@angular-devkit/architect": "0.2102.9", "rxjs": "7.8.2" }, "dependencies": { "@angular-devkit/architect": { - "version": "0.2101.5", - "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.2101.5.tgz", - "integrity": "sha512-eTo6wWzUW5AyBBLTbaUTpBHhGbZhzteErtNGklWkhjicCr/soNH+2mVtvg8bqA8sNreYffK1VXKFsq5NyMh5qg==", + "version": "0.2102.9", + "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.2102.9.tgz", + "integrity": "sha512-OlPEtd5pPZSFdkXEIyZ93jsfBrkvUrVPb3xs4z2WPRnBRk9jyey40eKnmql86KRHfdn4WjHpmde4NDgtDpZRxQ==", "dev": true, "requires": { - "@angular-devkit/core": "21.1.5", + "@angular-devkit/core": "21.2.9", "rxjs": "7.8.2" } }, "@angular-devkit/core": { - "version": "21.1.5", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-21.1.5.tgz", - "integrity": "sha512-KUKbllHvHefkAbTBjWNpRPyrpBqecW+6HBBAR+XNbKBuFTHkG+gxtuwMXNsvO5KECKwQphvQt5h3g05Xtaf0LQ==", + "version": "21.2.9", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-21.2.9.tgz", + "integrity": "sha512-04rdOGEzjLWFHlyAwqtuikginFeQ2jfXS5HqqKNP0VtG6Uu9NUDAEW5UDvXgqkEMfCDwGZbmg2iRHxp3AmAKVw==", "dev": true, "requires": { "ajv": "8.18.0", "ajv-formats": "3.0.1", "jsonc-parser": "3.3.1", - "picomatch": "4.0.3", + "picomatch": "4.0.4", "rxjs": "7.8.2", "source-map": "0.7.6" } @@ -26519,9 +26877,9 @@ } }, "picomatch": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", - "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz", + "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==", "dev": true } } @@ -26694,69 +27052,69 @@ } }, "@angular/animations": { - "version": "21.1.6", - "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-21.1.6.tgz", - "integrity": "sha512-Ft8B0tHBRyd7ORpbaa2S0yRqHSdsyMH6oot7ODAA3kv03k4GTwp74U6Y/NyV4JoZ+lr28+EV4YMv3mAqJwIy/g==", + "version": "21.2.11", + "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-21.2.11.tgz", + "integrity": "sha512-CpyK3XxcjuYj8cl/eaKZYxrIpVOG7Ci49YSPIzyY5bzxMv7znOoRuPnEMV/EENfiQ12IraWCBh9dd7g37PBjOw==", "requires": { "tslib": "^2.3.0" } }, "@angular/build": { - "version": "21.1.5", - "resolved": "https://registry.npmjs.org/@angular/build/-/build-21.1.5.tgz", - "integrity": "sha512-v2eDinWKlSKuk5pyMMY8j5TMFW8HA9B1l13TrDDpxsRGAAzekg7TFNyuh1x9Y6Rq4Vn+8/8pCjMUPZigzWbMhQ==", + "version": "21.2.9", + "resolved": "https://registry.npmjs.org/@angular/build/-/build-21.2.9.tgz", + "integrity": "sha512-XYP5ALB56NWvcQisznmvQdVU6WJdUCAuCAEN2eDZNVd9X1IqRNfewQfFH6FyHo7SrK4GHDReqm6xWW6rs0+weQ==", "dev": true, "requires": { "@ampproject/remapping": "2.3.0", - "@angular-devkit/architect": "0.2101.5", - "@babel/core": "7.28.5", + "@angular-devkit/architect": "0.2102.9", + "@babel/core": "7.29.0", "@babel/helper-annotate-as-pure": "7.27.3", "@babel/helper-split-export-declaration": "7.24.7", "@inquirer/confirm": "5.1.21", - "@vitejs/plugin-basic-ssl": "2.1.0", - "beasties": "0.3.5", + "@vitejs/plugin-basic-ssl": "2.1.4", + "beasties": "0.4.1", "browserslist": "^4.26.0", - "esbuild": "0.27.2", + "esbuild": "0.27.3", "https-proxy-agent": "7.0.6", "istanbul-lib-instrument": "6.0.3", "jsonc-parser": "3.3.1", "listr2": "9.0.5", - "lmdb": "3.4.4", + "lmdb": "3.5.1", "magic-string": "0.30.21", "mrmime": "2.0.1", "parse5-html-rewriting-stream": "8.0.0", - "picomatch": "4.0.3", + "picomatch": "4.0.4", "piscina": "5.1.4", - "rolldown": "1.0.0-beta.58", - "sass": "1.97.1", - "semver": "7.7.3", + "rolldown": "1.0.0-rc.4", + "sass": "1.97.3", + "semver": "7.7.4", "source-map-support": "0.5.21", "tinyglobby": "0.2.15", - "undici": "7.20.0", - "vite": "7.3.0", - "watchpack": "2.5.0" + "undici": "7.24.4", + "vite": "7.3.2", + "watchpack": "2.5.1" }, "dependencies": { "@angular-devkit/architect": { - "version": "0.2101.5", - "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.2101.5.tgz", - "integrity": "sha512-eTo6wWzUW5AyBBLTbaUTpBHhGbZhzteErtNGklWkhjicCr/soNH+2mVtvg8bqA8sNreYffK1VXKFsq5NyMh5qg==", + "version": "0.2102.9", + "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.2102.9.tgz", + "integrity": "sha512-OlPEtd5pPZSFdkXEIyZ93jsfBrkvUrVPb3xs4z2WPRnBRk9jyey40eKnmql86KRHfdn4WjHpmde4NDgtDpZRxQ==", "dev": true, "requires": { - "@angular-devkit/core": "21.1.5", + "@angular-devkit/core": "21.2.9", "rxjs": "7.8.2" } }, "@angular-devkit/core": { - "version": "21.1.5", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-21.1.5.tgz", - "integrity": "sha512-KUKbllHvHefkAbTBjWNpRPyrpBqecW+6HBBAR+XNbKBuFTHkG+gxtuwMXNsvO5KECKwQphvQt5h3g05Xtaf0LQ==", + "version": "21.2.9", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-21.2.9.tgz", + "integrity": "sha512-04rdOGEzjLWFHlyAwqtuikginFeQ2jfXS5HqqKNP0VtG6Uu9NUDAEW5UDvXgqkEMfCDwGZbmg2iRHxp3AmAKVw==", "dev": true, "requires": { "ajv": "8.18.0", "ajv-formats": "3.0.1", "jsonc-parser": "3.3.1", - "picomatch": "4.0.3", + "picomatch": "4.0.4", "rxjs": "7.8.2", "source-map": "0.7.6" } @@ -26805,17 +27163,23 @@ } }, "picomatch": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", - "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz", + "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==", + "dev": true + }, + "semver": { + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz", + "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==", "dev": true } } }, "@angular/cdk": { - "version": "21.1.6", - "resolved": "https://registry.npmjs.org/@angular/cdk/-/cdk-21.1.6.tgz", - "integrity": "sha512-a6isY8eWxfRO99KPs8GLMQRDE06diNbPmD9tcYi+EWxjPFOZ88QJmMN8a0yja+LDQaG2kRbNBLjYUEro3qCpTQ==", + "version": "21.2.9", + "resolved": "https://registry.npmjs.org/@angular/cdk/-/cdk-21.2.9.tgz", + "integrity": "sha512-0JXsr8f7xjV2815esTSq4+zGqWMa0CyNT/DV1F7lYS6qkYXcFdYUzGcd/WjNL05VKkajkSkWmTi6uyVsOpYdGA==", "requires": { "parse5": "^8.0.0", "tslib": "^2.3.0" @@ -26837,62 +27201,61 @@ } }, "@angular/cli": { - "version": "21.1.5", - "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-21.1.5.tgz", - "integrity": "sha512-ljqvAzSk8FKMaYW/aZhR+SXjudbQViYYkMlJvJUClGpokjDM9KfJWPX+QZfr2J+piW5yaaHmFaIMddO9QxkUDQ==", + "version": "21.2.9", + "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-21.2.9.tgz", + "integrity": "sha512-KldNb7vCEVOeyEUK57dguP3dTjYeikBmAohjAouu8JLtY8OOI+tf/TA31Gco/rxZ3nGqBwkvrqpD4rcDf5AhUA==", "requires": { - "@angular-devkit/architect": "0.2101.5", - "@angular-devkit/core": "21.1.5", - "@angular-devkit/schematics": "21.1.5", + "@angular-devkit/architect": "0.2102.9", + "@angular-devkit/core": "21.2.9", + "@angular-devkit/schematics": "21.2.9", "@inquirer/prompts": "7.10.1", "@listr2/prompt-adapter-inquirer": "3.0.5", "@modelcontextprotocol/sdk": "1.26.0", - "@schematics/angular": "21.1.5", + "@schematics/angular": "21.2.9", "@yarnpkg/lockfile": "1.1.0", - "algoliasearch": "5.46.2", + "algoliasearch": "5.48.1", "ini": "6.0.0", "jsonc-parser": "3.3.1", "listr2": "9.0.5", "npm-package-arg": "13.0.2", - "pacote": "21.0.4", + "pacote": "21.3.1", "parse5-html-rewriting-stream": "8.0.0", - "resolve": "1.22.11", - "semver": "7.7.3", + "semver": "7.7.4", "yargs": "18.0.0", - "zod": "4.3.5" + "zod": "4.3.6" }, "dependencies": { "@angular-devkit/architect": { - "version": "0.2101.5", - "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.2101.5.tgz", - "integrity": "sha512-eTo6wWzUW5AyBBLTbaUTpBHhGbZhzteErtNGklWkhjicCr/soNH+2mVtvg8bqA8sNreYffK1VXKFsq5NyMh5qg==", + "version": "0.2102.9", + "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.2102.9.tgz", + "integrity": "sha512-OlPEtd5pPZSFdkXEIyZ93jsfBrkvUrVPb3xs4z2WPRnBRk9jyey40eKnmql86KRHfdn4WjHpmde4NDgtDpZRxQ==", "requires": { - "@angular-devkit/core": "21.1.5", + "@angular-devkit/core": "21.2.9", "rxjs": "7.8.2" } }, "@angular-devkit/core": { - "version": "21.1.5", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-21.1.5.tgz", - "integrity": "sha512-KUKbllHvHefkAbTBjWNpRPyrpBqecW+6HBBAR+XNbKBuFTHkG+gxtuwMXNsvO5KECKwQphvQt5h3g05Xtaf0LQ==", + "version": "21.2.9", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-21.2.9.tgz", + "integrity": "sha512-04rdOGEzjLWFHlyAwqtuikginFeQ2jfXS5HqqKNP0VtG6Uu9NUDAEW5UDvXgqkEMfCDwGZbmg2iRHxp3AmAKVw==", "requires": { "ajv": "8.18.0", "ajv-formats": "3.0.1", "jsonc-parser": "3.3.1", - "picomatch": "4.0.3", + "picomatch": "4.0.4", "rxjs": "7.8.2", "source-map": "0.7.6" } }, "@angular-devkit/schematics": { - "version": "21.1.5", - "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-21.1.5.tgz", - "integrity": "sha512-CGmoorQL5+mVCJEHwHWOrhSd1hFxB3h66i9wUDizJAEQUM3mSml5SiglHArpWY/G4GmFwi6XVe+Jm3U8J/mcFg==", + "version": "21.2.9", + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-21.2.9.tgz", + "integrity": "sha512-Gyyuq2Vet70AMkbC+e0L6rjzjZWjSOyKTlOJvd99GjjyWQf6eezjd8IcF17ppKJsML6YUagO2I6AlWROq5yJmg==", "requires": { - "@angular-devkit/core": "21.1.5", + "@angular-devkit/core": "21.2.9", "jsonc-parser": "3.3.1", "magic-string": "0.30.21", - "ora": "9.0.0", + "ora": "9.3.0", "rxjs": "7.8.2" } }, @@ -26968,9 +27331,9 @@ } }, "ora": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/ora/-/ora-9.0.0.tgz", - "integrity": "sha512-m0pg2zscbYgWbqRR6ABga5c3sZdEon7bSgjnlXC64kxtxLOyjRcbbUkLj7HFyy/FTD+P2xdBWu8snGhYI0jc4A==", + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/ora/-/ora-9.3.0.tgz", + "integrity": "sha512-lBX72MWFduWEf7v7uWf5DHp9Jn5BI8bNPGuFgtXMmr2uDz2Gz2749y3am3agSDdkhHPHYmmxEGSKH85ZLGzgXw==", "requires": { "chalk": "^5.6.2", "cli-cursor": "^5.0.0", @@ -26978,15 +27341,14 @@ "is-interactive": "^2.0.0", "is-unicode-supported": "^2.1.0", "log-symbols": "^7.0.1", - "stdin-discarder": "^0.2.2", - "string-width": "^8.1.0", - "strip-ansi": "^7.1.2" + "stdin-discarder": "^0.3.1", + "string-width": "^8.1.0" }, "dependencies": { "string-width": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-8.2.0.tgz", - "integrity": "sha512-6hJPQ8N0V0P3SNmP6h2J99RLuzrWz2gvT7VnK5tKvrNqJoyS9W4/Fb8mo31UiPvy00z7DQXkP2hnKBVav76thw==", + "version": "8.2.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-8.2.1.tgz", + "integrity": "sha512-IIaP0g3iy9Cyy18w3M9YcaDudujEAVHKt3a3QJg1+sr/oX96TbaGUubG0hJyCjCBThFH+tFpcIyoUHUn1ogaLA==", "requires": { "get-east-asian-width": "^1.5.0", "strip-ansi": "^7.1.2" @@ -26995,9 +27357,19 @@ } }, "picomatch": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", - "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==" + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz", + "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==" + }, + "semver": { + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz", + "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==" + }, + "stdin-discarder": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/stdin-discarder/-/stdin-discarder-0.3.2.tgz", + "integrity": "sha512-eCPu1qRxPVkl5605OTWF8Wz40b4Mf45NY5LQmVPQ599knfs5QhASUm9GbJ5BDMDOXgrnh0wyEdvzmL//YMlw0A==" }, "string-width": { "version": "7.2.0", @@ -27048,27 +27420,27 @@ } }, "@angular/common": { - "version": "21.1.6", - "resolved": "https://registry.npmjs.org/@angular/common/-/common-21.1.6.tgz", - "integrity": "sha512-qEfwyJhebl2tHwFhKHE/ZzsCLMWnQ0u/UDS23KUA4tTWaOKH8Usu7DS1B3KnUravII8R6ZpYn86L+B903v9WxA==", + "version": "21.2.11", + "resolved": "https://registry.npmjs.org/@angular/common/-/common-21.2.11.tgz", + "integrity": "sha512-3Z3SABXpzM6fkX21WCRP6IwrjxNQVHM/3Fk2OXScExOAzpaOpS2bDgS4NB6rtCbmzKL/NFSp7ZPIZigfdqnWGw==", "requires": { "tslib": "^2.3.0" } }, "@angular/compiler": { - "version": "21.1.6", - "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-21.1.6.tgz", - "integrity": "sha512-8RFdfbWTyx+OiRkiK2LsYPuhv8b65S3x/4+98kZRCrzP6YNjq/qsuqpfMUIKwnjok78FfhGyEx4I5LOV3Vkabw==", + "version": "21.2.11", + "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-21.2.11.tgz", + "integrity": "sha512-/KdE0kPQr24K/aNsdIDS2or555+8CrQxyRB5MxPKy3/8d6EvilEY/UN7pB7A5xgRQtUPMea08ZzLFJVp1qNbDA==", "requires": { "tslib": "^2.3.0" } }, "@angular/compiler-cli": { - "version": "21.1.6", - "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-21.1.6.tgz", - "integrity": "sha512-0JU2cBDMSB4hU4KwDS2ThrkGh+Njf8Yfm11CKR0NWbHGwW1xHa7whlcpUzX/USqL+FNGXQ75R0fOcZrT86YvrA==", + "version": "21.2.11", + "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-21.2.11.tgz", + "integrity": "sha512-qp/LgptDYJvpEHVVdwBEtkcbybre/ftanu0qJMpH3mu5FC4HEEOChl+9m7UVrmL4jC1ZkoZcgtzsGKAQr8mw2g==", "requires": { - "@babel/core": "7.28.5", + "@babel/core": "7.29.0", "@jridgewell/sourcemap-codec": "^1.4.14", "chokidar": "^5.0.0", "convert-source-map": "^1.5.1", @@ -27165,56 +27537,56 @@ } }, "@angular/core": { - "version": "21.2.4", - "resolved": "https://registry.npmjs.org/@angular/core/-/core-21.2.4.tgz", - "integrity": "sha512-2+gd67ZuXHpGOqeb2o7XZPueEWEP81eJza2tSHkT5QMV8lnYllDEmaNnkPxnIjSLGP1O3PmiXxo4z8ibHkLZwg==", + "version": "21.2.11", + "resolved": "https://registry.npmjs.org/@angular/core/-/core-21.2.11.tgz", + "integrity": "sha512-EULAfQ0m/I9hZJes74OFlrnfDWqlfV0esE0CkHehO5IEF9rd769+dfuGEAJAzrz+/6Q3PhS0bWDYiT68z1H8Ag==", "requires": { "tslib": "^2.3.0" } }, "@angular/elements": { - "version": "21.1.6", - "resolved": "https://registry.npmjs.org/@angular/elements/-/elements-21.1.6.tgz", - "integrity": "sha512-LvF0kgh1XxLlXyw5CS5C787HYFAIGVHAg9HNgGZKINeu16Og7KCnsVszAyWiVn1t3trcLARcScYgrOcuwBYzIg==", + "version": "21.2.11", + "resolved": "https://registry.npmjs.org/@angular/elements/-/elements-21.2.11.tgz", + "integrity": "sha512-7pQNZxJQ7Ojs70hfrMb90rgWehuAogsYcYG9MOUZWUq45OAiUNLHn37KXq/Jl0y/OpDjKi2qT9N/lmOrkT3tpA==", "requires": { "tslib": "^2.3.0" } }, "@angular/forms": { - "version": "21.1.6", - "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-21.1.6.tgz", - "integrity": "sha512-Bw3nVDWihGUGyys7oq2zdJ2MjvJvU1x1WaExYmp3rKU3S7rQXGq6IxY8bopTtHirTANrY2KUEnJ2IlK+xVg9OA==", + "version": "21.2.11", + "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-21.2.11.tgz", + "integrity": "sha512-F67V612wHxPXHrbp825VirYfGPKBUM8PvL9atN2Ku1fsdGSFPU3hTxu1HU8fKYLLBpKYVVuqFqzaU/qIpTXGYA==", "requires": { "@standard-schema/spec": "^1.0.0", "tslib": "^2.3.0" } }, "@angular/language-service": { - "version": "21.1.6", - "resolved": "https://registry.npmjs.org/@angular/language-service/-/language-service-21.1.6.tgz", - "integrity": "sha512-I2gYI9cKP/B/rUz8WVaWNpuULSdq4W+ZUm6YQyUXdGEh3dDEssK1xLucPBfUT7RAr6h7+w5/RS+zKWC1q9g24w==", + "version": "21.2.11", + "resolved": "https://registry.npmjs.org/@angular/language-service/-/language-service-21.2.11.tgz", + "integrity": "sha512-M5BVtsfgjUdR/9SkVFBQ/WoAoSSybeYOeAzuBThwmAz4CA+yvZtyuJNlaUQ2IaF7f5TCtg05Pg9YRgKOusK3HQ==", "dev": true }, "@angular/platform-browser": { - "version": "21.1.6", - "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-21.1.6.tgz", - "integrity": "sha512-im6aNcgYdIYIVW2262ATkC39WUmhc+KVNVKwKtO5jlOsq9TWmxT1/esncEAlokMe5os6eeb/Ga4D6Ghj0gj4Ig==", + "version": "21.2.11", + "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-21.2.11.tgz", + "integrity": "sha512-Uz/KwGjSEvbE8J9kNSSetzxhBWjCXv9OuxH1w2WkW6jLNU3vgvzuKX7SXDyUys6KJv5TqkClJ9BLeU11QbmJdw==", "requires": { "tslib": "^2.3.0" } }, "@angular/platform-browser-dynamic": { - "version": "21.1.6", - "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-21.1.6.tgz", - "integrity": "sha512-lVtHkhK/jnrGdX+4S8ItfMO+5buHAU9NMHeDq+QqalnXznMaC7Qd4BPLcRWW4QAI177zG0NE1Bet5cjO75N9+w==", + "version": "21.2.11", + "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-21.2.11.tgz", + "integrity": "sha512-wdlYzXkc6X6f8mj2jLlaDJlRiwmurffAf37NCXMNqgTTc0j0iD/DLd3JQScMVCJ9bZ0se02EF5X3Z82W0vmmPA==", "requires": { "tslib": "^2.3.0" } }, "@angular/router": { - "version": "21.1.6", - "resolved": "https://registry.npmjs.org/@angular/router/-/router-21.1.6.tgz", - "integrity": "sha512-JJn0gfeRks2czbeLmtxxjIlmKtOmjYi3yAaoAwiwpbfVHPLJeJ32axLJREAU0dBkThF8YD+r18uEJ9UrvkqrtA==", + "version": "21.2.11", + "resolved": "https://registry.npmjs.org/@angular/router/-/router-21.2.11.tgz", + "integrity": "sha512-IB7/KuRDsxAjCOxYNccq2LdCTKuu59cx5MmOhrt+TarvkNE/xdlFkP7vtrCl44DJt0q7/tveWvsn5oqTw7rN7A==", "requires": { "tslib": "^2.3.0" } @@ -27254,6 +27626,44 @@ "@appsignal/javascript": "=1.6.1" } }, + "@asamuzakjp/css-color": { + "version": "5.1.11", + "resolved": "https://registry.npmjs.org/@asamuzakjp/css-color/-/css-color-5.1.11.tgz", + "integrity": "sha512-KVw6qIiCTUQhByfTd78h2yD1/00waTmm9uy/R7Ck/ctUyAPj+AEDLkQIdJW0T8+qGgj3j5bpNKK7Q3G+LedJWg==", + "dev": true, + "requires": { + "@asamuzakjp/generational-cache": "^1.0.1", + "@csstools/css-calc": "^3.2.0", + "@csstools/css-color-parser": "^4.1.0", + "@csstools/css-parser-algorithms": "^4.0.0", + "@csstools/css-tokenizer": "^4.0.0" + } + }, + "@asamuzakjp/dom-selector": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/@asamuzakjp/dom-selector/-/dom-selector-7.1.1.tgz", + "integrity": "sha512-67RZDnYRc8H/8MLDgQCDE//zoqVFwajkepHZgmXrbwybzXOEwOWGPYGmALYl9J2DOLfFPPs6kKCqmbzV895hTQ==", + "dev": true, + "requires": { + "@asamuzakjp/generational-cache": "^1.0.1", + "@asamuzakjp/nwsapi": "^2.3.9", + "bidi-js": "^1.0.3", + "css-tree": "^3.2.1", + "is-potential-custom-element-name": "^1.0.1" + } + }, + "@asamuzakjp/generational-cache": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@asamuzakjp/generational-cache/-/generational-cache-1.0.1.tgz", + "integrity": "sha512-wajfB8KqzMCN2KGNFdLkReeHncd0AslUSrvHVvvYWuU8ghncRJoA50kT3zP9MVL0+9g4/67H+cdvBskj9THPzg==", + "dev": true + }, + "@asamuzakjp/nwsapi": { + "version": "2.3.9", + "resolved": "https://registry.npmjs.org/@asamuzakjp/nwsapi/-/nwsapi-2.3.9.tgz", + "integrity": "sha512-n8GuYSrI9bF7FFZ/SjhwevlHc8xaVlb/7HmHelnc/PZXBD2ZR49NnN9sMMuDdEGPeeRQ5d0hqlSlEpgCX3Wl0Q==", + "dev": true + }, "@authress/login": { "version": "2.6.417", "resolved": "https://registry.npmjs.org/@authress/login/-/login-2.6.417.tgz", @@ -27264,9 +27674,9 @@ } }, "@babel/code-frame": { - "version": "7.28.6", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.28.6.tgz", - "integrity": "sha512-JYgintcMjRiCvS8mMECzaEn+m3PfoQiyqukOMCCVQtoJGYJw8j/8LBJEiqkHLkfwCcs74E3pbAUFNg7d9VNJ+Q==", + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.29.0.tgz", + "integrity": "sha512-9NhCeYjq9+3uxgdtp20LSiJXJvN0FeCtNGpJxuMFZ1Kv3cWUNb6DOhJwUvcVCzKGR66cw4njwM6hrJLqgOwbcw==", "requires": { "@babel/helper-validator-identifier": "^7.28.5", "js-tokens": "^4.0.0", @@ -27274,24 +27684,24 @@ } }, "@babel/compat-data": { - "version": "7.28.6", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.28.6.tgz", - "integrity": "sha512-2lfu57JtzctfIrcGMz992hyLlByuzgIk58+hhGCxjKZ3rWI82NnVLjXcaTqkI2NvlcvOskZaiZ5kjUALo3Lpxg==" + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.29.0.tgz", + "integrity": "sha512-T1NCJqT/j9+cn8fvkt7jtwbLBfLC/1y1c7NtCeXFRgzGTsafi68MRv8yzkYSapBnFA6L3U2VSc02ciDzoAJhJg==" }, "@babel/core": { - "version": "7.28.5", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.28.5.tgz", - "integrity": "sha512-e7jT4DxYvIDLk1ZHmU/m/mB19rex9sv0c2ftBtjSBv+kVM/902eh0fINUzD7UwLLNR+jU585GxUJ8/EBfAM5fw==", + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.29.0.tgz", + "integrity": "sha512-CGOfOJqWjg2qW/Mb6zNsDm+u5vFQ8DxXfbM09z69p5Z6+mE1ikP2jUXw+j42Pf1XTYED2Rni5f95npYeuwMDQA==", "requires": { - "@babel/code-frame": "^7.27.1", - "@babel/generator": "^7.28.5", - "@babel/helper-compilation-targets": "^7.27.2", - "@babel/helper-module-transforms": "^7.28.3", - "@babel/helpers": "^7.28.4", - "@babel/parser": "^7.28.5", - "@babel/template": "^7.27.2", - "@babel/traverse": "^7.28.5", - "@babel/types": "^7.28.5", + "@babel/code-frame": "^7.29.0", + "@babel/generator": "^7.29.0", + "@babel/helper-compilation-targets": "^7.28.6", + "@babel/helper-module-transforms": "^7.28.6", + "@babel/helpers": "^7.28.6", + "@babel/parser": "^7.29.0", + "@babel/template": "^7.28.6", + "@babel/traverse": "^7.29.0", + "@babel/types": "^7.29.0", "@jridgewell/remapping": "^2.3.5", "convert-source-map": "^2.0.0", "debug": "^4.1.0", @@ -27313,12 +27723,12 @@ } }, "@babel/generator": { - "version": "7.28.5", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.28.5.tgz", - "integrity": "sha512-3EwLFhZ38J4VyIP6WNtt2kUdW9dokXA9Cr4IVIFHuCpZ3H8/YFOl5JjZHisrn1fATPBmKKqXzDFvh9fUwHz6CQ==", + "version": "7.29.1", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.29.1.tgz", + "integrity": "sha512-qsaF+9Qcm2Qv8SRIMMscAvG4O3lJ0F1GuMo5HR/Bp02LopNgnZBC/EkbevHFeGs4ls/oPz9v+Bsmzbkbe+0dUw==", "requires": { - "@babel/parser": "^7.28.5", - "@babel/types": "^7.28.5", + "@babel/parser": "^7.29.0", + "@babel/types": "^7.29.0", "@jridgewell/gen-mapping": "^0.3.12", "@jridgewell/trace-mapping": "^0.3.28", "jsesc": "^3.0.2" @@ -27395,16 +27805,16 @@ } }, "@babel/helper-define-polyfill-provider": { - "version": "0.6.5", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.5.tgz", - "integrity": "sha512-uJnGFcPsWQK8fvjgGP5LZUZZsYGIoPeRjSF5PGwrelYgq7Q15/Ft9NGFp1zglwgIv//W0uG4BevRuSJRyylZPg==", + "version": "0.6.8", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.8.tgz", + "integrity": "sha512-47UwBLPpQi1NoWzLuHNjRoHlYXMwIJoBf7MFou6viC/sIHWYygpvr0B6IAyh5sBdA2nr2LPIRww8lfaUVQINBA==", "dev": true, "requires": { - "@babel/helper-compilation-targets": "^7.27.2", - "@babel/helper-plugin-utils": "^7.27.1", - "debug": "^4.4.1", + "@babel/helper-compilation-targets": "^7.28.6", + "@babel/helper-plugin-utils": "^7.28.6", + "debug": "^4.4.3", "lodash.debounce": "^4.0.8", - "resolve": "^1.22.10" + "resolve": "^1.22.11" }, "dependencies": { "debug": { @@ -27544,11 +27954,11 @@ } }, "@babel/parser": { - "version": "7.28.6", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.28.6.tgz", - "integrity": "sha512-TeR9zWR18BvbfPmGbLampPMW+uW1NZnJlRuuHso8i87QZNq2JRF9i6RgxRqtEq+wQGsS19NNTWr2duhnE49mfQ==", + "version": "7.29.2", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.29.2.tgz", + "integrity": "sha512-4GgRzy/+fsBa72/RZVJmGKPmZu9Byn8o4MoLpmNe1m8ZfYnz5emHLQz3U4gLud6Zwl0RZIcgiLD7Uq7ySFuDLA==", "requires": { - "@babel/types": "^7.28.6" + "@babel/types": "^7.29.0" } }, "@babel/plugin-bugfix-firefox-class-in-computed-class-key": { @@ -27644,24 +28054,24 @@ } }, "@babel/plugin-transform-async-generator-functions": { - "version": "7.28.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.28.0.tgz", - "integrity": "sha512-BEOdvX4+M765icNPZeidyADIvQ1m1gmunXufXxvRESy/jNNyfovIqUyE7MVgGBjWktCoJlzvFA1To2O4ymIO3Q==", + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.29.0.tgz", + "integrity": "sha512-va0VdWro4zlBr2JsXC+ofCPB2iG12wPtVGTWFx2WLDOM3nYQZZIGP82qku2eW/JR83sD+k2k+CsNtyEbUqhU6w==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-plugin-utils": "^7.28.6", "@babel/helper-remap-async-to-generator": "^7.27.1", - "@babel/traverse": "^7.28.0" + "@babel/traverse": "^7.29.0" } }, "@babel/plugin-transform-async-to-generator": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.27.1.tgz", - "integrity": "sha512-NREkZsZVJS4xmTr8qzE5y8AfIPqsdQfRuUiLRTEzb7Qii8iFWCyDKaUV2c0rCuh4ljDZ98ALHP/PetiBV2nddA==", + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.28.6.tgz", + "integrity": "sha512-ilTRcmbuXjsMmcZ3HASTe4caH5Tpo93PkTxF9oG2VZsSWsahydmcEHhix9Ik122RcTnZnUzPbmux4wh1swfv7g==", "dev": true, "requires": { - "@babel/helper-module-imports": "^7.27.1", - "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-module-imports": "^7.28.6", + "@babel/helper-plugin-utils": "^7.28.6", "@babel/helper-remap-async-to-generator": "^7.27.1" } }, @@ -27757,9 +28167,9 @@ } }, "@babel/plugin-transform-duplicate-named-capturing-groups-regex": { - "version": "7.28.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-named-capturing-groups-regex/-/plugin-transform-duplicate-named-capturing-groups-regex-7.28.6.tgz", - "integrity": "sha512-5suVoXjC14lUN6ZL9OLKIHCNVWCrqGqlmEp/ixdXjvgnEl/kauLvvMO/Xw9NyMc95Joj1AeLVPVMvibBgSoFlA==", + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-named-capturing-groups-regex/-/plugin-transform-duplicate-named-capturing-groups-regex-7.29.0.tgz", + "integrity": "sha512-zBPcW2lFGxdiD8PUnPwJjag2J9otbcLQzvbiOzDxpYXyCuYX9agOwMPGn1prVH0a4qzhCKu24rlH4c1f7yA8rw==", "dev": true, "requires": { "@babel/helper-create-regexp-features-plugin": "^7.28.5", @@ -27881,15 +28291,15 @@ } }, "@babel/plugin-transform-modules-systemjs": { - "version": "7.28.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.28.5.tgz", - "integrity": "sha512-vn5Jma98LCOeBy/KpeQhXcV2WZgaRUtjwQmjoBuLNlOmkg0fB5pdvYVeWRYI69wWKwK2cD1QbMiUQnoujWvrew==", + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.29.0.tgz", + "integrity": "sha512-PrujnVFbOdUpw4UHiVwKvKRLMMic8+eC0CuNlxjsyZUiBjhFdPsewdXCkveh2KqBA9/waD0W1b4hXSOBQJezpQ==", "dev": true, "requires": { - "@babel/helper-module-transforms": "^7.28.3", - "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-module-transforms": "^7.28.6", + "@babel/helper-plugin-utils": "^7.28.6", "@babel/helper-validator-identifier": "^7.28.5", - "@babel/traverse": "^7.28.5" + "@babel/traverse": "^7.29.0" } }, "@babel/plugin-transform-modules-umd": { @@ -27903,13 +28313,13 @@ } }, "@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.27.1.tgz", - "integrity": "sha512-SstR5JYy8ddZvD6MhV0tM/j16Qds4mIpJTOd1Yu9J9pJjH93bxHECF7pgtc28XvkzTD6Pxcm/0Z73Hvk7kb3Ng==", + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.29.0.tgz", + "integrity": "sha512-1CZQA5KNAD6ZYQLPw7oi5ewtDNxH/2vuCh+6SmvgDfhumForvs8a1o9n0UrEoBD8HU4djO2yWngTQlXl1NDVEQ==", "dev": true, "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.27.1", - "@babel/helper-plugin-utils": "^7.27.1" + "@babel/helper-create-regexp-features-plugin": "^7.28.5", + "@babel/helper-plugin-utils": "^7.28.6" } }, "@babel/plugin-transform-new-target": { @@ -28021,9 +28431,9 @@ } }, "@babel/plugin-transform-regenerator": { - "version": "7.28.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.28.6.tgz", - "integrity": "sha512-eZhoEZHYQLL5uc1gS5e9/oTknS0sSSAtd5TkKMUp3J+S/CaUjagc0kOUPsEbDmMeva0nC3WWl4SxVY6+OBuxfw==", + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.29.0.tgz", + "integrity": "sha512-FijqlqMA7DmRdg/aINBSs04y8XNTYw/lr1gJ2WsmBnnaNw1iS43EPkJW+zK7z65auG3AWRFXWj+NcTQwYptUog==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.28.6" @@ -28049,13 +28459,13 @@ } }, "@babel/plugin-transform-runtime": { - "version": "7.28.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.28.5.tgz", - "integrity": "sha512-20NUVgOrinudkIBzQ2bNxP08YpKprUkRTiRSd2/Z5GOdPImJGkoN4Z7IQe1T5AdyKI1i5L6RBmluqdSzvaq9/w==", + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.29.0.tgz", + "integrity": "sha512-jlaRT5dJtMaMCV6fAuLbsQMSwz/QkvaHOHOSXRitGGwSpR1blCY4KUKoyP2tYO8vJcqYe8cEj96cqSztv3uF9w==", "dev": true, "requires": { - "@babel/helper-module-imports": "^7.27.1", - "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-module-imports": "^7.28.6", + "@babel/helper-plugin-utils": "^7.28.6", "babel-plugin-polyfill-corejs2": "^0.4.14", "babel-plugin-polyfill-corejs3": "^0.13.0", "babel-plugin-polyfill-regenerator": "^0.6.5", @@ -28156,83 +28566,93 @@ } }, "@babel/preset-env": { - "version": "7.28.5", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.28.5.tgz", - "integrity": "sha512-S36mOoi1Sb6Fz98fBfE+UZSpYw5mJm0NUHtIKrOuNcqeFauy1J6dIvXm2KRVKobOSaGq4t/hBXdN4HGU3wL9Wg==", + "version": "7.29.2", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.29.2.tgz", + "integrity": "sha512-DYD23veRYGvBFhcTY1iUvJnDNpuqNd/BzBwCvzOTKUnJjKg5kpUBh3/u9585Agdkgj+QuygG7jLfOPWMa2KVNw==", "dev": true, "requires": { - "@babel/compat-data": "^7.28.5", - "@babel/helper-compilation-targets": "^7.27.2", - "@babel/helper-plugin-utils": "^7.27.1", + "@babel/compat-data": "^7.29.0", + "@babel/helper-compilation-targets": "^7.28.6", + "@babel/helper-plugin-utils": "^7.28.6", "@babel/helper-validator-option": "^7.27.1", "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.28.5", "@babel/plugin-bugfix-safari-class-field-initializer-scope": "^7.27.1", "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.27.1", "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.27.1", - "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.28.3", + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.28.6", "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", - "@babel/plugin-syntax-import-assertions": "^7.27.1", - "@babel/plugin-syntax-import-attributes": "^7.27.1", + "@babel/plugin-syntax-import-assertions": "^7.28.6", + "@babel/plugin-syntax-import-attributes": "^7.28.6", "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", "@babel/plugin-transform-arrow-functions": "^7.27.1", - "@babel/plugin-transform-async-generator-functions": "^7.28.0", - "@babel/plugin-transform-async-to-generator": "^7.27.1", + "@babel/plugin-transform-async-generator-functions": "^7.29.0", + "@babel/plugin-transform-async-to-generator": "^7.28.6", "@babel/plugin-transform-block-scoped-functions": "^7.27.1", - "@babel/plugin-transform-block-scoping": "^7.28.5", - "@babel/plugin-transform-class-properties": "^7.27.1", - "@babel/plugin-transform-class-static-block": "^7.28.3", - "@babel/plugin-transform-classes": "^7.28.4", - "@babel/plugin-transform-computed-properties": "^7.27.1", + "@babel/plugin-transform-block-scoping": "^7.28.6", + "@babel/plugin-transform-class-properties": "^7.28.6", + "@babel/plugin-transform-class-static-block": "^7.28.6", + "@babel/plugin-transform-classes": "^7.28.6", + "@babel/plugin-transform-computed-properties": "^7.28.6", "@babel/plugin-transform-destructuring": "^7.28.5", - "@babel/plugin-transform-dotall-regex": "^7.27.1", + "@babel/plugin-transform-dotall-regex": "^7.28.6", "@babel/plugin-transform-duplicate-keys": "^7.27.1", - "@babel/plugin-transform-duplicate-named-capturing-groups-regex": "^7.27.1", + "@babel/plugin-transform-duplicate-named-capturing-groups-regex": "^7.29.0", "@babel/plugin-transform-dynamic-import": "^7.27.1", - "@babel/plugin-transform-explicit-resource-management": "^7.28.0", - "@babel/plugin-transform-exponentiation-operator": "^7.28.5", + "@babel/plugin-transform-explicit-resource-management": "^7.28.6", + "@babel/plugin-transform-exponentiation-operator": "^7.28.6", "@babel/plugin-transform-export-namespace-from": "^7.27.1", "@babel/plugin-transform-for-of": "^7.27.1", "@babel/plugin-transform-function-name": "^7.27.1", - "@babel/plugin-transform-json-strings": "^7.27.1", + "@babel/plugin-transform-json-strings": "^7.28.6", "@babel/plugin-transform-literals": "^7.27.1", - "@babel/plugin-transform-logical-assignment-operators": "^7.28.5", + "@babel/plugin-transform-logical-assignment-operators": "^7.28.6", "@babel/plugin-transform-member-expression-literals": "^7.27.1", "@babel/plugin-transform-modules-amd": "^7.27.1", - "@babel/plugin-transform-modules-commonjs": "^7.27.1", - "@babel/plugin-transform-modules-systemjs": "^7.28.5", + "@babel/plugin-transform-modules-commonjs": "^7.28.6", + "@babel/plugin-transform-modules-systemjs": "^7.29.0", "@babel/plugin-transform-modules-umd": "^7.27.1", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.27.1", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.29.0", "@babel/plugin-transform-new-target": "^7.27.1", - "@babel/plugin-transform-nullish-coalescing-operator": "^7.27.1", - "@babel/plugin-transform-numeric-separator": "^7.27.1", - "@babel/plugin-transform-object-rest-spread": "^7.28.4", + "@babel/plugin-transform-nullish-coalescing-operator": "^7.28.6", + "@babel/plugin-transform-numeric-separator": "^7.28.6", + "@babel/plugin-transform-object-rest-spread": "^7.28.6", "@babel/plugin-transform-object-super": "^7.27.1", - "@babel/plugin-transform-optional-catch-binding": "^7.27.1", - "@babel/plugin-transform-optional-chaining": "^7.28.5", + "@babel/plugin-transform-optional-catch-binding": "^7.28.6", + "@babel/plugin-transform-optional-chaining": "^7.28.6", "@babel/plugin-transform-parameters": "^7.27.7", - "@babel/plugin-transform-private-methods": "^7.27.1", - "@babel/plugin-transform-private-property-in-object": "^7.27.1", + "@babel/plugin-transform-private-methods": "^7.28.6", + "@babel/plugin-transform-private-property-in-object": "^7.28.6", "@babel/plugin-transform-property-literals": "^7.27.1", - "@babel/plugin-transform-regenerator": "^7.28.4", - "@babel/plugin-transform-regexp-modifiers": "^7.27.1", + "@babel/plugin-transform-regenerator": "^7.29.0", + "@babel/plugin-transform-regexp-modifiers": "^7.28.6", "@babel/plugin-transform-reserved-words": "^7.27.1", "@babel/plugin-transform-shorthand-properties": "^7.27.1", - "@babel/plugin-transform-spread": "^7.27.1", + "@babel/plugin-transform-spread": "^7.28.6", "@babel/plugin-transform-sticky-regex": "^7.27.1", "@babel/plugin-transform-template-literals": "^7.27.1", "@babel/plugin-transform-typeof-symbol": "^7.27.1", "@babel/plugin-transform-unicode-escapes": "^7.27.1", - "@babel/plugin-transform-unicode-property-regex": "^7.27.1", + "@babel/plugin-transform-unicode-property-regex": "^7.28.6", "@babel/plugin-transform-unicode-regex": "^7.27.1", - "@babel/plugin-transform-unicode-sets-regex": "^7.27.1", + "@babel/plugin-transform-unicode-sets-regex": "^7.28.6", "@babel/preset-modules": "0.1.6-no-external-plugins", - "babel-plugin-polyfill-corejs2": "^0.4.14", - "babel-plugin-polyfill-corejs3": "^0.13.0", - "babel-plugin-polyfill-regenerator": "^0.6.5", - "core-js-compat": "^3.43.0", + "babel-plugin-polyfill-corejs2": "^0.4.15", + "babel-plugin-polyfill-corejs3": "^0.14.0", + "babel-plugin-polyfill-regenerator": "^0.6.6", + "core-js-compat": "^3.48.0", "semver": "^6.3.1" }, "dependencies": { + "babel-plugin-polyfill-corejs3": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.14.2.tgz", + "integrity": "sha512-coWpDLJ410R781Npmn/SIBZEsAetR4xVi0SxLMXPaMO4lSf1MwnkGYMtkFxew0Dn8B3/CpbpYxN0JCgg8mn67g==", + "dev": true, + "requires": { + "@babel/helper-define-polyfill-provider": "^0.6.8", + "core-js-compat": "^3.48.0" + } + }, "semver": { "version": "6.3.1", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", @@ -28253,9 +28673,9 @@ } }, "@babel/runtime": { - "version": "7.28.4", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.28.4.tgz", - "integrity": "sha512-Q/N6JNWvIvPnLDvjlE1OUBLPQHH6l3CltCEsHIujp45zQUSSh8K+gHnaEX45yAT1nyngnINhvWtzN+Nb9D8RAQ==" + "version": "7.29.2", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.29.2.tgz", + "integrity": "sha512-JiDShH45zKHWyGe4ZNVRrCjBz8Nh9TMmZG1kh4QTK8hCBTWBi8Da+i7s1fJw7/lYpM4ccepSNfqzZ/QvABBi5g==" }, "@babel/runtime-corejs3": { "version": "7.28.4", @@ -28276,42 +28696,34 @@ } }, "@babel/traverse": { - "version": "7.28.6", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.28.6.tgz", - "integrity": "sha512-fgWX62k02qtjqdSNTAGxmKYY/7FSL9WAS1o2Hu5+I5m9T0yxZzr4cnrfXQ/MX0rIifthCSs6FKTlzYbJcPtMNg==", + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.29.0.tgz", + "integrity": "sha512-4HPiQr0X7+waHfyXPZpWPfWL/J7dcN1mx9gL6WdQVMbPnF3+ZhSMs8tCxN7oHddJE9fhNE7+lxdnlyemKfJRuA==", "requires": { - "@babel/code-frame": "^7.28.6", - "@babel/generator": "^7.28.6", + "@babel/code-frame": "^7.29.0", + "@babel/generator": "^7.29.0", "@babel/helper-globals": "^7.28.0", - "@babel/parser": "^7.28.6", + "@babel/parser": "^7.29.0", "@babel/template": "^7.28.6", - "@babel/types": "^7.28.6", + "@babel/types": "^7.29.0", "debug": "^4.3.1" - }, - "dependencies": { - "@babel/generator": { - "version": "7.28.6", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.28.6.tgz", - "integrity": "sha512-lOoVRwADj8hjf7al89tvQ2a1lf53Z+7tiXMgpZJL3maQPDxh0DgLMN62B2MKUOFcoodBHLMbDM6WAbKgNy5Suw==", - "requires": { - "@babel/parser": "^7.28.6", - "@babel/types": "^7.28.6", - "@jridgewell/gen-mapping": "^0.3.12", - "@jridgewell/trace-mapping": "^0.3.28", - "jsesc": "^3.0.2" - } - } } }, "@babel/types": { - "version": "7.28.6", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.6.tgz", - "integrity": "sha512-0ZrskXVEHSWIqZM/sQZ4EV3jZJXRkio/WCxaqKZP1g//CEWEPSfeZFcms4XeKBCHU0ZKnIkdJeU/kF+eRp5lBg==", + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.29.0.tgz", + "integrity": "sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A==", "requires": { "@babel/helper-string-parser": "^7.27.1", "@babel/helper-validator-identifier": "^7.28.5" } }, + "@bcoe/v8-coverage": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-1.0.2.tgz", + "integrity": "sha512-6zABk/ECA/QYSCQ1NGiVwwbQerUCZ+TQbp64Q3AgmfNvurHH0j8TtXa1qbShXA6qqkpAj4V5W8pP6mLe1mcMqA==", + "dev": true + }, "@blocknote/core": { "version": "0.44.2", "resolved": "https://registry.npmjs.org/@blocknote/core/-/core-0.44.2.tgz", @@ -28409,11 +28821,14 @@ "resolved": "https://registry.npmjs.org/@braintree/sanitize-url/-/sanitize-url-7.1.1.tgz", "integrity": "sha512-i1L7noDNxtFyL5DmZafWy1wRVhGehQmzZaz1HiN5e7iylJMSZR7ekOV7NsIqa5qBldlLrsKv4HbgFUVlQrz8Mw==" }, - "@colors/colors": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", - "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==", - "dev": true + "@bramus/specificity": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/@bramus/specificity/-/specificity-2.4.2.tgz", + "integrity": "sha512-ctxtJ/eA+t+6q2++vj5j7FYX3nRu311q1wfYH3xjlLOsczhlhxAg2FWNUXhpGvAw3BWo1xBcvOV6/YLc2r5FJw==", + "dev": true, + "requires": { + "css-tree": "^3.0.0" + } }, "@cspotcode/source-map-support": { "version": "0.8.1", @@ -28436,42 +28851,51 @@ } } }, + "@csstools/color-helpers": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/@csstools/color-helpers/-/color-helpers-6.0.2.tgz", + "integrity": "sha512-LMGQLS9EuADloEFkcTBR3BwV/CGHV7zyDxVRtVDTwdI2Ca4it0CCVTT9wCkxSgokjE5Ho41hEPgb8OEUwoXr6Q==", + "dev": true + }, + "@csstools/css-calc": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@csstools/css-calc/-/css-calc-3.2.0.tgz", + "integrity": "sha512-bR9e6o2BDB12jzN/gIbjHa5wLJ4UjD1CB9pM7ehlc0ddk6EBz+yYS1EV2MF55/HUxrHcB/hehAyt5vhsA3hx7w==", + "dev": true + }, + "@csstools/css-color-parser": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@csstools/css-color-parser/-/css-color-parser-4.1.0.tgz", + "integrity": "sha512-U0KhLYmy2GVj6q4T3WaAe6NPuFYCPQoE3b0dRGxejWDgcPp8TP7S5rVdM5ZrFaqu4N67X8YaPBw14dQSYx3IyQ==", + "dev": true, + "requires": { + "@csstools/color-helpers": "^6.0.2", + "@csstools/css-calc": "^3.2.0" + } + }, + "@csstools/css-parser-algorithms": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-4.0.0.tgz", + "integrity": "sha512-+B87qS7fIG3L5h3qwJ/IFbjoVoOe/bpOdh9hAjXbvx0o8ImEmUsGXN0inFOnk2ChCFgqkkGFQ+TpM5rbhkKe4w==", + "dev": true + }, + "@csstools/css-syntax-patches-for-csstree": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@csstools/css-syntax-patches-for-csstree/-/css-syntax-patches-for-csstree-1.1.3.tgz", + "integrity": "sha512-SH60bMfrRCJF3morcdk57WklujF4Jr/EsQUzqkarfHXEFcAR1gg7fS/chAE922Sehgzc1/+Tz5H3Ypa1HiEKrg==", + "dev": true + }, + "@csstools/css-tokenizer": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-4.0.0.tgz", + "integrity": "sha512-QxULHAm7cNu72w97JUNCBFODFaXpbDg+dP8b/oWFAZ2MTRppA3U00Y2L1HqaS4J6yBqxwa/Y3nMBaxVKbB/NsA==", + "dev": true + }, "@datorama/akita": { "version": "8.0.1", "resolved": "https://registry.npmjs.org/@datorama/akita/-/akita-8.0.1.tgz", "integrity": "sha512-0VnPWd+Sy3ColhzjDSBNcEnzAQtbezk6bYmJHvPaLMK5Ysl90KcNls2bE4sj5vaLeGLjhMtqtfp/RgrigPXDxA==" }, - "@emnapi/core": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.8.1.tgz", - "integrity": "sha512-AvT9QFpxK0Zd8J0jopedNm+w/2fIzvtPKPjqyw9jwvBaReTTqPBk9Hixaz7KbjimP+QNz605/XnjFcDAL2pqBg==", - "dev": true, - "optional": true, - "requires": { - "@emnapi/wasi-threads": "1.1.0", - "tslib": "^2.4.0" - } - }, - "@emnapi/runtime": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.8.1.tgz", - "integrity": "sha512-mehfKSMWjjNol8659Z8KxEMrdSJDDot5SXMq00dM8BN4o+CLNXQ0xH2V7EchNHV4RmbZLmmPdEaXZc5H2FXmDg==", - "dev": true, - "optional": true, - "requires": { - "tslib": "^2.4.0" - } - }, - "@emnapi/wasi-threads": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.1.0.tgz", - "integrity": "sha512-WI0DdZ8xFSbgMjR1sFsKABJ/C5OnRrjT06JXbZKexJGrDuPTzZdDYfFlsgcCXCyf+suG5QU2e/y1Wo2V/OapLQ==", - "dev": true, - "optional": true, - "requires": { - "tslib": "^2.4.0" - } - }, "@emoji-mart/data": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/@emoji-mart/data/-/data-1.2.1.tgz", @@ -28496,184 +28920,184 @@ "integrity": "sha512-KOEGMu6dmJZtpadb476IsZBclKvILjopjUii3V+7MnXIQCYh8W3NgNcgwo21n9LXZX6EDIKvqfjYxXebDwxKmQ==" }, "@esbuild/aix-ppc64": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.27.2.tgz", - "integrity": "sha512-GZMB+a0mOMZs4MpDbj8RJp4cw+w1WV5NYD6xzgvzUJ5Ek2jerwfO2eADyI6ExDSUED+1X8aMbegahsJi+8mgpw==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.27.3.tgz", + "integrity": "sha512-9fJMTNFTWZMh5qwrBItuziu834eOCUcEqymSH7pY+zoMVEZg3gcPuBNxH1EvfVYe9h0x/Ptw8KBzv7qxb7l8dg==", "dev": true, "optional": true }, "@esbuild/android-arm": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.27.2.tgz", - "integrity": "sha512-DVNI8jlPa7Ujbr1yjU2PfUSRtAUZPG9I1RwW4F4xFB1Imiu2on0ADiI/c3td+KmDtVKNbi+nffGDQMfcIMkwIA==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.27.3.tgz", + "integrity": "sha512-i5D1hPY7GIQmXlXhs2w8AWHhenb00+GxjxRncS2ZM7YNVGNfaMxgzSGuO8o8SJzRc/oZwU2bcScvVERk03QhzA==", "dev": true, "optional": true }, "@esbuild/android-arm64": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.27.2.tgz", - "integrity": "sha512-pvz8ZZ7ot/RBphf8fv60ljmaoydPU12VuXHImtAs0XhLLw+EXBi2BLe3OYSBslR4rryHvweW5gmkKFwTiFy6KA==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.27.3.tgz", + "integrity": "sha512-YdghPYUmj/FX2SYKJ0OZxf+iaKgMsKHVPF1MAq/P8WirnSpCStzKJFjOjzsW0QQ7oIAiccHdcqjbHmJxRb/dmg==", "dev": true, "optional": true }, "@esbuild/android-x64": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.27.2.tgz", - "integrity": "sha512-z8Ank4Byh4TJJOh4wpz8g2vDy75zFL0TlZlkUkEwYXuPSgX8yzep596n6mT7905kA9uHZsf/o2OJZubl2l3M7A==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.27.3.tgz", + "integrity": "sha512-IN/0BNTkHtk8lkOM8JWAYFg4ORxBkZQf9zXiEOfERX/CzxW3Vg1ewAhU7QSWQpVIzTW+b8Xy+lGzdYXV6UZObQ==", "dev": true, "optional": true }, "@esbuild/darwin-arm64": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.27.2.tgz", - "integrity": "sha512-davCD2Zc80nzDVRwXTcQP/28fiJbcOwvdolL0sOiOsbwBa72kegmVU0Wrh1MYrbuCL98Omp5dVhQFWRKR2ZAlg==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.27.3.tgz", + "integrity": "sha512-Re491k7ByTVRy0t3EKWajdLIr0gz2kKKfzafkth4Q8A5n1xTHrkqZgLLjFEHVD+AXdUGgQMq+Godfq45mGpCKg==", "dev": true, "optional": true }, "@esbuild/darwin-x64": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.27.2.tgz", - "integrity": "sha512-ZxtijOmlQCBWGwbVmwOF/UCzuGIbUkqB1faQRf5akQmxRJ1ujusWsb3CVfk/9iZKr2L5SMU5wPBi1UWbvL+VQA==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.27.3.tgz", + "integrity": "sha512-vHk/hA7/1AckjGzRqi6wbo+jaShzRowYip6rt6q7VYEDX4LEy1pZfDpdxCBnGtl+A5zq8iXDcyuxwtv3hNtHFg==", "dev": true, "optional": true }, "@esbuild/freebsd-arm64": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.27.2.tgz", - "integrity": "sha512-lS/9CN+rgqQ9czogxlMcBMGd+l8Q3Nj1MFQwBZJyoEKI50XGxwuzznYdwcav6lpOGv5BqaZXqvBSiB/kJ5op+g==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.27.3.tgz", + "integrity": "sha512-ipTYM2fjt3kQAYOvo6vcxJx3nBYAzPjgTCk7QEgZG8AUO3ydUhvelmhrbOheMnGOlaSFUoHXB6un+A7q4ygY9w==", "dev": true, "optional": true }, "@esbuild/freebsd-x64": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.27.2.tgz", - "integrity": "sha512-tAfqtNYb4YgPnJlEFu4c212HYjQWSO/w/h/lQaBK7RbwGIkBOuNKQI9tqWzx7Wtp7bTPaGC6MJvWI608P3wXYA==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.27.3.tgz", + "integrity": "sha512-dDk0X87T7mI6U3K9VjWtHOXqwAMJBNN2r7bejDsc+j03SEjtD9HrOl8gVFByeM0aJksoUuUVU9TBaZa2rgj0oA==", "dev": true, "optional": true }, "@esbuild/linux-arm": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.27.2.tgz", - "integrity": "sha512-vWfq4GaIMP9AIe4yj1ZUW18RDhx6EPQKjwe7n8BbIecFtCQG4CfHGaHuh7fdfq+y3LIA2vGS/o9ZBGVxIDi9hw==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.27.3.tgz", + "integrity": "sha512-s6nPv2QkSupJwLYyfS+gwdirm0ukyTFNl3KTgZEAiJDd+iHZcbTPPcWCcRYH+WlNbwChgH2QkE9NSlNrMT8Gfw==", "dev": true, "optional": true }, "@esbuild/linux-arm64": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.27.2.tgz", - "integrity": "sha512-hYxN8pr66NsCCiRFkHUAsxylNOcAQaxSSkHMMjcpx0si13t1LHFphxJZUiGwojB1a/Hd5OiPIqDdXONia6bhTw==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.27.3.tgz", + "integrity": "sha512-sZOuFz/xWnZ4KH3YfFrKCf1WyPZHakVzTiqji3WDc0BCl2kBwiJLCXpzLzUBLgmp4veFZdvN5ChW4Eq/8Fc2Fg==", "dev": true, "optional": true }, "@esbuild/linux-ia32": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.27.2.tgz", - "integrity": "sha512-MJt5BRRSScPDwG2hLelYhAAKh9imjHK5+NE/tvnRLbIqUWa+0E9N4WNMjmp/kXXPHZGqPLxggwVhz7QP8CTR8w==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.27.3.tgz", + "integrity": "sha512-yGlQYjdxtLdh0a3jHjuwOrxQjOZYD/C9PfdbgJJF3TIZWnm/tMd/RcNiLngiu4iwcBAOezdnSLAwQDPqTmtTYg==", "dev": true, "optional": true }, "@esbuild/linux-loong64": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.27.2.tgz", - "integrity": "sha512-lugyF1atnAT463aO6KPshVCJK5NgRnU4yb3FUumyVz+cGvZbontBgzeGFO1nF+dPueHD367a2ZXe1NtUkAjOtg==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.27.3.tgz", + "integrity": "sha512-WO60Sn8ly3gtzhyjATDgieJNet/KqsDlX5nRC5Y3oTFcS1l0KWba+SEa9Ja1GfDqSF1z6hif/SkpQJbL63cgOA==", "dev": true, "optional": true }, "@esbuild/linux-mips64el": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.27.2.tgz", - "integrity": "sha512-nlP2I6ArEBewvJ2gjrrkESEZkB5mIoaTswuqNFRv/WYd+ATtUpe9Y09RnJvgvdag7he0OWgEZWhviS1OTOKixw==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.27.3.tgz", + "integrity": "sha512-APsymYA6sGcZ4pD6k+UxbDjOFSvPWyZhjaiPyl/f79xKxwTnrn5QUnXR5prvetuaSMsb4jgeHewIDCIWljrSxw==", "dev": true, "optional": true }, "@esbuild/linux-ppc64": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.27.2.tgz", - "integrity": "sha512-C92gnpey7tUQONqg1n6dKVbx3vphKtTHJaNG2Ok9lGwbZil6DrfyecMsp9CrmXGQJmZ7iiVXvvZH6Ml5hL6XdQ==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.27.3.tgz", + "integrity": "sha512-eizBnTeBefojtDb9nSh4vvVQ3V9Qf9Df01PfawPcRzJH4gFSgrObw+LveUyDoKU3kxi5+9RJTCWlj4FjYXVPEA==", "dev": true, "optional": true }, "@esbuild/linux-riscv64": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.27.2.tgz", - "integrity": "sha512-B5BOmojNtUyN8AXlK0QJyvjEZkWwy/FKvakkTDCziX95AowLZKR6aCDhG7LeF7uMCXEJqwa8Bejz5LTPYm8AvA==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.27.3.tgz", + "integrity": "sha512-3Emwh0r5wmfm3ssTWRQSyVhbOHvqegUDRd0WhmXKX2mkHJe1SFCMJhagUleMq+Uci34wLSipf8Lagt4LlpRFWQ==", "dev": true, "optional": true }, "@esbuild/linux-s390x": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.27.2.tgz", - "integrity": "sha512-p4bm9+wsPwup5Z8f4EpfN63qNagQ47Ua2znaqGH6bqLlmJ4bx97Y9JdqxgGZ6Y8xVTixUnEkoKSHcpRlDnNr5w==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.27.3.tgz", + "integrity": "sha512-pBHUx9LzXWBc7MFIEEL0yD/ZVtNgLytvx60gES28GcWMqil8ElCYR4kvbV2BDqsHOvVDRrOxGySBM9Fcv744hw==", "dev": true, "optional": true }, "@esbuild/linux-x64": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.27.2.tgz", - "integrity": "sha512-uwp2Tip5aPmH+NRUwTcfLb+W32WXjpFejTIOWZFw/v7/KnpCDKG66u4DLcurQpiYTiYwQ9B7KOeMJvLCu/OvbA==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.27.3.tgz", + "integrity": "sha512-Czi8yzXUWIQYAtL/2y6vogER8pvcsOsk5cpwL4Gk5nJqH5UZiVByIY8Eorm5R13gq+DQKYg0+JyQoytLQas4dA==", "dev": true, "optional": true }, "@esbuild/netbsd-arm64": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.27.2.tgz", - "integrity": "sha512-Kj6DiBlwXrPsCRDeRvGAUb/LNrBASrfqAIok+xB0LxK8CHqxZ037viF13ugfsIpePH93mX7xfJp97cyDuTZ3cw==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.27.3.tgz", + "integrity": "sha512-sDpk0RgmTCR/5HguIZa9n9u+HVKf40fbEUt+iTzSnCaGvY9kFP0YKBWZtJaraonFnqef5SlJ8/TiPAxzyS+UoA==", "dev": true, "optional": true }, "@esbuild/netbsd-x64": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.27.2.tgz", - "integrity": "sha512-HwGDZ0VLVBY3Y+Nw0JexZy9o/nUAWq9MlV7cahpaXKW6TOzfVno3y3/M8Ga8u8Yr7GldLOov27xiCnqRZf0tCA==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.27.3.tgz", + "integrity": "sha512-P14lFKJl/DdaE00LItAukUdZO5iqNH7+PjoBm+fLQjtxfcfFE20Xf5CrLsmZdq5LFFZzb5JMZ9grUwvtVYzjiA==", "dev": true, "optional": true }, "@esbuild/openbsd-arm64": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.27.2.tgz", - "integrity": "sha512-DNIHH2BPQ5551A7oSHD0CKbwIA/Ox7+78/AWkbS5QoRzaqlev2uFayfSxq68EkonB+IKjiuxBFoV8ESJy8bOHA==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.27.3.tgz", + "integrity": "sha512-AIcMP77AvirGbRl/UZFTq5hjXK+2wC7qFRGoHSDrZ5v5b8DK/GYpXW3CPRL53NkvDqb9D+alBiC/dV0Fb7eJcw==", "dev": true, "optional": true }, "@esbuild/openbsd-x64": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.27.2.tgz", - "integrity": "sha512-/it7w9Nb7+0KFIzjalNJVR5bOzA9Vay+yIPLVHfIQYG/j+j9VTH84aNB8ExGKPU4AzfaEvN9/V4HV+F+vo8OEg==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.27.3.tgz", + "integrity": "sha512-DnW2sRrBzA+YnE70LKqnM3P+z8vehfJWHXECbwBmH/CU51z6FiqTQTHFenPlHmo3a8UgpLyH3PT+87OViOh1AQ==", "dev": true, "optional": true }, "@esbuild/openharmony-arm64": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.27.2.tgz", - "integrity": "sha512-LRBbCmiU51IXfeXk59csuX/aSaToeG7w48nMwA6049Y4J4+VbWALAuXcs+qcD04rHDuSCSRKdmY63sruDS5qag==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.27.3.tgz", + "integrity": "sha512-NinAEgr/etERPTsZJ7aEZQvvg/A6IsZG/LgZy+81wON2huV7SrK3e63dU0XhyZP4RKGyTm7aOgmQk0bGp0fy2g==", "dev": true, "optional": true }, "@esbuild/sunos-x64": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.27.2.tgz", - "integrity": "sha512-kMtx1yqJHTmqaqHPAzKCAkDaKsffmXkPHThSfRwZGyuqyIeBvf08KSsYXl+abf5HDAPMJIPnbBfXvP2ZC2TfHg==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.27.3.tgz", + "integrity": "sha512-PanZ+nEz+eWoBJ8/f8HKxTTD172SKwdXebZ0ndd953gt1HRBbhMsaNqjTyYLGLPdoWHy4zLU7bDVJztF5f3BHA==", "dev": true, "optional": true }, "@esbuild/win32-arm64": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.27.2.tgz", - "integrity": "sha512-Yaf78O/B3Kkh+nKABUF++bvJv5Ijoy9AN1ww904rOXZFLWVc5OLOfL56W+C8F9xn5JQZa3UX6m+IktJnIb1Jjg==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.27.3.tgz", + "integrity": "sha512-B2t59lWWYrbRDw/tjiWOuzSsFh1Y/E95ofKz7rIVYSQkUYBjfSgf6oeYPNWHToFRr2zx52JKApIcAS/D5TUBnA==", "dev": true, "optional": true }, "@esbuild/win32-ia32": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.27.2.tgz", - "integrity": "sha512-Iuws0kxo4yusk7sw70Xa2E2imZU5HoixzxfGCdxwBdhiDgt9vX9VUCBhqcwY7/uh//78A1hMkkROMJq9l27oLQ==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.27.3.tgz", + "integrity": "sha512-QLKSFeXNS8+tHW7tZpMtjlNb7HKau0QDpwm49u0vUp9y1WOF+PEzkU84y9GqYaAVW8aH8f3GcBck26jh54cX4Q==", "dev": true, "optional": true }, "@esbuild/win32-x64": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.27.2.tgz", - "integrity": "sha512-sRdU18mcKf7F+YgheI/zGf5alZatMUTKj/jNS6l744f9u3WFu4v7twcUI9vu4mknF4Y9aDlblIie0IM+5xxaqQ==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.27.3.tgz", + "integrity": "sha512-4uJGhsxuptu3OcpVAzli+/gWusVGwZZHTlS63hh++ehExkVT8SgiEf7/uC/PclrPPkLhZqGgCTjd0VWLo6xMqA==", "dev": true, "optional": true }, @@ -28786,6 +29210,12 @@ "levn": "^0.4.1" } }, + "@exodus/bytes": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/@exodus/bytes/-/bytes-1.15.0.tgz", + "integrity": "sha512-UY0nlA+feH81UGSHv92sLEPLCeZFjXOuHhrIo0HQydScuQc8s0A7kL/UdgwgDq8g8ilksmuoF35YVTNphV2aBQ==", + "dev": true + }, "@floating-ui/core": { "version": "1.7.3", "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.7.3.tgz", @@ -28957,6 +29387,11 @@ "@fullcalendar/scrollgrid": "~6.1.20" } }, + "@gar/promise-retry": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@gar/promise-retry/-/promise-retry-1.0.3.tgz", + "integrity": "sha512-GmzA9ckNokPypTg10pgpeHNQe7ph+iIKKmhKu3Ob9ANkswreCx7R3cKmY781K8QK3AqVL3xVh9A42JvIAbkkSA==" + }, "@github/auto-check-element": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/@github/auto-check-element/-/auto-check-element-6.0.0.tgz", @@ -29037,6 +29472,13 @@ "prosemirror-transform": "^1.0.0" } }, + "@harperfast/extended-iterable": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@harperfast/extended-iterable/-/extended-iterable-1.0.3.tgz", + "integrity": "sha512-sSAYhQca3rDWtQUHSAPeO7axFIUJOI6hn1gjRC5APVE1a90tuyT8f5WIgRsFhhWA7htNkju2veB9eWL6YHi/Lw==", + "dev": true, + "optional": true + }, "@hocuspocus/common": { "version": "3.4.4", "resolved": "https://registry.npmjs.org/@hocuspocus/common/-/common-3.4.4.tgz", @@ -29081,66 +29523,66 @@ } }, "@html-eslint/core": { - "version": "0.58.1", - "resolved": "https://registry.npmjs.org/@html-eslint/core/-/core-0.58.1.tgz", - "integrity": "sha512-GHYDt2Q3ws9aa0/bmMhkv21ExQJnrjKY/iByjdBVp3lBq49wlzIzvAfcx4Bsp+RMV3oPZhzlnLhPpXLuVYt2mQ==", + "version": "0.59.0", + "resolved": "https://registry.npmjs.org/@html-eslint/core/-/core-0.59.0.tgz", + "integrity": "sha512-/s5W9Iivmf2RXVzQlFboXQRqK62JQdKvcIdFMP5K1kxbVEJxha/VUo1Rafn1GKgLQsP5QIbUjoZbzGlN7fVxog==", "dev": true, "requires": { - "@html-eslint/types": "^0.58.1", + "@html-eslint/types": "^0.59.0", "html-standard": "^0.0.13" } }, "@html-eslint/eslint-plugin": { - "version": "0.58.1", - "resolved": "https://registry.npmjs.org/@html-eslint/eslint-plugin/-/eslint-plugin-0.58.1.tgz", - "integrity": "sha512-aizTTKbNF2sW+lXWP+uWBoo5Ud9xtUkr70+0pYhItwJF0yhRqLQ91PhW+9afC0daymQjn13MunzDPwGPG0seDg==", + "version": "0.59.0", + "resolved": "https://registry.npmjs.org/@html-eslint/eslint-plugin/-/eslint-plugin-0.59.0.tgz", + "integrity": "sha512-RMABPGdTkBtDIqexNBzxB3d4S1C+3PvxC8bLV2/U6tTmrRj8oNOqJ7Bwwtt35HJEQclfZvL0y3XZk+/E/MhNsQ==", "dev": true, "requires": { "@eslint/plugin-kit": "^0.4.1", - "@html-eslint/core": "^0.58.1", - "@html-eslint/parser": "^0.58.1", - "@html-eslint/template-parser": "^0.58.1", - "@html-eslint/template-syntax-parser": "^0.58.1", - "@html-eslint/types": "^0.58.1", + "@html-eslint/core": "^0.59.0", + "@html-eslint/parser": "^0.59.0", + "@html-eslint/template-parser": "^0.59.0", + "@html-eslint/template-syntax-parser": "^0.59.0", + "@html-eslint/types": "^0.59.0", "@rviscomi/capo.js": "^2.1.0", "html-standard": "^0.0.13" } }, "@html-eslint/parser": { - "version": "0.58.1", - "resolved": "https://registry.npmjs.org/@html-eslint/parser/-/parser-0.58.1.tgz", - "integrity": "sha512-a87peH9HcVDrKZZIYdfMlPZ+72nIktAitKcdoHQevuaXWsgvDtClKihJyy5dZS9md6hIbCh62Og5gQRhl85ZMg==", + "version": "0.59.0", + "resolved": "https://registry.npmjs.org/@html-eslint/parser/-/parser-0.59.0.tgz", + "integrity": "sha512-dsUdpOkFrq0HmPyy8kuw2uN98LIzEepdI/Xj6QimgPQ4GOmjDRocuOCcuBI1K+F9O+NYXdaKMtZ3SzI1V/jB4g==", "dev": true, "requires": { - "@html-eslint/template-syntax-parser": "^0.58.1", - "@html-eslint/types": "^0.58.1", + "@html-eslint/template-syntax-parser": "^0.59.0", + "@html-eslint/types": "^0.59.0", "css-tree": "^3.1.0", "es-html-parser": "0.3.1" } }, "@html-eslint/template-parser": { - "version": "0.58.1", - "resolved": "https://registry.npmjs.org/@html-eslint/template-parser/-/template-parser-0.58.1.tgz", - "integrity": "sha512-qo6jTc4Y6vVgwPc2w+EQigH7uCAn+LExxE5oG1URRT98UiJ7dItX0Qk44r/+5XQwSS1TsdvBNLxM2NAktETSWA==", + "version": "0.59.0", + "resolved": "https://registry.npmjs.org/@html-eslint/template-parser/-/template-parser-0.59.0.tgz", + "integrity": "sha512-3MN4uizEeSVP2l6jgy5COAH6V3PnnJUcaq2jU6elbB4EP+zBfh6KOG2yk9DmnjfNTL2SgXOlk3WkEY3LXDluqQ==", "dev": true, "requires": { - "@html-eslint/types": "^0.58.1", + "@html-eslint/types": "^0.59.0", "es-html-parser": "0.3.1" } }, "@html-eslint/template-syntax-parser": { - "version": "0.58.1", - "resolved": "https://registry.npmjs.org/@html-eslint/template-syntax-parser/-/template-syntax-parser-0.58.1.tgz", - "integrity": "sha512-P1ZhxIPm9qFWSees2/EZ7Etg1OXziqzRZEuI9goO91fJS6dmdT4JnHLugN06FLL706RwpvenBUlE0iZA9/MXdg==", + "version": "0.59.0", + "resolved": "https://registry.npmjs.org/@html-eslint/template-syntax-parser/-/template-syntax-parser-0.59.0.tgz", + "integrity": "sha512-CMPPLP0EcgoJyU3k6girTPtxuXssHTh3/eFO8S2LagnBCXtJfMu5F3IahXamwMCMVbzaCDzIhg1doXL5Rw7vUQ==", "dev": true, "requires": { - "@html-eslint/types": "^0.58.1" + "@html-eslint/types": "^0.59.0" } }, "@html-eslint/types": { - "version": "0.58.1", - "resolved": "https://registry.npmjs.org/@html-eslint/types/-/types-0.58.1.tgz", - "integrity": "sha512-1F2A5XXpgfHQ8dm14E/EztyERoVldT91VGMZCJECZpidf5Cbc21vxeHLT6/POTJm0ICJOmyBlocF62i/rkoVEQ==", + "version": "0.59.0", + "resolved": "https://registry.npmjs.org/@html-eslint/types/-/types-0.59.0.tgz", + "integrity": "sha512-YwNaTUQW5ObFFUohbGe1X0az2biDOH/6e6GR9VympbFUObUoWlXasGqRRMKi7IbxGPOZ8ucZK89ZWeAFm56Pwg==", "dev": true, "requires": { "@types/css-tree": "^2.3.11", @@ -29414,40 +29856,14 @@ "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==" }, "@jridgewell/trace-mapping": { - "version": "0.3.29", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.29.tgz", - "integrity": "sha512-uw6guiW/gcAGPDhLmd77/6lW8QLeiV5RUTsAX46Db6oLhGaVj4lhnPwb184s1bkc8kdVg/+h988dro8GRDpmYQ==", + "version": "0.3.31", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz", + "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==", "requires": { "@jridgewell/resolve-uri": "^3.1.0", "@jridgewell/sourcemap-codec": "^1.4.14" } }, - "@jsdevtools/coverage-istanbul-loader": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/@jsdevtools/coverage-istanbul-loader/-/coverage-istanbul-loader-3.0.5.tgz", - "integrity": "sha512-EUCPEkaRPvmHjWAAZkWMT7JDzpw7FKB00WTISaiXsbNOd5hCHg77XLA8sLYLFDo1zepYLo2w7GstN8YBqRXZfA==", - "dev": true, - "requires": { - "convert-source-map": "^1.7.0", - "istanbul-lib-instrument": "^4.0.3", - "loader-utils": "^2.0.0", - "merge-source-map": "^1.1.0", - "schema-utils": "^2.7.0" - }, - "dependencies": { - "loader-utils": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", - "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", - "dev": true, - "requires": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^2.1.2" - } - } - } - }, "@jsdevtools/ono": { "version": "7.1.3", "resolved": "https://registry.npmjs.org/@jsdevtools/ono/-/ono-7.1.3.tgz", @@ -29460,9 +29876,9 @@ "dev": true }, "@jsonjoy.com/buffers": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@jsonjoy.com/buffers/-/buffers-1.2.1.tgz", - "integrity": "sha512-12cdlDwX4RUM3QxmUbVJWqZ/mrK6dFQH4Zxq6+r1YXKXYBNgZXndx2qbCJwh3+WWkCSn67IjnlG3XYTvmvYtgA==", + "version": "17.67.0", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/buffers/-/buffers-17.67.0.tgz", + "integrity": "sha512-tfExRpYxBvi32vPs9ZHaTjSP4fHAfzSmcahOfNxtvGHcyJel+aibkPlGeBB+7AoC6hL7lXIE++8okecBxx7lcw==", "dev": true }, "@jsonjoy.com/codegen": { @@ -29471,6 +29887,141 @@ "integrity": "sha512-E8Oy+08cmCf0EK/NMxpaJZmOxPqM+6iSe2S4nlSBrPZOORoDJILxtbSUEDKQyTamm/BVAhIGllOBNU79/dwf0g==", "dev": true }, + "@jsonjoy.com/fs-core": { + "version": "4.57.2", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/fs-core/-/fs-core-4.57.2.tgz", + "integrity": "sha512-SVjwklkpIV5wrynpYtuYnfYH1QF4/nDuLBX7VXdb+3miglcAgBVZb/5y0cOsehRV/9Vb+3UqhkMq3/NR3ztdkQ==", + "dev": true, + "requires": { + "@jsonjoy.com/fs-node-builtins": "4.57.2", + "@jsonjoy.com/fs-node-utils": "4.57.2", + "thingies": "^2.5.0" + } + }, + "@jsonjoy.com/fs-fsa": { + "version": "4.57.2", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/fs-fsa/-/fs-fsa-4.57.2.tgz", + "integrity": "sha512-fhO8+iR2I+OCw668ISDJdn1aArc9zx033sWejIyzQ8RBeXa9bDSaUeA3ix0poYOfrj1KdOzytmYNv2/uLDfV6g==", + "dev": true, + "requires": { + "@jsonjoy.com/fs-core": "4.57.2", + "@jsonjoy.com/fs-node-builtins": "4.57.2", + "@jsonjoy.com/fs-node-utils": "4.57.2", + "thingies": "^2.5.0" + } + }, + "@jsonjoy.com/fs-node": { + "version": "4.57.2", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/fs-node/-/fs-node-4.57.2.tgz", + "integrity": "sha512-nX2AdL6cOFwLdju9G4/nbRnYevmCJbh7N7hvR3gGm97Cs60uEjyd0rpR+YBS7cTg175zzl22pGKXR5USaQMvKg==", + "dev": true, + "requires": { + "@jsonjoy.com/fs-core": "4.57.2", + "@jsonjoy.com/fs-node-builtins": "4.57.2", + "@jsonjoy.com/fs-node-utils": "4.57.2", + "@jsonjoy.com/fs-print": "4.57.2", + "@jsonjoy.com/fs-snapshot": "4.57.2", + "glob-to-regex.js": "^1.0.0", + "thingies": "^2.5.0" + } + }, + "@jsonjoy.com/fs-node-builtins": { + "version": "4.57.2", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/fs-node-builtins/-/fs-node-builtins-4.57.2.tgz", + "integrity": "sha512-xhiegylRmhw43Ki2HO1ZBL7DQ5ja/qpRsL29VtQ2xuUHiuDGbgf2uD4p9Qd8hJI5P6RCtGYD50IXHXVq/Ocjcg==", + "dev": true + }, + "@jsonjoy.com/fs-node-to-fsa": { + "version": "4.57.2", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/fs-node-to-fsa/-/fs-node-to-fsa-4.57.2.tgz", + "integrity": "sha512-18LmWTSONhoAPW+IWRuf8w/+zRolPFGPeGwMxlAhhfY11EKzX+5XHDBPAw67dBF5dxDErHJbl40U+3IXSDRXSQ==", + "dev": true, + "requires": { + "@jsonjoy.com/fs-fsa": "4.57.2", + "@jsonjoy.com/fs-node-builtins": "4.57.2", + "@jsonjoy.com/fs-node-utils": "4.57.2" + } + }, + "@jsonjoy.com/fs-node-utils": { + "version": "4.57.2", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/fs-node-utils/-/fs-node-utils-4.57.2.tgz", + "integrity": "sha512-rsPSJgekz43IlNbLyAM/Ab+ouYLWGp5DDBfYBNNEqDaSpsbXfthBn29Q4muFA9L0F+Z3mKo+CWlgSCXrf+mOyQ==", + "dev": true, + "requires": { + "@jsonjoy.com/fs-node-builtins": "4.57.2" + } + }, + "@jsonjoy.com/fs-print": { + "version": "4.57.2", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/fs-print/-/fs-print-4.57.2.tgz", + "integrity": "sha512-wK9NSow48i4DbDl9F1CQE5TqnyZOJ04elU3WFG5aJ76p+YxO/ulyBBQvKsessPxdo381Bc2pcEoyPujMOhcRqQ==", + "dev": true, + "requires": { + "@jsonjoy.com/fs-node-utils": "4.57.2", + "tree-dump": "^1.1.0" + } + }, + "@jsonjoy.com/fs-snapshot": { + "version": "4.57.2", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/fs-snapshot/-/fs-snapshot-4.57.2.tgz", + "integrity": "sha512-GdduDZuoP5V/QCgJkx9+BZ6SC0EZ/smXAdTS7PfMqgMTGXLlt/bH/FqMYaqB9JmLf05sJPtO0XRbAwwkEEPbVw==", + "dev": true, + "requires": { + "@jsonjoy.com/buffers": "^17.65.0", + "@jsonjoy.com/fs-node-utils": "4.57.2", + "@jsonjoy.com/json-pack": "^17.65.0", + "@jsonjoy.com/util": "^17.65.0" + }, + "dependencies": { + "@jsonjoy.com/base64": { + "version": "17.67.0", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/base64/-/base64-17.67.0.tgz", + "integrity": "sha512-5SEsJGsm15aP8TQGkDfJvz9axgPwAEm98S5DxOuYe8e1EbfajcDmgeXXzccEjh+mLnjqEKrkBdjHWS5vFNwDdw==", + "dev": true + }, + "@jsonjoy.com/codegen": { + "version": "17.67.0", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/codegen/-/codegen-17.67.0.tgz", + "integrity": "sha512-idnkUplROpdBOV0HMcwhsCUS5TRUi9poagdGs70A6S4ux9+/aPuKbh8+UYRTLYQHtXvAdNfQWXDqZEx5k4Dj2Q==", + "dev": true + }, + "@jsonjoy.com/json-pack": { + "version": "17.67.0", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/json-pack/-/json-pack-17.67.0.tgz", + "integrity": "sha512-t0ejURcGaZsn1ClbJ/3kFqSOjlryd92eQY465IYrezsXmPcfHPE/av4twRSxf6WE+TkZgLY+71vCZbiIiFKA/w==", + "dev": true, + "requires": { + "@jsonjoy.com/base64": "17.67.0", + "@jsonjoy.com/buffers": "17.67.0", + "@jsonjoy.com/codegen": "17.67.0", + "@jsonjoy.com/json-pointer": "17.67.0", + "@jsonjoy.com/util": "17.67.0", + "hyperdyperid": "^1.2.0", + "thingies": "^2.5.0", + "tree-dump": "^1.1.0" + } + }, + "@jsonjoy.com/json-pointer": { + "version": "17.67.0", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/json-pointer/-/json-pointer-17.67.0.tgz", + "integrity": "sha512-+iqOFInH+QZGmSuaybBUNdh7yvNrXvqR+h3wjXm0N/3JK1EyyFAeGJvqnmQL61d1ARLlk/wJdFKSL+LHJ1eaUA==", + "dev": true, + "requires": { + "@jsonjoy.com/util": "17.67.0" + } + }, + "@jsonjoy.com/util": { + "version": "17.67.0", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/util/-/util-17.67.0.tgz", + "integrity": "sha512-6+8xBaz1rLSohlGh68D1pdw3AwDi9xydm8QNlAFkvnavCJYSze+pxoW2VKP8p308jtlMRLs5NTHfPlZLd4w7ew==", + "dev": true, + "requires": { + "@jsonjoy.com/buffers": "17.67.0", + "@jsonjoy.com/codegen": "17.67.0" + } + } + } + }, "@jsonjoy.com/json-pack": { "version": "1.21.0", "resolved": "https://registry.npmjs.org/@jsonjoy.com/json-pack/-/json-pack-1.21.0.tgz", @@ -29485,6 +30036,14 @@ "hyperdyperid": "^1.2.0", "thingies": "^2.5.0", "tree-dump": "^1.1.0" + }, + "dependencies": { + "@jsonjoy.com/buffers": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/buffers/-/buffers-1.2.1.tgz", + "integrity": "sha512-12cdlDwX4RUM3QxmUbVJWqZ/mrK6dFQH4Zxq6+r1YXKXYBNgZXndx2qbCJwh3+WWkCSn67IjnlG3XYTvmvYtgA==", + "dev": true + } } }, "@jsonjoy.com/json-pointer": { @@ -29505,12 +30064,20 @@ "requires": { "@jsonjoy.com/buffers": "^1.0.0", "@jsonjoy.com/codegen": "^1.0.0" + }, + "dependencies": { + "@jsonjoy.com/buffers": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/buffers/-/buffers-1.2.1.tgz", + "integrity": "sha512-12cdlDwX4RUM3QxmUbVJWqZ/mrK6dFQH4Zxq6+r1YXKXYBNgZXndx2qbCJwh3+WWkCSn67IjnlG3XYTvmvYtgA==", + "dev": true + } } }, "@knowledgecode/delegate": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/@knowledgecode/delegate/-/delegate-0.10.0.tgz", - "integrity": "sha512-bu6T27FlgX+rZY6xKGvM7M6dPXtSaHTj/RpFXoD7bkFths3hn/dqg84uqQWSJTGFljeBBjyzdAlI9eSV0bI1HA==" + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/@knowledgecode/delegate/-/delegate-0.10.3.tgz", + "integrity": "sha512-iuee+vI4XhtiSHv+UpjTU4mDl2Og9FS+Rgvk645At92P3U+GJ3YJfYgC/Gi+fNdAzXCXK2yPHSyc4fF4x93crw==" }, "@kolkov/ngx-gallery": { "version": "2.0.1", @@ -29558,51 +30125,51 @@ } }, "@lmdb/lmdb-darwin-arm64": { - "version": "3.4.4", - "resolved": "https://registry.npmjs.org/@lmdb/lmdb-darwin-arm64/-/lmdb-darwin-arm64-3.4.4.tgz", - "integrity": "sha512-XaKL705gDWd6XVls3ATDj13ZdML/LqSIxwgnYpG8xTzH2ifArx8fMMDdvqGE/Emd+W6R90W2fveZcJ0AyS8Y0w==", + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-darwin-arm64/-/lmdb-darwin-arm64-3.5.1.tgz", + "integrity": "sha512-tpfN4kKrrMpQ+If1l8bhmoNkECJi0iOu6AEdrTJvWVC+32sLxTARX5Rsu579mPImRP9YFWfWgeRQ5oav7zApQQ==", "dev": true, "optional": true }, "@lmdb/lmdb-darwin-x64": { - "version": "3.4.4", - "resolved": "https://registry.npmjs.org/@lmdb/lmdb-darwin-x64/-/lmdb-darwin-x64-3.4.4.tgz", - "integrity": "sha512-GPHGEVcwJlkD01GmIr7B4kvbIcUDS2+kBadVEd7lU4can1RZaZQLDDBJRrrNfS2Kavvl0VLI/cMv7UASAXGrww==", + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-darwin-x64/-/lmdb-darwin-x64-3.5.1.tgz", + "integrity": "sha512-+a2tTfc3rmWhLAolFUWRgJtpSuu+Fw/yjn4rF406NMxhfjbMuiOUTDRvRlMFV+DzyjkwnokisskHbCWkS3Ly5w==", "dev": true, "optional": true }, "@lmdb/lmdb-linux-arm": { - "version": "3.4.4", - "resolved": "https://registry.npmjs.org/@lmdb/lmdb-linux-arm/-/lmdb-linux-arm-3.4.4.tgz", - "integrity": "sha512-cmev5/dZr5ACKri9f6GU6lZCXTjMhV72xujlbOhFCgFXrt4W0TxGsmY8kA1BITvH60JBKE50cSxsiulybAbrrw==", + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-linux-arm/-/lmdb-linux-arm-3.5.1.tgz", + "integrity": "sha512-0EgcE6reYr8InjD7V37EgXcYrloqpxVPINy3ig1MwDSbl6LF/vXTYRH9OE1Ti1D8YZnB35ZH9aTcdfSb5lql2A==", "dev": true, "optional": true }, "@lmdb/lmdb-linux-arm64": { - "version": "3.4.4", - "resolved": "https://registry.npmjs.org/@lmdb/lmdb-linux-arm64/-/lmdb-linux-arm64-3.4.4.tgz", - "integrity": "sha512-mALqr7DE42HsiwVTKpQWxacjHoJk+e9p00RWIJqTACh/hpucxp/0lK/XMh5XzWnU/TDCZLukq1+vNqnNumTP/Q==", + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-linux-arm64/-/lmdb-linux-arm64-3.5.1.tgz", + "integrity": "sha512-aoERa5B6ywXdyFeYGQ1gbQpkMkDbEo45qVoXE5QpIRavqjnyPwjOulMkmkypkmsbJ5z4Wi0TBztON8agCTG0Vg==", "dev": true, "optional": true }, "@lmdb/lmdb-linux-x64": { - "version": "3.4.4", - "resolved": "https://registry.npmjs.org/@lmdb/lmdb-linux-x64/-/lmdb-linux-x64-3.4.4.tgz", - "integrity": "sha512-QjLs8OcmCNcraAcLoZyFlo0atzBJniQLLwhtR+ymQqS5kLYpV5RqwriL87BW+ZiR9ZiGgZx3evrz5vnWPtJ1fQ==", + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-linux-x64/-/lmdb-linux-x64-3.5.1.tgz", + "integrity": "sha512-SqNDY1+vpji7bh0sFH5wlWyFTOzjbDOl0/kB5RLLYDAFyd/uw3n7wyrmas3rYPpAW7z18lMOi1yKlTPv967E3g==", "dev": true, "optional": true }, "@lmdb/lmdb-win32-arm64": { - "version": "3.4.4", - "resolved": "https://registry.npmjs.org/@lmdb/lmdb-win32-arm64/-/lmdb-win32-arm64-3.4.4.tgz", - "integrity": "sha512-tr/pwHDlZ33forLGAr0tI04cRmP4SgF93yHbb+2zvZiDEyln5yMHhbKDySxY66aUOkhvBvTuHq9q/3YmTj6ZHQ==", + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-win32-arm64/-/lmdb-win32-arm64-3.5.1.tgz", + "integrity": "sha512-50v0O1Lt37cwrmR9vWZK5hRW0Aw+KEmxJJ75fge/zIYdvNKB/0bSMSVR5Uc2OV9JhosIUyklOmrEvavwNJ8D6w==", "dev": true, "optional": true }, "@lmdb/lmdb-win32-x64": { - "version": "3.4.4", - "resolved": "https://registry.npmjs.org/@lmdb/lmdb-win32-x64/-/lmdb-win32-x64-3.4.4.tgz", - "integrity": "sha512-KRzfocJzB/mgoTCqnMawuLSKheHRVTqWfSmouIgYpFs6Hx4zvZSvsZKSCEb5gHmICy7qsx9l06jk3MFTtiFVAQ==", + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-win32-x64/-/lmdb-win32-x64-3.5.1.tgz", + "integrity": "sha512-qwosvPyl+zpUlp3gRb7UcJ3H8S28XHCzkv0Y0EgQToXjQP91ZD67EHSCDmaLjtKhe+GVIW5om1KUpzVLA0l6pg==", "dev": true, "optional": true }, @@ -29711,9 +30278,9 @@ } }, "@mantine/hooks": { - "version": "8.3.6", - "resolved": "https://registry.npmjs.org/@mantine/hooks/-/hooks-8.3.6.tgz", - "integrity": "sha512-liHfaWXHAkLjJy+Bkr29UsCwAoDQ/a64WrM67lksx8F0qqyjR5RQH8zVlhuOjdpQnwtlUkE/YiTvbJiPcoI0bw==" + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/@mantine/hooks/-/hooks-9.0.1.tgz", + "integrity": "sha512-WM/GbSD8MxZoy3X2IdrbxLq0/0ca4zMA5m7lGw9k1Vecqt1dC/nBed0IJd/w2HGs6avGs9CPlvQ8C4yBEcSnLA==" }, "@mantine/utils": { "version": "6.0.22", @@ -29866,18 +30433,6 @@ "resolved": "https://registry.npmjs.org/fresh/-/fresh-2.0.0.tgz", "integrity": "sha512-Rx/WycZ60HOaqLKAi6cHRKKI7zxWbJ31MhntmtwMoaTeF7XFH9hhBp8vITaMidfljRQ6eYWCKkaTK+ykVJHP2A==" }, - "http-errors": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.1.tgz", - "integrity": "sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ==", - "requires": { - "depd": "~2.0.0", - "inherits": "~2.0.4", - "setprototypeof": "~1.2.0", - "statuses": "~2.0.2", - "toidentifier": "~1.0.1" - } - }, "iconv-lite": { "version": "0.7.2", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.7.2.tgz", @@ -29954,11 +30509,6 @@ "send": "^1.2.0" } }, - "statuses": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.2.tgz", - "integrity": "sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==" - }, "type-is": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/type-is/-/type-is-2.0.1.tgz", @@ -30159,21 +30709,19 @@ "optional": true }, "@napi-rs/wasm-runtime": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-1.1.1.tgz", - "integrity": "sha512-p64ah1M1ld8xjWv3qbvFwHiFVWrq1yFvV4f7w+mzaqiR4IlSgkqhcRdHwsGgomwzBH51sRY4NEowLxnaBjcW/A==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-1.1.4.tgz", + "integrity": "sha512-3NQNNgA1YSlJb/kMH1ildASP9HW7/7kYnRI2szWJaofaS1hWmbGI4H+d3+22aGzXXN9IJ+n+GiFVcGipJP18ow==", "dev": true, "optional": true, "requires": { - "@emnapi/core": "^1.7.1", - "@emnapi/runtime": "^1.7.1", "@tybys/wasm-util": "^0.10.1" } }, "@ng-select/ng-option-highlight": { - "version": "21.8.0", - "resolved": "https://registry.npmjs.org/@ng-select/ng-option-highlight/-/ng-option-highlight-21.8.0.tgz", - "integrity": "sha512-A8EMXR9dU6VuItzqoKMiadzQIBDsrhwTTVmmxCsv4XCfpRF32rr+fTyIT1FKVE9DgHOuloi42Hdt6c/NF0iOyg==", + "version": "21.8.2", + "resolved": "https://registry.npmjs.org/@ng-select/ng-option-highlight/-/ng-option-highlight-21.8.2.tgz", + "integrity": "sha512-x9fH607cr6BgFWADMkzPK5wrZCpkBJkNzAXfEiD+gX+MWzgyE74WdY7H5ismrMkT2bMJJ1xysc/ypMzt0E7z7Q==", "requires": { "tslib": "^2.3.0" } @@ -30195,9 +30743,15 @@ } }, "@ngtools/webpack": { - "version": "21.1.5", - "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-21.1.5.tgz", - "integrity": "sha512-5nG9v/nEzsaKxgw5NurM6tPKPw0OYsCM3DL4ZI8+TidT55hYbsroTnyBcHBouJ1qlZlQXNtlsjsjBmBDtF7JZA==", + "version": "21.2.9", + "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-21.2.9.tgz", + "integrity": "sha512-1x/N26l76nYAsLjUdeaIn+u4mRRxTFSopDqxtJ1OXIkcJUYTgdK783q5n+ZGI7+S/o0D77XigLg8Dy5NHljn9A==", + "dev": true + }, + "@noble/hashes": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.4.0.tgz", + "integrity": "sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg==", "dev": true }, "@npmcli/agent": { @@ -30213,9 +30767,9 @@ }, "dependencies": { "lru-cache": { - "version": "11.2.4", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.2.4.tgz", - "integrity": "sha512-B5Y16Jr9LB9dHVkh6ZevG+vAbOsNOYCX+sXvFWFu7B3Iz5mijW3zdbMyhsh8ANd2mSWBYdJgnqi+mL7/LrOPYg==" + "version": "11.3.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.3.5.tgz", + "integrity": "sha512-NxVFwLAnrd9i7KUBxC4DrUhmgjzOs+1Qm50D3oF1/oL+r1NpZ4gA7xvG0/zJ8evR7zIKn4vLf7qTNduWFtCrRw==" } } }, @@ -30228,36 +30782,36 @@ } }, "@npmcli/git": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/@npmcli/git/-/git-7.0.1.tgz", - "integrity": "sha512-+XTFxK2jJF/EJJ5SoAzXk3qwIDfvFc5/g+bD274LZ7uY7LE8sTfG6Z8rOanPl2ZEvZWqNvmEdtXC25cE54VcoA==", + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@npmcli/git/-/git-7.0.2.tgz", + "integrity": "sha512-oeolHDjExNAJAnlYP2qzNjMX/Xi9bmu78C9dIGr4xjobrSKbuMYCph8lTzn4vnW3NjIqVmw/f8BCfouqyJXlRg==", "requires": { + "@gar/promise-retry": "^1.0.0", "@npmcli/promise-spawn": "^9.0.0", "ini": "^6.0.0", "lru-cache": "^11.2.1", "npm-pick-manifest": "^11.0.1", "proc-log": "^6.0.0", - "promise-retry": "^2.0.1", "semver": "^7.3.5", "which": "^6.0.0" }, "dependencies": { "isexe": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz", - "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==" + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-4.0.0.tgz", + "integrity": "sha512-FFUtZMpoZ8RqHS3XeXEmHWLA4thH+ZxCv2lOiPIn1Xc7CxrqhWzNSDzD+/chS/zbYezmiwWLdQC09JdQKmthOw==" }, "lru-cache": { - "version": "11.2.4", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.2.4.tgz", - "integrity": "sha512-B5Y16Jr9LB9dHVkh6ZevG+vAbOsNOYCX+sXvFWFu7B3Iz5mijW3zdbMyhsh8ANd2mSWBYdJgnqi+mL7/LrOPYg==" + "version": "11.3.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.3.5.tgz", + "integrity": "sha512-NxVFwLAnrd9i7KUBxC4DrUhmgjzOs+1Qm50D3oF1/oL+r1NpZ4gA7xvG0/zJ8evR7zIKn4vLf7qTNduWFtCrRw==" }, "which": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/which/-/which-6.0.0.tgz", - "integrity": "sha512-f+gEpIKMR9faW/JgAgPK1D7mekkFoqbmiwvNzuhsHetni20QSgzg9Vhn0g2JSJkkfehQnqdUAx7/e15qS1lPxg==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/which/-/which-6.0.1.tgz", + "integrity": "sha512-oGLe46MIrCRqX7ytPUf66EAYvdeMIZYn3WaocqqKZAxrBpkqHfL/qvTyJ/bTk5+AqHCjXmrv3CEWgy368zhRUg==", "requires": { - "isexe": "^3.1.1" + "isexe": "^4.0.0" } } } @@ -30277,9 +30831,9 @@ "integrity": "sha512-uuG5HZFXLfyFKqg8QypsmgLQW7smiRjVc45bqD/ofZZcR/uxEjgQU8qDPv0s9TEeMUiAAU/GC5bR6++UdTirIQ==" }, "@npmcli/package-json": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/@npmcli/package-json/-/package-json-7.0.4.tgz", - "integrity": "sha512-0wInJG3j/K40OJt/33ax47WfWMzZTm6OQxB9cDhTt5huCP2a9g2GnlsxmfN+PulItNPIpPrZ+kfwwUil7eHcZQ==", + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/@npmcli/package-json/-/package-json-7.0.5.tgz", + "integrity": "sha512-iVuTlG3ORq2iaVa1IWUxAO/jIp77tUKBhoMjuzYW2kL4MLN1bi/ofqkZ7D7OOwh8coAx1/S2ge0rMdGv8sLSOQ==", "requires": { "@npmcli/git": "^7.0.0", "glob": "^13.0.0", @@ -30287,7 +30841,7 @@ "json-parse-even-better-errors": "^5.0.0", "proc-log": "^6.0.0", "semver": "^7.5.3", - "validate-npm-package-license": "^3.0.4" + "spdx-expression-parse": "^4.0.0" } }, "@npmcli/promise-spawn": { @@ -30299,16 +30853,16 @@ }, "dependencies": { "isexe": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz", - "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==" + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-4.0.0.tgz", + "integrity": "sha512-FFUtZMpoZ8RqHS3XeXEmHWLA4thH+ZxCv2lOiPIn1Xc7CxrqhWzNSDzD+/chS/zbYezmiwWLdQC09JdQKmthOw==" }, "which": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/which/-/which-6.0.0.tgz", - "integrity": "sha512-f+gEpIKMR9faW/JgAgPK1D7mekkFoqbmiwvNzuhsHetni20QSgzg9Vhn0g2JSJkkfehQnqdUAx7/e15qS1lPxg==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/which/-/which-6.0.1.tgz", + "integrity": "sha512-oGLe46MIrCRqX7ytPUf66EAYvdeMIZYn3WaocqqKZAxrBpkqHfL/qvTyJ/bTk5+AqHCjXmrv3CEWgy368zhRUg==", "requires": { - "isexe": "^3.1.1" + "isexe": "^4.0.0" } } } @@ -30319,31 +30873,15 @@ "integrity": "sha512-gOBg5YHMfZy+TfHArfVogwgfBeQnKbbGo3pSUyK/gSI0AVu+pEiDVcKlQb0D8Mg1LNRZILZ6XG8I5dJ4KuAd9Q==" }, "@npmcli/run-script": { - "version": "10.0.3", - "resolved": "https://registry.npmjs.org/@npmcli/run-script/-/run-script-10.0.3.tgz", - "integrity": "sha512-ER2N6itRkzWbbtVmZ9WKaWxVlKlOeBFF1/7xx+KA5J1xKa4JjUwBdb6tDpk0v1qA+d+VDwHI9qmLcXSWcmi+Rw==", + "version": "10.0.4", + "resolved": "https://registry.npmjs.org/@npmcli/run-script/-/run-script-10.0.4.tgz", + "integrity": "sha512-mGUWr1uMnf0le2TwfOZY4SFxZGXGfm4Jtay/nwAa2FLNAKXUoUwaGwBMNH36UHPtinWfTSJ3nqFQr0091CxVGg==", "requires": { "@npmcli/node-gyp": "^5.0.0", "@npmcli/package-json": "^7.0.0", "@npmcli/promise-spawn": "^9.0.0", "node-gyp": "^12.1.0", - "proc-log": "^6.0.0", - "which": "^6.0.0" - }, - "dependencies": { - "isexe": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz", - "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==" - }, - "which": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/which/-/which-6.0.0.tgz", - "integrity": "sha512-f+gEpIKMR9faW/JgAgPK1D7mekkFoqbmiwvNzuhsHetni20QSgzg9Vhn0g2JSJkkfehQnqdUAx7/e15qS1lPxg==", - "requires": { - "isexe": "^3.1.1" - } - } + "proc-log": "^6.0.0" } }, "@oddbird/popover-polyfill": { @@ -30360,9 +30898,9 @@ } }, "@openproject/primer-view-components": { - "version": "0.84.5", - "resolved": "https://registry.npmjs.org/@openproject/primer-view-components/-/primer-view-components-0.84.5.tgz", - "integrity": "sha512-Q2rliK0PC37nku6blaRvlqGuh3WJS5hr7sqdHDvdzUUBoerigRHrNsg3kNy4tUEduAcEaRpsGRGkF1z0LLo2Gw==", + "version": "0.85.0", + "resolved": "https://registry.npmjs.org/@openproject/primer-view-components/-/primer-view-components-0.85.0.tgz", + "integrity": "sha512-W/MUtfOQnkYzPMF6unyVJ6U53epCfpXwP2DcEc3YVzEK6XIaPCSS9a86dK714Na8ysOSL6j9OGgsThyfvToJKw==", "requires": { "@github/auto-check-element": "^6.0.0", "@github/auto-complete-element": "^3.8.0", @@ -30388,144 +30926,289 @@ } }, "@oxc-project/types": { - "version": "0.106.0", - "resolved": "https://registry.npmjs.org/@oxc-project/types/-/types-0.106.0.tgz", - "integrity": "sha512-QdsH3rZq480VnOHSHgPYOhjL8O8LBdcnSjM408BpPCCUc0JYYZPG9Gafl9i3OcGk/7137o+gweb4cCv3WAUykg==", + "version": "0.113.0", + "resolved": "https://registry.npmjs.org/@oxc-project/types/-/types-0.113.0.tgz", + "integrity": "sha512-Tp3XmgxwNQ9pEN9vxgJBAqdRamHibi76iowQ38O2I4PMpcvNRQNVsU2n1x1nv9yh0XoTrGFzf7cZSGxmixxrhA==", "dev": true }, "@parcel/watcher": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.5.1.tgz", - "integrity": "sha512-dfUnCxiN9H4ap84DvD2ubjw+3vUNpstxa0TneY/Paat8a3R4uQZDLSvWjmznAY/DoahqTHl9V46HF/Zs3F29pg==", + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.5.6.tgz", + "integrity": "sha512-tmmZ3lQxAe/k/+rNnXQRawJ4NjxO2hqiOLTHvWchtGZULp4RyFeh6aU4XdOYBFe2KE1oShQTv4AblOs2iOrNnQ==", "dev": true, "optional": true, "requires": { - "@parcel/watcher-android-arm64": "2.5.1", - "@parcel/watcher-darwin-arm64": "2.5.1", - "@parcel/watcher-darwin-x64": "2.5.1", - "@parcel/watcher-freebsd-x64": "2.5.1", - "@parcel/watcher-linux-arm-glibc": "2.5.1", - "@parcel/watcher-linux-arm-musl": "2.5.1", - "@parcel/watcher-linux-arm64-glibc": "2.5.1", - "@parcel/watcher-linux-arm64-musl": "2.5.1", - "@parcel/watcher-linux-x64-glibc": "2.5.1", - "@parcel/watcher-linux-x64-musl": "2.5.1", - "@parcel/watcher-win32-arm64": "2.5.1", - "@parcel/watcher-win32-ia32": "2.5.1", - "@parcel/watcher-win32-x64": "2.5.1", - "detect-libc": "^1.0.3", + "@parcel/watcher-android-arm64": "2.5.6", + "@parcel/watcher-darwin-arm64": "2.5.6", + "@parcel/watcher-darwin-x64": "2.5.6", + "@parcel/watcher-freebsd-x64": "2.5.6", + "@parcel/watcher-linux-arm-glibc": "2.5.6", + "@parcel/watcher-linux-arm-musl": "2.5.6", + "@parcel/watcher-linux-arm64-glibc": "2.5.6", + "@parcel/watcher-linux-arm64-musl": "2.5.6", + "@parcel/watcher-linux-x64-glibc": "2.5.6", + "@parcel/watcher-linux-x64-musl": "2.5.6", + "@parcel/watcher-win32-arm64": "2.5.6", + "@parcel/watcher-win32-ia32": "2.5.6", + "@parcel/watcher-win32-x64": "2.5.6", + "detect-libc": "^2.0.3", "is-glob": "^4.0.3", - "micromatch": "^4.0.5", - "node-addon-api": "^7.0.0" + "node-addon-api": "^7.0.0", + "picomatch": "^4.0.3" }, "dependencies": { - "detect-libc": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", - "integrity": "sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==", - "dev": true, - "optional": true - }, "node-addon-api": { "version": "7.1.1", "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.1.1.tgz", "integrity": "sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==", "dev": true, "optional": true + }, + "picomatch": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz", + "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==", + "dev": true, + "optional": true } } }, "@parcel/watcher-android-arm64": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-android-arm64/-/watcher-android-arm64-2.5.1.tgz", - "integrity": "sha512-KF8+j9nNbUN8vzOFDpRMsaKBHZ/mcjEjMToVMJOhTozkDonQFFrRcfdLWn6yWKCmJKmdVxSgHiYvTCef4/qcBA==", + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/@parcel/watcher-android-arm64/-/watcher-android-arm64-2.5.6.tgz", + "integrity": "sha512-YQxSS34tPF/6ZG7r/Ih9xy+kP/WwediEUsqmtf0cuCV5TPPKw/PQHRhueUo6JdeFJaqV3pyjm0GdYjZotbRt/A==", "dev": true, "optional": true }, "@parcel/watcher-darwin-arm64": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-arm64/-/watcher-darwin-arm64-2.5.1.tgz", - "integrity": "sha512-eAzPv5osDmZyBhou8PoF4i6RQXAfeKL9tjb3QzYuccXFMQU0ruIc/POh30ePnaOyD1UXdlKguHBmsTs53tVoPw==", + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-arm64/-/watcher-darwin-arm64-2.5.6.tgz", + "integrity": "sha512-Z2ZdrnwyXvvvdtRHLmM4knydIdU9adO3D4n/0cVipF3rRiwP+3/sfzpAwA/qKFL6i1ModaabkU7IbpeMBgiVEA==", "dev": true, "optional": true }, "@parcel/watcher-darwin-x64": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-x64/-/watcher-darwin-x64-2.5.1.tgz", - "integrity": "sha512-1ZXDthrnNmwv10A0/3AJNZ9JGlzrF82i3gNQcWOzd7nJ8aj+ILyW1MTxVk35Db0u91oD5Nlk9MBiujMlwmeXZg==", + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-x64/-/watcher-darwin-x64-2.5.6.tgz", + "integrity": "sha512-HgvOf3W9dhithcwOWX9uDZyn1lW9R+7tPZ4sug+NGrGIo4Rk1hAXLEbcH1TQSqxts0NYXXlOWqVpvS1SFS4fRg==", "dev": true, "optional": true }, "@parcel/watcher-freebsd-x64": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-freebsd-x64/-/watcher-freebsd-x64-2.5.1.tgz", - "integrity": "sha512-SI4eljM7Flp9yPuKi8W0ird8TI/JK6CSxju3NojVI6BjHsTyK7zxA9urjVjEKJ5MBYC+bLmMcbAWlZ+rFkLpJQ==", + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/@parcel/watcher-freebsd-x64/-/watcher-freebsd-x64-2.5.6.tgz", + "integrity": "sha512-vJVi8yd/qzJxEKHkeemh7w3YAn6RJCtYlE4HPMoVnCpIXEzSrxErBW5SJBgKLbXU3WdIpkjBTeUNtyBVn8TRng==", "dev": true, "optional": true }, "@parcel/watcher-linux-arm-glibc": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-glibc/-/watcher-linux-arm-glibc-2.5.1.tgz", - "integrity": "sha512-RCdZlEyTs8geyBkkcnPWvtXLY44BCeZKmGYRtSgtwwnHR4dxfHRG3gR99XdMEdQ7KeiDdasJwwvNSF5jKtDwdA==", + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-glibc/-/watcher-linux-arm-glibc-2.5.6.tgz", + "integrity": "sha512-9JiYfB6h6BgV50CCfasfLf/uvOcJskMSwcdH1PHH9rvS1IrNy8zad6IUVPVUfmXr+u+Km9IxcfMLzgdOudz9EQ==", "dev": true, "optional": true }, "@parcel/watcher-linux-arm-musl": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-musl/-/watcher-linux-arm-musl-2.5.1.tgz", - "integrity": "sha512-6E+m/Mm1t1yhB8X412stiKFG3XykmgdIOqhjWj+VL8oHkKABfu/gjFj8DvLrYVHSBNC+/u5PeNrujiSQ1zwd1Q==", + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-musl/-/watcher-linux-arm-musl-2.5.6.tgz", + "integrity": "sha512-Ve3gUCG57nuUUSyjBq/MAM0CzArtuIOxsBdQ+ftz6ho8n7s1i9E1Nmk/xmP323r2YL0SONs1EuwqBp2u1k5fxg==", "dev": true, "optional": true }, "@parcel/watcher-linux-arm64-glibc": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-glibc/-/watcher-linux-arm64-glibc-2.5.1.tgz", - "integrity": "sha512-LrGp+f02yU3BN9A+DGuY3v3bmnFUggAITBGriZHUREfNEzZh/GO06FF5u2kx8x+GBEUYfyTGamol4j3m9ANe8w==", + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-glibc/-/watcher-linux-arm64-glibc-2.5.6.tgz", + "integrity": "sha512-f2g/DT3NhGPdBmMWYoxixqYr3v/UXcmLOYy16Bx0TM20Tchduwr4EaCbmxh1321TABqPGDpS8D/ggOTaljijOA==", "dev": true, "optional": true }, "@parcel/watcher-linux-arm64-musl": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-musl/-/watcher-linux-arm64-musl-2.5.1.tgz", - "integrity": "sha512-cFOjABi92pMYRXS7AcQv9/M1YuKRw8SZniCDw0ssQb/noPkRzA+HBDkwmyOJYp5wXcsTrhxO0zq1U11cK9jsFg==", + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-musl/-/watcher-linux-arm64-musl-2.5.6.tgz", + "integrity": "sha512-qb6naMDGlbCwdhLj6hgoVKJl2odL34z2sqkC7Z6kzir8b5W65WYDpLB6R06KabvZdgoHI/zxke4b3zR0wAbDTA==", "dev": true, "optional": true }, "@parcel/watcher-linux-x64-glibc": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-glibc/-/watcher-linux-x64-glibc-2.5.1.tgz", - "integrity": "sha512-GcESn8NZySmfwlTsIur+49yDqSny2IhPeZfXunQi48DMugKeZ7uy1FX83pO0X22sHntJ4Ub+9k34XQCX+oHt2A==", + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-glibc/-/watcher-linux-x64-glibc-2.5.6.tgz", + "integrity": "sha512-kbT5wvNQlx7NaGjzPFu8nVIW1rWqV780O7ZtkjuWaPUgpv2NMFpjYERVi0UYj1msZNyCzGlaCWEtzc+exjMGbQ==", "dev": true, "optional": true }, "@parcel/watcher-linux-x64-musl": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-musl/-/watcher-linux-x64-musl-2.5.1.tgz", - "integrity": "sha512-n0E2EQbatQ3bXhcH2D1XIAANAcTZkQICBPVaxMeaCVBtOpBZpWJuf7LwyWPSBDITb7In8mqQgJ7gH8CILCURXg==", + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-musl/-/watcher-linux-x64-musl-2.5.6.tgz", + "integrity": "sha512-1JRFeC+h7RdXwldHzTsmdtYR/Ku8SylLgTU/reMuqdVD7CtLwf0VR1FqeprZ0eHQkO0vqsbvFLXUmYm/uNKJBg==", "dev": true, "optional": true }, "@parcel/watcher-win32-arm64": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-arm64/-/watcher-win32-arm64-2.5.1.tgz", - "integrity": "sha512-RFzklRvmc3PkjKjry3hLF9wD7ppR4AKcWNzH7kXR7GUe0Igb3Nz8fyPwtZCSquGrhU5HhUNDr/mKBqj7tqA2Vw==", + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-arm64/-/watcher-win32-arm64-2.5.6.tgz", + "integrity": "sha512-3ukyebjc6eGlw9yRt678DxVF7rjXatWiHvTXqphZLvo7aC5NdEgFufVwjFfY51ijYEWpXbqF5jtrK275z52D4Q==", "dev": true, "optional": true }, "@parcel/watcher-win32-ia32": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-ia32/-/watcher-win32-ia32-2.5.1.tgz", - "integrity": "sha512-c2KkcVN+NJmuA7CGlaGD1qJh1cLfDnQsHjE89E60vUEMlqduHGCdCLJCID5geFVM0dOtA3ZiIO8BoEQmzQVfpQ==", + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-ia32/-/watcher-win32-ia32-2.5.6.tgz", + "integrity": "sha512-k35yLp1ZMwwee3Ez/pxBi5cf4AoBKYXj00CZ80jUz5h8prpiaQsiRPKQMxoLstNuqe2vR4RNPEAEcjEFzhEz/g==", "dev": true, "optional": true }, "@parcel/watcher-win32-x64": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-x64/-/watcher-win32-x64-2.5.1.tgz", - "integrity": "sha512-9lHBdJITeNR++EvSQVUcaZoWupyHfXe1jZvGZ06O/5MflPcuPLtEphScIBL+AiCWBO46tDSHzWyD0uDmmZqsgA==", + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-x64/-/watcher-win32-x64-2.5.6.tgz", + "integrity": "sha512-hbQlYcCq5dlAX9Qx+kFb0FHue6vbjlf0FrNzSKdYK2APUf7tGfGxQCk2ihEREmbR6ZMc0MVAD5RIX/41gpUzTw==", "dev": true, "optional": true }, + "@peculiar/asn1-cms": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-cms/-/asn1-cms-2.6.1.tgz", + "integrity": "sha512-vdG4fBF6Lkirkcl53q6eOdn3XYKt+kJTG59edgRZORlg/3atWWEReRCx5rYE1ZzTTX6vLK5zDMjHh7vbrcXGtw==", + "dev": true, + "requires": { + "@peculiar/asn1-schema": "^2.6.0", + "@peculiar/asn1-x509": "^2.6.1", + "@peculiar/asn1-x509-attr": "^2.6.1", + "asn1js": "^3.0.6", + "tslib": "^2.8.1" + } + }, + "@peculiar/asn1-csr": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-csr/-/asn1-csr-2.6.1.tgz", + "integrity": "sha512-WRWnKfIocHyzFYQTka8O/tXCiBquAPSrRjXbOkHbO4qdmS6loffCEGs+rby6WxxGdJCuunnhS2duHURhjyio6w==", + "dev": true, + "requires": { + "@peculiar/asn1-schema": "^2.6.0", + "@peculiar/asn1-x509": "^2.6.1", + "asn1js": "^3.0.6", + "tslib": "^2.8.1" + } + }, + "@peculiar/asn1-ecc": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-ecc/-/asn1-ecc-2.6.1.tgz", + "integrity": "sha512-+Vqw8WFxrtDIN5ehUdvlN2m73exS2JVG0UAyfVB31gIfor3zWEAQPD+K9ydCxaj3MLen9k0JhKpu9LqviuCE1g==", + "dev": true, + "requires": { + "@peculiar/asn1-schema": "^2.6.0", + "@peculiar/asn1-x509": "^2.6.1", + "asn1js": "^3.0.6", + "tslib": "^2.8.1" + } + }, + "@peculiar/asn1-pfx": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-pfx/-/asn1-pfx-2.6.1.tgz", + "integrity": "sha512-nB5jVQy3MAAWvq0KY0R2JUZG8bO/bTLpnwyOzXyEh/e54ynGTatAR+csOnXkkVD9AFZ2uL8Z7EV918+qB1qDvw==", + "dev": true, + "requires": { + "@peculiar/asn1-cms": "^2.6.1", + "@peculiar/asn1-pkcs8": "^2.6.1", + "@peculiar/asn1-rsa": "^2.6.1", + "@peculiar/asn1-schema": "^2.6.0", + "asn1js": "^3.0.6", + "tslib": "^2.8.1" + } + }, + "@peculiar/asn1-pkcs8": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-pkcs8/-/asn1-pkcs8-2.6.1.tgz", + "integrity": "sha512-JB5iQ9Izn5yGMw3ZG4Nw3Xn/hb/G38GYF3lf7WmJb8JZUydhVGEjK/ZlFSWhnlB7K/4oqEs8HnfFIKklhR58Tw==", + "dev": true, + "requires": { + "@peculiar/asn1-schema": "^2.6.0", + "@peculiar/asn1-x509": "^2.6.1", + "asn1js": "^3.0.6", + "tslib": "^2.8.1" + } + }, + "@peculiar/asn1-pkcs9": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-pkcs9/-/asn1-pkcs9-2.6.1.tgz", + "integrity": "sha512-5EV8nZoMSxeWmcxWmmcolg22ojZRgJg+Y9MX2fnE2bGRo5KQLqV5IL9kdSQDZxlHz95tHvIq9F//bvL1OeNILw==", + "dev": true, + "requires": { + "@peculiar/asn1-cms": "^2.6.1", + "@peculiar/asn1-pfx": "^2.6.1", + "@peculiar/asn1-pkcs8": "^2.6.1", + "@peculiar/asn1-schema": "^2.6.0", + "@peculiar/asn1-x509": "^2.6.1", + "@peculiar/asn1-x509-attr": "^2.6.1", + "asn1js": "^3.0.6", + "tslib": "^2.8.1" + } + }, + "@peculiar/asn1-rsa": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-rsa/-/asn1-rsa-2.6.1.tgz", + "integrity": "sha512-1nVMEh46SElUt5CB3RUTV4EG/z7iYc7EoaDY5ECwganibQPkZ/Y2eMsTKB/LeyrUJ+W/tKoD9WUqIy8vB+CEdA==", + "dev": true, + "requires": { + "@peculiar/asn1-schema": "^2.6.0", + "@peculiar/asn1-x509": "^2.6.1", + "asn1js": "^3.0.6", + "tslib": "^2.8.1" + } + }, + "@peculiar/asn1-schema": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-schema/-/asn1-schema-2.6.0.tgz", + "integrity": "sha512-xNLYLBFTBKkCzEZIw842BxytQQATQv+lDTCEMZ8C196iJcJJMBUZxrhSTxLaohMyKK8QlzRNTRkUmanucnDSqg==", + "dev": true, + "requires": { + "asn1js": "^3.0.6", + "pvtsutils": "^1.3.6", + "tslib": "^2.8.1" + } + }, + "@peculiar/asn1-x509": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-x509/-/asn1-x509-2.6.1.tgz", + "integrity": "sha512-O9jT5F1A2+t3r7C4VT7LYGXqkGLK7Kj1xFpz7U0isPrubwU5PbDoyYtx6MiGst29yq7pXN5vZbQFKRCP+lLZlA==", + "dev": true, + "requires": { + "@peculiar/asn1-schema": "^2.6.0", + "asn1js": "^3.0.6", + "pvtsutils": "^1.3.6", + "tslib": "^2.8.1" + } + }, + "@peculiar/asn1-x509-attr": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-x509-attr/-/asn1-x509-attr-2.6.1.tgz", + "integrity": "sha512-tlW6cxoHwgcQghnJwv3YS+9OO1737zgPogZ+CgWRUK4roEwIPzRH4JEiG770xe5HX2ATfCpmX60gurfWIF9dcQ==", + "dev": true, + "requires": { + "@peculiar/asn1-schema": "^2.6.0", + "@peculiar/asn1-x509": "^2.6.1", + "asn1js": "^3.0.6", + "tslib": "^2.8.1" + } + }, + "@peculiar/x509": { + "version": "1.14.3", + "resolved": "https://registry.npmjs.org/@peculiar/x509/-/x509-1.14.3.tgz", + "integrity": "sha512-C2Xj8FZ0uHWeCXXqX5B4/gVFQmtSkiuOolzAgutjTfseNOHT3pUjljDZsTSxXFGgio54bCzVFqmEOUrIVk8RDA==", + "dev": true, + "requires": { + "@peculiar/asn1-cms": "^2.6.0", + "@peculiar/asn1-csr": "^2.6.0", + "@peculiar/asn1-ecc": "^2.6.0", + "@peculiar/asn1-pkcs9": "^2.6.0", + "@peculiar/asn1-rsa": "^2.6.0", + "@peculiar/asn1-schema": "^2.6.0", + "@peculiar/asn1-x509": "^2.6.0", + "pvtsutils": "^1.3.6", + "reflect-metadata": "^0.2.2", + "tslib": "^2.8.1", + "tsyringe": "^4.10.0" + } + }, "@primer/behaviors": { "version": "1.3.5", "resolved": "https://registry.npmjs.org/@primer/behaviors/-/behaviors-1.3.5.tgz", @@ -30555,9 +31238,9 @@ "integrity": "sha512-NB9uYfJ01FVY6zp+33EoUbJ0paS3JrWY+PqdHPebTvyRtQgL3sX8//3jWqjt3/jL81UMEulJRM2A0hPj0/vFpQ==" }, "@primer/view-components": { - "version": "npm:@openproject/primer-view-components@0.84.5", - "resolved": "https://registry.npmjs.org/@openproject/primer-view-components/-/primer-view-components-0.84.5.tgz", - "integrity": "sha512-Q2rliK0PC37nku6blaRvlqGuh3WJS5hr7sqdHDvdzUUBoerigRHrNsg3kNy4tUEduAcEaRpsGRGkF1z0LLo2Gw==", + "version": "npm:@openproject/primer-view-components@0.85.0", + "resolved": "https://registry.npmjs.org/@openproject/primer-view-components/-/primer-view-components-0.85.0.tgz", + "integrity": "sha512-W/MUtfOQnkYzPMF6unyVJ6U53epCfpXwP2DcEc3YVzEK6XIaPCSS9a86dK714Na8ysOSL6j9OGgsThyfvToJKw==", "requires": { "@github/auto-check-element": "^6.0.0", "@github/auto-complete-element": "^3.8.0", @@ -30608,79 +31291,79 @@ "integrity": "sha512-42aWfPrimMfDKDi4YegyS7x+/0tlzaqwPQCULLanv3DMIlu96KTJR0fM5isWX2UViOqlGnX6YFgqWepcX+XMNg==" }, "@rolldown/binding-android-arm64": { - "version": "1.0.0-beta.58", - "resolved": "https://registry.npmjs.org/@rolldown/binding-android-arm64/-/binding-android-arm64-1.0.0-beta.58.tgz", - "integrity": "sha512-mWj5eE4Qc8TbPdGGaaLvBb9XfDPvE1EmZkJQgiGKwchkWH4oAJcRAKMTw7ZHnb1L+t7Ah41sBkAecaIsuUgsug==", + "version": "1.0.0-rc.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-android-arm64/-/binding-android-arm64-1.0.0-rc.4.tgz", + "integrity": "sha512-vRq9f4NzvbdZavhQbjkJBx7rRebDKYR9zHfO/Wg486+I7bSecdUapzCm5cyXoK+LHokTxgSq7A5baAXUZkIz0w==", "dev": true, "optional": true }, "@rolldown/binding-darwin-arm64": { - "version": "1.0.0-beta.58", - "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.0.0-beta.58.tgz", - "integrity": "sha512-wFxUymI/5R8bH8qZFYDfAxAN9CyISEIYke+95oZPiv6EWo88aa5rskjVcCpKA532R+klFmdqjbbaD56GNmTF4Q==", + "version": "1.0.0-rc.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.0.0-rc.4.tgz", + "integrity": "sha512-kFgEvkWLqt3YCgKB5re9RlIrx9bRsvyVUnaTakEpOPuLGzLpLapYxE9BufJNvPg8GjT6mB1alN4yN1NjzoeM8Q==", "dev": true, "optional": true }, "@rolldown/binding-darwin-x64": { - "version": "1.0.0-beta.58", - "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-x64/-/binding-darwin-x64-1.0.0-beta.58.tgz", - "integrity": "sha512-ybp3MkPj23VDV9PhtRwdU5qrGhlViWRV5BjKwO6epaSlUD5lW0WyY+roN3ZAzbma/9RrMTgZ/a/gtQq8YXOcqw==", + "version": "1.0.0-rc.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-x64/-/binding-darwin-x64-1.0.0-rc.4.tgz", + "integrity": "sha512-JXmaOJGsL/+rsmMfutcDjxWM2fTaVgCHGoXS7nE8Z3c9NAYjGqHvXrAhMUZvMpHS/k7Mg+X7n/MVKb7NYWKKww==", "dev": true, "optional": true }, "@rolldown/binding-freebsd-x64": { - "version": "1.0.0-beta.58", - "resolved": "https://registry.npmjs.org/@rolldown/binding-freebsd-x64/-/binding-freebsd-x64-1.0.0-beta.58.tgz", - "integrity": "sha512-Evxj3yh7FWvyklUYZa0qTVT9N2zX9TPDqGF056hl8hlCZ9/ndQ2xMv6uw9PD1VlLpukbsqL+/C6M0qwipL0QMg==", + "version": "1.0.0-rc.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-freebsd-x64/-/binding-freebsd-x64-1.0.0-rc.4.tgz", + "integrity": "sha512-ep3Catd6sPnHTM0P4hNEvIv5arnDvk01PfyJIJ+J3wVCG1eEaPo09tvFqdtcaTrkwQy0VWR24uz+cb4IsK53Qw==", "dev": true, "optional": true }, "@rolldown/binding-linux-arm-gnueabihf": { - "version": "1.0.0-beta.58", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.0.0-beta.58.tgz", - "integrity": "sha512-tYeXprDOrEgVHUbPXH6MPso4cM/c6RTkmJNICMQlYdki4hGMh92aj3yU6CKs+4X5gfG0yj5kVUw/L4M685SYag==", + "version": "1.0.0-rc.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.0.0-rc.4.tgz", + "integrity": "sha512-LwA5ayKIpnsgXJEwWc3h8wPiS33NMIHd9BhsV92T8VetVAbGe2qXlJwNVDGHN5cOQ22R9uYvbrQir2AB+ntT2w==", "dev": true, "optional": true }, "@rolldown/binding-linux-arm64-gnu": { - "version": "1.0.0-beta.58", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.0.0-beta.58.tgz", - "integrity": "sha512-N78vmZzP6zG967Ohr+MasCjmKtis0geZ1SOVmxrA0/bklTQSzH5kHEjW5Qn+i1taFno6GEre1E40v0wuWsNOQw==", + "version": "1.0.0-rc.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.0.0-rc.4.tgz", + "integrity": "sha512-AC1WsGdlV1MtGay/OQ4J9T7GRadVnpYRzTcygV1hKnypbYN20Yh4t6O1Sa2qRBMqv1etulUknqXjc3CTIsBu6A==", "dev": true, "optional": true }, "@rolldown/binding-linux-arm64-musl": { - "version": "1.0.0-beta.58", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.0.0-beta.58.tgz", - "integrity": "sha512-l+p4QVtG72C7wI2SIkNQw/KQtSjuYwS3rV6AKcWrRBF62ClsFUcif5vLaZIEbPrCXu5OFRXigXFJnxYsVVZqdQ==", + "version": "1.0.0-rc.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.0.0-rc.4.tgz", + "integrity": "sha512-lU+6rgXXViO61B4EudxtVMXSOfiZONR29Sys5VGSetUY7X8mg9FCKIIjcPPj8xNDeYzKl+H8F/qSKOBVFJChCQ==", "dev": true, "optional": true }, "@rolldown/binding-linux-x64-gnu": { - "version": "1.0.0-beta.58", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.0.0-beta.58.tgz", - "integrity": "sha512-urzJX0HrXxIh0FfxwWRjfPCMeInU9qsImLQxHBgLp5ivji1EEUnOfux8KxPPnRQthJyneBrN2LeqUix9DYrNaQ==", + "version": "1.0.0-rc.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.0.0-rc.4.tgz", + "integrity": "sha512-DZaN1f0PGp/bSvKhtw50pPsnln4T13ycDq1FrDWRiHmWt1JeW+UtYg9touPFf8yt993p8tS2QjybpzKNTxYEwg==", "dev": true, "optional": true }, "@rolldown/binding-linux-x64-musl": { - "version": "1.0.0-beta.58", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-musl/-/binding-linux-x64-musl-1.0.0-beta.58.tgz", - "integrity": "sha512-7ijfVK3GISnXIwq/1FZo+KyAUJjL3kWPJ7rViAL6MWeEBhEgRzJ0yEd9I8N9aut8Y8ab+EKFJyRNMWZuUBwQ0A==", + "version": "1.0.0-rc.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-musl/-/binding-linux-x64-musl-1.0.0-rc.4.tgz", + "integrity": "sha512-RnGxwZLN7fhMMAItnD6dZ7lvy+TI7ba+2V54UF4dhaWa/p8I/ys1E73KO6HmPmgz92ZkfD8TXS1IMV8+uhbR9g==", "dev": true, "optional": true }, "@rolldown/binding-openharmony-arm64": { - "version": "1.0.0-beta.58", - "resolved": "https://registry.npmjs.org/@rolldown/binding-openharmony-arm64/-/binding-openharmony-arm64-1.0.0-beta.58.tgz", - "integrity": "sha512-/m7sKZCS+cUULbzyJTIlv8JbjNohxbpAOA6cM+lgWgqVzPee3U6jpwydrib328JFN/gF9A99IZEnuGYqEDJdww==", + "version": "1.0.0-rc.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-openharmony-arm64/-/binding-openharmony-arm64-1.0.0-rc.4.tgz", + "integrity": "sha512-6lcI79+X8klGiGd8yHuTgQRjuuJYNggmEml+RsyN596P23l/zf9FVmJ7K0KVKkFAeYEdg0iMUKyIxiV5vebDNQ==", "dev": true, "optional": true }, "@rolldown/binding-wasm32-wasi": { - "version": "1.0.0-beta.58", - "resolved": "https://registry.npmjs.org/@rolldown/binding-wasm32-wasi/-/binding-wasm32-wasi-1.0.0-beta.58.tgz", - "integrity": "sha512-6SZk7zMgv+y3wFFQ9qE5P9NnRHcRsptL1ypmudD26PDY+PvFCvfHRkJNfclWnvacVGxjowr7JOL3a9fd1wWhUw==", + "version": "1.0.0-rc.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-wasm32-wasi/-/binding-wasm32-wasi-1.0.0-rc.4.tgz", + "integrity": "sha512-wz7ohsKCAIWy91blZ/1FlpPdqrsm1xpcEOQVveWoL6+aSPKL4VUcoYmmzuLTssyZxRpEwzuIxL/GDsvpjaBtOw==", "dev": true, "optional": true, "requires": { @@ -30688,197 +31371,197 @@ } }, "@rolldown/binding-win32-arm64-msvc": { - "version": "1.0.0-beta.58", - "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.0.0-beta.58.tgz", - "integrity": "sha512-sFqfYPnBZ6xBhMkadB7UD0yjEDRvs7ipR3nCggblN+N4ODCXY6qhg/bKL39+W+dgQybL7ErD4EGERVbW9DAWvg==", + "version": "1.0.0-rc.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.0.0-rc.4.tgz", + "integrity": "sha512-cfiMrfuWCIgsFmcVG0IPuO6qTRHvF7NuG3wngX1RZzc6dU8FuBFb+J3MIR5WrdTNozlumfgL4cvz+R4ozBCvsQ==", "dev": true, "optional": true }, "@rolldown/binding-win32-x64-msvc": { - "version": "1.0.0-beta.58", - "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.0.0-beta.58.tgz", - "integrity": "sha512-AnFWJdAqB8+IDPcGrATYs67Kik/6tnndNJV2jGRmwlbeNiQQ8GhRJU8ETRlINfII0pqi9k4WWLnb00p1QCxw/Q==", + "version": "1.0.0-rc.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.0.0-rc.4.tgz", + "integrity": "sha512-p6UeR9y7ht82AH57qwGuFYn69S6CZ7LLKdCKy/8T3zS9VTrJei2/CGsTUV45Da4Z9Rbhc7G4gyWQ/Ioamqn09g==", "dev": true, "optional": true }, "@rolldown/pluginutils": { - "version": "1.0.0-beta.58", - "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-beta.58.tgz", - "integrity": "sha512-qWhDs6yFGR5xDfdrwiSa3CWGIHxD597uGE/A9xGqytBjANvh4rLCTTkq7szhMV4+Ygh+PMS90KVJ8xWG/TkX4w==", + "version": "1.0.0-rc.4", + "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-rc.4.tgz", + "integrity": "sha512-1BrrmTu0TWfOP1riA8uakjFc9bpIUGzVKETsOtzY39pPga8zELGDl8eu1Dx7/gjM5CAz14UknsUMpBO8L+YntQ==", "dev": true }, "@rollup/rollup-android-arm-eabi": { - "version": "4.59.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.59.0.tgz", - "integrity": "sha512-upnNBkA6ZH2VKGcBj9Fyl9IGNPULcjXRlg0LLeaioQWueH30p6IXtJEbKAgvyv+mJaMxSm1l6xwDXYjpEMiLMg==", + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.60.2.tgz", + "integrity": "sha512-dnlp69efPPg6Uaw2dVqzWRfAWRnYVb1XJ8CyyhIbZeaq4CA5/mLeZ1IEt9QqQxmbdvagjLIm2ZL8BxXv5lH4Yw==", "dev": true, "optional": true }, "@rollup/rollup-android-arm64": { - "version": "4.59.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.59.0.tgz", - "integrity": "sha512-hZ+Zxj3SySm4A/DylsDKZAeVg0mvi++0PYVceVyX7hemkw7OreKdCvW2oQ3T1FMZvCaQXqOTHb8qmBShoqk69Q==", + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.60.2.tgz", + "integrity": "sha512-OqZTwDRDchGRHHm/hwLOL7uVPB9aUvI0am/eQuWMNyFHf5PSEQmyEeYYheA0EPPKUO/l0uigCp+iaTjoLjVoHg==", "dev": true, "optional": true }, "@rollup/rollup-darwin-arm64": { - "version": "4.59.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.59.0.tgz", - "integrity": "sha512-W2Psnbh1J8ZJw0xKAd8zdNgF9HRLkdWwwdWqubSVk0pUuQkoHnv7rx4GiF9rT4t5DIZGAsConRE3AxCdJ4m8rg==", + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.60.2.tgz", + "integrity": "sha512-UwRE7CGpvSVEQS8gUMBe1uADWjNnVgP3Iusyda1nSRwNDCsRjnGc7w6El6WLQsXmZTbLZx9cecegumcitNfpmA==", "dev": true, "optional": true }, "@rollup/rollup-darwin-x64": { - "version": "4.59.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.59.0.tgz", - "integrity": "sha512-ZW2KkwlS4lwTv7ZVsYDiARfFCnSGhzYPdiOU4IM2fDbL+QGlyAbjgSFuqNRbSthybLbIJ915UtZBtmuLrQAT/w==", + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.60.2.tgz", + "integrity": "sha512-gjEtURKLCC5VXm1I+2i1u9OhxFsKAQJKTVB8WvDAHF+oZlq0GTVFOlTlO1q3AlCTE/DF32c16ESvfgqR7343/g==", "dev": true, "optional": true }, "@rollup/rollup-freebsd-arm64": { - "version": "4.59.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.59.0.tgz", - "integrity": "sha512-EsKaJ5ytAu9jI3lonzn3BgG8iRBjV4LxZexygcQbpiU0wU0ATxhNVEpXKfUa0pS05gTcSDMKpn3Sx+QB9RlTTA==", + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.60.2.tgz", + "integrity": "sha512-Bcl6CYDeAgE70cqZaMojOi/eK63h5Me97ZqAQoh77VPjMysA/4ORQBRGo3rRy45x4MzVlU9uZxs8Uwy7ZaKnBw==", "dev": true, "optional": true }, "@rollup/rollup-freebsd-x64": { - "version": "4.59.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.59.0.tgz", - "integrity": "sha512-d3DuZi2KzTMjImrxoHIAODUZYoUUMsuUiY4SRRcJy6NJoZ6iIqWnJu9IScV9jXysyGMVuW+KNzZvBLOcpdl3Vg==", + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.60.2.tgz", + "integrity": "sha512-LU+TPda3mAE2QB0/Hp5VyeKJivpC6+tlOXd1VMoXV/YFMvk/MNk5iXeBfB4MQGRWyOYVJ01625vjkr0Az98OJQ==", "dev": true, "optional": true }, "@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.59.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.59.0.tgz", - "integrity": "sha512-t4ONHboXi/3E0rT6OZl1pKbl2Vgxf9vJfWgmUoCEVQVxhW6Cw/c8I6hbbu7DAvgp82RKiH7TpLwxnJeKv2pbsw==", + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.60.2.tgz", + "integrity": "sha512-2QxQrM+KQ7DAW4o22j+XZ6RKdxjLD7BOWTP0Bv0tmjdyhXSsr2Ul1oJDQqh9Zf5qOwTuTc7Ek83mOFaKnodPjg==", "dev": true, "optional": true }, "@rollup/rollup-linux-arm-musleabihf": { - "version": "4.59.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.59.0.tgz", - "integrity": "sha512-CikFT7aYPA2ufMD086cVORBYGHffBo4K8MQ4uPS/ZnY54GKj36i196u8U+aDVT2LX4eSMbyHtyOh7D7Zvk2VvA==", + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.60.2.tgz", + "integrity": "sha512-TbziEu2DVsTEOPif2mKWkMeDMLoYjx95oESa9fkQQK7r/Orta0gnkcDpzwufEcAO2BLBsD7mZkXGFqEdMRRwfw==", "dev": true, "optional": true }, "@rollup/rollup-linux-arm64-gnu": { - "version": "4.59.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.59.0.tgz", - "integrity": "sha512-jYgUGk5aLd1nUb1CtQ8E+t5JhLc9x5WdBKew9ZgAXg7DBk0ZHErLHdXM24rfX+bKrFe+Xp5YuJo54I5HFjGDAA==", + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.60.2.tgz", + "integrity": "sha512-bO/rVDiDUuM2YfuCUwZ1t1cP+/yqjqz+Xf2VtkdppefuOFS2OSeAfgafaHNkFn0t02hEyXngZkxtGqXcXwO8Rg==", "dev": true, "optional": true }, "@rollup/rollup-linux-arm64-musl": { - "version": "4.59.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.59.0.tgz", - "integrity": "sha512-peZRVEdnFWZ5Bh2KeumKG9ty7aCXzzEsHShOZEFiCQlDEepP1dpUl/SrUNXNg13UmZl+gzVDPsiCwnV1uI0RUA==", + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.60.2.tgz", + "integrity": "sha512-hr26p7e93Rl0Za+JwW7EAnwAvKkehh12BU1Llm9Ykiibg4uIr2rbpxG9WCf56GuvidlTG9KiiQT/TXT1yAWxTA==", "dev": true, "optional": true }, "@rollup/rollup-linux-loong64-gnu": { - "version": "4.59.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.59.0.tgz", - "integrity": "sha512-gbUSW/97f7+r4gHy3Jlup8zDG190AuodsWnNiXErp9mT90iCy9NKKU0Xwx5k8VlRAIV2uU9CsMnEFg/xXaOfXg==", + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.60.2.tgz", + "integrity": "sha512-pOjB/uSIyDt+ow3k/RcLvUAOGpysT2phDn7TTUB3n75SlIgZzM6NKAqlErPhoFU+npgY3/n+2HYIQVbF70P9/A==", "dev": true, "optional": true }, "@rollup/rollup-linux-loong64-musl": { - "version": "4.59.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.59.0.tgz", - "integrity": "sha512-yTRONe79E+o0FWFijasoTjtzG9EBedFXJMl888NBEDCDV9I2wGbFFfJQQe63OijbFCUZqxpHz1GzpbtSFikJ4Q==", + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.60.2.tgz", + "integrity": "sha512-2/w+q8jszv9Ww1c+6uJT3OwqhdmGP2/4T17cu8WuwyUuuaCDDJ2ojdyYwZzCxx0GcsZBhzi3HmH+J5pZNXnd+Q==", "dev": true, "optional": true }, "@rollup/rollup-linux-ppc64-gnu": { - "version": "4.59.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.59.0.tgz", - "integrity": "sha512-sw1o3tfyk12k3OEpRddF68a1unZ5VCN7zoTNtSn2KndUE+ea3m3ROOKRCZxEpmT9nsGnogpFP9x6mnLTCaoLkA==", + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.60.2.tgz", + "integrity": "sha512-11+aL5vKheYgczxtPVVRhdptAM2H7fcDR5Gw4/bTcteuZBlH4oP9f5s9zYO9aGZvoGeBpqXI/9TZZihZ609wKw==", "dev": true, "optional": true }, "@rollup/rollup-linux-ppc64-musl": { - "version": "4.59.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.59.0.tgz", - "integrity": "sha512-+2kLtQ4xT3AiIxkzFVFXfsmlZiG5FXYW7ZyIIvGA7Bdeuh9Z0aN4hVyXS/G1E9bTP/vqszNIN/pUKCk/BTHsKA==", + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.60.2.tgz", + "integrity": "sha512-i16fokAGK46IVZuV8LIIwMdtqhin9hfYkCh8pf8iC3QU3LpwL+1FSFGej+O7l3E/AoknL6Dclh2oTdnRMpTzFQ==", "dev": true, "optional": true }, "@rollup/rollup-linux-riscv64-gnu": { - "version": "4.59.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.59.0.tgz", - "integrity": "sha512-NDYMpsXYJJaj+I7UdwIuHHNxXZ/b/N2hR15NyH3m2qAtb/hHPA4g4SuuvrdxetTdndfj9b1WOmy73kcPRoERUg==", + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.60.2.tgz", + "integrity": "sha512-49FkKS6RGQoriDSK/6E2GkAsAuU5kETFCh7pG4yD/ylj9rKhTmO3elsnmBvRD4PgJPds5W2PkhC82aVwmUcJ7A==", "dev": true, "optional": true }, "@rollup/rollup-linux-riscv64-musl": { - "version": "4.59.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.59.0.tgz", - "integrity": "sha512-nLckB8WOqHIf1bhymk+oHxvM9D3tyPndZH8i8+35p/1YiVoVswPid2yLzgX7ZJP0KQvnkhM4H6QZ5m0LzbyIAg==", + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.60.2.tgz", + "integrity": "sha512-mjYNkHPfGpUR00DuM1ZZIgs64Hpf4bWcz9Z41+4Q+pgDx73UwWdAYyf6EG/lRFldmdHHzgrYyge5akFUW0D3mQ==", "dev": true, "optional": true }, "@rollup/rollup-linux-s390x-gnu": { - "version": "4.59.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.59.0.tgz", - "integrity": "sha512-oF87Ie3uAIvORFBpwnCvUzdeYUqi2wY6jRFWJAy1qus/udHFYIkplYRW+wo+GRUP4sKzYdmE1Y3+rY5Gc4ZO+w==", + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.60.2.tgz", + "integrity": "sha512-ALyvJz965BQk8E9Al/JDKKDLH2kfKFLTGMlgkAbbYtZuJt9LU8DW3ZoDMCtQpXAltZxwBHevXz5u+gf0yA0YoA==", "dev": true, "optional": true }, "@rollup/rollup-linux-x64-gnu": { - "version": "4.59.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.59.0.tgz", - "integrity": "sha512-3AHmtQq/ppNuUspKAlvA8HtLybkDflkMuLK4DPo77DfthRb71V84/c4MlWJXixZz4uruIH4uaa07IqoAkG64fg==", + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.60.2.tgz", + "integrity": "sha512-UQjrkIdWrKI626Du8lCQ6MJp/6V1LAo2bOK9OTu4mSn8GGXIkPXk/Vsp4bLHCd9Z9Iz2OTEaokUE90VweJgIYQ==", "dev": true, "optional": true }, "@rollup/rollup-linux-x64-musl": { - "version": "4.59.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.59.0.tgz", - "integrity": "sha512-2UdiwS/9cTAx7qIUZB/fWtToJwvt0Vbo0zmnYt7ED35KPg13Q0ym1g442THLC7VyI6JfYTP4PiSOWyoMdV2/xg==", + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.60.2.tgz", + "integrity": "sha512-bTsRGj6VlSdn/XD4CGyzMnzaBs9bsRxy79eTqTCBsA8TMIEky7qg48aPkvJvFe1HyzQ5oMZdg7AnVlWQSKLTnw==", "dev": true, "optional": true }, "@rollup/rollup-openbsd-x64": { - "version": "4.59.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-openbsd-x64/-/rollup-openbsd-x64-4.59.0.tgz", - "integrity": "sha512-M3bLRAVk6GOwFlPTIxVBSYKUaqfLrn8l0psKinkCFxl4lQvOSz8ZrKDz2gxcBwHFpci0B6rttydI4IpS4IS/jQ==", + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openbsd-x64/-/rollup-openbsd-x64-4.60.2.tgz", + "integrity": "sha512-6d4Z3534xitaA1FcMWP7mQPq5zGwBmGbhphh2DwaA1aNIXUu3KTOfwrWpbwI4/Gr0uANo7NTtaykFyO2hPuFLg==", "dev": true, "optional": true }, "@rollup/rollup-openharmony-arm64": { - "version": "4.59.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.59.0.tgz", - "integrity": "sha512-tt9KBJqaqp5i5HUZzoafHZX8b5Q2Fe7UjYERADll83O4fGqJ49O1FsL6LpdzVFQcpwvnyd0i+K/VSwu/o/nWlA==", + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.60.2.tgz", + "integrity": "sha512-NetAg5iO2uN7eB8zE5qrZ3CSil+7IJt4WDFLcC75Ymywq1VZVD6qJ6EvNLjZ3rEm6gB7XW5JdT60c6MN35Z85Q==", "dev": true, "optional": true }, "@rollup/rollup-win32-arm64-msvc": { - "version": "4.59.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.59.0.tgz", - "integrity": "sha512-V5B6mG7OrGTwnxaNUzZTDTjDS7F75PO1ae6MJYdiMu60sq0CqN5CVeVsbhPxalupvTX8gXVSU9gq+Rx1/hvu6A==", + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.60.2.tgz", + "integrity": "sha512-NCYhOotpgWZ5kdxCZsv6Iudx0wX8980Q/oW4pNFNihpBKsDbEA1zpkfxJGC0yugsUuyDZ7gL37dbzwhR0VI7pQ==", "dev": true, "optional": true }, "@rollup/rollup-win32-ia32-msvc": { - "version": "4.59.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.59.0.tgz", - "integrity": "sha512-UKFMHPuM9R0iBegwzKF4y0C4J9u8C6MEJgFuXTBerMk7EJ92GFVFYBfOZaSGLu6COf7FxpQNqhNS4c4icUPqxA==", + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.60.2.tgz", + "integrity": "sha512-RXsaOqXxfoUBQoOgvmmijVxJnW2IGB0eoMO7F8FAjaj0UTywUO/luSqimWBJn04WNgUkeNhh7fs7pESXajWmkg==", "dev": true, "optional": true }, "@rollup/rollup-win32-x64-gnu": { - "version": "4.59.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.59.0.tgz", - "integrity": "sha512-laBkYlSS1n2L8fSo1thDNGrCTQMmxjYY5G0WFWjFFYZkKPjsMBsgJfGf4TLxXrF6RyhI60L8TMOjBMvXiTcxeA==", + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.60.2.tgz", + "integrity": "sha512-qdAzEULD+/hzObedtmV6iBpdL5TIbKVztGiK7O3/KYSf+HIzU257+MX1EXJcyIiDbMAqmbwaufcYPvyRryeZtA==", "dev": true, "optional": true }, "@rollup/rollup-win32-x64-msvc": { - "version": "4.59.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.59.0.tgz", - "integrity": "sha512-2HRCml6OztYXyJXAvdDXPKcawukWY2GpR5/nxKp4iBgiO3wcoEGkAaqctIbZcNB6KlUQBIqt8VYkNSj2397EfA==", + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.60.2.tgz", + "integrity": "sha512-Nd/SgG27WoA9e+/TdK74KnHz852TLa94ovOYySo/yMPuTmpckK/jIF2jSwS3g7ELSKXK13/cVdmg1Z/DaCWKxA==", "dev": true, "optional": true }, @@ -30895,37 +31578,37 @@ "dev": true }, "@schematics/angular": { - "version": "21.1.5", - "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-21.1.5.tgz", - "integrity": "sha512-AndJ17ePYUoqJqiIF9VaXbGAFfOqDcHuAxhwozsQlWDzwgQSOUC/WWeG9hKVCgMD6tE02Sxr2ova9DiBKsLQNg==", + "version": "21.2.9", + "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-21.2.9.tgz", + "integrity": "sha512-1renEbBZz9Yw3A0GUOJ6x6E1jd2Vu/fX5tEGiFNbIoWaNwa71SlFTvKKqaYxiYQkrpc7oexVJ2ymuvOfgTbI1w==", "requires": { - "@angular-devkit/core": "21.1.5", - "@angular-devkit/schematics": "21.1.5", + "@angular-devkit/core": "21.2.9", + "@angular-devkit/schematics": "21.2.9", "jsonc-parser": "3.3.1" }, "dependencies": { "@angular-devkit/core": { - "version": "21.1.5", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-21.1.5.tgz", - "integrity": "sha512-KUKbllHvHefkAbTBjWNpRPyrpBqecW+6HBBAR+XNbKBuFTHkG+gxtuwMXNsvO5KECKwQphvQt5h3g05Xtaf0LQ==", + "version": "21.2.9", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-21.2.9.tgz", + "integrity": "sha512-04rdOGEzjLWFHlyAwqtuikginFeQ2jfXS5HqqKNP0VtG6Uu9NUDAEW5UDvXgqkEMfCDwGZbmg2iRHxp3AmAKVw==", "requires": { "ajv": "8.18.0", "ajv-formats": "3.0.1", "jsonc-parser": "3.3.1", - "picomatch": "4.0.3", + "picomatch": "4.0.4", "rxjs": "7.8.2", "source-map": "0.7.6" } }, "@angular-devkit/schematics": { - "version": "21.1.5", - "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-21.1.5.tgz", - "integrity": "sha512-CGmoorQL5+mVCJEHwHWOrhSd1hFxB3h66i9wUDizJAEQUM3mSml5SiglHArpWY/G4GmFwi6XVe+Jm3U8J/mcFg==", + "version": "21.2.9", + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-21.2.9.tgz", + "integrity": "sha512-Gyyuq2Vet70AMkbC+e0L6rjzjZWjSOyKTlOJvd99GjjyWQf6eezjd8IcF17ppKJsML6YUagO2I6AlWROq5yJmg==", "requires": { - "@angular-devkit/core": "21.1.5", + "@angular-devkit/core": "21.2.9", "jsonc-parser": "3.3.1", "magic-string": "0.30.21", - "ora": "9.0.0", + "ora": "9.3.0", "rxjs": "7.8.2" } }, @@ -30981,9 +31664,9 @@ } }, "ora": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/ora/-/ora-9.0.0.tgz", - "integrity": "sha512-m0pg2zscbYgWbqRR6ABga5c3sZdEon7bSgjnlXC64kxtxLOyjRcbbUkLj7HFyy/FTD+P2xdBWu8snGhYI0jc4A==", + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/ora/-/ora-9.3.0.tgz", + "integrity": "sha512-lBX72MWFduWEf7v7uWf5DHp9Jn5BI8bNPGuFgtXMmr2uDz2Gz2749y3am3agSDdkhHPHYmmxEGSKH85ZLGzgXw==", "requires": { "chalk": "^5.6.2", "cli-cursor": "^5.0.0", @@ -30991,20 +31674,24 @@ "is-interactive": "^2.0.0", "is-unicode-supported": "^2.1.0", "log-symbols": "^7.0.1", - "stdin-discarder": "^0.2.2", - "string-width": "^8.1.0", - "strip-ansi": "^7.1.2" + "stdin-discarder": "^0.3.1", + "string-width": "^8.1.0" } }, "picomatch": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", - "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==" + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz", + "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==" + }, + "stdin-discarder": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/stdin-discarder/-/stdin-discarder-0.3.2.tgz", + "integrity": "sha512-eCPu1qRxPVkl5605OTWF8Wz40b4Mf45NY5LQmVPQ599knfs5QhASUm9GbJ5BDMDOXgrnh0wyEdvzmL//YMlw0A==" }, "string-width": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-8.2.0.tgz", - "integrity": "sha512-6hJPQ8N0V0P3SNmP6h2J99RLuzrWz2gvT7VnK5tKvrNqJoyS9W4/Fb8mo31UiPvy00z7DQXkP2hnKBVav76thw==", + "version": "8.2.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-8.2.1.tgz", + "integrity": "sha512-IIaP0g3iy9Cyy18w3M9YcaDudujEAVHKt3a3QJg1+sr/oX96TbaGUubG0hJyCjCBThFH+tFpcIyoUHUn1ogaLA==", "requires": { "get-east-asian-width": "^1.5.0", "strip-ansi": "^7.1.2" @@ -31043,32 +31730,32 @@ } }, "@sigstore/core": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@sigstore/core/-/core-3.1.0.tgz", - "integrity": "sha512-o5cw1QYhNQ9IroioJxpzexmPjfCe7gzafd2RY3qnMpxr4ZEja+Jad/U8sgFpaue6bOaF+z7RVkyKVV44FN+N8A==" + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@sigstore/core/-/core-3.2.0.tgz", + "integrity": "sha512-kxHrDQ9YgfrWUSXU0cjsQGv8JykOFZQ9ErNKbFPWzk3Hgpwu8x2hHrQ9IdA8yl+j9RTLTC3sAF3Tdq1IQCP4oA==" }, "@sigstore/protobuf-specs": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/@sigstore/protobuf-specs/-/protobuf-specs-0.5.0.tgz", - "integrity": "sha512-MM8XIwUjN2bwvCg1QvrMtbBmpcSHrkhFSCu1D11NyPvDQ25HEc4oG5/OcQfd/Tlf/OxmKWERDj0zGE23jQaMwA==" + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/@sigstore/protobuf-specs/-/protobuf-specs-0.5.1.tgz", + "integrity": "sha512-/ScWUhhoFasJsSRGTVBwId1loQjjnjAfE4djL6ZhrXRpNCmPTnUKF5Jokd58ILseOMjzET3UrMOtJPS9sYeI0g==" }, "@sigstore/sign": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/@sigstore/sign/-/sign-4.1.0.tgz", - "integrity": "sha512-Vx1RmLxLGnSUqx/o5/VsCjkuN5L7y+vxEEwawvc7u+6WtX2W4GNa7b9HEjmcRWohw/d6BpATXmvOwc78m+Swdg==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/@sigstore/sign/-/sign-4.1.1.tgz", + "integrity": "sha512-Hf4xglukg0XXQ2RiD5vSoLjdPe8OBUPA8XeVjUObheuDcWdYWrnH/BNmxZCzkAy68MzmNCxXLeurJvs6hcP2OQ==", "requires": { + "@gar/promise-retry": "^1.0.2", "@sigstore/bundle": "^4.0.0", - "@sigstore/core": "^3.1.0", + "@sigstore/core": "^3.2.0", "@sigstore/protobuf-specs": "^0.5.0", - "make-fetch-happen": "^15.0.3", - "proc-log": "^6.1.0", - "promise-retry": "^2.0.1" + "make-fetch-happen": "^15.0.4", + "proc-log": "^6.1.0" } }, "@sigstore/tuf": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@sigstore/tuf/-/tuf-4.0.1.tgz", - "integrity": "sha512-OPZBg8y5Vc9yZjmWCHrlWPMBqW5yd8+wFNl+thMdtcWz3vjVSoJQutF8YkrzI0SLGnkuFof4HSsWUhXrf219Lw==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@sigstore/tuf/-/tuf-4.0.2.tgz", + "integrity": "sha512-TCAzTy0xzdP79EnxSjq9KQ3eaR7+FmudLC6eRKknVKZbV7ZNlGLClAAQb/HMNJ5n2OBNk2GT1tEmU0xuPr+SLQ==", "requires": { "@sigstore/protobuf-specs": "^0.5.0", "tuf-js": "^4.1.0" @@ -31084,12 +31771,6 @@ "@sigstore/protobuf-specs": "^0.5.0" } }, - "@socket.io/component-emitter": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@socket.io/component-emitter/-/component-emitter-3.1.0.tgz", - "integrity": "sha512-+9jVqKhRSpsc591z5vX+X5Yyw+he/HCB4iQ/RYxw35CEPaY1gnsNE43nf9n9AaYjAQrTiI/mOwKUKdUs9vf7Xg==", - "dev": true - }, "@standard-schema/spec": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@standard-schema/spec/-/spec-1.1.0.tgz", @@ -31306,19 +31987,19 @@ "integrity": "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==" }, "brace-expansion": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.3.tgz", - "integrity": "sha512-fy6KJm2RawA5RcHkLa1z/ScpBeA762UF9KmZQxwIbDtRJrgLzM10depAiEQ+CXYcoiqW1/m96OAAoke2nE9EeA==", + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.5.tgz", + "integrity": "sha512-VZznLgtwhn+Mact9tfiwx64fA9erHH/MCXEUfB/0bX/6Fz6ny5EGTXYltMocqg4xFAQZtnO3DHWWXi8RiuN7cQ==", "requires": { "balanced-match": "^4.0.2" } }, "minimatch": { - "version": "10.2.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.4.tgz", - "integrity": "sha512-oRjTw/97aTBN0RHbYCdtF1MQfvusSIBQM0IZEgzl6426+8jSC0nF1a/GmnVLpfB9yyr6g6FTqWqiZVbxrtaCIg==", + "version": "10.2.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.5.tgz", + "integrity": "sha512-MULkVLfKGYDFYejP07QOurDLLQpcjk7Fw+7jXS2R2czRQzR56yHRveU5NDJEOviH+hETZKSkIk5c+T23GjFUMg==", "requires": { - "brace-expansion": "^5.0.2" + "brace-expansion": "^5.0.5" } } } @@ -31352,6 +32033,16 @@ "@types/node": "*" } }, + "@types/chai": { + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-5.2.3.tgz", + "integrity": "sha512-Mw558oeA9fFbv65/y4mHtXDs9bPnFMZAL/jxdPFUpOHHIXX91mcgEHbS5Lahr+pwZFR8A7GQleRWeI6cGFC2UA==", + "dev": true, + "requires": { + "@types/deep-eql": "*", + "assertion-error": "^2.0.1" + } + }, "@types/codemirror": { "version": "5.60.5", "resolved": "https://registry.npmjs.org/@types/codemirror/-/codemirror-5.60.5.tgz", @@ -31362,9 +32053,9 @@ } }, "@types/connect": { - "version": "3.4.35", - "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz", - "integrity": "sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==", + "version": "3.4.38", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz", + "integrity": "sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==", "dev": true, "requires": { "@types/node": "*" @@ -31380,21 +32071,6 @@ "@types/node": "*" } }, - "@types/cookie": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.4.1.tgz", - "integrity": "sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q==", - "dev": true - }, - "@types/cors": { - "version": "2.8.17", - "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.17.tgz", - "integrity": "sha512-8CGDvrBj1zgo2qE+oS3pOCyYNqCPryMWY2bGfwA0dcfopWGgxs+78df0Rs3rc9THP4JkOhLsAa+15VdpAqkcUA==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, "@types/css-tree": { "version": "2.3.11", "resolved": "https://registry.npmjs.org/@types/css-tree/-/css-tree-2.3.11.tgz", @@ -31409,6 +32085,12 @@ "@types/ms": "*" } }, + "@types/deep-eql": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@types/deep-eql/-/deep-eql-4.0.2.tgz", + "integrity": "sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw==", + "dev": true + }, "@types/dom-navigation": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/@types/dom-navigation/-/dom-navigation-1.0.7.tgz", @@ -31448,21 +32130,21 @@ "dev": true }, "@types/express": { - "version": "4.17.23", - "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.23.tgz", - "integrity": "sha512-Crp6WY9aTYP3qPi2wGDo9iUe/rceX01UMhnF1jmwDcKCFM6cx7YhGP/Mpr3y9AASpfHixIG0E6azCcL5OcDHsQ==", + "version": "4.17.25", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.25.tgz", + "integrity": "sha512-dVd04UKsfpINUnK0yBoYHDF3xu7xVH4BuDotC/xGuycx4CgbP48X/KF/586bcObxT0HENHXEU8Nqtu6NR+eKhw==", "dev": true, "requires": { "@types/body-parser": "*", "@types/express-serve-static-core": "^4.17.33", "@types/qs": "*", - "@types/serve-static": "*" + "@types/serve-static": "^1" } }, "@types/express-serve-static-core": { - "version": "4.19.6", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.19.6.tgz", - "integrity": "sha512-N4LZ2xG7DatVqhCZzOGb1Yi5lMbXSZcmdLDe9EzSndPV2HpWYWzRbaerl2n27irrm94EPpprqa8KpskPT085+A==", + "version": "4.19.8", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.19.8.tgz", + "integrity": "sha512-02S5fmqeoKzVZCHPZid4b8JH2eM5HzQLZWN2FohQEy/0eXTq8VXZfSN6Pcr3F6N9R/vNrj7cpgbhjie6m/1tCA==", "dev": true, "requires": { "@types/node": "*", @@ -31520,12 +32202,6 @@ "@types/node": "*" } }, - "@types/jasmine": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/@types/jasmine/-/jasmine-6.0.0.tgz", - "integrity": "sha512-18lgGsLmEh3VJk9eZ5wAjTISxdqzl6YOwu8UdMpolajN57QOCNbl+AbHUd+Yu9ItrsFdB+c8LSZSGNg8nHaguw==", - "dev": true - }, "@types/jquery": { "version": "3.5.33", "resolved": "https://registry.npmjs.org/@types/jquery/-/jquery-3.5.33.tgz", @@ -31588,6 +32264,12 @@ "resolved": "https://registry.npmjs.org/@types/mdurl/-/mdurl-2.0.0.tgz", "integrity": "sha512-RGdgjQUZba5p6QEFAVx2OGb8rQDL/cPRG7GiedRzMcJ1tYnUANBncjbSB1NRGwbvjcPeikRABz2nshyPk1bhWg==" }, + "@types/mime": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.5.tgz", + "integrity": "sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==", + "dev": true + }, "@types/mousetrap": { "version": "1.6.15", "resolved": "https://registry.npmjs.org/@types/mousetrap/-/mousetrap-1.6.15.tgz", @@ -31605,15 +32287,6 @@ "integrity": "sha512-fAtCfv4jJg+ExtXhvCkCqUKZ+4ok/JQk01qDKhL5BDDoS3AxKXhV5/MAVUZyQnSEd2GT92fkgZl0pz0Q0AzcIQ==", "dev": true }, - "@types/node-forge": { - "version": "1.3.13", - "resolved": "https://registry.npmjs.org/@types/node-forge/-/node-forge-1.3.13.tgz", - "integrity": "sha512-zePQJSW5QkwSHKRApqWCVKeKoSOt4xvEnLENZPjyvm9Ezdf/EyDeJM7jqLzOwjVICQQzvLZ63T55MKdJB5H6ww==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, "@types/pako": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/@types/pako/-/pako-2.0.4.tgz", @@ -31621,9 +32294,9 @@ "dev": true }, "@types/qs": { - "version": "6.14.0", - "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.14.0.tgz", - "integrity": "sha512-eOunJqu0K1923aExK6y8p6fsihYEn/BYuQ4g0CxAAgFc4b/ZLN4CrsRZ55srTdqoiLzU2B2evC+apEIxprEzkQ==", + "version": "6.15.0", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.15.0.tgz", + "integrity": "sha512-JawvT8iBVWpzTrz3EGw9BTQFg3BQNmwERdKE22vlTxawwtbyUSlMppvZYKLZzB5zgACXdXxbD3m1bXaMqP/9ow==", "dev": true }, "@types/rails__request.js": { @@ -31674,21 +32347,12 @@ "dev": true }, "@types/send": { - "version": "0.17.5", - "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.5.tgz", - "integrity": "sha512-z6F2D3cOStZvuk2SaP6YrwkNO65iTZcwA2ZkSABegdkAh/lf+Aa/YQndZVfmEXT5vgAp6zv06VQ3ejSVjAny4w==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@types/send/-/send-1.2.1.tgz", + "integrity": "sha512-arsCikDvlU99zl1g69TcAB3mzZPpxgw0UQnaHeC1Nwb015xp8bknZv5rIfri9xTOcMuaVgvabfIRA7PSZVuZIQ==", "dev": true, "requires": { - "@types/mime": "^1", "@types/node": "*" - }, - "dependencies": { - "@types/mime": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.5.tgz", - "integrity": "sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==", - "dev": true - } } }, "@types/serve-index": { @@ -31701,14 +32365,26 @@ } }, "@types/serve-static": { - "version": "1.15.8", - "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.8.tgz", - "integrity": "sha512-roei0UY3LhpOJvjbIP6ZZFngyLKl5dskOtDhxY5THRSpO+ZI+nzJ+m5yUMzGrp89YRa7lvknKkMYjqQFGwA7Sg==", + "version": "1.15.10", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.10.tgz", + "integrity": "sha512-tRs1dB+g8Itk72rlSI2ZrW6vZg0YrLI81iQSTkMmOqnqCaNr/8Ek4VwWcN5vZgCYWbg/JJSGBlUaYGAOP73qBw==", "dev": true, "requires": { "@types/http-errors": "*", "@types/node": "*", - "@types/send": "*" + "@types/send": "<1" + }, + "dependencies": { + "@types/send": { + "version": "0.17.6", + "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.6.tgz", + "integrity": "sha512-Uqt8rPBE8SY0RK8JB1EzVOIZ32uqy8HwdxCnoCOsYrvnswqmFZ/k+9Ikidlk/ImhsdvBsloHbAlewb2IEBV/Og==", + "dev": true, + "requires": { + "@types/mime": "^1", + "@types/node": "*" + } + } } }, "@types/sizzle": { @@ -31776,6 +32452,15 @@ "integrity": "sha512-G9eAoJRMLjcvN4I08wB5I7YofOb/kaJNd5uoCMX+LbKXTPCF+ZIHuqTnFaK9Jz1rgs035f9JUPUhNFtqgucy/A==", "dev": true }, + "@types/ws": { + "version": "8.18.1", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.18.1.tgz", + "integrity": "sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, "@typescript-eslint/eslint-plugin": { "version": "8.53.0", "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.53.0.tgz", @@ -31865,9 +32550,9 @@ } }, "brace-expansion": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", - "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.1.0.tgz", + "integrity": "sha512-TN1kCZAgdgweJhWWpgKYrQaMNHcDULHkWwQIspdtjV4Y5aurRdZpjAqn6yX3FPqTA9ngHCc4hJxMAMgGfve85w==", "dev": true, "requires": { "balanced-match": "^1.0.0" @@ -32053,9 +32738,9 @@ } }, "brace-expansion": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", - "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.1.0.tgz", + "integrity": "sha512-TN1kCZAgdgweJhWWpgKYrQaMNHcDULHkWwQIspdtjV4Y5aurRdZpjAqn6yX3FPqTA9ngHCc4hJxMAMgGfve85w==", "dev": true, "requires": { "balanced-match": "^1.0.0" @@ -32111,9 +32796,9 @@ }, "dependencies": { "brace-expansion": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", - "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.1.0.tgz", + "integrity": "sha512-TN1kCZAgdgweJhWWpgKYrQaMNHcDULHkWwQIspdtjV4Y5aurRdZpjAqn6yX3FPqTA9ngHCc4hJxMAMgGfve85w==", "dev": true, "requires": { "balanced-match": "^1.0.0" @@ -32218,9 +32903,9 @@ "dev": true }, "brace-expansion": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.4.tgz", - "integrity": "sha512-h+DEnpVvxmfVefa4jFbCf5HdH5YMDXRsmKflpf1pILZWRFlTbJpxeU55nJl4Smt5HQaGzg1o6RHFPJaOqnmBDg==", + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.5.tgz", + "integrity": "sha512-VZznLgtwhn+Mact9tfiwx64fA9erHH/MCXEUfB/0bX/6Fz6ny5EGTXYltMocqg4xFAQZtnO3DHWWXi8RiuN7cQ==", "dev": true, "requires": { "balanced-match": "^4.0.2" @@ -32279,9 +32964,9 @@ } }, "@uirouter/core": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/@uirouter/core/-/core-6.1.1.tgz", - "integrity": "sha512-vA+OolBOe0R8dbFk5mgaj30LzYzOoGhMJzj356KVQcx+wKdZHUs0dnMPuuHbKe/CEbErTgFA3MfRAW96qVc2hA==" + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/@uirouter/core/-/core-6.1.2.tgz", + "integrity": "sha512-pYcg+cxVd9E9poC7AJf7ZrlQQrwAV6KVkiPvlbLJX5km+pBWrUOGQhdd87oIGc7/5iVQ7qSiAdl9QD+l55yegg==" }, "@uirouter/rx": { "version": "1.0.0", @@ -32294,11 +32979,255 @@ "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==" }, "@vitejs/plugin-basic-ssl": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@vitejs/plugin-basic-ssl/-/plugin-basic-ssl-2.1.0.tgz", - "integrity": "sha512-dOxxrhgyDIEUADhb/8OlV9JIqYLgos03YorAueTIeOUskLJSEsfwCByjbu98ctXitUN3znXKp0bYD/WHSudCeA==", + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-basic-ssl/-/plugin-basic-ssl-2.1.4.tgz", + "integrity": "sha512-HXciTXN/sDBYWgeAD4V4s0DN0g72x5mlxQhHxtYu3Tt8BLa6MzcJZUyDVFCdtjNs3bfENVHVzOsmooTVuNgAAw==", "dev": true }, + "@vitest/coverage-v8": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/@vitest/coverage-v8/-/coverage-v8-4.1.5.tgz", + "integrity": "sha512-38C0/Ddb7HcRG0Z4/DUem8x57d2p9jYgp18mkaYswEOQBGsI1CG4f/hjm0ZCeaJfWhSZ4k7jgs29V1Zom7Ki9A==", + "dev": true, + "requires": { + "@bcoe/v8-coverage": "^1.0.2", + "@vitest/utils": "4.1.5", + "ast-v8-to-istanbul": "^1.0.0", + "istanbul-lib-coverage": "^3.2.2", + "istanbul-lib-report": "^3.0.1", + "istanbul-reports": "^3.2.0", + "magicast": "^0.5.2", + "obug": "^2.1.1", + "std-env": "^4.0.0-rc.1", + "tinyrainbow": "^3.1.0" + } + }, + "@vitest/eslint-plugin": { + "version": "1.6.17", + "resolved": "https://registry.npmjs.org/@vitest/eslint-plugin/-/eslint-plugin-1.6.17.tgz", + "integrity": "sha512-sIVY9ZeVcXyPxFCNRkIt8Yw4keKIcUyp9/8qnmuomPwE+ST1htw5sZsbqdUMTiah9SmCg1JYoK9RqdDtPeNYYg==", + "dev": true, + "requires": { + "@typescript-eslint/scope-manager": "^8.58.0", + "@typescript-eslint/utils": "^8.58.0" + }, + "dependencies": { + "@typescript-eslint/project-service": { + "version": "8.59.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.59.2.tgz", + "integrity": "sha512-+2hqvEkeyf/0FBor67duF0Ll7Ot8jyKzDQOSrxazF/danillRq2DwR9dLptsXpoZQqxE1UisSmoZewrlPas9Vw==", + "dev": true, + "requires": { + "@typescript-eslint/tsconfig-utils": "^8.59.2", + "@typescript-eslint/types": "^8.59.2", + "debug": "^4.4.3" + } + }, + "@typescript-eslint/scope-manager": { + "version": "8.59.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.59.2.tgz", + "integrity": "sha512-JzfyEpEtOU89CcFSwyNS3mu4MLvLSXqnmX05+aKBDM+TdR5jzcGOEBwxwGNxrEQ7p/z6kK2WyioCGBf2zZBnvg==", + "dev": true, + "requires": { + "@typescript-eslint/types": "8.59.2", + "@typescript-eslint/visitor-keys": "8.59.2" + } + }, + "@typescript-eslint/tsconfig-utils": { + "version": "8.59.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.59.2.tgz", + "integrity": "sha512-BKK4alN7oi4C/zv4VqHQ+uRU+lTa6JGIZ7s1juw7b3RHo9OfKB+bKX3u0iVZetdsUCBBkSbdWbarJbmN0fTeSw==", + "dev": true + }, + "@typescript-eslint/types": { + "version": "8.59.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.59.2.tgz", + "integrity": "sha512-e82GVOE8Ps3E++Egvb6Y3Dw0S10u8NkQ9KXmtRhCWJJ8kDhOJTvtMAWnFL16kB1583goCWXsr0NieKCZMs2/0Q==", + "dev": true + }, + "@typescript-eslint/typescript-estree": { + "version": "8.59.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.59.2.tgz", + "integrity": "sha512-o0XPGNwcWw+FIwStOWn+BwBuEmL6QXP0rsvAFg7ET1dey1Nr6Wb1ac8p5HEsK0ygO/6mUxlk+YWQD9xcb/nnXg==", + "dev": true, + "requires": { + "@typescript-eslint/project-service": "8.59.2", + "@typescript-eslint/tsconfig-utils": "8.59.2", + "@typescript-eslint/types": "8.59.2", + "@typescript-eslint/visitor-keys": "8.59.2", + "debug": "^4.4.3", + "minimatch": "^10.2.2", + "semver": "^7.7.3", + "tinyglobby": "^0.2.15", + "ts-api-utils": "^2.5.0" + } + }, + "@typescript-eslint/utils": { + "version": "8.59.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.59.2.tgz", + "integrity": "sha512-Juw3EinkXqjaffxz6roowvV7GZT/kET5vSKKZT6upl5TXdWkLkYmNPXwDDL2Vkt2DPn0nODIS4egC/0AGxKo/Q==", + "dev": true, + "requires": { + "@eslint-community/eslint-utils": "^4.9.1", + "@typescript-eslint/scope-manager": "8.59.2", + "@typescript-eslint/types": "8.59.2", + "@typescript-eslint/typescript-estree": "8.59.2" + } + }, + "@typescript-eslint/visitor-keys": { + "version": "8.59.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.59.2.tgz", + "integrity": "sha512-NwjLUnGy8/Zfx23fl50tRC8rYaYnM52xNRYFAXvmiil9yh1+K6aRVQMnzW6gQB/1DLgWt977lYQn7C+wtgXZiA==", + "dev": true, + "requires": { + "@typescript-eslint/types": "8.59.2", + "eslint-visitor-keys": "^5.0.0" + } + }, + "balanced-match": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz", + "integrity": "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==", + "dev": true + }, + "brace-expansion": { + "version": "5.0.6", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.6.tgz", + "integrity": "sha512-kLpxurY4Z4r9sgMsyG0Z9uzsBlgiU/EFKhj/h91/8yHu0edo7XuixOIH3VcJ8kkxs6/jPzoI6U9Vj3WqbMQ94g==", + "dev": true, + "requires": { + "balanced-match": "^4.0.2" + } + }, + "debug": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", + "dev": true, + "requires": { + "ms": "^2.1.3" + } + }, + "eslint-visitor-keys": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-5.0.1.tgz", + "integrity": "sha512-tD40eHxA35h0PEIZNeIjkHoDR4YjjJp34biM0mDvplBe//mB+IHCqHDGV7pxF+7MklTvighcCPPZC7ynWyjdTA==", + "dev": true + }, + "minimatch": { + "version": "10.2.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.5.tgz", + "integrity": "sha512-MULkVLfKGYDFYejP07QOurDLLQpcjk7Fw+7jXS2R2czRQzR56yHRveU5NDJEOviH+hETZKSkIk5c+T23GjFUMg==", + "dev": true, + "requires": { + "brace-expansion": "^5.0.5" + } + } + } + }, + "@vitest/expect": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-4.1.5.tgz", + "integrity": "sha512-PWBaRY5JoKuRnHlUHfpV/KohFylaDZTupcXN1H9vYryNLOnitSw60Mw9IAE2r67NbwwzBw/Cc/8q9BK3kIX8Kw==", + "dev": true, + "requires": { + "@standard-schema/spec": "^1.1.0", + "@types/chai": "^5.2.2", + "@vitest/spy": "4.1.5", + "@vitest/utils": "4.1.5", + "chai": "^6.2.2", + "tinyrainbow": "^3.1.0" + } + }, + "@vitest/mocker": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-4.1.5.tgz", + "integrity": "sha512-/x2EmFC4mT4NNzqvC3fmesuV97w5FC903KPmey4gsnJiMQ3Be1IlDKVaDaG8iqaLFHqJ2FVEkxZk5VmeLjIItw==", + "dev": true, + "requires": { + "@vitest/spy": "4.1.5", + "estree-walker": "^3.0.3", + "magic-string": "^0.30.21" + }, + "dependencies": { + "magic-string": { + "version": "0.30.21", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz", + "integrity": "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==", + "dev": true, + "requires": { + "@jridgewell/sourcemap-codec": "^1.5.5" + } + } + } + }, + "@vitest/pretty-format": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-4.1.5.tgz", + "integrity": "sha512-7I3q6l5qr03dVfMX2wCo9FxwSJbPdwKjy2uu/YPpU3wfHvIL4QHwVRp57OfGrDFeUJ8/8QdfBKIV12FTtLn00g==", + "dev": true, + "requires": { + "tinyrainbow": "^3.1.0" + } + }, + "@vitest/runner": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-4.1.5.tgz", + "integrity": "sha512-2D+o7Pr82IEO46YPpoA/YU0neeyr6FTerQb5Ro7BUnBuv6NQtT/kmVnczngiMEBhzgqz2UZYl5gArejsyERDSQ==", + "dev": true, + "requires": { + "@vitest/utils": "4.1.5", + "pathe": "^2.0.3" + } + }, + "@vitest/snapshot": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-4.1.5.tgz", + "integrity": "sha512-zypXEt4KH/XgKGPUz4eC2AvErYx0My5hfL8oDb1HzGFpEk1P62bxSohdyOmvz+d9UJwanI68MKwr2EquOaOgMQ==", + "dev": true, + "requires": { + "@vitest/pretty-format": "4.1.5", + "@vitest/utils": "4.1.5", + "magic-string": "^0.30.21", + "pathe": "^2.0.3" + }, + "dependencies": { + "magic-string": { + "version": "0.30.21", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz", + "integrity": "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==", + "dev": true, + "requires": { + "@jridgewell/sourcemap-codec": "^1.5.5" + } + } + } + }, + "@vitest/spy": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-4.1.5.tgz", + "integrity": "sha512-2lNOsh6+R2Idnf1TCZqSwYlKN2E/iDlD8sgU59kYVl+OMDmvldO1VDk39smRfpUNwYpNRVn3w4YfuC7KfbBnkQ==", + "dev": true + }, + "@vitest/utils": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-4.1.5.tgz", + "integrity": "sha512-76wdkrmfXfqGjueGgnb45ITPyUi1ycZ4IHgC2bhPDUfWHklY/q3MdLOAB+TF1e6xfl8NxNY0ZYaPCFNWSsw3Ug==", + "dev": true, + "requires": { + "@vitest/pretty-format": "4.1.5", + "convert-source-map": "^2.0.0", + "tinyrainbow": "^3.1.0" + }, + "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 + } + } + }, "@vscode/l10n": { "version": "0.0.18", "resolved": "https://registry.npmjs.org/@vscode/l10n/-/l10n-0.0.18.tgz", @@ -32583,31 +33512,25 @@ "ajv": "^8.0.0" } }, - "ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "dev": true - }, "algoliasearch": { - "version": "5.46.2", - "resolved": "https://registry.npmjs.org/algoliasearch/-/algoliasearch-5.46.2.tgz", - "integrity": "sha512-qqAXW9QvKf2tTyhpDA4qXv1IfBwD2eduSW6tUEBFIfCeE9gn9HQ9I5+MaKoenRuHrzk5sQoNh1/iof8mY7uD6Q==", + "version": "5.48.1", + "resolved": "https://registry.npmjs.org/algoliasearch/-/algoliasearch-5.48.1.tgz", + "integrity": "sha512-Rf7xmeuIo7nb6S4mp4abW2faW8DauZyE2faBIKFaUfP3wnpOvNSbiI5AwVhqBNj0jPgBWEvhyCu0sLjN2q77Rg==", "requires": { - "@algolia/abtesting": "1.12.2", - "@algolia/client-abtesting": "5.46.2", - "@algolia/client-analytics": "5.46.2", - "@algolia/client-common": "5.46.2", - "@algolia/client-insights": "5.46.2", - "@algolia/client-personalization": "5.46.2", - "@algolia/client-query-suggestions": "5.46.2", - "@algolia/client-search": "5.46.2", - "@algolia/ingestion": "1.46.2", - "@algolia/monitoring": "1.46.2", - "@algolia/recommend": "5.46.2", - "@algolia/requester-browser-xhr": "5.46.2", - "@algolia/requester-fetch": "5.46.2", - "@algolia/requester-node-http": "5.46.2" + "@algolia/abtesting": "1.14.1", + "@algolia/client-abtesting": "5.48.1", + "@algolia/client-analytics": "5.48.1", + "@algolia/client-common": "5.48.1", + "@algolia/client-insights": "5.48.1", + "@algolia/client-personalization": "5.48.1", + "@algolia/client-query-suggestions": "5.48.1", + "@algolia/client-search": "5.48.1", + "@algolia/ingestion": "1.48.1", + "@algolia/monitoring": "1.48.1", + "@algolia/recommend": "5.48.1", + "@algolia/requester-browser-xhr": "5.48.1", + "@algolia/requester-fetch": "5.48.1", + "@algolia/requester-node-http": "5.48.1" } }, "angular-eslint": { @@ -33012,12 +33935,48 @@ "is-array-buffer": "^3.0.4" } }, + "asn1js": { + "version": "3.0.10", + "resolved": "https://registry.npmjs.org/asn1js/-/asn1js-3.0.10.tgz", + "integrity": "sha512-S2s3aOytiKdFRdulw2qPE51MzjzVOisppcVv7jVFR+Kw0kxwvFrDcYA0h7Ndqbmj0HkMIXYWaoj7fli8kgx1eg==", + "dev": true, + "requires": { + "pvtsutils": "^1.3.6", + "pvutils": "^1.1.5", + "tslib": "^2.8.1" + } + }, + "assertion-error": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-2.0.1.tgz", + "integrity": "sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==", + "dev": true + }, "ast-types-flow": { "version": "0.0.8", "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.8.tgz", "integrity": "sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==", "dev": true }, + "ast-v8-to-istanbul": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/ast-v8-to-istanbul/-/ast-v8-to-istanbul-1.0.0.tgz", + "integrity": "sha512-1fSfIwuDICFA4LKkCzRPO7F0hzFf0B7+Xqrl27ynQaa+Rh0e1Es0v6kWHPott3lU10AyAr7oKHa65OppjLn3Rg==", + "dev": true, + "requires": { + "@jridgewell/trace-mapping": "^0.3.31", + "estree-walker": "^3.0.3", + "js-tokens": "^10.0.0" + }, + "dependencies": { + "js-tokens": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-10.0.0.tgz", + "integrity": "sha512-lM/UBzQmfJRo9ABXbPWemivdCW8V2G8FHaHdypQaIy523snUjog0W71ayWXTjiR+ixeMyVHN2XcpnTd/liPg/Q==", + "dev": true + } + } + }, "async": { "version": "3.2.6", "resolved": "https://registry.npmjs.org/async/-/async-3.2.6.tgz", @@ -33072,13 +34031,13 @@ } }, "babel-plugin-polyfill-corejs2": { - "version": "0.4.14", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.14.tgz", - "integrity": "sha512-Co2Y9wX854ts6U8gAAPXfn0GmAyctHuK8n0Yhfjd6t30g7yvKjspvvOo9yG+z52PZRgFErt7Ka2pYnXCjLKEpg==", + "version": "0.4.17", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.17.tgz", + "integrity": "sha512-aTyf30K/rqAsNwN76zYrdtx8obu0E4KoUME29B1xj+B3WxgvWkp943vYQ+z8Mv3lw9xHXMHpvSPOBxzAkIa94w==", "dev": true, "requires": { - "@babel/compat-data": "^7.27.7", - "@babel/helper-define-polyfill-provider": "^0.6.5", + "@babel/compat-data": "^7.28.6", + "@babel/helper-define-polyfill-provider": "^0.6.8", "semver": "^6.3.1" }, "dependencies": { @@ -33101,12 +34060,12 @@ } }, "babel-plugin-polyfill-regenerator": { - "version": "0.6.5", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.5.tgz", - "integrity": "sha512-ISqQ2frbiNU9vIJkzg7dlPpznPZ4jOiUQ1uSmB0fEHeowtN3COYRsXr/xexn64NpU13P06jc/L5TgiJXOgrbEg==", + "version": "0.6.8", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.8.tgz", + "integrity": "sha512-M762rNHfSF1EV3SLtnCJXFoQbbIIz0OyRwnCmV0KPC7qosSfCO0QLTSuJX3ayAebubhE6oYBAYPrBA5ljowaZg==", "dev": true, "requires": { - "@babel/helper-define-polyfill-provider": "^0.6.5" + "@babel/helper-define-polyfill-provider": "^0.6.8" } }, "bail": { @@ -33130,12 +34089,6 @@ "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" }, - "base64id": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/base64id/-/base64id-2.0.0.tgz", - "integrity": "sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==", - "dev": true - }, "base64url": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/base64url/-/base64url-3.0.1.tgz", @@ -33158,9 +34111,9 @@ "dev": true }, "beasties": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/beasties/-/beasties-0.3.5.tgz", - "integrity": "sha512-NaWu+f4YrJxEttJSm16AzMIFtVldCvaJ68b1L098KpqXmxt9xOLtKoLkKxb8ekhOrLqEJAbvT6n6SEvB/sac7A==", + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/beasties/-/beasties-0.4.1.tgz", + "integrity": "sha512-2Imdcw3LznDuxAbJM26RHniOLAzE6WgrK8OuvVXCQtNBS8rsnD9zsSEa3fHl4hHpUY7BYTlrpvtPVbvu9G6neg==", "dev": true, "requires": { "css-select": "^6.0.0", @@ -33170,7 +34123,17 @@ "htmlparser2": "^10.0.0", "picocolors": "^1.1.1", "postcss": "^8.4.49", - "postcss-media-query-parser": "^0.2.3" + "postcss-media-query-parser": "^0.2.3", + "postcss-safe-parser": "^7.0.1" + } + }, + "bidi-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/bidi-js/-/bidi-js-1.0.3.tgz", + "integrity": "sha512-RKshQI1R3YQ+n9YJz2QQ147P66ELpa1FQEg20Dk8oW9t2KgLbpDLLp9aGZ7y8WHSshDknG0bknqGw5/tyCs5tw==", + "dev": true, + "requires": { + "require-from-string": "^2.0.2" } }, "big.js": { @@ -33219,30 +34182,11 @@ "ms": "2.0.0" } }, - "http-errors": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.1.tgz", - "integrity": "sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ==", - "dev": true, - "requires": { - "depd": "~2.0.0", - "inherits": "~2.0.4", - "setprototypeof": "~1.2.0", - "statuses": "~2.0.2", - "toidentifier": "~1.0.1" - } - }, "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", "dev": true - }, - "statuses": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.2.tgz", - "integrity": "sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==", - "dev": true } } }, @@ -33263,9 +34207,9 @@ "dev": true }, "brace-expansion": { - "version": "1.1.12", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", - "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.14.tgz", + "integrity": "sha512-MWPGfDxnyzKU7rNOW9SP/c50vi3xrmrua/+6hfPbCS2ABNWfx24vPidzvC7krjU/RTo235sV776ymlsMtGKj8g==", "dev": true, "requires": { "balanced-match": "^1.0.0", @@ -33333,10 +34277,16 @@ "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==" }, + "bytestreamjs": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/bytestreamjs/-/bytestreamjs-2.0.1.tgz", + "integrity": "sha512-U1Z/ob71V/bXfVABvNr/Kumf5VyeQRBEm6Txb0PQ6S7V5GpBM3w4Cbqz/xPDicR5tN0uvDifng8C+5qECeGwyQ==", + "dev": true + }, "cacache": { - "version": "20.0.3", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-20.0.3.tgz", - "integrity": "sha512-3pUp4e8hv07k1QlijZu6Kn7c9+ZpWWk4j3F8N3xPuCExULobqJydKYOTj1FTq58srkJsXvO7LbGAH4C0ZU3WGw==", + "version": "20.0.4", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-20.0.4.tgz", + "integrity": "sha512-M3Lab8NPYlZU2exsL3bMVvMrMqgwCnMWfdZbK28bn3pK6APT/Te/I8hjRPNu1uwORY9a1eEQoifXbKPQMfMTOA==", "requires": { "@npmcli/fs": "^5.0.0", "fs-minipass": "^3.0.0", @@ -33347,14 +34297,13 @@ "minipass-flush": "^1.0.5", "minipass-pipeline": "^1.2.4", "p-map": "^7.0.2", - "ssri": "^13.0.0", - "unique-filename": "^5.0.0" + "ssri": "^13.0.0" }, "dependencies": { "lru-cache": { - "version": "11.2.4", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.2.4.tgz", - "integrity": "sha512-B5Y16Jr9LB9dHVkh6ZevG+vAbOsNOYCX+sXvFWFu7B3Iz5mijW3zdbMyhsh8ANd2mSWBYdJgnqi+mL7/LrOPYg==" + "version": "11.3.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.3.5.tgz", + "integrity": "sha512-NxVFwLAnrd9i7KUBxC4DrUhmgjzOs+1Qm50D3oF1/oL+r1NpZ4gA7xvG0/zJ8evR7zIKn4vLf7qTNduWFtCrRw==" } } }, @@ -33414,6 +34363,12 @@ "resolved": "https://registry.npmjs.org/ccount/-/ccount-2.0.1.tgz", "integrity": "sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==" }, + "chai": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/chai/-/chai-6.2.2.tgz", + "integrity": "sha512-NUPRluOfOiTKBKvWPtSD4PhFvWCqOi0BGStNWs57X9js7XGTprSmFoz5F0tWhR4WPjNeR9jXqdC7/UpSJTnlRg==", + "dev": true + }, "chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", @@ -33608,12 +34563,6 @@ "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==" }, - "colors": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", - "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", - "dev": true - }, "comma-separated-tokens": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz", @@ -33669,12 +34618,6 @@ "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.4.tgz", "integrity": "sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w==", "dev": true - }, - "safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true } } }, @@ -33684,35 +34627,6 @@ "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", "dev": true }, - "connect": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/connect/-/connect-3.7.0.tgz", - "integrity": "sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==", - "dev": true, - "requires": { - "debug": "2.6.9", - "finalhandler": "1.1.2", - "parseurl": "~1.3.3", - "utils-merge": "1.0.1" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - } - } - }, "connect-history-api-fallback": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-2.0.0.tgz", @@ -33726,14 +34640,6 @@ "dev": true, "requires": { "safe-buffer": "5.2.1" - }, - "dependencies": { - "safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true - } } }, "content-type": { @@ -33761,9 +34667,9 @@ "integrity": "sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==" }, "cookie-signature": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.7.tgz", + "integrity": "sha512-NXdYc3dLr47pBkpUCHtKSwIOQXLVn8dZEuywboCOJY/osA0wFSLlSawr3KN8qXJEyX66FcONTH8EIlVuK0yyFA==", "dev": true }, "copy-anything": { @@ -33781,15 +34687,15 @@ "integrity": "sha512-T6SqyLd1iLuqPA90J5N4cTalrtovCySh58iiZDGJ6FGznbclKh4UI+FGacQSgFzwKG77W7XT5gwbVEbd9cIH1A==" }, "copy-webpack-plugin": { - "version": "13.0.1", - "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-13.0.1.tgz", - "integrity": "sha512-J+YV3WfhY6W/Xf9h+J1znYuqTye2xkBUIGyTPWuBAT27qajBa5mR4f8WBmfDY3YjRftT2kqZZiLi1qf0H+UOFw==", + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-14.0.0.tgz", + "integrity": "sha512-3JLW90aBGeaTLpM7mYQKpnVdgsUZRExY55giiZgLuX/xTQRUs1dOCwbBnWnvY6Q6rfZoXMNwzOQJCSZPppfqXA==", "dev": true, "requires": { "glob-parent": "^6.0.1", "normalize-path": "^3.0.0", "schema-utils": "^4.2.0", - "serialize-javascript": "^6.0.2", + "serialize-javascript": "^7.0.3", "tinyglobby": "^0.2.12" }, "dependencies": { @@ -33812,9 +34718,9 @@ } }, "schema-utils": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.3.2.tgz", - "integrity": "sha512-Gn/JaSk/Mt9gYubxTtSn/QCV4em9mpAPiR1rqy/Ocu19u/G9J5WWdNoUT4SiV6mFC3y6cxyFcFwdzPM3FgxGAQ==", + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.3.3.tgz", + "integrity": "sha512-eflK8wEtyOE6+hsaRVPxvUKYCpRgzLqDTb8krvAsRIwOGlHoSgYLgBXoubGgLd2fT41/OUYdb48v4k4WWHQurA==", "dev": true, "requires": { "@types/json-schema": "^7.0.9", @@ -33826,17 +34732,17 @@ } }, "core-js": { - "version": "3.48.0", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.48.0.tgz", - "integrity": "sha512-zpEHTy1fjTMZCKLHUZoVeylt9XrzaIN2rbPXEt0k+q7JE5CkCZdo6bNq55bn24a69CH7ErAVLKijxJja4fw+UQ==" + "version": "3.49.0", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.49.0.tgz", + "integrity": "sha512-es1U2+YTtzpwkxVLwAFdSpaIMyQaq0PBgm3YD1W3Qpsn1NAmO3KSgZfu+oGSWVu6NvLHoHCV/aYcsE5wiB7ALg==" }, "core-js-compat": { - "version": "3.47.0", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.47.0.tgz", - "integrity": "sha512-IGfuznZ/n7Kp9+nypamBhvwdwLsW6KC8IOaURw2doAK5e98AG3acVLdh0woOnEqCfUtS+Vu882JE4k/DAm3ItQ==", + "version": "3.49.0", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.49.0.tgz", + "integrity": "sha512-VQXt1jr9cBz03b331DFDCCP90b3fanciLkgiOoy8SBHy06gNf+vQ1A3WFLqG7I8TipYIKeYK9wxd0tUrvHcOZA==", "dev": true, "requires": { - "browserslist": "^4.28.0" + "browserslist": "^4.28.1" } }, "core-js-pure": { @@ -33927,19 +34833,19 @@ } }, "css-loader": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-7.1.2.tgz", - "integrity": "sha512-6WvYYn7l/XEGN8Xu2vWFt9nVzrCn39vKyTEFf/ExEyoksJjjSZV/0/35XPlMbpnr6VGhZIUg5yJrL8tGfes/FA==", + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-7.1.3.tgz", + "integrity": "sha512-frbERmjT0UC5lMheWpJmMilnt9GEhbZJN/heUb7/zaJYeIzj5St9HvDcfshzzOqbsS+rYpMk++2SD3vGETDSyA==", "dev": true, "requires": { "icss-utils": "^5.1.0", - "postcss": "^8.4.33", + "postcss": "^8.4.40", "postcss-modules-extract-imports": "^3.1.0", "postcss-modules-local-by-default": "^4.0.5", "postcss-modules-scope": "^3.2.0", "postcss-modules-values": "^4.0.0", "postcss-value-parser": "^4.2.0", - "semver": "^7.5.4" + "semver": "^7.6.3" } }, "css-select": { @@ -33966,21 +34872,13 @@ } }, "css-tree": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-3.1.0.tgz", - "integrity": "sha512-0eW44TGN5SQXU1mWSkKwFstI/22X2bG1nYzZTYMAWjylYURhse752YgbE4Cx46AC+bAvI+/dYTPRk1LqSUnu6w==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-3.2.1.tgz", + "integrity": "sha512-X7sjQzceUhu1u7Y/ylrRZFU2FS6LRiFVp6rKLPg23y3x3c3DOKAwuXGDp+PAGjh6CSnCjYeAul8pcT8bAl+lSA==", "dev": true, "requires": { - "mdn-data": "2.12.2", - "source-map-js": "^1.0.1" - }, - "dependencies": { - "mdn-data": { - "version": "2.12.2", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.12.2.tgz", - "integrity": "sha512-IEn+pegP1aManZuckezWCO+XZQDplx1366JoVhTpMpBB1sPey/SbveZQUosKiKiGYjg1wH4pMlNgXbCiYgihQA==", - "dev": true - } + "mdn-data": "2.27.1", + "source-map-js": "^1.2.1" } }, "css-what": { @@ -34019,6 +34917,16 @@ "integrity": "sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==", "dev": true }, + "data-urls": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-7.0.0.tgz", + "integrity": "sha512-23XHcCF+coGYevirZceTVD7NdJOqVn+49IHyxgszm+JIiHLoB2TkmPtsYkNWT1pvRSGkc35L6NHs0yHkN2SumA==", + "dev": true, + "requires": { + "whatwg-mimetype": "^5.0.0", + "whatwg-url": "^16.0.0" + } + }, "data-view-buffer": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.2.tgz", @@ -34052,12 +34960,6 @@ "is-data-view": "^1.0.1" } }, - "date-format": { - "version": "4.0.14", - "resolved": "https://registry.npmjs.org/date-format/-/date-format-4.0.14.tgz", - "integrity": "sha512-39BOQLs9ZjKh0/patS9nrT8wc3ioX3/eA/zgbKNopnF2wCqJEoxywwwElATYvRsXdnOxA/OQeQoFZ3rFjVajhg==", - "dev": true - }, "debug": { "version": "4.3.7", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", @@ -34066,6 +34968,12 @@ "ms": "^2.1.3" } }, + "decimal.js": { + "version": "10.6.0", + "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.6.0.tgz", + "integrity": "sha512-YpgQiITW3JXGntzdUmyUR1V812Hn8T1YVXhCu+wO3OpS4eU9l4YdD3qjyiKdV6mvV29zapkMeD390UVEf2lkUg==", + "dev": true + }, "decode-named-character-reference": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/decode-named-character-reference/-/decode-named-character-reference-1.2.0.tgz", @@ -34166,12 +35074,6 @@ "dequal": "^2.0.0" } }, - "di": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/di/-/di-0.0.1.tgz", - "integrity": "sha512-uJaamHkagcZtHPqCIHZxnFrXlunQXgBOsZSUOWwFw31QJCAbyTBoHMW75YOTur5ZNx8pIeAKgf6GWIgaqqiLhA==", - "dev": true - }, "diff": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", @@ -34213,18 +35115,6 @@ "create-point-cb": "^1.0.0" } }, - "dom-serialize": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/dom-serialize/-/dom-serialize-2.2.1.tgz", - "integrity": "sha512-Yra4DbvoW7/Z6LBN560ZwXMjoNOSAN2wRsKFGc4iBeso+mpIA6qj1vfdf9HpMaKAqG6wXTy+1SYEzmNpKXOSsQ==", - "dev": true, - "requires": { - "custom-event": "~1.0.0", - "ent": "~2.2.0", - "extend": "^3.0.0", - "void-elements": "^2.0.0" - } - }, "dom-serializer": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", @@ -34343,80 +35233,16 @@ "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", "dev": true }, - "encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", - "dev": true - }, - "encoding": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", - "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", - "optional": 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==", - "optional": true, - "requires": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - } - } - } - }, - "engine.io": { - "version": "6.6.2", - "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-6.6.2.tgz", - "integrity": "sha512-gmNvsYi9C8iErnZdVcJnvCpSKbWTt1E8+JZo8b+daLninywUWi5NQ5STSHZ9rFjFO7imNcvb8Pc5pe/wMR5xEw==", - "dev": true, - "requires": { - "@types/cookie": "^0.4.1", - "@types/cors": "^2.8.12", - "@types/node": ">=10.0.0", - "accepts": "~1.3.4", - "base64id": "2.0.0", - "cookie": "~0.7.2", - "cors": "~2.8.5", - "debug": "~4.3.1", - "engine.io-parser": "~5.2.1", - "ws": "~8.17.1" - }, - "dependencies": { - "cookie": { - "version": "0.7.2", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.2.tgz", - "integrity": "sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==", - "dev": true - } - } - }, - "engine.io-parser": { - "version": "5.2.3", - "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.2.3.tgz", - "integrity": "sha512-HqD3yTBfnBxIrbnM1DoD6Pcq8NECnh8d4As1Qgh0z5Gg3jRRIqijury0CL3ghu/edArpUYiYqQiDUQBIs4np3Q==", - "dev": true - }, "enhanced-resolve": { - "version": "5.19.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.19.0.tgz", - "integrity": "sha512-phv3E1Xl4tQOShqSte26C7Fl84EwUdZsyOuSSk9qtAGyyQs2s3jJzComh+Abf4g187lUUAvH+H26omrqia2aGg==", + "version": "5.21.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.21.0.tgz", + "integrity": "sha512-otxSQPw4lkOZWkHpB3zaEQs6gWYEsmX4xQF68ElXC/TWvGxGMSGOvoNbaLXm6/cS/fSfHtsEdw90y20PCd+sCA==", "dev": true, "requires": { "graceful-fs": "^4.2.4", - "tapable": "^2.3.0" + "tapable": "^2.3.3" } }, - "ent": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/ent/-/ent-2.2.0.tgz", - "integrity": "sha512-GHrMyVZQWvTIdDtpiEXdHZnFQKzeO09apj8Cbl4pKWy4i0Oprcq17usfDt5aO63swf0JOeMWjWQE/LzgSRuWpA==", - "dev": true - }, "entities": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", @@ -34559,9 +35385,9 @@ } }, "es-module-lexer": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-2.0.0.tgz", - "integrity": "sha512-5POEcUuZybH7IdmGsD8wlf0AI55wMecM9rVBTI/qEAy2c1kTOm3DjFYjrBdI2K3BaJjJYfYFeRtM0t9ssnRuxw==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-2.1.0.tgz", + "integrity": "sha512-n27zTYMjYu1aj4MjCWzSP7G9r75utsaoc8m61weK+W8JMBGGQybd43GstCXZ3WNmSFtGT9wi59qQTW6mhTR5LQ==", "dev": true }, "es-object-atoms": { @@ -34604,6 +35430,11 @@ "is-symbol": "^1.0.4" } }, + "es-toolkit": { + "version": "1.46.1", + "resolved": "https://registry.npmjs.org/es-toolkit/-/es-toolkit-1.46.1.tgz", + "integrity": "sha512-5eNtXOs3tbfxXOj04tjjseeWkRWaoCjdEI+96DgwzZoe6c9juL49pXlzAFTI72aWC9Y8p7168g6XIKjh7k6pyQ==" + }, "es5-ext": { "version": "0.10.64", "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.64.tgz", @@ -34694,43 +35525,43 @@ } }, "esbuild": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.27.2.tgz", - "integrity": "sha512-HyNQImnsOC7X9PMNaCIeAm4ISCQXs5a5YasTXVliKv4uuBo1dKrG0A+uQS8M5eXjVMnLg3WgXaKvprHlFJQffw==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.27.3.tgz", + "integrity": "sha512-8VwMnyGCONIs6cWue2IdpHxHnAjzxnw2Zr7MkVxB2vjmQ2ivqGFb4LEG3SMnv0Gb2F/G/2yA8zUaiL1gywDCCg==", "dev": true, "requires": { - "@esbuild/aix-ppc64": "0.27.2", - "@esbuild/android-arm": "0.27.2", - "@esbuild/android-arm64": "0.27.2", - "@esbuild/android-x64": "0.27.2", - "@esbuild/darwin-arm64": "0.27.2", - "@esbuild/darwin-x64": "0.27.2", - "@esbuild/freebsd-arm64": "0.27.2", - "@esbuild/freebsd-x64": "0.27.2", - "@esbuild/linux-arm": "0.27.2", - "@esbuild/linux-arm64": "0.27.2", - "@esbuild/linux-ia32": "0.27.2", - "@esbuild/linux-loong64": "0.27.2", - "@esbuild/linux-mips64el": "0.27.2", - "@esbuild/linux-ppc64": "0.27.2", - "@esbuild/linux-riscv64": "0.27.2", - "@esbuild/linux-s390x": "0.27.2", - "@esbuild/linux-x64": "0.27.2", - "@esbuild/netbsd-arm64": "0.27.2", - "@esbuild/netbsd-x64": "0.27.2", - "@esbuild/openbsd-arm64": "0.27.2", - "@esbuild/openbsd-x64": "0.27.2", - "@esbuild/openharmony-arm64": "0.27.2", - "@esbuild/sunos-x64": "0.27.2", - "@esbuild/win32-arm64": "0.27.2", - "@esbuild/win32-ia32": "0.27.2", - "@esbuild/win32-x64": "0.27.2" + "@esbuild/aix-ppc64": "0.27.3", + "@esbuild/android-arm": "0.27.3", + "@esbuild/android-arm64": "0.27.3", + "@esbuild/android-x64": "0.27.3", + "@esbuild/darwin-arm64": "0.27.3", + "@esbuild/darwin-x64": "0.27.3", + "@esbuild/freebsd-arm64": "0.27.3", + "@esbuild/freebsd-x64": "0.27.3", + "@esbuild/linux-arm": "0.27.3", + "@esbuild/linux-arm64": "0.27.3", + "@esbuild/linux-ia32": "0.27.3", + "@esbuild/linux-loong64": "0.27.3", + "@esbuild/linux-mips64el": "0.27.3", + "@esbuild/linux-ppc64": "0.27.3", + "@esbuild/linux-riscv64": "0.27.3", + "@esbuild/linux-s390x": "0.27.3", + "@esbuild/linux-x64": "0.27.3", + "@esbuild/netbsd-arm64": "0.27.3", + "@esbuild/netbsd-x64": "0.27.3", + "@esbuild/openbsd-arm64": "0.27.3", + "@esbuild/openbsd-x64": "0.27.3", + "@esbuild/openharmony-arm64": "0.27.3", + "@esbuild/sunos-x64": "0.27.3", + "@esbuild/win32-arm64": "0.27.3", + "@esbuild/win32-ia32": "0.27.3", + "@esbuild/win32-x64": "0.27.3" } }, "esbuild-wasm": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/esbuild-wasm/-/esbuild-wasm-0.27.2.tgz", - "integrity": "sha512-eUTnl8eh+v8UZIZh4MrMOKDAc8Lm7+NqP3pyuTORGFY1s/o9WoiJgKnwXy+te2J3hX7iRbFSHEyig7GsPeeJyw==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/esbuild-wasm/-/esbuild-wasm-0.27.3.tgz", + "integrity": "sha512-AUXuOxZ145/5Az+lIqk6TdJbxKTyDGkXMJpTExmBdbnHR6n6qAFx+F4oG9ORpVYJ9dQYeQAqzv51TO4DFKsbXw==", "dev": true }, "escalade": { @@ -34941,12 +35772,6 @@ } } }, - "eslint-plugin-jasmine": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/eslint-plugin-jasmine/-/eslint-plugin-jasmine-4.2.2.tgz", - "integrity": "sha512-nALbewRk63uz28UGNhUTJyd6GofXxVNFpWFNAwr9ySc6kpSRIoO4suwZqIYz3cfJmCacilmjp7+1Ocjr7zRagA==", - "dev": true - }, "eslint-plugin-jsx-a11y": { "version": "6.10.2", "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.10.2.tgz", @@ -35118,6 +35943,15 @@ "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", "dev": true }, + "estree-walker": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", + "dev": true, + "requires": { + "@types/estree": "^1.0.0" + } + }, "esutils": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", @@ -35173,6 +36007,12 @@ "resolved": "https://registry.npmjs.org/eventsource-parser/-/eventsource-parser-3.0.6.tgz", "integrity": "sha512-Vo1ab+QXPzZ4tCa8SwIHJFaSzy4R6SHf7BY79rFBDf0idraZWAkYrDjDj8uWaSm3S2TK+hJ7/t1CEmZ7jXw+pg==" }, + "expect-type": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/expect-type/-/expect-type-1.3.0.tgz", + "integrity": "sha512-knvyeauYhqjOYvQ66MznSMs83wmHrCycNEN6Ao+2AeYEfxUIkuiVxdEa1qlGEPK+We3n0THiDciYSsCcgW/DoA==", + "dev": true + }, "exponential-backoff": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/exponential-backoff/-/exponential-backoff-3.1.3.tgz", @@ -35233,17 +36073,17 @@ "dev": true }, "finalhandler": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.1.tgz", - "integrity": "sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==", + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.2.tgz", + "integrity": "sha512-aA4RyPcd3badbdABGDuTXCMTtOneUCAYH/gxoYRTZlIJdF0YPWuGqiAsIrhNnnqdXGswYk6dGujem4w80UJFhg==", "dev": true, "requires": { "debug": "2.6.9", "encodeurl": "~2.0.0", "escape-html": "~1.0.3", - "on-finished": "2.4.1", + "on-finished": "~2.4.1", "parseurl": "~1.3.3", - "statuses": "2.0.1", + "statuses": "~2.0.2", "unpipe": "~1.0.0" } }, @@ -35252,12 +36092,6 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", "dev": true - }, - "safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true } } }, @@ -35342,9 +36176,9 @@ }, "dependencies": { "brace-expansion": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", - "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.1.0.tgz", + "integrity": "sha512-TN1kCZAgdgweJhWWpgKYrQaMNHcDULHkWwQIspdtjV4Y5aurRdZpjAqn6yX3FPqTA9ngHCc4hJxMAMgGfve85w==", "dev": true, "requires": { "balanced-match": "^1.0.0" @@ -35370,53 +36204,6 @@ "to-regex-range": "^5.0.1" } }, - "finalhandler": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", - "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", - "dev": true, - "requires": { - "debug": "2.6.9", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "on-finished": "~2.3.0", - "parseurl": "~1.3.3", - "statuses": "~1.5.0", - "unpipe": "~1.0.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - }, - "on-finished": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", - "integrity": "sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==", - "dev": true, - "requires": { - "ee-first": "1.1.1" - } - }, - "statuses": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", - "dev": true - } - } - }, "find-up": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", @@ -35455,9 +36242,9 @@ "dev": true }, "follow-redirects": { - "version": "1.15.6", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz", - "integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==" + "version": "1.16.0", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.16.0.tgz", + "integrity": "sha512-y5rN/uOsadFT/JfYwhxRS5R7Qce+g3zG97+JrtFZlC9klX/W5hD7iiLzScI4nZqUS7DNUdhPgw4xI8W2LuXlUw==" }, "for-each": { "version": "0.3.5", @@ -35484,17 +36271,6 @@ "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", "dev": true }, - "fs-extra": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", - "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", - "dev": true, - "requires": { - "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, "fs-minipass": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-3.0.3.tgz", @@ -35613,9 +36389,9 @@ "integrity": "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==" }, "brace-expansion": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.3.tgz", - "integrity": "sha512-fy6KJm2RawA5RcHkLa1z/ScpBeA762UF9KmZQxwIbDtRJrgLzM10depAiEQ+CXYcoiqW1/m96OAAoke2nE9EeA==", + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.5.tgz", + "integrity": "sha512-VZznLgtwhn+Mact9tfiwx64fA9erHH/MCXEUfB/0bX/6Fz6ny5EGTXYltMocqg4xFAQZtnO3DHWWXi8RiuN7cQ==", "requires": { "balanced-match": "^4.0.2" } @@ -35666,9 +36442,9 @@ "dev": true }, "globals": { - "version": "17.3.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-17.3.0.tgz", - "integrity": "sha512-yMqGUQVVCkD4tqjOJf3TnrvaaHDMYp4VlUSObbkIiuCPe/ofdMBFIAcBbCSRFWOnos6qRiTVStDwqPLUclaxIw==", + "version": "17.5.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-17.5.0.tgz", + "integrity": "sha512-qoV+HK2yFl/366t2/Cb3+xxPUo5BuMynomoDmiaZBIdbs+0pYbjfZU+twLhGKp4uCZ/+NbtpVepH5bGCxRyy2g==", "dev": true }, "globalthis": { @@ -35983,9 +36759,9 @@ }, "dependencies": { "lru-cache": { - "version": "11.2.4", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.2.4.tgz", - "integrity": "sha512-B5Y16Jr9LB9dHVkh6ZevG+vAbOsNOYCX+sXvFWFu7B3Iz5mijW3zdbMyhsh8ANd2mSWBYdJgnqi+mL7/LrOPYg==" + "version": "11.3.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.3.5.tgz", + "integrity": "sha512-NxVFwLAnrd9i7KUBxC4DrUhmgjzOs+1Qm50D3oF1/oL+r1NpZ4gA7xvG0/zJ8evR7zIKn4vLf7qTNduWFtCrRw==" } } }, @@ -36021,9 +36797,33 @@ "string_decoder": "~1.1.1", "util-deprecate": "~1.0.1" } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } } } }, + "html-encoding-sniffer": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-6.0.0.tgz", + "integrity": "sha512-CV9TW3Y3f8/wT0BRFc1/KAVQ3TUHiXmaAb6VW9vtiMFf7SLoMd1PdAc4W3KFOFETBJUb90KatHqlsZMWV+R9Gg==", + "dev": true, + "requires": { + "@exodus/bytes": "^1.6.0" + } + }, "html-escaper": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", @@ -36075,21 +36875,21 @@ } }, "htmlparser2": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-10.0.0.tgz", - "integrity": "sha512-TwAZM+zE5Tq3lrEHvOlvwgj1XLWQCtaaibSN11Q+gGBAS7Y1uZSWwXXRe4iF6OXnaq1riyQAPFOBtYc77Mxq0g==", + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-10.1.0.tgz", + "integrity": "sha512-VTZkM9GWRAtEpveh7MSF6SjjrpNVNNVJfFup7xTY3UpFtm67foy9HDVXneLtFVt4pMz5kZtgNcvCniNFb1hlEQ==", "dev": true, "requires": { "domelementtype": "^2.3.0", "domhandler": "^5.0.3", - "domutils": "^3.2.1", - "entities": "^6.0.0" + "domutils": "^3.2.2", + "entities": "^7.0.1" }, "dependencies": { "entities": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/entities/-/entities-6.0.1.tgz", - "integrity": "sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==", + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-7.0.1.tgz", + "integrity": "sha512-TWrgLOFUQTH994YUyl1yT4uyavY5nNB5muff+RtWaqNVCAK408b5ZnnbNAUEWLTCpum9w6arT70i1XdQ4UeOPA==", "dev": true } } @@ -36106,16 +36906,15 @@ "dev": true }, "http-errors": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", - "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", - "dev": true, + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.1.tgz", + "integrity": "sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ==", "requires": { - "depd": "2.0.0", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "toidentifier": "1.0.1" + "depd": "~2.0.0", + "inherits": "~2.0.4", + "setprototypeof": "~1.2.0", + "statuses": "~2.0.2", + "toidentifier": "~1.0.1" } }, "http-parser-js": { @@ -36269,19 +37068,19 @@ "integrity": "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==" }, "brace-expansion": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.3.tgz", - "integrity": "sha512-fy6KJm2RawA5RcHkLa1z/ScpBeA762UF9KmZQxwIbDtRJrgLzM10depAiEQ+CXYcoiqW1/m96OAAoke2nE9EeA==", + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.5.tgz", + "integrity": "sha512-VZznLgtwhn+Mact9tfiwx64fA9erHH/MCXEUfB/0bX/6Fz6ny5EGTXYltMocqg4xFAQZtnO3DHWWXi8RiuN7cQ==", "requires": { "balanced-match": "^4.0.2" } }, "minimatch": { - "version": "10.2.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.4.tgz", - "integrity": "sha512-oRjTw/97aTBN0RHbYCdtF1MQfvusSIBQM0IZEgzl6426+8jSC0nF1a/GmnVLpfB9yyr6g6FTqWqiZVbxrtaCIg==", + "version": "10.2.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.5.tgz", + "integrity": "sha512-MULkVLfKGYDFYejP07QOurDLLQpcjk7Fw+7jXS2R2czRQzR56yHRveU5NDJEOviH+hETZKSkIk5c+T23GjFUMg==", "requires": { - "brace-expansion": "^5.0.2" + "brace-expansion": "^5.0.5" } } } @@ -36312,7 +37111,8 @@ "imurmurhash": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==" + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true }, "inflight": { "version": "1.0.6", @@ -36351,9 +37151,9 @@ "integrity": "sha512-XXADHxXmvT9+CRxhXg56LJovE+bmWnEWB78LB83VZTprKTmaC5QfruXocxzTZ2Kl0DNwKuBdlIhjL8LeY8Sf8Q==" }, "ipaddr.js": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.2.0.tgz", - "integrity": "sha512-Ag3wB2o37wslZS19hZqorUnrnzSkpOVy+IiiDEiTqNubEYpYuHWIf6K4psgN2ZWKExS4xhVCrRVfb/wfW8fWJA==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.3.0.tgz", + "integrity": "sha512-Zv/pA+ciVFbCSBBjGfaKUya/CcGmUHzTydLMaTwrUUEM2DIEO3iZvueGxmacvmN50fGpGVKeTXpb2LcYQxeVdg==", "dev": true }, "is-array": { @@ -36428,6 +37228,7 @@ "version": "2.16.1", "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", + "dev": true, "requires": { "hasown": "^2.0.2" } @@ -36541,9 +37342,9 @@ "dev": true }, "is-network-error": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-network-error/-/is-network-error-1.1.0.tgz", - "integrity": "sha512-tUdRRAnhT+OtCZR/LxZelH/C7QtjtFrTu5tXCA8pl55eTUElUHT+GPYV8MBMBvea/j+NxQqVt3LbWMRir7Gx9g==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/is-network-error/-/is-network-error-1.3.1.tgz", + "integrity": "sha512-6QCxa49rQbmUWLfk0nuGqzql9U8uaV2H6279bRErPBHe/109hCzsLUBUHfbEtvLIHBd6hyXbgedBSHevm43Edw==", "dev": true }, "is-number-object": { @@ -36570,6 +37371,12 @@ "isobject": "^3.0.1" } }, + "is-potential-custom-element-name": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", + "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==", + "dev": true + }, "is-promise": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-4.0.0.tgz", @@ -36683,12 +37490,6 @@ "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", "dev": true }, - "isbinaryfile": { - "version": "4.0.10", - "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.10.tgz", - "integrity": "sha512-iHrqe5shvBUcFbmZq9zOQHBoeOhZJu6RQGrDpBgenUm/Am+F3JM2MgQj+rK3Z601fzrL5gLZWtAPH2OBaSVcyw==", - "dev": true - }, "iselement": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/iselement/-/iselement-1.1.4.tgz", @@ -36716,26 +37517,6 @@ "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", "dev": true }, - "istanbul-lib-instrument": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz", - "integrity": "sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==", - "dev": true, - "requires": { - "@babel/core": "^7.7.5", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.0.0", - "semver": "^6.3.0" - }, - "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 - } - } - }, "istanbul-lib-report": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", @@ -36758,29 +37539,10 @@ } } }, - "istanbul-lib-source-maps": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", - "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", - "dev": true, - "requires": { - "debug": "^4.1.1", - "istanbul-lib-coverage": "^3.0.0", - "source-map": "^0.6.1" - }, - "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 - } - } - }, "istanbul-reports": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.6.tgz", - "integrity": "sha512-TLgnMkKg3iTDsQ9PbPTdpfAK2DzjF9mqUG7RMgcQl8oFjad8ob4laGxv5XV5U9MAfx8D6tSJiUyuAwzLicaxlg==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.2.0.tgz", + "integrity": "sha512-HGYWWS/ehqTV3xN10i23tkPkpH46MLCIMFNCaaKNavAXTF1RkqxawEPtnjnGZ6XKSInBKkiOA5BKS+aZiY3AvA==", "dev": true, "requires": { "html-escaper": "^2.0.0", @@ -36813,21 +37575,6 @@ "minimatch": "^3.1.2" } }, - "jasmine-core": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-6.1.0.tgz", - "integrity": "sha512-p/tjBw58O6vxKIWMlrU+yys8lqR3+l3UrqwNTT7wpj+dQ7N4etQekFM8joI+cWzPDYqZf54kN+hLC1+s5TvZvg==", - "dev": true - }, - "jasmine-spec-reporter": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/jasmine-spec-reporter/-/jasmine-spec-reporter-7.0.0.tgz", - "integrity": "sha512-OtC7JRasiTcjsaCBPtMO0Tl8glCejM4J4/dNuOJdA8lBjz4PmWjYQ6pzb0uzpBNAWJMDudYuj9OdXJWqM2QTJg==", - "dev": true, - "requires": { - "colors": "1.4.0" - } - }, "jest-worker": { "version": "27.5.1", "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", @@ -36891,6 +37638,64 @@ } } }, + "jsdom": { + "version": "29.1.1", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-29.1.1.tgz", + "integrity": "sha512-ECi4Fi2f7BdJtUKTflYRTiaMxIB0O6zfR1fX0GXpUrf6flp8QIYn1UT20YQqdSOfk2dfkCwS8LAFoJDEppNK5Q==", + "dev": true, + "requires": { + "@asamuzakjp/css-color": "^5.1.11", + "@asamuzakjp/dom-selector": "^7.1.1", + "@bramus/specificity": "^2.4.2", + "@csstools/css-syntax-patches-for-csstree": "^1.1.3", + "@exodus/bytes": "^1.15.0", + "css-tree": "^3.2.1", + "data-urls": "^7.0.0", + "decimal.js": "^10.6.0", + "html-encoding-sniffer": "^6.0.0", + "is-potential-custom-element-name": "^1.0.1", + "lru-cache": "^11.3.5", + "parse5": "^8.0.1", + "saxes": "^6.0.0", + "symbol-tree": "^3.2.4", + "tough-cookie": "^6.0.1", + "undici": "^7.25.0", + "w3c-xmlserializer": "^5.0.0", + "webidl-conversions": "^8.0.1", + "whatwg-mimetype": "^5.0.0", + "whatwg-url": "^16.0.1", + "xml-name-validator": "^5.0.0" + }, + "dependencies": { + "entities": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-8.0.0.tgz", + "integrity": "sha512-zwfzJecQ/Uej6tusMqwAqU/6KL2XaB2VZ2Jg54Je6ahNBGNH6Ek6g3jjNCF0fG9EWQKGZNddNjU5F1ZQn/sBnA==", + "dev": true + }, + "lru-cache": { + "version": "11.3.6", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.3.6.tgz", + "integrity": "sha512-Gf/KoL3C/MlI7Bt0PGI9I+TeTC/I6r/csU58N4BSNc4lppLBeKsOdFYkK+dX0ABDUMJNfCHTyPpzwwO21Awd3A==", + "dev": true + }, + "parse5": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-8.0.1.tgz", + "integrity": "sha512-z1e/HMG90obSGeidlli3hj7cbocou0/wa5HacvI3ASx34PecNjNQeaHNo5WIZpWofN9kgkqV1q5YvXe3F0FoPw==", + "dev": true, + "requires": { + "entities": "^8.0.0" + } + }, + "undici": { + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/undici/-/undici-7.25.0.tgz", + "integrity": "sha512-xXnp4kTyor2Zq+J1FfPI6Eq3ew5h6Vl0F/8d9XU5zZQf1tX9s2Su1/3PiMmUANFULpmksxkClamIZcaUqryHsQ==", + "dev": true + } + } + }, "jsesc": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", @@ -36933,15 +37738,6 @@ "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.3.1.tgz", "integrity": "sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ==" }, - "jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.6" - } - }, "jsonparse": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", @@ -36959,230 +37755,6 @@ "object.values": "^1.1.6" } }, - "karma": { - "version": "6.4.4", - "resolved": "https://registry.npmjs.org/karma/-/karma-6.4.4.tgz", - "integrity": "sha512-LrtUxbdvt1gOpo3gxG+VAJlJAEMhbWlM4YrFQgql98FwF7+K8K12LYO4hnDdUkNjeztYrOXEMqgTajSWgmtI/w==", - "dev": true, - "requires": { - "@colors/colors": "1.5.0", - "body-parser": "^1.19.0", - "braces": "^3.0.2", - "chokidar": "^3.5.1", - "connect": "^3.7.0", - "di": "^0.0.1", - "dom-serialize": "^2.2.1", - "glob": "^7.1.7", - "graceful-fs": "^4.2.6", - "http-proxy": "^1.18.1", - "isbinaryfile": "^4.0.8", - "lodash": "^4.17.21", - "log4js": "^6.4.1", - "mime": "^2.5.2", - "minimatch": "^3.0.4", - "mkdirp": "^0.5.5", - "qjobs": "^1.2.0", - "range-parser": "^1.2.1", - "rimraf": "^3.0.2", - "socket.io": "^4.7.2", - "source-map": "^0.6.1", - "tmp": "^0.2.1", - "ua-parser-js": "^0.7.30", - "yargs": "^16.1.1" - }, - "dependencies": { - "glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "mime": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz", - "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==", - "dev": true - }, - "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 - }, - "yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", - "dev": true, - "requires": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - } - }, - "yargs-parser": { - "version": "20.2.9", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", - "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", - "dev": true - } - } - }, - "karma-chrome-launcher": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/karma-chrome-launcher/-/karma-chrome-launcher-3.2.0.tgz", - "integrity": "sha512-rE9RkUPI7I9mAxByQWkGJFXfFD6lE4gC5nPuZdobf/QdTEJI6EU4yIay/cfU/xV4ZxlM5JiTv7zWYgA64NpS5Q==", - "dev": true, - "requires": { - "which": "^1.2.1" - }, - "dependencies": { - "which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - } - } - }, - "karma-coverage": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/karma-coverage/-/karma-coverage-2.2.1.tgz", - "integrity": "sha512-yj7hbequkQP2qOSb20GuNSIyE//PgJWHwC2IydLE6XRtsnaflv+/OSGNssPjobYUlhVVagy99TQpqUt3vAUG7A==", - "dev": true, - "requires": { - "istanbul-lib-coverage": "^3.2.0", - "istanbul-lib-instrument": "^5.1.0", - "istanbul-lib-report": "^3.0.0", - "istanbul-lib-source-maps": "^4.0.1", - "istanbul-reports": "^3.0.5", - "minimatch": "^3.0.4" - }, - "dependencies": { - "istanbul-lib-instrument": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", - "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", - "dev": true, - "requires": { - "@babel/core": "^7.12.3", - "@babel/parser": "^7.14.7", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.2.0", - "semver": "^6.3.0" - } - }, - "semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true - } - } - }, - "karma-coverage-istanbul-reporter": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/karma-coverage-istanbul-reporter/-/karma-coverage-istanbul-reporter-3.0.3.tgz", - "integrity": "sha512-wE4VFhG/QZv2Y4CdAYWDbMmcAHeS926ZIji4z+FkB2aF/EposRb6DP6G5ncT/wXhqUfAb/d7kZrNKPonbvsATw==", - "dev": true, - "requires": { - "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-report": "^3.0.0", - "istanbul-lib-source-maps": "^3.0.6", - "istanbul-reports": "^3.0.2", - "minimatch": "^3.0.4" - }, - "dependencies": { - "glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "istanbul-lib-source-maps": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-3.0.6.tgz", - "integrity": "sha512-R47KzMtDJH6X4/YW9XTx+jrLnZnscW4VpNN+1PViSYTejLVPWv7oov+Duf8YQSPyVRUvueQqz1TcsC6mooZTXw==", - "dev": true, - "requires": { - "debug": "^4.1.1", - "istanbul-lib-coverage": "^2.0.5", - "make-dir": "^2.1.0", - "rimraf": "^2.6.3", - "source-map": "^0.6.1" - }, - "dependencies": { - "istanbul-lib-coverage": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.5.tgz", - "integrity": "sha512-8aXznuEPCJvGnMSRft4udDRDtb1V3pkQkMMI5LI+6HuQz5oQ4J2UFn1H82raA3qJtyOLkkwVqICBQkjnGtn5mA==", - "dev": true - } - } - }, - "rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - }, - "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 - } - } - }, - "karma-jasmine": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/karma-jasmine/-/karma-jasmine-5.1.0.tgz", - "integrity": "sha512-i/zQLFrfEpRyQoJF9fsCdTMOF5c2dK7C7OmsuKg2D0YSsuZSfQDiLuaiktbuio6F2wiCsZSnSnieIQ0ant/uzQ==", - "dev": true, - "requires": { - "jasmine-core": "^4.1.0" - }, - "dependencies": { - "jasmine-core": { - "version": "4.6.1", - "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-4.6.1.tgz", - "integrity": "sha512-VYz/BjjmC3klLJlLwA4Kw8ytk0zDSmbbDLNs794VnWmkcCB7I9aAL/D48VNQtmITyPvea2C3jdUMfc3kAoy0PQ==", - "dev": true - } - } - }, - "karma-jasmine-html-reporter": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/karma-jasmine-html-reporter/-/karma-jasmine-html-reporter-2.1.0.tgz", - "integrity": "sha512-sPQE1+nlsn6Hwb5t+HHwyy0A1FNCVKuL1192b+XNauMYWThz2kweiBVW1DqloRpVvZIJkIoHVB7XRpK78n1xbQ==", - "dev": true - }, "karma-source-map-support": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/karma-source-map-support/-/karma-source-map-support-1.4.0.tgz", @@ -37192,15 +37764,6 @@ "source-map-support": "^0.5.5" } }, - "karma-spec-reporter": { - "version": "0.0.36", - "resolved": "https://registry.npmjs.org/karma-spec-reporter/-/karma-spec-reporter-0.0.36.tgz", - "integrity": "sha512-11bvOl1x6ryKZph7kmbmMpbi8vsngEGxGOoeTlIcDaH3ab3j8aPJnZ+r+K/SS0sBSGy5VGkGYO2+hLct7hw/6w==", - "dev": true, - "requires": { - "colors": "1.4.0" - } - }, "keyv": { "version": "4.5.4", "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", @@ -37237,13 +37800,13 @@ } }, "launch-editor": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/launch-editor/-/launch-editor-2.10.0.tgz", - "integrity": "sha512-D7dBRJo/qcGX9xlvt/6wUYzQxjh5G1RvZPgPv8vi4KRU99DVQL/oW7tnVOCCTm2HGeo3C5HvGE5Yrh6UBoZ0vA==", + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/launch-editor/-/launch-editor-2.13.2.tgz", + "integrity": "sha512-4VVDnbOpLXy/s8rdRCSXb+zfMeFR0WlJWpET1iA9CQdlZDfwyLjUuGQzXU4VeOoey6AicSAluWan7Etga6Kcmg==", "dev": true, "requires": { - "picocolors": "^1.0.0", - "shell-quote": "^1.8.1" + "picocolors": "^1.1.1", + "shell-quote": "^1.8.3" } }, "laz-perf": { @@ -37286,9 +37849,9 @@ } }, "less-loader": { - "version": "12.3.0", - "resolved": "https://registry.npmjs.org/less-loader/-/less-loader-12.3.0.tgz", - "integrity": "sha512-0M6+uYulvYIWs52y0LqN4+QM9TqWAohYSNTo4htE8Z7Cn3G/qQMEmktfHmyJT23k+20kU9zHH2wrfFXkxNLtVw==", + "version": "12.3.1", + "resolved": "https://registry.npmjs.org/less-loader/-/less-loader-12.3.1.tgz", + "integrity": "sha512-JZZmG7gMzoDP3VGeEG8Sh6FW5wygB5jYL7Wp29FFihuRTsIBacqO3LbRPr2yStYD11riVf13selLm/CPFRDBRQ==", "dev": true }, "levn": { @@ -37449,19 +38012,20 @@ } }, "lmdb": { - "version": "3.4.4", - "resolved": "https://registry.npmjs.org/lmdb/-/lmdb-3.4.4.tgz", - "integrity": "sha512-+Y2DqovevLkb6DrSQ6SXTYLEd6kvlRbhsxzgJrk7BUfOVA/mt21ak6pFDZDKxiAczHMWxrb02kXBTSTIA0O94A==", + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/lmdb/-/lmdb-3.5.1.tgz", + "integrity": "sha512-NYHA0MRPjvNX+vSw8Xxg6FLKxzAG+e7Pt8RqAQA/EehzHVXq9SxDqJIN3JL1hK0dweb884y8kIh6rkWvPyg9Wg==", "dev": true, "optional": true, "requires": { - "@lmdb/lmdb-darwin-arm64": "3.4.4", - "@lmdb/lmdb-darwin-x64": "3.4.4", - "@lmdb/lmdb-linux-arm": "3.4.4", - "@lmdb/lmdb-linux-arm64": "3.4.4", - "@lmdb/lmdb-linux-x64": "3.4.4", - "@lmdb/lmdb-win32-arm64": "3.4.4", - "@lmdb/lmdb-win32-x64": "3.4.4", + "@harperfast/extended-iterable": "^1.0.3", + "@lmdb/lmdb-darwin-arm64": "3.5.1", + "@lmdb/lmdb-darwin-x64": "3.5.1", + "@lmdb/lmdb-linux-arm": "3.5.1", + "@lmdb/lmdb-linux-arm64": "3.5.1", + "@lmdb/lmdb-linux-x64": "3.5.1", + "@lmdb/lmdb-win32-arm64": "3.5.1", + "@lmdb/lmdb-win32-x64": "3.5.1", "msgpackr": "^1.11.2", "node-addon-api": "^6.1.0", "node-gyp-build-optional-packages": "5.2.2", @@ -37470,9 +38034,9 @@ } }, "loader-runner": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.1.tgz", - "integrity": "sha512-IWqP2SCPhyVFTBtRcgMHdzlf9ul25NwaFx4wCEH/KjAXuuHY4yNjvPXsBokp8jCB936PyWRaPKUNh8NvylLp2Q==", + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.2.tgz", + "integrity": "sha512-DFEqQ3ihfS9blba08cLfYf1NRAIEm+dDjic073DRDc3/JspI/8wYmtDsHwd3+4hwvdxSK7PGaElfTmm0awWJ4w==", "dev": true }, "loader-utils": { @@ -37491,14 +38055,9 @@ } }, "lodash": { - "version": "4.17.23", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.23.tgz", - "integrity": "sha512-LgVTMpQtIopCi79SJeDiP0TfWi5CNEc/L/aRdTh3yIvmZXTnheWpKjSZhnvMl8iXbC1tFg9gdHHDMLoV7CnG+w==" - }, - "lodash-es": { "version": "4.18.1", - "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.18.1.tgz", - "integrity": "sha512-J8xewKD/Gk22OZbhpOVSwcs60zhd95ESDwezOFuA3/099925PdHJ7OFHNTGtajL3AlZkykD32HykiMo+BIBI8A==" + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.18.1.tgz", + "integrity": "sha512-dMInicTPVE8d1e5otfwmmjlxkZoUpiVLwyeTdUsi/Caj/gfzzblBcCE5sRHV/AsjuCmxWrte2TNGSYuCeCq+0Q==" }, "lodash.clonedeep": { "version": "4.5.0", @@ -37620,19 +38179,6 @@ } } }, - "log4js": { - "version": "6.9.1", - "resolved": "https://registry.npmjs.org/log4js/-/log4js-6.9.1.tgz", - "integrity": "sha512-1somDdy9sChrr9/f4UlzhdaGfDR2c/SaD2a4T7qEkG4jTS57/B3qmnjLYePwQ8cqWnUHZI0iAKxMBpCZICiZ2g==", - "dev": true, - "requires": { - "date-format": "^4.0.14", - "debug": "^4.3.4", - "flatted": "^3.2.7", - "rfdc": "^1.3.0", - "streamroller": "^3.1.5" - } - }, "longest-streak": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/longest-streak/-/longest-streak-3.1.0.tgz", @@ -37677,11 +38223,23 @@ "@jridgewell/sourcemap-codec": "^1.5.0" } }, + "magicast": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/magicast/-/magicast-0.5.2.tgz", + "integrity": "sha512-E3ZJh4J3S9KfwdjZhe2afj6R9lGIN5Pher1pF39UGrXRqq/VDaGVIGN13BjHd2u8B61hArAGOnso7nBOouW3TQ==", + "dev": true, + "requires": { + "@babel/parser": "^7.29.0", + "@babel/types": "^7.29.0", + "source-map-js": "^1.2.1" + } + }, "make-dir": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", "dev": true, + "optional": true, "requires": { "pify": "^4.0.1", "semver": "^5.6.0" @@ -37691,7 +38249,8 @@ "version": "5.7.2", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", - "dev": true + "dev": true, + "optional": true } } }, @@ -37702,11 +38261,13 @@ "dev": true }, "make-fetch-happen": { - "version": "15.0.3", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-15.0.3.tgz", - "integrity": "sha512-iyyEpDty1mwW3dGlYXAJqC/azFn5PPvgKVwXayOGBSmKLxhKZ9fg4qIan2ePpp1vJIwfFiO34LAPZgq9SZW9Aw==", + "version": "15.0.5", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-15.0.5.tgz", + "integrity": "sha512-uCbIa8jWWmQZt4dSnEStkVC6gdakiinAm4PiGsywIkguF0eWMdcjDz0ECYhUolFU3pFLOev9VNPCEygydXnddg==", "requires": { + "@gar/promise-retry": "^1.0.0", "@npmcli/agent": "^4.0.0", + "@npmcli/redact": "^4.0.0", "cacache": "^20.0.1", "http-cache-semantics": "^4.1.1", "minipass": "^7.0.2", @@ -37715,7 +38276,6 @@ "minipass-pipeline": "^1.2.4", "negotiator": "^1.0.0", "proc-log": "^6.0.0", - "promise-retry": "^2.0.1", "ssri": "^13.0.0" }, "dependencies": { @@ -37928,6 +38488,12 @@ "@types/mdast": "^4.0.0" } }, + "mdn-data": { + "version": "2.27.1", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.27.1.tgz", + "integrity": "sha512-9Yubnt3e8A0OKwxYSXyhLymGW4sCufcLG6VdiDdUGVkPhpqLxlvP5vl1983gQjJl3tqbrM731mjaZaP68AgosQ==", + "dev": true + }, "mdurl": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-2.0.0.tgz", @@ -37945,11 +38511,19 @@ "dev": true }, "memfs": { - "version": "4.52.0", - "resolved": "https://registry.npmjs.org/memfs/-/memfs-4.52.0.tgz", - "integrity": "sha512-dG5ZY1wUCPWhtl4M2mlc7Wx4OrMGtiI79axnScxwDoPR/25biQYrYm21OpKyZcnKv8pvWaX95SRtZgecZ84gFg==", + "version": "4.57.2", + "resolved": "https://registry.npmjs.org/memfs/-/memfs-4.57.2.tgz", + "integrity": "sha512-2nWzSsJzrukurSDna4Z0WywuScK4Id3tSKejgu74u8KCdW4uNrseKRSIDg75C6Yw5ZRqBe0F0EtMNlTbUq8bAQ==", "dev": true, "requires": { + "@jsonjoy.com/fs-core": "4.57.2", + "@jsonjoy.com/fs-fsa": "4.57.2", + "@jsonjoy.com/fs-node": "4.57.2", + "@jsonjoy.com/fs-node-builtins": "4.57.2", + "@jsonjoy.com/fs-node-to-fsa": "4.57.2", + "@jsonjoy.com/fs-node-utils": "4.57.2", + "@jsonjoy.com/fs-print": "4.57.2", + "@jsonjoy.com/fs-snapshot": "4.57.2", "@jsonjoy.com/json-pack": "^1.11.0", "@jsonjoy.com/util": "^1.9.0", "glob-to-regex.js": "^1.0.1", @@ -37985,23 +38559,6 @@ "integrity": "sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==", "dev": true }, - "merge-source-map": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/merge-source-map/-/merge-source-map-1.1.0.tgz", - "integrity": "sha512-Qkcp7P2ygktpMPh2mCQZaf3jhN6D3Z/qVZHSdWvQ+2Ef5HgRAPBO57A77+ENm0CPx2+1Ce/MYKi3ymqdfuqibw==", - "dev": true, - "requires": { - "source-map": "^0.6.1" - }, - "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 - } - } - }, "merge-stream": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", @@ -38347,9 +38904,9 @@ "integrity": "sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA==" }, "mini-css-extract-plugin": { - "version": "2.9.4", - "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.9.4.tgz", - "integrity": "sha512-ZWYT7ln73Hptxqxk2DxPU9MmapXRhxkJD6tkSR04dnQxm8BGu2hzgKLugK5yySD97u/8yy7Ma7E76k9ZdvtjkQ==", + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.10.0.tgz", + "integrity": "sha512-540P2c5dYnJlyJxTaSloliZexv8rji6rY8FhQN+WF/82iHQfA23j/xtJx97L+mXOML27EqksSek/g4eK7jaL3g==", "dev": true, "requires": { "schema-utils": "^4.0.0", @@ -38366,9 +38923,9 @@ } }, "schema-utils": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.3.2.tgz", - "integrity": "sha512-Gn/JaSk/Mt9gYubxTtSn/QCV4em9mpAPiR1rqy/Ocu19u/G9J5WWdNoUT4SiV6mFC3y6cxyFcFwdzPM3FgxGAQ==", + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.3.3.tgz", + "integrity": "sha512-eflK8wEtyOE6+hsaRVPxvUKYCpRgzLqDTb8krvAsRIwOGlHoSgYLgBXoubGgLd2fT41/OUYdb48v4k4WWHQurA==", "dev": true, "requires": { "@types/json-schema": "^7.0.9", @@ -38413,20 +38970,31 @@ } }, "minipass-fetch": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-5.0.0.tgz", - "integrity": "sha512-fiCdUALipqgPWrOVTz9fw0XhcazULXOSU6ie40DDbX1F49p1dBrSRBuswndTx1x3vEb/g0FT7vC4c4C2u/mh3A==", + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-5.0.2.tgz", + "integrity": "sha512-2d0q2a8eCi2IRg/IGubCNRJoYbA1+YPXAzQVRFmB45gdGZafyivnZ5YSEfo3JikbjGxOdntGFvBQGqaSMXlAFQ==", "requires": { - "encoding": "^0.1.13", + "iconv-lite": "^0.7.2", "minipass": "^7.0.3", - "minipass-sized": "^1.0.3", + "minipass-sized": "^2.0.0", "minizlib": "^3.0.1" + }, + "dependencies": { + "iconv-lite": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.7.2.tgz", + "integrity": "sha512-im9DjEDQ55s9fL4EYzOAv0yMqmMBSZp6G0VvFyTMPKWxiSBHUj9NW/qqLmXUwXrrM7AvqSlTCfvqRb0cM8yYqw==", + "optional": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3.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==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.7.tgz", + "integrity": "sha512-TbqTz9cUwWyHS2Dy89P3ocAGUGxKjjLuR9z8w4WUTGAVgEj17/4nhgo2Du56i0Fm3Pm30g4iA8Lcqctc76jCzA==", "requires": { "minipass": "^3.0.0" }, @@ -38470,26 +39038,11 @@ } }, "minipass-sized": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz", - "integrity": "sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/minipass-sized/-/minipass-sized-2.0.0.tgz", + "integrity": "sha512-zSsHhto5BcUVM2m1LurnXY6M//cGhVaegT71OfOXoprxT6o780GZd792ea6FfrQkuU4usHZIUczAQMRUE2plzA==", "requires": { - "minipass": "^3.0.0" - }, - "dependencies": { - "minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "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==" - } + "minipass": "^7.1.2" } }, "minizlib": { @@ -38538,9 +39091,9 @@ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" }, "msgpackr": { - "version": "1.11.8", - "resolved": "https://registry.npmjs.org/msgpackr/-/msgpackr-1.11.8.tgz", - "integrity": "sha512-bC4UGzHhVvgDNS7kn9tV8fAucIYUBuGojcaLiz7v+P63Lmtm0Xeji8B/8tYKddALXxJLpwIeBmUN3u64C4YkRA==", + "version": "1.11.10", + "resolved": "https://registry.npmjs.org/msgpackr/-/msgpackr-1.11.10.tgz", + "integrity": "sha512-iCZNq+HszvF+fC3anCm4nBmWEnbeIAfpDs6IStAEKhQ2YSgkjzVG2FF9XJqwwQh5bH3N9OUTUt4QwVN6MLMLtA==", "dev": true, "optional": true, "requires": { @@ -38638,11 +39191,11 @@ } }, "ng2-charts": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/ng2-charts/-/ng2-charts-8.0.0.tgz", - "integrity": "sha512-nofsNHI2Zt+EAwT+BJBVg0kgOhNo9ukO4CxULlaIi7VwZSr7I1km38kWSoU41Oq6os6qqIh5srnL+CcV+RFPFA==", + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/ng2-charts/-/ng2-charts-10.0.0.tgz", + "integrity": "sha512-mdL75XJrk/0s0YO2ySPQpAHPja85ECDEGNWFlcElJiy/bYliTNGEpeCtctAqZuozTff/E2CwGjyfPFM1ScP2og==", "requires": { - "lodash-es": "^4.17.15", + "es-toolkit": "^1.39.7", "tslib": "^2.3.0" } }, @@ -38669,40 +39222,39 @@ "dev": true, "optional": true }, - "node-forge": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.2.tgz", - "integrity": "sha512-6xKiQ+cph9KImrRh0VsjH2d8/GXA4FIMlgU4B757iI1ApvcyA9VlouP0yZJha01V+huImO+kKMU7ih+2+E14fw==", - "dev": true - }, "node-gyp": { - "version": "12.1.0", - "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-12.1.0.tgz", - "integrity": "sha512-W+RYA8jBnhSr2vrTtlPYPc1K+CSjGpVDRZxcqJcERZ8ND3A1ThWPHRwctTx3qC3oW99jt726jhdz3Y6ky87J4g==", + "version": "12.3.0", + "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-12.3.0.tgz", + "integrity": "sha512-QNcUWM+HgJplcPzBvFBZ9VXacyGZ4+VTOb80PwWR+TlVzoHbRKULNEzpRsnaoxG3Wzr7Qh7BYxGDU3CbKib2Yg==", "requires": { "env-paths": "^2.2.0", "exponential-backoff": "^3.1.1", "graceful-fs": "^4.2.6", - "make-fetch-happen": "^15.0.0", "nopt": "^9.0.0", "proc-log": "^6.0.0", "semver": "^7.3.5", - "tar": "^7.5.2", + "tar": "^7.5.4", "tinyglobby": "^0.2.12", + "undici": "^6.25.0", "which": "^6.0.0" }, "dependencies": { "isexe": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz", - "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==" + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-4.0.0.tgz", + "integrity": "sha512-FFUtZMpoZ8RqHS3XeXEmHWLA4thH+ZxCv2lOiPIn1Xc7CxrqhWzNSDzD+/chS/zbYezmiwWLdQC09JdQKmthOw==" + }, + "undici": { + "version": "6.25.0", + "resolved": "https://registry.npmjs.org/undici/-/undici-6.25.0.tgz", + "integrity": "sha512-ZgpWDC5gmNiuY9CnLVXEH8rl50xhRCuLNA97fAUnKi8RRuV4E6KG31pDTsLVUKnohJE0I3XDrTeEydAXRw47xg==" }, "which": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/which/-/which-6.0.0.tgz", - "integrity": "sha512-f+gEpIKMR9faW/JgAgPK1D7mekkFoqbmiwvNzuhsHetni20QSgzg9Vhn0g2JSJkkfehQnqdUAx7/e15qS1lPxg==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/which/-/which-6.0.1.tgz", + "integrity": "sha512-oGLe46MIrCRqX7ytPUf66EAYvdeMIZYn3WaocqqKZAxrBpkqHfL/qvTyJ/bTk5+AqHCjXmrv3CEWgy368zhRUg==", "requires": { - "isexe": "^3.1.1" + "isexe": "^4.0.0" } } } @@ -38769,9 +39321,9 @@ } }, "npm-packlist": { - "version": "10.0.3", - "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-10.0.3.tgz", - "integrity": "sha512-zPukTwJMOu5X5uvm0fztwS5Zxyvmk38H/LfidkOMt3gbZVCyro2cD/ETzwzVPcWZA3JOyPznfUN/nkyFiyUbxg==", + "version": "10.0.4", + "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-10.0.4.tgz", + "integrity": "sha512-uMW73iajD8hiH4ZBxEV3HC+eTnppIqwakjOYuvgddnalIw2lJguKviK1pcUJDlIWm1wSJkchpDZDSVVsZEYRng==", "requires": { "ignore-walk": "^8.0.0", "proc-log": "^6.0.0" @@ -38919,6 +39471,12 @@ "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==", "dev": true }, + "obug": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/obug/-/obug-2.1.1.tgz", + "integrity": "sha512-uTqF9MuPraAQ+IsnPf366RG4cP9RtUi7MLO1N3KEc+wb0a6yKpeL0lmk2IB1jY5KHPAlTc6T/JRdC/YqxHNwkQ==", + "dev": true + }, "on-finished": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", @@ -38989,9 +39547,9 @@ } }, "openapi-explorer": { - "version": "2.4.788", - "resolved": "https://registry.npmjs.org/openapi-explorer/-/openapi-explorer-2.4.788.tgz", - "integrity": "sha512-463tX2LYtyYJ8Jwgpi2U/Dan7rwfLZm+Ev8K/VZ01O84vyDpo14146jhnJnaMeU9tzmpPNmXrEiK609M1WeAVw==", + "version": "2.4.793", + "resolved": "https://registry.npmjs.org/openapi-explorer/-/openapi-explorer-2.4.793.tgz", + "integrity": "sha512-6dT+8tKRPKFtfeYsyr5Jkq20H04eZKBXA6t93kofym0DLnpK4Mr/JT7Bv2aGFd5h3MyFOjrLpfNvq7x6oHvNaA==", "requires": { "@authress/login": "^2.0", "base64url": "^3.0.1", @@ -39007,6 +39565,7 @@ "openapi-resolver": "^4.1.71", "prismjs": "^1.29.0", "randexp": "^0.5.3", + "toposort": "^2.0.2", "xml-but-prettier": "^1.0.1" }, "dependencies": { @@ -39173,9 +39732,9 @@ } }, "pacote": { - "version": "21.0.4", - "resolved": "https://registry.npmjs.org/pacote/-/pacote-21.0.4.tgz", - "integrity": "sha512-RplP/pDW0NNNDh3pnaoIWYPvNenS7UqMbXyvMqJczosiFWTeGGwJC2NQBLqKf4rGLFfwCOnntw1aEp9Jiqm1MA==", + "version": "21.3.1", + "resolved": "https://registry.npmjs.org/pacote/-/pacote-21.3.1.tgz", + "integrity": "sha512-O0EDXi85LF4AzdjG74GUwEArhdvawi/YOHcsW6IijKNj7wm8IvEWNF5GnfuxNpQ/ZpO3L37+v8hqdVh8GgWYhg==", "requires": { "@npmcli/git": "^7.0.0", "@npmcli/installed-package-contents": "^4.0.0", @@ -39317,7 +39876,8 @@ "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==" + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true }, "path-to-regexp": { "version": "0.1.13", @@ -39325,6 +39885,12 @@ "integrity": "sha512-A/AGNMFN3c8bOlvV9RreMdrv7jsmF9XIfDeCd87+I8RNg6s78BhJxMu69NEMHBSJFxKidViTEdruRwEk/WIKqA==", "dev": true }, + "pathe": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz", + "integrity": "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==", + "dev": true + }, "picocolors": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", @@ -39340,7 +39906,8 @@ "version": "4.0.1", "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", - "dev": true + "dev": true, + "optional": true }, "piscina": { "version": "5.1.4", @@ -39356,6 +39923,20 @@ "resolved": "https://registry.npmjs.org/pkce-challenge/-/pkce-challenge-5.0.1.tgz", "integrity": "sha512-wQ0b/W4Fr01qtpHlqSqspcj3EhBvimsdh0KlHhH8HRZnMsEa0ea2fTULOXOS9ccQr3om+GcGRk4e+isrZWV8qQ==" }, + "pkijs": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/pkijs/-/pkijs-3.4.0.tgz", + "integrity": "sha512-emEcLuomt2j03vxD54giVB4SxTjnsqkU692xZOZXHDVoYyypEm+b3jpiTcc+Cf+myooc+/Ly0z01jqeNHVgJGw==", + "dev": true, + "requires": { + "@noble/hashes": "1.4.0", + "asn1js": "^3.0.6", + "bytestreamjs": "^2.0.1", + "pvtsutils": "^1.3.6", + "pvutils": "^1.1.3", + "tslib": "^2.8.1" + } + }, "portfinder": { "version": "1.0.32", "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.32.tgz", @@ -39391,9 +39972,9 @@ "dev": true }, "postcss": { - "version": "8.5.6", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz", - "integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==", + "version": "8.5.12", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.12.tgz", + "integrity": "sha512-W62t/Se6rA0Az3DfCL0AqJwXuKwBeYg6nOaIgzP+xZ7N5BFCI7DYi1qs6ygUYT6rvfi6t9k65UMLJC+PHZpDAA==", "dev": true, "requires": { "nanoid": "^3.3.11", @@ -39453,10 +40034,16 @@ "icss-utils": "^5.0.0" } }, + "postcss-safe-parser": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/postcss-safe-parser/-/postcss-safe-parser-7.0.1.tgz", + "integrity": "sha512-0AioNCJZ2DPYz5ABT6bddIqlhgwhpHZ/l65YAYo0BCIn0xiDpsnTHz0gnoTGk0OXZW0JRs+cDwL8u/teRdz+8A==", + "dev": true + }, "postcss-selector-parser": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.0.tgz", - "integrity": "sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.1.tgz", + "integrity": "sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg==", "dev": true, "requires": { "cssesc": "^3.0.0", @@ -39735,9 +40322,9 @@ "optional": true }, "punycode": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", - "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", "dev": true }, "punycode.js": { @@ -39745,10 +40332,19 @@ "resolved": "https://registry.npmjs.org/punycode.js/-/punycode.js-2.3.1.tgz", "integrity": "sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==" }, - "qjobs": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/qjobs/-/qjobs-1.2.0.tgz", - "integrity": "sha512-8YOJEHtxpySA3fFDyCRxA+UUV+fA+rTWnuWvylOK/NCjhY+b4ocCtmu8TtsWb+mYeU+GCHf/S66KZF/AsteKHg==", + "pvtsutils": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/pvtsutils/-/pvtsutils-1.3.6.tgz", + "integrity": "sha512-PLgQXQ6H2FWCaeRak8vvk1GW462lMxB5s3Jm673N82zI4vqtVUPuZdffdZbPDFRoU8kAhItWFtPCWiPpp4/EDg==", + "dev": true, + "requires": { + "tslib": "^2.8.1" + } + }, + "pvutils": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/pvutils/-/pvutils-1.1.5.tgz", + "integrity": "sha512-KTqnxsgGiQ6ZAzZCVlJH5eOjSnvlyEgx1m8bkRJfOhmGRqfo5KLvmAlACQkrjEtOQ4B7wF9TdSLIs9O90MX9xA==", "dev": true }, "qr-creator": { @@ -39773,15 +40369,6 @@ "ret": "^0.2.0" } }, - "randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "dev": true, - "requires": { - "safe-buffer": "^5.1.0" - } - }, "range-parser": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", @@ -39797,38 +40384,17 @@ "http-errors": "~2.0.1", "iconv-lite": "~0.4.24", "unpipe": "~1.0.0" - }, - "dependencies": { - "http-errors": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.1.tgz", - "integrity": "sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ==", - "dev": true, - "requires": { - "depd": "~2.0.0", - "inherits": "~2.0.4", - "setprototypeof": "~1.2.0", - "statuses": "~2.0.2", - "toidentifier": "~1.0.1" - } - }, - "statuses": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.2.tgz", - "integrity": "sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==", - "dev": true - } } }, "react": { - "version": "19.2.4", - "resolved": "https://registry.npmjs.org/react/-/react-19.2.4.tgz", - "integrity": "sha512-9nfp2hYpCwOjAN+8TZFGhtWEwgvWHXqESH8qT89AT/lWklpLON22Lc8pEtnpsZz7VmawabSU0gCjnj8aC0euHQ==" + "version": "19.2.5", + "resolved": "https://registry.npmjs.org/react/-/react-19.2.5.tgz", + "integrity": "sha512-llUJLzz1zTUBrskt2pwZgLq59AemifIftw4aB7JxOqf1HY2FDaGDxgwpAPVzHU1kdWabH7FauP4i1oEeer2WCA==" }, "react-dom": { - "version": "19.2.4", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.2.4.tgz", - "integrity": "sha512-AXJdLo8kgMbimY95O2aKQqsz2iWi9jMgKJhRBAxECE4IFxfcazB2LmzloIoibJI3C12IlY20+KFaLv+71bUJeQ==", + "version": "19.2.5", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.2.5.tgz", + "integrity": "sha512-J5bAZz+DXMMwW/wV3xzKke59Af6CHY7G4uYLN1OvBcKEsWOs4pQExj86BBKamxl/Ik5bx9whOrvBlSDfWzgSag==", "requires": { "scheduler": "^0.27.0" } @@ -39999,9 +40565,9 @@ "dev": true }, "regjsparser": { - "version": "0.13.0", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.13.0.tgz", - "integrity": "sha512-NZQZdC5wOE/H3UT28fVGL+ikOZcEzfMGk/c3iN9UGxzWHMa1op7274oyiUVrAG4B2EuFhus8SvkaYnhvW92p9Q==", + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.13.1.tgz", + "integrity": "sha512-dLsljMd9sqwRkby8zhO1gSg3PnJIBFid8f4CQj/sXx+7cKx+E7u0PKhZ+U4wmhx7EfmtvnA318oVaIkAB1lRJw==", "dev": true, "requires": { "jsesc": "~3.1.0" @@ -40128,6 +40694,7 @@ "version": "1.22.11", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.11.tgz", "integrity": "sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ==", + "dev": true, "requires": { "is-core-module": "^2.16.1", "path-parse": "^1.0.7", @@ -40211,85 +40778,60 @@ "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.4.1.tgz", "integrity": "sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==" }, - "rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "requires": { - "glob": "^7.1.3" - }, - "dependencies": { - "glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - } - } - }, "rolldown": { - "version": "1.0.0-beta.58", - "resolved": "https://registry.npmjs.org/rolldown/-/rolldown-1.0.0-beta.58.tgz", - "integrity": "sha512-v1FCjMZCan7f+xGAHBi+mqiE4MlH7I+SXEHSQSJoMOGNNB2UYtvMiejsq9YuUOiZjNeUeV/a21nSFbrUR+4ZCQ==", + "version": "1.0.0-rc.4", + "resolved": "https://registry.npmjs.org/rolldown/-/rolldown-1.0.0-rc.4.tgz", + "integrity": "sha512-V2tPDUrY3WSevrvU2E41ijZlpF+5PbZu4giH+VpNraaadsJGHa4fR6IFwsocVwEXDoAdIv5qgPPxgrvKAOIPtA==", "dev": true, "requires": { - "@oxc-project/types": "=0.106.0", - "@rolldown/binding-android-arm64": "1.0.0-beta.58", - "@rolldown/binding-darwin-arm64": "1.0.0-beta.58", - "@rolldown/binding-darwin-x64": "1.0.0-beta.58", - "@rolldown/binding-freebsd-x64": "1.0.0-beta.58", - "@rolldown/binding-linux-arm-gnueabihf": "1.0.0-beta.58", - "@rolldown/binding-linux-arm64-gnu": "1.0.0-beta.58", - "@rolldown/binding-linux-arm64-musl": "1.0.0-beta.58", - "@rolldown/binding-linux-x64-gnu": "1.0.0-beta.58", - "@rolldown/binding-linux-x64-musl": "1.0.0-beta.58", - "@rolldown/binding-openharmony-arm64": "1.0.0-beta.58", - "@rolldown/binding-wasm32-wasi": "1.0.0-beta.58", - "@rolldown/binding-win32-arm64-msvc": "1.0.0-beta.58", - "@rolldown/binding-win32-x64-msvc": "1.0.0-beta.58", - "@rolldown/pluginutils": "1.0.0-beta.58" + "@oxc-project/types": "=0.113.0", + "@rolldown/binding-android-arm64": "1.0.0-rc.4", + "@rolldown/binding-darwin-arm64": "1.0.0-rc.4", + "@rolldown/binding-darwin-x64": "1.0.0-rc.4", + "@rolldown/binding-freebsd-x64": "1.0.0-rc.4", + "@rolldown/binding-linux-arm-gnueabihf": "1.0.0-rc.4", + "@rolldown/binding-linux-arm64-gnu": "1.0.0-rc.4", + "@rolldown/binding-linux-arm64-musl": "1.0.0-rc.4", + "@rolldown/binding-linux-x64-gnu": "1.0.0-rc.4", + "@rolldown/binding-linux-x64-musl": "1.0.0-rc.4", + "@rolldown/binding-openharmony-arm64": "1.0.0-rc.4", + "@rolldown/binding-wasm32-wasi": "1.0.0-rc.4", + "@rolldown/binding-win32-arm64-msvc": "1.0.0-rc.4", + "@rolldown/binding-win32-x64-msvc": "1.0.0-rc.4", + "@rolldown/pluginutils": "1.0.0-rc.4" } }, "rollup": { - "version": "4.59.0", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.59.0.tgz", - "integrity": "sha512-2oMpl67a3zCH9H79LeMcbDhXW/UmWG/y2zuqnF2jQq5uq9TbM9TVyXvA4+t+ne2IIkBdrLpAaRQAvo7YI/Yyeg==", + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.60.2.tgz", + "integrity": "sha512-J9qZyW++QK/09NyN/zeO0dG/1GdGfyp9lV8ajHnRVLfo/uFsbji5mHnDgn/qYdUHyCkM2N+8VyspgZclfAh0eQ==", "dev": true, "requires": { - "@rollup/rollup-android-arm-eabi": "4.59.0", - "@rollup/rollup-android-arm64": "4.59.0", - "@rollup/rollup-darwin-arm64": "4.59.0", - "@rollup/rollup-darwin-x64": "4.59.0", - "@rollup/rollup-freebsd-arm64": "4.59.0", - "@rollup/rollup-freebsd-x64": "4.59.0", - "@rollup/rollup-linux-arm-gnueabihf": "4.59.0", - "@rollup/rollup-linux-arm-musleabihf": "4.59.0", - "@rollup/rollup-linux-arm64-gnu": "4.59.0", - "@rollup/rollup-linux-arm64-musl": "4.59.0", - "@rollup/rollup-linux-loong64-gnu": "4.59.0", - "@rollup/rollup-linux-loong64-musl": "4.59.0", - "@rollup/rollup-linux-ppc64-gnu": "4.59.0", - "@rollup/rollup-linux-ppc64-musl": "4.59.0", - "@rollup/rollup-linux-riscv64-gnu": "4.59.0", - "@rollup/rollup-linux-riscv64-musl": "4.59.0", - "@rollup/rollup-linux-s390x-gnu": "4.59.0", - "@rollup/rollup-linux-x64-gnu": "4.59.0", - "@rollup/rollup-linux-x64-musl": "4.59.0", - "@rollup/rollup-openbsd-x64": "4.59.0", - "@rollup/rollup-openharmony-arm64": "4.59.0", - "@rollup/rollup-win32-arm64-msvc": "4.59.0", - "@rollup/rollup-win32-ia32-msvc": "4.59.0", - "@rollup/rollup-win32-x64-gnu": "4.59.0", - "@rollup/rollup-win32-x64-msvc": "4.59.0", + "@rollup/rollup-android-arm-eabi": "4.60.2", + "@rollup/rollup-android-arm64": "4.60.2", + "@rollup/rollup-darwin-arm64": "4.60.2", + "@rollup/rollup-darwin-x64": "4.60.2", + "@rollup/rollup-freebsd-arm64": "4.60.2", + "@rollup/rollup-freebsd-x64": "4.60.2", + "@rollup/rollup-linux-arm-gnueabihf": "4.60.2", + "@rollup/rollup-linux-arm-musleabihf": "4.60.2", + "@rollup/rollup-linux-arm64-gnu": "4.60.2", + "@rollup/rollup-linux-arm64-musl": "4.60.2", + "@rollup/rollup-linux-loong64-gnu": "4.60.2", + "@rollup/rollup-linux-loong64-musl": "4.60.2", + "@rollup/rollup-linux-ppc64-gnu": "4.60.2", + "@rollup/rollup-linux-ppc64-musl": "4.60.2", + "@rollup/rollup-linux-riscv64-gnu": "4.60.2", + "@rollup/rollup-linux-riscv64-musl": "4.60.2", + "@rollup/rollup-linux-s390x-gnu": "4.60.2", + "@rollup/rollup-linux-x64-gnu": "4.60.2", + "@rollup/rollup-linux-x64-musl": "4.60.2", + "@rollup/rollup-openbsd-x64": "4.60.2", + "@rollup/rollup-openharmony-arm64": "4.60.2", + "@rollup/rollup-win32-arm64-msvc": "4.60.2", + "@rollup/rollup-win32-ia32-msvc": "4.60.2", + "@rollup/rollup-win32-x64-gnu": "4.60.2", + "@rollup/rollup-win32-x64-msvc": "4.60.2", "@types/estree": "1.0.8", "fsevents": "~2.3.2" } @@ -40354,9 +40896,9 @@ } }, "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", "dev": true }, "safe-push-apply": { @@ -40386,9 +40928,9 @@ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, "sass": { - "version": "1.97.1", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.97.1.tgz", - "integrity": "sha512-uf6HoO8fy6ClsrShvMgaKUn14f2EHQLQRtpsZZLeU/Mv0Q1K5P0+x2uvH6Cub39TVVbWNSrraUhDAoFph6vh0A==", + "version": "1.97.3", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.97.3.tgz", + "integrity": "sha512-fDz1zJpd5GycprAbu4Q2PV/RprsRtKC/0z82z0JLgdytmcq0+ujJbJ/09bPGDxCLkKY3Np5cRAOcWiVkLXJURg==", "dev": true, "requires": { "@parcel/watcher": "^2.4.1", @@ -40415,9 +40957,9 @@ } }, "sass-loader": { - "version": "16.0.6", - "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-16.0.6.tgz", - "integrity": "sha512-sglGzId5gmlfxNs4gK2U3h7HlVRfx278YK6Ono5lwzuvi1jxig80YiuHkaDBVsYIKFhx8wN7XSCI0M2IDS/3qA==", + "version": "16.0.7", + "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-16.0.7.tgz", + "integrity": "sha512-w6q+fRHourZ+e+xA1kcsF27iGM6jdB8teexYCfdUw0sYgcDNeZESnDNT9sUmmPm3ooziwUJXGwZJSTF3kOdBfA==", "dev": true, "requires": { "neo-async": "^2.6.2" @@ -40430,42 +40972,20 @@ "dev": true, "optional": true }, + "saxes": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/saxes/-/saxes-6.0.0.tgz", + "integrity": "sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==", + "dev": true, + "requires": { + "xmlchars": "^2.2.0" + } + }, "scheduler": { "version": "0.27.0", "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.27.0.tgz", "integrity": "sha512-eNv+WrVbKu1f3vbYJT/xtiF5syA5HPIMtf9IgY/nKg0sWqzAUEvqY/xm7OcZc/qafLx/iO9FgOmeSAp4v5ti/Q==" }, - "schema-utils": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz", - "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==", - "dev": true, - "requires": { - "@types/json-schema": "^7.0.5", - "ajv": "^6.12.4", - "ajv-keywords": "^3.5.2" - }, - "dependencies": { - "ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "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 - } - } - }, "screenfull": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/screenfull/-/screenfull-6.0.2.tgz", @@ -40483,13 +41003,13 @@ "dev": true }, "selfsigned": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.4.1.tgz", - "integrity": "sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-5.5.0.tgz", + "integrity": "sha512-ftnu3TW4+3eBfLRFnDEkzGxSF/10BJBkaLJuBHZX0kiPS7bRdlpZGu6YGt4KngMkdTwJE6MbjavFpqHvqVt+Ew==", "dev": true, "requires": { - "@types/node-forge": "^1.3.0", - "node-forge": "^1" + "@peculiar/x509": "^1.14.2", + "pkijs": "^3.3.3" } }, "semver": { @@ -40498,24 +41018,24 @@ "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==" }, "send": { - "version": "0.19.0", - "resolved": "https://registry.npmjs.org/send/-/send-0.19.0.tgz", - "integrity": "sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==", + "version": "0.19.2", + "resolved": "https://registry.npmjs.org/send/-/send-0.19.2.tgz", + "integrity": "sha512-VMbMxbDeehAxpOtWJXlcUS5E8iXh6QmN+BkRX1GARS3wRaXEEgzCcB10gTQazO42tpNIya8xIyNx8fll1OFPrg==", "dev": true, "requires": { "debug": "2.6.9", "depd": "2.0.0", "destroy": "1.2.0", - "encodeurl": "~1.0.2", + "encodeurl": "~2.0.0", "escape-html": "~1.0.3", "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "2.0.0", + "fresh": "~0.5.2", + "http-errors": "~2.0.1", "mime": "1.6.0", "ms": "2.1.3", - "on-finished": "2.4.1", + "on-finished": "~2.4.1", "range-parser": "~1.2.1", - "statuses": "2.0.1" + "statuses": "~2.0.2" }, "dependencies": { "debug": { @@ -40535,6 +41055,12 @@ } } }, + "encodeurl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", + "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", + "dev": true + }, "mime": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", @@ -40544,27 +41070,24 @@ } }, "serialize-javascript": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz", - "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==", - "dev": true, - "requires": { - "randombytes": "^2.1.0" - } + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-7.0.5.tgz", + "integrity": "sha512-F4LcB0UqUl1zErq+1nYEEzSHJnIwb3AF2XWB94b+afhrekOUijwooAYqFyRbjYkm2PAKBabx6oYv/xDxNi8IBw==", + "dev": true }, "serve-index": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", - "integrity": "sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==", + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.2.tgz", + "integrity": "sha512-KDj11HScOaLmrPxl70KYNW1PksP4Nb/CLL2yvC+Qd2kHMPEEpfc4Re2e4FOay+bC/+XQl/7zAcWON3JVo5v3KQ==", "dev": true, "requires": { - "accepts": "~1.3.4", + "accepts": "~1.3.8", "batch": "0.6.1", "debug": "2.6.9", "escape-html": "~1.0.3", - "http-errors": "~1.6.2", - "mime-types": "~2.1.17", - "parseurl": "~1.3.2" + "http-errors": "~1.8.0", + "mime-types": "~2.1.35", + "parseurl": "~1.3.3" }, "dependencies": { "debug": { @@ -40583,35 +41106,24 @@ "dev": true }, "http-errors": { - "version": "1.6.3", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", - "integrity": "sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==", + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz", + "integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==", "dev": true, "requires": { "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.0", - "statuses": ">= 1.4.0 < 2" + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.1" } }, - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", - "dev": true - }, "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", "dev": true }, - "setprototypeof": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", - "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", - "dev": true - }, "statuses": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", @@ -40621,15 +41133,15 @@ } }, "serve-static": { - "version": "1.16.2", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.2.tgz", - "integrity": "sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==", + "version": "1.16.3", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.3.tgz", + "integrity": "sha512-x0RTqQel6g5SY7Lg6ZreMmsOzncHFU7nhnRWkKgWuMTu5NN0DR5oruckMqRvacAN9d5w6ARnRBXl9xhDCgfMeA==", "dev": true, "requires": { "encodeurl": "~2.0.0", "escape-html": "~1.0.3", "parseurl": "~1.3.3", - "send": "0.19.0" + "send": "~0.19.1" }, "dependencies": { "encodeurl": { @@ -40759,6 +41271,12 @@ "side-channel-map": "^1.0.1" } }, + "siginfo": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/siginfo/-/siginfo-2.0.0.tgz", + "integrity": "sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==", + "dev": true + }, "sigstore": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/sigstore/-/sigstore-4.1.0.tgz", @@ -40816,41 +41334,6 @@ "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==" }, - "socket.io": { - "version": "4.8.1", - "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.8.1.tgz", - "integrity": "sha512-oZ7iUCxph8WYRHHcjBEc9unw3adt5CmSNlppj/5Q4k2RIrhl8Z5yY2Xr4j9zj0+wzVZ0bxmYoGSzKJnRl6A4yg==", - "dev": true, - "requires": { - "accepts": "~1.3.4", - "base64id": "~2.0.0", - "cors": "~2.8.5", - "debug": "~4.3.2", - "engine.io": "~6.6.0", - "socket.io-adapter": "~2.5.2", - "socket.io-parser": "~4.2.4" - } - }, - "socket.io-adapter": { - "version": "2.5.5", - "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.5.5.tgz", - "integrity": "sha512-eLDQas5dzPgOWCk9GuuJC2lBqItuhKI4uxGgo9aIV7MYbk2h9Q6uULEh8WBzThoI7l+qU9Ast9fVUmkqPP9wYg==", - "dev": true, - "requires": { - "debug": "~4.3.4", - "ws": "~8.17.1" - } - }, - "socket.io-parser": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.2.4.tgz", - "integrity": "sha512-/GbIKmo8ioc+NIWIhwdecY0ge+qVBSMdgxGygevmdHj24bsfgtCmcUUcQ5ZzcylGFHsN3k4HB4Cgkl96KVnuew==", - "dev": true, - "requires": { - "@socket.io/component-emitter": "~3.1.0", - "debug": "~4.3.1" - } - }, "sockjs": { "version": "0.3.24", "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.24.tgz", @@ -41029,33 +41512,24 @@ "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz", "integrity": "sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==" }, - "spdx-correct": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", - "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", - "requires": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" - } - }, "spdx-exceptions": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz", "integrity": "sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==" }, "spdx-expression-parse": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", - "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-4.0.0.tgz", + "integrity": "sha512-Clya5JIij/7C6bRR22+tnGXbc4VKlibKSVj2iHvVeX5iMW7s1SIQlqu699JkODJJIhh/pUu8L0/VLh8xflD+LQ==", "requires": { "spdx-exceptions": "^2.1.0", "spdx-license-ids": "^3.0.0" } }, "spdx-license-ids": { - "version": "3.0.22", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.22.tgz", - "integrity": "sha512-4PRT4nh1EImPbt2jASOKHX7PB7I+e4IWNLvkKFDxNhJlfjbYlleYQh285Z/3mPTHSAK/AvdMmw5BNNuYH8ShgQ==" + "version": "3.0.23", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.23.tgz", + "integrity": "sha512-CWLcCCH7VLu13TgOH+r8p1O/Znwhqv/dbb6lqWy67G+pT1kHmeD/+V36AVb/vq8QMIQwVShJ6Ssl5FPh0fuSdw==" }, "spdy": { "version": "4.0.2", @@ -41090,23 +41564,35 @@ "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==" }, "ssri": { - "version": "13.0.0", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-13.0.0.tgz", - "integrity": "sha512-yizwGBpbCn4YomB2lzhZqrHLJoqFGXihNbib3ozhqF/cIp5ue+xSmOQrjNasEE62hFxsCcg/V/z23t4n8jMEng==", + "version": "13.0.1", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-13.0.1.tgz", + "integrity": "sha512-QUiRf1+u9wPTL/76GTYlKttDEBWV1ga9ZXW8BG6kfdeyyM8LGPix9gROyg9V2+P0xNyF3X2Go526xKFdMZrHSQ==", "requires": { "minipass": "^7.0.3" } }, + "stackback": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/stackback/-/stackback-0.0.2.tgz", + "integrity": "sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==", + "dev": true + }, "statuses": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", - "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.2.tgz", + "integrity": "sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==" + }, + "std-env": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/std-env/-/std-env-4.1.0.tgz", + "integrity": "sha512-Rq7ybcX2RuC55r9oaPVEW7/xu3tj8u4GeBYHBWCychFtzMIr86A7e3PPEBPT37sHStKX3+TiX/Fr/ACmJLVlLQ==", "dev": true }, "stdin-discarder": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/stdin-discarder/-/stdin-discarder-0.2.2.tgz", - "integrity": "sha512-UhDfHmA92YAlNnCfhmq0VeNL5bDbiZGg7sZ2IvPsXubGkiNa9EC+tUTsjBRsYUAz87btI6/1wf4XoVvQ3uRnmQ==" + "integrity": "sha512-UhDfHmA92YAlNnCfhmq0VeNL5bDbiZGg7sZ2IvPsXubGkiNa9EC+tUTsjBRsYUAz87btI6/1wf4XoVvQ3uRnmQ==", + "dev": true }, "stimulus-use": { "version": "0.52.3", @@ -41123,24 +41609,13 @@ "internal-slot": "^1.1.0" } }, - "streamroller": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/streamroller/-/streamroller-3.1.5.tgz", - "integrity": "sha512-KFxaM7XT+irxvdqSP1LGLgNWbYN7ay5owZ3r/8t77p+EtSUAfUgtl7be3xtqtOmGUl9K9YPO2ca8133RlTjvKw==", - "dev": true, - "requires": { - "date-format": "^4.0.14", - "debug": "^4.3.4", - "fs-extra": "^8.1.0" - } - }, "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", "dev": true, "requires": { - "safe-buffer": "~5.1.0" + "safe-buffer": "~5.2.0" } }, "string-width": { @@ -41318,7 +41793,14 @@ "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==" + "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", + "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", + "dev": true }, "tabbable": { "version": "6.2.0", @@ -41334,15 +41816,15 @@ } }, "tapable": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.3.0.tgz", - "integrity": "sha512-g9ljZiwki/LfxmQADO3dEY1CbpmXT5Hm2fJ+QaGKwSXUylMybePR7/67YW7jOrrvjEgL1Fmz5kzyAjWVWLlucg==", + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.3.3.tgz", + "integrity": "sha512-uxc/zpqFg6x7C8vOE7lh6Lbda8eEL9zmVm/PLeTPBRhh1xCgdWaQ+J1CUieGpIfm2HdtsUpRv+HshiasBMcc6A==", "dev": true }, "tar": { - "version": "7.5.11", - "resolved": "https://registry.npmjs.org/tar/-/tar-7.5.11.tgz", - "integrity": "sha512-ChjMH33/KetonMTAtpYdgUFr0tbz69Fp2v7zWxQfYZX4g5ZN2nOBXm1R2xyA+lMIKrLKIoKAwFj93jE/avX9cQ==", + "version": "7.5.13", + "resolved": "https://registry.npmjs.org/tar/-/tar-7.5.13.tgz", + "integrity": "sha512-tOG/7GyXpFevhXVh8jOPJrmtRpOTsYqUIkVdVooZYJS/z8WhfQUX8RJILmeuJNinGAMSu1veBr4asSHFt5/hng==", "requires": { "@isaacs/fs-minipass": "^4.0.0", "chownr": "^3.0.0", @@ -41359,9 +41841,9 @@ } }, "terser": { - "version": "5.44.1", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.44.1.tgz", - "integrity": "sha512-t/R3R/n0MSwnnazuPpPNVO60LX0SKL45pyl9YlvxIdkH0Of7D5qM2EVe+yASRIlY5pZ73nclYJfNANGWPwFDZw==", + "version": "5.46.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.46.0.tgz", + "integrity": "sha512-jTwoImyr/QbOWFFso3YoU3ik0jBBDJ6JTOQiy/J2YxVJdZCc+5u7skhNwiOR3FQIygFqVUPHl7qbbxtjW2K3Qg==", "dev": true, "requires": { "@jridgewell/source-map": "^0.3.3", @@ -41371,15 +41853,14 @@ } }, "terser-webpack-plugin": { - "version": "5.3.16", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.16.tgz", - "integrity": "sha512-h9oBFCWrq78NyWWVcSwZarJkZ01c2AyGrzs1crmHZO3QUg9D61Wu4NPjBy69n7JqylFF5y+CsUZYmYEIZ3mR+Q==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.5.0.tgz", + "integrity": "sha512-UYhptBwhWvfIjKd/UuFo6D8uq9xpGLDK+z8EDsj/zWhrTaH34cKEbrkMKfV5YWqGBvAYA3tlzZbs2R+qYrbQJA==", "dev": true, "requires": { "@jridgewell/trace-mapping": "^0.3.25", "jest-worker": "^27.4.5", "schema-utils": "^4.3.0", - "serialize-javascript": "^6.0.2", "terser": "^5.31.1" }, "dependencies": { @@ -41431,9 +41912,9 @@ } }, "thingies": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/thingies/-/thingies-2.5.0.tgz", - "integrity": "sha512-s+2Bwztg6PhWUD7XMfeYm5qliDdSiZm7M7n8KjTkIsm3l/2lgVRc2/Gx/v+ZX8lT4FMA+i8aQvhcWylldc+ZNw==", + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/thingies/-/thingies-2.6.0.tgz", + "integrity": "sha512-rMHRjmlFLM1R96UYPvpmnc3LYtdFrT33JIB7L9hetGue1qAPfn1N2LJeEjxUSidu1Iku+haLZXDuEXUHNGO/lg==", "dev": true }, "thunky": { @@ -41461,6 +41942,18 @@ "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.3.3.tgz", "integrity": "sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==" }, + "tinybench": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.9.0.tgz", + "integrity": "sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==", + "dev": true + }, + "tinyexec": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-1.1.2.tgz", + "integrity": "sha512-dAqSqE/RabpBKI8+h26GfLq6Vb3JVXs30XYQjdMjaj/c2tS8IYYMbIzP599KtRj7c57/wYApb3QjgRgXmrCukA==", + "dev": true + }, "tinyglobby": { "version": "0.2.15", "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.15.tgz", @@ -41477,10 +41970,25 @@ } } }, - "tmp": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.5.tgz", - "integrity": "sha512-voyz6MApa1rQGUxT3E+BK7/ROe8itEx7vD8/HEvt4xwXucvQ5G5oeEiHkmHZJuBO21RpOf+YYm9MOivj709jow==", + "tinyrainbow": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/tinyrainbow/-/tinyrainbow-3.1.0.tgz", + "integrity": "sha512-Bf+ILmBgretUrdJxzXM0SgXLZ3XfiaUuOj/IKQHuTXip+05Xn+uyEYdVg0kYDipTBcLrCVyUzAPz7QmArb0mmw==", + "dev": true + }, + "tldts": { + "version": "7.0.30", + "resolved": "https://registry.npmjs.org/tldts/-/tldts-7.0.30.tgz", + "integrity": "sha512-ELrFxuqsDdHUwoh0XxDbxuLD3Wnz49Z57IFvTtvWy1hJdcMZjXLIuonjilCiWHlT2GbE4Wlv1wKVTzDFnXH1aw==", + "dev": true, + "requires": { + "tldts-core": "^7.0.30" + } + }, + "tldts-core": { + "version": "7.0.30", + "resolved": "https://registry.npmjs.org/tldts-core/-/tldts-core-7.0.30.tgz", + "integrity": "sha512-uiHN8PIB1VmWyS98eZYja4xzlYqeFZVjb4OuYlJQnZAuJhMw4PbKQOKgHKhBdJR3FE/t5mUQ1Kd80++B+qhD1Q==", "dev": true }, "to-regex-range": { @@ -41505,6 +42013,29 @@ "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==" }, + "toposort": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/toposort/-/toposort-2.0.2.tgz", + "integrity": "sha512-0a5EOkAUp8D4moMi2W8ZF8jcga7BgZd91O/yabJCFY8az+XSzeGyTKs0Aoo897iV1Nj6guFq8orWDS96z91oGg==" + }, + "tough-cookie": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-6.0.1.tgz", + "integrity": "sha512-LktZQb3IeoUWB9lqR5EWTHgW/VTITCXg4D21M+lvybRVdylLrRMnqaIONLVb5mav8vM19m44HIcGq4qASeu2Qw==", + "dev": true, + "requires": { + "tldts": "^7.0.5" + } + }, + "tr46": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-6.0.0.tgz", + "integrity": "sha512-bLVMLPtstlZ4iMQHpFHTR7GAGj2jxi8Dg0s2h2MafAE4uSWF98FC/3MomU51iQAMf8/qDUbKWf5GxuvvVcXEhw==", + "dev": true, + "requires": { + "punycode": "^2.3.1" + } + }, "tree-dump": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/tree-dump/-/tree-dump-1.1.0.tgz", @@ -41543,9 +42074,9 @@ "integrity": "sha512-DZ+sJvBdOluThwCBcCdDnz0NiVeQxEwveL+cmkJGLO1ps+x/D0xwSefmOIa1S7p2nXFHH52ZPr/8VEvxZHaNgg==" }, "ts-api-utils": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.4.0.tgz", - "integrity": "sha512-3TaVTaAv2gTiMB35i3FiGJaRfwb3Pyn/j3m/bfAvGe8FB7CF6u+LMYqYlDh7reQf7UNvoTvdfAqHGmPGOSsPmA==", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.5.0.tgz", + "integrity": "sha512-OJ/ibxhPlqrMM0UiNHJ/0CKQkoKF243/AEmplt3qpRgkW8VG7IfOS41h7V8TjITqdByHzrjcS/2si+y4lIh8NA==", "dev": true }, "ts-node": { @@ -41585,6 +42116,23 @@ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==" }, + "tsyringe": { + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/tsyringe/-/tsyringe-4.10.0.tgz", + "integrity": "sha512-axr3IdNuVIxnaK5XGEUFTu3YmAQ6lllgrvqfEoR16g/HGnYY/6We4oWENtAnzK6/LpJ2ur9PAb80RBt7/U4ugw==", + "dev": true, + "requires": { + "tslib": "^1.9.3" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + } + } + }, "tuf-js": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/tuf-js/-/tuf-js-4.1.0.tgz", @@ -41838,9 +42386,9 @@ "dev": true }, "brace-expansion": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.4.tgz", - "integrity": "sha512-h+DEnpVvxmfVefa4jFbCf5HdH5YMDXRsmKflpf1pILZWRFlTbJpxeU55nJl4Smt5HQaGzg1o6RHFPJaOqnmBDg==", + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.5.tgz", + "integrity": "sha512-VZznLgtwhn+Mact9tfiwx64fA9erHH/MCXEUfB/0bX/6Fz6ny5EGTXYltMocqg4xFAQZtnO3DHWWXi8RiuN7cQ==", "dev": true, "requires": { "balanced-match": "^4.0.2" @@ -41878,12 +42426,6 @@ } } }, - "ua-parser-js": { - "version": "0.7.35", - "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.35.tgz", - "integrity": "sha512-veRf7dawaj9xaWEu9HoTVn5Pggtc/qj+kqTOFvNiN1l0YdxwC1kvel57UCjThjGa3BHBihE8/UJAHI+uQHmd/g==", - "dev": true - }, "uc.micro": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-2.1.0.tgz", @@ -41902,9 +42444,9 @@ } }, "undici": { - "version": "7.20.0", - "resolved": "https://registry.npmjs.org/undici/-/undici-7.20.0.tgz", - "integrity": "sha512-MJZrkjyd7DeC+uPZh+5/YaMDxFiiEEaDgbUSVMXayofAkDWF1088CDo+2RPg7B1BuS1qf1vgNE7xqwPxE0DuSQ==", + "version": "7.24.4", + "resolved": "https://registry.npmjs.org/undici/-/undici-7.24.4.tgz", + "integrity": "sha512-BM/JzwwaRXxrLdElV2Uo6cTLEjhSb3WXboncJamZ15NgUURmvlXvxa6xkwIOILIjPNo9i8ku136ZvWV0Uly8+w==", "dev": true }, "unicode-canonical-property-names-ecmascript": { @@ -41957,22 +42499,6 @@ "qs": "^6.4.0" } }, - "unique-filename": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-5.0.0.tgz", - "integrity": "sha512-2RaJTAvAb4owyjllTfXzFClJ7WsGxlykkPvCr9pA//LD9goVq+m4PPAeBgNodGZ7nSrntT/auWpJ6Y5IFXcfjg==", - "requires": { - "unique-slug": "^6.0.0" - } - }, - "unique-slug": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-6.0.0.tgz", - "integrity": "sha512-4Lup7Ezn8W3d52/xBhZBVdx323ckxa7DEvd9kPQHppTkLoJXw6ltrBCyj5pnrxj0qKDxYMJ56CoxNuFCscdTiw==", - "requires": { - "imurmurhash": "^0.1.4" - } - }, "unist-util-find-after": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/unist-util-find-after/-/unist-util-find-after-5.0.0.tgz", @@ -42025,12 +42551,6 @@ "unist-util-is": "^6.0.0" } }, - "universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", - "dev": true - }, "unpipe": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", @@ -42125,9 +42645,9 @@ } }, "uuid": { - "version": "13.0.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-13.0.0.tgz", - "integrity": "sha512-XQegIaBTVUjSHliKqcnFqYypAd4S+WCYt5NIeRs6w/UAry7z8Y9j5ZwRRL4kzq9U3sD6v+85er9FvkEaBpji2w==" + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-14.0.0.tgz", + "integrity": "sha512-Qo+uWgilfSmAhXCMav1uYFynlQO7fMFiMVZsQqZRMIXp0O7rR7qjkj+cPvBHLgBqi960QCoo/PH2/6ZtVqKvrg==" }, "v8-compile-cache-lib": { "version": "3.0.1", @@ -42135,15 +42655,6 @@ "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", "dev": true }, - "validate-npm-package-license": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", - "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", - "requires": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" - } - }, "validate-npm-package-name": { "version": "7.0.2", "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-7.0.2.tgz", @@ -42182,9 +42693,9 @@ } }, "vite": { - "version": "7.3.0", - "resolved": "https://registry.npmjs.org/vite/-/vite-7.3.0.tgz", - "integrity": "sha512-dZwN5L1VlUBewiP6H9s2+B3e3Jg96D0vzN+Ry73sOefebhYr9f94wwkMNN/9ouoU8pV1BqA1d1zGk8928cx0rg==", + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/vite/-/vite-7.3.2.tgz", + "integrity": "sha512-Bby3NOsna2jsjfLVOHKes8sGwgl4TT0E6vvpYgnAYDIF/tie7MRaFthmKuHx1NSXjiTueXH3do80FMQgvEktRg==", "dev": true, "requires": { "esbuild": "^0.27.0", @@ -42197,18 +42708,57 @@ }, "dependencies": { "picomatch": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", - "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz", + "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==", "dev": true } } }, - "void-elements": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-2.0.1.tgz", - "integrity": "sha512-qZKX4RnBzH2ugr8Lxa7x+0V6XD9Sb/ouARtiasEQCHB1EVU4NXtmHsDDrx1dO4ne5fc3J6EW05BP1Dl0z0iung==", - "dev": true + "vitest": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/vitest/-/vitest-4.1.5.tgz", + "integrity": "sha512-9Xx1v3/ih3m9hN+SbfkUyy0JAs72ap3r7joc87XL6jwF0jGg6mFBvQ1SrwaX+h8BlkX6Hz9shdd1uo6AF+ZGpg==", + "dev": true, + "requires": { + "@vitest/expect": "4.1.5", + "@vitest/mocker": "4.1.5", + "@vitest/pretty-format": "4.1.5", + "@vitest/runner": "4.1.5", + "@vitest/snapshot": "4.1.5", + "@vitest/spy": "4.1.5", + "@vitest/utils": "4.1.5", + "es-module-lexer": "^2.0.0", + "expect-type": "^1.3.0", + "magic-string": "^0.30.21", + "obug": "^2.1.1", + "pathe": "^2.0.3", + "picomatch": "^4.0.3", + "std-env": "^4.0.0-rc.1", + "tinybench": "^2.9.0", + "tinyexec": "^1.0.2", + "tinyglobby": "^0.2.15", + "tinyrainbow": "^3.1.0", + "vite": "^6.0.0 || ^7.0.0 || ^8.0.0", + "why-is-node-running": "^2.3.0" + }, + "dependencies": { + "magic-string": { + "version": "0.30.21", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz", + "integrity": "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==", + "dev": true, + "requires": { + "@jridgewell/sourcemap-codec": "^1.5.5" + } + }, + "picomatch": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz", + "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==", + "dev": true + } + } }, "vscode-css-languageservice": { "version": "6.3.10", @@ -42245,10 +42795,19 @@ "resolved": "https://registry.npmjs.org/w3c-keyname/-/w3c-keyname-2.2.8.tgz", "integrity": "sha512-dpojBhNsCNN7T82Tm7k26A6G9ML3NkhDsnw9n/eoxSRlVBB4CEtIQ/KTCLI2Fwf3ataSXRhYFkQi3SlnFwPvPQ==" }, + "w3c-xmlserializer": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-5.0.0.tgz", + "integrity": "sha512-o8qghlI8NZHU1lLPrpi2+Uq7abh4GGPpYANlalzWxyWteJOCsr/P+oPBA49TOLu5FTZO4d3F9MnWJfiMo4BkmA==", + "dev": true, + "requires": { + "xml-name-validator": "^5.0.0" + } + }, "watchpack": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.5.0.tgz", - "integrity": "sha512-e6vZvY6xboSwLz2GD36c16+O/2Z6fKvIf4pOXptw2rY9MVwE/TXc6RGqxD3I3x0a28lwBY7DE+76uTPSsBrrCA==", + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.5.1.tgz", + "integrity": "sha512-Zn5uXdcFNIA1+1Ei5McRd+iRzfhENPCe7LeABkJtNulSxjma+l7ltNx55BWZkRlwRnpOgHqxnjyaDgJnNXnqzg==", "dev": true, "requires": { "glob-to-regexp": "^0.4.1", @@ -42276,10 +42835,16 @@ "resolved": "https://registry.npmjs.org/web-namespaces/-/web-namespaces-2.0.1.tgz", "integrity": "sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==" }, + "webidl-conversions": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-8.0.1.tgz", + "integrity": "sha512-BMhLD/Sw+GbJC21C/UgyaZX41nPt8bUTg+jWyDeg7e7YN4xOM05YPSIXceACnXVtqyEw/LMClUQMtMZ+PGGpqQ==", + "dev": true + }, "webpack": { - "version": "5.105.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.105.0.tgz", - "integrity": "sha512-gX/dMkRQc7QOMzgTe6KsYFM7DxeIONQSui1s0n/0xht36HvrgbxtM1xBlgx596NbpHuQU8P7QpKwrZYwUX48nw==", + "version": "5.105.2", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.105.2.tgz", + "integrity": "sha512-dRXm0a2qcHPUBEzVk8uph0xWSjV/xZxenQQbLwnwP7caQCYpqG1qddwlyEkIDkYn0K8tvmcrZ+bOrzoQ3HxCDw==", "dev": true, "requires": { "@types/eslint-scope": "^3.7.7", @@ -42351,16 +42916,6 @@ "ajv-formats": "^2.1.1", "ajv-keywords": "^5.1.0" } - }, - "watchpack": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.5.1.tgz", - "integrity": "sha512-Zn5uXdcFNIA1+1Ei5McRd+iRzfhENPCe7LeABkJtNulSxjma+l7ltNx55BWZkRlwRnpOgHqxnjyaDgJnNXnqzg==", - "dev": true, - "requires": { - "glob-to-regexp": "^0.4.1", - "graceful-fs": "^4.1.2" - } } } }, @@ -42403,9 +42958,9 @@ } }, "schema-utils": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.3.2.tgz", - "integrity": "sha512-Gn/JaSk/Mt9gYubxTtSn/QCV4em9mpAPiR1rqy/Ocu19u/G9J5WWdNoUT4SiV6mFC3y6cxyFcFwdzPM3FgxGAQ==", + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.3.3.tgz", + "integrity": "sha512-eflK8wEtyOE6+hsaRVPxvUKYCpRgzLqDTb8krvAsRIwOGlHoSgYLgBXoubGgLd2fT41/OUYdb48v4k4WWHQurA==", "dev": true, "requires": { "@types/json-schema": "^7.0.9", @@ -42417,14 +42972,14 @@ } }, "webpack-dev-server": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-5.2.2.tgz", - "integrity": "sha512-QcQ72gh8a+7JO63TAx/6XZf/CWhgMzu5m0QirvPfGvptOusAxG12w2+aua1Jkjr7hzaWDnJ2n6JFeexMHI+Zjg==", + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-5.2.3.tgz", + "integrity": "sha512-9Gyu2F7+bg4Vv+pjbovuYDhHX+mqdqITykfzdM9UyKqKHlsE5aAjRhR+oOEfXW5vBeu8tarzlJFIZva4ZjAdrQ==", "dev": true, "requires": { "@types/bonjour": "^3.5.13", "@types/connect-history-api-fallback": "^1.5.4", - "@types/express": "^4.17.21", + "@types/express": "^4.17.25", "@types/express-serve-static-core": "^4.17.21", "@types/serve-index": "^1.9.4", "@types/serve-static": "^1.15.5", @@ -42434,9 +42989,9 @@ "bonjour-service": "^1.2.1", "chokidar": "^3.6.0", "colorette": "^2.0.10", - "compression": "^1.7.4", + "compression": "^1.8.1", "connect-history-api-fallback": "^2.0.0", - "express": "^4.21.2", + "express": "^4.22.1", "graceful-fs": "^4.2.6", "http-proxy-middleware": "^2.0.9", "ipaddr.js": "^2.1.0", @@ -42444,7 +42999,7 @@ "open": "^10.0.3", "p-retry": "^6.2.0", "schema-utils": "^4.2.0", - "selfsigned": "^2.4.1", + "selfsigned": "^5.5.0", "serve-index": "^1.9.1", "sockjs": "^0.3.24", "spdy": "^4.0.2", @@ -42452,15 +43007,6 @@ "ws": "^8.18.0" }, "dependencies": { - "@types/ws": { - "version": "8.18.1", - "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.18.1.tgz", - "integrity": "sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, "ajv-keywords": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", @@ -42490,9 +43036,9 @@ "dev": true }, "schema-utils": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.3.2.tgz", - "integrity": "sha512-Gn/JaSk/Mt9gYubxTtSn/QCV4em9mpAPiR1rqy/Ocu19u/G9J5WWdNoUT4SiV6mFC3y6cxyFcFwdzPM3FgxGAQ==", + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.3.3.tgz", + "integrity": "sha512-eflK8wEtyOE6+hsaRVPxvUKYCpRgzLqDTb8krvAsRIwOGlHoSgYLgBXoubGgLd2fT41/OUYdb48v4k4WWHQurA==", "dev": true, "requires": { "@types/json-schema": "^7.0.9", @@ -42502,9 +43048,9 @@ } }, "ws": { - "version": "8.18.3", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.3.tgz", - "integrity": "sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==", + "version": "8.20.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.20.0.tgz", + "integrity": "sha512-sAt8BhgNbzCtgGbt2OxmpuryO63ZoDk/sqaB/znQm94T4fCEsy/yV+7CdC1kJhOU9lboAEU7R3kquuycDoibVA==", "dev": true } } @@ -42552,6 +43098,23 @@ "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", "dev": true }, + "whatwg-mimetype": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-5.0.0.tgz", + "integrity": "sha512-sXcNcHOC51uPGF0P/D4NVtrkjSU2fNsm9iog4ZvZJsL3rjoDAzXZhkm2MWt1y+PUdggKAYVoMAIYcs78wJ51Cw==", + "dev": true + }, + "whatwg-url": { + "version": "16.0.1", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-16.0.1.tgz", + "integrity": "sha512-1to4zXBxmXHV3IiSSEInrreIlu02vUOvrhxJJH5vcxYTBDAx51cqZiKdyTxlecdKNSjj8EcxGBxNf6Vg+945gw==", + "dev": true, + "requires": { + "@exodus/bytes": "^1.11.0", + "tr46": "^6.0.0", + "webidl-conversions": "^8.0.1" + } + }, "which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", @@ -42621,6 +43184,16 @@ "has-tostringtag": "^1.0.2" } }, + "why-is-node-running": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/why-is-node-running/-/why-is-node-running-2.3.0.tgz", + "integrity": "sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==", + "dev": true, + "requires": { + "siginfo": "^2.0.0", + "stackback": "0.0.2" + } + }, "wildcard": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.1.tgz", @@ -42684,9 +43257,9 @@ }, "dependencies": { "is-wsl": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-3.1.0.tgz", - "integrity": "sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-3.1.1.tgz", + "integrity": "sha512-e6rvdUCiQCAuumZslxRJWR/Doq4VpPR82kqclvcS0efgt430SlGIk05vdCN58+VrzgtIcfNODjozVielycD4Sw==", "dev": true, "requires": { "is-inside-container": "^1.0.0" @@ -42702,6 +43275,18 @@ "repeat-string": "^1.5.2" } }, + "xml-name-validator": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-5.0.0.tgz", + "integrity": "sha512-EvGK8EJ3DhaHfbRlETOWAS5pO9MZITeauHKJyb8wyajUfQUenkIg2MvLDTZ4T/TgIcm3HU0TFBgWWboAZ30UHg==", + "dev": true + }, + "xmlchars": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", + "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", + "dev": true + }, "y-prosemirror": { "version": "1.3.7", "resolved": "https://registry.npmjs.org/y-prosemirror/-/y-prosemirror-1.3.7.tgz", @@ -42759,9 +43344,9 @@ "integrity": "sha512-U/PBtDf35ff0D8X8D0jfdzHYEPFxAI7jJlxZXwCSez5M3190m+QobIfh+sWDWSHMCWWJN2AWamkegn6vr6YBTw==" }, "zod": { - "version": "4.3.5", - "resolved": "https://registry.npmjs.org/zod/-/zod-4.3.5.tgz", - "integrity": "sha512-k7Nwx6vuWx1IJ9Bjuf4Zt1PEllcwe7cls3VNzm4CQ1/hgtFUK2bRNG3rvnpPUhFjmqJKAKtjV576KnUkHocg/g==" + "version": "4.3.6", + "resolved": "https://registry.npmjs.org/zod/-/zod-4.3.6.tgz", + "integrity": "sha512-rftlrkhHZOcjDwkGlnUtZZkvaPHCsDATp4pGpuOOMDaTdDDXF91wuVDJoWoPsKX/3YPQ5fHuF3STjcYyKr+Qhg==" }, "zod-to-json-schema": { "version": "3.25.1", diff --git a/frontend/package.json b/frontend/package.json index bd6a4b7311d..a6f73b71065 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -6,17 +6,16 @@ "private": true, "devDependencies": { "@angular-builders/custom-esbuild": "^21.0.3", - "@angular-devkit/build-angular": "^21.1.5", + "@angular-devkit/build-angular": "^21.2.9", "@angular-eslint/builder": "20.7.0", "@angular-eslint/eslint-plugin": "20.7.0", "@angular-eslint/eslint-plugin-template": "20.7.0", "@angular-eslint/schematics": "20.7.0", "@angular-eslint/template-parser": "20.7.0", - "@angular/language-service": "21.1.6", + "@angular/language-service": "21.2.11", "@eslint/js": "^9.39.2", - "@html-eslint/eslint-plugin": "^0.58.1", - "@html-eslint/parser": "^0.58.1", - "@jsdevtools/coverage-istanbul-loader": "3.0.5", + "@html-eslint/eslint-plugin": "^0.59.0", + "@html-eslint/parser": "^0.59.0", "@stylistic/eslint-plugin": "^5.7.1", "@types/codemirror": "5.60.5", "@types/dom-navigation": "^1.0.7", @@ -24,7 +23,6 @@ "@types/flot": "^0.0.36", "@types/hammerjs": "^2.0.36", "@types/hotwired__turbo": "^8.0.5", - "@types/jasmine": "~6.0.0", "@types/jquery": "^3.5.33", "@types/jqueryui": "^1.12.24", "@types/lodash": "^4.17.23", @@ -39,43 +37,37 @@ "@types/webpack-env": "^1.16.0", "@typescript-eslint/eslint-plugin": "8.53.0", "@typescript-eslint/parser": "8.53.1", + "@vitest/coverage-v8": "^4.1.5", + "@vitest/eslint-plugin": "^1.6.16", "angular-eslint": "^21.1.0", "browserslist": "^4.28.1", "eslint": "^9.39.2", "eslint-plugin-import": "^2.32.0", - "eslint-plugin-jasmine": "^4.2.2", "eslint-plugin-jsx-a11y": "^6.10.2", "eslint-plugin-react": "^7.37.5", "eslint-plugin-react-hooks": "^7.0.1", - "globals": "^17.3.0", - "jasmine-core": "~6.1.0", - "jasmine-spec-reporter": "~7.0.0", - "karma": "~6.4.4", - "karma-chrome-launcher": "~3.2.0", - "karma-coverage": "~2.2.1", - "karma-coverage-istanbul-reporter": "~3.0.3", - "karma-jasmine": "~5.1.0", - "karma-jasmine-html-reporter": "^2.1.0", - "karma-spec-reporter": "^0.0.36", + "globals": "^17.5.0", + "jsdom": "^29.1.1", "source-map-explorer": "^2.5.2", "ts-node": "~10.9.2", "typescript": "^5.9.3", "typescript-eslint": "^8.56.1", + "vitest": "^4.1.5", "wscat": "^6.1.0" }, "dependencies": { - "@angular/animations": "^21.1.6", - "@angular/cdk": "^21.1.6", - "@angular/cli": "^21.1.5", - "@angular/common": "^21.1.6", - "@angular/compiler": "^21.1.6", - "@angular/compiler-cli": "^21.1.6", - "@angular/core": "^21.2.4", - "@angular/elements": "^21.1.6", - "@angular/forms": "^21.1.6", - "@angular/platform-browser": "^21.1.6", - "@angular/platform-browser-dynamic": "^21.1.6", - "@angular/router": "^21.1.6", + "@angular/animations": "^21.2.11", + "@angular/cdk": "^21.2.9", + "@angular/cli": "^21.2.9", + "@angular/common": "^21.2.11", + "@angular/compiler": "^21.2.11", + "@angular/compiler-cli": "^21.2.11", + "@angular/core": "^21.2.11", + "@angular/elements": "^21.2.11", + "@angular/forms": "^21.2.11", + "@angular/platform-browser": "^21.2.11", + "@angular/platform-browser-dynamic": "^21.2.11", + "@angular/router": "^21.2.11", "@appsignal/javascript": "^1.6.1", "@appsignal/plugin-breadcrumbs-console": "^1.1.37", "@appsignal/plugin-breadcrumbs-network": "^1.1.24", @@ -89,11 +81,11 @@ "@fullcalendar/common": "^5.11.5", "@fullcalendar/core": "^6.1.20", "@fullcalendar/daygrid": "^6.1.20", - "@fullcalendar/multimonth": "^6.1.20", "@fullcalendar/interaction": "^6.1.20", "@fullcalendar/list": "^6.1.20", "@fullcalendar/moment": "^6.1.20", "@fullcalendar/moment-timezone": "^6.1.20", + "@fullcalendar/multimonth": "^6.1.20", "@fullcalendar/resource": "^6.1.20", "@fullcalendar/resource-common": "^5.11.5", "@fullcalendar/resource-timeline": "^6.1.20", @@ -103,27 +95,27 @@ "@hotwired/stimulus": "^3.2.2", "@hotwired/turbo": "^8.0.20", "@hotwired/turbo-rails": "^8.0.20", - "@knowledgecode/delegate": "^0.10.0", + "@knowledgecode/delegate": "^0.10.3", "@kolkov/ngx-gallery": "^2.0.1", "@mantine/core": "^8.3.13", - "@mantine/hooks": "^8.3.6", + "@mantine/hooks": "^9.0.1", "@mantine/utils": "^6.0.22", - "@ng-select/ng-option-highlight": "^21.8.0", + "@ng-select/ng-option-highlight": "^21.8.2", "@ng-select/ng-select": "^21.8.0", "@ngneat/content-loader": "^7.0.0", "@openproject/octicons-angular": "^19.34.0", - "@openproject/primer-view-components": "^0.84.5", + "@openproject/primer-view-components": "^0.85.0", "@openproject/reactivestates": "^3.0.1", "@primer/css": "^22.1.0", "@primer/live-region-element": "^0.8.0", "@primer/primitives": "^11.5.1", - "@primer/view-components": "npm:@openproject/primer-view-components@^0.84.5", + "@primer/view-components": "npm:@openproject/primer-view-components@^0.85.0", "@rails/request.js": "^0.0.13", "@stimulus-components/auto-submit": "^6.0.0", "@stimulus-components/reveal": "^5.0.0", "@tiptap/extensions": "^3.20.0", "@uirouter/angular": "^17.0.0", - "@uirouter/core": "^6.1.0", + "@uirouter/core": "^6.1.2", "@uirouter/rx": "^1.0.0", "@w11k/ngx-componentdestroyed": "^5.0.2", "@xeokit/xeokit-bim-viewer": "2.7.1", @@ -134,7 +126,7 @@ "chartjs-plugin-datalabels": "^2.2.0", "codemirror": "^5.62.0", "copy-text-to-clipboard": "^3.2.2", - "core-js": "^3.48.0", + "core-js": "^3.49.0", "crossvent": "^1.5.4", "dom-autoscroller": "^2.2.8", "dom-plane": "^1.0.2", @@ -149,7 +141,7 @@ "jquery.caret": "^0.3.1", "json5": "^2.2.2", "lit-html": "^3.3.2", - "lodash": "^4.17.23", + "lodash": "^4.18.1", "luxon": "^3.7.2", "mark.js": "^8.11.0", "mdx-embed": "^1.1.2", @@ -158,16 +150,16 @@ "moment-timezone": "^0.6.0", "mousetrap": "~1.6.3", "ng-dynamic-component": "^10.7.0", - "ng2-charts": "^8.0.0", + "ng2-charts": "^10.0.0", "ng2-dragula": "^6.0.0", "ngx-cookie-service": "^21.1.0", "observable-array": "0.0.4", "op-blocknote-extensions": "https://github.com/opf/op-blocknote-extensions/releases/download/v0.0.24/op-blocknote-extensions-0.0.24.tgz", - "openapi-explorer": "^2.4.788", + "openapi-explorer": "^2.4.793", "pako": "^2.0.3", "qr-creator": "^1.0.0", - "react": "^19.2.4", - "react-dom": "^19.2.4", + "react": "^19.2.5", + "react-dom": "^19.2.5", "reflect-metadata": "^0.2.2", "rxjs": "^7.8.0", "screenfull": "^6.0.2", @@ -179,7 +171,7 @@ "turbo_power": "^0.7.1", "typedjson": "^1.5.1", "urijs": "^1.19.11", - "uuid": "^13.0.0" + "uuid": "^14.0.0" }, "optionalDependencies": { "fsevents": "*" diff --git a/frontend/src/app/app.module.ts b/frontend/src/app/app.module.ts index a002c9df85e..1bca3a907a7 100644 --- a/frontend/src/app/app.module.ts +++ b/frontend/src/app/app.module.ts @@ -144,9 +144,15 @@ import { import { WorkPackageSplitViewEntryComponent, } from 'core-app/features/work-packages/routing/wp-split-view/wp-split-view-entry.component'; +import { + WorkPackageSplitCreateEntryComponent, +} from 'core-app/features/work-packages/routing/wp-split-create/wp-split-create-entry.component'; import { BoardEntryComponent, } from 'core-app/features/boards/board/board-partitioned-page/board-entry.component'; +import { CalendarEntryComponent } from 'core-app/features/calendar/calendar-entry.component'; +import { TeamPlannerEntryComponent } from 'core-app/features/team-planner/team-planner/team-planner-entry.component'; +import { TeamPlannerModule } from 'core-app/features/team-planner/team-planner/team-planner.module'; import { StorageLoginButtonComponent, } from 'core-app/shared/components/storages/storage-login-button/storage-login-button.component'; @@ -300,6 +306,8 @@ export function runBootstrap(appRef:ApplicationRef) { OpenprojectWorkPackageGraphsModule, // Calendar module OpenprojectCalendarModule, + // Team Planner module + TeamPlannerModule, // MyPage OpenprojectMyPageModule, @@ -392,7 +400,10 @@ export class OpenProjectModule implements DoBootstrap { registerCustomElement('opce-notification-center', InAppNotificationCenterComponent, { injector }); registerCustomElement('opce-wp-split-view', WorkPackageSplitViewEntryComponent, { injector }); + registerCustomElement('opce-wp-split-create', WorkPackageSplitCreateEntryComponent, { injector }); registerCustomElement('opce-board-view', BoardEntryComponent, { injector }); + registerCustomElement('opce-calendar-view', CalendarEntryComponent, { injector }); + registerCustomElement('opce-team-planner-view', TeamPlannerEntryComponent, { injector }); registerCustomElement('opce-wp-full-view', WorkPackageFullViewEntryComponent, { injector }); registerCustomElement('opce-wp-full-create', WorkPackageFullCreateEntryComponent, { injector }); registerCustomElement('opce-wp-full-copy', WorkPackageFullCopyEntryComponent, { injector }); diff --git a/frontend/src/app/core/apiv3/api-v3.service.spec.ts b/frontend/src/app/core/apiv3/api-v3.service.spec.ts index 034cfada593..06f8c6cde6a 100644 --- a/frontend/src/app/core/apiv3/api-v3.service.spec.ts +++ b/frontend/src/app/core/apiv3/api-v3.service.spec.ts @@ -26,9 +26,7 @@ // See COPYRIGHT and LICENSE files for more details. //++ -import { - TestBed, -} from '@angular/core/testing'; +import { TestBed, } from '@angular/core/testing'; import { ApiV3Service } from 'core-app/core/apiv3/api-v3.service'; import { PathHelperService } from 'core-app/core/path-helper/path-helper.service'; import { States } from 'core-app/core/states/states.service'; @@ -58,7 +56,7 @@ describe('APIv3Service', () => { expect(service.projects.id(projectIdentifier).path).toEqual('/api/v3/projects/majora'); }); - it('should provide a path to work package query on subject or ID ', () => { + it('should provide a path to work package query on subject or ID', () => { let params = { filters: '[{"typeahead":{"operator":"**","values":["bogus"]}}]', sortBy: '[["updatedAt","desc"]]', @@ -66,9 +64,7 @@ describe('APIv3Service', () => { pageSize: '10', }; - expect( - service.work_packages.filterByTypeaheadOrId('bogus').path, - ).toEqual(`/api/v3/work_packages?${encodeParams(params)}`); + expect(service.work_packages.filterByTypeaheadOrId('bogus').path).toEqual(`/api/v3/work_packages?${encodeParams(params)}`); params = { filters: '[{"id":{"operator":"=","values":["1234"]}}]', @@ -77,9 +73,7 @@ describe('APIv3Service', () => { pageSize: '10', }; - expect( - service.work_packages.filterByTypeaheadOrId('1234', true).path, - ).toEqual(`/api/v3/work_packages?${encodeParams(params)}`); + expect(service.work_packages.filterByTypeaheadOrId('1234', true).path).toEqual(`/api/v3/work_packages?${encodeParams(params)}`); }); }); }); diff --git a/frontend/src/app/core/apiv3/endpoints/work_packages/work-package-cache.spec.ts b/frontend/src/app/core/apiv3/endpoints/work_packages/work-package-cache.spec.ts index 2c91997c1bf..518941237c8 100644 --- a/frontend/src/app/core/apiv3/endpoints/work_packages/work-package-cache.spec.ts +++ b/frontend/src/app/core/apiv3/endpoints/work_packages/work-package-cache.spec.ts @@ -35,7 +35,8 @@ import { WorkPackageResource } from 'core-app/features/hal/resources/work-packag import { HalResourceService } from 'core-app/features/hal/services/hal-resource.service'; import { SchemaCacheService } from 'core-app/core/schemas/schema-cache.service'; import { States } from 'core-app/core/states/states.service'; -import { take, takeWhile } from 'rxjs/operators'; +import { firstValueFrom } from 'rxjs'; +import { take, toArray } from 'rxjs/operators'; import { WorkPackagesActivityService } from 'core-app/features/work-packages/components/wp-single-view-tabs/activity-panel/wp-activity.service'; import { ConfigurationService } from 'core-app/core/config/configuration.service'; import { WorkPackageNotificationService } from 'core-app/features/work-packages/services/notifications/work-package-notification.service'; @@ -55,8 +56,8 @@ describe('WorkPackageCache', () => { beforeEach(() => { TestBed.configureTestingModule({ - imports: [OpenprojectHalModule], - providers: [ + imports: [OpenprojectHalModule], + providers: [ States, HalResourceService, TimezoneService, @@ -64,15 +65,15 @@ describe('WorkPackageCache', () => { SchemaCacheService, PathHelperService, { provide: ConfigurationService, useValue: {} }, - { provide: I18nService, useValue: { t: (...args:any[]) => 'translation' } }, + { provide: I18nService, useValue: { t: (..._args:any[]) => 'translation' } }, { provide: WorkPackageResource, useValue: {} }, { provide: ToastService, useValue: {} }, { provide: HalResourceNotificationService, useValue: { handleRawError: () => false } }, { provide: WorkPackageNotificationService, useValue: {} }, provideHttpClient(withInterceptorsFromDi()), provideHttpClientTesting(), - ] -}); + ] + }); injector = TestBed.inject(Injector); states = TestBed.inject(States); @@ -80,55 +81,40 @@ describe('WorkPackageCache', () => { workPackageCache = new WorkPackageCache(injector, states.workPackages); // sinon.stub(schemaCacheService, 'ensureLoaded').returns(Promise.resolve(true)); - spyOn(schemaCacheService, 'ensureLoaded').and.resolveTo(true as any); + vi.spyOn(schemaCacheService, 'ensureLoaded').mockResolvedValue(true as any); - const workPackage1 = new WorkPackageResource( - injector, - { - id: '1', - _links: { - self: '', - }, + const workPackage1 = new WorkPackageResource(injector, { + id: '1', + _links: { + self: '', }, - true, - (wp:WorkPackageResource) => undefined, - 'WorkPackage', - ); + }, true, (_wp:WorkPackageResource) => undefined, 'WorkPackage'); dummyWorkPackages = [workPackage1 as any]; }); - it('returns a work package after the list has been initialized', (done:any) => { - workPackageCache.state('1').values$() - .pipe( - take(1), - ) - .subscribe((wp:WorkPackageResource) => { - expect(wp.id!).toEqual('1'); - done(); - }); + it('returns a work package after the list has been initialized', async () => { + const emittedWorkPackage = firstValueFrom( + workPackageCache.state('1').values$().pipe(take(1)), + ); workPackageCache.updateWorkPackageList(dummyWorkPackages); + + await expect(emittedWorkPackage).resolves.toMatchObject({ id: '1' }); }); - it('should return/stream a work package every time it gets updated', (done:any) => { - let count = 0; - - workPackageCache.state('1').values$() - .pipe( - takeWhile((wp) => count < 2), - ) - .subscribe((wp:WorkPackageResource) => { - expect(wp.id!).toEqual('1'); - - count += 1; - if (count === 2) { - done(); - } - }); + it('should return/stream a work package every time it gets updated', async () => { + const emittedWorkPackages = firstValueFrom( + workPackageCache.state('1').values$().pipe(take(3), toArray()), + ); workPackageCache.updateWorkPackageList([dummyWorkPackages[0]], false); workPackageCache.updateWorkPackageList([dummyWorkPackages[0]], false); workPackageCache.updateWorkPackageList([dummyWorkPackages[0]], false); + + const values = await emittedWorkPackages; + + expect(values).toHaveLength(3); + expect(values.map((wp) => wp.id)).toEqual(['1', '1', '1']); }); }); diff --git a/frontend/src/app/core/global_search/input/global-search-input.component.html b/frontend/src/app/core/global_search/input/global-search-input.component.html index 79ba5b741a7..0a5d28b4fc4 100644 --- a/frontend/src/app/core/global_search/input/global-search-input.component.html +++ b/frontend/src/app/core/global_search/input/global-search-input.component.html @@ -88,7 +88,7 @@ {{ item.type.name }} - #{{ item.id }} + {{ item.formattedId }} {{ item.status.name }} diff --git a/frontend/src/app/core/main-menu/submenu.service.ts b/frontend/src/app/core/main-menu/submenu.service.ts index dff74195f52..5ad6678b260 100644 --- a/frontend/src/app/core/main-menu/submenu.service.ts +++ b/frontend/src/app/core/main-menu/submenu.service.ts @@ -9,31 +9,31 @@ export class SubmenuService { reloadSubmenu(selectedQueryId:string|null, sidemenuId?:string):void { // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access,@typescript-eslint/no-unsafe-assignment const menuIdentifier:string|undefined = sidemenuId ?? this.$state.current.data?.sideMenuOptions?.sidemenuId; + if (!menuIdentifier) { return; } - if (menuIdentifier) { - const menu = document.getElementById(menuIdentifier) as FrameElement; - // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access - const sideMenuOptions = this.$state.$current.data?.sideMenuOptions as { hardReloadOnBaseRoute?:boolean, defaultQuery?:string }; - const currentSrc = menu.getAttribute('src'); + const menu = document.getElementById(menuIdentifier) as FrameElement|null; + const currentSrc = menu?.getAttribute('src'); + if (!currentSrc || !menu) { return; } - if (currentSrc && menu) { - const frameUrl = new URL(currentSrc, window.location.origin); - const defaultQuery = sideMenuOptions?.defaultQuery; + // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access + const sideMenuOptions = this.$state.$current.data?.sideMenuOptions as { hardReloadOnBaseRoute?:boolean, defaultQuery?:string }; + const frameUrl = new URL(currentSrc, window.location.origin); - if (selectedQueryId) { - // If there is a default query passed in the route definition, it means that id passed as argument and not as parameter, - // e.g. calendars/:id, team_planner/:id, ... - // Otherwise, we will just replace the params - if (defaultQuery) { - frameUrl.search = `?id=${selectedQueryId}`; - } else { - frameUrl.search = `?query_id=${selectedQueryId}`; - } - } + if (selectedQueryId) { + // Prefer the data attribute on the frame, then fall back to route sideMenuOptions, + // then default to 'query_id'. Modules with path-based IDs (e.g. calendars/:id) + // set data-query-param="id" on the frame. + const queryParam = menu.getAttribute('data-query-param') + ?? (sideMenuOptions?.defaultQuery ? 'id' : 'query_id'); - // Override the frame src to enforce a reload - menu.setAttribute('src', frameUrl.href); - } + frameUrl.search = `?${queryParam}=${selectedQueryId}`; + } + + const newSrc = frameUrl.href; + if (menu.getAttribute('src') !== newSrc) { + menu.setAttribute('src', newSrc); + } else { + void menu.reload(); } } } diff --git a/frontend/src/app/core/routing/openproject.routes.ts b/frontend/src/app/core/routing/openproject.routes.ts index fb01324276b..e36af84a380 100644 --- a/frontend/src/app/core/routing/openproject.routes.ts +++ b/frontend/src/app/core/routing/openproject.routes.ts @@ -39,8 +39,6 @@ import { mobileGuardActivated, redirectToMobileAlternative, } from 'core-app/shared/helpers/routing/mobile-guard.helper'; -import { TEAM_PLANNER_LAZY_ROUTES } from 'core-app/features/team-planner/team-planner/team-planner.lazy-routes'; -import { CALENDAR_LAZY_ROUTES } from 'core-app/features/calendar/calendar.lazy-routes'; export const OPENPROJECT_ROUTES:Ng2StateDeclaration[] = [ { @@ -74,8 +72,6 @@ export const OPENPROJECT_ROUTES:Ng2StateDeclaration[] = [ url: '/bcf', loadChildren: () => import('../../features/bim/ifc_models/openproject-ifc-models.module').then((m) => m.OpenprojectIFCModelsModule), }, - ...TEAM_PLANNER_LAZY_ROUTES, - ...CALENDAR_LAZY_ROUTES, ]; /** diff --git a/frontend/src/app/features/bim/bcf/api/projects/bcf-project.resource.ts b/frontend/src/app/features/bim/bcf/api/projects/bcf-project.resource.ts index 0863d49e656..250cafd8bef 100644 --- a/frontend/src/app/features/bim/bcf/api/projects/bcf-project.resource.ts +++ b/frontend/src/app/features/bim/bcf/api/projects/bcf-project.resource.ts @@ -2,9 +2,9 @@ import { jsonMember, jsonObject } from 'typedjson'; @jsonObject export class BcfProjectResource { - @jsonMember + @jsonMember(Number) project_id:number; - @jsonMember + @jsonMember(String) name:string; } diff --git a/frontend/src/app/features/bim/bcf/api/topics/bcf-topic.resource.ts b/frontend/src/app/features/bim/bcf/api/topics/bcf-topic.resource.ts index 789bfba8da5..f7f767d89f1 100644 --- a/frontend/src/app/features/bim/bcf/api/topics/bcf-topic.resource.ts +++ b/frontend/src/app/features/bim/bcf/api/topics/bcf-topic.resource.ts @@ -40,25 +40,25 @@ export class BcfTopicAuthorizationMap { @jsonObject export class BcfTopicResource { - @jsonMember + @jsonMember(String) guid:string; - @jsonMember + @jsonMember(String) topic_type:string; - @jsonMember + @jsonMember(String) topic_status:string; - @jsonMember + @jsonMember(String) priority:string; @jsonArrayMember(String) reference_links:string[]; - @jsonMember + @jsonMember(String) title:string; - @jsonMember({ preserveNull: true }) + @jsonMember(Number, { preserveNull: true }) index:number|null; @jsonArrayMember(String) @@ -67,22 +67,22 @@ export class BcfTopicResource { @jsonMember({ deserializer: (value) => moment(value), serializer: (timestamp:Moment) => timestamp.toISOString() }) creation_date:Moment; - @jsonMember + @jsonMember(String) creation_author:string; @jsonMember({ deserializer: (value) => moment(value), serializer: (timestamp:Moment) => timestamp.toISOString() }) modified_date:Moment; - @jsonMember({ preserveNull: true }) + @jsonMember(String, { preserveNull: true }) modified_author:string|null; - @jsonMember + @jsonMember(String) assigned_to:string; - @jsonMember({ preserveNull: true }) + @jsonMember(String, { preserveNull: true }) stage:string|null; - @jsonMember + @jsonMember(String) description:string; @jsonMember({ @@ -91,6 +91,6 @@ export class BcfTopicResource { }) due_date:Moment; - @jsonMember + @jsonMember(BcfTopicAuthorizationMap) authorization:BcfTopicAuthorizationMap; } diff --git a/frontend/src/app/features/bim/ifc_models/bcf/list/bcf-list.component.ts b/frontend/src/app/features/bim/ifc_models/bcf/list/bcf-list.component.ts index 6593200dd8f..b017ece49e8 100644 --- a/frontend/src/app/features/bim/ifc_models/bcf/list/bcf-list.component.ts +++ b/frontend/src/app/features/bim/ifc_models/bcf/list/bcf-list.component.ts @@ -38,6 +38,7 @@ import { BcfApiService } from 'core-app/features/bim/bcf/api/bcf-api.service'; import { QueryResource } from 'core-app/features/hal/resources/query-resource'; import { BcfViewService } from 'core-app/features/bim/ifc_models/pages/viewer/bcf-view.service'; import { splitViewRoute } from 'core-app/features/work-packages/routing/split-view-routes.helper'; +import { resolveRoutingId } from 'core-app/features/work-packages/helpers/work-package-id-resolvers'; import { ViewerBridgeService } from 'core-app/features/bim/bcf/bcf-viewer-bridge/viewer-bridge.service'; import { CausedUpdatesService } from 'core-app/features/boards/board/caused-updates/caused-updates.service'; import { IfcModelsDataService } from 'core-app/features/bim/ifc_models/pages/viewer/ifc-models-data.service'; @@ -129,8 +130,10 @@ export class BcfListComponent extends WorkPackageListViewComponent implements Un : 'bim.partitioned.show'; // Passing the card param to the new state because the router doesn't keep // it when going to 'bim.partitioned.show' - const params = { workPackageId, cards, focus }; + const routingId = resolveRoutingId(this.states, workPackageId); + const params = { workPackageId: routingId, cards, focus }; void this.$state.go(stateToGo, params); } + } diff --git a/frontend/src/app/features/boards/board/board-actions/subproject/subproject-action.service.ts b/frontend/src/app/features/boards/board/board-actions/subproject/subproject-action.service.ts index 5e47afbe810..e2a09909add 100644 --- a/frontend/src/app/features/boards/board/board-actions/subproject/subproject-action.service.ts +++ b/frontend/src/app/features/boards/board/board-actions/subproject/subproject-action.service.ts @@ -1,5 +1,4 @@ import { Injectable } from '@angular/core'; -import { UserResource } from 'core-app/features/hal/resources/user-resource'; import { WorkPackageChangeset } from 'core-app/features/work-packages/components/wp-edit/work-package-changeset'; import { WorkPackageResource } from 'core-app/features/hal/resources/work-package-resource'; import { SubprojectBoardHeaderComponent } from 'core-app/features/boards/board/board-actions/subproject/subproject-board-header.component'; @@ -8,7 +7,6 @@ import { imagePath } from 'core-app/shared/helpers/images/path-helper'; import { ApiV3FilterBuilder } from 'core-app/shared/helpers/api-v3/api-v3-filter-builder'; import { QueryResource } from 'core-app/features/hal/resources/query-resource'; import { HalResource } from 'core-app/features/hal/resources/hal-resource'; -import { CollectionResource } from 'core-app/features/hal/resources/collection-resource'; import { Observable } from 'rxjs'; import { map } from 'rxjs/operators'; @@ -57,7 +55,7 @@ export class BoardSubprojectActionService extends CachedBoardActionService { ) .get() .pipe( - map((collection:CollectionResource) => collection.elements), + map((collection) => collection.elements), ); } } diff --git a/frontend/src/app/features/boards/board/board-list/board-list.component.ts b/frontend/src/app/features/boards/board/board-list/board-list.component.ts index baa4f648b35..cf85cae64e2 100644 --- a/frontend/src/app/features/boards/board/board-list/board-list.component.ts +++ b/frontend/src/app/features/boards/board/board-list/board-list.component.ts @@ -4,6 +4,7 @@ import { Component, ElementRef, EventEmitter, + inject, Injector, Input, OnDestroy, @@ -26,6 +27,8 @@ import { AuthorisationService } from 'core-app/core/model-auth/model-auth.servic import { Highlighting } from 'core-app/features/work-packages/components/wp-fast-table/builders/highlighting/highlighting.functions'; import { WorkPackageCardViewComponent } from 'core-app/features/work-packages/components/wp-card-view/wp-card-view.component'; import { WorkPackageStatesInitializationService } from 'core-app/features/work-packages/components/wp-list/wp-states-initialization.service'; +import { States } from 'core-app/core/states/states.service'; +import { resolveRoutingId } from 'core-app/features/work-packages/helpers/work-package-id-resolvers'; import { BoardService } from 'core-app/features/boards/board/board.service'; import { HalResourceEditingService } from 'core-app/shared/components/fields/edit/services/hal-resource-editing.service'; import { HalResourceNotificationService } from 'core-app/features/hal/services/hal-resource-notification.service'; @@ -148,6 +151,8 @@ export class BoardListComponent extends AbstractWidgetComponent implements OnIni public buttonPlaceholder:DisabledButtonPlaceholder|undefined; + private readonly states = inject(States); + constructor( readonly apiv3Service:ApiV3Service, readonly I18n:I18nService, @@ -488,17 +493,19 @@ export class BoardListComponent extends AbstractWidgetComponent implements OnIni openFullViewOnDoubleClick(event:{ workPackageId:string, double:boolean }) { if (event.double) { + const routingId = resolveRoutingId(this.states, event.workPackageId); const projectIdentifier = this.currentProject.identifier; - const link = this.pathHelper.genericWorkPackagePath(projectIdentifier, event.workPackageId) + window.location.search; + const link = this.pathHelper.genericWorkPackagePath(projectIdentifier, routingId) + window.location.search; Turbo.visit(link, { action: 'advance' }); } } openStateLink(event:{ workPackageId:string; requestedState:string }) { + const routingId = resolveRoutingId(this.states, event.workPackageId); if (event.requestedState === 'split') { - this.goToSplitView(event.workPackageId); + this.goToSplitView(routingId); } else { - this.keepTab.goCurrentShowState(event.workPackageId); + this.keepTab.goCurrentShowState(routingId); } } diff --git a/frontend/src/app/features/boards/board/board-partitioned-page/board-entry.component.ts b/frontend/src/app/features/boards/board/board-partitioned-page/board-entry.component.ts index 0503484d44b..1fe536a15eb 100644 --- a/frontend/src/app/features/boards/board/board-partitioned-page/board-entry.component.ts +++ b/frontend/src/app/features/boards/board/board-partitioned-page/board-entry.component.ts @@ -26,7 +26,14 @@ // See COPYRIGHT and LICENSE files for more details. //++ -import { ChangeDetectionStrategy, Component, ElementRef, Injector, Input } from '@angular/core'; +import { + ChangeDetectionStrategy, + Component, + ElementRef, + Injector, + Input, + OnDestroy, +} from '@angular/core'; import { populateInputsFromDataset } from 'core-app/shared/components/dataset-inputs'; import { WorkPackageIsolatedQuerySpaceDirective, @@ -43,7 +50,7 @@ import { QueryUpdatedService } from 'core-app/features/boards/board/query-update @Component({ selector: 'board-entry', hostDirectives: [WorkPackageIsolatedQuerySpaceDirective], - template: ``, + template: '', changeDetection: ChangeDetectionStrategy.OnPush, providers: [ BoardConfigurationService, @@ -56,7 +63,7 @@ import { QueryUpdatedService } from 'core-app/features/boards/board/query-update ], standalone: false, }) -export class BoardEntryComponent { +export class BoardEntryComponent implements OnDestroy { @Input() boardId:string; constructor( @@ -74,4 +81,8 @@ export class BoardEntryComponent { registry.add('subproject', injector.get(BoardSubprojectActionService)); registry.add('subtasks', injector.get(BoardSubtasksActionService)); } + + ngOnDestroy() { + document.body.classList.remove('router--boards-full-view'); + } } diff --git a/frontend/src/app/features/boards/board/board-partitioned-page/board-list-container.component.ts b/frontend/src/app/features/boards/board/board-partitioned-page/board-list-container.component.ts index fba32f8b51d..d033ea67e5e 100644 --- a/frontend/src/app/features/boards/board/board-partitioned-page/board-list-container.component.ts +++ b/frontend/src/app/features/boards/board/board-partitioned-page/board-list-container.component.ts @@ -2,6 +2,7 @@ import { ChangeDetectionStrategy, Component, ElementRef, + inject, Input, Injector, OnInit, @@ -39,6 +40,8 @@ import { import { ApiV3Service } from 'core-app/core/apiv3/api-v3.service'; import { PathHelperService } from 'core-app/core/path-helper/path-helper.service'; import { CurrentProjectService } from 'core-app/core/current-project/current-project.service'; +import { States } from 'core-app/core/states/states.service'; +import { resolveRoutingId } from 'core-app/features/work-packages/helpers/work-package-id-resolvers'; @Component({ selector: 'board-list-container', @@ -91,6 +94,8 @@ export class BoardListContainerComponent extends UntilDestroyedMixin implements private currentQueryUpdatedMonitoring:Subscription; + private readonly wpStates = inject(States); + constructor( readonly I18n:I18nService, readonly state:StateService, @@ -134,7 +139,8 @@ export class BoardListContainerComponent extends UntilDestroyedMixin implements filter(() => window.location.pathname.includes('/details/')), ).subscribe((selection) => { // Update split screen - const base = this.pathHelper.boardDetailsPath(this.currentProject.identifier, id, selection.focusedWorkPackage!); + const routingId = resolveRoutingId(this.wpStates, selection.focusedWorkPackage!); + const base = this.pathHelper.boardDetailsPath(this.currentProject.identifier, id, routingId); const search = window.location.search; Turbo.visit(search ? `${base}${search}` : base, { frame: 'content-bodyRight', action: 'advance' }); }); diff --git a/frontend/src/app/features/boards/board/board-partitioned-page/board-partitioned-page.component.ts b/frontend/src/app/features/boards/board/board-partitioned-page/board-partitioned-page.component.ts index 9d33220ca41..464c05c4a7a 100644 --- a/frontend/src/app/features/boards/board/board-partitioned-page/board-partitioned-page.component.ts +++ b/frontend/src/app/features/boards/board/board-partitioned-page/board-partitioned-page.component.ts @@ -47,7 +47,7 @@ export function boardCardViewHandlerFactory(injector:Injector) { @Component({ selector: 'board-partitioned-page', - templateUrl: './board-partitioned-page.component.html', + templateUrl: '../../../work-packages/routing/partitioned-query-space-page/primerized-partitioned-query-space-page.component.html', styleUrls: [ '../../../work-packages/routing/partitioned-query-space-page/partitioned-query-space-page.component.sass', './board-partitioned-page.component.sass', diff --git a/frontend/src/app/features/calendar/calendar-entry.component.ts b/frontend/src/app/features/calendar/calendar-entry.component.ts new file mode 100644 index 00000000000..645a7efd35d --- /dev/null +++ b/frontend/src/app/features/calendar/calendar-entry.component.ts @@ -0,0 +1,58 @@ +//-- copyright +// OpenProject is an open source project management software. +// Copyright (C) the OpenProject GmbH +// +// This program is free software; you can redistribute it and/or +// modify it under the terms of the GNU General Public License version 3. +// +// OpenProject is a fork of ChiliProject, which is a fork of Redmine. The copyright follows: +// Copyright (C) 2006-2013 Jean-Philippe Lang +// Copyright (C) 2010-2013 the ChiliProject Team +// +// This program is free software; you can redistribute it and/or +// modify it under the terms of the GNU General Public License +// as published by the Free Software Foundation; either version 2 +// of the License, or (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program; if not, write to the Free Software +// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +// +// See COPYRIGHT and LICENSE files for more details. +//++ + +import { + ChangeDetectionStrategy, + Component, + ElementRef, + Input, + OnDestroy, +} from '@angular/core'; +import { populateInputsFromDataset } from 'core-app/shared/components/dataset-inputs'; +import { + WorkPackageIsolatedQuerySpaceDirective, +} from 'core-app/features/work-packages/directives/query-space/wp-isolated-query-space.directive'; + +@Component({ + hostDirectives: [WorkPackageIsolatedQuerySpaceDirective], + template: '', + changeDetection: ChangeDetectionStrategy.OnPush, + standalone: false, +}) +export class CalendarEntryComponent implements OnDestroy { + @Input() queryId:string; + + constructor(readonly elementRef:ElementRef) { + populateInputsFromDataset(this); + document.body.classList.add('router--calendar'); + } + + ngOnDestroy() { + document.body.classList.add('router--calendar'); + } +} diff --git a/frontend/src/app/features/calendar/calendar.routes.ts b/frontend/src/app/features/calendar/calendar.routes.ts deleted file mode 100644 index 4a2e1c34d1c..00000000000 --- a/frontend/src/app/features/calendar/calendar.routes.ts +++ /dev/null @@ -1,84 +0,0 @@ -//-- copyright -// OpenProject is an open source project management software. -// Copyright (C) the OpenProject GmbH -// -// This program is free software; you can redistribute it and/or -// modify it under the terms of the GNU General Public License version 3. -// -// OpenProject is a fork of ChiliProject, which is a fork of Redmine. The copyright follows: -// Copyright (C) 2006-2013 Jean-Philippe Lang -// Copyright (C) 2010-2013 the ChiliProject Team -// -// This program is free software; you can redistribute it and/or -// modify it under the terms of the GNU General Public License -// as published by the Free Software Foundation; either version 2 -// of the License, or (at your option) any later version. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with this program; if not, write to the Free Software -// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -// -// See COPYRIGHT and LICENSE files for more details. -//++ - -import { Ng2StateDeclaration } from '@uirouter/angular'; -import { makeSplitViewRoutes } from 'core-app/features/work-packages/routing/split-view-routes.template'; -import { WorkPackageSplitViewComponent } from 'core-app/features/work-packages/routing/wp-split-view/wp-split-view.component'; -import { WorkPackagesBaseComponent } from 'core-app/features/work-packages/routing/wp-base/wp--base.component'; -import { WorkPackagesCalendarComponent } from 'core-app/features/calendar/wp-calendar/wp-calendar.component'; -import { WorkPackagesCalendarPageComponent } from 'core-app/features/calendar/wp-calendar-page/wp-calendar-page.component'; - -export const sidemenuId = 'calendar_sidemenu'; -export const sideMenuOptions = { - sidemenuId, - hardReloadOnBaseRoute: true, - defaultQuery: 'new', -}; - -export const CALENDAR_ROUTES:Ng2StateDeclaration[] = [ - { - name: 'calendar', - parent: 'optional_project', - url: '/calendars/:query_id?&query_props&cdate&cview', - redirectTo: 'calendar.page', - views: { - '!$default': { component: WorkPackagesBaseComponent }, - }, - params: { - query_id: { type: 'opQueryId', dynamic: true }, - cdate: { type: 'string', dynamic: true }, - cview: { type: 'string', dynamic: true }, - // Use custom encoder/decoder that ensures validity of URL string - query_props: { type: 'opQueryString' }, - }, - }, - { - name: 'calendar.page', - component: WorkPackagesCalendarPageComponent, - redirectTo: 'calendar.page.show', - data: { - bodyClasses: 'router--calendar', - sideMenuOptions, - }, - }, - { - name: 'calendar.page.show', - data: { - baseRoute: 'calendar.page.show', - sideMenuOptions, - }, - views: { - 'content-left': { component: WorkPackagesCalendarComponent }, - }, - }, - ...makeSplitViewRoutes( - 'calendar.page.show', - undefined, - WorkPackageSplitViewComponent, - ), -]; diff --git a/frontend/src/app/features/calendar/op-work-packages-calendar.service.ts b/frontend/src/app/features/calendar/op-work-packages-calendar.service.ts index 86dbd0c0d09..5184f8c5be1 100644 --- a/frontend/src/app/features/calendar/op-work-packages-calendar.service.ts +++ b/frontend/src/app/features/calendar/op-work-packages-calendar.service.ts @@ -1,4 +1,4 @@ -import { Injectable, Injector } from '@angular/core'; +import { inject, Injectable, Injector } from '@angular/core'; import { CalendarOptions, DatesSetArg, @@ -15,9 +15,8 @@ import { ConfigurationService } from 'core-app/core/config/configuration.service import { WorkPackageResource } from 'core-app/features/hal/resources/work-package-resource'; import { DomSanitizer } from '@angular/platform-browser'; import { SchemaCacheService } from 'core-app/core/schemas/schema-cache.service'; -import { splitViewRoute } from 'core-app/features/work-packages/routing/split-view-routes.helper'; -import { StateService } from '@uirouter/angular'; import { WorkPackageCollectionResource } from 'core-app/features/hal/resources/wp-collection-resource'; +import { PathHelperService } from 'core-app/core/path-helper/path-helper.service'; import { ToastService } from 'core-app/shared/components/toaster/toast.service'; import { firstValueFrom, Observable } from 'rxjs'; import { @@ -34,7 +33,6 @@ import { UrlParamsHelperService, } from 'core-app/features/work-packages/components/wp-query/url-params-helper'; import { ApiV3Service } from 'core-app/core/apiv3/api-v3.service'; -import { UIRouterGlobals } from '@uirouter/core'; import { TimezoneService } from 'core-app/core/datetime/timezone.service'; import { WorkPackagesListChecksumService, @@ -53,6 +51,8 @@ import { uiStateLinkClass, } from 'core-app/features/work-packages/components/wp-fast-table/builders/ui-state-link-builder'; import { debugLog } from 'core-app/shared/helpers/debug_output'; +import { States } from 'core-app/core/states/states.service'; +import { resolveRoutingId } from 'core-app/features/work-packages/helpers/work-package-id-resolvers'; import { WorkPackageViewContextMenu, } from 'core-app/shared/components/op-context-menu/wp-context-menu/wp-view-context-menu.directive'; @@ -89,11 +89,12 @@ export class OpWorkPackagesCalendarService extends UntilDestroyedMixin { take(1), ); + private readonly states = inject(States); + constructor( private I18n:I18nService, private configuration:ConfigurationService, private sanitizer:DomSanitizer, - private $state:StateService, readonly injector:Injector, readonly schemaCache:SchemaCacheService, readonly toastService:ToastService, @@ -104,8 +105,8 @@ export class OpWorkPackagesCalendarService extends UntilDestroyedMixin { readonly querySpace:IsolatedQuerySpace, readonly apiV3Service:ApiV3Service, readonly halResourceService:HalResourceService, - readonly uiRouterGlobals:UIRouterGlobals, readonly timezoneService:TimezoneService, + readonly pathHelper:PathHelperService, readonly halEditing:HalResourceEditingService, readonly wpTableSelection:WorkPackageViewSelectionService, readonly contextMenuService:OPContextMenuService, @@ -283,23 +284,29 @@ export class OpWorkPackagesCalendarService extends UntilDestroyedMixin { this.wpTableSelection.setSelection(id, -1); // Only open the split view if already open, otherwise only clicking the details opens - if (onlyWhenOpen && !this.$state.includes('**.details.*')) { + if (onlyWhenOpen && !window.location.pathname.includes('/details/')) { return; } - void this.$state.go( - `${splitViewRoute(this.$state)}.tabs`, - { workPackageId: id, tabIdentifier: 'overview' }, - ); + this.visitSplitViewLink(resolveRoutingId(this.states, id)); + } + + public openSplitCreate(extraParams?:Record):void { + this.visitSplitViewLink('new', extraParams); + } + + private visitSplitViewLink(id:string, extraParams?:Record):void { + const basePath = window.location.pathname.replace(/\/details\/.*$/, ''); + const params = new URLSearchParams(window.location.search); + if (extraParams) { + Object.entries(extraParams).forEach(([key, value]) => params.set(key, value)); + } + Turbo.visit(`${basePath}/details/${id}?${params.toString()}`, { frame: 'content-bodyRight', action: 'advance' }); } public openFullView(id:string):void { this.wpTableSelection.setSelection(id, -1); - - void this.$state.go( - 'work-packages.show', - { workPackageId: id }, - ); + Turbo.visit(this.pathHelper.workPackagePath(resolveRoutingId(this.states, id))); } public onCardClicked({ workPackageId, event }:{ workPackageId:string, event:MouseEvent }):void { @@ -399,8 +406,22 @@ export class OpWorkPackagesCalendarService extends UntilDestroyedMixin { && !this.urlParams.query_props; } - public get urlParams() { - return this.uiRouterGlobals.params; + public get urlParams():{ + query_id?:string; + query_props?:string; + cdate?:string; + cview?:string; + } { + const search = new URLSearchParams(window.location.search); + // Extract query_id from path-based routing (e.g. /calendars/, /team_planners/). + const match = /\/(?:calendars|team_planners)\/([^/]+)/.exec(window.location.pathname); + const rawId = match?.[1]; + return { + query_id: rawId === 'new' ? undefined : rawId, + query_props: search.get('query_props') ?? undefined, + cdate: search.get('cdate') ?? undefined, + cview: search.get('cview') ?? undefined, + }; } private get areFiltersEmpty():boolean { @@ -417,17 +438,27 @@ export class OpWorkPackagesCalendarService extends UntilDestroyedMixin { } private updateDateParam(dates:DatesSetArg) { - void this.$state.go( - '.', - { - cdate: this.timezoneService.formattedISODate(dates.view.calendar.getDate()), - // v6.beta3 fails to have type on the ViewAPI - cview: (dates.view as unknown as { type:string }).type, - }, - { - custom: { notify: false }, - }, - ); + const url = new URL(window.location.href); + + // Don't push a history entry when a split view is open: the date params are already + // encoded in the details URL, and pushing here would add a spurious details-URL entry + // that browser-back would restore (with the split view still visible). + if (url.pathname.includes('/details/')) { + return; + } + + const newDate = this.timezoneService.formattedISODate(dates.view.calendar.getDate()); + const newView = (dates.view as unknown as { type:string }).type; + + if (url.searchParams.get('cdate') === newDate && url.searchParams.get('cview') === newView) { + return; + } + + url.searchParams.set('cdate', newDate); + url.searchParams.set('cview', newView); + // Use a Turbo-compatible state so that browser history.back() triggers Turbo's + // restoration visit (full page reload), which correctly resets any open split view frame. + window.history.pushState({ turbo: { restorationIdentifier: crypto.randomUUID() } }, '', url); } updateDates(resizeInfo:EventResizeDoneArg|EventDropArg|EventReceiveArg, dragged?:boolean):ResourceChangeset { diff --git a/frontend/src/app/features/calendar/openproject-calendar.module.ts b/frontend/src/app/features/calendar/openproject-calendar.module.ts index ead83646fc5..fde87c840c5 100644 --- a/frontend/src/app/features/calendar/openproject-calendar.module.ts +++ b/frontend/src/app/features/calendar/openproject-calendar.module.ts @@ -32,12 +32,11 @@ import { ReactiveFormsModule } from '@angular/forms'; import { FullCalendarModule } from '@fullcalendar/angular'; import { WorkPackagesCalendarComponent } from 'core-app/features/calendar/wp-calendar/wp-calendar.component'; import { OpenprojectWorkPackagesModule } from 'core-app/features/work-packages/openproject-work-packages.module'; -import { UIRouterModule } from '@uirouter/angular'; import { TimeEntryCalendarComponent } from 'core-app/features/calendar/te-calendar/te-calendar.component'; import { OpenprojectFieldsModule } from 'core-app/shared/components/fields/openproject-fields.module'; import { OpenprojectTimeEntriesModule } from 'core-app/shared/components/time_entries/openproject-time-entries.module'; import { WorkPackagesCalendarPageComponent } from 'core-app/features/calendar/wp-calendar-page/wp-calendar-page.component'; -import { CALENDAR_ROUTES } from 'core-app/features/calendar/calendar.routes'; +import { CalendarEntryComponent } from 'core-app/features/calendar/calendar-entry.component'; import { QueryGetIcalUrlModalComponent } from 'core-app/shared/components/modals/get-ical-url-modal/query-get-ical-url.modal'; @NgModule({ @@ -45,9 +44,6 @@ import { QueryGetIcalUrlModalComponent } from 'core-app/shared/components/modals // Commons OpSharedModule, - // Routes for /calendar - UIRouterModule.forChild({ states: CALENDAR_ROUTES }), - // Work Package module OpenprojectWorkPackagesModule, @@ -65,6 +61,7 @@ import { QueryGetIcalUrlModalComponent } from 'core-app/shared/components/modals ], declarations: [ // Work package calendars + CalendarEntryComponent, WorkPackagesCalendarPageComponent, WorkPackagesCalendarComponent, TimeEntryCalendarComponent, diff --git a/frontend/src/app/features/calendar/wp-calendar-page/wp-calendar-page.component.ts b/frontend/src/app/features/calendar/wp-calendar-page/wp-calendar-page.component.ts index 06bc7e78440..f307e19bb0b 100644 --- a/frontend/src/app/features/calendar/wp-calendar-page/wp-calendar-page.component.ts +++ b/frontend/src/app/features/calendar/wp-calendar-page/wp-calendar-page.component.ts @@ -29,6 +29,8 @@ import { ChangeDetectionStrategy, Component, + Input, + OnInit, ViewChild, } from '@angular/core'; import { WorkPackagesCalendarComponent } from 'core-app/features/calendar/wp-calendar/wp-calendar.component'; @@ -50,7 +52,8 @@ import { ActionsService } from 'core-app/core/state/actions/actions.service'; import { InjectField } from 'core-app/shared/helpers/angular/inject-field.decorator'; @Component({ - templateUrl: '../../work-packages/routing/partitioned-query-space-page/partitioned-query-space-page.component.html', + selector: 'op-wp-calendar-page', + templateUrl: '../../work-packages/routing/partitioned-query-space-page/primerized-partitioned-query-space-page.component.html', styleUrls: [ '../../work-packages/routing/partitioned-query-space-page/partitioned-query-space-page.component.sass', ], @@ -60,7 +63,9 @@ import { InjectField } from 'core-app/shared/helpers/angular/inject-field.decora ], standalone: false, }) -export class WorkPackagesCalendarPageComponent extends PartitionedQuerySpacePageComponent { +export class WorkPackagesCalendarPageComponent extends PartitionedQuerySpacePageComponent implements OnInit { + @Input() queryId:string; + @InjectField(ActionsService) actions$:ActionsService; @ViewChild(WorkPackagesCalendarComponent, { static: true }) calendarElement:WorkPackagesCalendarComponent; @@ -121,6 +126,20 @@ export class WorkPackagesCalendarPageComponent extends PartitionedQuerySpacePage }, ]; + override ngOnInit():void { + super.ngOnInit(); + // Fix showToolbarSaveButton from actual URL params (not uiRouter state) + this.showToolbarSaveButton = !!new URLSearchParams(window.location.search).get('query_props'); + + // Update save button reactively when query_props changes via pushState (non-uiRouter pages) + this.wpListChecksumService.visibleChecksum$ + .pipe(this.untilDestroyed()) + .subscribe((checksum) => { + this.showToolbarSaveButton = !!checksum; + this.cdRef.detectChanges(); + }); + } + /** * We need to set the current partition to the grid to ensure * either side gets expanded to full width if we're not in '-split' mode. diff --git a/frontend/src/app/features/calendar/wp-calendar/wp-calendar.component.ts b/frontend/src/app/features/calendar/wp-calendar/wp-calendar.component.ts index e0f6f2f5f2c..7c60b93882b 100644 --- a/frontend/src/app/features/calendar/wp-calendar/wp-calendar.component.ts +++ b/frontend/src/app/features/calendar/wp-calendar/wp-calendar.component.ts @@ -57,7 +57,6 @@ import { WorkPackageViewFiltersService, } from 'core-app/features/work-packages/routing/wp-view-base/view-services/wp-view-filters.service'; import { WorkPackagesListService } from 'core-app/features/work-packages/components/wp-list/wp-list.service'; -import { StateService } from '@uirouter/core'; import { I18nService } from 'core-app/core/i18n/i18n.service'; import { ToastService } from 'core-app/shared/components/toaster/toast.service'; import { DomSanitizer } from '@angular/platform-browser'; @@ -70,7 +69,7 @@ import { HalResourceEditingService, } from 'core-app/shared/components/fields/edit/services/hal-resource-editing.service'; import { HalResourceNotificationService } from 'core-app/features/hal/services/hal-resource-notification.service'; -import { splitViewRoute } from 'core-app/features/work-packages/routing/split-view-routes.helper'; +import { PathHelperService } from 'core-app/core/path-helper/path-helper.service'; import { CalendarViewEvent, OpWorkPackagesCalendarService, @@ -88,7 +87,6 @@ import { import { ApiV3Service } from 'core-app/core/apiv3/api-v3.service'; import { ApiV3FilterBuilder } from 'core-app/shared/helpers/api-v3/api-v3-filter-builder'; import allLocales from '@fullcalendar/core/locales-all'; -import { PathHelperService } from 'core-app/core/path-helper/path-helper.service'; import { MeetingResource } from 'core-app/features/hal/resources/meeting-resource'; import { TimezoneService } from 'core-app/core/datetime/timezone.service'; @@ -128,7 +126,6 @@ export class WorkPackagesCalendarComponent extends UntilDestroyedMixin implement constructor( readonly actions$:ActionsService, readonly states:States, - readonly $state:StateService, readonly wpTableFilters:WorkPackageViewFiltersService, readonly wpListService:WorkPackagesListService, readonly querySpace:IsolatedQuerySpace, @@ -342,16 +339,13 @@ export class WorkPackagesCalendarComponent extends UntilDestroyedMixin implement } if (evt.event.extendedProps.workPackage) { - const workPackageId = (evt.event.extendedProps.workPackage as WorkPackageResource).id!; + const wp = evt.event.extendedProps.workPackage as WorkPackageResource; // Currently the calendar widget is shown on multiple pages, // but only the calendar module itself is a partitioned query space which can deal with a split screen request - if (this.$state.includes('calendar')) { - this.workPackagesCalendar.openSplitView(workPackageId); + if (window.location.pathname.includes('/calendars/')) { + this.workPackagesCalendar.openSplitView(wp.id!); } else { - void this.$state.go( - 'work-packages.show', - { workPackageId }, - ); + window.location.href = this.pathHelper.workPackagePath(wp.displayId); } } }, @@ -414,7 +408,7 @@ export class WorkPackagesCalendarComponent extends UntilDestroyedMixin implement durationEditable: this.workPackagesCalendar.eventDurationEditable(workPackage), end: exclusiveEnd, allDay: true, - className: `fc-event-clickable __hl_background_type_${workPackage.type.id || ''}`, + className: `fc-event-clickable __hl_background_type_${workPackage.type.id ?? ''}`, workPackage, }; }); @@ -444,13 +438,14 @@ export class WorkPackagesCalendarComponent extends UntilDestroyedMixin implement ignoreNonWorkingDays: nonWorkingDays, }; - void this.$state.go( - splitViewRoute(this.$state, 'new'), - { - defaults, - tabIdentifier: 'overview', - }, - ); + if (window.location.pathname.includes('/calendars/')) { + const extraParams:Record = { + startDate: defaults.startDate, + dueDate: defaults.dueDate, + ...(defaults.ignoreNonWorkingDays ? { ignoreNonWorkingDays: 'true' } : {}), + }; + this.workPackagesCalendar.openSplitCreate(extraParams); + } } @EffectCallback(calendarRefreshRequest) diff --git a/frontend/src/app/features/hal/hal-link/hal-link.ts b/frontend/src/app/features/hal/hal-link/hal-link.ts index 8cd477a3f49..7a336ad204f 100644 --- a/frontend/src/app/features/hal/hal-link/hal-link.ts +++ b/frontend/src/app/features/hal/hal-link/hal-link.ts @@ -42,6 +42,7 @@ export interface HalLinkInterface { payload?:any; type?:string; identifier?:string; + displayId?:string; } export interface HalLinkSource { @@ -62,7 +63,8 @@ export class HalLink implements HalLinkInterface { public templated = false, public payload?:any, public type = 'application/json', - public identifier?:string) { + public identifier?:string, + public displayId?:string) { } /** @@ -78,6 +80,7 @@ export class HalLink implements HalLinkInterface { link.payload, link.type, link.identifier, + link.displayId, ); } @@ -114,6 +117,7 @@ export class HalLink implements HalLinkInterface { this.payload, this.type, this.identifier, + this.displayId, ).$callable(); } @@ -134,6 +138,7 @@ export class HalLink implements HalLinkInterface { payload: this.payload, type: this.type, identifier: this.identifier, + displayId: this.displayId, }); return linkFunc; diff --git a/frontend/src/app/features/hal/resources/hal-resource.spec.ts b/frontend/src/app/features/hal/resources/hal-resource.spec.ts index 3001b7e3561..01f8c92e27f 100644 --- a/frontend/src/app/features/hal/resources/hal-resource.spec.ts +++ b/frontend/src/app/features/hal/resources/hal-resource.spec.ts @@ -37,7 +37,8 @@ import { OpenprojectHalModule } from 'core-app/features/hal/openproject-hal.modu import { HalLink, HalLinkInterface } from 'core-app/features/hal/hal-link/hal-link'; import { provideHttpClientTesting } from '@angular/common/http/testing'; import { provideHttpClient, withInterceptorsFromDi } from '@angular/common/http'; -import Spy = jasmine.Spy; +import type { Mock } from 'vitest'; +type Spy = Mock; describe('HalResource', () => { let halResourceService:HalResourceService; @@ -45,21 +46,21 @@ describe('HalResource', () => { let source:any; let resource:HalResource; - - class OtherResource extends HalResource { - } + let OtherResource:typeof HalResource; beforeEach(async () => { + OtherResource = class extends HalResource {}; + await TestBed.configureTestingModule({ - imports: [OpenprojectHalModule], - providers: [ + imports: [OpenprojectHalModule], + providers: [ HalResourceService, States, I18nService, provideHttpClient(withInterceptorsFromDi()), provideHttpClientTesting(), - ] -}).compileComponents(); + ] + }).compileComponents(); halResourceService = TestBed.inject(HalResourceService); injector = TestBed.inject(Injector); }); @@ -71,7 +72,7 @@ describe('HalResource', () => { }); describe('when updating a loaded resource using `$update()`', () => { - let getStub:jasmine.Spy; + let getStub:Mock; beforeEach(() => { source = { @@ -82,7 +83,7 @@ describe('HalResource', () => { }, }; - getStub = spyOn(halResourceService, 'request').and.callFake((verb:string, path:string) => { + getStub = vi.spyOn(halResourceService, 'request').mockImplementation((verb:string, path:string) => { if (verb === 'get' && path === '/api/hello') { return of(halResourceService.createHalResource(source)) as any; } @@ -106,7 +107,7 @@ describe('HalResource', () => { }); it('should be an instance of HalResource', () => { - expect(resource).toEqual(jasmine.any(HalResource)); + expect(resource).toEqual(expect.any(HalResource)); }); }); @@ -121,19 +122,16 @@ describe('HalResource', () => { }, }; - halResourceService.registerResource( - 'Other', - { cls: OtherResource, attrTypes: { someResource: 'Other' } }, - ); + halResourceService.registerResource('Other', { cls: OtherResource, attrTypes: { someResource: 'Other' } }); resource = halResourceService.createHalResource(source, false); }); it('should be an instance of that type', () => { - expect(resource).toEqual(jasmine.any(OtherResource)); + expect(resource).toEqual(expect.any(OtherResource)); }); it('should have an attribute that is of the configured instance', () => { - expect(resource.someResource).toEqual(jasmine.any(OtherResource)); + expect(resource.someResource).toEqual(expect.any(OtherResource)); }); it('should not be loaded', () => { @@ -147,8 +145,8 @@ describe('HalResource', () => { let embeddedFn:Spy; beforeEach(() => { - linkFn = jasmine.createSpy(); - embeddedFn = jasmine.createSpy(); + linkFn = vi.fn(); + embeddedFn = vi.fn(); resource = halResourceService.createHalResource({ _links: { @@ -167,25 +165,25 @@ describe('HalResource', () => { }); it('should not have touched the source links initially', () => { - expect(linkFn.calls.count()).toEqual(0); + expect(vi.mocked(linkFn).mock.calls.length).toEqual(0); }); it('should not have touched the embedded elements of the source initially', () => { - expect(embeddedFn.calls.count()).toEqual(0); + expect(vi.mocked(embeddedFn).mock.calls.length).toEqual(0); }); it('should use the source link only once when called', () => { resource.link; resource.link; - expect(linkFn.calls.count()).toEqual(1); + expect(vi.mocked(linkFn).mock.calls.length).toEqual(1); }); it('should use the source embedded only once when called', () => { resource.resource; resource.resource; - expect(embeddedFn.calls.count()).toEqual(1); + expect(vi.mocked(embeddedFn).mock.calls.length).toEqual(1); }); }); @@ -377,7 +375,7 @@ describe('HalResource', () => { }); it('should have a callable self link', () => { - spyOn(halResourceService, 'request').and.callFake((verb:string, path:string) => { + vi.spyOn(halResourceService, 'request').mockImplementation((verb:string, path:string) => { if (verb === 'get' && path === 'unicorn/69') { return of(halResourceService.createHalResource({})) as any; } @@ -388,7 +386,7 @@ describe('HalResource', () => { }); it('should have a callable beaver', () => { - spyOn(halResourceService, 'request').and.callFake((verb:string, path:string) => { + vi.spyOn(halResourceService, 'request').mockImplementation((verb:string, path:string) => { if (verb === 'get' && path === 'justin/420') { return of(halResourceService.createHalResource({})) as any; } @@ -632,7 +630,8 @@ describe('HalResource', () => { it('should not be possible to override a link', () => { try { resource.$links.action = 'foo'; - } catch (ignore) { + } + catch (ignore) { /**/ } @@ -642,7 +641,8 @@ describe('HalResource', () => { it('should not be possible to override an embedded resource', () => { try { resource.$embedded.embedded = 'foo'; - } catch (ignore) { + } + catch (ignore) { /**/ } @@ -713,18 +713,18 @@ describe('HalResource', () => { }); describe('when loading it', () => { - let getStub:jasmine.Spy; + let getStub:Mock; let newResult:any; let promise:Promise; - beforeEach((done) => { + beforeEach(async () => { const result = halResourceService.createHalResource({ _links: {}, name: 'name', foo: 'bar', }); - getStub = spyOn(halResourceService, 'request').and.callFake((verb:string, path:string) => { + getStub = vi.spyOn(halResourceService, 'request').mockImplementation((verb:string, path:string) => { if (verb === 'get' && path === '/api/property') { return of(result) as any; } @@ -737,35 +737,36 @@ describe('HalResource', () => { }); expect(getStub).toHaveBeenCalled(); - done(); }); - it('should be loaded', (done) => { - promise.then(() => { - expect(resource.$loaded).toBeTruthy(); - done(); - }).catch(done.fail); + it('should be loaded', async () => { + await promise; + + expect(resource.$loaded).toBeTruthy(); }); - it('should be updated', () => { + it('should be updated', async () => { + await promise; + expect(newResult.name).toEqual('name'); }); - it('should have properties that have a getter and setter', () => { + it('should have properties that have a getter and setter', async () => { + await promise; + const descriptor = Object.getOwnPropertyDescriptor(newResult, 'foo'); - expect(descriptor).toBeDefined('Descriptor should be defined'); + expect(descriptor).toBeDefined(); - expect(descriptor!.get).toBeDefined('Descriptor getter should be defined'); - expect(descriptor!.set).toBeDefined('Descriptor setter should be defined'); + expect(descriptor!.get).toBeDefined(); + expect(descriptor!.set).toBeDefined(); }); - it('should return itself in a promise if already loaded', () => { + it('should return itself in a promise if already loaded', async () => { resource.$loaded = true; - resource.$load().then((result:HalResource) => { - expect(result).toEqual(resource); - }); + const result = await resource.$load(); + expect(result).toEqual(resource); }); }); }); diff --git a/frontend/src/app/features/hal/resources/project-resource.ts b/frontend/src/app/features/hal/resources/project-resource.ts index 0f5e2f7c00e..10cb6240431 100644 --- a/frontend/src/app/features/hal/resources/project-resource.ts +++ b/frontend/src/app/features/hal/resources/project-resource.ts @@ -30,6 +30,11 @@ import { HalResource } from 'core-app/features/hal/resources/hal-resource'; import { ICKEditorContext } from 'core-app/shared/components/editor/components/ckeditor/ckeditor.types'; export class ProjectResource extends HalResource { + public get identifier():string { + // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access + return this.$source.identifier as string; + } + public get state() { return this.states.projects.get(this.id!) as any; } diff --git a/frontend/src/app/features/hal/resources/work-package-resource.spec.ts b/frontend/src/app/features/hal/resources/work-package-resource.spec.ts index aa47c69715e..bdc805a2b08 100644 --- a/frontend/src/app/features/hal/resources/work-package-resource.spec.ts +++ b/frontend/src/app/features/hal/resources/work-package-resource.spec.ts @@ -70,8 +70,8 @@ describe('WorkPackage', () => { beforeEach(async () => { await TestBed.configureTestingModule({ - imports: [OpenprojectHalModule], - providers: [ + imports: [OpenprojectHalModule], + providers: [ HalResourceService, States, TimezoneService, @@ -89,20 +89,27 @@ describe('WorkPackage', () => { { provide: SchemaCacheService, useValue: {} }, provideHttpClient(withInterceptorsFromDi()), provideHttpClientTesting(), - ] -}).compileComponents(); + ] + }).compileComponents(); halResourceService = TestBed.inject(HalResourceService); injector = TestBed.inject(Injector); halResourceNotification = injector.get(HalResourceNotificationService); - halResourceService.registerResource('WorkPackage', { cls: WorkPackageResource }); + halResourceService.registerResource('WorkPackage', { + cls: WorkPackageResource, + attrTypes: { + parent: 'WorkPackage', + ancestors: 'WorkPackage', + children: 'WorkPackage', + }, + }); }); describe('when creating an empty work package', () => { beforeEach(createWorkPackage); it('should have an attachments property of type `AttachmentCollectionResource`', () => { - expect(workPackage.attachments).toEqual(jasmine.any(AttachmentCollectionResource)); + expect(workPackage.attachments).toEqual(expect.any(AttachmentCollectionResource)); }); it('should return true for `isNewResource`', () => { @@ -141,7 +148,54 @@ describe('WorkPackage', () => { }); }); -}); + describe('when displayId is absent but present on the self link (linked ancestor/child)', () => { + beforeEach(() => { + source = { + _links: { + self: { + href: '/api/v3/work_packages/11099', + title: 'subj child', + displayId: 'ACSMT-15', + }, + }, + }; + createWorkPackage(); + }); + + it('should fall back to the semantic identifier on the self link', () => { + expect(workPackage.displayId).toEqual('ACSMT-15'); + }); + }); + + describe('when built from a parent work package _links.ancestors array', () => { + // Mirrors the real HAL pipeline: the parent exposes an ancestors link + // array; each entry carries displayId alongside href/title; the builder + // creates an ancestor WorkPackageResource through HalLink, which must + // preserve displayId end-to-end. + beforeEach(() => { + source = { + _links: { + self: { href: '/api/v3/work_packages/42' }, + ancestors: [ + { + href: '/api/v3/work_packages/11099', + title: 'subj child', + displayId: 'ACSMT-15', + }, + ], + }, + }; + createWorkPackage(); + }); + + it('surfaces the semantic displayId on each ancestor resource', () => { + const ancestor = (workPackage as any).ancestors[0] as WorkPackageResource; + + expect(ancestor.displayId).toEqual('ACSMT-15'); + }); + }); + + }); describe('formattedId', () => { afterEach(() => { @@ -162,7 +216,7 @@ describe('WorkPackage', () => { expect(workPackage.formattedId).toEqual('#42'); }); -}); + }); describe('subjectWithId', () => { afterEach(() => { diff --git a/frontend/src/app/features/hal/resources/work-package-resource.ts b/frontend/src/app/features/hal/resources/work-package-resource.ts index 1210ce87e1b..681189d29fa 100644 --- a/frontend/src/app/features/hal/resources/work-package-resource.ts +++ b/frontend/src/app/features/hal/resources/work-package-resource.ts @@ -50,6 +50,7 @@ import { Attachable } from 'core-app/features/hal/resources/mixins/attachable-mi import { ICKEditorContext } from 'core-app/shared/components/editor/components/ckeditor/ckeditor.types'; import isNewResource from 'core-app/features/hal/helpers/is-new-resource'; import { IWorkPackageTimestamp } from 'core-app/features/hal/resources/work-package-timestamp-resource'; +import { formatWorkPackageId } from 'core-app/shared/helpers/work-package-id-pattern'; export interface WorkPackageResourceEmbedded { activities:CollectionResource; @@ -126,11 +127,28 @@ export class WorkPackageBaseResource extends HalResource { public subject:string; /** - * Returns the user-facing work package identifier. - * "PROJ-42" in semantic mode, "42" in classic mode. + * The canonical user-facing work package identifier. + * + * - Semantic mode: `"PROJ-42"` (project-scoped, contains letters) + * - Classic mode: `"42"` (numeric only) + * + * This is the correct value for URL path segments — use this rather + * than `id` when constructing work package hrefs. The numeric `id` + * (primary key) should only appear in data attributes and internal + * state management (selection, focus, hover). + * + * Falls back to the self link's `displayId` — ancestor/children links + * in the API expose `displayId` alongside `href`/`title` because those + * HAL resources are built from a link payload alone, without a + * top-level `displayId`. Finally falls back to `id` (defensive against + * stale cache during rolling deploys, and for resources built from + * bare hrefs). */ public get displayId():string { - return this.$source.displayId?.toString() ?? this.id?.toString() ?? ''; + return this.$source.displayId?.toString() + ?? this.$source._links?.self?.displayId?.toString() + ?? this.id?.toString() + ?? ''; } /** @@ -139,8 +157,7 @@ export class WorkPackageBaseResource extends HalResource { * Semantic mode: `PROJ-42` (no prefix — the identifier is self-describing) */ public get formattedId():string { - const wpId = this.displayId; - return /[A-Za-z]/.test(wpId) ? wpId : `#${wpId}`; + return formatWorkPackageId(this.displayId); } public updatedAt:Date; diff --git a/frontend/src/app/features/in-app-notifications/entry/in-app-notification-entry.component.html b/frontend/src/app/features/in-app-notifications/entry/in-app-notification-entry.component.html index fadebcdea8b..f2e7243297e 100644 --- a/frontend/src/app/features/in-app-notifications/entry/in-app-notification-entry.component.html +++ b/frontend/src/app/features/in-app-notifications/entry/in-app-notification-entry.component.html @@ -7,7 +7,7 @@ (keydown.space)="$event.preventDefault(); onClick()" (dblclick)="onDoubleClick()" > - @if (workPackage$ && (workPackage$ | async); as workPackage) { + @if (workPackage$ | async; as workPackage) {

    @@ -19,7 +19,7 @@ [class.spot-link_inactive]="isMobile()" [attr.title]="workPackage.subject" [textContent]="workPackage.formattedId" - [attr.href]="fullScreenLink()" + [attr.href]="pathHelper.workPackagePath(workPackage.displayId)" (click)="onLinkClick($event)" > @@ -108,7 +108,7 @@
    } @else {
    - @if (workPackage$) { + @if (workPackageId) { |null = null; + // Latest streamed work package, cached for synchronous reads from click + // handlers (which need displayId to build the URL). + private latestWorkPackage:WorkPackageResource|null = null; + showDateAlert = false; hasReminderAlert = false; @@ -47,7 +53,7 @@ export class InAppNotificationEntryComponent implements OnInit { private clickTimer:ReturnType; - private workPackageId:string|null; + workPackageId:string|null; constructor( readonly apiV3Service:ApiV3Service, @@ -58,6 +64,7 @@ export class InAppNotificationEntryComponent implements OnInit { readonly deviceService:DeviceService, readonly urlParams:UrlParamsService, ) { + super(); } ngOnInit():void { @@ -77,13 +84,19 @@ export class InAppNotificationEntryComponent implements OnInit { private loadWorkPackage() { // not a work package reference - if (this.workPackageId) { - this.workPackage$ = this - .apiV3Service - .work_packages - .id(this.workPackageId) - .requireAndStream(); + if (!this.workPackageId) { + return; } + + this.workPackage$ = this + .apiV3Service + .work_packages + .id(this.workPackageId) + .requireAndStream() + .pipe( + tap((wp) => { this.latestWorkPackage = wp; }), + this.untilDestroyed(), + ); } onClick():void { @@ -101,7 +114,8 @@ export class InAppNotificationEntryComponent implements OnInit { } const tab = this.showDateAlert ? 'overview' : 'activity'; - this.storeService.openSplitScreen(this.workPackageId, tab); + const id = this.latestWorkPackage?.displayId ?? this.workPackageId; + this.storeService.openSplitScreen(id, tab); } onDoubleClick():void { @@ -114,14 +128,11 @@ export class InAppNotificationEntryComponent implements OnInit { return; } - const link = this.pathHelper.workPackagePath(this.workPackageId) + window.location.search; + const id = this.latestWorkPackage?.displayId ?? this.workPackageId; + const link = this.pathHelper.workPackagePath(id) + window.location.search; Turbo.visit(link, { action: 'advance' }); } - fullScreenLink():string { - return this.workPackageId ? this.pathHelper.workPackagePath(this.workPackageId) : this.pathHelper.workPackagesPath(null); - } - onLinkClick(e:Event):void { e.stopPropagation(); } diff --git a/frontend/src/app/features/plugins/hook-service.spec.ts b/frontend/src/app/features/plugins/hook-service.spec.ts index e87f3f70481..b57c8d2554d 100644 --- a/frontend/src/app/features/plugins/hook-service.spec.ts +++ b/frontend/src/app/features/plugins/hook-service.spec.ts @@ -31,8 +31,8 @@ import { HookService } from 'core-app/features/plugins/hook-service'; describe('HookService', () => { let service:HookService = new HookService(); - let callback:any; let - invalidCallback:any; + let callback:any; + let invalidCallback:any; const validId = 'myValidCallbacks'; beforeEach(() => { @@ -80,7 +80,7 @@ describe('HookService', () => { describe('valid function callback registered', () => { beforeEach(() => { - callback = jasmine.createSpy('hook'); + callback = vi.fn(); service.register('myValidCallbacks', callback); }); @@ -93,7 +93,7 @@ describe('HookService', () => { describe('call', () => { describe('function that returns undefined', () => { beforeEach(() => { - callback = jasmine.createSpy('hook'); + callback = vi.fn(); service.register('myValidCallbacks', callback); }); @@ -104,7 +104,7 @@ describe('HookService', () => { describe('function that returns something that is not undefined', () => { beforeEach(() => { - callback = jasmine.createSpy('hook').and.returnValue({}); + callback = vi.fn().mockReturnValue({}); service.register('myValidCallbacks', callback); }); @@ -116,7 +116,7 @@ describe('HookService', () => { describe('function that returns something that is not undefined', () => { beforeEach(() => { - callback = jasmine.createSpy('hook').and.returnValue({}); + callback = vi.fn().mockReturnValue({}); service.register('myValidCallbacks', callback); }); @@ -128,8 +128,8 @@ describe('HookService', () => { describe('function that returns something that is not undefined', () => { beforeEach(() => { - callback = jasmine.createSpy('hook'); - invalidCallback = jasmine.createSpy('invalidHook'); + callback = vi.fn(); + invalidCallback = vi.fn(); service.register('myValidCallbacks', callback); @@ -142,12 +142,12 @@ describe('HookService', () => { }); describe('function that returns something that is not undefined', () => { - let callback1; let - callback2; + let callback1; + let callback2; beforeEach(() => { - callback1 = jasmine.createSpy('hook1').and.returnValue({}); - callback2 = jasmine.createSpy('hook1').and.returnValue({}); + callback1 = vi.fn().mockReturnValue({}); + callback2 = vi.fn().mockReturnValue({}); service.register('myValidCallbacks', callback1); service.register('myValidCallbacks', callback2); diff --git a/frontend/src/app/features/team-planner/team-planner/add-work-packages/add-existing-pane.component.ts b/frontend/src/app/features/team-planner/team-planner/add-work-packages/add-existing-pane.component.ts index 1636b2e96c3..6ef92b88a1b 100644 --- a/frontend/src/app/features/team-planner/team-planner/add-work-packages/add-existing-pane.component.ts +++ b/frontend/src/app/features/team-planner/team-planner/add-work-packages/add-existing-pane.component.ts @@ -32,12 +32,9 @@ import { UrlParamsHelperService } from 'core-app/features/work-packages/componen import { IsolatedQuerySpace } from 'core-app/features/work-packages/directives/query-space/isolated-query-space'; import { UntilDestroyedMixin } from 'core-app/shared/helpers/angular/until-destroyed.mixin'; import { CalendarDragDropService } from 'core-app/features/team-planner/team-planner/calendar-drag-drop.service'; -import { splitViewRoute } from 'core-app/features/work-packages/routing/split-view-routes.helper'; -import { StateService } from '@uirouter/core'; import { ActionsService } from 'core-app/core/state/actions/actions.service'; import { teamPlannerEventRemoved } from 'core-app/features/team-planner/team-planner/planner/team-planner.actions'; import { WorkPackageViewFiltersService } from 'core-app/features/work-packages/routing/wp-view-base/view-services/wp-view-filters.service'; -import { OpCalendarService } from 'core-app/features/calendar/op-calendar.service'; import { OpWorkPackagesCalendarService } from 'core-app/features/calendar/op-work-packages-calendar.service'; @Component({ @@ -121,7 +118,6 @@ export class AddExistingPaneComponent extends UntilDestroyedMixin implements OnI private readonly urlParamsHelper:UrlParamsHelperService, private readonly workPackagesCalendar:OpWorkPackagesCalendarService, private readonly calendarDrag:CalendarDragDropService, - private readonly $state:StateService, private readonly actions$:ActionsService, private readonly wpFilters:WorkPackageViewFiltersService, ) { @@ -214,10 +210,7 @@ export class AddExistingPaneComponent extends UntilDestroyedMixin implements OnI } openStateLink(event:{ workPackageId:string; requestedState:string }):void { - void this.$state.go( - `${splitViewRoute(this.$state)}.tabs`, - { workPackageId: event.workPackageId, tabIdentifier: 'overview' }, - ); + this.workPackagesCalendar.openSplitView(event.workPackageId); } private addExistingFilters(filters:ApiV3FilterBuilder) { diff --git a/frontend/src/app/features/team-planner/team-planner/page/team-planner-page.component.ts b/frontend/src/app/features/team-planner/team-planner/page/team-planner-page.component.ts index d77dd42af8a..9cb3167c497 100644 --- a/frontend/src/app/features/team-planner/team-planner/page/team-planner-page.component.ts +++ b/frontend/src/app/features/team-planner/team-planner/page/team-planner-page.component.ts @@ -31,7 +31,8 @@ import { OpWorkPackagesCalendarService } from 'core-app/features/calendar/op-wor import { OpCalendarService } from 'core-app/features/calendar/op-calendar.service'; @Component({ - templateUrl: '../../../work-packages/routing/partitioned-query-space-page/partitioned-query-space-page.component.html', + selector: 'op-team-planner-page', + templateUrl: '../../../work-packages/routing/partitioned-query-space-page/primerized-partitioned-query-space-page.component.html', styleUrls: [ '../../../work-packages/routing/partitioned-query-space-page/partitioned-query-space-page.component.sass', ], @@ -98,6 +99,17 @@ export class TeamPlannerPageComponent extends PartitionedQuerySpacePageComponent public ngOnInit():void { super.ngOnInit(); + // Fix showToolbarSaveButton from actual URL params (not uiRouter state) + this.showToolbarSaveButton = !!new URLSearchParams(window.location.search).get('query_props'); + + // Update save button reactively when query_props changes via pushState + this.wpListChecksumService.visibleChecksum$ + .pipe(this.untilDestroyed()) + .subscribe((checksum) => { + this.showToolbarSaveButton = !!checksum; + this.cdRef.detectChanges(); + }); + registerEffectCallbacks(this, this.untilDestroyed()); this.wpTableFilters.hidden.push( diff --git a/frontend/src/app/features/team-planner/team-planner/planner/team-planner.component.html b/frontend/src/app/features/team-planner/team-planner/planner/team-planner.component.html index 3ebc827c247..e43d51c6725 100644 --- a/frontend/src/app/features/team-planner/team-planner/planner/team-planner.component.html +++ b/frontend/src/app/features/team-planner/team-planner/planner/team-planner.component.html @@ -98,7 +98,7 @@ [showStartDate]="!isWpStartDateInCurrentView(wp)" [showEndDate]="!isWpEndDateInCurrentView(wp)" (stateLinkClicked)="openStateLink($event)" - (cardClicked)="workPackagesCalendar.onCardClicked($event)" + (cardClicked)="onCardClicked($event)" (cardDblClicked)="workPackagesCalendar.onCardDblClicked($event)" (cardContextMenu)="workPackagesCalendar.showEventContextMenu($event)" /> diff --git a/frontend/src/app/features/team-planner/team-planner/planner/team-planner.component.ts b/frontend/src/app/features/team-planner/team-planner/planner/team-planner.component.ts index 14a92373753..569a70aac64 100644 --- a/frontend/src/app/features/team-planner/team-planner/planner/team-planner.component.ts +++ b/frontend/src/app/features/team-planner/team-planner/planner/team-planner.component.ts @@ -63,7 +63,6 @@ import { take, withLatestFrom, } from 'rxjs/operators'; -import { StateService } from '@uirouter/angular'; import resourceTimelinePlugin from '@fullcalendar/resource-timeline'; import interactionPlugin, { EventDragStartArg, @@ -77,7 +76,6 @@ import { ConfigurationService } from 'core-app/core/config/configuration.service import { WorkPackageViewFiltersService } from 'core-app/features/work-packages/routing/wp-view-base/view-services/wp-view-filters.service'; import { IsolatedQuerySpace } from 'core-app/features/work-packages/directives/query-space/isolated-query-space'; import { CurrentProjectService } from 'core-app/core/current-project/current-project.service'; -import { splitViewRoute } from 'core-app/features/work-packages/routing/split-view-routes.helper'; import { QueryFilterInstanceResource } from 'core-app/features/hal/resources/query-filter-instance-resource'; import { PrincipalsResourceService } from 'core-app/core/state/principals/principals.service'; import { @@ -96,7 +94,6 @@ import { MAGIC_PAGE_NUMBER } from 'core-app/core/apiv3/helpers/get-paginated-res import { CalendarDragDropService } from 'core-app/features/team-planner/team-planner/calendar-drag-drop.service'; import { StatusResource } from 'core-app/features/hal/resources/status-resource'; import { ResourceChangeset } from 'core-app/shared/components/fields/changeset/resource-changeset'; -import { KeepTabService } from 'core-app/features/work-packages/components/wp-single-view-tabs/keep-tab/keep-tab.service'; import { HalError } from 'core-app/features/hal/services/hal-error'; import { ActionsService } from 'core-app/core/state/actions/actions.service'; import { @@ -407,7 +404,6 @@ export class TeamPlannerComponent extends UntilDestroyedMixin implements OnInit, }; constructor( - private $state:StateService, private configuration:ConfigurationService, private principalsResourceService:PrincipalsResourceService, private capabilitiesResourceService:CapabilitiesResourceService, @@ -423,7 +419,6 @@ export class TeamPlannerComponent extends UntilDestroyedMixin implements OnInit, readonly schemaCache:SchemaCacheService, readonly apiV3Service:ApiV3Service, readonly calendarDrag:CalendarDragDropService, - readonly keepTab:KeepTabService, readonly actions$:ActionsService, readonly toastService:ToastService, readonly loadingIndicatorService:LoadingIndicatorService, @@ -460,6 +455,7 @@ export class TeamPlannerComponent extends UntilDestroyedMixin implements OnInit, .pipe( this.untilDestroyed(), debounceTime(0), + filter(() => !!this.ucCalendar), ) .subscribe(([principals, showAddAssignee]) => { const api = this.ucCalendar.getApi(); @@ -827,36 +823,31 @@ export class TeamPlannerComponent extends UntilDestroyedMixin implements OnInit, ['$event.detail.start', '$event.detail.end', '$event.detail.assignee'], ) openNewSplitCreate(start:string, end:string, resourceHref:string, nonWorkingDays?:boolean):void { - const defaults = { - startDate: start, - dueDate: end, - _links: { - assignee: { - href: resourceHref, - }, - }, - ignoreNonWorkingDays: nonWorkingDays, - }; - - void this.$state.go( - splitViewRoute(this.$state, 'new'), - { - defaults, - tabIdentifier: 'overview', - }, - ); + const basePath = window.location.pathname.replace(/\/details\/.*$/, ''); + const search = new URLSearchParams(window.location.search); + search.set('startDate', start); + search.set('dueDate', end); + if (resourceHref) { + search.set('assignee_href', resourceHref); + } + if (nonWorkingDays) { + search.set('ignoreNonWorkingDays', 'true'); + } + Turbo.visit(`${basePath}/details/new?${search.toString()}`, { frame: 'content-bodyRight', action: 'advance' }); } openStateLink(event:{ workPackageId:string; requestedState:string }):void { - const params = { workPackageId: event.workPackageId }; - if (event.requestedState === 'split') { - this.keepTab.goCurrentDetailsState(params); + this.workPackagesCalendar.openSplitView(event.workPackageId); } else { - this.keepTab.goCurrentShowState(params.workPackageId); + this.workPackagesCalendar.openFullView(event.workPackageId); } } + onCardClicked({ workPackageId, event }:{ workPackageId:string, event:MouseEvent }):void { + this.workPackagesCalendar.onCardClicked({ workPackageId, event }); + } + shouldShowAsGhost(id:string, globalDraggingId:string|undefined):boolean { if (globalDraggingId === undefined) { return false; diff --git a/frontend/src/app/features/team-planner/team-planner/team-planner-entry.component.ts b/frontend/src/app/features/team-planner/team-planner/team-planner-entry.component.ts new file mode 100644 index 00000000000..639ef01f5b0 --- /dev/null +++ b/frontend/src/app/features/team-planner/team-planner/team-planner-entry.component.ts @@ -0,0 +1,27 @@ +import { + ChangeDetectionStrategy, + Component, + ElementRef, + OnDestroy, +} from '@angular/core'; +import { populateInputsFromDataset } from 'core-app/shared/components/dataset-inputs'; +import { + WorkPackageIsolatedQuerySpaceDirective, +} from 'core-app/features/work-packages/directives/query-space/wp-isolated-query-space.directive'; + +@Component({ + hostDirectives: [WorkPackageIsolatedQuerySpaceDirective], + template: '', + changeDetection: ChangeDetectionStrategy.OnPush, + standalone: false, +}) +export class TeamPlannerEntryComponent implements OnDestroy { + constructor(readonly elementRef:ElementRef) { + populateInputsFromDataset(this); + document.body.classList.add('router--team-planner'); + } + + ngOnDestroy():void { + document.body.classList.remove('router--team-planner'); + } +} diff --git a/frontend/src/app/features/team-planner/team-planner/team-planner.module.ts b/frontend/src/app/features/team-planner/team-planner/team-planner.module.ts index 3d3d2c1e744..769e1259220 100644 --- a/frontend/src/app/features/team-planner/team-planner/team-planner.module.ts +++ b/frontend/src/app/features/team-planner/team-planner/team-planner.module.ts @@ -1,16 +1,15 @@ import { NgModule } from '@angular/core'; import { CommonModule } from '@angular/common'; -import { UIRouterModule } from '@uirouter/angular'; import { DynamicModule } from 'ng-dynamic-component'; import { FullCalendarModule } from '@fullcalendar/angular'; import { IconModule } from 'core-app/shared/components/icon/icon.module'; import { OpenprojectAutocompleterModule } from 'core-app/shared/components/autocompleter/openproject-autocompleter.module'; import { OpenprojectPrincipalRenderingModule } from 'core-app/shared/components/principal/principal-rendering.module'; import { OpenprojectWorkPackagesModule } from 'core-app/features/work-packages/openproject-work-packages.module'; -import { TEAM_PLANNER_ROUTES } from 'core-app/features/team-planner/team-planner/team-planner.routes'; import { TeamPlannerComponent } from 'core-app/features/team-planner/team-planner/planner/team-planner.component'; import { AddAssigneeComponent } from 'core-app/features/team-planner/team-planner/assignee/add-assignee.component'; import { TeamPlannerPageComponent } from 'core-app/features/team-planner/team-planner/page/team-planner-page.component'; +import { TeamPlannerEntryComponent } from 'core-app/features/team-planner/team-planner/team-planner-entry.component'; import { OpSharedModule } from 'core-app/shared/shared.module'; import { AddExistingPaneComponent } from './add-work-packages/add-existing-pane.component'; import { OpenprojectContentLoaderModule } from 'core-app/shared/components/op-content-loader/openproject-content-loader.module'; @@ -20,16 +19,13 @@ import { TeamPlannerViewSelectMenuDirective } from 'core-app/features/team-plann declarations: [ TeamPlannerComponent, TeamPlannerPageComponent, + TeamPlannerEntryComponent, AddAssigneeComponent, AddExistingPaneComponent, TeamPlannerViewSelectMenuDirective, ], imports: [ OpSharedModule, - // Routes for /team_planner - UIRouterModule.forChild({ - states: TEAM_PLANNER_ROUTES, - }), DynamicModule, CommonModule, IconModule, diff --git a/frontend/src/app/features/team-planner/team-planner/team-planner.routes.ts b/frontend/src/app/features/team-planner/team-planner/team-planner.routes.ts deleted file mode 100644 index 405fe948a81..00000000000 --- a/frontend/src/app/features/team-planner/team-planner/team-planner.routes.ts +++ /dev/null @@ -1,84 +0,0 @@ -//-- copyright -// OpenProject is an open source project management software. -// Copyright (C) the OpenProject GmbH -// -// This program is free software; you can redistribute it and/or -// modify it under the terms of the GNU General Public License version 3. -// -// OpenProject is a fork of ChiliProject, which is a fork of Redmine. The copyright follows: -// Copyright (C) 2006-2013 Jean-Philippe Lang -// Copyright (C) 2010-2013 the ChiliProject Team -// -// This program is free software; you can redistribute it and/or -// modify it under the terms of the GNU General Public License -// as published by the Free Software Foundation; either version 2 -// of the License, or (at your option) any later version. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with this program; if not, write to the Free Software -// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -// -// See COPYRIGHT and LICENSE files for more details. -//++ - -import { Ng2StateDeclaration } from '@uirouter/angular'; -import { makeSplitViewRoutes } from 'core-app/features/work-packages/routing/split-view-routes.template'; -import { WorkPackageSplitViewComponent } from 'core-app/features/work-packages/routing/wp-split-view/wp-split-view.component'; -import { WorkPackagesBaseComponent } from 'core-app/features/work-packages/routing/wp-base/wp--base.component'; -import { TeamPlannerPageComponent } from 'core-app/features/team-planner/team-planner/page/team-planner-page.component'; -import { TeamPlannerComponent } from 'core-app/features/team-planner/team-planner/planner/team-planner.component'; - -export const sidemenuId = 'team_planner_sidemenu'; -export const sideMenuOptions = { - sidemenuId, - hardReloadOnBaseRoute: true, - defaultQuery: 'new', -}; - -export const TEAM_PLANNER_ROUTES:Ng2StateDeclaration[] = [ - { - name: 'team_planner', - parent: 'optional_project', - url: '/team_planners/:query_id?query_props&cdate&cview', - redirectTo: 'team_planner.page', - views: { - '!$default': { component: WorkPackagesBaseComponent }, - }, - params: { - query_id: { type: 'opQueryId', dynamic: true }, - cdate: { type: 'string', dynamic: true }, - cview: { type: 'string', dynamic: true }, - // Use custom encoder/decoder that ensures validity of URL string - query_props: { type: 'opQueryString' }, - }, - }, - { - name: 'team_planner.page', - component: TeamPlannerPageComponent, - redirectTo: 'team_planner.page.show', - data: { - bodyClasses: 'router--team-planner', - sideMenuOptions, - }, - }, - { - name: 'team_planner.page.show', - data: { - baseRoute: 'team_planner.page.show', - sideMenuOptions, - }, - views: { - 'content-left': { component: TeamPlannerComponent }, - }, - }, - ...makeSplitViewRoutes( - 'team_planner.page.show', - undefined, - WorkPackageSplitViewComponent, - ), -]; diff --git a/frontend/src/app/features/work-packages/components/wp-breadcrumb/wp-breadcrumb-parent.component.ts b/frontend/src/app/features/work-packages/components/wp-breadcrumb/wp-breadcrumb-parent.component.ts index 2adba03db45..ac29f91b335 100644 --- a/frontend/src/app/features/work-packages/components/wp-breadcrumb/wp-breadcrumb-parent.component.ts +++ b/frontend/src/app/features/work-packages/components/wp-breadcrumb/wp-breadcrumb-parent.component.ts @@ -115,6 +115,6 @@ export class WorkPackageBreadcrumbParentComponent { } public parentLink(parent:WorkPackageResource):string { - return this.pathHelper.genericWorkPackagePath(parent.project?.identifier, parent.id!) + window.location.search; + return this.pathHelper.genericWorkPackagePath(parent.project?.identifier, parent.displayId) + window.location.search; } } diff --git a/frontend/src/app/features/work-packages/components/wp-breadcrumb/wp-breadcrumb.component.ts b/frontend/src/app/features/work-packages/components/wp-breadcrumb/wp-breadcrumb.component.ts index f56b4b1a23a..8f0662c6bb2 100644 --- a/frontend/src/app/features/work-packages/components/wp-breadcrumb/wp-breadcrumb.component.ts +++ b/frontend/src/app/features/work-packages/components/wp-breadcrumb/wp-breadcrumb.component.ts @@ -65,7 +65,7 @@ export class WorkPackageBreadcrumbComponent { } public ancestorPath(ancestor:WorkPackageResource):string { - return this.pathHelper.genericWorkPackagePath(this.workPackage.project?.identifier, ancestor.id!) + window.location.search; + return this.pathHelper.genericWorkPackagePath(this.workPackage.project?.identifier, ancestor.displayId) + window.location.search; } public updateActiveInput(val:boolean) { diff --git a/frontend/src/app/features/work-packages/components/wp-buttons/wp-details-view-button/wp-details-view-button.component.ts b/frontend/src/app/features/work-packages/components/wp-buttons/wp-details-view-button/wp-details-view-button.component.ts index 8e88709bea2..50462a62384 100644 --- a/frontend/src/app/features/work-packages/components/wp-buttons/wp-details-view-button/wp-details-view-button.component.ts +++ b/frontend/src/app/features/work-packages/components/wp-buttons/wp-details-view-button/wp-details-view-button.component.ts @@ -35,6 +35,7 @@ import { AbstractWorkPackageButtonComponent } from 'core-app/features/work-packa import { I18nService } from 'core-app/core/i18n/i18n.service'; import { States } from 'core-app/core/states/states.service'; import { KeepTabService } from '../../wp-single-view-tabs/keep-tab/keep-tab.service'; +import { resolveRoutingId } from 'core-app/features/work-packages/helpers/work-package-id-resolvers'; @Component({ templateUrl: '../wp-button.template.html', @@ -111,8 +112,9 @@ export class WorkPackageDetailsViewButtonComponent extends AbstractWorkPackageBu } public openDetailsView():void { + const focused = this.wpTableFocus.focusedWorkPackage; const params = { - workPackageId: this.wpTableFocus.focusedWorkPackage, + workPackageId: focused ? resolveRoutingId(this.states, focused) : focused, }; this.keepTab.goCurrentDetailsState(params); diff --git a/frontend/src/app/features/work-packages/components/wp-card-view/wp-single-card/wp-single-card.component.ts b/frontend/src/app/features/work-packages/components/wp-card-view/wp-single-card/wp-single-card.component.ts index 70ea0c0272f..799a816096d 100644 --- a/frontend/src/app/features/work-packages/components/wp-card-view/wp-single-card/wp-single-card.component.ts +++ b/frontend/src/app/features/work-packages/components/wp-card-view/wp-single-card/wp-single-card.component.ts @@ -35,8 +35,8 @@ import { isClickedWithModifier } from 'core-app/shared/helpers/link-handling/lin import isNewResource from 'core-app/features/hal/helpers/is-new-resource'; import { TimezoneService } from 'core-app/core/datetime/timezone.service'; import { StatusResource } from 'core-app/features/hal/resources/status-resource'; -import { EMPTY, merge } from 'rxjs'; -import { map } from 'rxjs/operators'; +import { EMPTY, fromEvent, merge } from 'rxjs'; +import { distinctUntilChanged, map } from 'rxjs/operators'; import { SchemaCacheService } from 'core-app/core/schemas/schema-cache.service'; import SpotDropAlignmentOption from 'core-app/spot/drop-alignment-options'; import { BaselineMode, getBaselineState } from 'core-app/features/work-packages/components/wp-baseline/baseline-helpers'; @@ -46,6 +46,10 @@ import { import { KeepTabService } from 'core-app/features/work-packages/components/wp-single-view-tabs/keep-tab/keep-tab.service'; +import { WP_ID_URL_PATTERN } from 'core-app/shared/helpers/work-package-id-pattern'; +import { matchesRoutingId } from 'core-app/features/work-packages/helpers/work-package-id-resolvers'; + +const DETAILS_URL_PATTERN = new RegExp(`/details/(${WP_ID_URL_PATTERN})(?:/|$)`); @Component({ selector: 'wp-single-card', @@ -134,19 +138,33 @@ export class WorkPackageSingleCardComponent extends UntilDestroyedMixin implemen // Use merge instead of combineLatest: params$ only emits on uiRouter transitions and // may never emit on pages that don't use uiRouter (e.g. boards). With merge, any // emission from either source triggers re-evaluation of the selection state. + // turbo:frame-load is included so that URL-based detection updates when the split + // view opens or closes via Turbo frame navigation. merge( this.wpTableSelection.live$(), this.uiRouterGlobals.params$ ?? EMPTY, + fromEvent(document, 'turbo:frame-load'), ) .pipe( this.untilDestroyed(), map(() => { if (this.selectedWhenOpen) { - return this.uiRouterGlobals.params.workPackageId === this.workPackage.id; + // In uiRouter views, use the route param directly. + const wpIdFromRoute = this.uiRouterGlobals.params.workPackageId as string|undefined; + if (wpIdFromRoute) { + return matchesRoutingId(this.workPackage, wpIdFromRoute); + } + + // In non-router views (e.g. Team Planner, Calendar): + // Use URL-based detection so that closing the split view (which changes the URL + // but does not clear the selection service) correctly deselects the card. + const urlMatch = DETAILS_URL_PATTERN.exec(window.location.pathname); + return matchesRoutingId(this.workPackage, urlMatch?.[1]); } return this.wpTableSelection.isSelected(this.workPackage.id!); }), + distinctUntilChanged(), ) .subscribe((selected:boolean) => { this.selected = selected; @@ -210,7 +228,7 @@ export class WorkPackageSingleCardComponent extends UntilDestroyedMixin implemen } public fullWorkPackageLink(wp:WorkPackageResource):string { - return this.keepTabService.currentShowHref(wp.id!); + return this.keepTabService.currentShowHref(wp.displayId); } public cardHighlightingClass(wp:WorkPackageResource):string { diff --git a/frontend/src/app/features/work-packages/components/wp-edit-form/work-package-filter-values.spec.ts b/frontend/src/app/features/work-packages/components/wp-edit-form/work-package-filter-values.spec.ts index e64f5f951c0..db6dc6b67e3 100644 --- a/frontend/src/app/features/work-packages/components/wp-edit-form/work-package-filter-values.spec.ts +++ b/frontend/src/app/features/work-packages/components/wp-edit-form/work-package-filter-values.spec.ts @@ -73,8 +73,8 @@ describe('WorkPackageFilterValues', () => { function setupTestBed() { // noinspection JSIgnoredPromiseFromCall void TestBed.configureTestingModule({ - imports: [UIRouterModule.forRoot({})], - providers: [ + imports: [UIRouterModule.forRoot({})], + providers: [ I18nService, { provide: WeekdayService, useValue: WeekdayServiceStub }, States, @@ -95,8 +95,8 @@ describe('WorkPackageFilterValues', () => { HalResourceEditingService, WorkPackagesActivityService, provideHttpClient(withInterceptorsFromDi()), - ] -}).compileComponents(); + ] + }).compileComponents(); injector = TestBed.inject(Injector); halResourceService = injector.get(HalResourceService); @@ -104,14 +104,8 @@ describe('WorkPackageFilterValues', () => { resource = halResourceService.createHalResourceOfClass(WorkPackageResource, source, true); changeset = new WorkPackageChangeset(resource); - const type1 = halResourceService.createHalResourceOfClass( - TypeResource, - { _type: 'Type', id: '1', _links: { self: { href: '/api/v3/types/1', name: 'Task' } } }, - ); - const type2 = halResourceService.createHalResourceOfClass( - TypeResource, - { _type: 'Type', id: '2', _links: { self: { href: '/api/v3/types/2', name: 'Bug' } } }, - ); + const type1 = halResourceService.createHalResourceOfClass(TypeResource, { _type: 'Type', id: '1', _links: { self: { href: '/api/v3/types/1', name: 'Task' } } }); + const type2 = halResourceService.createHalResourceOfClass(TypeResource, { _type: 'Type', id: '2', _links: { self: { href: '/api/v3/types/2', name: 'Bug' } } }); filters = [ { diff --git a/frontend/src/app/features/work-packages/components/wp-fast-table/builders/ui-state-link-builder.ts b/frontend/src/app/features/work-packages/components/wp-fast-table/builders/ui-state-link-builder.ts index 7446a591bc6..af40de577c3 100644 --- a/frontend/src/app/features/work-packages/components/wp-fast-table/builders/ui-state-link-builder.ts +++ b/frontend/src/app/features/work-packages/components/wp-fast-table/builders/ui-state-link-builder.ts @@ -16,30 +16,44 @@ export class UiStateLinkBuilder { ) { } - public linkToDetails(workPackageId:string, title:string, content:string) { - return this.build(workPackageId, 'split', title, content); + public linkToDetails(workPackageId:string, title:string, content:string, routingId?:string) { + return this.build(workPackageId, 'split', title, content, routingId); } - public linkToShow(workPackageId:string, title:string, content:string) { - return this.build(workPackageId, 'show', title, content); + public linkToShow(workPackageId:string, title:string, content:string, routingId?:string) { + return this.build(workPackageId, 'show', title, content, routingId); } - private build(workPackageId:string, state:'show'|'split', title:string, content:string) { + /** + * Build an anchor element that serves two purposes: + * + * - **href** uses `routingId` (semantic, e.g. "PROJ-7") so the URL bar + * and "open in new tab" show human-readable identifiers. + * - **data-work-package-id** always uses the numeric `workPackageId` (PK) + * because the selection, focus, and hover systems are keyed by PK. + * + * Click handlers (WorkPackageStateLinksHandler) read the data attribute + * and call preventDefault() — the href is never followed during normal + * in-table clicks. It only matters for right-click / open-in-new-tab. + */ + private build(workPackageId:string, state:'show'|'split', title:string, content:string, routingId?:string) { const a = document.createElement('a'); - let tabState:string; - let tabIdentifier:string; + const idForHref = routingId ?? workPackageId; let href:string; if (state === 'show') { const projectIdentifier = this.currentProject.identifier; - href = this.pathHelper.genericWorkPackagePath(projectIdentifier, workPackageId, this.keepTab.currentShowTab) + window.location.search; + href = this.pathHelper.genericWorkPackagePath(projectIdentifier, idForHref, this.keepTab.currentShowTab) + window.location.search; } else { - const tab = this.keepTab.currentDetailsTab; + // Param key must match the route declaration in split-view-routes.template.ts + // (`:tabIdentifier`). A mismatch makes $state.href return null, which + // surfaces as the literal string "null" in the rendered href. + const tabIdentifier = this.keepTab.currentDetailsTab; href = this.$state.href( 'work-packages.partitioned.list.details.tabs', { - workPackageId, - tab, + workPackageId: idForHref, + tabIdentifier, }, ); } diff --git a/frontend/src/app/features/work-packages/components/wp-list/wp-list-checksum.service.ts b/frontend/src/app/features/work-packages/components/wp-list/wp-list-checksum.service.ts index 45bcd15c26a..8b214522f5f 100644 --- a/frontend/src/app/features/work-packages/components/wp-list/wp-list-checksum.service.ts +++ b/frontend/src/app/features/work-packages/components/wp-list/wp-list-checksum.service.ts @@ -31,6 +31,7 @@ import { UrlParamsHelperService } from 'core-app/features/work-packages/componen import { Injectable } from '@angular/core'; import { WorkPackageViewPagination } from 'core-app/features/work-packages/routing/wp-view-base/view-services/wp-table-pagination'; import { QueryResource } from 'core-app/features/hal/resources/query-resource'; +import { Subject } from 'rxjs'; @Injectable() export class WorkPackagesListChecksumService { @@ -44,6 +45,9 @@ export class WorkPackagesListChecksumService { public visibleChecksum:string|null; + /** Emits whenever visibleChecksum changes (useful for non-uiRouter pages to react to URL param changes) */ + public readonly visibleChecksum$ = new Subject(); + public updateIfDifferent(query:QueryResource, pagination:WorkPackageViewPagination):Promise { const newQueryChecksum = this.getNewChecksum(query, pagination); @@ -153,6 +157,28 @@ export class WorkPackagesListChecksumService { private maintainUrlQueryState(id:string|null, checksum:string|null):TransitionPromise { this.visibleChecksum = checksum; + this.visibleChecksum$.next(checksum); + + // When uiRouter is not managing the current page (e.g. calendar after Turbo migration), + // $state.current.name is empty and state.go('.') does nothing. Fall back to pushState. + if (!this.$state.current.name) { + const url = new URL(window.location.href); + + if (checksum) { + url.searchParams.set('query_props', checksum); + } else { + url.searchParams.delete('query_props'); + } + + if (id) { + url.searchParams.set('query_id', id); + } else { + url.searchParams.delete('query_id'); + } + + window.history.pushState({}, '', url.toString()); + return Promise.resolve() as unknown as TransitionPromise; + } return this.$state.go( '.', diff --git a/frontend/src/app/features/work-packages/components/wp-list/wp-list.service.ts b/frontend/src/app/features/work-packages/components/wp-list/wp-list.service.ts index 063442197c8..6b47e92c2b6 100644 --- a/frontend/src/app/features/work-packages/components/wp-list/wp-list.service.ts +++ b/frontend/src/app/features/work-packages/components/wp-list/wp-list.service.ts @@ -261,6 +261,7 @@ export class WorkPackagesListService { // Reload the query, and then reload the menu this.reloadQuery(createdQuery).subscribe(() => { + this.navigateToQueryOnNonRouterPage(createdQuery.id); this.states.changes.queries.next(createdQuery.id); this.reloadSidemenu(createdQuery.id); }); @@ -311,7 +312,11 @@ export class WorkPackagesListService { this.toastService.addSuccess(this.I18n.t('js.notice_successful_update')); const queryAccessibleByUser = query.public || query.user.id === this.currentUser.userId; if (queryAccessibleByUser) { - void this.$state.go('.', { query_id: query.id, query_props: null }, { reload: true }); + if (!this.$state.current.name) { + this.navigateToQueryOnNonRouterPage(query.id); + } else { + void this.$state.go('.', { query_id: query.id, query_props: null }, { reload: true }); + } this.states.changes.queries.next(query.id); this.reloadSidemenu(query.id); } else { @@ -463,7 +468,27 @@ export class WorkPackagesListService { } } + private navigateToQueryOnNonRouterPage(queryId:string|null):void { + if (this.$state.current.name) { return; } + + // update the URL path to reflect the saved query ID so subsequent refetches use the correct query_id. + const url = new URL(window.location.href); + url.pathname = url.pathname.replace(/\/[^/]+$/, `/${queryId}`); + url.searchParams.delete('query_id'); + url.searchParams.delete('query_props'); + window.history.pushState({}, '', url.toString()); + } + private reloadSidemenu(selectedQueryId:string|null):void { - this.submenuService.reloadSubmenu(selectedQueryId); + const sidemenuId = !this.$state.current.name ? this.getNonRouterSidemenuId() : undefined; + this.submenuService.reloadSubmenu(selectedQueryId, sidemenuId); + } + + private getNonRouterSidemenuId():string|undefined { + const { pathname } = window.location; + if (pathname.includes('/calendars')) return 'calendar_sidemenu'; + if (pathname.includes('/team_planners')) return 'team_planner_sidemenu'; + if (pathname.includes('/ifc_models')) return 'bim_sidemenu'; + return undefined; } } diff --git a/frontend/src/app/features/work-packages/components/wp-list/wp-query-view.service.ts b/frontend/src/app/features/work-packages/components/wp-list/wp-query-view.service.ts index 27ff2c11f0e..e9b7d05c6e0 100644 --- a/frontend/src/app/features/work-packages/components/wp-list/wp-query-view.service.ts +++ b/frontend/src/app/features/work-packages/components/wp-list/wp-query-view.service.ts @@ -34,20 +34,20 @@ export class WorkPackagesQueryViewService { } private get viewType() { - if (this.$state.includes('work-packages')) { - return 'work_packages_table'; - } - if (this.$state.includes('team_planner')) { - return 'team_planner'; - } - if (this.$state.includes('bim')) { - return 'bim'; - } - if (this.$state.includes('calendar')) { - return 'work_packages_calendar'; - } - if (this.$state.includes('gantt')) { - return 'gantt'; + if (this.$state.current.name) { + if (this.$state.includes('work-packages')) { return 'work_packages_table'; } + if (this.$state.includes('team_planner')) { return 'team_planner'; } + if (this.$state.includes('bim')) { return 'bim'; } + if (this.$state.includes('calendar')) { return 'work_packages_calendar'; } + if (this.$state.includes('gantt')) { return 'gantt'; } + } else { + // Non-uiRouter page — derive view type from URL path + const { pathname } = window.location; + if (pathname.includes('/calendars')) { return 'work_packages_calendar'; } + if (pathname.includes('/team_planners')) { return 'team_planner'; } + if (pathname.includes('/ifc_models')) { return 'bim'; } + if (pathname.includes('/gantt')) { return 'gantt'; } + if (pathname.includes('/work_packages')) { return 'work_packages_table'; } } throw new Error('Not on a path defined for query views'); diff --git a/frontend/src/app/features/work-packages/components/wp-new/wp-create.component.ts b/frontend/src/app/features/work-packages/components/wp-new/wp-create.component.ts index 77a0449e7f8..340847154b2 100644 --- a/frontend/src/app/features/work-packages/components/wp-new/wp-create.component.ts +++ b/frontend/src/app/features/work-packages/components/wp-new/wp-create.component.ts @@ -131,14 +131,14 @@ export class WorkPackageCreateComponent extends UntilDestroyedMixin implements O this.editForm?.cancel(false); if(this.routedFromAngular && this.successState) { - this.$state.go(this.successState, { workPackageId: savedResource.id }) + this.$state.go(this.successState, { workPackageId: savedResource.displayId }) .then(() => { this.wpViewFocus.updateFocus(savedResource.id!); this.notificationService.showSave(savedResource, isInitial); }); } else { window.OpenProject.pageState = 'submitted'; - Turbo.visit(this.pathHelper.projectWorkPackagePath(savedResource.project.identifier, savedResource.id!) + window.location.search); + Turbo.visit(this.pathHelper.projectWorkPackagePath(savedResource.project.identifier, savedResource.displayId) + window.location.search); } } diff --git a/frontend/src/app/features/work-packages/components/wp-new/wp-new-split-view.component.ts b/frontend/src/app/features/work-packages/components/wp-new/wp-new-split-view.component.ts index fb4b9b42630..e75f6e4ba29 100644 --- a/frontend/src/app/features/work-packages/components/wp-new/wp-new-split-view.component.ts +++ b/frontend/src/app/features/work-packages/components/wp-new/wp-new-split-view.component.ts @@ -27,7 +27,10 @@ //++ import { WorkPackageCreateComponent } from 'core-app/features/work-packages/components/wp-new/wp-create.component'; -import { ChangeDetectionStrategy, Component } from '@angular/core'; +import { WorkPackageResource } from 'core-app/features/hal/resources/work-package-resource'; +import { ChangeDetectionStrategy, Component, inject } from '@angular/core'; +import { firstValueFrom } from 'rxjs'; +import { WorkPackagesListService } from 'core-app/features/work-packages/components/wp-list/wp-list.service'; @Component({ selector: 'wp-new-split-view', @@ -36,4 +39,92 @@ import { ChangeDetectionStrategy, Component } from '@angular/core'; standalone: false, }) export class WorkPackageNewSplitViewComponent extends WorkPackageCreateComponent { + private readonly wpListService = inject(WorkPackagesListService); + + /** + * Before creating the new WP form, load the current query (with its active filters) + * into the isolated query space so that WorkPackageCreateService.defaultsFromFilters() + * can pre-populate the form fields automatically — no manual filter mapping needed. + */ + protected override async createdWorkPackage() { + if (!this.routedFromAngular) { + const params = new URLSearchParams(window.location.search); + + // Load the active query into the isolated query space so that + // WorkPackageCreateService.defaultsFromFilters() can pre-populate filter-based fields. + const queryId = params.get('query_id'); + const queryProps = params.get('query_props'); + if (queryId || queryProps) { + await firstValueFrom( + this.wpListService.fromQueryParams( + { query_id: queryId ?? undefined, query_props: queryProps ?? undefined }, + this.currentProjectService.identifier ?? undefined, + ), + ); + } + + // Apply defaults passed via URL params (e.g. when dragging to create on the calendar/team planner). + const startDate = params.get('startDate'); + const dueDate = params.get('dueDate'); + const ignoreNonWorkingDays = params.get('ignoreNonWorkingDays'); + const assigneeHref = params.get('assignee_href'); + const parentId = params.get('parent_id'); + if (startDate || dueDate || ignoreNonWorkingDays || assigneeHref || parentId) { + const existingDefaults = this.stateParams?.defaults; + this.stateParams = { + ...this.stateParams, + ...(parentId ? { parent_id: parentId } : {}), + defaults: { + _links: {}, + ...existingDefaults, + ...(startDate ? { startDate } : {}), + ...(dueDate ? { dueDate } : {}), + ...(ignoreNonWorkingDays ? { ignoreNonWorkingDays: true } : {}), + ...(assigneeHref ? { + _links: { + ...(existingDefaults?._links || {}), + assignee: { href: assigneeHref }, + }, + } : {}), + }, + }; + } + } + + return super.createdWorkPackage(); + } + + public override cancelAndBack():void { + if (this.routedFromAngular) { + super.cancelAndBack(); + return; + } + + this.wpCreate.cancelCreation(); + + // Close the split panel by navigating to the base URL (strips /details/new), + // replacing the history entry so back-navigation skips the create state. + const basePath = window.location.pathname.replace(/\/details\/.*$/, ''); + Turbo.visit(basePath + window.location.search, { frame: 'content-bodyRight', action: 'replace' }); + } + + public override onSaved(params:{ savedResource:WorkPackageResource, isInitial:boolean }):void { + if (this.routedFromAngular) { + super.onSaved(params); + return; + } + + const { savedResource, isInitial } = params; + this.editForm?.cancel(false); + + this.notificationService.showSave(savedResource, isInitial); + window.OpenProject.pageState = 'submitted'; + + // Open the newly created WP in the split panel. + const basePath = window.location.pathname.replace(/\/details\/.*$/, ''); + Turbo.visit(`${basePath}/details/${savedResource.id}${window.location.search}`, { + frame: 'content-bodyRight', + action: 'advance', + }); + } } diff --git a/frontend/src/app/features/work-packages/components/wp-relations/wp-relations-hierarchy/wp-relations-hierarchy.directive.ts b/frontend/src/app/features/work-packages/components/wp-relations/wp-relations-hierarchy/wp-relations-hierarchy.directive.ts index 1249d28bbe7..c7f52ec6bdf 100644 --- a/frontend/src/app/features/work-packages/components/wp-relations/wp-relations-hierarchy/wp-relations-hierarchy.directive.ts +++ b/frontend/src/app/features/work-packages/components/wp-relations/wp-relations-hierarchy/wp-relations-hierarchy.directive.ts @@ -81,7 +81,7 @@ export class WorkPackageRelationsHierarchyComponent extends UntilDestroyedMixin }; ngOnInit() { - this.workPackagePath = this.PathHelper.workPackagePath(this.workPackage.id!); + this.workPackagePath = this.PathHelper.workPackagePath(this.workPackage.displayId); this.canModifyHierarchy = !!this.workPackage.changeParent; this.canAddRelation = !!this.workPackage.addRelation; diff --git a/frontend/src/app/features/work-packages/components/wp-single-view-tabs/keep-tab/keep-tab.service.spec.ts b/frontend/src/app/features/work-packages/components/wp-single-view-tabs/keep-tab/keep-tab.service.spec.ts index 9e9302a92b4..4344381b8d4 100644 --- a/frontend/src/app/features/work-packages/components/wp-single-view-tabs/keep-tab/keep-tab.service.spec.ts +++ b/frontend/src/app/features/work-packages/components/wp-single-view-tabs/keep-tab/keep-tab.service.spec.ts @@ -79,7 +79,7 @@ describe('keepTab service', () => { let currentPathPrefix = 'work-packages.show.*'; beforeEach(() => { - spyOn($state, 'includes').and.callFake((path:string) => path === currentPathPrefix); + vi.spyOn($state, 'includes').mockImplementation((path:string) => path === currentPathPrefix); $state.current.name = 'work-packages.show.tabs'; uiRouterGlobals.params.tabIdentifier = 'relations'; @@ -95,7 +95,7 @@ describe('keepTab service', () => { }); it('should propagate the previous change', () => { - const cb = jasmine.createSpy(); + const cb = vi.fn(); const expected = { active: 'relations', @@ -121,7 +121,7 @@ describe('keepTab service', () => { describe('when opening show#activity', () => { beforeEach(() => { - spyOn($state, 'includes').and.callFake((path:string) => path === 'work-packages.show.*'); + vi.spyOn($state, 'includes').mockImplementation((path:string) => path === 'work-packages.show.*'); uiRouterGlobals.params.tabIdentifier = 'activity'; $state.current.name = 'work-packages.show.tabs'; @@ -135,7 +135,7 @@ describe('keepTab service', () => { describe('when opening a details route', () => { beforeEach(() => { - spyOn($state, 'includes').and.callFake((path:string) => path === '**.details.*'); + vi.spyOn($state, 'includes').mockImplementation((path:string) => path === '**.details.*'); uiRouterGlobals.params.tabIdentifier = 'activity'; $state.current.name = 'work-packages.partitioned.list.details.tabs'; @@ -151,7 +151,7 @@ describe('keepTab service', () => { }); it('should propagate the previous and next change', () => { - const cb = jasmine.createSpy(); + const cb = vi.fn(); const expected = { active: 'activity', @@ -165,7 +165,7 @@ describe('keepTab service', () => { keepTab.updateTabs(); - expect(cb.calls.count()).toEqual(2); + expect(vi.mocked(cb).mock.calls.length).toEqual(2); }); }); }); diff --git a/frontend/src/app/features/work-packages/components/wp-single-view/wp-single-view.component.ts b/frontend/src/app/features/work-packages/components/wp-single-view/wp-single-view.component.ts index 2dd276ba813..9ebbde7098e 100644 --- a/frontend/src/app/features/work-packages/components/wp-single-view/wp-single-view.component.ts +++ b/frontend/src/app/features/work-packages/components/wp-single-view/wp-single-view.component.ts @@ -205,7 +205,7 @@ export class WorkPackageSingleViewComponent extends UntilDestroyedMixin implemen this.projectContext = { id: project.id, - href: this.PathHelper.projectWorkPackagePath(project.id, workPackageId), + href: this.PathHelper.projectWorkPackagePath(project.id, this.workPackage.displayId), matches: project.href === this.currentProject.apiv3Path, }; } diff --git a/frontend/src/app/features/work-packages/components/wp-table/context-menu-helper/wp-context-menu-helper.service.ts b/frontend/src/app/features/work-packages/components/wp-table/context-menu-helper/wp-context-menu-helper.service.ts index 37dab78a7cd..a5904b73479 100644 --- a/frontend/src/app/features/work-packages/components/wp-table/context-menu-helper/wp-context-menu-helper.service.ts +++ b/frontend/src/app/features/work-packages/components/wp-table/context-menu-helper/wp-context-menu-helper.service.ts @@ -115,7 +115,7 @@ export class WorkPackageContextMenuHelperService { let link:string|undefined; switch (action.key) { case 'copy_link_to_clipboard': - link = this.PathHelper.workPackageShortPath(workPackage.id!); + link = this.PathHelper.workPackageShortPath(workPackage.displayId); break; default: link = action.link ? (workPackage[action.link] as HalLink).href! : undefined; diff --git a/frontend/src/app/features/work-packages/components/wp-table/embedded/wp-embedded-table.component.ts b/frontend/src/app/features/work-packages/components/wp-table/embedded/wp-embedded-table.component.ts index 8afa03857a1..be2f670e9c5 100644 --- a/frontend/src/app/features/work-packages/components/wp-table/embedded/wp-embedded-table.component.ts +++ b/frontend/src/app/features/work-packages/components/wp-table/embedded/wp-embedded-table.component.ts @@ -23,6 +23,8 @@ import { InjectField } from 'core-app/shared/helpers/angular/inject-field.decora import { KeepTabService, } from 'core-app/features/work-packages/components/wp-single-view-tabs/keep-tab/keep-tab.service'; +import { States } from 'core-app/core/states/states.service'; +import { resolveRoutingId } from 'core-app/features/work-packages/helpers/work-package-id-resolvers'; import { ApiV3Service } from 'core-app/core/apiv3/api-v3.service'; import { firstValueFrom } from 'rxjs'; import { QueryRequestParams } from 'core-app/features/work-packages/components/wp-query/url-params-helper'; @@ -64,6 +66,8 @@ export class WorkPackageEmbeddedTableComponent extends WorkPackageEmbeddedBaseCo @InjectField() keepTab:KeepTabService; + @InjectField() states:States; + // Cache the form promise private formPromise:Promise|undefined; @@ -192,15 +196,17 @@ export class WorkPackageEmbeddedTableComponent extends WorkPackageEmbeddedBaseCo handleWorkPackageClicked(event:{ workPackageId:string; double:boolean }) { if (event.double) { + const routingId = resolveRoutingId(this.states, event.workPackageId); const projectIdentifier = this.currentProject.identifier; - const link = this.pathHelper.genericWorkPackagePath(projectIdentifier, event.workPackageId) + window.location.search; + const link = this.pathHelper.genericWorkPackagePath(projectIdentifier, routingId) + window.location.search; Turbo.visit(link, { action: 'advance' }); } } openStateLink(event:{ workPackageId:string; requestedState:'show'|'split' }) { + const routingId = resolveRoutingId(this.states, event.workPackageId); const params = { - workPackageId: event.workPackageId, + workPackageId: routingId, focus: true, }; diff --git a/frontend/src/app/features/work-packages/components/wp-table/table-actions/actions/details-table-action.ts b/frontend/src/app/features/work-packages/components/wp-table/table-actions/actions/details-table-action.ts index e9ae14b0260..f7e78b470e0 100644 --- a/frontend/src/app/features/work-packages/components/wp-table/table-actions/actions/details-table-action.ts +++ b/frontend/src/app/features/work-packages/components/wp-table/table-actions/actions/details-table-action.ts @@ -28,6 +28,7 @@ export class OpDetailsTableAction extends OpTableAction { this.workPackage.id!, this.text.button, '', + this.workPackage.displayId, ); detailsLink.classList.add(detailsLinkClassName, contextColumnIcon, 'hidden-for-mobile'); diff --git a/frontend/src/app/features/work-packages/components/wp-table/table-pagination/wp-table-pagination.component.spec.ts b/frontend/src/app/features/work-packages/components/wp-table/table-pagination/wp-table-pagination.component.spec.ts index 56bf3d9deee..7d582079699 100644 --- a/frontend/src/app/features/work-packages/components/wp-table/table-pagination/wp-table-pagination.component.spec.ts +++ b/frontend/src/app/features/work-packages/components/wp-table/table-pagination/wp-table-pagination.component.spec.ts @@ -52,14 +52,11 @@ function setupMocks(paginationService:PaginationService) { optionsTruncationSize: 6, }; - // eslint-disable-next-line jasmine/no-unsafe-spy - spyOn(paginationService, 'getMaxVisiblePageOptions').and.callFake(() => options.maxVisiblePageOptions); + vi.spyOn(paginationService, 'getMaxVisiblePageOptions').mockImplementation(() => options.maxVisiblePageOptions); - // eslint-disable-next-line jasmine/no-unsafe-spy - spyOn(paginationService, 'getOptionsTruncationSize').and.callFake(() => options.optionsTruncationSize); + vi.spyOn(paginationService, 'getOptionsTruncationSize').mockImplementation(() => options.optionsTruncationSize); - // eslint-disable-next-line jasmine/no-unsafe-spy - spyOn(paginationService, 'getPaginationOptions').and.callFake(() => options); + vi.spyOn(paginationService, 'getPaginationOptions').mockImplementation(() => options); } function pageString(element:HTMLElement) { @@ -75,12 +72,12 @@ describe('wpTablePagination Directive', () => { }; await TestBed.configureTestingModule({ - declarations: [ + declarations: [ WorkPackageTablePaginationComponent, OpIconComponent, - ], - imports: [], - providers: [ + ], + imports: [], + providers: [ States, PaginationService, WorkPackageViewSortByService, @@ -92,80 +89,77 @@ describe('wpTablePagination Directive', () => { IsolatedQuerySpace, I18nService, provideHttpClient(withInterceptorsFromDi()), - ] -}).compileComponents(); + ] + }).compileComponents(); }); describe('page ranges and links', () => { - it('should display the correct page range', - inject([PaginationService], (paginationService:PaginationService) => { - setupMocks(paginationService); - const fixture = TestBed.createComponent(WorkPackageTablePaginationComponent); - const app:WorkPackageTablePaginationComponent = fixture.debugElement.componentInstance; - const element = fixture.elementRef.nativeElement; + it('should display the correct page range', inject([PaginationService], (paginationService:PaginationService) => { + setupMocks(paginationService); + const fixture = TestBed.createComponent(WorkPackageTablePaginationComponent); + const app:WorkPackageTablePaginationComponent = fixture.debugElement.componentInstance; + const element = fixture.elementRef.nativeElement; - app.pagination = new PaginationInstance(1, 0, 10); - app.update(); - fixture.detectChanges(); + app.pagination = new PaginationInstance(1, 0, 10); + app.update(); + fixture.detectChanges(); - expect(pageString(element)).toEqual(''); + expect(pageString(element)).toEqual(''); - app.pagination = new PaginationInstance(1, 11, 10); - app.update(); - fixture.detectChanges(); + app.pagination = new PaginationInstance(1, 11, 10); + app.update(); + fixture.detectChanges(); - expect(pageString(element)).toEqual('(1 - 10/11)'); - })); + expect(pageString(element)).toEqual('(1 - 10/11)'); + })); describe('"next" link', () => { - it('hidden on the last page', - inject([PaginationService], (paginationService:PaginationService) => { - setupMocks(paginationService); - const fixture = TestBed.createComponent(WorkPackageTablePaginationComponent); - const app:WorkPackageTablePaginationComponent = fixture.debugElement.componentInstance; - const element = fixture.elementRef.nativeElement; - - app.pagination = new PaginationInstance(2, 11, 10); - app.update(); - fixture.detectChanges(); - - const liWithNextLink = element.querySelector('.op-pagination--item-link_next')?.parentElement; - - expect(liWithNextLink?.matches('li')).toBeTrue(); - const attrHidden = liWithNextLink.getAttribute('hidden'); - - expect(attrHidden).toBeDefined(); - })); - }); - - it('should display correct number of page number links', - inject([PaginationService], (paginationService:PaginationService) => { + it('hidden on the last page', inject([PaginationService], (paginationService:PaginationService) => { setupMocks(paginationService); const fixture = TestBed.createComponent(WorkPackageTablePaginationComponent); const app:WorkPackageTablePaginationComponent = fixture.debugElement.componentInstance; const element = fixture.elementRef.nativeElement; - function numberOfPageNumberLinks() { - return element.querySelectorAll('button[data-rel="next"]').length; - } - - app.pagination = new PaginationInstance(1, 1, 10); + app.pagination = new PaginationInstance(2, 11, 10); app.update(); fixture.detectChanges(); - expect(numberOfPageNumberLinks()).toEqual(1); + const liWithNextLink = element.querySelector('.op-pagination--item-link_next')?.parentElement; - app.pagination = new PaginationInstance(1, 11, 10); - app.update(); - fixture.detectChanges(); + expect(liWithNextLink?.matches('li')).toBe(true); + const attrHidden = liWithNextLink.getAttribute('hidden'); - expect(numberOfPageNumberLinks()).toEqual(2); - - app.pagination = new PaginationInstance(1, 59, 10); - app.update(); - fixture.detectChanges(); - - expect(numberOfPageNumberLinks()).toEqual(6); + expect(attrHidden).toBeDefined(); })); + }); + + it('should display correct number of page number links', inject([PaginationService], (paginationService:PaginationService) => { + setupMocks(paginationService); + const fixture = TestBed.createComponent(WorkPackageTablePaginationComponent); + const app:WorkPackageTablePaginationComponent = fixture.debugElement.componentInstance; + const element = fixture.elementRef.nativeElement; + + function numberOfPageNumberLinks() { + return element.querySelectorAll('button[data-rel="next"]').length; + } + + app.pagination = new PaginationInstance(1, 1, 10); + app.update(); + fixture.detectChanges(); + + expect(numberOfPageNumberLinks()).toEqual(1); + + app.pagination = new PaginationInstance(1, 11, 10); + app.update(); + fixture.detectChanges(); + + expect(numberOfPageNumberLinks()).toEqual(2); + + app.pagination = new PaginationInstance(1, 59, 10); + app.update(); + fixture.detectChanges(); + + expect(numberOfPageNumberLinks()).toEqual(6); + })); }); }); diff --git a/frontend/src/app/features/work-packages/components/wp-tabs/components/wp-tabs/wp-tabs.component.html b/frontend/src/app/features/work-packages/components/wp-tabs/components/wp-tabs/wp-tabs.component.html index bb22a4aa544..ca518bab750 100644 --- a/frontend/src/app/features/work-packages/components/wp-tabs/components/wp-tabs/wp-tabs.component.html +++ b/frontend/src/app/features/work-packages/components/wp-tabs/components/wp-tabs/wp-tabs.component.html @@ -1,6 +1,7 @@ @if (view === 'split') { diff --git a/frontend/src/app/features/work-packages/components/wp-tabs/components/wp-tabs/wp-tabs.component.spec.ts b/frontend/src/app/features/work-packages/components/wp-tabs/components/wp-tabs/wp-tabs.component.spec.ts index 82ee26fa3c0..db1ac5ac5cf 100644 --- a/frontend/src/app/features/work-packages/components/wp-tabs/components/wp-tabs/wp-tabs.component.spec.ts +++ b/frontend/src/app/features/work-packages/components/wp-tabs/components/wp-tabs/wp-tabs.component.spec.ts @@ -1,4 +1,4 @@ -import { Input, NO_ERRORS_SCHEMA } from '@angular/core'; +import { Component, Input, NO_ERRORS_SCHEMA } from '@angular/core'; import { ComponentFixture, TestBed } from '@angular/core/testing'; import { By } from '@angular/platform-browser'; import { WorkPackageResource } from 'core-app/features/hal/resources/work-package-resource'; @@ -12,8 +12,13 @@ import { PathHelperService } from 'core-app/core/path-helper/path-helper.service import { CurrentProjectService } from 'core-app/core/current-project/current-project.service'; describe('WpTabsComponent', () => { + @Component({ + template: '', + standalone: false, + }) class TestComponent implements TabComponent { - @Input() public workPackage:WorkPackageResource; + @Input() + public workPackage:WorkPackageResource; } const displayableTab = { @@ -64,6 +69,6 @@ describe('WpTabsComponent', () => { it('displays the visible tab', () => { const tabLink:HTMLElement = fixture.debugElement.query(By.css('[data-qa-tab-id="displayable-test-tab"]')).nativeElement; - expect(tabLink.innerText).toContain('Displayable TestTab'); + expect(tabLink.textContent).toContain('Displayable TestTab'); }); }); diff --git a/frontend/src/app/features/work-packages/components/wp-tabs/components/wp-tabs/wp-tabs.component.ts b/frontend/src/app/features/work-packages/components/wp-tabs/components/wp-tabs/wp-tabs.component.ts index cd6bea042e3..545dc98fa50 100644 --- a/frontend/src/app/features/work-packages/components/wp-tabs/components/wp-tabs/wp-tabs.component.ts +++ b/frontend/src/app/features/work-packages/components/wp-tabs/components/wp-tabs/wp-tabs.component.ts @@ -1,4 +1,4 @@ -import { ChangeDetectionStrategy, Component, Injector, Input, OnInit } from '@angular/core'; +import { ChangeDetectionStrategy, Component, EventEmitter, Injector, Input, OnInit, Output } from '@angular/core'; import { KeepTabService, } from 'core-app/features/work-packages/components/wp-single-view-tabs/keep-tab/keep-tab.service'; @@ -29,6 +29,8 @@ export class WpTabsComponent implements OnInit { @Input() public currentTabId:string|null = null; + @Output() public tabSelected = new EventEmitter(); + public tabs:TabDefinition[]; public canViewWatchers = false; @@ -72,13 +74,13 @@ export class WpTabsComponent implements OnInit { return ({ ...tab, - path: this.pathHelper.genericWorkPackagePath(this.currentProject.identifier, this.workPackage.id!, tab.id), + path: this.pathHelper.genericWorkPackagePath(this.currentProject.identifier, this.workPackage.displayId, tab.id), }); }); } public switchToFullscreen():void { - this.keepTab.goCurrentShowState(this.workPackage.id!); + this.keepTab.goCurrentShowState(this.workPackage.displayId); } public close():void { diff --git a/frontend/src/app/features/work-packages/components/wp-tabs/services/wp-tabs/wp-tabs.service.spec.ts b/frontend/src/app/features/work-packages/components/wp-tabs/services/wp-tabs/wp-tabs.service.spec.ts index c94f83e122b..a493f587291 100644 --- a/frontend/src/app/features/work-packages/components/wp-tabs/services/wp-tabs/wp-tabs.service.spec.ts +++ b/frontend/src/app/features/work-packages/components/wp-tabs/services/wp-tabs/wp-tabs.service.spec.ts @@ -1,20 +1,23 @@ import { provideHttpClient, withInterceptorsFromDi } from '@angular/common/http'; -import { Input } from '@angular/core'; -import { StateService } from '@uirouter/angular'; +import { Component, Input } from '@angular/core'; +import { StateService } from '@uirouter/core'; import { TestBed } from '@angular/core/testing'; import { WorkPackageResource } from 'core-app/features/hal/resources/work-package-resource'; -import { - WorkPackageTabsService, -} from 'core-app/features/work-packages/components/wp-tabs/services/wp-tabs/wp-tabs.service'; +import { WorkPackageTabsService, } from 'core-app/features/work-packages/components/wp-tabs/services/wp-tabs/wp-tabs.service'; import { TabComponent } from '../../components/wp-tab-wrapper/tab'; describe('WpTabsService', () => { let service:WorkPackageTabsService; const workPackage:any = { id: 1234 }; + @Component({ + template: '', + standalone: false, + }) class TestComponent implements TabComponent { - @Input() public workPackage:WorkPackageResource; + @Input() + public workPackage:WorkPackageResource; } const displayableTab = { @@ -34,12 +37,12 @@ describe('WpTabsService', () => { beforeEach(() => { TestBed.resetTestingModule(); TestBed.configureTestingModule({ - imports: [], - providers: [ + imports: [], + providers: [ { provide: StateService, useValue: { includes: () => false } }, provideHttpClient(withInterceptorsFromDi()), - ] -}); + ] + }); service = TestBed.inject(WorkPackageTabsService); (service as any).registeredTabs = []; service.register({ ...displayableTab }, { ...notDisplayableTab }); @@ -66,7 +69,7 @@ describe('WpTabsService', () => { const displayableTabs = service.getDisplayableTabs(workPackage); - expect(displayableTabs).toHaveSize(1); + expect(displayableTabs).toHaveLength(1); expect(displayableTabs[0].id).toEqual(notDisplayableTab.id); }); }); diff --git a/frontend/src/app/features/work-packages/helpers/work-package-id-resolvers.ts b/frontend/src/app/features/work-packages/helpers/work-package-id-resolvers.ts new file mode 100644 index 00000000000..9a43bb5f015 --- /dev/null +++ b/frontend/src/app/features/work-packages/helpers/work-package-id-resolvers.ts @@ -0,0 +1,54 @@ +import { States } from 'core-app/core/states/states.service'; +import { WorkPackageResource } from 'core-app/features/hal/resources/work-package-resource'; + +/** + * Resolve a work package identifier to its semantic routing ID (e.g. "PROJ-42"). + * Falls back to the input ID if the WP is not in cache or has no displayId — + * this is a best-effort lookup, not a guarantee. The URL just shows the + * numeric ID temporarily until the WP is cached. + * + * Use this in navigation handlers where the caller only has an identifier + * string (typically a numeric PK from a data-work-package-id attribute or + * a selection state) but the URL should show the semantic form. + */ +export function resolveRoutingId(states:States, workPackageId:string):string { + const wp = states.workPackages.get(workPackageId)?.value; + return wp?.displayId ?? workPackageId; +} + +/** + * Resolve a URL route parameter (which may be numeric `"42"` or semantic + * `"PROJ-7"`) to the internal numeric ID we use for cache, selection, + * focus, and API calls. + * + * Returns `null` if the WP can't be found in the cache. Unlike + * {@link resolveRoutingId}, there is no safe fallback: returning the + * input unchanged would hand a semantic identifier to code that expects + * a numeric ID, silently corrupting comparisons and lookups. Callers + * must handle the `null` case explicitly. + * + * The cache is currently keyed only by numeric ID, so semantic route + * params will reliably miss until the cache is dual-keyed. Treat this + * helper as a temporary shim around that limitation. + */ +export function resolveNumericId(states:States, routeParam:string):string | null { + const wp = states.workPackages.get(routeParam)?.value; + return wp?.id ?? null; +} + +/** + * Whether the given string identifies the given work package in a routing + * context, matching either its numeric ID or its semantic displayId. + * + * Pairs with {@link resolveRoutingId}: that function constructs the + * canonical form for a URL, this one tests whether an incoming string + * (URL segment, route param, regex capture) targets a specific WP, + * without the caller having to know which form it is in. + */ +export function matchesRoutingId( + wp:WorkPackageResource, + candidate:string|null|undefined, +):boolean { + if (!candidate) return false; + return candidate === wp.id || candidate === wp.displayId; +} diff --git a/frontend/src/app/features/work-packages/openproject-work-packages.module.ts b/frontend/src/app/features/work-packages/openproject-work-packages.module.ts index 490ca2e61c0..19616116d94 100644 --- a/frontend/src/app/features/work-packages/openproject-work-packages.module.ts +++ b/frontend/src/app/features/work-packages/openproject-work-packages.module.ts @@ -406,6 +406,9 @@ import { import { WorkPackageFullCopyEntryComponent } from 'core-app/features/work-packages/routing/wp-full-copy/wp-full-copy-entry.component'; import { WorkPackageFullCreateEntryComponent } from 'core-app/features/work-packages/routing/wp-full-create/wp-full-create-entry.component'; import { WorkPackageFullViewEntryComponent } from 'core-app/features/work-packages/routing/wp-full-view/wp-full-view-entry.component'; +import { + WorkPackageSplitCreateEntryComponent, +} from 'core-app/features/work-packages/routing/wp-split-create/wp-split-create-entry.component'; @NgModule({ imports: [ @@ -590,6 +593,7 @@ import { WorkPackageFullViewEntryComponent } from 'core-app/features/work-packag WorkPackageDetailsViewButtonComponent, WorkPackageSplitViewComponent, WorkPackageSplitViewEntryComponent, + WorkPackageSplitCreateEntryComponent, WorkPackageBreadcrumbComponent, WorkPackageSplitViewToolbarComponent, WorkPackageWatcherButtonComponent, diff --git a/frontend/src/app/features/boards/board/board-partitioned-page/board-partitioned-page.component.html b/frontend/src/app/features/work-packages/routing/partitioned-query-space-page/primerized-partitioned-query-space-page.component.html similarity index 88% rename from frontend/src/app/features/boards/board/board-partitioned-page/board-partitioned-page.component.html rename to frontend/src/app/features/work-packages/routing/partitioned-query-space-page/primerized-partitioned-query-space-page.component.html index a0ee9d566e0..cf85df4fc70 100644 --- a/frontend/src/app/features/boards/board/board-partitioned-page/board-partitioned-page.component.html +++ b/frontend/src/app/features/work-packages/routing/partitioned-query-space-page/primerized-partitioned-query-space-page.component.html @@ -14,8 +14,7 @@ [editable]="titleEditingEnabled" /> @if (showToolbar) { -
      +
        @for (definition of toolbarButtonComponents; track definition) { @if (!definition.show || definition.show()) {
      • - - +
        + +
    diff --git a/frontend/src/app/features/work-packages/routing/wp-full-view/wp-full-view.component.ts b/frontend/src/app/features/work-packages/routing/wp-full-view/wp-full-view.component.ts index 4ff91cdc1fa..09be2b26612 100644 --- a/frontend/src/app/features/work-packages/routing/wp-full-view/wp-full-view.component.ts +++ b/frontend/src/app/features/work-packages/routing/wp-full-view/wp-full-view.component.ts @@ -28,6 +28,7 @@ import { ChangeDetectionStrategy, + ChangeDetectorRef, Component, HostListener, Injector, @@ -36,6 +37,7 @@ import { } from '@angular/core'; import { StateService } from '@uirouter/core'; import { CurrentUserService } from 'core-app/core/current-user/current-user.service'; +import { TabDefinition } from 'core-app/shared/components/tabs/tab.interface'; import { RecentItemsService } from 'core-app/core/recent-items.service'; import { ProjectResource } from 'core-app/features/hal/resources/project-resource'; import { WorkPackageResource } from 'core-app/features/hal/resources/work-package-resource'; @@ -84,10 +86,18 @@ export class WorkPackagesFullViewComponent extends WorkPackageSingleViewBase imp public recentItemsService:RecentItemsService, readonly $state:StateService, readonly currentUserService:CurrentUserService, + readonly cdRef:ChangeDetectorRef, ) { super(injector); } + public onTabSelected(tab:TabDefinition):void { + if (!this.routedFromAngular) { + this.activeTab = tab.id; + this.cdRef.markForCheck(); + } + } + // enable other parts of the application to trigger an immediate update // e.g. a stimulus controller // currently used by the new activities tab which does its own polling diff --git a/frontend/src/app/features/work-packages/routing/wp-full-view/wp-full-view.html b/frontend/src/app/features/work-packages/routing/wp-full-view/wp-full-view.html index 0de8d204398..b25dc80ea73 100644 --- a/frontend/src/app/features/work-packages/routing/wp-full-view/wp-full-view.html +++ b/frontend/src/app/features/work-packages/routing/wp-full-view/wp-full-view.html @@ -69,13 +69,16 @@ + [routedFromAngular]="routedFromAngular" + (tabSelected)="onTabSelected($event)"/>
    - + @for (tab of [activeTab]; track tab) { + + }
    diff --git a/frontend/src/app/features/work-packages/routing/wp-list-view/wp-list-view.component.ts b/frontend/src/app/features/work-packages/routing/wp-list-view/wp-list-view.component.ts index 913a7fa4b57..395889fec3b 100644 --- a/frontend/src/app/features/work-packages/routing/wp-list-view/wp-list-view.component.ts +++ b/frontend/src/app/features/work-packages/routing/wp-list-view/wp-list-view.component.ts @@ -57,6 +57,8 @@ import { KeepTabService } from 'core-app/features/work-packages/components/wp-si import { WorkPackageViewBaselineService } from '../wp-view-base/view-services/wp-view-baseline.service'; import { combineLatest } from 'rxjs'; import { PathHelperService } from 'core-app/core/path-helper/path-helper.service'; +import { States } from 'core-app/core/states/states.service'; +import { resolveRoutingId } from 'core-app/features/work-packages/helpers/work-package-id-resolvers'; @Component({ selector: 'wp-list-view', @@ -85,6 +87,7 @@ export class WorkPackageListViewComponent extends UntilDestroyedMixin implements readonly elementRef = inject>(ElementRef); readonly wpTableBaseline = inject(WorkPackageViewBaselineService); readonly pathHelper = inject(PathHelperService); + readonly states = inject(States); text = { jump_to_pagination: this.I18n.t('js.work_packages.jump_marks.pagination'), @@ -178,15 +181,16 @@ export class WorkPackageListViewComponent extends UntilDestroyedMixin implements } openStateLink(event:{ workPackageId:string; requestedState:'show'|'split' }) { + const routingId = resolveRoutingId(this.states, event.workPackageId); const params = { - workPackageId: event.workPackageId, + workPackageId: routingId, focus: true, }; if (event.requestedState === 'split') { this.keepTab.goCurrentDetailsState(params); } else { - this.openInFullView(event.workPackageId); + this.openInFullView(routingId); } } @@ -203,7 +207,8 @@ export class WorkPackageListViewComponent extends UntilDestroyedMixin implements } private openInFullView(workPackageId:string) { + const routingId = resolveRoutingId(this.states, workPackageId); const projectIdentifier = this.CurrentProject.identifier; - window.location.href = this.pathHelper.genericWorkPackagePath(projectIdentifier, workPackageId) + window.location.search; + window.location.href = this.pathHelper.genericWorkPackagePath(projectIdentifier, routingId) + window.location.search; } } diff --git a/frontend/src/app/features/work-packages/routing/wp-split-create/wp-split-create-entry.component.ts b/frontend/src/app/features/work-packages/routing/wp-split-create/wp-split-create-entry.component.ts new file mode 100644 index 00000000000..29da7e5f034 --- /dev/null +++ b/frontend/src/app/features/work-packages/routing/wp-split-create/wp-split-create-entry.component.ts @@ -0,0 +1,78 @@ +//-- copyright +// OpenProject is an open source project management software. +// Copyright (C) the OpenProject GmbH +// +// This program is free software; you can redistribute it and/or +// modify it under the terms of the GNU General Public License version 3. +// +// OpenProject is a fork of ChiliProject, which is a fork of Redmine. The copyright follows: +// Copyright (C) 2006-2013 Jean-Philippe Lang +// Copyright (C) 2010-2013 the ChiliProject Team +// +// This program is free software; you can redistribute it and/or +// modify it under the terms of the GNU General Public License +// as published by the Free Software Foundation; either version 2 +// of the License, or (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program; if not, write to the Free Software +// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +// +// See COPYRIGHT and LICENSE files for more details. +//++ + +import { + AfterViewInit, + ChangeDetectionStrategy, + Component, + ElementRef, + Input, + OnDestroy, +} from '@angular/core'; +import { + WorkPackageIsolatedQuerySpaceDirective, +} from 'core-app/features/work-packages/directives/query-space/wp-isolated-query-space.directive'; +import { populateInputsFromDataset } from 'core-app/shared/components/dataset-inputs'; + +/** + * An entry component to be rendered by Rails which opens an isolated query space + * for the work package split create (create form in the split panel). + */ +@Component({ + hostDirectives: [WorkPackageIsolatedQuerySpaceDirective], + standalone: false, + template: ` +
    + +
    + `, + changeDetection: ChangeDetectionStrategy.OnPush, +}) +export class WorkPackageSplitCreateEntryComponent implements AfterViewInit, OnDestroy { + @Input() projectIdentifier?:string; + @Input() type?:string; + + constructor(readonly elementRef:ElementRef) { + populateInputsFromDataset(this); + document.body.classList.add('router--work-packages-partitioned-split-view-new'); + } + + ngAfterViewInit():void { + // wp-new-split-view sets pageState = 'edited' unconditionally on mount, + // which would block Turbo navigation in the split panel context. + // Reset it here after all children have initialized. + window.OpenProject.pageState = 'pristine'; + } + + ngOnDestroy():void { + document.body.classList.remove('router--work-packages-partitioned-split-view-new'); + } +} diff --git a/frontend/src/app/features/work-packages/routing/wp-split-view/wp-split-view.component.ts b/frontend/src/app/features/work-packages/routing/wp-split-view/wp-split-view.component.ts index eb2c1121b9b..74bef210861 100644 --- a/frontend/src/app/features/work-packages/routing/wp-split-view/wp-split-view.component.ts +++ b/frontend/src/app/features/work-packages/routing/wp-split-view/wp-split-view.component.ts @@ -54,6 +54,7 @@ import { WorkPackageTabsService, } from 'core-app/features/work-packages/components/wp-tabs/services/wp-tabs/wp-tabs.service'; import { TabComponent } from 'core-app/features/work-packages/components/wp-tabs/components/wp-tab-wrapper/tab'; +import { resolveRoutingId } from 'core-app/features/work-packages/helpers/work-package-id-resolvers'; @Component({ templateUrl: './wp-split-view.html', @@ -101,27 +102,40 @@ export class WorkPackageSplitViewComponent extends WorkPackageSingleViewBase imp ngOnInit():void { this.observeWorkPackage(); - const wpId = (this.$state.params.workPackageId || this.workPackageId) as string; - this.wpTableFocus.updateFocus(wpId, false); - - if (this.wpTableSelection.isEmpty) { - this.wpTableSelection.setRowState(wpId, true); - } - this.wpTableFocus.whenChanged() .pipe( this.untilDestroyed(), ) .subscribe((newId) => { - const idSame = wpId.toString() === newId.toString(); + const currentId = this.workPackage?.id ?? this.workPackageId; + const idSame = currentId.toString() === newId.toString(); if (!idSame && this.$state.includes(`${this.baseRoute}.details`)) { - this.$state.go( + void this.$state.go( (this.$state.current.name!), - { workPackageId: newId, focus: false }, + { workPackageId: resolveRoutingId(this.states, newId.toString()), focus: false }, ); } }); - this.recentItemsService.add(wpId); + } + + /** + * Set focus, selection, and recent-items after the WP has loaded. + * + * Intentionally deferred from ngOnInit because the route param + * (this.workPackageId) may be a semantic identifier like "PROJ-7", + * but focus/selection services are keyed by numeric PK. By the time + * init() runs, this.workPackage.id is guaranteed to be the numeric PK. + */ + protected override init():void { + super.init(); + const numericId = this.workPackage.id!; + this.wpTableFocus.updateFocus(numericId, false); + + if (this.wpTableSelection.isEmpty) { + this.wpTableSelection.setRowState(numericId, true); + } + + this.recentItemsService.add(numericId); } get activeTabComponent():Type|undefined { diff --git a/frontend/src/app/features/work-packages/routing/wp-view-base/view-services/wp-view-hierarchy-indentation.service.spec.ts b/frontend/src/app/features/work-packages/routing/wp-view-base/view-services/wp-view-hierarchy-indentation.service.spec.ts index ad3b882cff1..b504dfff24f 100644 --- a/frontend/src/app/features/work-packages/routing/wp-view-base/view-services/wp-view-hierarchy-indentation.service.spec.ts +++ b/frontend/src/app/features/work-packages/routing/wp-view-base/view-services/wp-view-hierarchy-indentation.service.spec.ts @@ -35,7 +35,8 @@ import { WorkPackageViewHierarchyIdentationService } from 'core-app/features/wor import { WorkPackageViewDisplayRepresentationService } from 'core-app/features/work-packages/routing/wp-view-base/view-services/wp-view-display-representation.service'; import { ApiV3Service } from 'core-app/core/apiv3/api-v3.service'; import { of } from 'rxjs'; -import SpyObj = jasmine.SpyObj; +import type { MockedObject } from 'vitest'; +type SpyObj = MockedObject; describe('WorkPackageViewIndentation service', () => { let service:WorkPackageViewHierarchyIdentationService; @@ -59,12 +60,11 @@ describe('WorkPackageViewIndentation service', () => { } beforeEach(async () => { - parentServiceSpy = jasmine.createSpyObj( - 'WorkPackageRelationHierarchyService', - ['changeParent'], - ); + parentServiceSpy = { + changeParent: vi.fn().mockName('WorkPackageRelationHierarchyService.changeParent') + }; - parentServiceSpy.changeParent.and.resolveTo(); + parentServiceSpy.changeParent.mockResolvedValue(); await TestBed.configureTestingModule({ providers: [ @@ -118,8 +118,7 @@ describe('WorkPackageViewIndentation service', () => { { workPackageId: '1234', hidden: false, classIdentifier: 'foo' }, ]); - spyOnProperty(hierarchyServiceStub, 'isEnabled', 'get') - .and.returnValue(false); + vi.spyOn(hierarchyServiceStub, 'isEnabled', 'get').mockReturnValue(false); const workPackage:any = { id: '1234', changeParent: () => 'foo', ancestorIds: [] }; @@ -160,8 +159,7 @@ describe('WorkPackageViewIndentation service', () => { it('Cannot outdent with changeParent link but disabled', () => { const workPackage:any = { id: '1234', changeParent: () => 'foo', parent: { id: '2345' } }; - spyOnProperty(hierarchyServiceStub, 'isEnabled', 'get') - .and.returnValue(false); + vi.spyOn(hierarchyServiceStub, 'isEnabled', 'get').mockReturnValue(false); expect(service.canOutdent(workPackage)).toBeFalsy(); }); @@ -174,7 +172,7 @@ describe('WorkPackageViewIndentation service', () => { }); describe('indent', () => { - it('Can indent with a predecessor that is NOT an ancestor already', (done) => { + it('Can indent with a predecessor that is NOT an ancestor already', async () => { querySpace.tableRendered.putValue([ { workPackageId: '5555', hidden: false, classIdentifier: 'foo' }, { workPackageId: '2345', hidden: false, classIdentifier: 'foo' }, @@ -186,13 +184,12 @@ describe('WorkPackageViewIndentation service', () => { states.workPackages.get('2345').putValue(predecessor); - service.indent(workPackage).then(() => { - expect(parentServiceSpy.changeParent).toHaveBeenCalledWith(workPackage, '2345'); - done(); - }).catch(done.fail); + await service.indent(workPackage); + + expect(parentServiceSpy.changeParent).toHaveBeenCalledWith(workPackage, '2345'); }); - it('Can indent with a predecessor that shares an ancestor chain', (done) => { + it('Can indent with a predecessor that shares an ancestor chain', async () => { querySpace.tableRendered.putValue([ { workPackageId: '5555', hidden: false, classIdentifier: 'foo' }, { workPackageId: '2345', hidden: false, classIdentifier: 'foo' }, @@ -204,13 +201,12 @@ describe('WorkPackageViewIndentation service', () => { states.workPackages.get('2345').putValue(predecessor); - service.indent(workPackage).then(() => { - expect(parentServiceSpy.changeParent).toHaveBeenCalledWith(workPackage, '5555'); - done(); - }).catch(done.fail); + await service.indent(workPackage); + + expect(parentServiceSpy.changeParent).toHaveBeenCalledWith(workPackage, '5555'); }); - it('Can indent with a predecessor that shares an ancestor chain', (done) => { + it('Can indent with a predecessor that shares an ancestor chain', async () => { querySpace.tableRendered.putValue([ { workPackageId: '5555', hidden: false, classIdentifier: 'foo' }, { workPackageId: '2345', hidden: false, classIdentifier: 'foo' }, @@ -222,15 +218,14 @@ describe('WorkPackageViewIndentation service', () => { states.workPackages.get('2345').putValue(predecessor); - service.indent(workPackage).then(() => { - expect(parentServiceSpy.changeParent).toHaveBeenCalledWith(workPackage, '2345'); - done(); - }).catch(done.fail); + await service.indent(workPackage); + + expect(parentServiceSpy.changeParent).toHaveBeenCalledWith(workPackage, '2345'); }); }); describe('outdent', () => { - it('will outdent to the previous last ancestorId', (done) => { + it('will outdent to the previous last ancestorId', async () => { querySpace.tableRendered.putValue([ { workPackageId: '1234', hidden: false, classIdentifier: 'foo' }, ]); @@ -239,13 +234,12 @@ describe('WorkPackageViewIndentation service', () => { id: '1234', changeParent: () => 'foo', parent: '5555', ancestorIds: ['2345', '5555'], }; - service.outdent(workPackage).then(() => { - expect(parentServiceSpy.changeParent).toHaveBeenCalledWith(workPackage, '2345'); - done(); - }).catch(done.fail); + await service.outdent(workPackage); + + expect(parentServiceSpy.changeParent).toHaveBeenCalledWith(workPackage, '2345'); }); - it('will outdent to null in case of ancestorIds.length < 2', (done) => { + it('will outdent to null in case of ancestorIds.length < 2', async () => { querySpace.tableRendered.putValue([ { workPackageId: '1234', hidden: false, classIdentifier: 'foo' }, ]); @@ -254,10 +248,9 @@ describe('WorkPackageViewIndentation service', () => { id: '1234', changeParent: () => 'foo', parent: '2345', ancestorIds: ['2345'], }; - service.outdent(workPackage).then(() => { - expect(parentServiceSpy.changeParent).toHaveBeenCalledWith(workPackage, null); - done(); - }).catch(done.fail); + await service.outdent(workPackage); + + expect(parentServiceSpy.changeParent).toHaveBeenCalledWith(workPackage, null); }); }); }); diff --git a/frontend/src/app/features/work-packages/routing/wp-view-base/work-package-single-view.base.ts b/frontend/src/app/features/work-packages/routing/wp-view-base/work-package-single-view.base.ts index 9e12b28fafb..cd499bb647f 100644 --- a/frontend/src/app/features/work-packages/routing/wp-view-base/work-package-single-view.base.ts +++ b/frontend/src/app/features/work-packages/routing/wp-view-base/work-package-single-view.base.ts @@ -141,6 +141,12 @@ export abstract class WorkPackageSingleViewBase extends UntilDestroyedMixin { /** * Observe changes of work package and re-run initialization. * Needs to be run explicitly by descendants. + * + * Note: this.workPackageId may be a semantic identifier (e.g. "PROJ-7") + * from the route param. The API resolves it correctly, but the cache key + * would be "PROJ-7" while list queries cache the same WP under "42". + * After the first load we normalize to the numeric PK to prevent + * dual cache entries. */ protected observeWorkPackage():void { this @@ -150,6 +156,13 @@ export abstract class WorkPackageSingleViewBase extends UntilDestroyedMixin { .requireAndStream() .pipe(this.untilDestroyed()) .subscribe((wp:WorkPackageResource) => { + // Normalize semantic route param (e.g. "PROJ-7") to numeric PK + // for cache coherence — downstream code uses this.workPackageId + // as a cache key, and the canonical key is always numeric. + if (this.workPackageId !== wp.id && wp.id) { + this.workPackageId = wp.id; + } + if (!this.workPackage) { this.workPackage = wp; this.init(); diff --git a/frontend/src/app/features/work-packages/services/work-package-authorization.service.ts b/frontend/src/app/features/work-packages/services/work-package-authorization.service.ts index 01bdb3624d9..4819a1233d5 100644 --- a/frontend/src/app/features/work-packages/services/work-package-authorization.service.ts +++ b/frontend/src/app/features/work-packages/services/work-package-authorization.service.ts @@ -80,13 +80,13 @@ export class WorkPackageAuthorization { private copyLink() { const stateName = this.$state.current.name!; if (stateName.startsWith('work-packages.partitioned.list.details')) { - return this.PathHelper.workPackageDetailsCopyPath(this.project.identifier, this.workPackage.id!); + return this.PathHelper.workPackageDetailsCopyPath(this.project.identifier, this.workPackage.displayId); } - return this.PathHelper.workPackageCopyPath(this.project.identifier, this.workPackage.id!); + return this.PathHelper.workPackageCopyPath(this.project.identifier, this.workPackage.displayId); } private shortLink() { - return this.PathHelper.workPackageShortPath(this.workPackage.id!); + return this.PathHelper.workPackageShortPath(this.workPackage.displayId); } private bulkCopyLink():string { diff --git a/frontend/src/app/features/work-packages/services/work-package.service.ts b/frontend/src/app/features/work-packages/services/work-package.service.ts index 919ba47ef9a..adf66211379 100644 --- a/frontend/src/app/features/work-packages/services/work-package.service.ts +++ b/frontend/src/app/features/work-packages/services/work-package.service.ts @@ -27,13 +27,15 @@ //++ import { StateService } from '@uirouter/core'; -import { Injectable } from '@angular/core'; +import { inject, Injectable } from '@angular/core'; import { HttpClient } from '@angular/common/http'; import { PathHelperService } from 'core-app/core/path-helper/path-helper.service'; import { UrlParamsHelperService } from 'core-app/features/work-packages/components/wp-query/url-params-helper'; import { ToastService } from 'core-app/shared/components/toaster/toast.service'; import { I18nService } from 'core-app/core/i18n/i18n.service'; import { HalDeletedEvent, HalEventsService } from 'core-app/features/hal/services/hal-events.service'; +import { States } from 'core-app/core/states/states.service'; +import { resolveNumericId } from 'core-app/features/work-packages/helpers/work-package-id-resolvers'; @Injectable() export class WorkPackageService { @@ -41,6 +43,8 @@ export class WorkPackageService { successful_delete: this.I18n.t('js.work_packages.message_successful_bulk_delete'), }; + private readonly states = inject(States); + constructor(private readonly http:HttpClient, private readonly $state:StateService, private readonly PathHelper:PathHelperService, @@ -68,8 +72,11 @@ export class WorkPackageService { ids.forEach((id) => this.halEvents.push({ _type: 'WorkPackage', id }, { eventType: 'deleted' } as HalDeletedEvent)); - if (this.$state.includes('**.list.details.**') - && ids.includes(this.$state.params.workPackageId)) { + const routeWpId = this.$state.params.workPackageId as string; + const numericId = resolveNumericId(this.states, routeWpId); + if (numericId + && this.$state.includes('**.list.details.**') + && ids.includes(numericId)) { this.$state.go('work-packages.partitioned.list', this.$state.params); } }) diff --git a/frontend/src/app/shared/components/attribute-help-texts/attribute-help-text-modal.service.spec.ts b/frontend/src/app/shared/components/attribute-help-texts/attribute-help-text-modal.service.spec.ts index 845711ae1e5..8d7c28da137 100644 --- a/frontend/src/app/shared/components/attribute-help-texts/attribute-help-text-modal.service.spec.ts +++ b/frontend/src/app/shared/components/attribute-help-texts/attribute-help-text-modal.service.spec.ts @@ -1,3 +1,4 @@ +import type { Mock } from 'vitest'; import { TestBed } from '@angular/core/testing'; import { AttributeHelpTextsService } from './attribute-help-text.service'; import { AttributeHelpTextModalService } from './attribute-help-text-modal.service'; @@ -6,12 +7,12 @@ import { TurboRequestsService } from 'core-app/core/turbo/turbo-requests.service import { ToastService } from '../toaster/toast.service'; describe('AttributeHelpTextModalService', () => { - let fetchSpy:jasmine.Spy; + let fetchSpy:Mock; let modalService:AttributeHelpTextModalService; let dialog:HTMLDialogElement|null; beforeEach(() => { - fetchSpy = spyOn(window, 'fetch'); + fetchSpy = vi.spyOn(window, 'fetch') as unknown as Mock; }); beforeEach(async () => { @@ -34,12 +35,12 @@ describe('AttributeHelpTextModalService', () => { const makeSuccessResponse = (dialogId:string, dialogContent:string) => { const body = ` - - `; + + `; return new Response(body, { status: 200, headers: { 'Content-Type': 'text/vnd.turbo-stream.html' } }); }; @@ -47,84 +48,84 @@ describe('AttributeHelpTextModalService', () => { afterEach(() => { dialog?.remove(); dialog = null; + vi.restoreAllMocks(); }); describe('with a successful request', () => { beforeEach(() => { - fetchSpy - .withArgs(jasmine.stringMatching('/1/show_dialog'), jasmine.any(Object)) - .and.resolveTo(makeSuccessResponse('test1', 'Hello Dialog')); + fetchSpy.mockImplementation((url:RequestInfo | URL) => { + const requestUrl = url instanceof Request ? url.url : url.toString(); + + if (requestUrl.includes('/1/show_dialog')) { + return Promise.resolve(makeSuccessResponse('test1', 'Hello Dialog')); + } + return Promise.reject(new Error(`Unexpected url: ${requestUrl}`)); + }); }); it('should handle Turbo Stream dialog response and open the dialog', async () => { expect(document.querySelector('dialog#test1')).toBeFalsy(); - await expectAsync(modalService.show('1')).toBeResolved(); + await modalService.show('1'); expect(fetchSpy).toHaveBeenCalledTimes(1); dialog = await waitForNativeElement('dialog#test1'); expect(dialog.textContent).toEqual('Hello Dialog'); - expect(dialog.open).toBeTrue(); + expect(dialog.open).toBe(true); dialog.close(); - expect(dialog.open).toBeFalse(); + expect(dialog.open).toBe(false); }); }); describe('with an aborted request followed by a successful request', () => { beforeEach(() => { fetchSpy - .withArgs(jasmine.stringMatching('/2/show_dialog'), jasmine.any(Object)) - .and.returnValues( - Promise.reject(new DOMException('message', 'AbortError')), - Promise.resolve(makeSuccessResponse('test2', 'Noch mal ein Dialog')), - ); + .mockReturnValueOnce(Promise.reject(new DOMException('message', 'AbortError'))) + .mockReturnValueOnce(Promise.resolve(makeSuccessResponse('test2', 'Noch mal ein Dialog'))); }); it('should handle Turbo Stream dialog response and still open the dialog', async () => { expect(document.querySelector('dialog#test2')).toBeFalsy(); - await expectAsync(modalService.show('2')).toBeRejected(); - await expectAsync(modalService.show('2')).toBeResolved(); + await expect(modalService.show('2')).rejects.toThrow(); + await modalService.show('2'); expect(fetchSpy).toHaveBeenCalledTimes(2); dialog = await waitForNativeElement('dialog#test2'); expect(dialog.textContent).toEqual('Noch mal ein Dialog'); - expect(dialog.open).toBeTrue(); + expect(dialog.open).toBe(true); dialog.close(); - expect(dialog.open).toBeFalse(); + expect(dialog.open).toBe(false); }); }); describe('with 3 successful requests with the same dialog id', () => { beforeEach(() => { fetchSpy - .withArgs(jasmine.stringMatching('/3/show_dialog'), jasmine.any(Object)) - .and.returnValues( - Promise.resolve(makeSuccessResponse('test3', '

    initial content

    ')), - Promise.resolve(makeSuccessResponse('test3', '

    updated content

    ')), - Promise.resolve(makeSuccessResponse('test3', '

    new headline

    ')), - ); + .mockReturnValueOnce(Promise.resolve(makeSuccessResponse('test3', '

    initial content

    '))) + .mockReturnValueOnce(Promise.resolve(makeSuccessResponse('test3', '

    updated content

    '))) + .mockReturnValueOnce(Promise.resolve(makeSuccessResponse('test3', '

    new headline

    '))); }); it('should handle Turbo Stream dialog response and update dialog', async () => { expect(document.querySelector('dialog#test3')).toBeFalsy(); - await expectAsync(modalService.show('3')).toBeResolved(); + await modalService.show('3'); expect(fetchSpy).toHaveBeenCalledTimes(1); dialog = await waitForNativeElement('dialog#test3'); expect(dialog.textContent).toEqual('initial content'); - expect(dialog.open).toBeTrue(); + expect(dialog.open).toBe(true); - await expectAsync(modalService.show('3')).toBeResolved(); + await modalService.show('3'); expect(fetchSpy).toHaveBeenCalledTimes(2); @@ -132,9 +133,9 @@ describe('AttributeHelpTextModalService', () => { expect(mutation.type).toEqual('characterData'); expect(dialog.textContent).toEqual('updated content'); - expect(dialog.open).toBeTrue(); + expect(dialog.open).toBe(true); - await expectAsync(modalService.show('3')).toBeResolved(); + await modalService.show('3'); expect(fetchSpy).toHaveBeenCalledTimes(3); @@ -143,11 +144,11 @@ describe('AttributeHelpTextModalService', () => { expect(mutation.type).toEqual('childList'); expect(dialog.textContent).toEqual('new headline'); expect(dialog.querySelector('h3')).toBeTruthy(); - expect(dialog.open).toBeTrue(); + expect(dialog.open).toBe(true); dialog.close(); - expect(dialog.open).toBeFalse(); + expect(dialog.open).toBe(false); }); }); }); @@ -170,10 +171,7 @@ function waitForNativeElement(selector:string):Promise { }); } -function waitForElementMutation( - element:T, - predicate:(mutation:MutationRecord) => boolean = () => true, -):Promise { +function waitForElementMutation(element:T, predicate:(mutation:MutationRecord) => boolean = () => true):Promise { return new Promise((resolve) => { const observer = new MutationObserver((mutationList) => { const record = mutationList.find(predicate); diff --git a/frontend/src/app/shared/components/attribute-help-texts/attribute-help-text.component.spec.ts b/frontend/src/app/shared/components/attribute-help-texts/attribute-help-text.component.spec.ts index 3eef69de171..ec2f206789d 100644 --- a/frontend/src/app/shared/components/attribute-help-texts/attribute-help-text.component.spec.ts +++ b/frontend/src/app/shared/components/attribute-help-texts/attribute-help-text.component.spec.ts @@ -14,12 +14,14 @@ describe('AttributeHelpTextComponent', () => { let element:DebugElement; const serviceStub = {}; - let modalServiceStub:jasmine.SpyObj; - const i18nStub = { t: (_scope:string|string[], _options?:Record) => 'Show help text' }; + let modalServiceStub:{ show:ReturnType }; + const i18nStub = { t: (_scope:string | string[], _options?:Record) => 'Show help text' }; beforeEach(async () => { - modalServiceStub = jasmine.createSpyObj('AttributeHelpTextModalService', ['show']); - modalServiceStub.show.and.resolveTo(); + modalServiceStub = { + show: vi.fn().mockName('AttributeHelpTextModalService.show') + }; + modalServiceStub.show.mockResolvedValue(undefined); await TestBed .configureTestingModule({ @@ -59,7 +61,7 @@ describe('AttributeHelpTextComponent', () => { const button = element.query(By.css("[role='button']")); expect(button).toBeTruthy(); - expect(button.nativeElement).toHaveClass('spot-link'); + expect(button.nativeElement.classList.contains('spot-link')).toBe(true); }); it('renders a tooltip', () => { @@ -68,7 +70,7 @@ describe('AttributeHelpTextComponent', () => { expect(tooltip).toBeTruthy(); expect(tooltip.nativeElement.textContent).toEqual('Show help text'); expect(tooltip.nativeElement.getAttribute('for')).toMatch(/attribute-help-text-component-\d+/); - expect(tooltip.nativeElement.popover).toEqual('manual'); + expect(tooltip.nativeElement.getAttribute('popover')).toEqual('manual'); expect(tooltip.nativeElement.dataset.direction).toEqual('sw'); expect(tooltip.nativeElement.dataset.type).toEqual('label'); }); @@ -82,7 +84,7 @@ describe('AttributeHelpTextComponent', () => { it('applies .help-text--entry class', () => { const button = element.query(By.css("[role='button']")); - expect(button.nativeElement).toHaveClass('help-text--entry'); + expect(button.nativeElement.classList.contains('help-text--entry')).toBe(true); }); it('applies an ID', () => { @@ -106,11 +108,13 @@ describe('AttributeHelpTextComponent', () => { expect(button.nativeElement.ariaDisabled).toEqual('true'); await Promise.resolve(); - await modalServiceStub.show.calls.mostRecent().returnValue; + await modalServiceStub.show.mock.results.at(-1)!.value; await new Promise(resolve => setTimeout(resolve, 0)); fixture.detectChanges(); - expect(modalServiceStub.show).toHaveBeenCalledOnceWith('1'); + expect(modalServiceStub.show).toHaveBeenCalledTimes(1); + + expect(modalServiceStub.show).toHaveBeenCalledWith('1'); expect(button.nativeElement.ariaDisabled).toEqual('false'); }); @@ -128,11 +132,13 @@ describe('AttributeHelpTextComponent', () => { fixture.detectChanges(); await Promise.resolve(); - await modalServiceStub.show.calls.mostRecent().returnValue; + await modalServiceStub.show.mock.results.at(-1)!.value; await new Promise(resolve => setTimeout(resolve, 0)); fixture.detectChanges(); - expect(modalServiceStub.show).toHaveBeenCalledOnceWith('1'); + expect(modalServiceStub.show).toHaveBeenCalledTimes(1); + + expect(modalServiceStub.show).toHaveBeenCalledWith('1'); expect(button.nativeElement.ariaDisabled).toEqual('false'); }); }); diff --git a/frontend/src/app/shared/components/autocompleter/op-autocompleter/op-autocompleter.component.html b/frontend/src/app/shared/components/autocompleter/op-autocompleter/op-autocompleter.component.html index e48812d1d84..256d20bac57 100644 --- a/frontend/src/app/shared/components/autocompleter/op-autocompleter/op-autocompleter.component.html +++ b/frontend/src/app/shared/components/autocompleter/op-autocompleter/op-autocompleter.component.html @@ -177,7 +177,7 @@ #{{ item.id }} + >{{ item.formattedId }} - {{ item.type?.name }} #{{ item.id }} {{ item.subject || item.name }} + {{ item.type?.name }} {{ item.formattedId }} {{ item.subject || item.name }} } } diff --git a/frontend/src/app/shared/components/autocompleter/op-autocompleter/op-autocompleter.spec.ts b/frontend/src/app/shared/components/autocompleter/op-autocompleter/op-autocompleter.spec.ts index 45656df857b..5b2f00691c4 100644 --- a/frontend/src/app/shared/components/autocompleter/op-autocompleter/op-autocompleter.spec.ts +++ b/frontend/src/app/shared/components/autocompleter/op-autocompleter/op-autocompleter.spec.ts @@ -1,3 +1,4 @@ +import type { Mock } from 'vitest'; import { ComponentFixture, TestBed } from '@angular/core/testing'; import { States } from 'core-app/core/states/states.service'; import { provideHttpClientTesting } from '@angular/common/http/testing'; @@ -12,16 +13,20 @@ import { provideHttpClient, withInterceptorsFromDi } from '@angular/common/http' describe('autocompleter', () => { let fixture:ComponentFixture; - let getOptionsFnSpy:jasmine.Spy; + let getOptionsFnSpy:Mock; const workPackagesStub = [ { id: 1, subject: 'Workpackage 1', name: 'Workpackage 1', + formattedId: '#1', author: { href: '/api/v3/users/1', name: 'Author1', }, + type: { id: 1, name: 'Task' }, + status: { id: 1, name: 'Open' }, + project: { name: 'My Project' }, description: { format: 'markdown', raw: 'Description of WP1', @@ -36,10 +41,14 @@ describe('autocompleter', () => { id: 2, subject: 'Workpackage 2', name: 'Workpackage 2', + formattedId: 'PROJ-2', author: { href: '/api/v3/users/2', name: 'Author2', }, + type: { id: 2, name: 'Bug' }, + status: { id: 2, name: 'Closed' }, + project: { name: 'My Project' }, description: { format: 'markdown', raw: 'Description of WP2', @@ -52,6 +61,20 @@ describe('autocompleter', () => { }, ]; + type WindowWithOpenProject = Omit & { + OpenProject?:{ + environment:string; + }; + }; + + beforeEach(() => { + (window as WindowWithOpenProject).OpenProject = { environment: 'test' }; + }); + + afterEach(() => { + delete (window as WindowWithOpenProject).OpenProject; + }); + beforeEach(async () => { await TestBed.configureTestingModule({ declarations: [OpAutocompleterComponent], @@ -61,10 +84,8 @@ describe('autocompleter', () => { }).compileComponents(); fixture = TestBed.createComponent(OpAutocompleterComponent); - getOptionsFnSpy = jasmine.createSpy('getOptionsFn').and.callFake((searchTerm:string) => { - return of(workPackagesStub).pipe( - map((wps) => wps.filter((wp) => searchTerm !== '' && wp.subject.includes(searchTerm))) - ); + getOptionsFnSpy = vi.fn().mockImplementation((searchTerm:string) => { + return of(workPackagesStub).pipe(map((wps) => wps.filter((wp) => searchTerm !== '' && wp.subject.includes(searchTerm)))); }); fixture.componentInstance.resource = 'work_packages' as TOpAutocompleterResource; @@ -80,35 +101,36 @@ describe('autocompleter', () => { }); it('should load the ng-select correctly', () => { - jasmine.clock().install(); + vi.useFakeTimers(); try { fixture.detectChanges(); - jasmine.clock().tick(0); + vi.advanceTimersByTime(0); const autocompleter = document.querySelector('.ng-select-container'); expect(document.contains(autocompleter)).toBeTruthy(); - } finally { - jasmine.clock().uninstall(); + } + finally { + vi.useRealTimers(); } }); describe('without debounce', () => { it('should load items', () => { - jasmine.clock().install(); + vi.useFakeTimers(); try { - jasmine.clock().tick(0); + vi.advanceTimersByTime(0); fixture.detectChanges(); fixture.componentInstance.ngAfterViewInit(); - jasmine.clock().tick(1000); + vi.advanceTimersByTime(1000); fixture.detectChanges(); const select = fixture.componentInstance.ngSelectInstance; - expect(select.isOpen()).toBeFalse(); + expect(select.isOpen()).toBe(false); select.open(); select.focus(); - expect(select.isOpen()).toBeTrue(); + expect(select.isOpen()).toBe(true); expect(select.itemsList.items.length).toEqual(0); @@ -116,14 +138,14 @@ describe('autocompleter', () => { const inputElement = inputDebugElement.nativeElement as HTMLInputElement; fixture.detectChanges(); - jasmine.clock().tick(0); + vi.advanceTimersByTime(0); expect(getOptionsFnSpy).toHaveBeenCalledWith(''); inputElement.value = 'Wor'; inputElement.dispatchEvent(new Event('input')); fixture.detectChanges(); - jasmine.clock().tick(0); + vi.advanceTimersByTime(0); expect(getOptionsFnSpy).toHaveBeenCalledWith('Wor'); @@ -134,15 +156,130 @@ describe('autocompleter', () => { inputElement.value = 'package 2'; inputElement.dispatchEvent(new Event('input')); fixture.detectChanges(); - jasmine.clock().tick(0); + vi.advanceTimersByTime(0); expect(getOptionsFnSpy).toHaveBeenCalledWith('package 2'); fixture.detectChanges(); expect(select.itemsList.items.length).toEqual(1); - } finally { - jasmine.clock().uninstall(); + } + finally { + vi.useRealTimers(); + } + }); + }); + + describe('work package option rendering', () => { + it('should display formattedId in dropdown options', () => { + vi.useFakeTimers(); + try { + vi.advanceTimersByTime(0); + fixture.detectChanges(); + fixture.componentInstance.ngAfterViewInit(); + vi.advanceTimersByTime(1000); + fixture.detectChanges(); + const select = fixture.componentInstance.ngSelectInstance; + + select.open(); + select.focus(); + + const inputDebugElement = fixture.debugElement.query(By.css('input[role=combobox]')); + const inputElement = inputDebugElement.nativeElement as HTMLInputElement; + + inputElement.value = 'Wor'; + inputElement.dispatchEvent(new Event('input')); + fixture.detectChanges(); + vi.advanceTimersByTime(0); + fixture.detectChanges(); + + const wpIdElements = document.querySelectorAll('.op-autocompleter--wp-id'); + + expect(wpIdElements.length).toBeGreaterThanOrEqual(1); + // Verify at least one rendered option displays formattedId + const renderedIds = Array.from(wpIdElements).map(el => el.textContent?.trim()); + + expect(renderedIds).toContain('#1'); + } + finally { + vi.useRealTimers(); + } + }); + + it('should display classic formattedId in selected value label', () => { + vi.useFakeTimers(); + try { + vi.advanceTimersByTime(0); + fixture.detectChanges(); + fixture.componentInstance.ngAfterViewInit(); + vi.advanceTimersByTime(1000); + fixture.detectChanges(); + const select = fixture.componentInstance.ngSelectInstance; + + select.open(); + select.focus(); + + const inputDebugElement = fixture.debugElement.query(By.css('input[role=combobox]')); + const inputElement = inputDebugElement.nativeElement as HTMLInputElement; + + inputElement.value = 'Wor'; + inputElement.dispatchEvent(new Event('input')); + fixture.detectChanges(); + vi.advanceTimersByTime(0); + fixture.detectChanges(); + + // Select the first item (classic mode: #1) + const firstOption = document.querySelector('.ng-option')!; + firstOption.click(); + fixture.detectChanges(); + + const labelElement = document.querySelector('.ng-value-label'); + + expect(labelElement).toBeTruthy(); + expect(labelElement!.textContent).toContain('#1'); + expect(labelElement!.textContent).toContain('Workpackage 1'); + } + finally { + vi.useRealTimers(); + } + }); + + it('should display semantic formattedId in selected value label', () => { + vi.useFakeTimers(); + try { + vi.advanceTimersByTime(0); + fixture.detectChanges(); + fixture.componentInstance.ngAfterViewInit(); + vi.advanceTimersByTime(1000); + fixture.detectChanges(); + const select = fixture.componentInstance.ngSelectInstance; + + select.open(); + select.focus(); + + const inputDebugElement = fixture.debugElement.query(By.css('input[role=combobox]')); + const inputElement = inputDebugElement.nativeElement as HTMLInputElement; + + inputElement.value = 'package 2'; + inputElement.dispatchEvent(new Event('input')); + fixture.detectChanges(); + vi.advanceTimersByTime(0); + fixture.detectChanges(); + + // Select the semantic mode item (PROJ-2) + const option = document.querySelector('.ng-option')!; + option.click(); + fixture.detectChanges(); + + const labelElement = document.querySelector('.ng-value-label'); + + expect(labelElement).toBeTruthy(); + expect(labelElement!.textContent).toContain('PROJ-2'); + expect(labelElement!.textContent).not.toContain('#PROJ-2'); + expect(labelElement!.textContent).toContain('Workpackage 2'); + } + finally { + vi.useRealTimers(); } }); }); @@ -161,11 +298,11 @@ describe('autocompleter', () => { fixture.detectChanges(); const select = fixture.componentInstance.ngSelectInstance; - expect(select.isOpen()).toBeFalse(); + expect(select.isOpen()).toBe(false); select.open(); select.focus(); - expect(select.isOpen()).toBeTrue(); + expect(select.isOpen()).toBe(true); expect(select.itemsList.items.length).toEqual(0); @@ -178,7 +315,7 @@ describe('autocompleter', () => { await new Promise(resolve => setTimeout(resolve, 100)); expect(getOptionsFnSpy).toHaveBeenCalledWith(''); - getOptionsFnSpy.calls.reset(); + getOptionsFnSpy.mockClear(); inputElement.value = 'Wor'; inputElement.dispatchEvent(new Event('input')); diff --git a/frontend/src/app/shared/components/autocompleter/op-autocompleter/services/op-autocompleter.service.ts b/frontend/src/app/shared/components/autocompleter/op-autocompleter/services/op-autocompleter.service.ts index 5b1b0616ad6..ab94f9c5c13 100644 --- a/frontend/src/app/shared/components/autocompleter/op-autocompleter/services/op-autocompleter.service.ts +++ b/frontend/src/app/shared/components/autocompleter/op-autocompleter/services/op-autocompleter.service.ts @@ -64,7 +64,7 @@ export class OpAutocompleterService extends UntilDestroyedMixin { if (resource === 'work_packages') { return { // see op-autocompleter/op-autocompleter.component.html for required attributes - select: 'elements/id,elements/subject,elements/author,elements/type,elements/project,elements/status', + select: 'elements/id,elements/displayId,elements/subject,elements/author,elements/type,elements/project,elements/status', sortBy: '[["updatedAt","desc"]]', }; } diff --git a/frontend/src/app/shared/components/editor/components/ckeditor/ckeditor-setup.service.ts b/frontend/src/app/shared/components/editor/components/ckeditor/ckeditor-setup.service.ts index 6ef86cd8760..deaa4c7f0fd 100644 --- a/frontend/src/app/shared/components/editor/components/ckeditor/ckeditor-setup.service.ts +++ b/frontend/src/app/shared/components/editor/components/ckeditor/ckeditor-setup.service.ts @@ -156,14 +156,18 @@ export class CKEditorSetupService { * Load the ckeditor asset */ private async load():Promise { - // untyped module cannot be dynamically imported + // untyped modules cannot be dynamically imported // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore - await import(/* webpackChunkName: "ckeditor" */ 'core-vendor/ckeditor/ckeditor'); + const loadEditorScript = import(/* webpackChunkName: "ckeditor" */ 'core-vendor/ckeditor/ckeditor'); + + const promises = [loadEditorScript]; if (I18n.locale !== 'en') { - await this.loadLocale(); + promises.push(this.loadLocale()); } + + await Promise.all(promises); } private async loadLocale():Promise { @@ -185,6 +189,7 @@ export class CKEditorSetupService { 'OPMacroToc', 'OPMacroEmbeddedTable', 'OPMacroWpButton', + 'OPMacroWpQuickinfo', ]; } diff --git a/frontend/src/app/shared/components/editor/components/ckeditor/codemirror-loader.service.ts b/frontend/src/app/shared/components/editor/components/ckeditor/codemirror-loader.service.ts new file mode 100644 index 00000000000..480bff54bc8 --- /dev/null +++ b/frontend/src/app/shared/components/editor/components/ckeditor/codemirror-loader.service.ts @@ -0,0 +1,62 @@ +import { Injectable } from '@angular/core'; +import type CodeMirrorStatic from 'codemirror'; + +type CodeMirrorType = typeof CodeMirrorStatic; + +@Injectable({ providedIn: 'root' }) +export class CodeMirrorLoaderService { + private codeMirrorPromise:Promise|undefined; + + private loadedModes = new Set(); + private missingModes = new Set(); + private modePromises = new Map>(); + + public async loadCore():Promise { + // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-ignore + this.codeMirrorPromise ??= import(/* webpackChunkName: "codemirror" */ '../../../../../../../node_modules/codemirror/lib/codemirror.js') + .then((imported:{ default:CodeMirrorType }) => imported.default); + + return this.codeMirrorPromise; + } + + public async ensureModeLoaded(language:string):Promise { + if (!language || language === 'text') { + return true; + } + + const normalizedLanguage = language.toLowerCase(); + + if (this.loadedModes.has(normalizedLanguage)) { + return true; + } + + if (this.missingModes.has(normalizedLanguage)) { + return false; + } + + if (!this.modePromises.has(normalizedLanguage)) { + this.modePromises.set(normalizedLanguage, this.loadMode(normalizedLanguage)); + } + + return this.modePromises.get(normalizedLanguage)!; + } + + private async loadMode(language:string):Promise { + await this.loadCore(); + + try { + // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-ignore + await import( + /* webpackChunkName: "codemirror-mode" */ `../../../../../../../node_modules/codemirror/mode/${language}/${language}.js` + ); + + this.loadedModes.add(language); + return true; + } catch { + this.missingModes.add(language); + return false; + } + } +} diff --git a/frontend/src/app/shared/components/editor/components/ckeditor/op-ckeditor.component.ts b/frontend/src/app/shared/components/editor/components/ckeditor/op-ckeditor.component.ts index 78f2d21b731..abe7a4e46a9 100644 --- a/frontend/src/app/shared/components/editor/components/ckeditor/op-ckeditor.component.ts +++ b/frontend/src/app/shared/components/editor/components/ckeditor/op-ckeditor.component.ts @@ -26,7 +26,8 @@ // See COPYRIGHT and LICENSE files for more details. //++ -import { ChangeDetectionStrategy, Component, ElementRef, EventEmitter, Input, OnDestroy, OnInit, Output, ViewChild } from '@angular/core'; +import { ChangeDetectionStrategy, Component, ElementRef, EventEmitter, Input, OnDestroy, OnInit, Output, ViewChild, inject } from '@angular/core'; +import type { Editor as CodeMirrorEditor } from 'codemirror'; import { ToastService } from 'core-app/shared/components/toaster/toast.service'; import { I18nService } from 'core-app/core/i18n/i18n.service'; import { ConfigurationService } from 'core-app/core/config/configuration.service'; @@ -36,12 +37,11 @@ import { ICKEditorWatchdog, } from 'core-app/shared/components/editor/components/ckeditor/ckeditor.types'; import { CKEditorSetupService } from 'core-app/shared/components/editor/components/ckeditor/ckeditor-setup.service'; +import { CodeMirrorLoaderService } from 'core-app/shared/components/editor/components/ckeditor/codemirror-loader.service'; import { KeyCodes } from 'core-app/shared/helpers/keycodes'; import { debugLog } from 'core-app/shared/helpers/debug_output'; import { UntilDestroyedMixin } from 'core-app/shared/helpers/angular/until-destroyed.mixin'; -declare module 'codemirror'; - @Component({ selector: 'op-ckeditor', templateUrl: './op-ckeditor.html', @@ -102,12 +102,19 @@ export class OpCkeditorComponent extends UntilDestroyedMixin implements OnInit, private _content = ''; + private readonly elementRef = inject>(ElementRef); + private readonly Notifications = inject(ToastService); + private readonly I18n = inject(I18nService); + private readonly configurationService = inject(ConfigurationService); + private readonly ckEditorSetup = inject(CKEditorSetupService); + private readonly codeMirrorLoader = inject(CodeMirrorLoaderService); + public text = { errorTitle: this.I18n.t('js.editor.ckeditor_error'), }; // Codemirror instance, initialized lazily when running source mode - public codeMirrorInstance:undefined|any; + public codeMirrorInstance:CodeMirrorEditor|null = null; // Debounce change listener for both CKE and codemirror // to read back changes as they happen @@ -120,16 +127,6 @@ export class OpCkeditorComponent extends UntilDestroyedMixin implements OnInit, { leading: true }, ); - constructor( - private readonly elementRef:ElementRef, - private readonly Notifications:ToastService, - private readonly I18n:I18nService, - private readonly configurationService:ConfigurationService, - private readonly ckEditorSetup:CKEditorSetupService, - ) { - super(); - } - /** * Get the current live data from CKEditor. This may raise in cases * the data cannot be loaded (MS Edge!) @@ -138,8 +135,7 @@ export class OpCkeditorComponent extends UntilDestroyedMixin implements OnInit, let content:string; if (this.manualMode) { - // eslint-disable-next-line @typescript-eslint/no-unsafe-call,@typescript-eslint/no-unsafe-member-access - content = this.codeMirrorInstance.getValue() as string; + content = this.codeMirrorInstance!.getValue(); } else { content = this.ckEditorInstance.getData({ trim: false }); } @@ -335,25 +331,23 @@ export class OpCkeditorComponent extends UntilDestroyedMixin implements OnInit, const current = this.getRawData(); const cmMode = 'gfm'; - void Promise - .all([ - import('codemirror'), - import(/* webpackChunkName: "codemirror-mode" */ `../../../../../../../node_modules/codemirror/mode/${cmMode}/${cmMode}.js`), - ]) - .then((imported:any[]) => { - const CodeMirror = imported[0].default; + void this.codeMirrorLoader + .ensureModeLoaded(cmMode) + .then((modeLoaded) => modeLoaded ? cmMode : '') + .then(async (resolvedMode) => { + const CodeMirror = await this.codeMirrorLoader.loadCore(); this.codeMirrorInstance = CodeMirror( - this.elementRef.nativeElement.querySelector('.ck-editor__source'), + this.elementRef.nativeElement.querySelector('.ck-editor__source')!, { lineNumbers: true, smartIndent: true, value: current, - mode: '', + mode: resolvedMode, }, ); this.codeMirrorInstance.on('change', this.debouncedEmitter); - setTimeout(() => this.codeMirrorInstance.refresh(), 100); + setTimeout(() => this.codeMirrorInstance!.refresh(), 100); this.manualMode = true; }); } diff --git a/frontend/src/app/shared/components/fields/display/field-types/linked-work-package-display-field.module.ts b/frontend/src/app/shared/components/fields/display/field-types/linked-work-package-display-field.module.ts index 28ab5c4b385..2d1b247c619 100644 --- a/frontend/src/app/shared/components/fields/display/field-types/linked-work-package-display-field.module.ts +++ b/frontend/src/app/shared/components/fields/display/field-types/linked-work-package-display-field.module.ts @@ -56,10 +56,12 @@ export class LinkedWorkPackageDisplayField extends WorkPackageDisplayField { return; } + const routingId = this.wpRoutingId; const link = this.uiStateBuilder.linkToShow( this.wpId, this.text.linkTitle, this.valueString, + routingId, ); const title = document.createElement('span'); diff --git a/frontend/src/app/shared/components/fields/display/field-types/work-package-display-field.module.ts b/frontend/src/app/shared/components/fields/display/field-types/work-package-display-field.module.ts index 36eb4619074..dee42c2fa50 100644 --- a/frontend/src/app/shared/components/fields/display/field-types/work-package-display-field.module.ts +++ b/frontend/src/app/shared/components/fields/display/field-types/work-package-display-field.module.ts @@ -28,6 +28,7 @@ import { DisplayField } from 'core-app/shared/components/fields/display/display-field.module'; import { WorkPackageResource } from 'core-app/features/hal/resources/work-package-resource'; +import { formatWorkPackageId } from 'core-app/shared/helpers/work-package-id-pattern'; export class WorkPackageDisplayField extends DisplayField { public text = { @@ -58,13 +59,30 @@ export class WorkPackageDisplayField extends DisplayField { return this.value.href.match(/(\d+)$/)[0]; } + /** + * Returns the identifier for URL routing when the linked WP is loaded, + * falling back to the numeric ID extracted from the href. + * + * Unlike `WorkPackageBaseResource.displayId`, this handles the case + * where the related resource is only a HAL link (not yet fetched). + */ + public get wpRoutingId():string { + const linkedWp = this.value as WorkPackageResource | undefined; + if (linkedWp?.$loaded) { + return linkedWp.displayId; + } + return this.wpId as string; + } + /** * Returns the work package ID formatted for display. * Classic mode: `#123` (hash-prefixed), Semantic mode: `PROJ-42` (no prefix). * * Delegates to `WorkPackageResource#formattedId` when the linked resource * is loaded. When unloaded, falls back to the numeric ID extracted from - * the self-link href (which has no `displayId` available). + * the self-link href — an unloaded HAL link carries only the href, not + * the resource's properties (the API always populates `displayId`, but + * we can't reach it until the link is fetched). */ public get wpFormattedId():string { const linkedWp = this.value as WorkPackageResource | undefined; @@ -75,7 +93,7 @@ export class WorkPackageDisplayField extends DisplayField { const id = this.wpId as string | number | null; if (!id) return ''; - return `#${id}`; + return formatWorkPackageId(String(id)); } public get valueString() { diff --git a/frontend/src/app/shared/components/fields/display/field-types/wp-id-display-field.module.spec.ts b/frontend/src/app/shared/components/fields/display/field-types/wp-id-display-field.module.spec.ts index 1192c9d9eb7..ea6a8647423 100644 --- a/frontend/src/app/shared/components/fields/display/field-types/wp-id-display-field.module.spec.ts +++ b/frontend/src/app/shared/components/fields/display/field-types/wp-id-display-field.module.spec.ts @@ -75,7 +75,19 @@ describe('WorkPackageIdDisplayField', () => { expect(link!.textContent).toEqual('PROJ-7'); }); - it('uses the numeric id for routing (data-work-package-id)', () => { + it('uses the semantic displayId in the href for pretty URLs', () => { + buildField({ id: '42', displayId: 'PROJ-7' }); + + const container = document.createElement('span'); + field.render(container, 'PROJ-7'); + + const link = container.querySelector('a'); + + expect(link).toBeTruthy(); + expect(link!.href).toContain('/work_packages/PROJ-7'); + }); + + it('keeps the numeric id in data-work-package-id for selection', () => { buildField({ id: '42', displayId: 'PROJ-7' }); const container = document.createElement('span'); diff --git a/frontend/src/app/shared/components/fields/display/field-types/wp-id-display-field.module.ts b/frontend/src/app/shared/components/fields/display/field-types/wp-id-display-field.module.ts index 1d67e453921..93619bb9e5e 100644 --- a/frontend/src/app/shared/components/fields/display/field-types/wp-id-display-field.module.ts +++ b/frontend/src/app/shared/components/fields/display/field-types/wp-id-display-field.module.ts @@ -46,7 +46,7 @@ export class WorkPackageIdDisplayField extends IdDisplayField { private uiStateBuilder:UiStateLinkBuilder = new UiStateLinkBuilder(this.$state, this.keepTab, this.currentProject, this.pathHelper); public get valueString():string { - // eslint-disable-next-line @typescript-eslint/no-unsafe-return,@typescript-eslint/no-unsafe-call,@typescript-eslint/no-unsafe-member-access + // eslint-disable-next-line @typescript-eslint/no-unsafe-return,@typescript-eslint/no-unsafe-member-access return this.resource.displayId ?? this.value?.toString() ?? ''; } @@ -59,6 +59,7 @@ export class WorkPackageIdDisplayField extends IdDisplayField { this.value, displayText, displayText, + this.valueString, ); element.appendChild(link); diff --git a/frontend/src/app/shared/components/fields/edit/edit-form/edit-form.spec.ts b/frontend/src/app/shared/components/fields/edit/edit-form/edit-form.spec.ts index f3a3bc9386d..f9993c7a396 100644 --- a/frontend/src/app/shared/components/fields/edit/edit-form/edit-form.spec.ts +++ b/frontend/src/app/shared/components/fields/edit/edit-form/edit-form.spec.ts @@ -33,12 +33,7 @@ import { EditFieldHandler } from 'core-app/shared/components/fields/edit/editing import { IFieldSchema } from 'core-app/shared/components/fields/field.base'; class TestEditForm extends EditForm { - constructor( - injector:Injector, - private readonly requireVisibleSpy:(fieldName:string) => Promise, - private readonly activateFieldSpy:() => Promise, - private readonly resetSpy:(fieldName:string, focus?:boolean) => void, - ) { + constructor(injector:Injector, private readonly requireVisibleSpy:(fieldName:string) => Promise, private readonly activateFieldSpy:() => Promise, private readonly resetSpy:(fieldName:string, focus?:boolean) => void) { super(injector); } @@ -61,12 +56,12 @@ class TestEditForm extends EditForm { describe('EditForm', () => { it('does not require visibility twice for newly erroneous inactive fields', async () => { - const tick = jasmine.createSpy('tick'); - const requireVisible = jasmine.createSpy('requireVisible').and.resolveTo(); - const activateField = jasmine.createSpy('activateField').and.resolveTo({} as EditFieldHandler); - const reset = jasmine.createSpy('reset'); + const tick = vi.fn(); + const requireVisible = vi.fn().mockResolvedValue(undefined); + const activateField = vi.fn().mockResolvedValue({} as EditFieldHandler); + const reset = vi.fn(); const injector = { - get: jasmine.createSpy('get').and.callFake((token:unknown) => { + get: vi.fn().mockImplementation((token:unknown) => { if (token === ApplicationRef) { return { tick }; } @@ -79,25 +74,27 @@ describe('EditForm', () => { const change = { inFlight: false, schema: { - ofProperty: jasmine.createSpy('ofProperty').and.returnValue({ + ofProperty: vi.fn().mockReturnValue({ writable: true, name: 'Foo', } as IFieldSchema), }, - getForm: jasmine.createSpy('getForm').and.resolveTo(), + getForm: vi.fn().mockResolvedValue(undefined), }; form.resource = { id: 1 } as unknown as HalResource; form.halEditing = { - changeFor: jasmine.createSpy('changeFor').and.returnValue(change), + changeFor: vi.fn().mockReturnValue(change), } as never; form.halNotification = { - handleRawError: jasmine.createSpy('handleRawError'), - showEditingBlockedError: jasmine.createSpy('showEditingBlockedError'), + handleRawError: vi.fn(), + showEditingBlockedError: vi.fn(), } as never; form.errorsPerAttribute = { foo: ['Required'] }; - (form as unknown as { setErrorsForFields:(fields:string[]) => void }).setErrorsForFields(['foo']); + (form as unknown as { + setErrorsForFields:(fields:string[]) => void; + }).setErrorsForFields(['foo']); await Promise.resolve(); await Promise.resolve(); diff --git a/frontend/src/app/shared/components/fields/edit/services/global-edit-form-changes-tracker/global-edit-form-changes-tracker.service.spec.ts b/frontend/src/app/shared/components/fields/edit/services/global-edit-form-changes-tracker/global-edit-form-changes-tracker.service.spec.ts index 85223cfa119..adf0d829c61 100644 --- a/frontend/src/app/shared/components/fields/edit/services/global-edit-form-changes-tracker/global-edit-form-changes-tracker.service.spec.ts +++ b/frontend/src/app/shared/components/fields/edit/services/global-edit-form-changes-tracker/global-edit-form-changes-tracker.service.spec.ts @@ -20,7 +20,7 @@ describe('GlobalEditFormChangesTrackerService', () => { }); it('should report no changes when empty', () => { - expect(service.thereAreFormsWithUnsavedChanges).toBeFalse(); + expect(service.thereAreFormsWithUnsavedChanges).toBe(false); }); it('should report no changes when one form has no changes', () => { @@ -28,7 +28,7 @@ describe('GlobalEditFormChangesTrackerService', () => { service.addToActiveForms(form); - expect(service.thereAreFormsWithUnsavedChanges).toBeFalse(); + expect(service.thereAreFormsWithUnsavedChanges).toBe(false); }); it('should report no changes when multiple forms have no changes', () => { @@ -40,7 +40,7 @@ describe('GlobalEditFormChangesTrackerService', () => { service.addToActiveForms(form2); service.addToActiveForms(form3); - expect(service.thereAreFormsWithUnsavedChanges).toBeFalse(); + expect(service.thereAreFormsWithUnsavedChanges).toBe(false); }); it('should report no changes when the only form with changes is removed', () => { @@ -49,7 +49,7 @@ describe('GlobalEditFormChangesTrackerService', () => { service.addToActiveForms(form); service.removeFromActiveForms(form); - expect(service.thereAreFormsWithUnsavedChanges).toBeFalse(); + expect(service.thereAreFormsWithUnsavedChanges).toBe(false); }); it('should report changes when one form has changes', () => { @@ -57,7 +57,7 @@ describe('GlobalEditFormChangesTrackerService', () => { service.addToActiveForms(form); - expect(service.thereAreFormsWithUnsavedChanges).toBeTrue(); + expect(service.thereAreFormsWithUnsavedChanges).toBe(true); }); it('should report forms with changes when multiple form have changes', () => { @@ -69,13 +69,13 @@ describe('GlobalEditFormChangesTrackerService', () => { service.addToActiveForms(form2); service.addToActiveForms(form3); - expect(service.thereAreFormsWithUnsavedChanges).toBeTrue(); + expect(service.thereAreFormsWithUnsavedChanges).toBe(true); }); it('should call thereAreFormsWithUnsavedChangesSpy on beforeunload', () => { - const thereAreFormsWithUnsavedChangesSpy = spyOnProperty(service, 'thereAreFormsWithUnsavedChanges', 'get'); + const thereAreFormsWithUnsavedChangesSpy = vi.spyOn(service, 'thereAreFormsWithUnsavedChanges', 'get'); - window.onbeforeunload = jasmine.createSpy(); + window.onbeforeunload = vi.fn(); window.dispatchEvent(new Event('beforeunload')); diff --git a/frontend/src/app/shared/components/fields/macros/work-package-quickinfo-macro.component.ts b/frontend/src/app/shared/components/fields/macros/work-package-quickinfo-macro.component.ts index e2d1d3cfc39..e2d605349d8 100644 --- a/frontend/src/app/shared/components/fields/macros/work-package-quickinfo-macro.component.ts +++ b/frontend/src/app/shared/components/fields/macros/work-package-quickinfo-macro.component.ts @@ -74,8 +74,6 @@ export class WorkPackageQuickinfoMacroComponent implements OnInit { combinedDateDisplayField = CombinedDateDisplayField; - workPackageLink:string; - workPackageHoverCardUrl:string; detailed = false; @@ -95,7 +93,6 @@ export class WorkPackageQuickinfoMacroComponent implements OnInit { const element = this.elementRef.nativeElement as HTMLElement; const id:string = element.dataset.id!; this.detailed = element.dataset.detailed === 'true'; - this.workPackageLink = this.pathHelper.workPackagePath(id); this.workPackageHoverCardUrl = this.pathHelper.workPackageHoverCardPath(id); this.workPackage$ = this diff --git a/frontend/src/app/shared/components/fields/macros/work-package-quickinfo-macro.html b/frontend/src/app/shared/components/fields/macros/work-package-quickinfo-macro.html index 602cf75a37f..46be0a05f2f 100644 --- a/frontend/src/app/shared/components/fields/macros/work-package-quickinfo-macro.html +++ b/frontend/src/app/shared/components/fields/macros/work-package-quickinfo-macro.html @@ -10,7 +10,7 @@ fieldName="type" /> {{workPackage.formattedId}}: @@ -40,6 +40,12 @@ containerType="single-view" /> }) } +} @else if (!error) { + + + } @if (error) { diff --git a/frontend/src/app/shared/components/fields/macros/work-package-quickinfo-macro.sass b/frontend/src/app/shared/components/fields/macros/work-package-quickinfo-macro.sass index 456ad8b3c8d..7756eb0659f 100644 --- a/frontend/src/app/shared/components/fields/macros/work-package-quickinfo-macro.sass +++ b/frontend/src/app/shared/components/fields/macros/work-package-quickinfo-macro.sass @@ -8,3 +8,9 @@ display-field display-field[fieldName="status"] padding-right: 6px + +.op-wp-quickinfo-macro--loading-indicator + display: inline-block + width: 120px + height: 1em + vertical-align: middle diff --git a/frontend/src/app/shared/components/modals/editor/macro-code-block-modal/code-block-macro.modal.ts b/frontend/src/app/shared/components/modals/editor/macro-code-block-modal/code-block-macro.modal.ts index 252982f4b81..96dc1f9f07c 100644 --- a/frontend/src/app/shared/components/modals/editor/macro-code-block-modal/code-block-macro.modal.ts +++ b/frontend/src/app/shared/components/modals/editor/macro-code-block-modal/code-block-macro.modal.ts @@ -27,12 +27,14 @@ //++ import { - AfterViewInit, ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, Inject, ViewChild, + AfterViewInit, ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, ViewChild, inject, } from '@angular/core'; import { OpModalLocalsMap } from 'core-app/shared/components/modal/modal.types'; import { OpModalComponent } from 'core-app/shared/components/modal/modal.component'; import { OpModalLocalsToken } from 'core-app/shared/components/modal/modal.service'; import { I18nService } from 'core-app/core/i18n/i18n.service'; +import { CodeMirrorLoaderService } from 'core-app/shared/components/editor/components/ckeditor/codemirror-loader.service'; +import type { Editor as CodeMirrorEditor } from 'codemirror'; @Component({ templateUrl: './code-block-macro.modal.html', @@ -56,12 +58,20 @@ export class CodeBlockMacroModalComponent extends OpModalComponent implements Af public content:string; // Codemirror instance - public codeMirrorInstance:undefined|any; + public codeMirrorInstance:CodeMirrorEditor|undefined; + + private pendingMode:string|undefined; public debouncedLanguageLoader = _.debounce(() => this.loadLanguageAsMode(this.language), 300); @ViewChild('codeMirrorPane', { static: true }) codeMirrorPane:ElementRef; + readonly elementRef = inject(ElementRef); + public locals = inject(OpModalLocalsToken) as OpModalLocalsMap; + readonly cdRef = inject(ChangeDetectorRef); + readonly I18n = inject(I18nService); + readonly codeMirrorLoader = inject(CodeMirrorLoaderService); + public text:any = { title: this.I18n.t('js.editor.macro.code_block.title'), language: this.I18n.t('js.editor.macro.code_block.language'), @@ -71,13 +81,14 @@ export class CodeBlockMacroModalComponent extends OpModalComponent implements Af close_popup: this.I18n.t('js.close_popup_title'), }; - constructor(readonly elementRef:ElementRef, - @Inject(OpModalLocalsToken) public locals:OpModalLocalsMap, - readonly cdRef:ChangeDetectorRef, - readonly I18n:I18nService) { - super(locals, cdRef, elementRef); - this.languageClass = locals.languageClass || 'language-text'; - this.content = locals.content; + constructor() { + super( + inject(OpModalLocalsToken) as OpModalLocalsMap, + inject(ChangeDetectorRef), + inject(ElementRef), + ); + this.languageClass = (this.locals.languageClass as string | undefined) ?? 'language-text'; + this.content = this.locals.content as string; const match = /language-(\w+)/.exec(this.languageClass); if (match) { @@ -88,7 +99,7 @@ export class CodeBlockMacroModalComponent extends OpModalComponent implements Af } public applyAndClose(evt:Event):void { - this.content = this.codeMirrorInstance.getValue(); + this.content = this.codeMirrorInstance!.getValue(); const lang = this.language || 'text'; this.languageClass = `language-${lang}`; @@ -97,10 +108,9 @@ export class CodeBlockMacroModalComponent extends OpModalComponent implements Af } ngAfterViewInit():void { - import('codemirror').then((imported:any) => { - const CodeMirror = imported.default; + void this.codeMirrorLoader.loadCore().then((CodeMirror) => { this.codeMirrorInstance = CodeMirror.fromTextArea( - this.codeMirrorPane.nativeElement, + this.codeMirrorPane.nativeElement as HTMLTextAreaElement, { lineNumbers: true, smartIndent: true, @@ -109,6 +119,10 @@ export class CodeBlockMacroModalComponent extends OpModalComponent implements Af mode: '', }, ); + if (this.pendingMode !== undefined) { + this.updateCodeMirrorMode(this.pendingMode); + this.pendingMode = undefined; + } }); } @@ -127,19 +141,21 @@ export class CodeBlockMacroModalComponent extends OpModalComponent implements Af return this.updateCodeMirrorMode(''); } - import(/* webpackChunkName: "codemirror-mode" */ `../../../../../../../node_modules/codemirror/mode/${language}/${language}.js`) - .then(() => { - this.updateCodeMirrorMode(language); - }) - .catch((e) => { - console.error(`Failed to load language ${language}: ${e}`); - this.updateCodeMirrorMode(''); + void this.codeMirrorLoader + .ensureModeLoaded(language) + .then((modeLoaded) => { + this.updateCodeMirrorMode(modeLoaded ? language : ''); }); } updateCodeMirrorMode(newLanguage:string) { - const editor = this.codeMirrorInstance; - editor?.setOption('mode', newLanguage); + if (!this.codeMirrorInstance) { + this.pendingMode = newLanguage; + return; + } + + this.codeMirrorInstance.setOption('mode', newLanguage); + this.codeMirrorInstance.refresh(); } updateLanguage(newValue?:string) { diff --git a/frontend/src/app/shared/components/op-context-menu/wp-context-menu/wp-view-context-menu.directive.ts b/frontend/src/app/shared/components/op-context-menu/wp-context-menu/wp-view-context-menu.directive.ts index e3cf08e3a50..d73a4a22139 100644 --- a/frontend/src/app/shared/components/op-context-menu/wp-context-menu/wp-view-context-menu.directive.ts +++ b/frontend/src/app/shared/components/op-context-menu/wp-context-menu/wp-view-context-menu.directive.ts @@ -61,7 +61,13 @@ export class WorkPackageViewContextMenu extends OpContextMenuHandler { ); // Get the base route for the current route to ensure we always link correctly - protected baseRoute = this.$state.current.data.baseRoute || this.$state.current.name; + protected baseRoute = this.$state.current.data?.baseRoute ?? this.$state.current.name; + + // Whether we are running inside a uiRouter context (e.g. work packages list/board). + // Calendar and Team Planner render without uiRouter and rely on Turbo navigation instead. + protected get hasUiRouterContext():boolean { + return this.$state.current.name !== ''; + } protected items = this.buildItems(); @@ -122,7 +128,14 @@ export class WorkPackageViewContextMenu extends OpContextMenuHandler { break; case 'relation-new-child': - this.wpRelationsHierarchyService.addNewChildWp(this.baseRoute, this.workPackage); + if (this.hasUiRouterContext) { + this.wpRelationsHierarchyService.addNewChildWp(this.baseRoute, this.workPackage); + } else { + const newChildPath = `${window.location.pathname.replace(/\/details\/.*$/, '')}/details/new`; + const childParams = new URLSearchParams(window.location.search); + childParams.set('parent_id', id); + Turbo.visit(`${newChildPath}?${childParams.toString()}`, { frame: 'content-bodyRight', action: 'advance' }); + } break; case 'log_time': @@ -134,10 +147,15 @@ export class WorkPackageViewContextMenu extends OpContextMenuHandler { break; case 'relations': - void this.$state.go( - `${splitViewRoute(this.$state)}.tabs`, - { workPackageId: this.workPackageId, tabIdentifier: 'relations' }, - ); + if (this.hasUiRouterContext) { + void this.$state.go( + `${splitViewRoute(this.$state)}.tabs`, + { workPackageId: this.workPackage.displayId, tabIdentifier: 'relations' }, + ); + } else { + const relationsPath = `${window.location.pathname.replace(/\/details\/.*$/, '')}/details/${this.workPackage.displayId}${window.location.search}`; + Turbo.visit(relationsPath, { frame: 'content-bodyRight', action: 'advance' }); + } break; default: @@ -212,7 +230,7 @@ export class WorkPackageViewContextMenu extends OpContextMenuHandler { if (selected.length === 1 && !isNewResource(this.workPackage)) { const projectIdentifier = this.currentProject.identifier; - const link = this.pathHelper.genericWorkPackagePath(projectIdentifier, this.workPackageId) + window.location.search; + const link = this.pathHelper.genericWorkPackagePath(projectIdentifier, this.workPackage.displayId) + window.location.search; items.unshift({ disabled: false, @@ -232,24 +250,32 @@ export class WorkPackageViewContextMenu extends OpContextMenuHandler { }); if (selected.length === 1 && this.allowSplitScreenActions) { + const splitViewHref = this.hasUiRouterContext + ? this.$state.href( + `${splitViewRoute(this.$state)}.tabs`, + { workPackageId: this.workPackage.displayId, tabIdentifier: 'overview' }, + ) + : `${window.location.pathname.replace(/\/details\/.*$/, '')}/details/${this.workPackage.displayId}${window.location.search}`; + items.unshift({ disabled: false, icon: 'icon-view-split', class: 'detailsViewMenuItem', - href: this.$state.href( - `${splitViewRoute(this.$state)}.tabs`, - { workPackageId: this.workPackageId, tabIdentifier: 'overview' }, - ), + href: splitViewHref, linkText: I18n.t('js.button_open_details'), onClick: (event) => { if (isClickedWithModifier(event)) { return false; } - this.$state.go( - `${splitViewRoute(this.$state)}.tabs`, - { workPackageId: this.workPackageId, tabIdentifier: 'overview' }, - ); + if (this.hasUiRouterContext) { + this.$state.go( + `${splitViewRoute(this.$state)}.tabs`, + { workPackageId: this.workPackage.displayId, tabIdentifier: 'overview' }, + ); + } else { + Turbo.visit(splitViewHref, { frame: 'content-bodyRight', action: 'advance' }); + } return true; }, }); diff --git a/frontend/src/app/shared/components/primer/dynamic-icon.directive.spec.ts b/frontend/src/app/shared/components/primer/dynamic-icon.directive.spec.ts index d6bd153bc0c..776bcc6d2cf 100644 --- a/frontend/src/app/shared/components/primer/dynamic-icon.directive.spec.ts +++ b/frontend/src/app/shared/components/primer/dynamic-icon.directive.spec.ts @@ -57,6 +57,10 @@ describe('DynamicIconDirective', () => { svgElement = fixture.nativeElement.querySelector('svg'); }); + afterEach(() => { + vi.restoreAllMocks(); + }); + it('should create', () => { component.iconName = 'star'; fixture.detectChanges(); @@ -151,8 +155,8 @@ describe('DynamicIconDirective', () => { }); it('should warn when rendering unknown icon', () => { - spyOn(console, 'warn'); - + vi.spyOn(console, 'warn'); + component.iconName = 'unknown-icon'; fixture.detectChanges(); @@ -160,15 +164,15 @@ describe('DynamicIconDirective', () => { }); it('should not render anything for unknown icon', () => { - spyOn(console, 'warn'); - + vi.spyOn(console, 'warn'); + component.iconName = 'unknown-icon'; fixture.detectChanges(); // Should not have set viewBox or other attributes expect(svgElement.getAttribute('viewBox')).toBeNull(); expect(svgElement.getAttribute('fill')).toBeNull(); - + // Should not have any paths const paths = svgElement.querySelectorAll('path'); @@ -176,28 +180,28 @@ describe('DynamicIconDirective', () => { }); it('should handle empty icon name', () => { - spyOn(console, 'warn'); - + vi.spyOn(console, 'warn'); + component.iconName = ''; fixture.detectChanges(); // Should not warn or render anything expect(console.warn).not.toHaveBeenCalled(); expect(svgElement.getAttribute('viewBox')).toBeNull(); - + const paths = svgElement.querySelectorAll('path'); expect(paths.length).toBe(0); }); it('should only render once when loaded', () => { - spyOn(console, 'warn'); + vi.spyOn(console, 'warn'); const directive = fixture.debugElement.children[0].injector.get(DynamicIconDirective); - spyOn(directive as any, 'renderIcon').and.callThrough(); - + vi.spyOn(directive as any, 'renderIcon'); + component.iconName = 'star'; fixture.detectChanges(); - + // Change icon name after initial load - should not re-render component.iconName = 'x'; fixture.detectChanges(); diff --git a/frontend/src/app/shared/components/storages/file-picker-base-modal/file-picker-base-modal.component.spec.ts b/frontend/src/app/shared/components/storages/file-picker-base-modal/file-picker-base-modal.component.spec.ts index a7c056ea4fd..34bdab2a5f5 100644 --- a/frontend/src/app/shared/components/storages/file-picker-base-modal/file-picker-base-modal.component.spec.ts +++ b/frontend/src/app/shared/components/storages/file-picker-base-modal/file-picker-base-modal.component.spec.ts @@ -32,19 +32,12 @@ import { OpModalLocalsMap } from 'core-app/shared/components/modal/modal.types'; import { SortFilesPipe } from 'core-app/shared/components/storages/pipes/sort-files.pipe'; import { StorageFilesResourceService } from 'core-app/core/state/storage-files/storage-files.service'; import { IStorageFile } from 'core-app/core/state/storage-files/storage-file.model'; -import { - FilePickerBaseModalComponent, -} from 'core-app/shared/components/storages/file-picker-base-modal/file-picker-base-modal.component'; +import { FilePickerBaseModalComponent, } from 'core-app/shared/components/storages/file-picker-base-modal/file-picker-base-modal.component'; import { StorageFileListItem } from 'core-app/shared/components/storages/storage-file-list-item/storage-file-list-item'; +import type { Mock } from 'vitest'; class TestFilePickerBaseModalComponent extends FilePickerBaseModalComponent { - constructor( - locals:OpModalLocalsMap, - elementRef:ElementRef, - cdRef:ChangeDetectorRef, - sortFilesPipe:SortFilesPipe, - storageFilesResourceService:StorageFilesResourceService, - ) { + constructor(locals:OpModalLocalsMap, elementRef:ElementRef, cdRef:ChangeDetectorRef, sortFilesPipe:SortFilesPipe, storageFilesResourceService:StorageFilesResourceService) { super(locals, elementRef, cdRef, sortFilesPipe, storageFilesResourceService); } @@ -59,10 +52,10 @@ class TestFilePickerBaseModalComponent extends FilePickerBaseModalComponent { describe('FilePickerBaseModalComponent', () => { interface Spies { - detectChanges:jasmine.Spy; - close:jasmine.Spy; - files:jasmine.Spy; - reset:jasmine.Spy; + detectChanges:Mock; + close:Mock; + files:Mock; + reset:Mock; } function buildComponent(spies:Spies) { @@ -84,13 +77,7 @@ describe('FilePickerBaseModalComponent', () => { files: spies.files, reset: spies.reset, } as unknown as StorageFilesResourceService; - const component = new TestFilePickerBaseModalComponent( - locals, - elementRef, - cdRef, - sortFilesPipe, - storageFilesResourceService, - ); + const component = new TestFilePickerBaseModalComponent(locals, elementRef, cdRef, sortFilesPipe, storageFilesResourceService); component.ngOnInit(); @@ -98,15 +85,15 @@ describe('FilePickerBaseModalComponent', () => { } it('cancels pending directory loading on destroy', () => { - const teardown = jasmine.createSpy('teardown'); + const teardown = vi.fn(); const files$ = new Observable(() => teardown); const directory = { location: '/folder', mimeType: 'application/x-op-directory' } as IStorageFile; - const files = jasmine.createSpy('files').and.returnValue(files$); + const files = vi.fn().mockReturnValue(files$); const { component } = buildComponent({ - detectChanges: jasmine.createSpy('detectChanges'), - close: jasmine.createSpy('close'), + detectChanges: vi.fn(), + close: vi.fn(), files, - reset: jasmine.createSpy('reset'), + reset: vi.fn(), }); component.loadDirectory(directory); @@ -121,15 +108,15 @@ describe('FilePickerBaseModalComponent', () => { it('does not report directory loading errors as unhandled async exceptions', async () => { const previousUnhandledError = config.onUnhandledError; - const onUnhandledError = jasmine.createSpy('onUnhandledError'); + const onUnhandledError = vi.fn(); const files$ = throwError(() => new Error('boom')); - const detectChanges = jasmine.createSpy('detectChanges'); + const detectChanges = vi.fn(); const directory = { location: '/folder', mimeType: 'application/x-op-directory' } as IStorageFile; const { component } = buildComponent({ detectChanges, - close: jasmine.createSpy('close'), - files: jasmine.createSpy('files').and.returnValue(files$), - reset: jasmine.createSpy('reset'), + close: vi.fn(), + files: vi.fn().mockReturnValue(files$), + reset: vi.fn(), }); config.onUnhandledError = onUnhandledError; diff --git a/frontend/src/app/shared/components/tabs/scrollable-tabs/scrollable-tabs.component.ts b/frontend/src/app/shared/components/tabs/scrollable-tabs/scrollable-tabs.component.ts index b9a5381bdce..b86417fe0aa 100644 --- a/frontend/src/app/shared/components/tabs/scrollable-tabs/scrollable-tabs.component.ts +++ b/frontend/src/app/shared/components/tabs/scrollable-tabs/scrollable-tabs.component.ts @@ -135,7 +135,8 @@ export class ScrollableTabsComponent extends UntilDestroyedMixin implements Afte // Override history to avoid that browser back leads you to a different tab instead of the page you originated from if (tab.path) { - Turbo.visit(tab.path, { action: document.referrer != '' ? 'replace' : 'advance' }); + const historyMethod = document.referrer !== '' ? 'replaceState' : 'pushState'; + history[historyMethod](null, '', tab.path); } } diff --git a/frontend/src/app/shared/helpers/dom-helpers.spec.ts b/frontend/src/app/shared/helpers/dom-helpers.spec.ts index 2f3e5860ff0..6d73e5f4561 100644 --- a/frontend/src/app/shared/helpers/dom-helpers.spec.ts +++ b/frontend/src/app/shared/helpers/dom-helpers.spec.ts @@ -26,12 +26,7 @@ // See COPYRIGHT and LICENSE files for more details. //++ -import { - toggleElement, - toggleElementByClass, - toggleElementByVisibility, - attributeTokenList, -} from './dom-helpers'; +import { toggleElement, toggleElementByClass, toggleElementByVisibility, attributeTokenList, } from './dom-helpers'; describe('dom-helpers', () => { describe('toggleElement', () => { @@ -197,13 +192,13 @@ describe('dom-helpers', () => { it('mimics DOMTokenList over an attribute', () => { const list = attributeTokenList(el, attr); - expect(list.contains('a')).toBeFalse(); + expect(list.contains('a')).toBe(false); expect(el.getAttribute(attr)).toBeNull(); list.add('a', 'b'); - expect(list.contains('a')).toBeTrue(); - expect(list.contains('b')).toBeTrue(); + expect(list.contains('a')).toBe(true); + expect(list.contains('b')).toBe(true); expect(el.getAttribute(attr)).toBe('a b'); // adding duplicates is idempotent @@ -214,25 +209,25 @@ describe('dom-helpers', () => { // remove works list.remove('a'); - expect(list.contains('a')).toBeFalse(); + expect(list.contains('a')).toBe(false); expect(el.getAttribute(attr)).toBe('b'); // toggle without force flips presence and returns the new state - expect(list.toggle('b')).toBeFalse(); // removed + expect(list.toggle('b')).toBe(false); // removed expect(el.getAttribute(attr)).toBe(''); - expect(list.toggle('c')).toBeTrue(); // added + expect(list.toggle('c')).toBe(true); // added expect(el.getAttribute(attr)).toBe('c'); // forced toggle honors force - expect(list.toggle('x', true)).toBeTrue(); - expect(list.contains('x')).toBeTrue(); - expect(list.toggle('x', false)).toBeFalse(); - expect(list.contains('x')).toBeFalse(); + expect(list.toggle('x', true)).toBe(true); + expect(list.contains('x')).toBe(true); + expect(list.toggle('x', false)).toBe(false); + expect(list.contains('x')).toBe(false); // replace swaps tokens and returns true when old exists - expect(list.replace('c', 'd')).toBeTrue(); - expect(list.contains('c')).toBeFalse(); - expect(list.contains('d')).toBeTrue(); + expect(list.replace('c', 'd')).toBe(true); + expect(list.contains('c')).toBe(false); + expect(list.contains('d')).toBe(true); // iterator yields tokens expect([...list]).toEqual(['d']); @@ -241,15 +236,15 @@ describe('dom-helpers', () => { list.value = 'e f'; expect(el.getAttribute(attr)).toBe('e f'); - expect(list.contains('e')).toBeTrue(); - expect(list.contains('f')).toBeTrue(); + expect(list.contains('e')).toBe(true); + expect(list.contains('f')).toBe(true); }); it('replace on non-existent token returns false and does not change tokens', () => { const list = attributeTokenList(el, attr); list.add('a', 'b'); - expect(list.replace('x', 'y')).toBeFalse(); + expect(list.replace('x', 'y')).toBe(false); expect([...list]).toEqual(['a', 'b']); expect(el.getAttribute(attr)).toBe('a b'); }); @@ -326,7 +321,8 @@ describe('dom-helpers', () => { const tokens:string[] = []; for (let i = 0; i < list.length; i++) { const token = list.item(i); - if (token) tokens.push(token); + if (token) + tokens.push(token); } expect(tokens).toEqual(['alpha', 'beta', 'gamma']); diff --git a/frontend/src/app/shared/helpers/work-package-id-pattern.spec.ts b/frontend/src/app/shared/helpers/work-package-id-pattern.spec.ts new file mode 100644 index 00000000000..89acdedfde4 --- /dev/null +++ b/frontend/src/app/shared/helpers/work-package-id-pattern.spec.ts @@ -0,0 +1,15 @@ +import { formatWorkPackageId } from './work-package-id-pattern'; + +describe('formatWorkPackageId', () => { + it('returns semantic identifiers as-is (no prefix)', () => { + expect(formatWorkPackageId('PROJ-42')).toBe('PROJ-42'); + }); + + it('prefixes numeric identifiers with #', () => { + expect(formatWorkPackageId('42')).toBe('#42'); + }); + + it('returns empty string for empty input', () => { + expect(formatWorkPackageId('')).toBe(''); + }); +}); diff --git a/frontend/src/app/shared/helpers/work-package-id-pattern.ts b/frontend/src/app/shared/helpers/work-package-id-pattern.ts index b189e59120a..3f79edfbd20 100644 --- a/frontend/src/app/shared/helpers/work-package-id-pattern.ts +++ b/frontend/src/app/shared/helpers/work-package-id-pattern.ts @@ -6,3 +6,22 @@ * The backend equivalent lives in WorkPackage::SemanticIdentifier::ID_ROUTE_CONSTRAINT. */ export const WP_ID_URL_PATTERN = '\\d+|[A-Za-z][A-Za-z0-9_]*-\\d+'; + +/** + * Format a work package identifier for inline UI display. + * + * OpenProject supports two identifier modes: + * - **Semantic**: project-scoped identifiers like `PROJ-42` that contain letters. + * These are self-describing and returned as-is. + * - **Classic**: numeric-only identifiers like `42`. + * These are prefixed with `#` to visually distinguish them as WP references. + * + * @example + * formatWorkPackageId('PROJ-42') // => 'PROJ-42' + * formatWorkPackageId('42') // => '#42' + * formatWorkPackageId('') // => '' + */ +export function formatWorkPackageId(id:string):string { + if (!id) return ''; + return /[A-Za-z]/.test(id) ? id : `#${id}`; +} diff --git a/frontend/src/assets/sass/backlogs/_index.sass b/frontend/src/assets/sass/backlogs/_index.sass deleted file mode 100644 index bfd07ffb393..00000000000 --- a/frontend/src/assets/sass/backlogs/_index.sass +++ /dev/null @@ -1,42 +0,0 @@ -/*-- copyright - * OpenProject Backlogs Plugin - * - * Copyright (C) the OpenProject GmbH - * Copyright (C)2011 Stephan Eckardt, Tim Felgentreff, Marnen Laibow-Koser, Sandro Munda - * Copyright (C)2010-2011 friflaj - * Copyright (C)2010 Maxime Guilbot, Andrew Vit, Joakim Kolsjö, ibussieres, Daniel Passos, Jason Vasquez, jpic, Emiliano Heyns - * Copyright (C)2009-2010 Mark Maglana - * Copyright (C)2009 Joe Heck, Nate Lowrie - * - * This program is free software; you can redistribute it and/or modify it under - * the terms of the GNU General Public License version 3. - * - * OpenProject Backlogs is a derivative work based on ChiliProject Backlogs. - * The copyright follows: - * Copyright (C) 2010-2011 - Emiliano Heyns, Mark Maglana, friflaj - * Copyright (C) 2011 - Jens Ulferts, Gregor Schmidt - Finn GmbH - Berlin, Germany - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - * See COPYRIGHT and LICENSE files for more details. - */ - -// Variables -@import "../../../global_styles/openproject/_variable_defaults.scss" - -@import "../../../global_styles/openproject/_variables.sass" -@import "../../../global_styles/openproject/_mixins.sass" - -@import master_backlog diff --git a/frontend/src/backlogs.scss b/frontend/src/backlogs.scss deleted file mode 100644 index 159ad4f149a..00000000000 --- a/frontend/src/backlogs.scss +++ /dev/null @@ -1,2 +0,0 @@ -// Backlogs -@import "assets/sass/backlogs"; diff --git a/frontend/src/global_styles/content/_links.sass b/frontend/src/global_styles/content/_links.sass index f2eed3075c6..0ee4f5565df 100644 --- a/frontend/src/global_styles/content/_links.sass +++ b/frontend/src/global_styles/content/_links.sass @@ -66,7 +66,7 @@ a.icon, a.icon-context a.icon:hover, a.icon-context:hover text-decoration: none -#content table th a.no-decoration-on-hover:hover, a.no-decoration-on-hover:hover +#content table th a.no-decoration-on-hover:hover, a.no-decoration-on-hover:hover, button.no-decoration-on-hover:hover text-decoration: none .skip-navigation-link diff --git a/frontend/src/global_styles/content/editor/_ckeditor.sass b/frontend/src/global_styles/content/editor/_ckeditor.sass index d9b59e95d1a..410f91d6579 100644 --- a/frontend/src/global_styles/content/editor/_ckeditor.sass +++ b/frontend/src/global_styles/content/editor/_ckeditor.sass @@ -21,6 +21,10 @@ opce-ckeditor-augmented-textarea .op-ckeditor--attachments min-height: 100px padding: 10px + // Keep editor content typography aligned with surrounding OpenProject styles. + --ck-content-font-family: var(--body-font-family) + --ck-content-font-size: var(--body-font-size) + // Specific overrides for ck contenteditable .ck-content @@ -70,6 +74,10 @@ opce-ckeditor-augmented-textarea .op-ckeditor--attachments transform: translateX( -15px ) z-index: 1000 !important +// Force forms of ck to be block +// as our forms are inline by default +.ck.ck-form + display: block // Override fixed position of toolbar // Otherwise the toolbar will 'disappear' behind the topmenu diff --git a/frontend/src/assets/sass/backlogs/_master_backlog.sass b/frontend/src/global_styles/content/modules/_backlogs.sass similarity index 64% rename from frontend/src/assets/sass/backlogs/_master_backlog.sass rename to frontend/src/global_styles/content/modules/_backlogs.sass index 32adfe2af8c..81308edfc43 100644 --- a/frontend/src/assets/sass/backlogs/_master_backlog.sass +++ b/frontend/src/global_styles/content/modules/_backlogs.sass @@ -26,9 +26,6 @@ * See COPYRIGHT and LICENSE files for more details. ++ */ -$op-backlogs-header--points-min-width: 5rem -$op-backlogs-header--points-min-width-narrow: 2rem - .controller-backlogs\/backlog.action-show, .controller-backlogs\/backlog.action-details @include extended-content--bottom @@ -42,41 +39,6 @@ $op-backlogs-header--points-min-width-narrow: 2rem #content-body padding-right: 0 -.op-sprint-header - display: grid - grid-template-columns: 1fr minmax($op-backlogs-header--points-min-width, max-content) auto - grid-template-areas: "collapsible actions menu" - align-items: center - - &--actions, - &--menu - margin-left: var(--stack-gap-normal) - align-self: flex-start - // Unfortunately, the invisible button style bites us here again. - margin-top: -6px - - -.op-backlogs-story - display: grid - grid-template-columns: 1fr minmax($op-backlogs-header--points-min-width, max-content) auto - grid-template-rows: auto auto - grid-template-areas: "info_line points menu" "subject subject subject" - align-items: center - margin-top: calc(-1 * var(--base-size-4)) - margin-bottom: var(--base-size-4) - -.op-backlogs-story--points - margin-left: var(--stack-gap-normal) - font-variant-numeric: tabular-nums - -.op-backlogs-story--menu - margin-left: var(--stack-gap-normal) - -.op-backlogs-story--subject - align-self: start // Align to top of second row - word-wrap: break-word - overflow-wrap: break-word - .op-backlogs-page display: block height: 100% @@ -91,7 +53,6 @@ $op-backlogs-header--points-min-width-narrow: 2rem align-items: stretch overflow: hidden - .op-sprint-planning-lists display: flex flex-direction: column @@ -105,20 +66,12 @@ $op-backlogs-header--points-min-width-narrow: 2rem //------------------ Sprint planning divider (side-by-side only) ---- @container backlogsListsContainer (min-width: 655px) - .op-sprint-planning-lists + .op-sprint-planning-lists:not(:last-child) + border-right: 1px solid var(--borderColor-default) padding-right: var(--stack-gap-normal) - &:not(:last-child) - border-right: 1px solid var(--borderColor-default) - //------------------ Mobile responsive styling ----------------------- @container backlogsListsContainer (max-width: 654px) - .op-backlogs-points-label - display: none - - .op-backlogs-story - grid-template-columns: 1fr minmax($op-backlogs-header--points-min-width-narrow, max-content) auto - .op-sprint-planning-container height: unset overflow: auto diff --git a/frontend/src/global_styles/content/modules/_index.sass b/frontend/src/global_styles/content/modules/_index.sass index 4b393435a12..b7fa53c73cc 100644 --- a/frontend/src/global_styles/content/modules/_index.sass +++ b/frontend/src/global_styles/content/modules/_index.sass @@ -2,6 +2,7 @@ @import 'auth_plugins' @import 'avatars' +@import 'backlogs' @import 'bim' @import 'boards' @import 'costs' diff --git a/frontend/src/global_styles/openproject.sass b/frontend/src/global_styles/openproject.sass index 2e2eeea80ab..0b6eb6746fb 100644 --- a/frontend/src/global_styles/openproject.sass +++ b/frontend/src/global_styles/openproject.sass @@ -20,7 +20,6 @@ // Module specific Styles @import "../../../modules/auth_saml/app/components/_index.sass" -@import "../../../modules/backlogs/app/components/_index.sass" @import "../../../modules/costs/app/components/_index.sass" @import "../../../modules/documents/app/assets/stylesheets/_index.sass" @import "../../../modules/documents/app/components/_index.sass" diff --git a/frontend/src/global_styles/openproject/_index.sass b/frontend/src/global_styles/openproject/_index.sass index 8925e8c9e67..84dff47fbf9 100644 --- a/frontend/src/global_styles/openproject/_index.sass +++ b/frontend/src/global_styles/openproject/_index.sass @@ -13,5 +13,3 @@ @import working-days-admin-settings @import ndc-dynamic - -@import backlogs diff --git a/frontend/src/global_styles/openproject/_mixins.sass b/frontend/src/global_styles/openproject/_mixins.sass index a6c4abca4d1..a445a41aa3b 100644 --- a/frontend/src/global_styles/openproject/_mixins.sass +++ b/frontend/src/global_styles/openproject/_mixins.sass @@ -280,9 +280,9 @@ $scrollbar-size: 10px @media screen display: inline background: var(--bgColor-muted) - border: 1px solid transparent - border-radius: var(--borderRadius-medium) - padding: 2px + border-radius: var(--borderRadius-default) + // 2px vertical ensures that line-height is not overflowed excessively + padding: 2px var(--control-xsmall-paddingInline-condensed) &:has(.-multiline) display: inline-flex diff --git a/frontend/src/global_styles/primer/_overrides.sass b/frontend/src/global_styles/primer/_overrides.sass index a34390c13e3..f9f3869f6c0 100644 --- a/frontend/src/global_styles/primer/_overrides.sass +++ b/frontend/src/global_styles/primer/_overrides.sass @@ -208,3 +208,13 @@ ul.SegmentedControl, & .Banner-actions margin: var(--base-size-8) 0 0 var(--base-size-8) + +// Bug in @openproject/primer-view-components: .FormControl-checkbox:indeterminate +// has no background rule, and :indeterminate:before doesn't cancel checkmarkOut. +.FormControl-checkbox:indeterminate + background: var(--control-checked-bgColor-rest, var(--color-accent-fg)) + border-color: var(--control-checked-borderColor-rest, var(--color-accent-fg)) + + &:before + animation: none + clip-path: inset(0) diff --git a/frontend/src/stimulus/controllers/check-all.controller.spec.ts b/frontend/src/stimulus/controllers/check-all.controller.spec.ts index a2443f2197f..ada71a74f5c 100644 --- a/frontend/src/stimulus/controllers/check-all.controller.spec.ts +++ b/frontend/src/stimulus/controllers/check-all.controller.spec.ts @@ -54,19 +54,19 @@ describe('CheckAllController', () => { }); const checkAllTemplate = ` -
    - - -
    - `; +
    + + +
    + `; const checkableTemplate = ` -
    - - - -
    - `; +
    + + + +
    + `; function appendTemplate(html:string) { const template = document.createElement('template'); @@ -98,18 +98,18 @@ describe('CheckAllController', () => { it('toggles checkboxes', async () => { const inputs = Array.from(document.querySelectorAll('input[type="checkbox"]')); - expect(inputs).toHaveSize(3); - expect(inputs.every((i) => !i.checked)).toBeTrue(); + expect(inputs).toHaveLength(3); + expect(inputs.every((i) => !i.checked)).toBe(true); document.getElementById('check-all')!.click(); await nextFrame(); - expect(inputs.every((i) => i.checked)).toBeTrue(); + expect(inputs.every((i) => i.checked)).toBe(true); document.getElementById('uncheck-all')!.click(); await nextFrame(); - expect(inputs.every((i) => !i.checked)).toBeTrue(); + expect(inputs.every((i) => !i.checked)).toBe(true); }); it('applies aria-controls for connected outlet', () => { diff --git a/frontend/src/stimulus/controllers/checkable.controller.spec.ts b/frontend/src/stimulus/controllers/checkable.controller.spec.ts index 33853f74f73..3b937c1771f 100644 --- a/frontend/src/stimulus/controllers/checkable.controller.spec.ts +++ b/frontend/src/stimulus/controllers/checkable.controller.spec.ts @@ -53,7 +53,7 @@ describe('CheckableController', () => { it('checks all when none are checked', () => { controller.toggleAll(new Event('click')); - expect(inputs.every((i) => i.checked)).toBeTrue(); + expect(inputs.every((i) => i.checked)).toBe(true); }); it('checks all when some are checked (mixed state)', () => { @@ -61,7 +61,7 @@ describe('CheckableController', () => { controller.toggleAll(new Event('click')); - expect(inputs.every((i) => i.checked)).toBeTrue(); + expect(inputs.every((i) => i.checked)).toBe(true); }); it('unchecks all when all are checked', () => { @@ -69,17 +69,17 @@ describe('CheckableController', () => { controller.toggleAll(new Event('click')); - expect(inputs.every((i) => !i.checked)).toBeTrue(); + expect(inputs.every((i) => !i.checked)).toBe(true); }); it('dispatches input event', () => { - const dispatchSpy = spyOn(inputs[0], 'dispatchEvent').and.callThrough(); + const dispatchSpy = vi.spyOn(inputs[0], 'dispatchEvent'); controller.toggleAll(new Event('click')); expect(dispatchSpy).toHaveBeenCalledTimes(1); - const eventArg = dispatchSpy.calls.mostRecent().args[0]; + const eventArg = vi.mocked(dispatchSpy).mock.lastCall![0]; expect(eventArg.type).toBe('input'); expect(eventArg.bubbles).toBe(false); @@ -87,7 +87,7 @@ describe('CheckableController', () => { }); it('checkAll calls toggleChecked(true)', () => { - spyOn(controller, 'toggleChecked').and.callFake(() => {}); + vi.spyOn(controller, 'toggleChecked').mockImplementation(() => { }); controller.checkAll(new Event('click')); @@ -95,7 +95,7 @@ describe('CheckableController', () => { }); it('uncheckAll calls toggleChecked(false)', () => { - spyOn(controller, 'toggleChecked').and.callFake(() => {}); + vi.spyOn(controller, 'toggleChecked').mockImplementation(() => { }); controller.uncheckAll(new Event('click')); @@ -139,9 +139,9 @@ describe('CheckableController', () => { controller.toggleSelection(event); // Only admin checkboxes should be checked - expect(inputs[0].checked).toBeTrue(); - expect(inputs[1].checked).toBeFalse(); - expect(inputs[2].checked).toBeTrue(); + expect(inputs[0].checked).toBe(true); + expect(inputs[1].checked).toBe(false); + expect(inputs[2].checked).toBe(true); }); it('unchecks all matching checkboxes when all are checked', () => { @@ -157,9 +157,9 @@ describe('CheckableController', () => { controller.toggleSelection(event); // Only admin checkboxes should be unchecked - expect(inputs[0].checked).toBeFalse(); - expect(inputs[1].checked).toBeTrue(); // member stays checked - expect(inputs[2].checked).toBeFalse(); + expect(inputs[0].checked).toBe(false); + expect(inputs[1].checked).toBe(true); // member stays checked + expect(inputs[2].checked).toBe(false); }); it('works with numeric value params (converted to string)', () => { @@ -172,9 +172,9 @@ describe('CheckableController', () => { controller.toggleSelection(event); - expect(inputs[0].checked).toBeTrue(); - expect(inputs[1].checked).toBeFalse(); - expect(inputs[2].checked).toBeTrue(); + expect(inputs[0].checked).toBe(true); + expect(inputs[1].checked).toBe(false); + expect(inputs[2].checked).toBe(true); }); it('works with boolean value params (converted to string)', () => { @@ -187,9 +187,9 @@ describe('CheckableController', () => { controller.toggleSelection(event); - expect(inputs[0].checked).toBeTrue(); - expect(inputs[1].checked).toBeFalse(); - expect(inputs[2].checked).toBeTrue(); + expect(inputs[0].checked).toBe(true); + expect(inputs[1].checked).toBe(false); + expect(inputs[2].checked).toBe(true); }); }); }); diff --git a/frontend/src/stimulus/controllers/dynamic/admin/work-packages-identifier.controller.ts b/frontend/src/stimulus/controllers/dynamic/admin/work-packages-identifier.controller.ts index 2543efe5e87..513c508a07b 100644 --- a/frontend/src/stimulus/controllers/dynamic/admin/work-packages-identifier.controller.ts +++ b/frontend/src/stimulus/controllers/dynamic/admin/work-packages-identifier.controller.ts @@ -33,36 +33,49 @@ import { Controller } from '@hotwired/stimulus'; export default class WorkPackagesIdentifierController extends Controller { static values = { hasProblematicProjects: Boolean, + currentValue: String, }; static targets = ['autofixSection', 'saveButton', 'autofixButton']; declare readonly hasProblematicProjectsValue:boolean; + declare readonly currentValueValue:string; declare readonly autofixSectionTarget:HTMLElement; declare readonly saveButtonTarget:HTMLButtonElement; declare readonly autofixButtonTarget:HTMLButtonElement; + declare readonly hasSaveButtonTarget:boolean; + + private readonly resetBeforeCache = ():void => { + if (this.hasSaveButtonTarget) this.saveButtonTarget.hidden = true; + }; connect() { + document.addEventListener('turbo:before-cache', this.resetBeforeCache); this.updateVisibility(); } + disconnect() { + document.removeEventListener('turbo:before-cache', this.resetBeforeCache); + } + handleChange() { this.updateVisibility(); } private updateVisibility() { - const showAutofix = this.isSemanticSelected() && this.hasProblematicProjectsValue; + const selectedValue = this.selectedValue(); + const showAutofix = selectedValue === 'semantic' && this.hasProblematicProjectsValue; + const isDirty = selectedValue !== this.currentValueValue; this.autofixSectionTarget.hidden = !showAutofix; - this.saveButtonTarget.hidden = showAutofix; + this.saveButtonTarget.hidden = showAutofix || !isDirty; this.autofixButtonTarget.hidden = !showAutofix; } - private isSemanticSelected():boolean { - const checked = this.element.querySelector( + private selectedValue():string | undefined { + return this.element.querySelector( 'input[name="settings[work_packages_identifier]"]:checked', - ); - return checked?.value === 'semantic'; + )?.value; } } diff --git a/frontend/src/stimulus/controllers/dynamic/admin/workflow-checkbox-state.controller.ts b/frontend/src/stimulus/controllers/dynamic/admin/workflow-checkbox-state.controller.ts index 3dd327642bf..e40218e878a 100644 --- a/frontend/src/stimulus/controllers/dynamic/admin/workflow-checkbox-state.controller.ts +++ b/frontend/src/stimulus/controllers/dynamic/admin/workflow-checkbox-state.controller.ts @@ -82,7 +82,10 @@ export default class WorkflowCheckboxStateController extends Controller(`input[name="${name}"]`)!.value; } + private formValues(name:string):string[] { + return Array.from( + this.element.querySelectorAll(`input[name="${name}"]`), + ).map((el) => el.value); + } + private pushState(key:string, state:CheckboxesState) { const savedState:SavedState = { formKey: this.formKey, checkboxes: state }; sessionStorage.setItem(key, JSON.stringify(savedState)); @@ -155,7 +166,7 @@ export default class WorkflowCheckboxStateController extends Controller { - const onIgnoreCallback = this.onIgnoreChanges(target, event); - this.ignoreButtonTarget.addEventListener('click', onIgnoreCallback); - - const onSaveCallback = this.onSaveChanges(target, event); - this.saveButtonTarget.addEventListener('click', onSaveCallback); - + private openConfirmationDialog(onIgnore:() => void, onSave:() => void) { + this.ignoreButtonTarget.addEventListener('click', onIgnore); + this.saveButtonTarget.addEventListener('click', onSave); this.confirmationDialogTarget.addEventListener('close', () => { - this.ignoreButtonTarget.removeEventListener('click', onIgnoreCallback); - this.saveButtonTarget.removeEventListener('click', onSaveCallback); + this.ignoreButtonTarget.removeEventListener('click', onIgnore); + this.saveButtonTarget.removeEventListener('click', onSave); }); - this.confirmationDialogTarget.showModal(); + } + + private confirmThenResubmit = (target:HTMLElement, event:Event) => { + this.openConfirmationDialog( + this.onIgnoreChanges(target, event), + this.onSaveChanges(target, event), + ); }; private onIgnoreChanges = (originalTarget:HTMLElement, originalEvent:Event) => { @@ -193,7 +206,7 @@ export default class WorkflowCheckboxStateController extends Controller params.append('role_ids[]', id)); url.search = params.toString(); turboFrame.setAttribute('src', url.toString()); @@ -251,12 +264,24 @@ export default class WorkflowCheckboxStateController extends Controller { + private onCheckboxChange = (event:Event) => { + this.removeIndeterminateMarker(event.target as HTMLInputElement); + this.recomputeDirtyFlag(); + }; + + private recomputeDirtyFlag() { const current = this.captureState(); const hasChanges = Object.keys(current).some((key) => current[key] !== this.initialCheckboxState[key]); this.hasCheckboxChangesValue = hasChanges; - }; + } + + private removeIndeterminateMarker(checkbox:HTMLInputElement):void { + const { oldStatus, newStatus } = checkbox.dataset; + this.element.querySelector( + `input[name="indeterminate_status[${oldStatus}][${newStatus}]"]`, + )?.remove(); + } private captureState():Record { const checkboxes:Record = {}; @@ -273,4 +298,52 @@ export default class WorkflowCheckboxStateController extends Controller('input[type="checkbox"][data-indeterminate="true"]').forEach((cb) => { + cb.indeterminate = true; + }); + } + + // + // Trigger navigation with dirty-state confirmation. + // + + navigateTo(url:string) { + if (this.isDirtyValue) { + this.confirmThenNavigate(url); + } else { + this.frameNavigateTo(url); + } + } + + private confirmThenNavigate(url:string) { + this.openConfirmationDialog( + () => { + this.hasCheckboxChangesValue = false; + this.hasStatusChangesValue = false; + this.confirmationDialogTarget.close(); + setTimeout(() => { this.frameNavigateTo(url); }, 0); + }, + () => { + this.element.requestSubmit(); + this.confirmationDialogTarget.close(); + // Delay to allow the flash message from the form submission to appear. + setTimeout(() => { this.frameNavigateTo(url); }, 1000); + }, + ); + } + + // This keeps the url in the /tabs/:tab/edit format consistently, + // rather than doing a Turbo.visit which changes the format. + // It also keeps history usable, similar to data-turbo-action="advance". + private frameNavigateTo(url:string) { + const turboFrame = this.element.closest('turbo-frame') as HTMLElement | null; + if (turboFrame) { + turboFrame.setAttribute('src', url); + history.pushState({}, '', url); + } else { + Turbo.visit(url); + } + } } diff --git a/frontend/src/stimulus/controllers/dynamic/admin/workflow-role-select.controller.ts b/frontend/src/stimulus/controllers/dynamic/admin/workflow-role-select.controller.ts new file mode 100644 index 00000000000..d81f1ff94b1 --- /dev/null +++ b/frontend/src/stimulus/controllers/dynamic/admin/workflow-role-select.controller.ts @@ -0,0 +1,79 @@ +/* + * -- copyright + * OpenProject is an open source project management software. + * Copyright (C) the OpenProject GmbH + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License version 3. + * + * OpenProject is a fork of ChiliProject, which is a fork of Redmine. The copyright follows: + * Copyright (C) 2006-2013 Jean-Philippe Lang + * Copyright (C) 2010-2013 the ChiliProject Team + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * See COPYRIGHT and LICENSE files for more details. + * ++ + */ + +import { Controller } from '@hotwired/stimulus'; +import type { SelectPanelElement } from '@primer/view-components/app/components/primer/alpha/select_panel_element'; +import WorkflowCheckboxStateController from './workflow-checkbox-state.controller'; + +/** + * When the panel closes, it navigates to the workflow edit page with the selected role IDs. + * Delegates dirty-state confirmation to the workflow-checkbox-state controller via an outlet. + */ +export default class WorkflowRoleSelectController extends Controller { + static outlets = ['admin--workflow-checkbox-state']; + static values = { baseUrl: String, currentRoleIds: Array }; + + declare readonly adminWorkflowCheckboxStateOutlet:WorkflowCheckboxStateController; + declare readonly hasAdminWorkflowCheckboxStateOutlet:boolean; + declare baseUrlValue:string; + declare currentRoleIdsValue:unknown[]; + + apply() { + const panel = this.element as HTMLElement as SelectPanelElement; + const selectedIds = panel.items + .filter((item) => panel.isItemChecked(item)) + .map((item) => item.getAttribute('data-item-id')) + .filter(Boolean); + + // For when all roles are deselected + if (!selectedIds.length) { + this.navigateTo(this.buildUrl([])); + return; + } + + if (selectedIds.slice().sort().join(',') === this.currentRoleIdsValue.slice().sort().join(',')) return; + + this.navigateTo(this.buildUrl(selectedIds as string[])); + } + + private buildUrl(roleIds:string[]):string { + const url = new URL(this.baseUrlValue, window.location.origin); + roleIds.forEach((id) => url.searchParams.append('role_ids[]', id)); + return url.toString(); + } + + private navigateTo(url:string) { + if (this.hasAdminWorkflowCheckboxStateOutlet) { + this.adminWorkflowCheckboxStateOutlet.navigateTo(url); + } else { + Turbo.visit(url); + } + } +} diff --git a/frontend/src/stimulus/controllers/dynamic/backlogs/story.controller.ts b/frontend/src/stimulus/controllers/dynamic/backlogs/story.controller.ts index b284fd5c17a..64595e9dc01 100644 --- a/frontend/src/stimulus/controllers/dynamic/backlogs/story.controller.ts +++ b/frontend/src/stimulus/controllers/dynamic/backlogs/story.controller.ts @@ -29,16 +29,20 @@ import { Controller } from '@hotwired/stimulus'; import * as Turbo from '@hotwired/turbo'; import type { TurboVisitEvent } from '@hotwired/turbo'; +import { WP_ID_URL_PATTERN } from 'core-app/shared/helpers/work-package-id-pattern'; +const DETAILS_URL_PATTERN = new RegExp(`/details/(${WP_ID_URL_PATTERN})(?:/|$)`); export default class StoryController extends Controller implements EventListenerObject { static values = { id: Number, + displayId: String, splitUrl: String, fullUrl: String, }; declare idValue:number; + declare displayIdValue:string; declare splitUrlValue:string; declare fullUrlValue:string; @@ -74,8 +78,10 @@ export default class StoryController extends Controller implements private syncSelectionFromUrl(locationUrl:string):void { const { pathname } = new URL(locationUrl, window.location.origin); - const [, id] = /\/details\/(\d+)/.exec(pathname) ?? []; - if (id !== undefined && Number(id) === this.idValue) { + const [, id] = DETAILS_URL_PATTERN.exec(pathname) ?? []; + // Bookmarks and external links may still carry a numeric ID after the + // switch to semantic mode, so accept either form here. + if (id !== undefined && (id === this.idValue.toString() || id === this.displayIdValue)) { this.markAsSelected(); } else { this.unmarkAsSelected(); diff --git a/frontend/src/stimulus/controllers/dynamic/generic-drag-and-drop.controller.spec.ts b/frontend/src/stimulus/controllers/dynamic/generic-drag-and-drop.controller.spec.ts index b529c998d1e..c3e5d3225e5 100644 --- a/frontend/src/stimulus/controllers/dynamic/generic-drag-and-drop.controller.spec.ts +++ b/frontend/src/stimulus/controllers/dynamic/generic-drag-and-drop.controller.spec.ts @@ -37,7 +37,7 @@ describe('GenericDragAndDropController', () => { controller = Object.create(GenericDragAndDropController.prototype) as GenericDragAndDropController; }); - function setValue(name:'handleValue'|'handleSelectorValue', value:boolean|string) { + function setValue(name:'handleValue' | 'handleSelectorValue', value:boolean | string) { Object.defineProperty(controller, name, { value, configurable: true }); } @@ -51,21 +51,14 @@ describe('GenericDragAndDropController', () => { return row; } - function callCanStartDrag(el:Element|null|undefined, handle:Element|null|undefined):boolean { - const canStartDrag = Reflect.get(controller, 'canStartDrag') as ( - this:GenericDragAndDropController, - el:Element|null|undefined, - handle:Element|null|undefined - ) => boolean; + function callCanStartDrag(el:Element | null | undefined, handle:Element | null | undefined):boolean { + const canStartDrag = Reflect.get(controller, 'canStartDrag') as (this:GenericDragAndDropController, el:Element | null | undefined, handle:Element | null | undefined) => boolean; return canStartDrag.call(controller, el, handle); } - function callAriaPressedTarget(el:Element):Element|null { - const ariaPressedTarget = Reflect.get(controller, 'ariaPressedTarget') as ( - this:GenericDragAndDropController, - el:Element - ) => Element|null; + function callAriaPressedTarget(el:Element):Element | null { + const ariaPressedTarget = Reflect.get(controller, 'ariaPressedTarget') as (this:GenericDragAndDropController, el:Element) => Element | null; return ariaPressedTarget.call(controller, el); } @@ -77,7 +70,7 @@ describe('GenericDragAndDropController', () => { setValue('handleValue', false); setValue('handleSelectorValue', '.DragHandle'); - expect(callCanStartDrag(row, row)).toBeTrue(); + expect(callCanStartDrag(row, row)).toBe(true); }); it('rejects rows that are not draggable in handle-less mode', () => { @@ -88,7 +81,7 @@ describe('GenericDragAndDropController', () => { setValue('handleValue', false); setValue('handleSelectorValue', '.DragHandle'); - expect(callCanStartDrag(row, row)).toBeFalse(); + expect(callCanStartDrag(row, row)).toBe(false); }); it('rejects empty placeholder rows in handle-less mode', () => { @@ -98,7 +91,7 @@ describe('GenericDragAndDropController', () => { setValue('handleValue', false); setValue('handleSelectorValue', '.DragHandle'); - expect(callCanStartDrag(row, row)).toBeFalse(); + expect(callCanStartDrag(row, row)).toBe(false); }); it('rejects interactive descendants in handle-less mode', () => { @@ -109,7 +102,7 @@ describe('GenericDragAndDropController', () => { setValue('handleValue', false); setValue('handleSelectorValue', '.DragHandle'); - expect(callCanStartDrag(row, button)).toBeFalse(); + expect(callCanStartDrag(row, button)).toBe(false); }); it('allows drag handles in handle mode', () => { @@ -121,7 +114,7 @@ describe('GenericDragAndDropController', () => { setValue('handleValue', true); setValue('handleSelectorValue', '.DragHandle'); - expect(callCanStartDrag(row, handle)).toBeTrue(); + expect(callCanStartDrag(row, handle)).toBe(true); }); }); diff --git a/frontend/src/stimulus/controllers/dynamic/openid-connect/match-preview-dialog.controller.ts b/frontend/src/stimulus/controllers/dynamic/openid-connect/match-preview-dialog.controller.ts index a52a1919ab2..0936969c3de 100644 --- a/frontend/src/stimulus/controllers/dynamic/openid-connect/match-preview-dialog.controller.ts +++ b/frontend/src/stimulus/controllers/dynamic/openid-connect/match-preview-dialog.controller.ts @@ -56,7 +56,7 @@ export default class MatchPreviewDialogController extends Controller { declare dialog:HTMLDialogElement; declare updateUrlValue:string; - declare updateMatchTimeout:number; + private updateMatchTimeout:number|null = null; private pluginContextData:OpenProjectPluginContext|null = null; @@ -83,9 +83,11 @@ export default class MatchPreviewDialogController extends Controller { } private updateMatchPreview() { - if(this.updateMatchTimeout) clearTimeout(this.updateMatchTimeout); + if (this.updateMatchTimeout !== null) { + window.clearTimeout(this.updateMatchTimeout); + } - this.updateMatchTimeout = setTimeout(() => { this.doUpdateMatchPreview(); }, 500); + this.updateMatchTimeout = window.setTimeout(() => { this.doUpdateMatchPreview(); }, 500); } private doUpdateMatchPreview() { diff --git a/frontend/src/stimulus/controllers/truncation.controller.spec.ts b/frontend/src/stimulus/controllers/truncation.controller.spec.ts index 11082b349b5..b8cfeccc684 100644 --- a/frontend/src/stimulus/controllers/truncation.controller.spec.ts +++ b/frontend/src/stimulus/controllers/truncation.controller.spec.ts @@ -68,17 +68,17 @@ describe('TruncationController', () => { }); const truncationTemplate = ` -
    -
    - - This is a very long text that should be truncated when it exceeds the container width - -
    -
    - -
    -
    - `; +
    +
    + + This is a very long text that should be truncated when it exceeds the container width + +
    +
    + +
    +
    + `; function appendTemplate(html:string) { const template = document.createElement('template'); @@ -93,10 +93,7 @@ describe('TruncationController', () => { }); it('connects successfully', () => { - const controller = Stimulus.getControllerForElementAndIdentifier( - document.querySelector('[data-controller="truncation"]')!, - 'truncation', - ); + const controller = Stimulus.getControllerForElementAndIdentifier(document.querySelector('[data-controller="truncation"]')!, 'truncation'); expect(controller).toBeDefined(); }); @@ -111,17 +108,14 @@ describe('TruncationController', () => { it('adds Truncate--expanded class when expanded value is true', async () => { const truncateEl = document.querySelector('[data-truncation-target="truncate"]')!; - expect(truncateEl.classList.contains('Truncate--expanded')).toBeFalse(); + expect(truncateEl.classList.contains('Truncate--expanded')).toBe(false); - const controller:any = Stimulus.getControllerForElementAndIdentifier( - document.querySelector('[data-controller="truncation"]')!, - 'truncation', - ); + const controller:any = Stimulus.getControllerForElementAndIdentifier(document.querySelector('[data-controller="truncation"]')!, 'truncation'); controller.expandedValue = true; await nextFrame(); - expect(truncateEl.classList.contains('Truncate--expanded')).toBeTrue(); + expect(truncateEl.classList.contains('Truncate--expanded')).toBe(true); }); }); @@ -135,20 +129,20 @@ describe('TruncationController', () => { const button = document.querySelector('[data-truncation-target="expander"] button')!; const truncateEl = document.querySelector('[data-truncation-target="truncate"]')!; - expect(truncateEl.classList.contains('Truncate--expanded')).toBeFalse(); + expect(truncateEl.classList.contains('Truncate--expanded')).toBe(false); expect(button.getAttribute('aria-expanded')).toBe('false'); button.click(); await nextFrame(); - expect(truncateEl.classList.contains('Truncate--expanded')).toBeTrue(); + expect(truncateEl.classList.contains('Truncate--expanded')).toBe(true); expect(button.getAttribute('aria-expanded')).toBe('true'); expect(button.getAttribute('aria-label')).toBe('Collapse text'); button.click(); await nextFrame(); - expect(truncateEl.classList.contains('Truncate--expanded')).toBeFalse(); + expect(truncateEl.classList.contains('Truncate--expanded')).toBe(false); expect(button.getAttribute('aria-expanded')).toBe('false'); expect(button.getAttribute('aria-label')).toBe('Expand text'); }); @@ -162,10 +156,7 @@ describe('TruncationController', () => { it('updates aria-label when expanded', async () => { const button = document.querySelector('[data-truncation-target="expander"] button')!; - const controller:any = Stimulus.getControllerForElementAndIdentifier( - document.querySelector('[data-controller="truncation"]')!, - 'truncation', - ); + const controller:any = Stimulus.getControllerForElementAndIdentifier(document.querySelector('[data-controller="truncation"]')!, 'truncation'); expect(button.getAttribute('aria-label')).toBe('Expand text'); @@ -177,10 +168,7 @@ describe('TruncationController', () => { it('updates aria-expanded attribute', async () => { const button = document.querySelector('[data-truncation-target="expander"] button')!; - const controller:any = Stimulus.getControllerForElementAndIdentifier( - document.querySelector('[data-controller="truncation"]')!, - 'truncation', - ); + const controller:any = Stimulus.getControllerForElementAndIdentifier(document.querySelector('[data-controller="truncation"]')!, 'truncation'); expect(button.getAttribute('aria-expanded')).toBe('false'); @@ -192,22 +180,19 @@ describe('TruncationController', () => { it('toggles Truncate--expanded class', async () => { const truncateEl = document.querySelector('[data-truncation-target="truncate"]')!; - const controller:any = Stimulus.getControllerForElementAndIdentifier( - document.querySelector('[data-controller="truncation"]')!, - 'truncation', - ); + const controller:any = Stimulus.getControllerForElementAndIdentifier(document.querySelector('[data-controller="truncation"]')!, 'truncation'); - expect(truncateEl.classList.contains('Truncate--expanded')).toBeFalse(); + expect(truncateEl.classList.contains('Truncate--expanded')).toBe(false); controller.expandedValue = true; await nextFrame(); - expect(truncateEl.classList.contains('Truncate--expanded')).toBeTrue(); + expect(truncateEl.classList.contains('Truncate--expanded')).toBe(true); controller.expandedValue = false; await nextFrame(); - expect(truncateEl.classList.contains('Truncate--expanded')).toBeFalse(); + expect(truncateEl.classList.contains('Truncate--expanded')).toBe(false); }); }); @@ -221,17 +206,17 @@ describe('TruncationController', () => { it('hides expander when content is not truncated', async () => { const shortTextTemplate = ` -
    -
    - - Short text - -
    -
    - -
    -
    - `; +
    +
    + + Short text + +
    +
    + +
    +
    + `; appendTemplate(shortTextTemplate); await waitForResize(); @@ -239,58 +224,60 @@ describe('TruncationController', () => { const expander = document.querySelector('[data-truncation-target="expander"]')!; // When content is not truncated, expander should be hidden - expect(expander.hidden).toBeTrue(); + expect(expander.hidden).toBe(true); }); it('shows expander when content is truncated', async () => { const longTextTemplate = ` -
    -
    - - This is a very long text that should definitely be truncated - -
    -
    - -
    -
    - `; +
    +
    + + This is a very long text that should definitely be truncated + +
    +
    + +
    +
    + `; appendTemplate(longTextTemplate); + + const truncateText = document.querySelector('.Truncate-text')!; + Object.defineProperty(truncateText, 'scrollWidth', { value: 300, configurable: true }); + Object.defineProperty(truncateText, 'clientWidth', { value: 50, configurable: true }); + await waitForResize(); const expander = document.querySelector('[data-truncation-target="expander"]')!; // When content is truncated, expander should be visible - expect(expander.hidden).toBeFalse(); + expect(expander.hidden).toBe(false); }); }); describe('resize() method', () => { it('calls update() when resize is triggered', async () => { const template = ` -
    -
    - - Test text - -
    -
    - -
    -
    - `; +
    +
    + + Test text + +
    +
    + +
    +
    + `; appendTemplate(template); await nextFrame(); - const controller:any = Stimulus.getControllerForElementAndIdentifier( - document.querySelector('[data-controller="truncation"]')!, - 'truncation', - ); + const controller:any = Stimulus.getControllerForElementAndIdentifier(document.querySelector('[data-controller="truncation"]')!, 'truncation'); // Spy on the private update method to verify resize() calls it - const updateSpy = spyOn(controller, 'update').and.callThrough(); + const updateSpy = vi.spyOn(controller, 'update'); controller.resize(); @@ -299,25 +286,22 @@ describe('TruncationController', () => { it('updates expander visibility when content dimensions change', async () => { const template = ` -
    -
    - - Test - -
    -
    - -
    -
    - `; +
    +
    + + Test + +
    +
    + +
    +
    + `; appendTemplate(template); await nextFrame(); - const controller:any = Stimulus.getControllerForElementAndIdentifier( - document.querySelector('[data-controller="truncation"]')!, - 'truncation', - ); + const controller:any = Stimulus.getControllerForElementAndIdentifier(document.querySelector('[data-controller="truncation"]')!, 'truncation'); const expander = document.querySelector('[data-truncation-target="expander"]')!; const truncateText = document.querySelector('.Truncate-text')!; @@ -330,21 +314,21 @@ describe('TruncationController', () => { Object.defineProperty(truncateText, 'clientWidth', { configurable: true, value: 100 }); controller.resize(); - expect(expander.hidden).toBeTrue(); + expect(expander.hidden).toBe(true); // Simulate truncated: scrollWidth > clientWidth Object.defineProperty(truncateText, 'scrollWidth', { configurable: true, value: 200 }); Object.defineProperty(truncateText, 'clientWidth', { configurable: true, value: 100 }); controller.resize(); - expect(expander.hidden).toBeFalse(); + expect(expander.hidden).toBe(false); // Simulate not truncated again Object.defineProperty(truncateText, 'scrollWidth', { configurable: true, value: 50 }); Object.defineProperty(truncateText, 'clientWidth', { configurable: true, value: 50 }); controller.resize(); - expect(expander.hidden).toBeTrue(); + expect(expander.hidden).toBe(true); // Restore original descriptors if (originalScrollWidth) { @@ -357,38 +341,35 @@ describe('TruncationController', () => { it('keeps expander visible when expanded even if not truncated', async () => { const template = ` -
    -
    - - Short - -
    -
    - -
    -
    - `; +
    +
    + + Short + +
    +
    + +
    +
    + `; appendTemplate(template); await nextFrame(); - const controller:any = Stimulus.getControllerForElementAndIdentifier( - document.querySelector('[data-controller="truncation"]')!, - 'truncation', - ); + const controller:any = Stimulus.getControllerForElementAndIdentifier(document.querySelector('[data-controller="truncation"]')!, 'truncation'); const expander = document.querySelector('[data-truncation-target="expander"]')!; // Initially short text, expander should be hidden controller.resize(); - expect(expander.hidden).toBeTrue(); + expect(expander.hidden).toBe(true); // Expand the text controller.expandedValue = true; await nextFrame(); // When expanded, expander should remain visible even if not truncated - expect(expander.hidden).toBeFalse(); + expect(expander.hidden).toBe(false); }); }); diff --git a/frontend/src/test-providers.ts b/frontend/src/test-providers.ts new file mode 100644 index 00000000000..eb3b478321b --- /dev/null +++ b/frontend/src/test-providers.ts @@ -0,0 +1,5 @@ +import { provideZonelessChangeDetection } from '@angular/core'; + +export default [ + provideZonelessChangeDetection(), +]; diff --git a/frontend/src/test-setup.ts b/frontend/src/test-setup.ts new file mode 100644 index 00000000000..665287ef166 --- /dev/null +++ b/frontend/src/test-setup.ts @@ -0,0 +1,49 @@ +import { I18n } from 'i18n-js'; +import lodash from 'lodash'; +import { registerDialogStreamAction } from 'core-turbo/dialog-stream-action'; + +registerDialogStreamAction(); + +// eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-member-access +(window as any).global = window; + +window.I18n = new I18n(); + +// Production code expects `_` to be available globally (set in init-vendors.ts). +// Mirror that here so production modules pulled in by spec compilation can run. +// eslint-disable-next-line @typescript-eslint/no-explicit-any +(window as any)._ = lodash; + +// jsdom does not implement CSS.escape; production helpers (e.g. getMetaElement) +// call it unconditionally. +if (typeof CSS === 'undefined' || typeof CSS.escape !== 'function') { + // eslint-disable-next-line @typescript-eslint/no-explicit-any + (globalThis as any).CSS = (globalThis as any).CSS || {}; + // eslint-disable-next-line @typescript-eslint/no-explicit-any + (globalThis as any).CSS.escape = (value:string) => String(value).replace(/[^a-zA-Z0-9_\-]/g, (ch) => `\\${ch}`); +} + +// jsdom does not implement ResizeObserver. +if (typeof (globalThis as any).ResizeObserver === 'undefined') { + // eslint-disable-next-line @typescript-eslint/no-explicit-any + (globalThis as any).ResizeObserver = class { + observe() {} + unobserve() {} + disconnect() {} + }; +} + +// jsdom does not implement HTMLDialogElement.showModal/close. +if (typeof HTMLDialogElement !== 'undefined') { + // eslint-disable-next-line @typescript-eslint/no-explicit-any + const proto = HTMLDialogElement.prototype as any; + if (typeof proto.showModal !== 'function') { + proto.showModal = function showModal() { this.open = true; }; + } + if (typeof proto.show !== 'function') { + proto.show = function show() { this.open = true; }; + } + if (typeof proto.close !== 'function') { + proto.close = function close() { this.open = false; }; + } +} diff --git a/frontend/src/test.ts b/frontend/src/test.ts deleted file mode 100644 index c1296c28a42..00000000000 --- a/frontend/src/test.ts +++ /dev/null @@ -1,34 +0,0 @@ -// This file is required by karma.conf.js and loads recursively all the .spec and framework files - -import { getTestBed } from '@angular/core/testing'; -import { NgModule, provideZonelessChangeDetection } from '@angular/core'; -import { - BrowserDynamicTestingModule, - platformBrowserDynamicTesting, -} from '@angular/platform-browser-dynamic/testing'; -import { I18n } from 'i18n-js'; -import { registerDialogStreamAction } from 'core-turbo/dialog-stream-action'; - -registerDialogStreamAction(); - -// eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-member-access -(window as any).global = window; - -// Declare global I18n shim -window.I18n = new I18n(); - -@NgModule({ - imports: [BrowserDynamicTestingModule], - exports: [BrowserDynamicTestingModule], - providers: [provideZonelessChangeDetection()], -}) -class ZonelessBrowserDynamicTestingModule {} - -// First, initialize the Angular testing environment. -getTestBed().initTestEnvironment( - ZonelessBrowserDynamicTestingModule, - platformBrowserDynamicTesting(), - { - teardown: { destroyAfterEach: false }, - }, -); diff --git a/frontend/src/vendor/ckeditor/ckeditor.css b/frontend/src/vendor/ckeditor/ckeditor.css new file mode 100644 index 00000000000..e434bbe8aa6 --- /dev/null +++ b/frontend/src/vendor/ckeditor/ckeditor.css @@ -0,0 +1,5865 @@ +/* Auto-generated by bin/build-ckeditor-styles.mjs. Do not edit manually. */ + +/* @ckeditor/ckeditor5-ui */ +/** + * @license Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved. + * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options + */ +:root { + --ck-color-base-foreground: #fafafa; + --ck-color-base-background: #fff; + --ck-color-base-border: #ccced1; + --ck-color-base-action: #53a336; + --ck-color-base-focus: #6cb5f9; + --ck-color-base-text: #333; + --ck-color-base-active: #2977ff; + --ck-color-base-active-focus: #0d65ff; + --ck-color-base-error: #db3700; + --ck-color-focus-border-coordinates: 218, 81.8%, 56.9%; + --ck-color-focus-border: hsl(var(--ck-color-focus-border-coordinates)); + --ck-color-focus-outer-shadow: #cae1fc; + --ck-color-focus-disabled-shadow: #77baf84d; + --ck-color-focus-error-shadow: #ff401f4d; + --ck-color-text: var(--ck-color-base-text); + --ck-color-shadow-drop: #00000026; + --ck-color-shadow-drop-active: #0003; + --ck-color-shadow-inner: #0000001a; + --ck-color-button-default-background: transparent; + --ck-color-button-default-hover-background: #f0f0f0; + --ck-color-button-default-active-background: #f0f0f0; + --ck-color-button-default-disabled-background: transparent; + --ck-color-button-on-background: #f0f7ff; + --ck-color-button-on-hover-background: #dbecff; + --ck-color-button-on-active-background: #dbecff; + --ck-color-button-on-disabled-background: #f0f2f4; + --ck-color-button-on-color: #2977ff; + --ck-color-button-action-background: var(--ck-color-base-action); + --ck-color-button-action-hover-background: #4d9d30; + --ck-color-button-action-active-background: #4d9d30; + --ck-color-button-action-disabled-background: #7ec365; + --ck-color-button-action-text: var(--ck-color-base-background); + --ck-color-button-save: #008a00; + --ck-color-button-cancel: #db3700; + --ck-color-switch-button-off-background: #939393; + --ck-color-switch-button-off-hover-background: #7d7d7d; + --ck-color-switch-button-on-background: var(--ck-color-button-action-background); + --ck-color-switch-button-on-hover-background: #4d9d30; + --ck-color-switch-button-inner-background: var(--ck-color-base-background); + --ck-color-switch-button-inner-shadow: #0000001a; + --ck-color-dropdown-panel-background: var(--ck-color-base-background); + --ck-color-dropdown-panel-border: var(--ck-color-base-border); + --ck-color-dialog-background: var(--ck-custom-background); + --ck-color-dialog-form-header-border: var(--ck-custom-border); + --ck-color-input-background: var(--ck-color-base-background); + --ck-color-input-border: var(--ck-color-base-border); + --ck-color-input-error-border: var(--ck-color-base-error); + --ck-color-input-text: var(--ck-color-base-text); + --ck-color-input-disabled-background: #f2f2f2; + --ck-color-input-disabled-border: var(--ck-color-base-border); + --ck-color-input-disabled-text: #757575; + --ck-color-list-background: var(--ck-color-base-background); + --ck-color-list-button-hover-background: var(--ck-color-button-default-hover-background); + --ck-color-list-button-on-background: var(--ck-color-button-on-color); + --ck-color-list-button-on-background-focus: var(--ck-color-button-on-color); + --ck-color-list-button-on-text: var(--ck-color-base-background); + --ck-color-panel-background: var(--ck-color-base-background); + --ck-color-panel-border: var(--ck-color-base-border); + --ck-color-toolbar-background: var(--ck-color-base-background); + --ck-color-toolbar-border: var(--ck-color-base-border); + --ck-color-tooltip-background: var(--ck-color-base-text); + --ck-color-tooltip-text: var(--ck-color-base-background); + --ck-color-engine-placeholder-text: #707070; + --ck-color-upload-bar-background: #6cb5f9; + --ck-color-link-default: #0000f0; + --ck-color-link-selected-background: #1fb0ff1a; + --ck-color-link-fake-selection: #1fb0ff4d; + --ck-color-highlight-background: #ff0; + --ck-color-light-red: #fcc; + --ck-disabled-opacity: .5; + --ck-focus-outer-shadow-geometry: 0 0 0 3px; + --ck-focus-outer-shadow: var(--ck-focus-outer-shadow-geometry) var(--ck-color-focus-outer-shadow); + --ck-focus-disabled-outer-shadow: var(--ck-focus-outer-shadow-geometry) var(--ck-color-focus-disabled-shadow); + --ck-focus-error-outer-shadow: var(--ck-focus-outer-shadow-geometry) var(--ck-color-focus-error-shadow); + --ck-focus-ring: 1px solid var(--ck-color-focus-border); + --ck-font-size-base: 13px; + --ck-line-height-base: 1.84615; + --ck-font-face: Helvetica, Arial, Tahoma, Verdana, Sans-Serif; + --ck-font-size-tiny: .7em; + --ck-font-size-small: .75em; + --ck-font-size-normal: 1em; + --ck-font-size-big: 1.4em; + --ck-font-size-large: 1.8em; + --ck-ui-component-min-height: 2.3em; +} + +.ck.ck-reset, .ck.ck-reset_all, .ck-reset_all :not(.ck-reset_all-excluded, .ck-reset_all-excluded *) { + box-sizing: border-box; + vertical-align: middle; + word-wrap: break-word; + background: none; + border: 0; + width: auto; + height: auto; + margin: 0; + padding: 0; + text-decoration: none; + transition: none; + position: static; +} + +.ck.ck-reset_all, .ck-reset_all :not(.ck-reset_all-excluded, .ck-reset_all-excluded *) { + border-collapse: collapse; + font: normal normal normal var(--ck-font-size-base)/var(--ck-line-height-base) var(--ck-font-face); + color: var(--ck-color-text); + text-align: left; + white-space: nowrap; + cursor: auto; + float: none; +} + +.ck-reset_all .ck-rtl :not(.ck-reset_all-excluded, .ck-reset_all-excluded *) { + text-align: right; +} + +.ck-reset_all iframe:not(.ck-reset_all-excluded *) { + vertical-align: inherit; +} + +.ck-reset_all textarea:not(.ck-reset_all-excluded *) { + white-space: pre-wrap; +} + +.ck-reset_all textarea:not(.ck-reset_all-excluded *), .ck-reset_all input[type="text"]:not(.ck-reset_all-excluded *), .ck-reset_all input[type="password"]:not(.ck-reset_all-excluded *) { + cursor: text; +} + +.ck-reset_all textarea[disabled]:not(.ck-reset_all-excluded *), .ck-reset_all input[type="text"][disabled]:not(.ck-reset_all-excluded *), .ck-reset_all input[type="password"][disabled]:not(.ck-reset_all-excluded *) { + cursor: default; +} + +.ck-reset_all fieldset:not(.ck-reset_all-excluded *) { + border: 2px groove #dfdee3; + padding: 10px; +} + +.ck-reset_all button:not(.ck-reset_all-excluded *)::-moz-focus-inner { + border: 0; + padding: 0; +} + +.ck[dir="rtl"], .ck[dir="rtl"] .ck { + text-align: right; +} + +:root { + --ck-border-radius: 2px; + --ck-rounded-corners-radius: 0; +} + +.ck-rounded-corners { + --ck-rounded-corners-radius: var(--ck-border-radius); +} + +:root { + --ck-inner-shadow: 2px 2px 3px var(--ck-color-shadow-inner) inset; + --ck-drop-shadow: 0 1px 2px 1px var(--ck-color-shadow-drop); + --ck-drop-shadow-active: 0 3px 6px 1px var(--ck-color-shadow-drop-active); + --ck-spacing-unit: .6em; + --ck-spacing-extra-large: calc(var(--ck-spacing-unit) * 2); + --ck-spacing-large: calc(var(--ck-spacing-unit) * 1.5); + --ck-spacing-standard: var(--ck-spacing-unit); + --ck-spacing-medium: calc(var(--ck-spacing-unit) * .8); + --ck-spacing-medium-small: calc(var(--ck-spacing-unit) * .667); + --ck-spacing-small: calc(var(--ck-spacing-unit) * .5); + --ck-spacing-tiny: calc(var(--ck-spacing-unit) * .3); + --ck-spacing-extra-tiny: calc(var(--ck-spacing-unit) * .16); +} + +.ck-hidden { + display: none !important; +} + +:root { + --ck-z-default: 1; + --ck-z-panel: calc(var(--ck-z-default) + 999); + --ck-z-dialog: 9999; +} + +.ck-transitions-disabled, .ck-transitions-disabled * { + transition: none !important; +} + +:root { + --ck-powered-by-font-size: calc(var(--ck-font-size-base) * 7.5 / 13); + --ck-powered-by-line-height: calc(var(--ck-font-size-base) * 10 / 13); + --ck-powered-by-letter-spacing: calc(var(--ck-font-size-base) * -.2 / 13); + --ck-powered-by-padding-vertical: 2px; + --ck-powered-by-padding-horizontal: 4px; + --ck-powered-by-text-color: #4f4f4f; + --ck-powered-by-border-radius: var(--ck-border-radius); + --ck-powered-by-background: #fff; + --ck-powered-by-border-color: var(--ck-color-focus-border); + --ck-powered-by-svg-width: 53; + --ck-powered-by-svg-height: 10; + --ck-powered-by-icon-width: calc(var(--ck-font-size-base) * var(--ck-powered-by-svg-width) / 13); + --ck-powered-by-icon-height: calc(var(--ck-font-size-base) * var(--ck-powered-by-svg-height) / 13); +} + +.ck.ck-balloon-panel.ck-powered-by-balloon { + --ck-border-radius: var(--ck-powered-by-border-radius); + box-shadow: none; + background: var(--ck-powered-by-background); + min-height: unset; + z-index: calc(var(--ck-z-panel) - 1); +} + +.ck.ck-balloon-panel.ck-powered-by-balloon .ck.ck-powered-by { + line-height: var(--ck-powered-by-line-height); +} + +.ck.ck-balloon-panel.ck-powered-by-balloon .ck.ck-powered-by a { + cursor: pointer; + opacity: .66; + filter: grayscale(80%); + line-height: var(--ck-powered-by-line-height); + padding: var(--ck-powered-by-padding-vertical) var(--ck-powered-by-padding-horizontal); + align-items: center; + display: flex; +} + +.ck.ck-balloon-panel.ck-powered-by-balloon .ck.ck-powered-by .ck-powered-by__label { + font-size: var(--ck-powered-by-font-size); + letter-spacing: var(--ck-powered-by-letter-spacing); + text-transform: uppercase; + cursor: pointer; + color: var(--ck-powered-by-text-color); + margin-right: 4px; + padding-left: 2px; + font-weight: bold; + line-height: normal; +} + +.ck.ck-balloon-panel.ck-powered-by-balloon .ck.ck-powered-by .ck-icon { + cursor: pointer; + width: var(--ck-powered-by-icon-width); + height: var(--ck-powered-by-icon-height); + display: block; +} + +.ck.ck-balloon-panel.ck-powered-by-balloon .ck.ck-powered-by:hover a { + filter: grayscale(0%); + opacity: 1; +} + +.ck.ck-balloon-panel.ck-powered-by-balloon[class*="position_inside"] { + border-color: #0000; +} + +.ck.ck-balloon-panel.ck-powered-by-balloon[class*="position_border"] { + border: var(--ck-focus-ring); + border-color: var(--ck-powered-by-border-color); +} + +:root { + --ck-evaluation-badge-font-size: calc(var(--ck-font-size-base) * 7.5 / 13); + --ck-evaluation-badge-line-height: calc(var(--ck-font-size-base) * 7.5 / 13); + --ck-evaluation-badge-letter-spacing: calc(var(--ck-font-size-base) * -.2 / 13); + --ck-evaluation-badge-padding-vertical: 2px; + --ck-evaluation-badge-padding-horizontal: 4px; + --ck-evaluation-badge-text-color: #4f4f4f; + --ck-evaluation-badge-border-radius: var(--ck-border-radius); + --ck-evaluation-badge-background: #fff; + --ck-evaluation-badge-border-color: var(--ck-color-focus-border); +} + +.ck.ck-balloon-panel.ck-evaluation-badge-balloon { + --ck-border-radius: var(--ck-evaluation-badge-border-radius); + box-shadow: none; + background: var(--ck-evaluation-badge-background); + min-height: unset; + z-index: calc(var(--ck-z-panel) - 1); +} + +.ck.ck-balloon-panel.ck-evaluation-badge-balloon .ck.ck-evaluation-badge { + line-height: var(--ck-evaluation-badge-line-height); + padding: var(--ck-evaluation-badge-padding-vertical) var(--ck-evaluation-badge-padding-horizontal); +} + +.ck.ck-balloon-panel.ck-evaluation-badge-balloon .ck.ck-evaluation-badge .ck-evaluation-badge__label { + font-size: var(--ck-evaluation-badge-font-size); + letter-spacing: var(--ck-evaluation-badge-letter-spacing); + text-transform: uppercase; + color: var(--ck-evaluation-badge-text-color); + padding: 0 2px; + font-weight: bold; + line-height: normal; + display: block; +} + +.ck.ck-balloon-panel.ck-evaluation-badge-balloon[class*="position_inside"] { + border-color: #0000; +} + +.ck.ck-balloon-panel.ck-evaluation-badge-balloon[class*="position_border"] { + border: var(--ck-focus-ring); + border-color: var(--ck-evaluation-badge-border-color); +} + +.ck.ck-responsive-form { + padding: var(--ck-spacing-large); +} + +.ck.ck-responsive-form:focus { + outline: none; +} + +[dir="ltr"] .ck.ck-responsive-form > :not(:first-child) { + margin-left: var(--ck-spacing-standard); +} + +[dir="rtl"] .ck.ck-responsive-form > :not(:last-child) { + margin-left: var(--ck-spacing-standard); +} + +@media screen and (width <= 600px) { + .ck.ck-responsive-form { + width: calc(.8 * var(--ck-input-width)); + padding: 0; + } + + .ck.ck-responsive-form .ck-labeled-field-view { + margin: var(--ck-spacing-large) var(--ck-spacing-large) 0; + } + + .ck.ck-responsive-form .ck-labeled-field-view .ck-input-text, .ck.ck-responsive-form .ck-labeled-field-view .ck-input-number { + width: 100%; + min-width: 0; + } + + .ck.ck-responsive-form .ck-labeled-field-view .ck-labeled-field-view__error { + white-space: normal; + } + + .ck.ck-responsive-form > .ck-button:last-child, .ck.ck-responsive-form > .ck-button:nth-last-child(2) { + padding: var(--ck-spacing-standard); + margin-top: var(--ck-spacing-large); + border-radius: 0; + } + + :is(.ck.ck-responsive-form > .ck-button:last-child, .ck.ck-responsive-form > .ck-button:nth-last-child(2)):not(:focus) { + border-top: 1px solid var(--ck-color-base-border); + } + + [dir="ltr"] :is(.ck.ck-responsive-form > .ck-button:last-child, .ck.ck-responsive-form > .ck-button:nth-last-child(2)) { + margin-left: 0; + } + + [dir="rtl"] :is(.ck.ck-responsive-form > .ck-button:last-child, .ck.ck-responsive-form > .ck-button:nth-last-child(2)) { + margin-left: 0; + } + + [dir="rtl"] :is(.ck.ck-responsive-form > .ck-button:last-child, .ck.ck-responsive-form > .ck-button:nth-last-child(2)):last-of-type { + border-right: 1px solid var(--ck-color-base-border); + } + + .ck.ck-responsive-form .ck-button:after { + content: ""; + z-index: 1; + width: 0; + position: absolute; + top: -1px; + bottom: -1px; + right: -1px; + } + + .ck.ck-responsive-form .ck-button:nth-last-child(2):after { + border-right: 1px solid var(--ck-color-base-border); + } + + .ck.ck-responsive-form .ck-button:focus:after { + display: none; + } +} + +.ck-vertical-form > .ck-button:nth-last-child(2):after { + border-right: 1px solid var(--ck-color-base-border); +} + +.ck-vertical-form .ck-button:after { + content: ""; + z-index: 1; + width: 0; + position: absolute; + top: -1px; + bottom: -1px; + right: -1px; +} + +.ck-vertical-form .ck-button:focus:after { + display: none; +} + +:root { + --ck-form-default-width: 340px; +} + +.ck.ck-form { + padding: 0 0 var(--ck-spacing-large); +} + +.ck.ck-form.ck-form_default-width { + width: var(--ck-form-default-width); +} + +.ck.ck-form:focus { + outline: none; +} + +.ck.ck-form .ck.ck-input-text, .ck.ck-form .ck.ck-input-number { + width: 0; + min-width: 100%; +} + +.ck.ck-form .ck.ck-dropdown { + min-width: 100%; +} + +.ck.ck-form .ck.ck-dropdown .ck-dropdown__button:not(:focus) { + border: 1px solid var(--ck-color-base-border); +} + +.ck.ck-form .ck.ck-dropdown .ck-dropdown__button .ck-button__label { + width: 100%; +} + +@media screen and (width <= 600px) { + .ck.ck-form.ck-responsive-form .ck.ck-form__row.ck-form__row_with-submit { + flex-direction: column; + align-items: stretch; + padding: 0; + } +} + +@media screen and (width <= 600px) { + .ck.ck-form.ck-responsive-form .ck.ck-form__row.ck-form__row_with-submit > .ck { + margin: var(--ck-spacing-large) var(--ck-spacing-large) 0; + } +} + +@media screen and (width <= 600px) { + .ck.ck-form.ck-responsive-form .ck.ck-form__row.ck-form__row_with-submit .ck-button_with-text { + justify-content: center; + } +} + +@media screen and (width <= 600px) { + .ck.ck-form.ck-responsive-form .ck.ck-form__row.ck-form__row_large-bottom-padding { + padding-bottom: var(--ck-spacing-large); + } +} + +[dir="ltr"] .ck.ck-form.ck-responsive-form > :not(:first-child) { + margin-left: 0; +} + +[dir="rtl"] .ck.ck-form.ck-responsive-form > :not(:last-child) { + margin-left: 0; +} + +.ck.ck-aria-live-announcer { + position: absolute; + top: -10000px; + left: -10000px; +} + +.ck.ck-aria-live-region-list { + list-style-type: none; +} + +:root { + --ck-accessibility-help-dialog-max-width: 600px; + --ck-accessibility-help-dialog-max-height: 400px; + --ck-accessibility-help-dialog-border-color: #ccced1; + --ck-accessibility-help-dialog-code-background-color: #ededed; + --ck-accessibility-help-dialog-kbd-shadow-color: #9c9c9c; +} + +.ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content { + padding: var(--ck-spacing-large); + max-width: var(--ck-accessibility-help-dialog-max-width); + max-height: var(--ck-accessibility-help-dialog-max-height); + user-select: text; + border: 1px solid #0000; + overflow: auto; +} + +.ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content:focus { + border: var(--ck-focus-ring); + box-shadow: var(--ck-focus-outer-shadow), 0 0; + outline: none; +} + +.ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content * { + white-space: normal; +} + +.ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content .ck-label { + display: none; +} + +.ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content h3 { + font-size: 1.2em; + font-weight: bold; +} + +.ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content h4 { + font-size: 1em; + font-weight: bold; +} + +.ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content p, .ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content h3, .ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content h4, .ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content table { + margin: 1em 0; +} + +.ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content dl { + border-top: 1px solid var(--ck-accessibility-help-dialog-border-color); + border-bottom: none; + grid-template-columns: 2fr 1fr; + display: grid; +} + +.ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content dl dt, .ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content dl dd { + border-bottom: 1px solid var(--ck-accessibility-help-dialog-border-color); + padding: .4em 0; +} + +.ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content dl dt { + grid-column-start: 1; +} + +.ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content dl dd { + text-align: right; + grid-column-start: 2; +} + +.ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content kbd, .ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content code { + background: var(--ck-accessibility-help-dialog-code-background-color); + vertical-align: middle; + text-align: center; + border-radius: 2px; + padding: .4em; + font-size: .9em; + line-height: 1; + display: inline-block; +} + +.ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content code { + font-family: monospace; +} + +.ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content kbd { + min-width: 1.8em; + box-shadow: 0px 1px 1px var(--ck-accessibility-help-dialog-kbd-shadow-color); + margin: 0 1px; +} + +.ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content kbd + kbd { + margin-left: 2px; +} + +.ck.ck-button, :where(a).ck.ck-button { + --ck-button-background: var(--ck-color-button-default-background); + --ck-button-hover-background: var(--ck-color-button-default-hover-background); + --ck-button-active-background: var(--ck-color-button-default-active-background); + --ck-button-disabled-background: var(--ck-color-button-default-disabled-background); + background: var(--ck-button-background); +} + +:is(.ck.ck-button, :where(a).ck.ck-button):not(.ck-disabled):hover { + background: var(--ck-button-hover-background); +} + +:is(.ck.ck-button, :where(a).ck.ck-button):not(.ck-disabled):active { + background: var(--ck-button-active-background); +} + +.ck.ck-button, :where(a).ck.ck-button { + border-radius: var(--ck-rounded-corners-radius); + white-space: nowrap; + cursor: default; + vertical-align: middle; + padding: var(--ck-spacing-tiny); + text-align: center; + min-width: var(--ck-ui-component-min-height); + min-height: var(--ck-ui-component-min-height); + line-height: 1; + font-size: inherit; + -webkit-appearance: none; + -webkit-user-select: none; + user-select: none; + border: 1px solid #0000; + align-items: center; + transition: box-shadow .2s ease-in-out, border .2s ease-in-out; + display: inline-flex; + position: relative; +} + +@media (prefers-reduced-motion: reduce) { + .ck.ck-button, :where(a).ck.ck-button { + transition: none; + } +} + +:is(.ck.ck-button, :where(a).ck.ck-button):active, :is(.ck.ck-button, :where(a).ck.ck-button):focus { + border: var(--ck-focus-ring); + box-shadow: var(--ck-focus-outer-shadow), 0 0; + outline: none; +} + +:is(.ck.ck-button, :where(a).ck.ck-button) .ck-button__icon use, :is(.ck.ck-button, :where(a).ck.ck-button) .ck-button__icon use * { + color: inherit; +} + +:is(.ck.ck-button, :where(a).ck.ck-button) .ck-button__label { + font-size: inherit; + font-weight: inherit; + color: inherit; + cursor: inherit; + vertical-align: middle; +} + +[dir="ltr"] :is(:is(.ck.ck-button, :where(a).ck.ck-button) .ck-button__label) { + text-align: left; +} + +[dir="rtl"] :is(:is(.ck.ck-button, :where(a).ck.ck-button) .ck-button__label) { + text-align: right; +} + +:is(.ck.ck-button, :where(a).ck.ck-button) .ck-button__label { + display: none; +} + +:is(.ck.ck-button, :where(a).ck.ck-button) .ck-button__keystroke { + color: inherit; + opacity: .5; +} + +[dir="ltr"] :is(:is(.ck.ck-button, :where(a).ck.ck-button) .ck-button__keystroke) { + margin-left: var(--ck-spacing-large); +} + +[dir="rtl"] :is(:is(.ck.ck-button, :where(a).ck.ck-button) .ck-button__keystroke) { + margin-right: var(--ck-spacing-large); +} + +:is(.ck.ck-button, :where(a).ck.ck-button).ck-disabled { + background: var(--ck-button-disabled-background); +} + +:is(.ck.ck-button, :where(a).ck.ck-button).ck-disabled:active, :is(.ck.ck-button, :where(a).ck.ck-button).ck-disabled:focus { + box-shadow: var(--ck-focus-disabled-outer-shadow), 0 0; +} + +:is(.ck.ck-button, :where(a).ck.ck-button).ck-disabled .ck-button__icon, :is(.ck.ck-button, :where(a).ck.ck-button).ck-disabled .ck-button__label { + opacity: var(--ck-disabled-opacity); +} + +:is(.ck.ck-button, :where(a).ck.ck-button).ck-disabled .ck-button__keystroke { + opacity: .3; +} + +:is(.ck.ck-button, :where(a).ck.ck-button).ck-button_with-text { + padding: var(--ck-spacing-tiny) var(--ck-spacing-standard); +} + +[dir="ltr"] :is(:is(.ck.ck-button, :where(a).ck.ck-button).ck-button_with-text .ck-button__icon) { + margin-right: var(--ck-spacing-medium); +} + +[dir="rtl"] :is(:is(.ck.ck-button, :where(a).ck.ck-button).ck-button_with-text .ck-button__icon) { + margin-left: var(--ck-spacing-medium); +} + +:is(.ck.ck-button, :where(a).ck.ck-button).ck-button_with-text .ck-button__label { + display: inline-block; +} + +:is(.ck.ck-button, :where(a).ck.ck-button).ck-button_with-keystroke .ck-button__label { + flex-grow: 1; +} + +:is(.ck.ck-button, :where(a).ck.ck-button).ck-on { + --ck-button-background: var(--ck-color-button-on-background); + --ck-button-hover-background: var(--ck-color-button-on-hover-background); + --ck-button-active-background: var(--ck-color-button-on-active-background); + --ck-button-disabled-background: var(--ck-color-button-on-disabled-background); + color: var(--ck-color-button-on-color); +} + +:is(.ck.ck-button, :where(a).ck.ck-button).ck-button-save { + color: var(--ck-color-button-save); +} + +:is(.ck.ck-button, :where(a).ck.ck-button).ck-button-cancel { + color: var(--ck-color-button-cancel); +} + +[dir="ltr"] :is(.ck.ck-button, :where(a).ck.ck-button) { + justify-content: left; +} + +[dir="rtl"] :is(.ck.ck-button, :where(a).ck.ck-button) { + justify-content: right; +} + +:is(.ck.ck-button, :where(a).ck.ck-button):not(.ck-button_with-text) { + justify-content: center; +} + +.ck.ck-button-action, a.ck.ck-button-action { + --ck-button-background: var(--ck-color-button-action-background); + --ck-button-hover-background: var(--ck-color-button-action-hover-background); + --ck-button-active-background: var(--ck-color-button-action-active-background); + --ck-button-disabled-background: var(--ck-color-button-action-disabled-background); + color: var(--ck-color-button-action-text); +} + +.ck.ck-button-bold, a.ck.ck-button-bold { + font-weight: bold; +} + +:root { + --ck-switch-button-toggle-width: 2.61538em; + --ck-switch-button-toggle-inner-size: calc(1.07692em + 1px); + --ck-switch-button-translation: calc(var(--ck-switch-button-toggle-width) - + var(--ck-switch-button-toggle-inner-size) - + 2px /* Border */); + --ck-switch-button-inner-hover-shadow: 0 0 0 5px var(--ck-color-switch-button-inner-shadow); +} + +.ck.ck-button.ck-switchbutton, .ck.ck-button.ck-switchbutton:hover, .ck.ck-button.ck-switchbutton:focus, .ck.ck-button.ck-switchbutton:active, .ck.ck-button.ck-switchbutton.ck-on:hover, .ck.ck-button.ck-switchbutton.ck-on:focus, .ck.ck-button.ck-switchbutton.ck-on:active { + color: inherit; + background: none; +} + +[dir="ltr"] :is(.ck.ck-button.ck-switchbutton .ck-button__label) { + margin-right: calc(2 * var(--ck-spacing-large)); +} + +[dir="rtl"] :is(.ck.ck-button.ck-switchbutton .ck-button__label) { + margin-left: calc(2 * var(--ck-spacing-large)); +} + +.ck.ck-button.ck-switchbutton .ck-button__toggle { + border-radius: var(--ck-rounded-corners-radius); + width: var(--ck-switch-button-toggle-width); + background: var(--ck-color-switch-button-off-background); + border: 1px solid #0000; + transition: background .4s, box-shadow .2s ease-in-out, outline .2s ease-in-out; +} + +[dir="ltr"] :is(.ck.ck-button.ck-switchbutton .ck-button__toggle) { + margin-left: auto; +} + +[dir="rtl"] :is(.ck.ck-button.ck-switchbutton .ck-button__toggle) { + margin-right: auto; +} + +.ck.ck-button.ck-switchbutton .ck-button__toggle .ck-button__toggle__inner { + border-radius: calc(.5 * var(--ck-rounded-corners-radius)); + width: var(--ck-switch-button-toggle-inner-size); + height: var(--ck-switch-button-toggle-inner-size); + background: var(--ck-color-switch-button-inner-background); + transition: all .3s; +} + +@media (prefers-reduced-motion: reduce) { + .ck.ck-button.ck-switchbutton .ck-button__toggle .ck-button__toggle__inner { + transition: none; + } +} + +.ck.ck-button.ck-switchbutton .ck-button__toggle .ck-button__toggle__inner { + display: block; +} + +.ck.ck-button.ck-switchbutton .ck-button__toggle:hover { + background: var(--ck-color-switch-button-off-hover-background); +} + +.ck.ck-button.ck-switchbutton .ck-button__toggle:hover .ck-button__toggle__inner { + box-shadow: var(--ck-switch-button-inner-hover-shadow); +} + +.ck.ck-button.ck-switchbutton .ck-button__toggle { + display: block; +} + +.ck.ck-button.ck-switchbutton.ck-disabled .ck-button__toggle { + opacity: var(--ck-disabled-opacity); +} + +.ck.ck-button.ck-switchbutton:focus { + box-shadow: none; + border-color: #0000; + outline: none; +} + +.ck.ck-button.ck-switchbutton:focus .ck-button__toggle { + box-shadow: 0 0 0 1px var(--ck-color-base-background), 0 0 0 5px var(--ck-color-focus-outer-shadow); + outline-offset: 1px; + outline: var(--ck-focus-ring); +} + +.ck.ck-button.ck-switchbutton.ck-on .ck-button__toggle { + background: var(--ck-color-switch-button-on-background); +} + +.ck.ck-button.ck-switchbutton.ck-on .ck-button__toggle:hover { + background: var(--ck-color-switch-button-on-hover-background); +} + +[dir="ltr"] :is(.ck.ck-button.ck-switchbutton.ck-on .ck-button__toggle .ck-button__toggle__inner) { + transform: translateX(var(--ck-switch-button-translation)); +} + +[dir="rtl"] :is(.ck.ck-button.ck-switchbutton.ck-on .ck-button__toggle .ck-button__toggle__inner) { + transform: translateX(calc(-1 * var(--ck-switch-button-translation))); +} + +.ck.ck-button.ck-list-item-button { + padding: var(--ck-spacing-tiny) calc(2 * var(--ck-spacing-standard)); +} + +.ck.ck-button.ck-list-item-button, .ck.ck-button.ck-list-item-button.ck-on { + background: var(--ck-color-list-background); + color: var(--ck-color-text); +} + +[dir="ltr"] .ck.ck-button.ck-list-item-button:has(.ck-list-item-button__check-holder) { + padding-left: var(--ck-spacing-small); +} + +[dir="rtl"] .ck.ck-button.ck-list-item-button:has(.ck-list-item-button__check-holder) { + padding-right: var(--ck-spacing-small); +} + +.ck.ck-button.ck-list-item-button:hover:not(.ck-disabled), .ck.ck-button.ck-list-item-button.ck-button.ck-on:hover, .ck.ck-button.ck-list-item-button.ck-on:not(.ck-list-item-button_toggleable), .ck.ck-button.ck-list-item-button.ck-on:hover { + background: var(--ck-color-list-button-hover-background); +} + +:is(.ck.ck-button.ck-list-item-button:hover:not(.ck-disabled), .ck.ck-button.ck-list-item-button.ck-button.ck-on:hover, .ck.ck-button.ck-list-item-button.ck-on:not(.ck-list-item-button_toggleable), .ck.ck-button.ck-list-item-button.ck-on:hover):not(.ck-disabled) { + color: var(--ck-color-text); +} + +.ck.ck-list-item-button { + min-height: unset; + border-radius: 0; + width: 100%; +} + +[dir="ltr"] .ck.ck-list-item-button { + text-align: left; +} + +[dir="rtl"] .ck.ck-list-item-button { + text-align: right; +} + +[dir="ltr"] .ck.ck-list-item-button.ck-list-item-button_toggleable { + padding-left: var(--ck-spacing-small); +} + +[dir="rtl"] .ck.ck-list-item-button.ck-list-item-button_toggleable { + padding-right: var(--ck-spacing-small); +} + +.ck.ck-list-item-button .ck-list-item-button__check-holder { + width: .9em; + height: .9em; + display: inline-flex; +} + +[dir="ltr"] :is(.ck.ck-list-item-button .ck-list-item-button__check-holder) { + margin-right: var(--ck-spacing-small); +} + +[dir="rtl"] :is(.ck.ck-list-item-button .ck-list-item-button__check-holder) { + margin-left: var(--ck-spacing-small); +} + +.ck.ck-list-item-button .ck-list-item-button__check-icon { + height: 100%; +} + +:root { + --ck-collapsible-arrow-size: calc(.5 * var(--ck-icon-size)); +} + +.ck.ck-collapsible > .ck.ck-button { + width: 100%; + color: inherit; + border-radius: 0; + font-weight: bold; +} + +.ck.ck-collapsible > .ck.ck-button:focus { + background: none; +} + +.ck.ck-collapsible > .ck.ck-button:active, .ck.ck-collapsible > .ck.ck-button:not(:focus), .ck.ck-collapsible > .ck.ck-button:hover:not(:focus) { + box-shadow: none; + background: none; + border-color: #0000; +} + +.ck.ck-collapsible > .ck.ck-button > .ck-icon { + margin-right: var(--ck-spacing-medium); + width: var(--ck-collapsible-arrow-size); +} + +.ck.ck-collapsible > .ck-collapsible__children { + padding: var(--ck-spacing-medium) var(--ck-spacing-large) var(--ck-spacing-large); +} + +.ck.ck-collapsible.ck-collapsible_collapsed > .ck.ck-button .ck-icon { + transform: rotate(-90deg); +} + +.ck.ck-collapsible.ck-collapsible_collapsed > .ck-collapsible__children { + display: none; +} + +:root { + --ck-color-grid-tile-size: 24px; + --ck-color-color-grid-check-icon: #166fd4; +} + +.ck.ck-color-grid { + grid-gap: 5px; + padding: 8px; + display: grid; +} + +.ck.ck-color-grid__tile { + transition: box-shadow .2s; +} + +@media (forced-colors: none) { + .ck.ck-color-grid__tile { + width: var(--ck-color-grid-tile-size); + height: var(--ck-color-grid-tile-size); + min-width: var(--ck-color-grid-tile-size); + min-height: var(--ck-color-grid-tile-size); + border: 0; + padding: 0; + } + + .ck.ck-color-grid__tile.ck-on, .ck.ck-color-grid__tile:focus:not(.ck-disabled), .ck.ck-color-grid__tile:hover:not(.ck-disabled) { + border: 0; + } + + .ck.ck-color-grid__tile.ck-color-selector__color-tile_bordered { + box-shadow: 0 0 0 1px var(--ck-color-base-border); + } + + .ck.ck-color-grid__tile.ck-on { + box-shadow: inset 0 0 0 1px var(--ck-color-base-background), 0 0 0 2px var(--ck-color-base-text); + } + + .ck.ck-color-grid__tile:focus:not(.ck-disabled), .ck.ck-color-grid__tile:hover:not(.ck-disabled) { + box-shadow: inset 0 0 0 1px var(--ck-color-base-background), 0 0 0 2px var(--ck-color-focus-border); + } +} + +@media (forced-colors: active) { + .ck.ck-color-grid__tile { + width: unset; + height: unset; + min-width: unset; + min-height: unset; + padding: 0 var(--ck-spacing-small); + } + + .ck.ck-color-grid__tile .ck-button__label { + display: inline-block; + } +} + +@media (prefers-reduced-motion: reduce) { + .ck.ck-color-grid__tile { + transition: none; + } +} + +.ck.ck-color-grid__tile.ck-disabled { + cursor: unset; + transition: unset; +} + +.ck.ck-color-grid__tile .ck.ck-icon { + color: var(--ck-color-color-grid-check-icon); + display: none; +} + +.ck.ck-color-grid__tile.ck-on .ck.ck-icon { + display: block; +} + +.ck.ck-color-grid__label { + padding: 0 var(--ck-spacing-standard); +} + +.color-picker-hex-input { + width: max-content; +} + +.color-picker-hex-input .ck.ck-input { + min-width: unset; +} + +.ck.ck-color-picker__row { + margin: var(--ck-spacing-large) 0 0; + width: unset; + flex-flow: row; + justify-content: space-between; + display: flex; +} + +.ck.ck-color-picker__row .ck.ck-labeled-field-view { + padding-top: unset; +} + +.ck.ck-color-picker__row .ck.ck-input-text { + width: unset; +} + +.ck.ck-color-picker__row .ck-color-picker__hash-view { + padding-top: var(--ck-spacing-tiny); + padding-right: var(--ck-spacing-medium); +} + +.ck.ck-color-selector .ck-color-grids-fragment .ck-button.ck-color-selector__remove-color, .ck.ck-color-selector .ck-color-grids-fragment .ck-button.ck-color-selector__color-picker { + align-items: center; + width: 100%; + display: flex; +} + +[dir="rtl"] :is(.ck.ck-color-selector .ck-color-grids-fragment .ck-button.ck-color-selector__remove-color, .ck.ck-color-selector .ck-color-grids-fragment .ck-button.ck-color-selector__color-picker) { + justify-content: flex-start; +} + +.ck.ck-color-selector .ck-color-grids-fragment .ck-button.ck-color-selector__color-picker { + padding: calc(var(--ck-spacing-standard) / 2) var(--ck-spacing-standard); + border-bottom-right-radius: 0; + border-bottom-left-radius: 0; +} + +.ck.ck-color-selector .ck-color-grids-fragment .ck-button.ck-color-selector__color-picker:not(:focus) { + border-top: 1px solid var(--ck-color-base-border); +} + +[dir="ltr"] :is(.ck.ck-color-selector .ck-color-grids-fragment .ck-button.ck-color-selector__color-picker .ck.ck-icon) { + margin-right: var(--ck-spacing-standard); +} + +[dir="rtl"] :is(.ck.ck-color-selector .ck-color-grids-fragment .ck-button.ck-color-selector__color-picker .ck.ck-icon) { + margin-left: var(--ck-spacing-standard); +} + +.ck.ck-color-selector .ck-color-grids-fragment label.ck.ck-color-grid__label { + font-weight: unset; +} + +.ck.ck-color-selector .ck-color-picker-fragment .ck.ck-color-picker { + padding: 8px; +} + +.ck.ck-color-selector .ck-color-picker-fragment .ck.ck-color-picker .hex-color-picker { + min-width: 180px; + height: 100px; +} + +.ck.ck-color-selector .ck-color-picker-fragment .ck.ck-color-picker .hex-color-picker::part(saturation) { + border-radius: var(--ck-border-radius) var(--ck-border-radius) 0 0; +} + +.ck.ck-color-selector .ck-color-picker-fragment .ck.ck-color-picker .hex-color-picker::part(hue) { + border-radius: 0 0 var(--ck-border-radius) var(--ck-border-radius); +} + +.ck.ck-color-selector .ck-color-picker-fragment .ck.ck-color-picker .hex-color-picker::part(saturation-pointer), .ck.ck-color-selector .ck-color-picker-fragment .ck.ck-color-picker .hex-color-picker::part(hue-pointer) { + width: 15px; + height: 15px; +} + +.ck.ck-color-selector .ck-color-picker-fragment .ck.ck-color-selector_action-bar { + flex-direction: row; + justify-content: space-around; + padding: 0 8px 8px; + display: flex; +} + +.ck.ck-color-selector .ck-color-picker-fragment .ck.ck-color-selector_action-bar .ck-button-save, .ck.ck-color-selector .ck-color-picker-fragment .ck.ck-color-selector_action-bar .ck-button-cancel { + flex: 1; +} + +:root { + --ck-dialog-overlay-background-color: #00000080; + --ck-dialog-drop-shadow: 0px 0px 6px 2px #00000026; + --ck-dialog-max-width: 100vw; + --ck-dialog-max-height: 90vh; + --ck-color-dialog-background: var(--ck-color-base-background); + --ck-color-dialog-form-header-border: var(--ck-color-base-border); +} + +.ck.ck-dialog-overlay { + background: var(--ck-dialog-overlay-background-color); + z-index: var(--ck-z-dialog); + user-select: none; + overscroll-behavior: none; + animation: .3s ck-dialog-fade-in; + position: fixed; + inset: 0; +} + +.ck.ck-dialog-overlay.ck-dialog-overlay__transparent { + pointer-events: none; + background: none; + animation: none; +} + +.ck.ck-dialog { + border-radius: var(--ck-rounded-corners-radius); + box-shadow: var(--ck-drop-shadow), 0 0; + --ck-drop-shadow: var(--ck-dialog-drop-shadow); + background: var(--ck-color-dialog-background); + max-height: var(--ck-dialog-max-height); + max-width: var(--ck-dialog-max-width); + border: 1px solid var(--ck-color-base-border); + overscroll-behavior: contain; + overscroll-behavior: none; + width: fit-content; + position: absolute; +} + +.ck.ck-dialog .ck.ck-form__header { + border-bottom: 1px solid var(--ck-color-dialog-form-header-border); + flex-shrink: 0; +} + +.ck.ck-dialog:not(.ck-dialog_modal) .ck.ck-form__header .ck-form__header__label { + cursor: grab; +} + +.ck.ck-dialog-overlay.ck-dialog-overlay__transparent .ck.ck-dialog { + pointer-events: all; +} + +.ck-dialog-scroll-locked { + overflow: hidden; +} + +@keyframes ck-dialog-fade-in { + 0% { + background: none; + } + + 100% { + background: var(--ck-dialog-overlay-background-color); + } +} + +.ck.ck-dialog .ck.ck-dialog__actions { + padding: var(--ck-spacing-large); + display: flex; +} + +.ck.ck-dialog .ck.ck-dialog__actions > * + * { + margin-left: var(--ck-spacing-large); +} + +.ck.ck-dialog .ck.ck-dialog__actions { + justify-content: flex-end; +} + +:root { + --ck-dropdown-arrow-size: calc(.5 * var(--ck-icon-size)); + --ck-dropdown-max-width: 75vw; +} + +.ck.ck-dropdown { + font-size: inherit; + display: inline-block; + position: relative; +} + +.ck.ck-dropdown .ck-dropdown__arrow { + width: var(--ck-dropdown-arrow-size); + pointer-events: none; + z-index: var(--ck-z-default); +} + +[dir="ltr"] .ck.ck-dropdown .ck-dropdown__arrow { + right: var(--ck-spacing-standard); + margin-left: var(--ck-spacing-standard); +} + +[dir="rtl"] .ck.ck-dropdown .ck-dropdown__arrow { + left: var(--ck-spacing-standard); + margin-right: var(--ck-spacing-small); +} + +.ck.ck-dropdown.ck-disabled .ck-dropdown__arrow { + opacity: var(--ck-disabled-opacity); +} + +[dir="ltr"] :is(.ck.ck-dropdown .ck-button.ck-dropdown__button):not(.ck-button_with-text) { + padding-left: var(--ck-spacing-small); +} + +[dir="rtl"] :is(.ck.ck-dropdown .ck-button.ck-dropdown__button):not(.ck-button_with-text) { + padding-right: var(--ck-spacing-small); +} + +.ck.ck-dropdown .ck-button.ck-dropdown__button .ck-button__label { + text-overflow: ellipsis; + width: 7em; + overflow: hidden; +} + +.ck.ck-dropdown .ck-button.ck-dropdown__button.ck-disabled .ck-button__label { + opacity: var(--ck-disabled-opacity); +} + +.ck.ck-dropdown .ck-button.ck-dropdown__button.ck-on { + border-bottom-right-radius: 0; + border-bottom-left-radius: 0; +} + +.ck.ck-dropdown .ck-button.ck-dropdown__button.ck-dropdown__button_label-width_auto .ck-button__label { + width: auto; +} + +.ck.ck-dropdown .ck-button.ck-dropdown__button.ck-off:active, .ck.ck-dropdown .ck-button.ck-dropdown__button.ck-on:active { + box-shadow: none; +} + +:is(.ck.ck-dropdown .ck-button.ck-dropdown__button.ck-off:active, .ck.ck-dropdown .ck-button.ck-dropdown__button.ck-on:active):focus { + box-shadow: var(--ck-focus-outer-shadow), 0 0; +} + +.ck.ck-dropdown .ck-button.ck-dropdown__button { + width: 100%; +} + +.ck.ck-dropdown .ck-dropdown__panel { + z-index: var(--ck-z-panel); + max-width: var(--ck-dropdown-max-width); + display: none; + position: absolute; +} + +.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel-visible { + display: inline-block; +} + +.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_ne, .ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_nw, .ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_n, .ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_nmw, .ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_nme { + bottom: 100%; +} + +.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_se, .ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_sw, .ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_smw, .ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_sme, .ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_s { + top: 100%; + bottom: auto; +} + +.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_ne, .ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_se { + left: 0; +} + +.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_nw, .ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_sw { + right: 0; +} + +.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_s, .ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_n { + left: 50%; + transform: translateX(-50%); +} + +.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_nmw, .ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_smw { + left: 75%; + transform: translateX(-75%); +} + +.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_nme, .ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_sme { + left: 25%; + transform: translateX(-25%); +} + +.ck.ck-dropdown__panel { + border-radius: var(--ck-rounded-corners-radius); + box-shadow: var(--ck-drop-shadow), 0 0; + background: var(--ck-color-dropdown-panel-background); + border: 1px solid var(--ck-color-dropdown-panel-border); + min-width: 100%; + bottom: 0; +} + +.ck.ck-dropdown__panel.ck-dropdown__panel_se { + border-top-left-radius: 0; +} + +.ck.ck-dropdown__panel.ck-dropdown__panel_sw { + border-top-right-radius: 0; +} + +.ck.ck-dropdown__panel.ck-dropdown__panel_ne { + border-bottom-left-radius: 0; +} + +.ck.ck-dropdown__panel.ck-dropdown__panel_nw { + border-bottom-right-radius: 0; +} + +.ck.ck-dropdown__panel:focus { + outline: none; +} + +.ck.ck-toolbar .ck-dropdown__panel { + z-index: calc(var(--ck-z-panel) + 1); +} + +:root { + --ck-color-split-button-hover-background: #ebebeb; + --ck-color-split-button-hover-border: #b3b3b3; +} + +.ck.ck-splitbutton .ck-splitbutton__action:focus { + z-index: calc(var(--ck-z-default) + 1); +} + +[dir="ltr"] :is(.ck.ck-splitbutton:hover > .ck-splitbutton__action, .ck.ck-splitbutton.ck-splitbutton_open > .ck-splitbutton__action) { + border-top-right-radius: unset; + border-bottom-right-radius: unset; +} + +[dir="rtl"] :is(.ck.ck-splitbutton:hover > .ck-splitbutton__action, .ck.ck-splitbutton.ck-splitbutton_open > .ck-splitbutton__action) { + border-top-left-radius: unset; + border-bottom-left-radius: unset; +} + +.ck.ck-splitbutton > .ck-splitbutton__arrow { + min-width: unset; +} + +[dir="ltr"] :is(.ck.ck-splitbutton > .ck-splitbutton__arrow) { + border-top-left-radius: unset; + border-bottom-left-radius: unset; +} + +[dir="rtl"] :is(.ck.ck-splitbutton > .ck-splitbutton__arrow) { + border-top-right-radius: unset; + border-bottom-right-radius: unset; +} + +.ck.ck-splitbutton > .ck-splitbutton__arrow svg { + width: var(--ck-dropdown-arrow-size); +} + +.ck.ck-splitbutton > .ck-splitbutton__arrow:not(:focus) { + border-top-width: 0; + border-bottom-width: 0; +} + +.ck.ck-splitbutton.ck-splitbutton_open { + border-radius: var(--ck-rounded-corners-radius); +} + +.ck.ck-splitbutton.ck-splitbutton_open > .ck-splitbutton__action { + border-bottom-left-radius: 0; +} + +.ck.ck-splitbutton.ck-splitbutton_open > .ck-splitbutton__arrow { + border-bottom-right-radius: 0; +} + +:is(.ck.ck-splitbutton.ck-splitbutton_open, .ck.ck-splitbutton:hover) > .ck-button:not(.ck-on):not(.ck-disabled):not(:hover) { + background: var(--ck-color-split-button-hover-background); +} + +:is(.ck.ck-splitbutton.ck-splitbutton_open, .ck.ck-splitbutton:hover) > .ck-splitbutton__arrow:not(.ck-disabled):after { + content: ""; + background-color: var(--ck-color-split-button-hover-border); + width: 1px; + height: 100%; + position: absolute; +} + +:is(.ck.ck-splitbutton.ck-splitbutton_open, .ck.ck-splitbutton:hover) > .ck-splitbutton__arrow:focus:after { + --ck-color-split-button-hover-border: var(--ck-color-focus-border); +} + +[dir="ltr"] :is(.ck.ck-splitbutton.ck-splitbutton_open, .ck.ck-splitbutton:hover) > .ck-splitbutton__arrow:not(.ck-disabled):after { + left: -1px; +} + +[dir="rtl"] :is(.ck.ck-splitbutton.ck-splitbutton_open, .ck.ck-splitbutton:hover) > .ck-splitbutton__arrow:not(.ck-disabled):after { + right: -1px; +} + +.ck.ck-splitbutton { + font-size: inherit; +} + +.ck.ck-toolbar-dropdown .ck-toolbar { + border: 0; +} + +:root { + --ck-toolbar-dropdown-max-width: 60vw; +} + +.ck.ck-toolbar-dropdown > .ck-dropdown__panel { + width: max-content; + max-width: var(--ck-toolbar-dropdown-max-width); +} + +.ck.ck-toolbar-dropdown > .ck-dropdown__panel .ck-button:focus { + z-index: calc(var(--ck-z-default) + 1); +} + +.ck.ck-dropdown > .ck-dropdown__panel > .ck-list { + border-radius: var(--ck-rounded-corners-radius); + border-top-left-radius: 0; +} + +.ck.ck-dropdown > .ck-dropdown__panel > .ck-list .ck-list__item:first-child > .ck-button { + border-radius: var(--ck-rounded-corners-radius); + border-top-left-radius: 0; + border-bottom-right-radius: 0; + border-bottom-left-radius: 0; +} + +.ck.ck-dropdown > .ck-dropdown__panel > .ck-list .ck-list__item:last-child > .ck-button { + border-radius: var(--ck-rounded-corners-radius); + border-top-left-radius: 0; + border-top-right-radius: 0; +} + +.ck.ck-dropdown-menu-list__nested-menu { + display: block; +} + +:root { + --ck-dropdown-menu-menu-item-min-width: 18em; +} + +.ck.ck-dropdown-menu-list__nested-menu__item { + min-width: var(--ck-dropdown-menu-menu-item-min-width); +} + +.ck-button.ck-dropdown-menu-list__nested-menu__item__button { + border-radius: 0; +} + +.ck-button.ck-dropdown-menu-list__nested-menu__item__button > .ck-spinner-container, .ck-button.ck-dropdown-menu-list__nested-menu__item__button > .ck-spinner-container .ck-spinner { + --ck-toolbar-spinner-size: 20px; +} + +.ck-button.ck-dropdown-menu-list__nested-menu__item__button > .ck-spinner-container { + margin-left: calc(-1 * var(--ck-spacing-small)); + margin-right: var(--ck-spacing-small); +} + +.ck-button.ck-dropdown-menu-list__nested-menu__item__button:focus { + box-shadow: none; + border-color: #0000; +} + +.ck-button.ck-dropdown-menu-list__nested-menu__item__button:focus:not(.ck-on) { + background: var(--ck-color-button-default-hover-background); +} + +.ck.ck-button.ck-dropdown-menu-list__nested-menu__button { + width: 100%; + padding: var(--ck-spacing-tiny) calc(2 * var(--ck-spacing-standard)); + border-radius: 0; +} + +.ck.ck-button.ck-dropdown-menu-list__nested-menu__button:focus { + box-shadow: none; + border-color: #0000; +} + +.ck.ck-button.ck-dropdown-menu-list__nested-menu__button:focus:not(.ck-on) { + background: var(--ck-color-button-default-hover-background); +} + +.ck.ck-button.ck-dropdown-menu-list__nested-menu__button > .ck-button__label { + text-overflow: ellipsis; + flex-grow: 1; + overflow: hidden; +} + +.ck.ck-button.ck-dropdown-menu-list__nested-menu__button.ck-disabled > .ck-button__label { + opacity: var(--ck-disabled-opacity); +} + +.ck.ck-button.ck-dropdown-menu-list__nested-menu__button.ck-icon-spacing:not(:has(.ck-button__icon)) > .ck-button__label { + margin-left: calc(var(--ck-icon-size) - var(--ck-spacing-small)); +} + +.ck.ck-button.ck-dropdown-menu-list__nested-menu__button > .ck-dropdown-menu-list__nested-menu__button__arrow { + width: var(--ck-dropdown-arrow-size); + pointer-events: none; + z-index: var(--ck-z-default); +} + +[dir="ltr"] :is(.ck.ck-button.ck-dropdown-menu-list__nested-menu__button > .ck-dropdown-menu-list__nested-menu__button__arrow) { + right: var(--ck-spacing-standard); + margin-left: var(--ck-spacing-standard); + margin-right: calc(-1 * var(--ck-spacing-small)); + transform: rotate(-90deg); +} + +[dir="rtl"] :is(.ck.ck-button.ck-dropdown-menu-list__nested-menu__button > .ck-dropdown-menu-list__nested-menu__button__arrow) { + left: var(--ck-spacing-standard); + margin-right: var(--ck-spacing-small); + margin-left: calc(-1 * var(--ck-spacing-small)); + transform: rotate(90deg); +} + +.ck.ck-button.ck-dropdown-menu-list__nested-menu__button.ck-disabled > .ck-dropdown-menu-list__nested-menu__button__arrow { + opacity: var(--ck-disabled-opacity); +} + +[dir="ltr"] .ck.ck-button.ck-dropdown-menu-list__nested-menu__button:not(.ck-button_with-text) { + padding-left: var(--ck-spacing-small); +} + +[dir="rtl"] .ck.ck-button.ck-dropdown-menu-list__nested-menu__button:not(.ck-button_with-text) { + padding-right: var(--ck-spacing-small); +} + +:root { + --ck-dropdown-menu-menu-panel-max-width: 75vw; +} + +.ck.ck-balloon-panel.ck-dropdown-menu__nested-menu__panel { + box-shadow: var(--ck-drop-shadow), 0 0; + background: var(--ck-color-dropdown-panel-background); + border: 1px solid var(--ck-color-dropdown-panel-border); + height: fit-content; + max-width: var(--ck-dropdown-menu-menu-panel-max-width); + max-height: 314px; + position: absolute; + bottom: 0; + overflow-y: auto; +} + +.ck.ck-balloon-panel.ck-dropdown-menu__nested-menu__panel:after, .ck.ck-balloon-panel.ck-dropdown-menu__nested-menu__panel:before { + display: none; +} + +.ck.ck-balloon-panel.ck-dropdown-menu__nested-menu__panel.ck-balloon-panel_es, .ck.ck-balloon-panel.ck-dropdown-menu__nested-menu__panel.ck-balloon-panel_se { + border-top-left-radius: 0; +} + +.ck.ck-balloon-panel.ck-dropdown-menu__nested-menu__panel.ck-balloon-panel_ws, .ck.ck-balloon-panel.ck-dropdown-menu__nested-menu__panel.ck-balloon-panel_sw { + border-top-right-radius: 0; +} + +.ck.ck-balloon-panel.ck-dropdown-menu__nested-menu__panel.ck-balloon-panel_en, .ck.ck-balloon-panel.ck-dropdown-menu__nested-menu__panel.ck-balloon-panel_ne { + border-bottom-left-radius: 0; +} + +.ck.ck-balloon-panel.ck-dropdown-menu__nested-menu__panel.ck-balloon-panel_wn, .ck.ck-balloon-panel.ck-dropdown-menu__nested-menu__panel.ck-balloon-panel_nw { + border-bottom-right-radius: 0; +} + +.ck.ck-balloon-panel.ck-dropdown-menu__nested-menu__panel:focus { + outline: none; +} + +.ck.ck-balloon-panel.ck-dropdown-menu__nested-menu__panel { + z-index: calc(var(--ck-z-panel) + 1); +} + +:root { + --ck-color-editable-blur-selection: #d9d9d9; +} + +.ck.ck-editor__top .ck-sticky-panel .ck-sticky-panel__content { + border-radius: var(--ck-rounded-corners-radius); + border: 1px solid var(--ck-color-base-border); + border-bottom-width: 0; + border-bottom-right-radius: 0; + border-bottom-left-radius: 0; +} + +.ck.ck-editor__top .ck-sticky-panel .ck-sticky-panel__content.ck-sticky-panel__content_sticky { + border-bottom-width: 1px; +} + +.ck.ck-editor__top .ck-sticky-panel .ck-sticky-panel__content .ck-menu-bar { + border: 0; + border-bottom: 1px solid var(--ck-color-base-border); +} + +.ck.ck-editor__top .ck-sticky-panel .ck-sticky-panel__content .ck-toolbar { + border: 0; +} + +.ck.ck-editor__editable:not(.ck-editor__nested-editable) { + border-radius: var(--ck-rounded-corners-radius); +} + +.ck.ck-editor__editable:not(.ck-editor__nested-editable).ck-focused { + border: var(--ck-focus-ring); + box-shadow: var(--ck-inner-shadow), 0 0; + outline: none; +} + +.ck.ck-editor__editable_inline { + padding: 0 var(--ck-spacing-standard); + border: 1px solid #0000; + overflow: auto; +} + +.ck.ck-editor__editable_inline[dir="ltr"] { + text-align: left; +} + +.ck.ck-editor__editable_inline[dir="rtl"] { + text-align: right; +} + +.ck.ck-editor__editable_inline > :first-child { + margin-top: var(--ck-spacing-large); +} + +.ck.ck-editor__editable_inline > :last-child { + margin-bottom: var(--ck-spacing-large); +} + +.ck.ck-editor__editable_inline.ck-blurred ::selection { + background: var(--ck-color-editable-blur-selection); +} + +.ck.ck-balloon-panel.ck-toolbar-container[class*="arrow_n"]:after { + border-bottom-color: var(--ck-color-panel-background); +} + +.ck.ck-balloon-panel.ck-toolbar-container[class*="arrow_s"]:after { + border-top-color: var(--ck-color-panel-background); +} + +.ck.ck-form__row { + padding: var(--ck-spacing-standard) var(--ck-spacing-large) 0; + flex-direction: row; + justify-content: space-between; + align-items: flex-start; + display: flex; +} + +.ck.ck-form__row.ck-form__row_large-top-padding { + padding-top: var(--ck-spacing-large); +} + +.ck.ck-form__row.ck-form__row_large-bottom-padding { + padding-bottom: var(--ck-spacing-large); +} + +.ck.ck-form__row.ck-form__row_with-submit { + flex-wrap: nowrap; +} + +.ck.ck-form__row.ck-form__row_with-submit > :not(:first-child) { + margin-inline-start: var(--ck-spacing-standard); +} + +.ck.ck-form__row > .ck.ck-form__row { + padding: 0; +} + +:root { + --ck-form-header-height: 3.384em; +} + +.ck.ck-form__header { + padding: var(--ck-spacing-small) var(--ck-spacing-large); + height: var(--ck-form-header-height); + line-height: var(--ck-form-header-height); + border-bottom: 1px solid var(--ck-color-base-border); + flex-flow: row; + flex-shrink: 0; + justify-content: space-between; + align-items: center; + display: flex; +} + +.ck.ck-form__header > .ck-icon { + flex-shrink: 0; + margin-inline-end: var(--ck-spacing-medium); +} + +.ck.ck-form__header .ck-form__header__label { + --ck-font-size-base: 1.153em; + font-weight: bold; +} + +.ck.ck-form__header:has(.ck-button-back.ck-hidden) { + padding-inline: var(--ck-spacing-large) var(--ck-spacing-large); +} + +.ck.ck-form__header:has(.ck-button-back:not(.ck-hidden)) { + padding-inline: var(--ck-spacing-small) var(--ck-spacing-small); +} + +.ck.ck-form__header > .ck-button-back { + margin-inline-end: var(--ck-spacing-small); +} + +.ck.ck-form__header > .ck.ck-button { + flex-shrink: 0; +} + +.ck.ck-form__header h2.ck-form__header__label { + text-overflow: ellipsis; + flex-grow: 1; + overflow: hidden; +} + +:root { + --ck-icon-size: calc(var(--ck-line-height-base) * var(--ck-font-size-normal)); + --ck-icon-font-size: .833335em; +} + +.ck.ck-icon { + width: var(--ck-icon-size); + height: var(--ck-icon-size); + font-size: var(--ck-icon-font-size); + cursor: inherit; +} + +.ck.ck-icon * { + cursor: inherit; +} + +.ck.ck-icon.ck-icon_inherit-color { + color: inherit; +} + +.ck.ck-icon.ck-icon_inherit-color * { + color: inherit; +} + +.ck.ck-icon.ck-icon_inherit-color *:not([fill]) { + fill: currentColor; +} + +.ck.ck-icon { + vertical-align: middle; +} + +:root { + --ck-input-width: 18em; + --ck-input-text-width: var(--ck-input-width); +} + +.ck.ck-input { + border-radius: var(--ck-rounded-corners-radius); + background: var(--ck-color-input-background); + border: 1px solid var(--ck-color-input-border); + padding: var(--ck-spacing-extra-tiny) var(--ck-spacing-medium); + min-width: var(--ck-input-width); + min-height: var(--ck-ui-component-min-height); + transition: box-shadow .1s ease-in-out, border .1s ease-in-out; +} + +@media (prefers-reduced-motion: reduce) { + .ck.ck-input { + transition: none; + } +} + +.ck.ck-input:focus { + border: var(--ck-focus-ring); + box-shadow: var(--ck-focus-outer-shadow), 0 0; + outline: none; +} + +.ck.ck-input[readonly] { + border: 1px solid var(--ck-color-input-disabled-border); + background: var(--ck-color-input-disabled-background); + color: var(--ck-color-input-disabled-text); +} + +.ck.ck-input[readonly]:focus { + box-shadow: var(--ck-focus-disabled-outer-shadow), 0 0; +} + +.ck.ck-input.ck-error { + border-color: var(--ck-color-input-error-border); + animation: .3s both ck-input-shake; +} + +@media (prefers-reduced-motion: reduce) { + .ck.ck-input.ck-error { + animation: none; + } +} + +.ck.ck-input.ck-error:focus { + box-shadow: var(--ck-focus-error-outer-shadow), 0 0; +} + +@keyframes ck-input-shake { + 20% { + transform: translateX(-2px); + } + + 40% { + transform: translateX(2px); + } + + 60% { + transform: translateX(-1px); + } + + 80% { + transform: translateX(1px); + } +} + +.ck-textarea { + overflow-x: hidden; +} + +.ck.ck-label { + font-weight: bold; + display: block; +} + +.ck.ck-voice-label { + display: none; +} + +:root { + --ck-labeled-field-view-transition: .1s cubic-bezier(0, 0, .24, .95); + --ck-labeled-field-empty-unfocused-max-width: 100% - 2 * var(--ck-spacing-medium); + --ck-labeled-field-label-default-position-x: var(--ck-spacing-medium); + --ck-labeled-field-label-default-position-y: calc(.6 * var(--ck-font-size-base)); + --ck-color-labeled-field-label-background: var(--ck-color-base-background); +} + +.ck.ck-labeled-field-view { + border-radius: var(--ck-rounded-corners-radius); +} + +.ck.ck-labeled-field-view .ck.ck-label { + display: block; + position: absolute; +} + +.ck.ck-labeled-field-view > .ck.ck-labeled-field-view__input-wrapper { + width: 100%; + display: flex; +} + +.ck.ck-labeled-field-view > .ck.ck-labeled-field-view__input-wrapper > .ck.ck-label { + pointer-events: none; + background: var(--ck-color-labeled-field-label-background); + padding: 0 calc(.5 * var(--ck-font-size-tiny)); + line-height: initial; + text-overflow: ellipsis; + max-width: 100%; + transition: transform var(--ck-labeled-field-view-transition), + padding var(--ck-labeled-field-view-transition), + background var(--ck-labeled-field-view-transition); + font-weight: normal; + top: 0; + overflow: hidden; +} + +[dir="ltr"] :is(.ck.ck-labeled-field-view > .ck.ck-labeled-field-view__input-wrapper > .ck.ck-label) { + transform-origin: 0 0; + transform: translate(var(--ck-spacing-medium), -6px) scale(.75); + left: 0; +} + +[dir="rtl"] :is(.ck.ck-labeled-field-view > .ck.ck-labeled-field-view__input-wrapper > .ck.ck-label) { + transform-origin: 100% 0; + transform: translate(calc(-1 * var(--ck-spacing-medium)), -6px) scale(.75); + right: 0; +} + +@media (prefers-reduced-motion: reduce) { + .ck.ck-labeled-field-view > .ck.ck-labeled-field-view__input-wrapper > .ck.ck-label { + transition: none; + } +} + +.ck.ck-labeled-field-view > .ck.ck-labeled-field-view__input-wrapper { + position: relative; +} + +.ck.ck-labeled-field-view.ck-error > .ck.ck-labeled-field-view__input-wrapper > .ck.ck-label, .ck.ck-labeled-field-view.ck-error .ck-input:not([readonly]) + .ck.ck-label { + color: var(--ck-color-base-error); +} + +.ck.ck-labeled-field-view .ck-labeled-field-view__status { + font-size: var(--ck-font-size-small); + margin-top: var(--ck-spacing-small); + white-space: normal; +} + +.ck.ck-labeled-field-view .ck-labeled-field-view__status.ck-labeled-field-view__status_error { + color: var(--ck-color-base-error); +} + +.ck.ck-labeled-field-view.ck-disabled > .ck.ck-labeled-field-view__input-wrapper > .ck.ck-label, .ck.ck-labeled-field-view.ck-labeled-field-view_empty:not(.ck-labeled-field-view_focused) > .ck.ck-labeled-field-view__input-wrapper > .ck.ck-label { + color: var(--ck-color-input-disabled-text); +} + +[dir="ltr"] :is(.ck.ck-labeled-field-view.ck-disabled.ck-labeled-field-view_empty:not(.ck-labeled-field-view_placeholder) > .ck.ck-labeled-field-view__input-wrapper > .ck.ck-label, .ck.ck-labeled-field-view.ck-labeled-field-view_empty:not(.ck-labeled-field-view_focused):not(.ck-labeled-field-view_placeholder):not(.ck-error) > .ck.ck-labeled-field-view__input-wrapper > .ck.ck-label) { + transform: translate(var(--ck-labeled-field-label-default-position-x), var(--ck-labeled-field-label-default-position-y)) scale(1); +} + +[dir="rtl"] :is(.ck.ck-labeled-field-view.ck-disabled.ck-labeled-field-view_empty:not(.ck-labeled-field-view_placeholder) > .ck.ck-labeled-field-view__input-wrapper > .ck.ck-label, .ck.ck-labeled-field-view.ck-labeled-field-view_empty:not(.ck-labeled-field-view_focused):not(.ck-labeled-field-view_placeholder):not(.ck-error) > .ck.ck-labeled-field-view__input-wrapper > .ck.ck-label) { + transform: translate(calc(-1 * var(--ck-labeled-field-label-default-position-x)), var(--ck-labeled-field-label-default-position-y)) scale(1); +} + +.ck.ck-labeled-field-view.ck-disabled.ck-labeled-field-view_empty:not(.ck-labeled-field-view_placeholder) > .ck.ck-labeled-field-view__input-wrapper > .ck.ck-label, .ck.ck-labeled-field-view.ck-labeled-field-view_empty:not(.ck-labeled-field-view_focused):not(.ck-labeled-field-view_placeholder):not(.ck-error) > .ck.ck-labeled-field-view__input-wrapper > .ck.ck-label { + max-width: calc(var(--ck-labeled-field-empty-unfocused-max-width)); + background: none; + padding: 0; +} + +.ck.ck-labeled-field-view > .ck.ck-labeled-field-view__input-wrapper > .ck-dropdown > .ck.ck-button { + background: none; +} + +.ck.ck-labeled-field-view.ck-labeled-field-view_empty > .ck.ck-labeled-field-view__input-wrapper > .ck-dropdown > .ck-button > .ck-button__label { + opacity: 0; +} + +.ck.ck-labeled-field-view.ck-labeled-field-view_empty:not(.ck-labeled-field-view_focused):not(.ck-labeled-field-view_placeholder) > .ck.ck-labeled-field-view__input-wrapper > .ck-dropdown + .ck-label { + max-width: calc(var(--ck-labeled-field-empty-unfocused-max-width) - var(--ck-dropdown-arrow-size) - var(--ck-spacing-standard)); +} + +.ck.ck-labeled-field-view.ck-labeled-field-view_full-width { + flex-grow: 1; +} + +.ck.ck-labeled-input .ck-labeled-input__status { + font-size: var(--ck-font-size-small); + margin-top: var(--ck-spacing-small); + white-space: normal; +} + +.ck.ck-labeled-input .ck-labeled-input__status_error { + color: var(--ck-color-base-error); +} + +.ck.ck-list { + border-radius: var(--ck-rounded-corners-radius); + background: var(--ck-color-list-background); + padding: var(--ck-spacing-small) 0; + -webkit-user-select: none; + user-select: none; + flex-direction: column; + list-style-type: none; + display: flex; +} + +.ck.ck-list .ck-list__item, .ck.ck-list .ck-list__separator { + display: block; +} + +.ck.ck-list .ck-list__item > :focus { + z-index: var(--ck-z-default); + position: relative; +} + +.ck.ck-list__item { + cursor: default; + min-width: 15em; +} + +.ck.ck-list__item > .ck-button:not(.ck-list-item-button) { + padding: var(--ck-spacing-tiny) calc(2 * var(--ck-spacing-standard)); + min-height: unset; + border-radius: 0; + width: 100%; +} + +[dir="ltr"] :is(.ck.ck-list__item > .ck-button:not(.ck-list-item-button)) { + text-align: left; +} + +[dir="rtl"] :is(.ck.ck-list__item > .ck-button:not(.ck-list-item-button)) { + text-align: right; +} + +.ck.ck-list__item > .ck-button:not(.ck-list-item-button) .ck-button__label { + line-height: calc(var(--ck-line-height-base) * var(--ck-font-size-base)); +} + +.ck.ck-list__item > .ck-button:not(.ck-list-item-button):active { + box-shadow: none; +} + +.ck.ck-list__item > .ck-button:not(.ck-list-item-button).ck-on { + background: var(--ck-color-list-button-on-background); + color: var(--ck-color-list-button-on-text); +} + +.ck.ck-list__item > .ck-button:not(.ck-list-item-button).ck-on:active { + box-shadow: none; +} + +.ck.ck-list__item > .ck-button:not(.ck-list-item-button).ck-on:hover:not(.ck-disabled) { + background: var(--ck-color-list-button-on-background-focus); +} + +.ck.ck-list__item > .ck-button:not(.ck-list-item-button).ck-on:focus:not(.ck-disabled) { + border-color: var(--ck-color-base-background); +} + +.ck.ck-list__item > .ck-button:not(.ck-list-item-button):hover:not(.ck-disabled) { + background: var(--ck-color-list-button-hover-background); +} + +.ck.ck-list__item > .ck-button.ck-switchbutton.ck-on { + background: var(--ck-color-list-background); + color: inherit; +} + +.ck.ck-list__item > .ck-button.ck-switchbutton.ck-on:hover:not(.ck-disabled) { + background: var(--ck-color-list-button-hover-background); + color: inherit; +} + +.ck-list .ck-list__group { + padding-top: var(--ck-spacing-medium); +} + +.ck-list .ck-list__group:first-child { + padding-top: 0; +} + +:not(.ck-hidden) ~ :is(.ck-list .ck-list__group) { + border-top: 1px solid var(--ck-color-base-border); +} + +.ck-list .ck-list__group > .ck-label { + padding: var(--ck-spacing-medium) var(--ck-spacing-large) 0; + font-size: 11px; + font-weight: bold; +} + +.ck.ck-list__separator { + background: var(--ck-color-base-border); + width: 100%; + height: 1px; + margin: var(--ck-spacing-small) 0; +} + +:root { + --ck-balloon-border-width: 1px; + --ck-balloon-arrow-offset: 2px; + --ck-balloon-arrow-height: 10px; + --ck-balloon-arrow-half-width: 8px; + --ck-balloon-arrow-drop-shadow: 0 2px 2px var(--ck-color-shadow-drop); + --ck-balloon-panel-arrow-z-index: calc(var(--ck-z-default) - 3); +} + +.ck.ck-balloon-panel { + border-radius: var(--ck-rounded-corners-radius); + box-shadow: var(--ck-drop-shadow), 0 0; + background: var(--ck-color-panel-background); + border: var(--ck-balloon-border-width) solid var(--ck-color-panel-border); + min-height: 15px; + z-index: var(--ck-z-panel); + display: none; + position: absolute; +} + +.ck.ck-balloon-panel.ck-balloon-panel_with-arrow:before, .ck.ck-balloon-panel.ck-balloon-panel_with-arrow:after { + content: ""; + border-style: solid; + width: 0; + height: 0; + position: absolute; +} + +.ck.ck-balloon-panel.ck-balloon-panel_with-arrow:before { + z-index: var(--ck-balloon-panel-arrow-z-index); +} + +.ck.ck-balloon-panel.ck-balloon-panel_with-arrow:after { + z-index: calc(var(--ck-balloon-panel-arrow-z-index) + 1); +} + +.ck.ck-balloon-panel[class*="arrow_n"]:before, .ck.ck-balloon-panel[class*="arrow_n"]:after { + border-width: 0 var(--ck-balloon-arrow-half-width) var(--ck-balloon-arrow-height) var(--ck-balloon-arrow-half-width); +} + +.ck.ck-balloon-panel[class*="arrow_n"]:before { + border-color: transparent transparent var(--ck-color-panel-border) transparent; + margin-top: calc(-1 * var(--ck-balloon-border-width)); + z-index: var(--ck-balloon-panel-arrow-z-index); +} + +.ck.ck-balloon-panel[class*="arrow_n"]:after { + border-color: transparent transparent var(--ck-color-panel-background) transparent; + margin-top: calc(var(--ck-balloon-arrow-offset) - var(--ck-balloon-border-width)); + z-index: calc(var(--ck-balloon-panel-arrow-z-index) + 1); +} + +.ck.ck-balloon-panel[class*="arrow_s"]:before, .ck.ck-balloon-panel[class*="arrow_s"]:after { + border-width: var(--ck-balloon-arrow-height) var(--ck-balloon-arrow-half-width) 0 var(--ck-balloon-arrow-half-width); +} + +.ck.ck-balloon-panel[class*="arrow_s"]:before { + border-color: var(--ck-color-panel-border) transparent transparent; + filter: drop-shadow(var(--ck-balloon-arrow-drop-shadow)); + margin-bottom: calc(-1 * var(--ck-balloon-border-width)); + z-index: var(--ck-balloon-panel-arrow-z-index); +} + +.ck.ck-balloon-panel[class*="arrow_s"]:after { + border-color: var(--ck-color-panel-background) transparent transparent transparent; + margin-bottom: calc(var(--ck-balloon-arrow-offset) - var(--ck-balloon-border-width)); + z-index: calc(var(--ck-balloon-panel-arrow-z-index) + 1); +} + +.ck.ck-balloon-panel[class*="arrow_e"]:before, .ck.ck-balloon-panel[class*="arrow_e"]:after { + border-width: var(--ck-balloon-arrow-half-width) 0 var(--ck-balloon-arrow-half-width) var(--ck-balloon-arrow-height); +} + +.ck.ck-balloon-panel[class*="arrow_e"]:before { + border-color: transparent transparent transparent var(--ck-color-panel-border); + margin-right: calc(-1 * var(--ck-balloon-border-width)); +} + +.ck.ck-balloon-panel[class*="arrow_e"]:after { + border-color: transparent transparent transparent var(--ck-color-panel-background); + margin-right: calc(var(--ck-balloon-arrow-offset) - var(--ck-balloon-border-width)); +} + +.ck.ck-balloon-panel[class*="arrow_w"]:before, .ck.ck-balloon-panel[class*="arrow_w"]:after { + border-width: var(--ck-balloon-arrow-half-width) var(--ck-balloon-arrow-height) var(--ck-balloon-arrow-half-width) 0; +} + +.ck.ck-balloon-panel[class*="arrow_w"]:before { + border-color: transparent var(--ck-color-panel-border) transparent transparent; + margin-left: calc(-1 * var(--ck-balloon-border-width)); +} + +.ck.ck-balloon-panel[class*="arrow_w"]:after { + border-color: transparent var(--ck-color-panel-background) transparent transparent; + margin-left: calc(var(--ck-balloon-arrow-offset) - var(--ck-balloon-border-width)); +} + +.ck.ck-balloon-panel.ck-balloon-panel_arrow_n:before, .ck.ck-balloon-panel.ck-balloon-panel_arrow_n:after { + margin-left: calc(-1 * var(--ck-balloon-arrow-half-width)); + left: 50%; + top: calc(-1 * var(--ck-balloon-arrow-height)); +} + +.ck.ck-balloon-panel.ck-balloon-panel_arrow_nw:before, .ck.ck-balloon-panel.ck-balloon-panel_arrow_nw:after { + left: calc(2 * var(--ck-balloon-arrow-half-width)); + top: calc(-1 * var(--ck-balloon-arrow-height)); +} + +.ck.ck-balloon-panel.ck-balloon-panel_arrow_ne:before, .ck.ck-balloon-panel.ck-balloon-panel_arrow_ne:after { + right: calc(2 * var(--ck-balloon-arrow-half-width)); + top: calc(-1 * var(--ck-balloon-arrow-height)); +} + +.ck.ck-balloon-panel.ck-balloon-panel_arrow_s:before, .ck.ck-balloon-panel.ck-balloon-panel_arrow_s:after { + margin-left: calc(-1 * var(--ck-balloon-arrow-half-width)); + left: 50%; + bottom: calc(-1 * var(--ck-balloon-arrow-height)); +} + +.ck.ck-balloon-panel.ck-balloon-panel_arrow_sw:before, .ck.ck-balloon-panel.ck-balloon-panel_arrow_sw:after { + left: calc(2 * var(--ck-balloon-arrow-half-width)); + bottom: calc(-1 * var(--ck-balloon-arrow-height)); +} + +.ck.ck-balloon-panel.ck-balloon-panel_arrow_se:before, .ck.ck-balloon-panel.ck-balloon-panel_arrow_se:after { + right: calc(2 * var(--ck-balloon-arrow-half-width)); + bottom: calc(-1 * var(--ck-balloon-arrow-height)); +} + +.ck.ck-balloon-panel.ck-balloon-panel_arrow_sme:before, .ck.ck-balloon-panel.ck-balloon-panel_arrow_sme:after { + margin-right: calc(2 * var(--ck-balloon-arrow-half-width)); + right: 25%; + bottom: calc(-1 * var(--ck-balloon-arrow-height)); +} + +.ck.ck-balloon-panel.ck-balloon-panel_arrow_smw:before, .ck.ck-balloon-panel.ck-balloon-panel_arrow_smw:after { + margin-left: calc(2 * var(--ck-balloon-arrow-half-width)); + left: 25%; + bottom: calc(-1 * var(--ck-balloon-arrow-height)); +} + +.ck.ck-balloon-panel.ck-balloon-panel_arrow_nme:before, .ck.ck-balloon-panel.ck-balloon-panel_arrow_nme:after { + margin-right: calc(2 * var(--ck-balloon-arrow-half-width)); + right: 25%; + top: calc(-1 * var(--ck-balloon-arrow-height)); +} + +.ck.ck-balloon-panel.ck-balloon-panel_arrow_nmw:before, .ck.ck-balloon-panel.ck-balloon-panel_arrow_nmw:after { + margin-left: calc(2 * var(--ck-balloon-arrow-half-width)); + left: 25%; + top: calc(-1 * var(--ck-balloon-arrow-height)); +} + +.ck.ck-balloon-panel.ck-balloon-panel_arrow_e:before, .ck.ck-balloon-panel.ck-balloon-panel_arrow_e:after { + right: calc(-1 * var(--ck-balloon-arrow-height)); + margin-top: calc(-1 * var(--ck-balloon-arrow-half-width)); + top: 50%; +} + +.ck.ck-balloon-panel.ck-balloon-panel_arrow_w:before, .ck.ck-balloon-panel.ck-balloon-panel_arrow_w:after { + left: calc(-1 * var(--ck-balloon-arrow-height)); + margin-top: calc(-1 * var(--ck-balloon-arrow-half-width)); + top: 50%; +} + +.ck.ck-balloon-panel.ck-balloon-panel_visible { + display: block; +} + +.ck .ck-balloon-rotator__navigation { + background: var(--ck-color-toolbar-background); + border-bottom: 1px solid var(--ck-color-toolbar-border); + padding: 0 var(--ck-spacing-small); + align-items: center; + display: flex; +} + +.ck .ck-balloon-rotator__navigation > * { + margin-right: var(--ck-spacing-small); + margin-top: var(--ck-spacing-small); + margin-bottom: var(--ck-spacing-small); +} + +.ck .ck-balloon-rotator__navigation .ck-balloon-rotator__counter { + margin-right: var(--ck-spacing-standard); + margin-left: var(--ck-spacing-small); +} + +.ck .ck-balloon-rotator__navigation { + justify-content: center; +} + +.ck .ck-balloon-rotator__content .ck.ck-annotation-wrapper { + box-shadow: none; +} + +.ck .ck-balloon-rotator__content .ck-toolbar { + justify-content: center; +} + +:root { + --ck-balloon-fake-panel-offset-horizontal: 6px; + --ck-balloon-fake-panel-offset-vertical: 6px; +} + +.ck .ck-fake-panel div { + box-shadow: var(--ck-drop-shadow), 0 0; + background: var(--ck-color-panel-background); + border: 1px solid var(--ck-color-panel-border); + border-radius: var(--ck-border-radius); + width: 100%; + height: 100%; + min-height: 15px; + position: absolute; +} + +.ck .ck-fake-panel div:first-child { + margin-left: var(--ck-balloon-fake-panel-offset-horizontal); + margin-top: var(--ck-balloon-fake-panel-offset-vertical); + z-index: 2; +} + +.ck .ck-fake-panel div:nth-child(2) { + margin-left: calc(var(--ck-balloon-fake-panel-offset-horizontal) * 2); + margin-top: calc(var(--ck-balloon-fake-panel-offset-vertical) * 2); + z-index: 1; +} + +.ck .ck-fake-panel div:nth-child(3) { + margin-left: calc(var(--ck-balloon-fake-panel-offset-horizontal) * 3); + margin-top: calc(var(--ck-balloon-fake-panel-offset-vertical) * 3); +} + +.ck .ck-fake-panel { + z-index: calc(var(--ck-z-panel) - 1); + position: absolute; +} + +.ck .ck-balloon-panel_arrow_s + .ck-fake-panel, .ck .ck-balloon-panel_arrow_se + .ck-fake-panel, .ck .ck-balloon-panel_arrow_sw + .ck-fake-panel { + --ck-balloon-fake-panel-offset-vertical: -6px; +} + +.ck.ck-sticky-panel .ck-sticky-panel__content_sticky { + box-shadow: var(--ck-drop-shadow), 0 0; + z-index: var(--ck-z-panel); + border-width: 0 1px 1px; + border-top-left-radius: 0; + border-top-right-radius: 0; + position: fixed; + top: 0; +} + +.ck.ck-sticky-panel .ck-sticky-panel__content_sticky_bottom-limit { + position: absolute; + top: auto; +} + +.ck.ck-autocomplete > .ck-search__results { + border-radius: var(--ck-rounded-corners-radius); + box-shadow: var(--ck-drop-shadow), 0 0; + background: var(--ck-color-base-background); + border: 1px solid var(--ck-color-dropdown-panel-border); + min-width: auto; + max-height: 200px; + position: absolute; + overflow-y: auto; +} + +.ck.ck-autocomplete > .ck-search__results.ck-search__results_n { + border-bottom-right-radius: 0; + border-bottom-left-radius: 0; + margin-bottom: -1px; + bottom: 100%; +} + +.ck.ck-autocomplete > .ck-search__results.ck-search__results_s { + border-top-left-radius: 0; + border-top-right-radius: 0; + margin-top: -1px; + top: 100%; + bottom: auto; +} + +.ck.ck-autocomplete > .ck-search__results { + z-index: var(--ck-z-panel); +} + +.ck.ck-autocomplete { + position: relative; +} + +:root { + --ck-search-field-view-horizontal-spacing: calc(var(--ck-icon-size) + var(--ck-spacing-medium)); +} + +.ck.ck-search > .ck-labeled-field-view .ck-input { + width: 100%; +} + +.ck.ck-search > .ck-labeled-field-view > .ck-labeled-field-view__input-wrapper > .ck-icon { + position: absolute; + top: 50%; + transform: translateY(-50%); +} + +[dir="ltr"] :is(.ck.ck-search > .ck-labeled-field-view > .ck-labeled-field-view__input-wrapper > .ck-icon) { + left: var(--ck-spacing-medium); +} + +[dir="rtl"] :is(.ck.ck-search > .ck-labeled-field-view > .ck-labeled-field-view__input-wrapper > .ck-icon) { + right: var(--ck-spacing-medium); +} + +.ck.ck-search > .ck-labeled-field-view .ck-search__reset { + position: absolute; + top: 50%; + transform: translateY(-50%); +} + +.ck.ck-search > .ck-labeled-field-view.ck-search__query_with-icon { + --ck-labeled-field-label-default-position-x: var(--ck-search-field-view-horizontal-spacing); +} + +.ck.ck-search > .ck-labeled-field-view.ck-search__query_with-icon > .ck-labeled-field-view__input-wrapper > .ck-icon { + opacity: .5; + pointer-events: none; +} + +.ck.ck-search > .ck-labeled-field-view.ck-search__query_with-icon .ck-input { + width: 100%; +} + +[dir="ltr"] :is(.ck.ck-search > .ck-labeled-field-view.ck-search__query_with-icon .ck-input) { + padding-left: var(--ck-search-field-view-horizontal-spacing); +} + +[dir="rtl"] :is(.ck.ck-search > .ck-labeled-field-view.ck-search__query_with-icon .ck-input):not(.ck-input-text_empty) { + padding-left: var(--ck-search-field-view-horizontal-spacing); +} + +.ck.ck-search > .ck-labeled-field-view.ck-search__query_with-reset { + --ck-labeled-field-empty-unfocused-max-width: 100% - 2 * var(--ck-search-field-view-horizontal-spacing); +} + +.ck.ck-search > .ck-labeled-field-view.ck-search__query_with-reset.ck-labeled-field-view_empty { + --ck-labeled-field-empty-unfocused-max-width: 100% - var(--ck-search-field-view-horizontal-spacing) - var(--ck-spacing-medium); +} + +.ck.ck-search > .ck-labeled-field-view.ck-search__query_with-reset .ck-search__reset { + opacity: .5; + background: none; + min-width: auto; + min-height: auto; + padding: 0; +} + +[dir="ltr"] :is(.ck.ck-search > .ck-labeled-field-view.ck-search__query_with-reset .ck-search__reset) { + right: var(--ck-spacing-medium); +} + +[dir="rtl"] :is(.ck.ck-search > .ck-labeled-field-view.ck-search__query_with-reset .ck-search__reset) { + left: var(--ck-spacing-medium); +} + +.ck.ck-search > .ck-labeled-field-view.ck-search__query_with-reset .ck-search__reset:hover { + opacity: 1; +} + +.ck.ck-search > .ck-labeled-field-view.ck-search__query_with-reset .ck-input { + width: 100%; +} + +[dir="ltr"] :is(.ck.ck-search > .ck-labeled-field-view.ck-search__query_with-reset .ck-input):not(.ck-input-text_empty) { + padding-right: var(--ck-search-field-view-horizontal-spacing); +} + +[dir="rtl"] :is(.ck.ck-search > .ck-labeled-field-view.ck-search__query_with-reset .ck-input) { + padding-right: var(--ck-search-field-view-horizontal-spacing); +} + +.ck.ck-search > .ck-search__results { + min-width: 100%; +} + +.ck.ck-search > .ck-search__results > .ck-search__info { + width: 100%; + padding: var(--ck-spacing-medium) var(--ck-spacing-large); +} + +.ck.ck-search > .ck-search__results > .ck-search__info * { + white-space: normal; +} + +.ck.ck-search > .ck-search__results > .ck-search__info > span:first-child { + font-weight: bold; + display: block; +} + +.ck.ck-search > .ck-search__results > .ck-search__info > span:last-child { + margin-top: var(--ck-spacing-medium); +} + +.ck.ck-search > .ck-search__results > .ck-search__info:not(.ck-hidden) ~ * { + display: none; +} + +.ck.ck-highlighted-text mark { + background: var(--ck-color-highlight-background); + vertical-align: initial; + font-weight: inherit; + line-height: inherit; + font-size: inherit; +} + +.ck.ck-balloon-panel.ck-tooltip { + --ck-balloon-border-width: 0px; + --ck-balloon-arrow-offset: 0px; + --ck-balloon-arrow-half-width: 4px; + --ck-balloon-arrow-height: 4px; + --ck-tooltip-text-padding: 4px; + --ck-color-panel-background: var(--ck-color-tooltip-background); + padding: 0 var(--ck-spacing-medium); + box-shadow: none; + -webkit-user-select: none; + user-select: none; +} + +.ck.ck-balloon-panel.ck-tooltip .ck-tooltip__text { + color: var(--ck-color-tooltip-text); + font-size: .9em; + line-height: 1.5; +} + +.ck.ck-balloon-panel.ck-tooltip.ck-tooltip_multi-line .ck-tooltip__text { + white-space: break-spaces; + padding: var(--ck-tooltip-text-padding) 0; + max-width: 200px; + display: inline-block; +} + +.ck.ck-balloon-panel.ck-tooltip:before { + display: none; +} + +.ck.ck-balloon-panel.ck-tooltip { + z-index: calc(var(--ck-z-dialog) + 100); +} + +:root { + --ck-toolbar-spinner-size: 18px; +} + +.ck.ck-spinner-container { + width: var(--ck-toolbar-spinner-size); + height: var(--ck-toolbar-spinner-size); + animation: 1.5s linear infinite ck-spinner-rotate; + display: block; +} + +@media (prefers-reduced-motion: reduce) { + .ck.ck-spinner-container { + animation-duration: 3s; + } +} + +.ck.ck-spinner-container { + position: relative; +} + +.ck.ck-spinner { + width: var(--ck-toolbar-spinner-size); + height: var(--ck-toolbar-spinner-size); + border: 2px solid var(--ck-color-text); + z-index: 1; + border-top-color: #0000; + border-radius: 50%; + margin: 0 auto; + position: absolute; + top: 50%; + left: 0; + right: 0; + transform: translateY(-50%); +} + +@keyframes ck-spinner-rotate { + to { + transform: rotate(360deg); + } +} + +.ck.ck-toolbar { + border-radius: var(--ck-rounded-corners-radius); + background: var(--ck-color-toolbar-background); + padding: 0 var(--ck-spacing-small); + border: 1px solid var(--ck-color-toolbar-border); + -webkit-user-select: none; + user-select: none; + flex-flow: row; + align-items: center; + display: flex; +} + +.ck.ck-toolbar .ck.ck-toolbar__separator { + height: var(--ck-icon-size); + background: var(--ck-color-toolbar-border); + width: 1px; + min-width: 1px; + margin-top: var(--ck-spacing-small); + margin-bottom: var(--ck-spacing-small); + display: inline-block; +} + +.ck.ck-toolbar .ck.ck-toolbar__separator:first-child, .ck.ck-toolbar .ck.ck-toolbar__separator:last-child { + display: none; +} + +.ck.ck-toolbar .ck-toolbar__line-break { + flex-basis: 100%; + height: 0; +} + +.ck.ck-toolbar > .ck-toolbar__items > :not(.ck-toolbar__line-break) { + margin-right: var(--ck-spacing-small); +} + +.ck.ck-toolbar > .ck-toolbar__items:empty + .ck.ck-toolbar__separator { + display: none; +} + +.ck.ck-toolbar > .ck-toolbar__items { + flex-flow: wrap; + flex-grow: 1; + align-items: center; + display: flex; +} + +.ck.ck-toolbar > .ck-toolbar__items > :not(.ck-toolbar__line-break), .ck.ck-toolbar > .ck.ck-toolbar__grouped-dropdown { + margin-top: var(--ck-spacing-small); + margin-bottom: var(--ck-spacing-small); +} + +.ck.ck-toolbar.ck-toolbar_vertical { + padding: 0; +} + +.ck.ck-toolbar.ck-toolbar_vertical > .ck-toolbar__items > .ck { + border-radius: 0; + width: 100%; + margin: 0; +} + +.ck.ck-toolbar.ck-toolbar_compact { + padding: 0; +} + +.ck.ck-toolbar.ck-toolbar_compact > .ck-toolbar__items > * { + margin: 0; +} + +.ck.ck-toolbar.ck-toolbar_compact > .ck-toolbar__items > *:not(:first-child):not(:last-child) { + border-radius: 0; +} + +.ck.ck-toolbar > .ck.ck-toolbar__grouped-dropdown > .ck.ck-button.ck-dropdown__button { + padding-left: var(--ck-spacing-tiny); +} + +.ck.ck-toolbar > .ck.ck-toolbar__grouped-dropdown > .ck-dropdown__button .ck-dropdown__arrow { + display: none; +} + +.ck.ck-toolbar .ck-toolbar__nested-toolbar-dropdown > .ck-dropdown__panel { + min-width: auto; +} + +.ck.ck-toolbar .ck-toolbar__nested-toolbar-dropdown > .ck-button > .ck-button__label { + width: auto; + max-width: 7em; +} + +.ck.ck-toolbar:focus { + outline: none; +} + +.ck-toolbar-container .ck.ck-toolbar { + border: 0; +} + +.ck.ck-toolbar.ck-toolbar_grouping > .ck-toolbar__items { + flex-wrap: nowrap; +} + +.ck.ck-toolbar.ck-toolbar_vertical > .ck-toolbar__items { + flex-direction: column; +} + +.ck.ck-toolbar.ck-toolbar_floating > .ck-toolbar__items { + flex-wrap: nowrap; +} + +:is([dir="rtl"] .ck.ck-toolbar, .ck.ck-toolbar[dir="rtl"]) > .ck-toolbar__items > .ck { + margin-right: 0; +} + +:is([dir="rtl"] .ck.ck-toolbar, .ck.ck-toolbar[dir="rtl"]):not(.ck-toolbar_compact) > .ck-toolbar__items > .ck { + margin-left: var(--ck-spacing-small); +} + +:is([dir="rtl"] .ck.ck-toolbar, .ck.ck-toolbar[dir="rtl"]) > .ck-toolbar__items > .ck:last-child { + margin-left: 0; +} + +:is([dir="rtl"] .ck.ck-toolbar, .ck.ck-toolbar[dir="rtl"]).ck-toolbar_compact > .ck-toolbar__items > .ck:first-child { + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} + +:is([dir="rtl"] .ck.ck-toolbar, .ck.ck-toolbar[dir="rtl"]).ck-toolbar_compact > .ck-toolbar__items > .ck:last-child { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} + +:is([dir="rtl"] .ck.ck-toolbar, .ck.ck-toolbar[dir="rtl"]) > .ck.ck-toolbar__separator, :is([dir="rtl"] .ck.ck-toolbar, .ck.ck-toolbar[dir="rtl"]).ck-toolbar_grouping > .ck-toolbar__items:not(:empty):not(:only-child) { + margin-left: var(--ck-spacing-small); +} + +:is([dir="ltr"] .ck.ck-toolbar, .ck.ck-toolbar[dir="ltr"]) > .ck-toolbar__items > .ck:last-child { + margin-right: 0; +} + +:is([dir="ltr"] .ck.ck-toolbar, .ck.ck-toolbar[dir="ltr"]).ck-toolbar_compact > .ck-toolbar__items > .ck:first-child { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} + +:is([dir="ltr"] .ck.ck-toolbar, .ck.ck-toolbar[dir="ltr"]).ck-toolbar_compact > .ck-toolbar__items > .ck:last-child { + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} + +:is([dir="ltr"] .ck.ck-toolbar, .ck.ck-toolbar[dir="ltr"]) > .ck.ck-toolbar__separator, :is([dir="ltr"] .ck.ck-toolbar, .ck.ck-toolbar[dir="ltr"]).ck-toolbar_grouping > .ck-toolbar__items:not(:empty):not(:only-child) { + margin-right: var(--ck-spacing-small); +} + +:root { + --ck-color-block-toolbar-button: var(--ck-color-text); + --ck-block-toolbar-button-size: var(--ck-font-size-normal); +} + +.ck.ck-block-toolbar-button { + color: var(--ck-color-block-toolbar-button); + font-size: var(--ck-block-toolbar-size); + z-index: var(--ck-z-default); + position: absolute; +} + +.ck.ck-menu-bar { + background: var(--ck-color-base-background); + padding: var(--ck-spacing-small); + justify-content: flex-start; + gap: var(--ck-spacing-small); + border: 1px solid var(--ck-color-toolbar-border); + flex-wrap: wrap; + width: 100%; + display: flex; +} + +.ck.ck-menu-bar__menu > .ck-menu-bar__menu__button { + width: 100%; +} + +.ck.ck-menu-bar__menu > .ck-menu-bar__menu__button > .ck-button__label { + text-overflow: ellipsis; + flex-grow: 1; + overflow: hidden; +} + +.ck.ck-menu-bar__menu > .ck-menu-bar__menu__button.ck-disabled > .ck-button__label { + opacity: var(--ck-disabled-opacity); +} + +[dir="ltr"] :is(.ck.ck-menu-bar__menu > .ck-menu-bar__menu__button):not(.ck-button_with-text) { + padding-left: var(--ck-spacing-small); +} + +[dir="rtl"] :is(.ck.ck-menu-bar__menu > .ck-menu-bar__menu__button):not(.ck-button_with-text) { + padding-right: var(--ck-spacing-small); +} + +.ck.ck-menu-bar__menu.ck-menu-bar__menu_top-level > .ck-menu-bar__menu__button { + padding: var(--ck-spacing-small) var(--ck-spacing-medium); + min-height: unset; +} + +.ck.ck-menu-bar__menu.ck-menu-bar__menu_top-level > .ck-menu-bar__menu__button .ck-button__label { + width: unset; + line-height: unset; + overflow: visible; +} + +.ck.ck-menu-bar__menu.ck-menu-bar__menu_top-level > .ck-menu-bar__menu__button.ck-on { + border-bottom-right-radius: 0; + border-bottom-left-radius: 0; +} + +.ck.ck-menu-bar__menu.ck-menu-bar__menu_top-level > .ck-menu-bar__menu__button .ck-icon { + display: none; +} + +.ck.ck-menu-bar__menu > .ck-menu-bar__menu__button > .ck-menu-bar__menu__button__arrow { + pointer-events: none; + z-index: var(--ck-z-default); +} + +.ck.ck-menu-bar__menu:not(.ck-menu-bar__menu_top-level) .ck-menu-bar__menu__button { + border-radius: 0; +} + +.ck.ck-menu-bar__menu:not(.ck-menu-bar__menu_top-level) .ck-menu-bar__menu__button > .ck-menu-bar__menu__button__arrow { + width: var(--ck-dropdown-arrow-size); +} + +[dir="ltr"] :is(.ck.ck-menu-bar__menu:not(.ck-menu-bar__menu_top-level) .ck-menu-bar__menu__button > .ck-menu-bar__menu__button__arrow) { + margin-left: var(--ck-spacing-standard); + margin-right: calc(-1 * var(--ck-spacing-small)); + transform: rotate(-90deg); +} + +[dir="rtl"] :is(.ck.ck-menu-bar__menu:not(.ck-menu-bar__menu_top-level) .ck-menu-bar__menu__button > .ck-menu-bar__menu__button__arrow) { + left: var(--ck-spacing-standard); + margin-right: var(--ck-spacing-small); + margin-left: calc(-1 * var(--ck-spacing-small)); + transform: rotate(90deg); +} + +.ck.ck-menu-bar__menu:not(.ck-menu-bar__menu_top-level) .ck-menu-bar__menu__button.ck-disabled > .ck-menu-bar__menu__button__arrow { + opacity: var(--ck-disabled-opacity); +} + +:root { + --ck-menu-bar-menu-max-width: 75vw; + --ck-menu-bar-nested-menu-horizontal-offset: 5px; +} + +.ck.ck-menu-bar__menu > .ck.ck-menu-bar__menu__panel { + border-radius: var(--ck-rounded-corners-radius); + box-shadow: var(--ck-drop-shadow), 0 0; + background: var(--ck-color-dropdown-panel-background); + border: 1px solid var(--ck-color-dropdown-panel-border); + height: fit-content; + z-index: var(--ck-z-panel); + max-width: var(--ck-menu-bar-menu-max-width); + position: absolute; + bottom: 0; +} + +.ck.ck-menu-bar__menu > .ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_es, .ck.ck-menu-bar__menu > .ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_se { + border-top-left-radius: 0; +} + +.ck.ck-menu-bar__menu > .ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_ws, .ck.ck-menu-bar__menu > .ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_sw { + border-top-right-radius: 0; +} + +.ck.ck-menu-bar__menu > .ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_en, .ck.ck-menu-bar__menu > .ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_ne { + border-bottom-left-radius: 0; +} + +.ck.ck-menu-bar__menu > .ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_wn, .ck.ck-menu-bar__menu > .ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_nw { + border-bottom-right-radius: 0; +} + +.ck.ck-menu-bar__menu > .ck.ck-menu-bar__menu__panel:focus { + outline: none; +} + +.ck.ck-menu-bar__menu > .ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_ne, .ck.ck-menu-bar__menu > .ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_nw { + bottom: 100%; +} + +.ck.ck-menu-bar__menu > .ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_se, .ck.ck-menu-bar__menu > .ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_sw { + top: 100%; + bottom: auto; +} + +.ck.ck-menu-bar__menu > .ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_ne, .ck.ck-menu-bar__menu > .ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_se { + left: 0; +} + +.ck.ck-menu-bar__menu > .ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_nw, .ck.ck-menu-bar__menu > .ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_sw { + right: 0; +} + +.ck.ck-menu-bar__menu > .ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_es, .ck.ck-menu-bar__menu > .ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_en { + left: calc(100% - var(--ck-menu-bar-nested-menu-horizontal-offset)); +} + +.ck.ck-menu-bar__menu > .ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_es { + top: 0; +} + +.ck.ck-menu-bar__menu > .ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_en { + bottom: 0; +} + +.ck.ck-menu-bar__menu > .ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_ws, .ck.ck-menu-bar__menu > .ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_wn { + right: calc(100% - var(--ck-menu-bar-nested-menu-horizontal-offset)); +} + +.ck.ck-menu-bar__menu > .ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_ws { + top: 0; +} + +.ck.ck-menu-bar__menu > .ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_wn { + bottom: 0; +} + +.ck.ck-menu-bar .ck-list-item-button:focus, .ck.ck-menu-bar .ck-list-item-button:active { + box-shadow: none; + border-color: #0000; +} + +.ck.ck-menu-bar.ck-menu-bar_focus-border-enabled .ck-list-item-button:focus, .ck.ck-menu-bar.ck-menu-bar_focus-border-enabled .ck-list-item-button:active { + z-index: 2; + border: var(--ck-focus-ring); + box-shadow: var(--ck-focus-outer-shadow), 0 0; + outline: none; + position: relative; +} + +.ck.ck-menu-bar__menu { + font-size: inherit; + display: block; +} + +.ck.ck-menu-bar__menu.ck-menu-bar__menu_top-level { + max-width: 100%; +} + +.ck.ck-menu-bar__menu { + position: relative; +} + +:root { + --ck-menu-bar-menu-item-min-width: 18em; +} + +.ck.ck-menu-bar__menu .ck.ck-menu-bar__menu__item { + min-width: var(--ck-menu-bar-menu-item-min-width); +} + +.ck.ck-menu-bar__menu .ck-button.ck-menu-bar__menu__item__button { + border-radius: 0; +} + +.ck.ck-menu-bar__menu .ck-button.ck-menu-bar__menu__item__button > .ck-spinner-container, .ck.ck-menu-bar__menu .ck-button.ck-menu-bar__menu__item__button > .ck-spinner-container .ck-spinner { + --ck-toolbar-spinner-size: 20px; +} + +.ck.ck-menu-bar__menu .ck-button.ck-menu-bar__menu__item__button > .ck-spinner-container { + font-size: var(--ck-icon-font-size); +} + +[dir="ltr"] :is(.ck.ck-menu-bar__menu .ck-button.ck-menu-bar__menu__item__button > .ck-spinner-container) { + margin-right: var(--ck-spacing-medium); +} + +[dir="rtl"] :is(.ck.ck-menu-bar__menu .ck-button.ck-menu-bar__menu__item__button > .ck-spinner-container) { + margin-left: var(--ck-spacing-medium); +} + +/* @ckeditor/ckeditor5-utils */ +/** + * @license Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved. + * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options + */ + +/* @ckeditor/ckeditor5-engine */ +/** + * @license Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved. + * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options + */ +.ck.ck-placeholder, .ck .ck-placeholder { + position: relative; +} + +@media (forced-colors: active) { + .ck.ck-placeholder, .ck .ck-placeholder { + forced-color-adjust: preserve-parent-color; + } +} + +:is(.ck.ck-placeholder, .ck .ck-placeholder):before { + content: attr(data-placeholder); + cursor: text; + pointer-events: none; + position: absolute; + left: 0; + right: 0; +} + +@media (forced-colors: none) { + :is(.ck.ck-placeholder, .ck .ck-placeholder):before { + color: var(--ck-color-engine-placeholder-text); + } +} + +@media (forced-colors: active) { + :is(.ck.ck-placeholder, .ck .ck-placeholder):before { + margin-left: 1px; + font-style: italic; + } +} + +.ck.ck-read-only .ck-placeholder:before { + display: none; +} + +.ck.ck-reset_all .ck-placeholder { + position: relative; +} + +.ck.ck-editor__editable span[data-ck-unsafe-element] { + display: none; +} + +/* @ckeditor/ckeditor5-watchdog */ +/** + * @license Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved. + * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options + */ + +/* @ckeditor/ckeditor5-core */ +/** + * @license Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved. + * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options + */ +:root { + --ck-content-font-family: Helvetica, Arial, Tahoma, Verdana, Sans-Serif; + --ck-content-font-size: medium; + --ck-content-font-color: #000; + --ck-content-line-height: 1.5; + --ck-content-word-break: normal; + --ck-content-overflow-wrap: break-word; +} + +.ck-content { + font-family: var(--ck-content-font-family); + font-size: var(--ck-content-font-size); + color: var(--ck-content-font-color); + line-height: var(--ck-content-line-height); + word-break: var(--ck-content-word-break); + overflow-wrap: var(--ck-content-overflow-wrap); +} + +/* @ckeditor/ckeditor5-upload */ +/** + * @license Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved. + * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options + */ + +/* @ckeditor/ckeditor5-adapter-ckfinder */ +/** + * @license Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved. + * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options + */ + +/* @ckeditor/ckeditor5-enter */ +/** + * @license Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved. + * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options + */ + +/* @ckeditor/ckeditor5-paragraph */ +/** + * @license Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved. + * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options + */ + +/* @ckeditor/ckeditor5-heading */ +/** + * @license Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved. + * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options + */ +.ck.ck-heading_heading1 .ck-button__label { + font-size: 20px; +} + +.ck.ck-heading_heading2 .ck-button__label { + font-size: 17px; +} + +.ck.ck-heading_heading3 .ck-button__label { + font-size: 14px; +} + +.ck[class*="ck-heading_heading"] { + font-weight: bold; +} + +.ck.ck-dropdown.ck-heading-dropdown .ck-dropdown__button .ck-button__label { + width: 8em; +} + +.ck.ck-dropdown.ck-heading-dropdown .ck-dropdown__panel .ck-list__item { + min-width: 18em; +} + +/* @ckeditor/ckeditor5-typing */ +/** + * @license Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved. + * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options + */ + +/* @ckeditor/ckeditor5-autoformat */ +/** + * @license Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved. + * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options + */ + +/* @ckeditor/ckeditor5-autosave */ +/** + * @license Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved. + * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options + */ + +/* @ckeditor/ckeditor5-basic-styles */ +/** + * @license Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved. + * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options + */ +.ck-content code { + background-color: #c7c7c74d; + border-radius: 2px; + padding: .15em; +} + +.ck.ck-editor__editable .ck-code_selected { + background-color: #c7c7c780; +} + +/* @ckeditor/ckeditor5-block-quote */ +/** + * @license Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved. + * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options + */ +.ck-content blockquote { + border-left: 5px solid #ccc; + margin-left: 0; + margin-right: 0; + padding-left: 1.5em; + padding-right: 1.5em; + font-style: italic; + overflow: hidden; +} + +.ck-content[dir="rtl"] blockquote { + border-left: 0; + border-right: 5px solid #ccc; +} + +/* @ckeditor/ckeditor5-undo */ +/** + * @license Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved. + * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options + */ + +/* @ckeditor/ckeditor5-widget */ +/** + * @license Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved. + * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options + */ +:root { + --ck-widget-outline-thickness: 3px; + --ck-widget-handler-icon-size: 16px; + --ck-widget-handler-animation-duration: .2s; + --ck-widget-handler-animation-curve: ease; + --ck-color-widget-blurred-border: #dedede; + --ck-color-widget-hover-border: #ffc83d; + --ck-color-widget-editable-focus-background: var(--ck-color-base-background); + --ck-color-widget-drag-handler-icon-color: var(--ck-color-base-background); + --ck-color-resizer: var(--ck-color-focus-border); + --ck-color-resizer-tooltip-background: #262626; + --ck-color-resizer-tooltip-text: #f2f2f2; + --ck-resizer-border-radius: var(--ck-border-radius); + --ck-resizer-tooltip-offset: 10px; + --ck-resizer-tooltip-height: calc(var(--ck-spacing-small) * 2 + 10px); +} + +.ck .ck-widget { + outline-width: var(--ck-widget-outline-thickness); + transition: outline-color var(--ck-widget-handler-animation-duration) var(--ck-widget-handler-animation-curve); + outline-style: solid; + outline-color: #0000; +} + +@media (prefers-reduced-motion: reduce) { + .ck .ck-widget { + transition: none; + } +} + +.ck .ck-widget.ck-widget_selected, .ck .ck-widget.ck-widget_selected:hover { + outline: var(--ck-widget-outline-thickness) solid var(--ck-color-focus-border); +} + +.ck .ck-widget:hover { + outline-color: var(--ck-color-widget-hover-border); +} + +.ck .ck-widget { + position: relative; +} + +.ck .ck-editor__nested-editable { + border: 1px solid #0000; +} + +.ck .ck-editor__nested-editable.ck-editor__nested-editable_focused, .ck .ck-editor__nested-editable:focus { + box-shadow: var(--ck-inner-shadow), 0 0; +} + +@media (forced-colors: none) { + .ck .ck-editor__nested-editable.ck-editor__nested-editable_focused, .ck .ck-editor__nested-editable:focus { + background-color: var(--ck-color-widget-editable-focus-background); + } +} + +:is(.ck .ck-editor__nested-editable.ck-editor__nested-editable_focused, .ck .ck-editor__nested-editable:focus):not(td, th) { + border: var(--ck-focus-ring); + outline: none; +} + +.ck .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle { + box-sizing: border-box; + opacity: 0; + transition: background-color var(--ck-widget-handler-animation-duration) var(--ck-widget-handler-animation-curve), + visibility var(--ck-widget-handler-animation-duration) var(--ck-widget-handler-animation-curve), + opacity var(--ck-widget-handler-animation-duration) var(--ck-widget-handler-animation-curve); + border-radius: var(--ck-border-radius) var(--ck-border-radius) 0 0; + left: calc(0px - var(--ck-widget-outline-thickness)); + background-color: #0000; + padding: 4px; + top: 0; + transform: translateY(-100%); +} + +@media (prefers-reduced-motion: reduce) { + .ck .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle { + transition: none; + } +} + +.ck .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle .ck-icon { + width: var(--ck-widget-handler-icon-size); + height: var(--ck-widget-handler-icon-size); + color: var(--ck-color-widget-drag-handler-icon-color); +} + +.ck .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle .ck-icon .ck-icon__selected-indicator { + opacity: 0; + transition: opacity .3s var(--ck-widget-handler-animation-curve); +} + +@media (prefers-reduced-motion: reduce) { + .ck .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle .ck-icon .ck-icon__selected-indicator { + transition: none; + } +} + +.ck .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle .ck-icon { + display: block; +} + +.ck .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle:hover .ck-icon .ck-icon__selected-indicator { + opacity: 1; +} + +.ck .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle { + position: absolute; +} + +.ck .ck-widget.ck-widget_with-selection-handle:hover > .ck-widget__selection-handle { + opacity: 1; + background-color: var(--ck-color-widget-hover-border); + visibility: visible; +} + +:is(.ck .ck-widget.ck-widget_with-selection-handle.ck-widget_selected, .ck .ck-widget.ck-widget_with-selection-handle.ck-widget_selected:hover) > .ck-widget__selection-handle { + opacity: 1; + background-color: var(--ck-color-focus-border); + visibility: visible; +} + +:is(.ck .ck-widget.ck-widget_with-selection-handle.ck-widget_selected, .ck .ck-widget.ck-widget_with-selection-handle.ck-widget_selected:hover) > .ck-widget__selection-handle .ck-icon .ck-icon__selected-indicator { + opacity: 1; +} + +.ck .ck-widget.ck-widget_with-selection-handle { + position: relative; +} + +.ck[dir="rtl"] .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle { + left: auto; + right: calc(0px - var(--ck-widget-outline-thickness)); +} + +.ck.ck-editor__editable.ck-read-only .ck-widget { + transition: none; +} + +.ck.ck-editor__editable.ck-read-only .ck-widget:not(.ck-widget_selected) { + --ck-widget-outline-thickness: 0px; +} + +.ck.ck-editor__editable.ck-read-only .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle, .ck.ck-editor__editable.ck-read-only .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle:hover { + background: var(--ck-color-widget-blurred-border); +} + +.ck .ck-widget:has(.ck-widget.table:hover) { + outline-color: #0000; +} + +.ck .ck-widget.ck-widget_with-selection-handle:has(.ck-widget.table:hover) > .ck-widget__selection-handle { + opacity: 0; + visibility: hidden; +} + +.ck.ck-editor__editable.ck-blurred .ck-widget.ck-widget_selected, .ck.ck-editor__editable.ck-blurred .ck-widget.ck-widget_selected:hover { + outline-color: var(--ck-color-widget-blurred-border); +} + +:is(.ck.ck-editor__editable.ck-blurred .ck-widget.ck-widget_selected, .ck.ck-editor__editable.ck-blurred .ck-widget.ck-widget_selected:hover).ck-widget_with-selection-handle > .ck-widget__selection-handle, :is(.ck.ck-editor__editable.ck-blurred .ck-widget.ck-widget_selected, .ck.ck-editor__editable.ck-blurred .ck-widget.ck-widget_selected:hover).ck-widget_with-selection-handle > .ck-widget__selection-handle:hover { + background: var(--ck-color-widget-blurred-border); +} + +.ck.ck-editor__editable:not(.ck-pagination-view) > .ck-widget.ck-widget_with-selection-handle:first-child, .ck.ck-editor__editable:not(.ck-pagination-view) blockquote > .ck-widget.ck-widget_with-selection-handle:first-child { + margin-top: calc(1em + var(--ck-widget-handler-icon-size)); +} + +.ck .ck-size-view { + background: var(--ck-color-resizer-tooltip-background); + color: var(--ck-color-resizer-tooltip-text); + border: 1px solid var(--ck-color-resizer-tooltip-text); + border-radius: var(--ck-resizer-border-radius); + font-size: var(--ck-font-size-tiny); + padding: 0 var(--ck-spacing-small); + height: var(--ck-resizer-tooltip-height); + line-height: var(--ck-resizer-tooltip-height); + display: block; +} + +.ck .ck-size-view.ck-orientation-top-left, .ck .ck-size-view.ck-orientation-top-right, .ck .ck-size-view.ck-orientation-bottom-right, .ck .ck-size-view.ck-orientation-bottom-left, .ck .ck-size-view.ck-orientation-above-center { + position: absolute; +} + +.ck .ck-size-view.ck-orientation-top-left { + top: var(--ck-resizer-tooltip-offset); + left: var(--ck-resizer-tooltip-offset); +} + +.ck .ck-size-view.ck-orientation-top-right { + top: var(--ck-resizer-tooltip-offset); + right: var(--ck-resizer-tooltip-offset); +} + +.ck .ck-size-view.ck-orientation-bottom-right { + bottom: var(--ck-resizer-tooltip-offset); + right: var(--ck-resizer-tooltip-offset); +} + +.ck .ck-size-view.ck-orientation-bottom-left { + bottom: var(--ck-resizer-tooltip-offset); + left: var(--ck-resizer-tooltip-offset); +} + +.ck .ck-size-view.ck-orientation-above-center { + top: calc(var(--ck-resizer-tooltip-height) * -1); + left: 50%; + transform: translate(-50%); +} + +:root { + --ck-resizer-size: 10px; + --ck-resizer-offset: calc(( var(--ck-resizer-size) / -2 ) - 2px); + --ck-resizer-border-width: 1px; +} + +.ck .ck-widget__resizer { + outline: 1px solid var(--ck-color-resizer); + pointer-events: none; + display: none; + position: absolute; + top: 0; + left: 0; +} + +.ck .ck-widget__resizer__handle { + width: var(--ck-resizer-size); + height: var(--ck-resizer-size); + background: var(--ck-color-focus-border); + border: var(--ck-resizer-border-width) solid #fff; + border-radius: var(--ck-resizer-border-radius); + pointer-events: all; + position: absolute; +} + +.ck .ck-widget__resizer__handle.ck-widget__resizer__handle-top-left { + top: var(--ck-resizer-offset); + left: var(--ck-resizer-offset); +} + +.ck .ck-widget__resizer__handle.ck-widget__resizer__handle-top-right { + top: var(--ck-resizer-offset); + right: var(--ck-resizer-offset); +} + +.ck .ck-widget__resizer__handle.ck-widget__resizer__handle-bottom-right { + bottom: var(--ck-resizer-offset); + right: var(--ck-resizer-offset); +} + +.ck .ck-widget__resizer__handle.ck-widget__resizer__handle-bottom-left { + bottom: var(--ck-resizer-offset); + left: var(--ck-resizer-offset); +} + +.ck .ck-widget__resizer__handle.ck-widget__resizer__handle-top-left, .ck .ck-widget__resizer__handle.ck-widget__resizer__handle-bottom-right { + cursor: nwse-resize; +} + +.ck .ck-widget__resizer__handle.ck-widget__resizer__handle-top-right, .ck .ck-widget__resizer__handle.ck-widget__resizer__handle-bottom-left { + cursor: nesw-resize; +} + +.ck .ck-widget_with-resizer { + position: relative; +} + +.ck-focused .ck-widget_with-resizer.ck-widget_selected > .ck-widget__resizer { + display: block; +} + +:root { + --ck-widget-type-around-button-size: 20px; + --ck-color-widget-type-around-button-active: var(--ck-color-focus-border); + --ck-color-widget-type-around-button-hover: var(--ck-color-widget-hover-border); + --ck-color-widget-type-around-button-blurred-editable: var(--ck-color-widget-blurred-border); + --ck-color-widget-type-around-button-radar-start-alpha: 0; + --ck-color-widget-type-around-button-radar-end-alpha: .3; + --ck-color-widget-type-around-button-icon: var(--ck-color-base-background); +} + +.ck .ck-widget .ck-widget__type-around__button { + width: var(--ck-widget-type-around-button-size); + height: var(--ck-widget-type-around-button-size); + background: var(--ck-color-widget-type-around-button); + transition: opacity var(--ck-widget-handler-animation-duration) var(--ck-widget-handler-animation-curve), background var(--ck-widget-handler-animation-duration) var(--ck-widget-handler-animation-curve); + opacity: 0; + pointer-events: none; + z-index: var(--ck-z-default); + border-radius: 100px; + display: block; + position: absolute; + overflow: hidden; +} + +@media (prefers-reduced-motion: reduce) { + .ck .ck-widget .ck-widget__type-around__button { + transition: none; + } +} + +.ck .ck-widget .ck-widget__type-around__button svg { + width: 10px; + height: 8px; + margin-top: 1px; + transition: transform .5s; + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); +} + +@media (prefers-reduced-motion: reduce) { + .ck .ck-widget .ck-widget__type-around__button svg { + transition: none; + } +} + +.ck .ck-widget .ck-widget__type-around__button svg * { + stroke-dasharray: 10; + stroke-dashoffset: 0; + fill: none; + stroke: var(--ck-color-widget-type-around-button-icon); + stroke-width: 1.5px; + stroke-linecap: round; + stroke-linejoin: round; +} + +.ck .ck-widget .ck-widget__type-around__button svg line { + stroke-dasharray: 7; +} + +.ck .ck-widget .ck-widget__type-around__button svg { + z-index: calc(var(--ck-z-default) + 2); +} + +.ck .ck-widget .ck-widget__type-around__button:hover { + animation: 1s infinite ck-widget-type-around-button-sonar; +} + +.ck .ck-widget .ck-widget__type-around__button:hover svg polyline { + animation: 2s linear ck-widget-type-around-arrow-dash; +} + +.ck .ck-widget .ck-widget__type-around__button:hover svg line { + animation: 2s linear ck-widget-type-around-arrow-tip-dash; +} + +@media (prefers-reduced-motion: reduce) { + .ck .ck-widget .ck-widget__type-around__button:hover { + animation: none; + } + + .ck .ck-widget .ck-widget__type-around__button:hover svg polyline, .ck .ck-widget .ck-widget__type-around__button:hover svg line { + animation: none; + } +} + +.ck .ck-widget .ck-widget__type-around__button.ck-widget__type-around__button_before { + top: calc(-.5 * var(--ck-widget-outline-thickness)); + left: min(10%, 30px); + transform: translateY(-50%); +} + +.ck .ck-widget .ck-widget__type-around__button.ck-widget__type-around__button_after { + bottom: calc(-.5 * var(--ck-widget-outline-thickness)); + right: min(10%, 30px); + transform: translateY(50%); +} + +.ck .ck-widget:hover > .ck-widget__type-around > .ck-widget__type-around__button { + opacity: 1; + pointer-events: auto; +} + +.ck .ck-widget:not(.ck-widget_selected) > .ck-widget__type-around > .ck-widget__type-around__button { + background: var(--ck-color-widget-type-around-button-hover); +} + +.ck .ck-widget.ck-widget_selected > .ck-widget__type-around > .ck-widget__type-around__button, .ck .ck-widget > .ck-widget__type-around > .ck-widget__type-around__button:hover { + background: var(--ck-color-widget-type-around-button-active); +} + +:is(.ck .ck-widget.ck-widget_selected > .ck-widget__type-around > .ck-widget__type-around__button, .ck .ck-widget > .ck-widget__type-around > .ck-widget__type-around__button:hover):after { + width: calc(var(--ck-widget-type-around-button-size) - 2px); + height: calc(var(--ck-widget-type-around-button-size) - 2px); + content: ""; + z-index: calc(var(--ck-z-default) + 1); + background: linear-gradient(135deg, #fff0 0%, #ffffff4d 100%); + border-radius: 100px; + display: block; + position: absolute; + top: 1px; + left: 1px; +} + +.ck .ck-widget.ck-widget_selected.ck-widget_type-around_show-fake-caret_before, .ck .ck-widget.ck-widget_selected.ck-widget_type-around_show-fake-caret_after { + outline-color: #0000; +} + +.ck .ck-widget.ck-widget_selected > .ck-widget__type-around > .ck-widget__type-around__button { + opacity: 1; + pointer-events: auto; +} + +.ck .ck-widget.ck-widget_with-selection-handle > .ck-widget__type-around > .ck-widget__type-around__button_before { + margin-left: 20px; +} + +.ck .ck-widget .ck-widget__type-around__fake-caret { + pointer-events: none; + background: var(--ck-color-base-text); + outline: 1px solid #ffffff80; + height: 1px; + animation: 1s linear infinite forwards ck-widget-type-around-fake-caret-pulse; +} + +:is(.ck .ck-widget.ck-widget_type-around_show-fake-caret_before, .ck .ck-widget.ck-widget_type-around_show-fake-caret_after).ck-widget_selected:hover { + outline-color: var(--ck-color-widget-hover-border); +} + +:is(.ck .ck-widget.ck-widget_type-around_show-fake-caret_before, .ck .ck-widget.ck-widget_type-around_show-fake-caret_after) > .ck-widget__type-around > .ck-widget__type-around__button { + opacity: 0; + pointer-events: none; +} + +:is(:is(.ck .ck-widget.ck-widget_type-around_show-fake-caret_before, .ck .ck-widget.ck-widget_type-around_show-fake-caret_after).ck-widget_with-selection-handle.ck-widget_selected, :is(.ck .ck-widget.ck-widget_type-around_show-fake-caret_before, .ck .ck-widget.ck-widget_type-around_show-fake-caret_after).ck-widget_with-selection-handle.ck-widget_selected:hover) > .ck-widget__selection-handle { + opacity: 0; +} + +:is(.ck .ck-widget.ck-widget_type-around_show-fake-caret_before, .ck .ck-widget.ck-widget_type-around_show-fake-caret_after).ck-widget_selected.ck-widget_with-resizer > .ck-widget__resizer { + opacity: 0; +} + +.ck .ck-widget > .ck-widget__type-around > .ck-widget__type-around__fake-caret { + display: none; + position: absolute; + left: 0; + right: 0; +} + +.ck .ck-widget:hover > .ck-widget__type-around > .ck-widget__type-around__fake-caret { + left: calc(-1 * var(--ck-widget-outline-thickness)); + right: calc(-1 * var(--ck-widget-outline-thickness)); +} + +.ck .ck-widget.ck-widget_type-around_show-fake-caret_before > .ck-widget__type-around > .ck-widget__type-around__fake-caret { + top: calc(-1 * var(--ck-widget-outline-thickness) - 1px); + display: block; +} + +.ck .ck-widget.ck-widget_type-around_show-fake-caret_after > .ck-widget__type-around > .ck-widget__type-around__fake-caret { + bottom: calc(-1 * var(--ck-widget-outline-thickness) - 1px); + display: block; +} + +.ck[dir="rtl"] .ck-widget.ck-widget_with-selection-handle .ck-widget__type-around > .ck-widget__type-around__button_before { + margin-left: 0; + margin-right: 20px; +} + +:is(.ck-editor__nested-editable.ck-editor__editable_selected .ck-widget.ck-widget_selected, .ck-editor__nested-editable.ck-editor__editable_selected .ck-widget:hover) > .ck-widget__type-around > .ck-widget__type-around__button { + opacity: 0; + pointer-events: none; +} + +.ck .ck-widget:has(.ck-widget.table:hover) > .ck-widget__type-around > .ck-widget__type-around__button { + opacity: 0; + pointer-events: none; +} + +.ck-editor__editable.ck-blurred .ck-widget.ck-widget_selected > .ck-widget__type-around > .ck-widget__type-around__button:not(:hover) { + background: var(--ck-color-widget-type-around-button-blurred-editable); +} + +.ck-editor__editable.ck-blurred .ck-widget.ck-widget_selected > .ck-widget__type-around > .ck-widget__type-around__button:not(:hover) svg * { + stroke: #999; +} + +@keyframes ck-widget-type-around-arrow-dash { + 0% { + stroke-dashoffset: 10px; + } + + 20%, 100% { + stroke-dashoffset: 0; + } +} + +@keyframes ck-widget-type-around-arrow-tip-dash { + 0%, 20% { + stroke-dashoffset: 7px; + } + + 40%, 100% { + stroke-dashoffset: 0; + } +} + +@keyframes ck-widget-type-around-button-sonar { + 0% { + box-shadow: 0 0 0 0 hsla(var(--ck-color-focus-border-coordinates), var(--ck-color-widget-type-around-button-radar-start-alpha)); + } + + 50% { + box-shadow: 0 0 0 5px hsla(var(--ck-color-focus-border-coordinates), var(--ck-color-widget-type-around-button-radar-end-alpha)); + } + + 100% { + box-shadow: 0 0 0 5px hsla(var(--ck-color-focus-border-coordinates), var(--ck-color-widget-type-around-button-radar-start-alpha)); + } +} + +@keyframes ck-widget-type-around-fake-caret-pulse { + 0% { + opacity: 1; + } + + 49% { + opacity: 1; + } + + 50% { + opacity: 0; + } + + 99% { + opacity: 0; + } + + 100% { + opacity: 1; + } +} + +.ck.ck-editor__editable.ck-read-only .ck-widget__type-around, .ck.ck-editor__editable.ck-widget__type-around_disabled .ck-widget__type-around { + display: none; +} + +.ck.ck-editor__editable.ck-restricted-editing_mode_restricted .ck-widget__type-around { + display: none; +} + +.ck.ck-editor__editable.ck-restricted-editing_mode_restricted div.restricted-editing-exception .ck-widget__type-around { + display: initial; +} + +/* @ckeditor/ckeditor5-image */ +/** + * @license Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved. + * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options + */ +:root { + --ck-content-color-image-caption-background: #f7f7f7; + --ck-content-color-image-caption-text: #333; + --ck-color-image-caption-highlighted-background: #fd0; +} + +.ck-content .image > figcaption { + caption-side: bottom; + word-break: normal; + overflow-wrap: anywhere; + break-before: avoid; + color: var(--ck-content-color-image-caption-text); + background-color: var(--ck-content-color-image-caption-background); + outline-offset: -1px; + padding: .6em; + font-size: .75em; + display: table-caption; +} + +@media (forced-colors: active) { + .ck-content .image > figcaption { + background-color: unset; + color: unset; + } +} + +@media (forced-colors: none) { + .ck.ck-editor__editable .image > figcaption.image__caption_highlighted { + animation: .6s ease-out ck-image-caption-highlight; + } +} + +@media (prefers-reduced-motion: reduce) { + .ck.ck-editor__editable .image > figcaption.image__caption_highlighted { + animation: none; + } +} + +@keyframes ck-image-caption-highlight { + 0% { + background-color: var(--ck-color-image-caption-highlighted-background); + } + + 100% { + background-color: var(--ck-content-color-image-caption-background); + } +} + +.ck-content img.image_resized { + height: auto; +} + +.ck-content .image.image_resized { + box-sizing: border-box; + max-width: 100%; + display: block; +} + +.ck-content .image.image_resized img { + width: 100%; +} + +.ck-content .image.image_resized > figcaption { + display: block; +} + +:is(.ck.ck-editor__editable td, .ck.ck-editor__editable th) .image-inline.image_resized img { + max-width: 100%; +} + +[dir="ltr"] .ck.ck-button.ck-button_with-text.ck-resize-image-button .ck-button__icon { + margin-right: var(--ck-spacing-standard); +} + +[dir="rtl"] .ck.ck-button.ck-button_with-text.ck-resize-image-button .ck-button__icon { + margin-left: var(--ck-spacing-standard); +} + +.ck.ck-dropdown .ck-button.ck-resize-image-button .ck-button__label { + width: 4em; +} + +:root { + --ck-content-image-style-spacing: 1.5em; + --ck-content-inline-image-style-spacing: calc(var(--ck-content-image-style-spacing) / 2); +} + +.ck-content .image.image-style-block-align-left, .ck-content .image.image-style-block-align-right { + max-width: calc(100% - var(--ck-content-image-style-spacing)); +} + +.ck-content .image.image-style-align-left, .ck-content .image.image-style-align-right { + clear: none; +} + +.ck-content .image.image-style-side { + float: right; + margin-left: var(--ck-content-image-style-spacing); + max-width: 50%; +} + +.ck-content .image.image-style-align-left { + float: left; + margin-right: var(--ck-content-image-style-spacing); +} + +.ck-content .image.image-style-align-right { + float: right; + margin-left: var(--ck-content-image-style-spacing); +} + +.ck-content .image.image-style-block-align-right { + margin-left: auto; + margin-right: 0; +} + +.ck-content .image.image-style-block-align-left { + margin-left: 0; + margin-right: auto; +} + +.ck-content .image-style-align-center { + margin-left: auto; + margin-right: auto; +} + +.ck-content .image-style-align-left { + float: left; + margin-right: var(--ck-content-image-style-spacing); +} + +.ck-content .image-style-align-right { + float: right; + margin-left: var(--ck-content-image-style-spacing); +} + +.ck-content p + .image.image-style-align-left, .ck-content p + .image.image-style-align-right, .ck-content p + .image.image-style-side { + margin-top: 0; +} + +.ck-content .image-inline.image-style-align-left, .ck-content .image-inline.image-style-align-right { + margin-top: var(--ck-content-inline-image-style-spacing); + margin-bottom: var(--ck-content-inline-image-style-spacing); +} + +.ck-content .image-inline.image-style-align-left { + margin-right: var(--ck-content-inline-image-style-spacing); +} + +.ck-content .image-inline.image-style-align-right { + margin-left: var(--ck-content-inline-image-style-spacing); +} + +:is(.ck.ck-splitbutton.ck-splitbutton_flatten:hover, .ck.ck-splitbutton.ck-splitbutton_flatten.ck-splitbutton_open) > .ck-splitbutton__action:not(.ck-disabled), :is(.ck.ck-splitbutton.ck-splitbutton_flatten:hover, .ck.ck-splitbutton.ck-splitbutton_flatten.ck-splitbutton_open) > .ck-splitbutton__arrow:not(.ck-disabled), :is(.ck.ck-splitbutton.ck-splitbutton_flatten:hover, .ck.ck-splitbutton.ck-splitbutton_flatten.ck-splitbutton_open) > .ck-splitbutton__arrow:not(.ck-disabled):not(:hover) { + background-color: var(--ck-color-button-on-background); +} + +:is(:is(.ck.ck-splitbutton.ck-splitbutton_flatten:hover, .ck.ck-splitbutton.ck-splitbutton_flatten.ck-splitbutton_open) > .ck-splitbutton__action:not(.ck-disabled), :is(.ck.ck-splitbutton.ck-splitbutton_flatten:hover, .ck.ck-splitbutton.ck-splitbutton_flatten.ck-splitbutton_open) > .ck-splitbutton__arrow:not(.ck-disabled), :is(.ck.ck-splitbutton.ck-splitbutton_flatten:hover, .ck.ck-splitbutton.ck-splitbutton_flatten.ck-splitbutton_open) > .ck-splitbutton__arrow:not(.ck-disabled):not(:hover)):after { + display: none; +} + +.ck.ck-splitbutton.ck-splitbutton_flatten.ck-splitbutton_open:hover > .ck-splitbutton__action:not(.ck-disabled), .ck.ck-splitbutton.ck-splitbutton_flatten.ck-splitbutton_open:hover > .ck-splitbutton__arrow:not(.ck-disabled), .ck.ck-splitbutton.ck-splitbutton_flatten.ck-splitbutton_open:hover > .ck-splitbutton__arrow:not(.ck-disabled):not(:hover) { + background-color: var(--ck-color-button-on-hover-background); +} + +:is(.ck.ck-editor__editable .image, .ck.ck-editor__editable .image-inline).ck-appear { + animation: .7s fadeIn; +} + +@media (prefers-reduced-motion: reduce) { + :is(.ck.ck-editor__editable .image, .ck.ck-editor__editable .image-inline).ck-appear { + opacity: 1; + animation: none; + } +} + +.ck.ck-editor__editable .image, .ck.ck-editor__editable .image-inline { + position: relative; +} + +.ck.ck-editor__editable .image .ck-progress-bar, .ck.ck-editor__editable .image-inline .ck-progress-bar { + background: var(--ck-color-upload-bar-background); + width: 0; + height: 2px; + transition: width .1s; + position: absolute; + top: 0; + left: 0; +} + +@keyframes fadeIn { + from { + opacity: 0; + } + + to { + opacity: 1; + } +} + +:root { + --ck-color-image-upload-icon: #fff; + --ck-color-image-upload-icon-background: #008a00; + --ck-image-upload-icon-size: 20; + --ck-image-upload-icon-width: 2px; + --ck-image-upload-icon-is-visible: clamp(0px, 100% - 50px, 1px); +} + +.ck-image-upload-complete-icon { + opacity: 0; + background: var(--ck-color-image-upload-icon-background); + font-size: calc(1px * var(--ck-image-upload-icon-size)); + width: calc(var(--ck-image-upload-icon-is-visible) * var(--ck-image-upload-icon-size)); + height: calc(var(--ck-image-upload-icon-is-visible) * var(--ck-image-upload-icon-size)); + top: min(var(--ck-spacing-medium), 6%); + right: min(var(--ck-spacing-medium), 6%); + border-radius: 50%; + animation-name: ck-upload-complete-icon-show, ck-upload-complete-icon-hide; + animation-duration: .5s, .5s; + animation-delay: 0s, 3s; + animation-fill-mode: forwards, forwards; + display: block; + position: absolute; + overflow: hidden; +} + +.ck-image-upload-complete-icon:after { + opacity: 0; + transform-origin: 0 0; + border-top: var(--ck-image-upload-icon-width) solid var(--ck-color-image-upload-icon); + border-right: var(--ck-image-upload-icon-width) solid var(--ck-color-image-upload-icon); + box-sizing: border-box; + content: ""; + width: 0; + height: 0; + animation-name: ck-upload-complete-icon-check; + animation-duration: .5s; + animation-delay: .5s; + animation-fill-mode: forwards; + position: absolute; + top: 50%; + left: 25%; + transform: scaleX(-1) rotate(135deg); +} + +@media (prefers-reduced-motion: reduce) { + .ck-image-upload-complete-icon { + animation-duration: 0s; + } + + .ck-image-upload-complete-icon:after { + opacity: 1; + width: .3em; + height: .45em; + animation: none; + } +} + +.ck-image-upload-complete-icon { + z-index: 1; +} + +@keyframes ck-upload-complete-icon-show { + from { + opacity: 0; + } + + to { + opacity: 1; + } +} + +@keyframes ck-upload-complete-icon-hide { + from { + opacity: 1; + } + + to { + opacity: 0; + } +} + +@keyframes ck-upload-complete-icon-check { + 0% { + opacity: 1; + width: 0; + height: 0; + } + + 33% { + width: .3em; + height: 0; + } + + 100% { + opacity: 1; + width: .3em; + height: .45em; + } +} + +:root { + --ck-color-upload-placeholder-loader: #b3b3b3; + --ck-upload-placeholder-loader-size: 32px; + --ck-upload-placeholder-image-aspect-ratio: 2.8; +} + +.ck .ck-image-upload-placeholder { + width: 100%; + margin: 0; +} + +.ck .ck-image-upload-placeholder.image-inline { + width: calc(2 * var(--ck-upload-placeholder-loader-size) * var(--ck-upload-placeholder-image-aspect-ratio)); +} + +.ck .ck-image-upload-placeholder img { + aspect-ratio: var(--ck-upload-placeholder-image-aspect-ratio); +} + +.ck .ck-upload-placeholder-loader { + justify-content: center; + align-items: center; + width: 100%; + height: 100%; + display: flex; + position: absolute; + top: 0; +} + +.ck .ck-upload-placeholder-loader:before { + width: var(--ck-upload-placeholder-loader-size); + height: var(--ck-upload-placeholder-loader-size); + border-top: 3px solid var(--ck-color-upload-placeholder-loader); + content: ""; + border-right: 2px solid #0000; + border-radius: 50%; + animation: 1s linear infinite ck-upload-placeholder-loader; + position: relative; +} + +.ck .ck-upload-placeholder-loader { + left: 0; +} + +@keyframes ck-upload-placeholder-loader { + to { + transform: rotate(360deg); + } +} + +.ck-content .image { + clear: both; + text-align: center; + min-width: 50px; + margin: .9em auto; + display: table; +} + +.ck-content .image img { + min-width: 100%; + max-width: 100%; + height: auto; + margin: 0 auto; + display: block; +} + +.ck-content .image-inline { + align-items: flex-start; + max-width: 100%; + display: inline-flex; +} + +.ck-content .image-inline picture { + display: flex; +} + +.ck-content .image-inline picture, .ck-content .image-inline img { + flex-grow: 1; + flex-shrink: 1; + max-width: 100%; +} + +.ck.ck-editor__editable .image > figcaption.ck-placeholder:before { + padding-left: inherit; + padding-right: inherit; + white-space: nowrap; + text-overflow: ellipsis; + overflow: hidden; +} + +.ck.ck-editor__editable .image { + z-index: 1; +} + +.ck.ck-editor__editable .image.ck-widget_selected { + z-index: 2; +} + +.ck.ck-editor__editable .image-inline { + z-index: 1; +} + +.ck.ck-editor__editable .image-inline.ck-widget_selected { + z-index: 2; +} + +.ck.ck-editor__editable .image-inline.ck-widget_selected ::selection { + display: none; +} + +.ck.ck-editor__editable .image-inline img { + height: auto; +} + +:is(.ck.ck-editor__editable td, .ck.ck-editor__editable th) .image-inline img { + max-width: none; +} + +.ck.ck-editor__editable img.image_placeholder { + background-size: 100% 100%; +} + +:root { + --ck-image-insert-insert-by-url-width: 250px; +} + +.ck.ck-image-insert-url { + --ck-input-width: 100%; + width: 400px; +} + +.ck.ck-image-insert-url .ck-image-insert-url__action-row { + grid-column-gap: var(--ck-spacing-large); + margin-top: var(--ck-spacing-large); + display: grid; +} + +.ck.ck-image-insert-url .ck-image-insert-url__action-row .ck-button-save, .ck.ck-image-insert-url .ck-image-insert-url__action-row .ck-button-cancel { + justify-content: center; + min-width: auto; +} + +.ck.ck-image-insert-url .ck-image-insert-url__action-row .ck-button .ck-button__label { + color: var(--ck-color-text); +} + +.ck.ck-image-insert-url .ck-image-insert-url__action-row { + grid-template-columns: repeat(2, 1fr); +} + +.ck.ck-image-insert-url { + padding: var(--ck-spacing-large) var(--ck-spacing-large) 0; +} + +.ck.ck-image-insert-form > .ck.ck-button { + width: 100%; + display: block; +} + +[dir="ltr"] :is(.ck.ck-image-insert-form > .ck.ck-button) { + text-align: left; +} + +[dir="rtl"] :is(.ck.ck-image-insert-form > .ck.ck-button) { + text-align: right; +} + +.ck.ck-image-insert-form > .ck.ck-collapsible:not(:first-child) { + border-top: 1px solid var(--ck-color-base-border); +} + +.ck.ck-image-insert-form > .ck.ck-collapsible:not(:last-child) { + border-bottom: 1px solid var(--ck-color-base-border); +} + +.ck.ck-image-insert-form > .ck.ck-collapsible { + min-width: var(--ck-image-insert-insert-by-url-width); +} + +.ck.ck-image-insert-form > .ck.ck-image-insert-url { + min-width: var(--ck-image-insert-insert-by-url-width); + padding: var(--ck-spacing-large); +} + +.ck.ck-image-insert-form:focus { + outline: none; +} + +:root { + --ck-image-custom-resize-form-width: 340px; +} + +@media screen and (width <= 600px) { + :root { + --ck-image-custom-resize-form-width: 300px; + } +} + +.ck.ck-image-custom-resize-form.ck-responsive-form { + width: var(--ck-image-custom-resize-form-width); +} + +:root { + --ck-text-alternative-form-width: 340px; +} + +@media screen and (width <= 600px) { + :root { + --ck-text-alternative-form-width: 300px; + } +} + +.ck.ck-text-alternative-form.ck-responsive-form { + width: var(--ck-text-alternative-form-width); +} + +/* @ckeditor/ckeditor5-link */ +/** + * @license Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved. + * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options + */ +.ck .ck-link_selected { + background: var(--ck-color-link-selected-background); +} + +.ck .ck-link_selected span.image-inline { + outline: var(--ck-widget-outline-thickness) solid var(--ck-color-link-selected-background); +} + +.ck .ck-fake-link-selection { + background: var(--ck-color-link-fake-selection); +} + +.ck .ck-fake-link-selection_collapsed { + border-right: 1px solid var(--ck-color-base-text); + outline: 1px solid #ffffff80; + height: 100%; + margin-right: -1px; +} + +:root { + --ck-link-bookmark-icon-size: calc(var(--ck-icon-size) * .7); +} + +.ck.ck-toolbar.ck-link-toolbar > .ck-toolbar__items { + flex-wrap: nowrap; +} + +a.ck.ck-button.ck-link-toolbar__preview { + padding: 0 var(--ck-spacing-medium); + color: var(--ck-color-link-default); + cursor: pointer; + justify-content: center; +} + +a.ck.ck-button.ck-link-toolbar__preview .ck.ck-button__label { + text-overflow: ellipsis; + max-width: var(--ck-input-width); +} + +a.ck.ck-button.ck-link-toolbar__preview, a.ck.ck-button.ck-link-toolbar__preview:hover, a.ck.ck-button.ck-link-toolbar__preview:focus, a.ck.ck-button.ck-link-toolbar__preview:active { + background: none; +} + +a.ck.ck-button.ck-link-toolbar__preview:active { + box-shadow: none; +} + +a.ck.ck-button.ck-link-toolbar__preview:hover, a.ck.ck-button.ck-link-toolbar__preview:focus { + text-decoration: underline; +} + +a.ck.ck-button.ck-link-toolbar__preview.ck-button_with-text .ck.ck-icon.ck-button__icon { + width: var(--ck-link-bookmark-icon-size); + height: var(--ck-link-bookmark-icon-size); +} + +[dir="ltr"] :is(a.ck.ck-button.ck-link-toolbar__preview.ck-button_with-text .ck.ck-icon.ck-button__icon) { + margin-right: var(--ck-spacing-tiny); + margin-left: var(--ck-spacing-small); +} + +[dir="rtl"] :is(a.ck.ck-button.ck-link-toolbar__preview.ck-button_with-text .ck.ck-icon.ck-button__icon) { + margin-left: var(--ck-spacing-tiny); + margin-right: var(--ck-spacing-small); +} + +a.ck.ck-button.ck-link-toolbar__preview:has(.ck-icon) { + padding-left: var(--ck-spacing-extra-tiny); +} + +.ck.ck-link-toolbar__preview { + display: inline-block; +} + +.ck.ck-link-toolbar__preview .ck-button__label { + overflow: hidden; +} + +:root { + --ck-link-image-indicator-icon-size: 20; + --ck-link-image-indicator-icon-is-visible: clamp(0px, 100% - 50px, 1px); +} + +:is(.ck.ck-editor__editable figure.image > a, .ck.ck-editor__editable a span.image-inline):after { + content: ""; + top: min(var(--ck-spacing-medium), 6%); + right: min(var(--ck-spacing-medium), 6%); + width: calc(var(--ck-link-image-indicator-icon-is-visible) * var(--ck-link-image-indicator-icon-size)); + height: calc(var(--ck-link-image-indicator-icon-is-visible) * var(--ck-link-image-indicator-icon-size)); + background-color: #0006; + background-image: url("data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMjAgMjAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZmlsbD0iI2ZmZiIgZD0ibTExLjA3NyAxNSAuOTkxLTEuNDE2YS43NS43NSAwIDEgMSAxLjIyOS44NmwtMS4xNDggMS42NGEuNzQ4Ljc0OCAwIDAgMS0uMjE3LjIwNiA1LjI1MSA1LjI1MSAwIDAgMS04LjUwMy01Ljk1NS43NDEuNzQxIDAgMCAxIC4xMi0uMjc0bDEuMTQ3LTEuNjM5YS43NS43NSAwIDEgMSAxLjIyOC44Nkw0LjkzMyAxMC43bC4wMDYuMDAzYTMuNzUgMy43NSAwIDAgMCA2LjEzMiA0LjI5NGwuMDA2LjAwNHptNS40OTQtNS4zMzVhLjc0OC43NDggMCAwIDEtLjEyLjI3NGwtMS4xNDcgMS42MzlhLjc1Ljc1IDAgMSAxLTEuMjI4LS44NmwuODYtMS4yM2EzLjc1IDMuNzUgMCAwIDAtNi4xNDQtNC4zMDFsLS44NiAxLjIyOWEuNzUuNzUgMCAwIDEtMS4yMjktLjg2bDEuMTQ4LTEuNjRhLjc0OC43NDggMCAwIDEgLjIxNy0uMjA2IDUuMjUxIDUuMjUxIDAgMCAxIDguNTAzIDUuOTU1em0tNC41NjMtMi41MzJhLjc1Ljc1IDAgMCAxIC4xODQgMS4wNDVsLTMuMTU1IDQuNTA1YS43NS43NSAwIDEgMS0xLjIyOS0uODZsMy4xNTUtNC41MDZhLjc1Ljc1IDAgMCAxIDEuMDQ1LS4xODR6Ii8+PC9zdmc+"); + background-position: center; + background-repeat: no-repeat; + background-size: 14px; + border-radius: 100%; + display: block; + position: absolute; + overflow: hidden; +} + +:root { + --ck-link-panel-width: 340px; + --ck-link-provider-list-item-text-height: calc(var(--ck-line-height-base) * var(--ck-font-size-base)); + --ck-link-provider-list-item-height: calc(var(--ck-link-provider-list-item-text-height) + var(--ck-spacing-small) + var(--ck-spacing-small)); +} + +@media screen and (width <= 600px) { + :root { + --ck-link-panel-width: 300px; + } +} + +.ck.ck-form.ck-link-form { + width: var(--ck-link-panel-width); + padding-bottom: 0; +} + +@media screen and (width <= 600px) { + .ck.ck-form.ck-link-form.ck-responsive-form .ck-labeled-field-view { + margin: 0; + } +} + +.ck.ck-form.ck-link-form .ck-link-form__providers-list { + border-top: 1px solid var(--ck-color-base-border); + flex-direction: column; + display: flex; +} + +.ck.ck-form.ck-link-form .ck-link-form__providers-list:has(.ck-list__item:nth-child(n+5)) { + max-height: calc(var(--ck-link-provider-list-item-height) * 4 + var(--ck-spacing-large) + 1px); + overflow: auto; +} + +.ck.ck-form.ck-link-form .ck-link-form__providers-list .ck-link__button { + padding: var(--ck-spacing-small) var(--ck-spacing-large); + border-radius: 0; +} + +.ck.ck-form.ck-link-form .ck-link-form__providers-list .ck-link__button > .ck-button__label { + text-overflow: ellipsis; + flex-grow: 1; + overflow: hidden; +} + +.ck.ck-link-form .ck-link__items:empty { + display: none; +} + +:root { + --ck-link-properties-width: 340px; +} + +@media screen and (width <= 600px) { + :root { + --ck-link-properties-width: 300px; + } +} + +.ck.ck-link-properties { + width: var(--ck-link-properties-width); +} + +:root { + --ck-link-providers-width: 340px; + --ck-link-list-view-max-height: 240px; + --ck-link-list-view-icon-size: calc(var(--ck-icon-size) * .8); +} + +@media screen and (width <= 600px) { + :root { + --ck-link-providers-width: 300px; + } +} + +.ck.ck-link-providers { + width: var(--ck-link-providers-width); +} + +.ck.ck-link-providers .ck-form__header__label { + text-overflow: ellipsis; + overflow: hidden; +} + +.ck.ck-link-providers > .ck-link-providers__list { + max-height: min(var(--ck-link-list-view-max-height), 40vh); + overflow: hidden auto; +} + +.ck.ck-link-providers > .ck-link-providers__list .ck-button > .ck-icon { + width: var(--ck-link-list-view-icon-size); + height: var(--ck-link-list-view-icon-size); + flex-shrink: 0; +} + +.ck.ck-link-providers > .ck-link-providers__list .ck-button > .ck-button__label { + text-overflow: ellipsis; + white-space: nowrap; + overflow: hidden; +} + +.ck.ck-link-providers > .ck-link-providers__list { + overscroll-behavior: contain; +} + +.ck.ck-link-providers .ck-link__empty-list-info { + padding: calc(2 * var(--ck-spacing-large)) var(--ck-spacing-medium); + text-align: center; + font-style: italic; +} + +/* @ckeditor/ckeditor5-ckfinder */ +/** + * @license Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved. + * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options + */ + +/* @ckeditor/ckeditor5-easy-image */ +/** + * @license Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved. + * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options + */ + +/* @ckeditor/ckeditor5-editor-classic */ +/** + * @license Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved. + * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options + */ +.ck.ck-editor__main > .ck-editor__editable { + background: var(--ck-color-base-background); + border-radius: var(--ck-rounded-corners-radius); + border-top-left-radius: 0; + border-top-right-radius: 0; +} + +.ck.ck-editor__main > .ck-editor__editable:not(.ck-focused) { + border-color: var(--ck-color-base-border); +} + +.ck.ck-editor { + position: relative; +} + +.ck.ck-editor .ck-editor__top .ck-sticky-panel .ck-toolbar { + z-index: var(--ck-z-panel); +} + +/* @ckeditor/ckeditor5-editor-decoupled */ +/** + * @license Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved. + * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options + */ + +/* @ckeditor/ckeditor5-essentials */ +/** + * @license Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved. + * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options + */ + +/* @ckeditor/ckeditor5-list */ +/** + * @license Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved. + * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options + */ +.ck-editor__editable .ck-list-bogus-paragraph { + display: block; +} + +:root { + --ck-list-style-button-size: 44px; +} + +.ck.ck-list-styles-list { + row-gap: var(--ck-spacing-medium); + column-gap: var(--ck-spacing-medium); + padding: var(--ck-spacing-large); + grid-template-columns: repeat(3, auto); +} + +.ck.ck-list-styles-list .ck-button { + width: var(--ck-list-style-button-size); + height: var(--ck-list-style-button-size); + box-sizing: content-box; + margin: 0; + padding: 0; +} + +.ck.ck-list-styles-list .ck-button .ck-icon { + width: var(--ck-list-style-button-size); + height: var(--ck-list-style-button-size); +} + +.ck.ck-list-styles-list { + display: grid; +} + +.ck.ck-list-properties.ck-list-properties_without-styles { + padding: var(--ck-spacing-large); +} + +.ck.ck-list-properties.ck-list-properties_without-styles > * { + min-width: 14em; +} + +.ck.ck-list-properties.ck-list-properties_without-styles > * + * { + margin-top: var(--ck-spacing-standard); +} + +.ck.ck-list-properties.ck-list-properties_with-numbered-properties > .ck-list-styles-list { + grid-template-columns: repeat(4, auto); +} + +.ck.ck-list-properties.ck-list-properties_with-numbered-properties > .ck-collapsible { + border-top: 1px solid var(--ck-color-base-border); +} + +.ck.ck-list-properties.ck-list-properties_with-numbered-properties > .ck-collapsible > .ck-collapsible__children > * { + width: 100%; +} + +.ck.ck-list-properties.ck-list-properties_with-numbered-properties > .ck-collapsible > .ck-collapsible__children > * + * { + margin-top: var(--ck-spacing-standard); +} + +.ck.ck-list-properties .ck.ck-numbered-list-properties__start-index .ck-input { + width: 100%; + min-width: auto; +} + +.ck.ck-list-properties .ck.ck-numbered-list-properties__reversed-order { + margin-bottom: calc(-1 * var(--ck-spacing-tiny)); + background: none; + padding-left: 0; + padding-right: 0; +} + +.ck.ck-list-properties .ck.ck-numbered-list-properties__reversed-order:active, .ck.ck-list-properties .ck.ck-numbered-list-properties__reversed-order:hover { + box-shadow: none; + background: none; + border-color: #0000; +} + +:root { + --ck-content-list-marker-color: var(--ck-content-font-color); + --ck-content-list-marker-font-family: var(--ck-content-font-family); + --ck-content-list-marker-font-size: var(--ck-content-font-size); +} + +.ck-content li > p:first-of-type { + margin-top: 0; +} + +.ck-content li > p:only-of-type { + margin-top: 0; + margin-bottom: 0; +} + +.ck-content li.ck-list-marker-bold::marker { + font-weight: bold; +} + +.ck-content li.ck-list-marker-italic::marker { + font-style: italic; +} + +.ck-content li.ck-list-marker-color::marker { + color: var(--ck-content-list-marker-color); +} + +.ck-content li.ck-list-marker-font-family::marker { + font-family: var(--ck-content-list-marker-font-family); +} + +.ck-content li.ck-list-marker-font-size::marker { + font-size: var(--ck-content-list-marker-font-size); +} + +.ck-content li.ck-list-marker-font-size-tiny::marker { + font-size: var(--ck-content-font-size-tiny); +} + +.ck-content li.ck-list-marker-font-size-small::marker { + font-size: var(--ck-content-font-size-small); +} + +.ck-content li.ck-list-marker-font-size-big::marker { + font-size: var(--ck-content-font-size-big); +} + +.ck-content li.ck-list-marker-font-size-huge::marker { + font-size: var(--ck-content-font-size-huge); +} + +.ck-content ol { + list-style-type: decimal; +} + +.ck-content ol ol { + list-style-type: lower-latin; +} + +.ck-content ol ol ol { + list-style-type: lower-roman; +} + +.ck-content ol ol ol ol { + list-style-type: upper-latin; +} + +.ck-content ol ol ol ol ol { + list-style-type: upper-roman; +} + +.ck-content ul { + list-style-type: disc; +} + +.ck-content ul ul { + list-style-type: circle; +} + +.ck-content ul ul ul { + list-style-type: square; +} + +.ck-content ul ul ul ul { + list-style-type: square; +} + +:root { + --ck-content-todo-list-checkmark-size: 16px; +} + +.ck-content .todo-list .todo-list__label > input, .ck-editor__editable.ck-content .todo-list .todo-list__label > span[contenteditable="false"] > input { + -webkit-appearance: none; + width: var(--ck-content-todo-list-checkmark-size); + height: var(--ck-content-todo-list-checkmark-size); + vertical-align: middle; + border: 0; + margin-left: 0; + margin-right: -15px; + display: inline-block; + position: relative; + left: -25px; + right: 0; +} + +[dir="rtl"]:is(.ck-content .todo-list .todo-list__label > input, .ck-editor__editable.ck-content .todo-list .todo-list__label > span[contenteditable="false"] > input) { + margin-left: -15px; + margin-right: 0; + left: 0; + right: -25px; +} + +:is(.ck-content .todo-list .todo-list__label > input, .ck-editor__editable.ck-content .todo-list .todo-list__label > span[contenteditable="false"] > input):before { + box-sizing: border-box; + content: ""; + border: 1px solid #333; + border-radius: 2px; + width: 100%; + height: 100%; + transition: box-shadow .25s ease-in-out; + display: block; + position: absolute; +} + +@media (prefers-reduced-motion: reduce) { + :is(.ck-content .todo-list .todo-list__label > input, .ck-editor__editable.ck-content .todo-list .todo-list__label > span[contenteditable="false"] > input):before { + transition: none; + } +} + +:is(.ck-content .todo-list .todo-list__label > input, .ck-editor__editable.ck-content .todo-list .todo-list__label > span[contenteditable="false"] > input):after { + box-sizing: content-box; + pointer-events: none; + content: ""; + left: calc(var(--ck-content-todo-list-checkmark-size) / 3); + top: calc(var(--ck-content-todo-list-checkmark-size) / 5.3); + width: calc(var(--ck-content-todo-list-checkmark-size) / 5.3); + height: calc(var(--ck-content-todo-list-checkmark-size) / 2.6); + border-style: solid; + border-color: #0000; + border-width: 0 calc(var(--ck-content-todo-list-checkmark-size) / 8) calc(var(--ck-content-todo-list-checkmark-size) / 8) 0; + display: block; + position: absolute; + transform: rotate(45deg); +} + +:is(.ck-content .todo-list .todo-list__label > input, .ck-editor__editable.ck-content .todo-list .todo-list__label > span[contenteditable="false"] > input)[checked]:before { + background: #26ab33; + border-color: #26ab33; +} + +:is(.ck-content .todo-list .todo-list__label > input, .ck-editor__editable.ck-content .todo-list .todo-list__label > span[contenteditable="false"] > input)[checked]:after { + border-color: #fff; +} + +.ck-content .todo-list { + list-style: none; +} + +.ck-content .todo-list li { + margin-bottom: 5px; + position: relative; +} + +.ck-content .todo-list li .todo-list { + margin-top: 5px; +} + +.ck-content .todo-list .todo-list__label .todo-list__label__description { + vertical-align: middle; +} + +.ck-content .todo-list .todo-list__label.todo-list__label_without-description input[type="checkbox"] { + position: absolute; +} + +.ck-editor__editable.ck-content .todo-list .todo-list__label > input, .ck-editor__editable.ck-content .todo-list .todo-list__label > span[contenteditable="false"] > input { + cursor: pointer; +} + +:is(.ck-editor__editable.ck-content .todo-list .todo-list__label > input, .ck-editor__editable.ck-content .todo-list .todo-list__label > span[contenteditable="false"] > input):hover:before { + box-shadow: 0 0 0 5px #0000001a; +} + +.ck-editor__editable.ck-content .todo-list .todo-list__label.todo-list__label_without-description input[type="checkbox"] { + position: absolute; +} + +/* @ckeditor/ckeditor5-media-embed */ +/** + * @license Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved. + * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options + */ +.ck-content .media { + clear: both; + min-width: 15em; + margin: .9em 0; + display: block; +} + +:root { + --ck-media-embed-placeholder-icon-size: 3em; + --ck-color-media-embed-placeholder-url-text: #757575; + --ck-color-media-embed-placeholder-url-text-hover: var(--ck-color-base-text); +} + +.ck-media__wrapper { + margin: 0 auto; +} + +.ck-media__wrapper .ck-media__placeholder { + padding: calc(3 * var(--ck-spacing-standard)); + background: var(--ck-color-base-foreground); + flex-direction: column; + align-items: center; + display: flex; +} + +.ck-media__wrapper .ck-media__placeholder .ck-media__placeholder__icon { + min-width: var(--ck-media-embed-placeholder-icon-size); + height: var(--ck-media-embed-placeholder-icon-size); + margin-bottom: var(--ck-spacing-large); + background-position: center; + background-size: cover; +} + +.ck-media__wrapper .ck-media__placeholder .ck-media__placeholder__icon .ck-icon { + width: 100%; + height: 100%; +} + +.ck-media__wrapper .ck-media__placeholder .ck-media__placeholder__url__text { + color: var(--ck-color-media-embed-placeholder-url-text); + white-space: nowrap; + text-align: center; + text-overflow: ellipsis; + font-style: italic; +} + +.ck-media__wrapper .ck-media__placeholder .ck-media__placeholder__url__text:hover { + color: var(--ck-color-media-embed-placeholder-url-text-hover); + cursor: pointer; + text-decoration: underline; +} + +.ck-media__wrapper .ck-media__placeholder .ck-media__placeholder__url { + max-width: 100%; + position: relative; +} + +.ck-media__wrapper .ck-media__placeholder .ck-media__placeholder__url .ck-media__placeholder__url__text { + display: block; + overflow: hidden; +} + +.ck-media__wrapper[data-oembed-url*="open.spotify.com"] { + max-width: 300px; + max-height: 380px; +} + +.ck-media__wrapper[data-oembed-url*="google.com/maps"] .ck-media__placeholder__icon, .ck-media__wrapper[data-oembed-url*="goo.gl/maps"] .ck-media__placeholder__icon, .ck-media__wrapper[data-oembed-url*="maps.google.com"] .ck-media__placeholder__icon, .ck-media__wrapper[data-oembed-url*="maps.app.goo.gl"] .ck-media__placeholder__icon { + background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNTAuMzc4IiBoZWlnaHQ9IjI1NC4xNjciIHZpZXdCb3g9IjAgMCA2Ni4yNDYgNjcuMjQ4Ij48ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMTcyLjUzMSAtMjE4LjQ1NSkgc2NhbGUoLjk4MDEyKSI+PHJlY3Qgcnk9IjUuMjM4IiByeD0iNS4yMzgiIHk9IjIzMS4zOTkiIHg9IjE3Ni4wMzEiIGhlaWdodD0iNjAuMDk5IiB3aWR0aD0iNjAuMDk5IiBmaWxsPSIjMzRhNjY4IiBwYWludC1vcmRlcj0ibWFya2VycyBzdHJva2UgZmlsbCIvPjxwYXRoIGQ9Ik0yMDYuNDc3IDI2MC45bC0yOC45ODcgMjguOTg3YTUuMjE4IDUuMjE4IDAgMCAwIDMuNzggMS42MWg0OS42MjFjMS42OTQgMCAzLjE5LS43OTggNC4xNDYtMi4wMzd6IiBmaWxsPSIjNWM4OGM1Ii8+PHBhdGggZD0iTTIyNi43NDIgMjIyLjk4OGMtOS4yNjYgMC0xNi43NzcgNy4xNy0xNi43NzcgMTYuMDE0LjAwNyAyLjc2Mi42NjMgNS40NzQgMi4wOTMgNy44NzUuNDMuNzAzLjgzIDEuNDA4IDEuMTkgMi4xMDcuMzMzLjUwMi42NSAxLjAwNS45NSAxLjUwOC4zNDMuNDc3LjY3My45NTcuOTg4IDEuNDQgMS4zMSAxLjc2OSAyLjUgMy41MDIgMy42MzcgNS4xNjguNzkzIDEuMjc1IDEuNjgzIDIuNjQgMi40NjYgMy45OSAyLjM2MyA0LjA5NCA0LjAwNyA4LjA5MiA0LjYgMTMuOTE0di4wMTJjLjE4Mi40MTIuNTE2LjY2Ni44NzkuNjY3LjQwMy0uMDAxLjc2OC0uMzE0LjkzLS43OTkuNjAzLTUuNzU2IDIuMjM4LTkuNzI5IDQuNTg1LTEzLjc5NC43ODItMS4zNSAxLjY3My0yLjcxNSAyLjQ2NS0zLjk5IDEuMTM3LTEuNjY2IDIuMzI4LTMuNCAzLjYzOC01LjE2OS4zMTUtLjQ4Mi42NDUtLjk2Mi45ODgtMS40MzkuMy0uNTAzLjYxNy0xLjAwNi45NS0xLjUwOC4zNTktLjcuNzYtMS40MDQgMS4xOS0yLjEwNyAxLjQyNi0yLjQwMiAyLTUuMTE0IDIuMDA0LTcuODc1IDAtOC44NDQtNy41MTEtMTYuMDE0LTE2Ljc3Ni0xNi4wMTR6IiBmaWxsPSIjZGQ0YjNlIiBwYWludC1vcmRlcj0ibWFya2VycyBzdHJva2UgZmlsbCIvPjxlbGxpcHNlIHJ5PSI1LjU2NCIgcng9IjUuODI4IiBjeT0iMjM5LjAwMiIgY3g9IjIyNi43NDIiIGZpbGw9IiM4MDJkMjciIHBhaW50LW9yZGVyPSJtYXJrZXJzIHN0cm9rZSBmaWxsIi8+PHBhdGggZD0iTTE5MC4zMDEgMjM3LjI4M2MtNC42NyAwLTguNDU3IDMuODUzLTguNDU3IDguNjA2czMuNzg2IDguNjA3IDguNDU3IDguNjA3YzMuMDQzIDAgNC44MDYtLjk1OCA2LjMzNy0yLjUxNiAxLjUzLTEuNTU3IDIuMDg3LTMuOTEzIDIuMDg3LTYuMjkgMC0uMzYyLS4wMjMtLjcyMi0uMDY0LTEuMDc5aC04LjI1N3YzLjA0M2g0Ljg1Yy0uMTk3Ljc1OS0uNTMxIDEuNDUtMS4wNTggMS45ODYtLjk0Mi45NTgtMi4wMjggMS41NDgtMy45MDEgMS41NDgtMi44NzYgMC01LjIwOC0yLjM3Mi01LjIwOC01LjI5OSAwLTIuOTI2IDIuMzMyLTUuMjk5IDUuMjA4LTUuMjk5IDEuMzk5IDAgMi42MTguNDA3IDMuNTg0IDEuMjkzbDIuMzgxLTIuMzhjMC0uMDAyLS4wMDMtLjAwNC0uMDA0LS4wMDUtMS41ODgtMS41MjQtMy42Mi0yLjIxNS01Ljk1NS0yLjIxNXptNC40MyA1LjY2bC4wMDMuMDA2di0uMDAzeiIgZmlsbD0iI2ZmZiIgcGFpbnQtb3JkZXI9Im1hcmtlcnMgc3Ryb2tlIGZpbGwiLz48cGF0aCBkPSJNMjE1LjE4NCAyNTEuOTI5bC03Ljk4IDcuOTc5IDI4LjQ3NyAyOC40NzVjLjI4Ny0uNjQ5LjQ0OS0xLjM2Ni40NDktMi4xMjN2LTMxLjE2NWMtLjQ2OS42NzUtLjkzNCAxLjM0OS0xLjM4MiAyLjAwNS0uNzkyIDEuMjc1LTEuNjgyIDIuNjQtMi40NjUgMy45OS0yLjM0NyA0LjA2NS0zLjk4MiA4LjAzOC00LjU4NSAxMy43OTQtLjE2Mi40ODUtLjUyNy43OTgtLjkzLjc5OS0uMzYzLS4wMDEtLjY5Ny0uMjU1LS44NzktLjY2N3YtLjAxMmMtLjU5My01LjgyMi0yLjIzNy05LjgyLTQuNi0xMy45MTQtLjc4My0xLjM1LTEuNjczLTIuNzE1LTIuNDY2LTMuOTktMS4xMzctMS42NjYtMi4zMjctMy40LTMuNjM3LTUuMTY5bC0uMDAyLS4wMDN6IiBmaWxsPSIjYzNjM2MzIi8+PHBhdGggZD0iTTIxMi45ODMgMjQ4LjQ5NWwtMzYuOTUyIDM2Ljk1M3YuODEyYTUuMjI3IDUuMjI3IDAgMCAwIDUuMjM4IDUuMjM4aDEuMDE1bDM1LjY2Ni0zNS42NjZhMTM2LjI3NSAxMzYuMjc1IDAgMCAwLTIuNzY0LTMuOSAzNy41NzUgMzcuNTc1IDAgMCAwLS45ODktMS40NGMtLjI5OS0uNTAzLS42MTYtMS4wMDYtLjk1LTEuNTA4LS4wODMtLjE2Mi0uMTc2LS4zMjYtLjI2NC0uNDg5eiIgZmlsbD0iI2ZkZGM0ZiIgcGFpbnQtb3JkZXI9Im1hcmtlcnMgc3Ryb2tlIGZpbGwiLz48cGF0aCBkPSJNMjExLjk5OCAyNjEuMDgzbC02LjE1MiA2LjE1MSAyNC4yNjQgMjQuMjY0aC43ODFhNS4yMjcgNS4yMjcgMCAwIDAgNS4yMzktNS4yMzh2LTEuMDQ1eiIgZmlsbD0iI2ZmZiIgcGFpbnQtb3JkZXI9Im1hcmtlcnMgc3Ryb2tlIGZpbGwiLz48L2c+PC9zdmc+"); +} + +.ck-media__wrapper[data-oembed-url*="facebook.com"] .ck-media__placeholder { + background: #4268b3; +} + +.ck-media__wrapper[data-oembed-url*="facebook.com"] .ck-media__placeholder .ck-media__placeholder__icon { + background-image: url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c3ZnIHdpZHRoPSIxMDI0cHgiIGhlaWdodD0iMTAyNHB4IiB2aWV3Qm94PSIwIDAgMTAyNCAxMDI0IiB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPiAgICAgICAgPHRpdGxlPkZpbGwgMTwvdGl0bGU+ICAgIDxkZXNjPkNyZWF0ZWQgd2l0aCBTa2V0Y2guPC9kZXNjPiAgICA8ZGVmcz48L2RlZnM+ICAgIDxnIGlkPSJQYWdlLTEiIHN0cm9rZT0ibm9uZSIgc3Ryb2tlLXdpZHRoPSIxIiBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPiAgICAgICAgPGcgaWQ9ImZMb2dvX1doaXRlIiBmaWxsPSIjRkZGRkZFIj4gICAgICAgICAgICA8cGF0aCBkPSJNOTY3LjQ4NCwwIEw1Ni41MTcsMCBDMjUuMzA0LDAgMCwyNS4zMDQgMCw1Ni41MTcgTDAsOTY3LjQ4MyBDMCw5OTguNjk0IDI1LjI5NywxMDI0IDU2LjUyMiwxMDI0IEw1NDcsMTAyNCBMNTQ3LDYyOCBMNDE0LDYyOCBMNDE0LDQ3MyBMNTQ3LDQ3MyBMNTQ3LDM1OS4wMjkgQzU0NywyMjYuNzY3IDYyNy43NzMsMTU0Ljc0NyA3NDUuNzU2LDE1NC43NDcgQzgwMi4yNjksMTU0Ljc0NyA4NTAuODQyLDE1OC45NTUgODY1LDE2MC44MzYgTDg2NSwyOTkgTDc4My4zODQsMjk5LjAzNyBDNzE5LjM5MSwyOTkuMDM3IDcwNywzMjkuNTI5IDcwNywzNzQuMjczIEw3MDcsNDczIEw4NjAuNDg3LDQ3MyBMODQwLjUwMSw2MjggTDcwNyw2MjggTDcwNywxMDI0IEw5NjcuNDg0LDEwMjQgQzk5OC42OTcsMTAyNCAxMDI0LDk5OC42OTcgMTAyNCw5NjcuNDg0IEwxMDI0LDU2LjUxNSBDMTAyNCwyNS4zMDMgOTk4LjY5NywwIDk2Ny40ODQsMCIgaWQ9IkZpbGwtMSI+PC9wYXRoPiAgICAgICAgPC9nPiAgICA8L2c+PC9zdmc+"); +} + +.ck-media__wrapper[data-oembed-url*="facebook.com"] .ck-media__placeholder .ck-media__placeholder__url__text { + color: #cdf; +} + +.ck-media__wrapper[data-oembed-url*="facebook.com"] .ck-media__placeholder .ck-media__placeholder__url__text:hover { + color: #fff; +} + +.ck-media__wrapper[data-oembed-url*="instagram.com"] .ck-media__placeholder { + background: linear-gradient(-135deg, #1400c7, #b800b1, #f50000); +} + +.ck-media__wrapper[data-oembed-url*="instagram.com"] .ck-media__placeholder .ck-media__placeholder__icon { + background-image: url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c3ZnIHdpZHRoPSI1MDRweCIgaGVpZ2h0PSI1MDRweCIgdmlld0JveD0iMCAwIDUwNCA1MDQiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+ICAgICAgICA8dGl0bGU+Z2x5cGgtbG9nb19NYXkyMDE2PC90aXRsZT4gICAgPGRlc2M+Q3JlYXRlZCB3aXRoIFNrZXRjaC48L2Rlc2M+ICAgIDxkZWZzPiAgICAgICAgPHBvbHlnb24gaWQ9InBhdGgtMSIgcG9pbnRzPSIwIDAuMTU5IDUwMy44NDEgMC4xNTkgNTAzLjg0MSA1MDMuOTQgMCA1MDMuOTQiPjwvcG9seWdvbj4gICAgPC9kZWZzPiAgICA8ZyBpZD0iZ2x5cGgtbG9nb19NYXkyMDE2IiBzdHJva2U9Im5vbmUiIHN0cm9rZS13aWR0aD0iMSIgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIj4gICAgICAgIDxnIGlkPSJHcm91cC0zIj4gICAgICAgICAgICA8bWFzayBpZD0ibWFzay0yIiBmaWxsPSJ3aGl0ZSI+ICAgICAgICAgICAgICAgIDx1c2UgeGxpbms6aHJlZj0iI3BhdGgtMSI+PC91c2U+ICAgICAgICAgICAgPC9tYXNrPiAgICAgICAgICAgIDxnIGlkPSJDbGlwLTIiPjwvZz4gICAgICAgICAgICA8cGF0aCBkPSJNMjUxLjkyMSwwLjE1OSBDMTgzLjUwMywwLjE1OSAxNzQuOTI0LDAuNDQ5IDE0OC4wNTQsMS42NzUgQzEyMS4yNCwyLjg5OCAxMDIuOTI3LDcuMTU3IDg2LjkwMywxMy4zODUgQzcwLjMzNywxOS44MjIgNTYuMjg4LDI4LjQzNiA0Mi4yODIsNDIuNDQxIEMyOC4yNzcsNTYuNDQ3IDE5LjY2Myw3MC40OTYgMTMuMjI2LDg3LjA2MiBDNi45OTgsMTAzLjA4NiAyLjczOSwxMjEuMzk5IDEuNTE2LDE0OC4yMTMgQzAuMjksMTc1LjA4MyAwLDE4My42NjIgMCwyNTIuMDggQzAsMzIwLjQ5NyAwLjI5LDMyOS4wNzYgMS41MTYsMzU1Ljk0NiBDMi43MzksMzgyLjc2IDYuOTk4LDQwMS4wNzMgMTMuMjI2LDQxNy4wOTcgQzE5LjY2Myw0MzMuNjYzIDI4LjI3Nyw0NDcuNzEyIDQyLjI4Miw0NjEuNzE4IEM1Ni4yODgsNDc1LjcyMyA3MC4zMzcsNDg0LjMzNyA4Ni45MDMsNDkwLjc3NSBDMTAyLjkyNyw0OTcuMDAyIDEyMS4yNCw1MDEuMjYxIDE0OC4wNTQsNTAyLjQ4NCBDMTc0LjkyNCw1MDMuNzEgMTgzLjUwMyw1MDQgMjUxLjkyMSw1MDQgQzMyMC4zMzgsNTA0IDMyOC45MTcsNTAzLjcxIDM1NS43ODcsNTAyLjQ4NCBDMzgyLjYwMSw1MDEuMjYxIDQwMC45MTQsNDk3LjAwMiA0MTYuOTM4LDQ5MC43NzUgQzQzMy41MDQsNDg0LjMzNyA0NDcuNTUzLDQ3NS43MjMgNDYxLjU1OSw0NjEuNzE4IEM0NzUuNTY0LDQ0Ny43MTIgNDg0LjE3OCw0MzMuNjYzIDQ5MC42MTYsNDE3LjA5NyBDNDk2Ljg0Myw0MDEuMDczIDUwMS4xMDIsMzgyLjc2IDUwMi4zMjUsMzU1Ljk0NiBDNTAzLjU1MSwzMjkuMDc2IDUwMy44NDEsMzIwLjQ5NyA1MDMuODQxLDI1Mi4wOCBDNTAzLjg0MSwxODMuNjYyIDUwMy41NTEsMTc1LjA4MyA1MDIuMzI1LDE0OC4yMTMgQzUwMS4xMDIsMTIxLjM5OSA0OTYuODQzLDEwMy4wODYgNDkwLjYxNiw4Ny4wNjIgQzQ4NC4xNzgsNzAuNDk2IDQ3NS41NjQsNTYuNDQ3IDQ2MS41NTksNDIuNDQxIEM0NDcuNTUzLDI4LjQzNiA0MzMuNTA0LDE5LjgyMiA0MTYuOTM4LDEzLjM4NSBDNDAwLjkxNCw3LjE1NyAzODIuNjAxLDIuODk4IDM1NS43ODcsMS42NzUgQzMyOC45MTcsMC40NDkgMzIwLjMzOCwwLjE1OSAyNTEuOTIxLDAuMTU5IFogTTI1MS45MjEsNDUuNTUgQzMxOS4xODYsNDUuNTUgMzI3LjE1NCw0NS44MDcgMzUzLjcxOCw0Ny4wMTkgQzM3OC4yOCw0OC4xMzkgMzkxLjYxOSw1Mi4yNDMgNDAwLjQ5Niw1NS42OTMgQzQxMi4yNTUsNjAuMjYzIDQyMC42NDcsNjUuNzIyIDQyOS40NjIsNzQuNTM4IEM0MzguMjc4LDgzLjM1MyA0NDMuNzM3LDkxLjc0NSA0NDguMzA3LDEwMy41MDQgQzQ1MS43NTcsMTEyLjM4MSA0NTUuODYxLDEyNS43MiA0NTYuOTgxLDE1MC4yODIgQzQ1OC4xOTMsMTc2Ljg0NiA0NTguNDUsMTg0LjgxNCA0NTguNDUsMjUyLjA4IEM0NTguNDUsMzE5LjM0NSA0NTguMTkzLDMyNy4zMTMgNDU2Ljk4MSwzNTMuODc3IEM0NTUuODYxLDM3OC40MzkgNDUxLjc1NywzOTEuNzc4IDQ0OC4zMDcsNDAwLjY1NSBDNDQzLjczNyw0MTIuNDE0IDQzOC4yNzgsNDIwLjgwNiA0MjkuNDYyLDQyOS42MjEgQzQyMC42NDcsNDM4LjQzNyA0MTIuMjU1LDQ0My44OTYgNDAwLjQ5Niw0NDguNDY2IEMzOTEuNjE5LDQ1MS45MTYgMzc4LjI4LDQ1Ni4wMiAzNTMuNzE4LDQ1Ny4xNCBDMzI3LjE1OCw0NTguMzUyIDMxOS4xOTEsNDU4LjYwOSAyNTEuOTIxLDQ1OC42MDkgQzE4NC42NSw0NTguNjA5IDE3Ni42ODQsNDU4LjM1MiAxNTAuMTIzLDQ1Ny4xNCBDMTI1LjU2MSw0NTYuMDIgMTEyLjIyMiw0NTEuOTE2IDEwMy4zNDUsNDQ4LjQ2NiBDOTEuNTg2LDQ0My44OTYgODMuMTk0LDQzOC40MzcgNzQuMzc5LDQyOS42MjEgQzY1LjU2NCw0MjAuODA2IDYwLjEwNCw0MTIuNDE0IDU1LjUzNCw0MDAuNjU1IEM1Mi4wODQsMzkxLjc3OCA0Ny45OCwzNzguNDM5IDQ2Ljg2LDM1My44NzcgQzQ1LjY0OCwzMjcuMzEzIDQ1LjM5MSwzMTkuMzQ1IDQ1LjM5MSwyNTIuMDggQzQ1LjM5MSwxODQuODE0IDQ1LjY0OCwxNzYuODQ2IDQ2Ljg2LDE1MC4yODIgQzQ3Ljk4LDEyNS43MiA1Mi4wODQsMTEyLjM4MSA1NS41MzQsMTAzLjUwNCBDNjAuMTA0LDkxLjc0NSA2NS41NjMsODMuMzUzIDc0LjM3OSw3NC41MzggQzgzLjE5NCw2NS43MjIgOTEuNTg2LDYwLjI2MyAxMDMuMzQ1LDU1LjY5MyBDMTEyLjIyMiw1Mi4yNDMgMTI1LjU2MSw0OC4xMzkgMTUwLjEyMyw0Ny4wMTkgQzE3Ni42ODcsNDUuODA3IDE4NC42NTUsNDUuNTUgMjUxLjkyMSw0NS41NSBaIiBpZD0iRmlsbC0xIiBmaWxsPSIjRkZGRkZGIiBtYXNrPSJ1cmwoI21hc2stMikiPjwvcGF0aD4gICAgICAgIDwvZz4gICAgICAgIDxwYXRoIGQ9Ik0yNTEuOTIxLDMzNi4wNTMgQzIwNS41NDMsMzM2LjA1MyAxNjcuOTQ3LDI5OC40NTcgMTY3Ljk0NywyNTIuMDggQzE2Ny45NDcsMjA1LjcwMiAyMDUuNTQzLDE2OC4xMDYgMjUxLjkyMSwxNjguMTA2IEMyOTguMjk4LDE2OC4xMDYgMzM1Ljg5NCwyMDUuNzAyIDMzNS44OTQsMjUyLjA4IEMzMzUuODk0LDI5OC40NTcgMjk4LjI5OCwzMzYuMDUzIDI1MS45MjEsMzM2LjA1MyBaIE0yNTEuOTIxLDEyMi43MTUgQzE4MC40NzQsMTIyLjcxNSAxMjIuNTU2LDE4MC42MzMgMTIyLjU1NiwyNTIuMDggQzEyMi41NTYsMzIzLjUyNiAxODAuNDc0LDM4MS40NDQgMjUxLjkyMSwzODEuNDQ0IEMzMjMuMzY3LDM4MS40NDQgMzgxLjI4NSwzMjMuNTI2IDM4MS4yODUsMjUyLjA4IEMzODEuMjg1LDE4MC42MzMgMzIzLjM2NywxMjIuNzE1IDI1MS45MjEsMTIyLjcxNSBaIiBpZD0iRmlsbC00IiBmaWxsPSIjRkZGRkZGIj48L3BhdGg+ICAgICAgICA8cGF0aCBkPSJNNDE2LjYyNywxMTcuNjA0IEM0MTYuNjI3LDEzNC4zIDQwMy4wOTIsMTQ3LjgzNCAzODYuMzk2LDE0Ny44MzQgQzM2OS43MDEsMTQ3LjgzNCAzNTYuMTY2LDEzNC4zIDM1Ni4xNjYsMTE3LjYwNCBDMzU2LjE2NiwxMDAuOTA4IDM2OS43MDEsODcuMzczIDM4Ni4zOTYsODcuMzczIEM0MDMuMDkyLDg3LjM3MyA0MTYuNjI3LDEwMC45MDggNDE2LjYyNywxMTcuNjA0IiBpZD0iRmlsbC01IiBmaWxsPSIjRkZGRkZGIj48L3BhdGg+ICAgIDwvZz48L3N2Zz4="); +} + +.ck-media__wrapper[data-oembed-url*="instagram.com"] .ck-media__placeholder .ck-media__placeholder__url__text { + color: #ffe0fe; +} + +.ck-media__wrapper[data-oembed-url*="instagram.com"] .ck-media__placeholder .ck-media__placeholder__url__text:hover { + color: #fff; +} + +.ck-media__wrapper[data-oembed-url*="twitter.com"] .ck.ck-media__placeholder { + background: linear-gradient(to right, #71c6f4, #0d70a5); +} + +.ck-media__wrapper[data-oembed-url*="twitter.com"] .ck.ck-media__placeholder .ck-media__placeholder__icon { + background-image: url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48c3ZnIHZlcnNpb249IjEuMSIgaWQ9IldoaXRlIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwcHgiIHk9IjBweCIgdmlld0JveD0iMCAwIDQwMCA0MDAiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDQwMCA0MDA7IiB4bWw6c3BhY2U9InByZXNlcnZlIj48c3R5bGUgdHlwZT0idGV4dC9jc3MiPi5zdDB7ZmlsbDojRkZGRkZGO308L3N0eWxlPjxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik00MDAsMjAwYzAsMTEwLjUtODkuNSwyMDAtMjAwLDIwMFMwLDMxMC41LDAsMjAwUzg5LjUsMCwyMDAsMFM0MDAsODkuNSw0MDAsMjAweiBNMTYzLjQsMzA1LjVjODguNywwLDEzNy4yLTczLjUsMTM3LjItMTM3LjJjMC0yLjEsMC00LjItMC4xLTYuMmM5LjQtNi44LDE3LjYtMTUuMywyNC4xLTI1Yy04LjYsMy44LTE3LjksNi40LTI3LjcsNy42YzEwLTYsMTcuNi0xNS40LDIxLjItMjYuN2MtOS4zLDUuNS0xOS42LDkuNS0zMC42LDExLjdjLTguOC05LjQtMjEuMy0xNS4yLTM1LjItMTUuMmMtMjYuNiwwLTQ4LjIsMjEuNi00OC4yLDQ4LjJjMCwzLjgsMC40LDcuNSwxLjMsMTFjLTQwLjEtMi03NS42LTIxLjItOTkuNC01MC40Yy00LjEsNy4xLTYuNSwxNS40LTYuNSwyNC4yYzAsMTYuNyw4LjUsMzEuNSwyMS41LDQwLjFjLTcuOS0wLjItMTUuMy0yLjQtMjEuOC02YzAsMC4yLDAsMC40LDAsMC42YzAsMjMuNCwxNi42LDQyLjgsMzguNyw0Ny4zYy00LDEuMS04LjMsMS43LTEyLjcsMS43Yy0zLjEsMC02LjEtMC4zLTkuMS0wLjljNi4xLDE5LjIsMjMuOSwzMy4xLDQ1LDMzLjVjLTE2LjUsMTIuOS0zNy4zLDIwLjYtNTkuOSwyMC42Yy0zLjksMC03LjctMC4yLTExLjUtMC43QzExMC44LDI5Ny41LDEzNi4yLDMwNS41LDE2My40LDMwNS41Ii8+PC9zdmc+"); +} + +.ck-media__wrapper[data-oembed-url*="twitter.com"] .ck.ck-media__placeholder .ck-media__placeholder__url__text { + color: #b8e6ff; +} + +.ck-media__wrapper[data-oembed-url*="twitter.com"] .ck.ck-media__placeholder .ck-media__placeholder__url__text:hover { + color: #fff; +} + +:is(.ck-media__wrapper[data-oembed-url*="twitter.com"], .ck-media__wrapper[data-oembed-url*="google.com/maps"], .ck-media__wrapper[data-oembed-url*="goo.gl/maps"], .ck-media__wrapper[data-oembed-url*="maps.google.com"], .ck-media__wrapper[data-oembed-url*="maps.app.goo.gl"], .ck-media__wrapper[data-oembed-url*="facebook.com"], .ck-media__wrapper[data-oembed-url*="instagram.com"]) .ck-media__placeholder__icon * { + display: none; +} + +.ck-editor__editable:not(.ck-read-only) .ck-media__wrapper > :not(.ck-media__placeholder), .ck-editor__editable:not(.ck-read-only) .ck-widget:not(.ck-widget_selected) .ck-media__placeholder { + pointer-events: none; +} + +.ck.ck-media-form { + flex-flow: row; + align-items: flex-start; + width: 400px; + display: flex; +} + +.ck.ck-media-form .ck-labeled-field-view { + width: 100%; + display: inline-block; +} + +.ck.ck-media-form .ck-label { + display: none; +} + +.ck.ck-media-form .ck-input { + width: 100%; +} + +@media screen and (width <= 600px) { + .ck.ck-media-form { + flex-wrap: wrap; + } + + .ck.ck-media-form .ck-labeled-field-view { + flex-basis: 100%; + } + + .ck.ck-media-form .ck-button { + flex-basis: 50%; + } +} + +/* @ckeditor/ckeditor5-mention */ +/** + * @license Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved. + * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options + */ +:root { + --ck-content-color-mention-background: #9900301a; + --ck-content-color-mention-text: #990030; +} + +.ck-content .mention { + background: var(--ck-content-color-mention-background); + color: var(--ck-content-color-mention-text); +} + +:root { + --ck-mention-list-max-height: 300px; +} + +.ck.ck-mentions { + max-height: var(--ck-mention-list-max-height); + overscroll-behavior: contain; + overflow: hidden auto; +} + +.ck.ck-mentions > .ck-list__item { + flex-shrink: 0; + overflow: hidden; +} + +div.ck.ck-balloon-panel.ck-mention-balloon { + z-index: calc(var(--ck-z-dialog) + 1); +} + +/* @ckeditor/ckeditor5-page-break */ +/** + * @license Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved. + * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options + */ +.ck-content .page-break { + clear: both; + justify-content: center; + align-items: center; + padding: 5px 0; + display: flex; + position: relative; +} + +.ck-content .page-break:after { + content: ""; + border-bottom: 2px dashed #c4c4c4; + width: 100%; + position: absolute; +} + +.ck-content .page-break__label { + z-index: 1; + text-transform: uppercase; + color: #333; + -webkit-user-select: none; + user-select: none; + background: #fff; + border: 1px solid #c4c4c4; + border-radius: 2px; + padding: .3em .6em; + font-size: .75em; + font-weight: bold; + display: block; + position: relative; + box-shadow: 2px 2px 1px #00000026; +} + +@media print { + .ck-content .page-break { + padding: 0; + } + + .ck-content .page-break:after { + display: none; + } + + .ck-content :has( + .page-break) { + margin-bottom: 0; + } +} + +/* @ckeditor/ckeditor5-paste-from-office */ +/** + * @license Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved. + * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options + */ + +/* @ckeditor/ckeditor5-remove-format */ +/** + * @license Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved. + * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options + */ + +/* @ckeditor/ckeditor5-table */ +/** + * @license Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved. + * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options + */ +.ck-content .table th { + text-align: start; +} + +.ck-content[dir="rtl"] .table th { + text-align: right; +} + +.ck-content[dir="ltr"] .table th { + text-align: left; +} + +.ck-content figure.table:not(.layout-table) { + display: table; +} + +.ck-content figure.table:not(.layout-table) > table { + width: 100%; + height: 100%; +} + +.ck-content .table:not(.layout-table) { + margin: .9em auto; +} + +.ck-content table.table:not(.layout-table), .ck-content figure.table:not(.layout-table) > table { + border-collapse: collapse; + border-spacing: 0; + border: 1px double #b3b3b3; +} + +:is(:is(.ck-content table.table:not(.layout-table), .ck-content figure.table:not(.layout-table) > table) > thead, :is(.ck-content table.table:not(.layout-table), .ck-content figure.table:not(.layout-table) > table) > tfoot, :is(.ck-content table.table:not(.layout-table), .ck-content figure.table:not(.layout-table) > table) > tbody) > tr > th { + background: #0000000d; + font-weight: bold; +} + +:is(:is(:is(.ck-content table.table:not(.layout-table), .ck-content figure.table:not(.layout-table) > table) > thead, :is(.ck-content table.table:not(.layout-table), .ck-content figure.table:not(.layout-table) > table) > tfoot, :is(.ck-content table.table:not(.layout-table), .ck-content figure.table:not(.layout-table) > table) > tbody) > tr > td, :is(:is(.ck-content table.table:not(.layout-table), .ck-content figure.table:not(.layout-table) > table) > thead, :is(.ck-content table.table:not(.layout-table), .ck-content figure.table:not(.layout-table) > table) > tfoot, :is(.ck-content table.table:not(.layout-table), .ck-content figure.table:not(.layout-table) > table) > tbody) > tr > th) > p:first-of-type { + margin-top: 0; +} + +:is(:is(:is(.ck-content table.table:not(.layout-table), .ck-content figure.table:not(.layout-table) > table) > thead, :is(.ck-content table.table:not(.layout-table), .ck-content figure.table:not(.layout-table) > table) > tfoot, :is(.ck-content table.table:not(.layout-table), .ck-content figure.table:not(.layout-table) > table) > tbody) > tr > td, :is(:is(.ck-content table.table:not(.layout-table), .ck-content figure.table:not(.layout-table) > table) > thead, :is(.ck-content table.table:not(.layout-table), .ck-content figure.table:not(.layout-table) > table) > tfoot, :is(.ck-content table.table:not(.layout-table), .ck-content figure.table:not(.layout-table) > table) > tbody) > tr > th) > p:last-of-type { + margin-bottom: 0; +} + +:is(:is(.ck-content table.table:not(.layout-table), .ck-content figure.table:not(.layout-table) > table) > thead, :is(.ck-content table.table:not(.layout-table), .ck-content figure.table:not(.layout-table) > table) > tfoot, :is(.ck-content table.table:not(.layout-table), .ck-content figure.table:not(.layout-table) > table) > tbody) > tr > td, :is(:is(.ck-content table.table:not(.layout-table), .ck-content figure.table:not(.layout-table) > table) > thead, :is(.ck-content table.table:not(.layout-table), .ck-content figure.table:not(.layout-table) > table) > tfoot, :is(.ck-content table.table:not(.layout-table), .ck-content figure.table:not(.layout-table) > table) > tbody) > tr > th { + border: 1px solid #bfbfbf; + min-width: 2em; + padding: .4em; +} + +@media print { + .ck-content figure.table:not(.layout-table) { + width: fit-content; + height: fit-content; + } + + .ck-content figure.table:not(.layout-table) > table { + height: initial; + } +} + +.ck-editor__editable .ck-table-bogus-paragraph { + width: 100%; + display: inline-block; +} + +:root { + --ck-color-table-focused-cell-background: #9ec9fa4d; + --ck-table-content-default-border-color: #d4d4d4; + --ck-table-border-none-helper-line-color: #d4d4d4; + --ck-table-border-none-helper-line-style: dashed; + --ck-table-border-none-helper-line-width: 1px; +} + +.ck-widget.table table[style*="border:none"], .ck-widget.table table[style*="border-style:none"], .ck-widget.table table[style*="border:0"], .ck-widget.table table[style*="border-width:0"] { + outline: var(--ck-table-content-default-border-color) 1px dashed; +} + +:is(.ck-widget.table td, .ck-widget.table th).ck-editor__nested-editable { + outline: unset; +} + +:is(.ck-widget.table td, .ck-widget.table th).ck-editor__nested-editable:not(.ck-editor__editable_selected).ck-editor__nested-editable_focused, :is(.ck-widget.table td, .ck-widget.table th).ck-editor__nested-editable:not(.ck-editor__editable_selected):focus { + background: var(--ck-color-table-focused-cell-background); + outline: 1px solid var(--ck-color-focus-border); + outline-offset: -1px; +} + +:where(.ck.ck-editor__editable.ck-table-show-hidden-borders .ck-widget.table) { + --ck-table-border-none-helper-line: var(--ck-table-border-none-helper-line-width) + var(--ck-table-border-none-helper-line-style) + var(--ck-table-border-none-helper-line-color); +} + +:where(.ck.ck-editor__editable.ck-table-show-hidden-borders .ck-widget.table) :where(td, th):where([style*="border:none"], [style*="border:0"], [style*="border-style:none"], [style*="border-width:0"]) { + border: var(--ck-table-border-none-helper-line) !important; +} + +:where(.ck.ck-editor__editable.ck-table-show-hidden-borders .ck-widget.table) :where(table, td, th):where([style*="border-top-style:none"], [style*="border-top-width:0"]) { + border-top: var(--ck-table-border-none-helper-line) !important; +} + +:where(.ck.ck-editor__editable.ck-table-show-hidden-borders .ck-widget.table) :where(table, td, th):where([style*="border-right-style:none"], [style*="border-right-width:0"]) { + border-right: var(--ck-table-border-none-helper-line) !important; +} + +:where(.ck.ck-editor__editable.ck-table-show-hidden-borders .ck-widget.table) :where(table, td, th):where([style*="border-bottom-style:none"], [style*="border-bottom-width:0"]) { + border-bottom: var(--ck-table-border-none-helper-line) !important; +} + +:where(.ck.ck-editor__editable.ck-table-show-hidden-borders .ck-widget.table) :where(table, td, th):where([style*="border-left-style:none"], [style*="border-left-width:0"]) { + border-left: var(--ck-table-border-none-helper-line) !important; +} + +.ck.ck-table-cell-properties-form { + width: 320px; +} + +.ck.ck-table-cell-properties-form .ck-form__row.ck-table-cell-properties-form__padding-row { + align-self: flex-end; + width: 25%; + padding: 0; +} + +.ck.ck-table-cell-properties-form .ck-form__row.ck-table-cell-properties-form__alignment-row .ck.ck-toolbar { + margin-top: var(--ck-spacing-standard); + background: none; +} + +.ck.ck-table-cell-properties-form .ck-form__row.ck-table-cell-properties-form__alignment-row .ck.ck-toolbar.ck-table-cell-properties-form__horizontal-alignment-toolbar { + --ck-table-form-dimensions-input-width: calc(var(--ck-table-form-default-input-width) * 2 + var(--ck-spacing-large)); + width: var(--ck-table-form-dimensions-input-width); + max-width: var(--ck-table-form-dimensions-input-width); + min-width: var(--ck-table-form-dimensions-input-width); + padding: 0; +} + +.ck.ck-table-cell-properties-form .ck-form__row.ck-table-cell-properties-form__alignment-row .ck.ck-toolbar.ck-table-cell-properties-form__vertical-alignment-toolbar { + flex-grow: 1; +} + +.ck.ck-table-cell-properties-form .ck-form__row.ck-table-cell-properties-form__alignment-row .ck.ck-toolbar:first-of-type { + flex-grow: .57; +} + +.ck.ck-table-cell-properties-form .ck-form__row.ck-table-cell-properties-form__alignment-row .ck.ck-toolbar:last-of-type { + flex-grow: .43; +} + +.ck.ck-table-cell-properties-form .ck-form__row.ck-table-cell-properties-form__alignment-row .ck.ck-toolbar .ck-button { + flex-grow: 1; +} + +.ck.ck-table-cell-properties-form .ck-form__row.ck-table-cell-properties-form__alignment-row { + flex-wrap: wrap; +} + +.ck.ck-table-cell-properties-form .ck-form__row.ck-table-form__border-row .ck-labeled-field-view > .ck-label { + font-size: var(--ck-font-size-tiny); + text-align: center; +} + +.ck.ck-table-cell-properties-form .ck-form__row.ck-table-form__border-row .ck-table-form__border-style, .ck.ck-table-cell-properties-form .ck-form__row.ck-table-form__border-row .ck-table-form__border-width { + width: 80px; + min-width: 80px; + max-width: 80px; +} + +.ck.ck-table-cell-properties-form .ck-form__row.ck-table-form__dimensions-row { + --ck-table-form-dimensions-input-width: calc(var(--ck-table-form-default-input-width) * 2 + var(--ck-spacing-large)); + width: var(--ck-table-form-dimensions-input-width); + max-width: var(--ck-table-form-dimensions-input-width); + min-width: var(--ck-table-form-dimensions-input-width); + padding: 0; +} + +.ck.ck-table-cell-properties-form .ck-form__row.ck-table-form__dimensions-row .ck-table-form__dimensions-row__width, .ck.ck-table-cell-properties-form .ck-form__row.ck-table-form__dimensions-row .ck-table-form__dimensions-row__height { + width: var(--ck-table-form-default-input-width); + min-width: var(--ck-table-form-default-input-width); + max-width: var(--ck-table-form-default-input-width); + margin: 0; +} + +.ck.ck-table-cell-properties-form .ck-form__row.ck-table-form__dimensions-row .ck-table-form__dimension-operator { + width: 0; + height: var(--ck-ui-component-min-height); + line-height: var(--ck-ui-component-min-height); + margin: 0 var(--ck-spacing-small); + align-self: flex-end; + display: inline-block; + position: relative; + left: -.5ch; + overflow: visible; +} + +.ck.ck-table-cell-properties-form .ck-form__row.ck-form__row.ck-table-form__action-row > .ck.ck-button { + flex-grow: initial; +} + +.ck.ck-table-cell-properties-form .ck-form__row.ck-form__row.ck-table-form__action-row > .ck.ck-button .ck-button__label { + color: currentColor; +} + +.ck.ck-table-cell-properties-form .ck-form__row.ck-table-form__cell-type-row { + --ck-table-form-dimensions-input-width: calc(var(--ck-table-form-default-input-width) * 2 + var(--ck-spacing-large)); + width: var(--ck-table-form-dimensions-input-width); + max-width: var(--ck-table-form-dimensions-input-width); + min-width: var(--ck-table-form-dimensions-input-width); + padding: 0; +} + +:root { + --ck-table-layout-widget-type-around-button-size: 16px; + --ck-table-layout-widget-type-around-icon-width: 10px; + --ck-table-layout-widget-type-around-icon-height: 8px; + --ck-table-layout-widget-handler-icon-size: 10px; + --ck-table-layout-default-border-color: #d4d4d4; +} + +.ck-content table.table.layout-table, .ck-content figure.table.layout-table { + margin-top: 0; + margin-bottom: 0; +} + +.ck-content table.table.layout-table, .ck-content figure.table.layout-table > table { + border-spacing: 0; +} + +.ck-editor__editable .table.layout-table > table { + border-collapse: revert; + width: 100%; + height: 100%; +} + +.ck-editor__editable .table.layout-table > table:not([style*="border:"], [style*="border-top"], [style*="border-bottom"], [style*="border-left"], [style*="border-right"], [style*="border-width"], [style*="border-style"], [style*="border-color"]) { + border-width: 0; + border-color: #0000; + outline: none; +} + +.ck-editor__editable .table.layout-table > table > tbody > tr > td { + box-shadow: revert; + padding: revert; + text-indent: 1px; + border-color: var(--ck-table-layout-default-border-color); + border-style: dashed; + min-width: 2em; +} + +.ck-editor__editable .table.layout-table > table > tbody > tr > td[style^="width:"], .ck-editor__editable .table.layout-table > table > tbody > tr > td[style*=" width:"], .ck-editor__editable .table.layout-table > table > tbody > tr > td[style*=";width:"] { + min-width: auto; +} + +.ck-editor__editable .table.layout-table > table > tbody > tr > td:focus { + background-color: #0000; +} + +.ck-editor__editable .table.layout-table > table > tbody > tr > td:not([style*="border:"], [style*="border-top"], [style*="border-bottom"], [style*="border-left"], [style*="border-right"], [style*="border-width"], [style*="border-style"], [style*="border-color"]) { + outline: var(--ck-table-layout-default-border-color) 1px dashed; + outline-offset: -1px; + border-width: 0; + border-color: #0000; +} + +.ck-editor__editable .table.layout-table > table > tbody > tr > td:not([style*="border:"], [style*="border-top"], [style*="border-bottom"], [style*="border-left"], [style*="border-right"], [style*="border-width"], [style*="border-style"], [style*="border-color"]):focus { + outline: var(--ck-color-focus-border) 1px solid; +} + +.ck-editor__editable .table.layout-table > table > tbody > tr > td > .ck-table-bogus-paragraph { + text-indent: 0; + width: calc(100% - 1px); +} + +.ck-editor__editable .table.layout-table.ck-widget > .ck-widget__type-around { + --ck-widget-type-around-button-size: var(--ck-table-layout-widget-type-around-button-size); +} + +.ck-editor__editable .table.layout-table.ck-widget > .ck-widget__type-around > .ck-widget__type-around__button.ck-widget__type-around__button_before, .ck-editor__editable .table.layout-table.ck-widget > .ck-widget__type-around > .ck-widget__type-around__button.ck-widget__type-around__button_after { + z-index: 2; + transform: translateY(0); +} + +.ck-editor__editable .table.layout-table.ck-widget > .ck-widget__type-around > .ck-widget__type-around__button.ck-widget__type-around__button_before { + margin-left: var(--ck-table-layout-widget-type-around-button-size); + border-radius: 0 0 100px 100px; + left: min(10%, 30px); +} + +.ck-editor__editable .table.layout-table.ck-widget > .ck-widget__type-around > .ck-widget__type-around__button.ck-widget__type-around__button_before:after { + border-radius: 0 0 100px 100px; +} + +.ck-editor__editable .table.layout-table.ck-widget > .ck-widget__type-around > .ck-widget__type-around__button.ck-widget__type-around__button_after { + border-radius: 100px 100px 0 0; +} + +.ck-editor__editable .table.layout-table.ck-widget > .ck-widget__type-around > .ck-widget__type-around__button.ck-widget__type-around__button_after:after { + border-radius: 100px 100px 0 0; +} + +.ck-editor__editable .table.layout-table.ck-widget > .ck-widget__type-around > .ck-widget__type-around__button svg { + width: var(--ck-table-layout-widget-type-around-icon-width); + height: var(--ck-table-layout-widget-type-around-icon-height); +} + +.ck-editor__editable .table.layout-table.ck-widget.ck-widget_with-selection-handle > .ck-widget__selection-handle { + --ck-widget-handler-icon-size: var(--ck-table-layout-widget-handler-icon-size); + transform: translateY(calc(0px - var(--ck-widget-outline-thickness))); + z-index: 3; +} + +.ck-editor__editable .table.layout-table.ck-widget.ck-widget_type-around_show-fake-caret_before > .ck-widget__type-around > .ck-widget__type-around__fake-caret { + top: 0; +} + +.ck-editor__editable .table.layout-table.ck-widget.ck-widget_type-around_show-fake-caret_after > .ck-widget__type-around > .ck-widget__type-around__fake-caret { + bottom: 0; +} + +.ck-editor__editable .table.layout-table.ck-widget:hover { + z-index: var(--ck-z-default); +} + +.ck-editor__editable .table.layout-table.ck-widget:hover > .ck-widget__selection-handle { + opacity: .75; + visibility: visible; +} + +.ck-editor__editable .table.layout-table.ck-widget:hover > .ck-widget__selection-handle:hover { + opacity: 1; +} + +.ck-editor__editable .table.layout-table.ck-widget:has(.ck-widget.table:hover) > .ck-widget__selection-handle { + opacity: 0; + visibility: hidden; +} + +.ck-editor__editable .table.layout-table.ck-widget.ck-widget_selected { + z-index: var(--ck-z-default); +} + +.ck-editor__editable .table.layout-table { + margin: 0; + display: table; +} + +.ck-editor__editable.ck-editor__editable_inline > .ck-widget.ck-widget_with-selection-handle.layout-table:first-child { + margin-top: var(--ck-spacing-large); +} + +.ck-editor__editable.ck-editor__editable_inline > .ck-widget.ck-widget_with-selection-handle.layout-table:last-child, .ck-editor__editable.ck-editor__editable_inline > .ck-widget.ck-widget_with-selection-handle.layout-table:nth-last-child(2):has( + .ck-fake-selection-container) { + margin-bottom: var(--ck-spacing-large); +} + +.ck.ck-form__row > :not(.ck-label) + * { + margin-inline-start: var(--ck-spacing-large); +} + +.ck.ck-form__row > .ck-label { + width: 100%; + min-width: 100%; +} + +.ck.ck-form__row.ck-table-form__action-row { + margin-top: var(--ck-spacing-large); + justify-content: flex-end; +} + +.ck.ck-form__row.ck-table-form__action-row .ck-button-save, .ck.ck-form__row.ck-table-form__action-row .ck-button-cancel { + justify-content: center; +} + +:root { + --ck-table-properties-error-arrow-size: 6px; + --ck-table-properties-min-error-width: 150px; +} + +.ck.ck-table-form { + --ck-table-form-default-input-width: 80px; +} + +.ck.ck-table-form .ck-form__row.ck-table-form__border-row .ck-labeled-field-view > .ck-label { + font-size: var(--ck-font-size-tiny); + text-align: center; +} + +.ck.ck-table-form .ck-form__row.ck-table-form__border-row .ck-table-form__border-style, .ck.ck-table-form .ck-form__row.ck-table-form__border-row .ck-table-form__border-width { + width: var(--ck-table-form-default-input-width); + min-width: var(--ck-table-form-default-input-width); + max-width: var(--ck-table-form-default-input-width); +} + +.ck.ck-table-form .ck-form__row.ck-table-form__dimensions-row { + --ck-table-form-dimensions-input-width: calc(var(--ck-table-form-default-input-width) * 2 + var(--ck-spacing-large)); + width: var(--ck-table-form-dimensions-input-width); + max-width: var(--ck-table-form-dimensions-input-width); + min-width: var(--ck-table-form-dimensions-input-width); + padding: 0; +} + +.ck.ck-table-form .ck-form__row.ck-table-form__dimensions-row .ck-table-form__dimensions-row__width, .ck.ck-table-form .ck-form__row.ck-table-form__dimensions-row .ck-table-form__dimensions-row__height { + width: var(--ck-table-form-default-input-width); + min-width: var(--ck-table-form-default-input-width); + max-width: var(--ck-table-form-default-input-width); + margin: 0; +} + +.ck.ck-table-form .ck-form__row.ck-table-form__dimensions-row .ck-table-form__dimension-operator { + width: 0; + height: var(--ck-ui-component-min-height); + line-height: var(--ck-ui-component-min-height); + margin: 0 var(--ck-spacing-small); + align-self: flex-end; + display: inline-block; + position: relative; + left: -.5ch; + overflow: visible; +} + +.ck.ck-table-form .ck-form__row.ck-table-form__border-row, .ck.ck-table-form .ck-form__row.ck-table-form__background-row, .ck.ck-table-form .ck-form__row.ck-table-form__cell-type-row { + flex-wrap: wrap; +} + +.ck.ck-table-form .ck-form__row.ck-table-form__dimensions-row, .ck.ck-table-form .ck-form__row.ck-table-form__cell-type-row { + flex-wrap: wrap; + align-items: center; +} + +:is(.ck.ck-table-form .ck-form__row.ck-table-form__dimensions-row, .ck.ck-table-form .ck-form__row.ck-table-form__cell-type-row) .ck-labeled-field-view { + flex-direction: column-reverse; + align-items: center; + display: flex; +} + +:is(.ck.ck-table-form .ck-form__row.ck-table-form__dimensions-row, .ck.ck-table-form .ck-form__row.ck-table-form__cell-type-row) .ck-labeled-field-view .ck.ck-dropdown { + flex-grow: 0; +} + +.ck.ck-table-form .ck-form__row:not(.ck-table-form__action-row) > :not(.ck-label, .ck-table-form__dimension-operator) { + flex-grow: 1; +} + +.ck.ck-table-form .ck.ck-labeled-field-view { + padding-top: var(--ck-spacing-standard); +} + +.ck.ck-table-form .ck.ck-labeled-field-view .ck.ck-labeled-field-view__status { + border-radius: var(--ck-rounded-corners-radius); + background: var(--ck-color-base-error); + color: var(--ck-color-base-background); + padding: var(--ck-spacing-small) var(--ck-spacing-medium); + min-width: var(--ck-table-properties-min-error-width); + text-align: center; + left: 50%; + bottom: calc(-1 * var(--ck-table-properties-error-arrow-size)); + animation: .15s both ck-table-form-labeled-view-status-appear; + position: absolute; + transform: translate(-50%, 100%); +} + +.ck.ck-table-form .ck.ck-labeled-field-view .ck.ck-labeled-field-view__status:after { + border-color: transparent transparent var(--ck-color-base-error) transparent; + border-width: 0 var(--ck-table-properties-error-arrow-size) var(--ck-table-properties-error-arrow-size) var(--ck-table-properties-error-arrow-size); + content: ""; + top: calc(-1 * var(--ck-table-properties-error-arrow-size)); + border-style: solid; + position: absolute; + left: 50%; + transform: translateX(-50%); +} + +@media (prefers-reduced-motion: reduce) { + .ck.ck-table-form .ck.ck-labeled-field-view .ck.ck-labeled-field-view__status { + animation: none; + } +} + +.ck.ck-table-form .ck.ck-labeled-field-view .ck.ck-labeled-field-view__status { + z-index: 1; +} + +.ck.ck-table-form .ck.ck-labeled-field-view .ck-input.ck-error:not(:focus) + .ck.ck-labeled-field-view__status { + display: none; +} + +.ck.ck-table-form .ck.ck-labeled-field-view { + position: relative; +} + +@keyframes ck-table-form-labeled-view-status-appear { + 0% { + opacity: 0; + } + + 100% { + opacity: 1; + } +} + +.ck.ck-table-properties-form { + width: 320px; +} + +.ck.ck-table-properties-form .ck-form__row.ck-table-properties-form__alignment-row { + flex-wrap: wrap; + flex-basis: 0; + align-content: baseline; + align-self: flex-end; +} + +.ck.ck-table-properties-form .ck-form__row.ck-table-properties-form__alignment-row .ck.ck-toolbar { + margin-top: var(--ck-spacing-standard); + background: none; +} + +.ck.ck-table-properties-form .ck-form__row.ck-table-properties-form__alignment-row .ck.ck-toolbar .ck-toolbar__items > * { + flex: 1; +} + +.ck.ck-table-properties-form .ck-form__row.ck-table-properties-form__alignment-row .ck.ck-toolbar .ck-toolbar__items { + flex-wrap: nowrap; +} + +:root { + --ck-content-table-style-spacing: 1.5em; +} + +.ck-content .table.table-style-align-left { + float: left; + margin-right: var(--ck-content-table-style-spacing); +} + +.ck-content .table.table-style-align-right { + float: right; + margin-left: var(--ck-content-table-style-spacing); +} + +.ck-content .table.table-style-align-center { + margin-left: auto; + margin-right: auto; +} + +.ck-content .table.table-style-block-align-left { + margin-left: 0; + margin-right: auto; +} + +.ck-content .table.table-style-block-align-right { + margin-left: auto; + margin-right: 0; +} + +.ck-editor__editable .table.layout-table.table-style-align-center { + margin-left: auto; + margin-right: auto; +} + +.ck-editor__editable .table.layout-table.table-style-align-left { + margin-right: var(--ck-content-table-style-spacing); +} + +.ck-editor__editable .table.layout-table.table-style-align-right { + margin-left: var(--ck-content-table-style-spacing); +} + +.ck-editor__editable .table.layout-table.table-style-block-align-left { + margin-left: 0; + margin-right: auto; +} + +.ck-editor__editable .table.layout-table.table-style-block-align-right { + margin-left: auto; + margin-right: 0; +} + +:root { + --ck-content-color-table-caption-background: #f7f7f7; + --ck-content-color-table-caption-text: #333; + --ck-color-table-caption-highlighted-background: #fd0; +} + +.ck-content .table > figcaption, .ck-content figure.table > table > caption { + caption-side: top; + word-break: normal; + overflow-wrap: anywhere; + text-align: center; + color: var(--ck-content-color-table-caption-text); + background-color: var(--ck-content-color-table-caption-background); + outline-offset: -1px; + padding: .6em; + font-size: .75em; + display: table-caption; +} + +@media (forced-colors: active) { + .ck-content .table > figcaption, .ck-content figure.table > table > caption { + background-color: unset; + color: unset; + } +} + +@media (forced-colors: none) { + :is(.ck.ck-editor__editable .table > figcaption, .ck.ck-editor__editable figure.table > table > caption).table__caption_highlighted { + animation: .6s ease-out ck-table-caption-highlight; + } +} + +:is(.ck.ck-editor__editable .table > figcaption, .ck.ck-editor__editable figure.table > table > caption).ck-placeholder:before { + padding-left: inherit; + padding-right: inherit; + white-space: nowrap; + text-overflow: ellipsis; + overflow: hidden; +} + +@keyframes ck-table-caption-highlight { + 0% { + background-color: var(--ck-color-table-caption-highlighted-background); + } + + 100% { + background-color: var(--ck-content-color-table-caption-background); + } +} + +:root { + --ck-table-selected-cell-background: #9ecffa4d; +} + +.ck.ck-editor__editable .table table td.ck-editor__editable_selected, .ck.ck-editor__editable .table table th.ck-editor__editable_selected { + caret-color: #0000; + box-shadow: unset; + position: relative; +} + +:is(.ck.ck-editor__editable .table table td.ck-editor__editable_selected, .ck.ck-editor__editable .table table th.ck-editor__editable_selected):after { + content: ""; + pointer-events: none; + background-color: var(--ck-table-selected-cell-background); + position: absolute; + inset: 0; +} + +:is(.ck.ck-editor__editable .table table td.ck-editor__editable_selected, .ck.ck-editor__editable .table table th.ck-editor__editable_selected) ::selection, :is(.ck.ck-editor__editable .table table td.ck-editor__editable_selected, .ck.ck-editor__editable .table table th.ck-editor__editable_selected):focus { + background-color: #0000; +} + +:is(.ck.ck-editor__editable .table table td.ck-editor__editable_selected, .ck.ck-editor__editable .table table th.ck-editor__editable_selected) .ck-widget { + outline: unset; +} + +:is(.ck.ck-editor__editable .table table td.ck-editor__editable_selected, .ck.ck-editor__editable .table table th.ck-editor__editable_selected) .ck-widget > .ck-widget__selection-handle { + display: none; +} + +:root { + --ck-color-table-column-resizer-hover: var(--ck-color-base-active); + --ck-table-column-resizer-width: 7px; + --ck-table-column-resizer-position-offset: calc(var(--ck-table-column-resizer-width) * -.5 - .5px); +} + +.ck-content .table .ck-table-resized { + table-layout: fixed; +} + +.ck-content .table td, .ck-content .table th { + overflow-wrap: break-word; +} + +.ck.ck-editor__editable .table td, .ck.ck-editor__editable .table th { + position: relative; +} + +.ck.ck-editor__editable .table .ck-table-column-resizer { + top: 0; + bottom: 0; + right: var(--ck-table-column-resizer-position-offset); + width: var(--ck-table-column-resizer-width); + cursor: col-resize; + user-select: none; + z-index: var(--ck-z-default); + position: absolute; +} + +.ck.ck-editor__editable.ck-column-resize_disabled .table .ck-table-column-resizer, .ck.ck-editor__editable .table[draggable] .ck-table-column-resizer { + display: none; +} + +.ck.ck-editor__editable .table .ck-table-column-resizer:hover, .ck.ck-editor__editable .table .ck-table-column-resizer__active { + background-color: var(--ck-color-table-column-resizer-hover); + opacity: .25; +} + +.ck.ck-editor__editable[dir="rtl"] .table .ck-table-column-resizer { + left: var(--ck-table-column-resizer-position-offset); + right: unset; +} + +[dir="ltr"] :is(.ck.ck-input-color > .ck.ck-input-text) { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} + +[dir="rtl"] :is(.ck.ck-input-color > .ck.ck-input-text) { + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} + +.ck.ck-input-color > .ck.ck-input-text:focus { + z-index: 0; +} + +.ck.ck-input-color > .ck.ck-dropdown > .ck.ck-button.ck-input-color__button { + padding: 0; + display: flex; +} + +[dir="ltr"] :is(.ck.ck-input-color > .ck.ck-dropdown > .ck.ck-button.ck-input-color__button) { + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} + +[dir="ltr"] :is(.ck.ck-input-color > .ck.ck-dropdown > .ck.ck-button.ck-input-color__button):not(:focus) { + border-left: 1px solid #0000; +} + +[dir="rtl"] :is(.ck.ck-input-color > .ck.ck-dropdown > .ck.ck-button.ck-input-color__button) { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} + +[dir="rtl"] :is(.ck.ck-input-color > .ck.ck-dropdown > .ck.ck-button.ck-input-color__button):not(:focus) { + border-right: 1px solid #0000; +} + +.ck.ck-input-color > .ck.ck-dropdown > .ck.ck-button.ck-input-color__button.ck-disabled { + background: var(--ck-color-input-disabled-background); +} + +.ck.ck-input-color > .ck.ck-dropdown > .ck.ck-button.ck-input-color__button > .ck.ck-input-color__button__preview { + border-radius: var(--ck-rounded-corners-radius); + border: 1px solid var(--ck-color-input-border); + width: 20px; + height: 20px; + position: relative; + overflow: hidden; +} + +.ck.ck-input-color > .ck.ck-dropdown > .ck.ck-button.ck-input-color__button > .ck.ck-input-color__button__preview > .ck.ck-input-color__button__preview__no-color-indicator { + transform-origin: 50%; + background: red; + border-radius: 2px; + width: 8%; + height: 150%; + display: block; + position: absolute; + top: -30%; + left: 50%; + transform: rotate(45deg); +} + +.ck.ck-input-color .ck.ck-input-color__remove-color { + width: 100%; + padding: calc(var(--ck-spacing-standard) / 2) var(--ck-spacing-standard); + border-bottom-right-radius: 0; + border-bottom-left-radius: 0; +} + +.ck.ck-input-color .ck.ck-input-color__remove-color:not(:focus) { + border-bottom: 1px solid var(--ck-color-input-border); +} + +[dir="ltr"] :is(.ck.ck-input-color .ck.ck-input-color__remove-color) { + border-top-right-radius: 0; +} + +[dir="rtl"] :is(.ck.ck-input-color .ck.ck-input-color__remove-color) { + border-top-left-radius: 0; +} + +.ck.ck-input-color .ck.ck-input-color__remove-color .ck.ck-icon { + margin-right: var(--ck-spacing-standard); +} + +[dir="rtl"] :is(.ck.ck-input-color .ck.ck-input-color__remove-color .ck.ck-icon) { + margin-right: 0; + margin-left: var(--ck-spacing-standard); +} + +.ck.ck-input-color { + flex-direction: row-reverse; + width: 100%; + display: flex; +} + +.ck.ck-input-color > input.ck.ck-input-text { + flex-grow: 1; + min-width: auto; +} + +.ck.ck-input-color > div.ck.ck-dropdown { + min-width: auto; +} + +.ck.ck-input-color > div.ck.ck-dropdown > .ck-input-color__button .ck-dropdown__arrow { + display: none; +} + +:root { + --ck-insert-table-dropdown-padding: 10px; + --ck-insert-table-dropdown-box-height: 11px; + --ck-insert-table-dropdown-box-width: 12px; + --ck-insert-table-dropdown-box-margin: 1px; +} + +.ck .ck-insert-table-dropdown__grid { + width: calc(var(--ck-insert-table-dropdown-box-width) * 10 + var(--ck-insert-table-dropdown-box-margin) * 20 + var(--ck-insert-table-dropdown-padding) * 2); + padding: var(--ck-insert-table-dropdown-padding) var(--ck-insert-table-dropdown-padding) 0; + flex-flow: wrap; + display: flex; +} + +.ck .ck-insert-table-dropdown__label, .ck[dir="rtl"] .ck-insert-table-dropdown__label { + text-align: center; +} + +.ck .ck-insert-table-dropdown-grid-box { + min-width: var(--ck-insert-table-dropdown-box-width); + min-height: var(--ck-insert-table-dropdown-box-height); + margin: var(--ck-insert-table-dropdown-box-margin); + border: 1px solid var(--ck-color-base-border); + border-radius: 1px; + outline: none; + transition: none; +} + +@media (prefers-reduced-motion: reduce) { + .ck .ck-insert-table-dropdown-grid-box { + transition: none; + } +} + +.ck .ck-insert-table-dropdown-grid-box:focus { + box-shadow: none; +} + +.ck .ck-insert-table-dropdown-grid-box.ck-on { + border-color: var(--ck-color-focus-border); + background: var(--ck-color-focus-outer-shadow); +} diff --git a/frontend/src/vendor/ckeditor/ckeditor.js b/frontend/src/vendor/ckeditor/ckeditor.js index 093e190d861..ee51ef5cc65 100644 --- a/frontend/src/vendor/ckeditor/ckeditor.js +++ b/frontend/src/vendor/ckeditor/ckeditor.js @@ -1,7 +1,6 @@ -!function(e){const t=e.en=e.en||{};t.dictionary=Object.assign(t.dictionary||{},{"(may require Fn)":"(may require Fn)","%0 of %1":"%0 of %1",Accept:"Accept",Accessibility:"Accessibility","Accessibility help":"Accessibility help","Align cell text to the bottom":"Align cell text to the bottom","Align cell text to the center":"Align cell text to the center","Align cell text to the left":"Align cell text to the left","Align cell text to the middle":"Align cell text to the middle","Align cell text to the right":"Align cell text to the right","Align cell text to the top":"Align cell text to the top","Align table to the left":"Align table to the left","Align table to the right":"Align table to the right",Alignment:"Alignment",Aquamarine:"Aquamarine",Background:"Background","Below, you can find a list of keyboard shortcuts that can be used in the editor.":"Below, you can find a list of keyboard shortcuts that can be used in the editor.",Black:"Black","Block quote":"Block quote",Blue:"Blue",Bold:"Bold","Bold text":"Bold text",Border:"Border","Break text":"Break text","Bulleted List":"Bulleted List","Bulleted list styles toolbar":"Bulleted list styles toolbar",Cancel:"Cancel","Cannot upload file:":"Cannot upload file:","Caption for image: %0":"Caption for image: %0","Caption for the image":"Caption for the image","Cell properties":"Cell properties","Center table":"Center table","Centered image":"Centered image","Change image text alternative":"Change image text alternative","Choose heading":"Choose heading",Circle:"Circle",Clear:"Clear","Click to edit block":"Click to edit block",Close:"Close","Close contextual balloons, dropdowns, and dialogs":"Close contextual balloons, dropdowns, and dialogs",Code:"Code",Color:"Color","Color picker":"Color picker",Column:"Column","Content editing keystrokes":"Content editing keystrokes","Copy selected content":"Copy selected content","Create link":"Create link",Custom:"Custom","Custom image size":"Custom image size",Dashed:"Dashed",Decimal:"Decimal","Decimal with leading zero":"Decimal with leading zero","Decrease list item indent":"Decrease list item indent","Delete column":"Delete column","Delete row":"Delete row","Dim grey":"Dim grey",Dimensions:"Dimensions",Disc:"Disc",Dotted:"Dotted",Double:"Double",Downloadable:"Downloadable","Drag to move":"Drag to move","Dropdown menu":"Dropdown menu","Dropdown toolbar":"Dropdown toolbar","Edit block":"Edit block","Edit link":"Edit link","Editor block content toolbar":"Editor block content toolbar","Editor contextual toolbar":"Editor contextual toolbar","Editor dialog":"Editor dialog","Editor menu bar":"Editor menu bar","Editor toolbar":"Editor toolbar","Enter image caption":"Enter image caption","Enter table caption":"Enter table caption","Entering a to-do list":"Entering a to-do list","Error during image upload":"Error during image upload","Execute the currently focused button. Executing buttons that interact with the editor content moves the focus back to the content.":"Execute the currently focused button. Executing buttons that interact with the editor content moves the focus back to the content.","From computer":"From computer","Full size image":"Full size image",Green:"Green",Grey:"Grey",Groove:"Groove","Header column":"Header column","Header row":"Header row",Heading:"Heading","Heading 1":"Heading 1","Heading 2":"Heading 2","Heading 3":"Heading 3","Heading 4":"Heading 4","Heading 5":"Heading 5","Heading 6":"Heading 6",Height:"Height","Help Contents. To close this dialog press ESC.":"Help Contents. To close this dialog press ESC.",HEX:"HEX","Horizontal text alignment toolbar":"Horizontal text alignment toolbar",Image:"Image","Image from computer":"Image from computer","Image resize list":"Image resize list","Image toolbar":"Image toolbar","Image upload complete":"Image upload complete","Image via URL":"Image via URL","image widget":"image widget","In line":"In line","Increase list item indent":"Increase list item indent","Insert a hard break (a new paragraph)":"Insert a hard break (a new paragraph)","Insert a new paragraph directly after a widget":"Insert a new paragraph directly after a widget","Insert a new paragraph directly before a widget":"Insert a new paragraph directly before a widget","Insert a new table row (when in the last cell of a table)":"Insert a new table row (when in the last cell of a table)","Insert a soft break (a <br> element)":"Insert a soft break (a <br> element)","Insert column left":"Insert column left","Insert column right":"Insert column right","Insert image":"Insert image","Insert image via URL":"Insert image via URL","Insert paragraph after block":"Insert paragraph after block","Insert paragraph before block":"Insert paragraph before block","Insert row above":"Insert row above","Insert row below":"Insert row below","Insert table":"Insert table","Insert via URL":"Insert via URL",Inset:"Inset","Invalid start index value.":"Invalid start index value.",Italic:"Italic","Italic text":"Italic text","Justify cell text":"Justify cell text","Keystrokes that can be used in a list":"Keystrokes that can be used in a list","Keystrokes that can be used in a table cell":"Keystrokes that can be used in a table cell","Keystrokes that can be used when a widget is selected (for example: image, table, etc.)":"Keystrokes that can be used when a widget is selected (for example: image, table, etc.)","Leaving a to-do list":"Leaving a to-do list","Left aligned image":"Left aligned image","Light blue":"Light blue","Light green":"Light green","Light grey":"Light grey",Link:"Link","Link image":"Link image","Link URL":"Link URL","Link URL must not be empty.":"Link URL must not be empty.","List properties":"List properties","Lower-latin":"Lower-latin","Lower–roman":"Lower–roman",MENU_BAR_MENU_EDIT:"Edit",MENU_BAR_MENU_FILE:"File",MENU_BAR_MENU_FONT:"Font",MENU_BAR_MENU_FORMAT:"Format",MENU_BAR_MENU_HELP:"Help",MENU_BAR_MENU_INSERT:"Insert",MENU_BAR_MENU_TEXT:"Text",MENU_BAR_MENU_TOOLS:"Tools",MENU_BAR_MENU_VIEW:"View","Merge cell down":"Merge cell down","Merge cell left":"Merge cell left","Merge cell right":"Merge cell right","Merge cell up":"Merge cell up","Merge cells":"Merge cells","Move focus between form fields (inputs, buttons, etc.)":"Move focus between form fields (inputs, buttons, etc.)","Move focus from an editable area back to the parent widget":"Move focus from an editable area back to the parent widget","Move focus in and out of an active dialog window":"Move focus in and out of an active dialog window","Move focus to the menu bar, navigate between menu bars":"Move focus to the menu bar, navigate between menu bars","Move focus to the toolbar, navigate between toolbars":"Move focus to the toolbar, navigate between toolbars","Move out of a link":"Move out of a link","Move out of an inline code style":"Move out of an inline code style","Move the caret to allow typing directly after a widget":"Move the caret to allow typing directly after a widget","Move the caret to allow typing directly before a widget":"Move the caret to allow typing directly before a widget","Move the selection to the next cell":"Move the selection to the next cell","Move the selection to the previous cell":"Move the selection to the previous cell","Navigate through the table":"Navigate through the table","Navigate through the toolbar or menu bar":"Navigate through the toolbar or menu bar",Next:"Next","No results found":"No results found","No searchable items":"No searchable items",None:"None","Numbered List":"Numbered List","Numbered list styles toolbar":"Numbered list styles toolbar","Open in a new tab":"Open in a new tab","Open link in new tab":"Open link in new tab","Open the accessibility help dialog":"Open the accessibility help dialog",Orange:"Orange",Original:"Original",Outset:"Outset",Padding:"Padding","Page break":"Page break",Paragraph:"Paragraph","Paste content":"Paste content","Paste content as plain text":"Paste content as plain text",'Please enter a valid color (e.g. "ff0000").':'Please enter a valid color (e.g. "ff0000").',"Press %0 for help.":"Press %0 for help.","Press Enter to type after or press Shift + Enter to type before the widget":"Press Enter to type after or press Shift + Enter to type before the widget",Previous:"Previous",Purple:"Purple",Red:"Red",Redo:"Redo","Remove color":"Remove color","Replace from computer":"Replace from computer","Replace image":"Replace image","Replace image from computer":"Replace image from computer","Resize image":"Resize image","Resize image (in %0)":"Resize image (in %0)","Resize image to %0":"Resize image to %0","Resize image to the original size":"Resize image to the original size","Restore default":"Restore default","Reversed order":"Reversed order","Revert autoformatting action":"Revert autoformatting action","Rich Text Editor":"Rich Text Editor","Rich Text Editor. Editing area: %0":"Rich Text Editor. Editing area: %0",Ridge:"Ridge","Right aligned image":"Right aligned image",Row:"Row",Save:"Save","Saving changes":"Saving changes","Scroll to target":"Scroll to target","Select all":"Select all","Select column":"Select column","Select row":"Select row","Show more items":"Show more items","Side image":"Side image",Solid:"Solid","Split cell horizontally":"Split cell horizontally","Split cell vertically":"Split cell vertically",Square:"Square","Start at":"Start at","Start index must be greater than 0.":"Start index must be greater than 0.",Strikethrough:"Strikethrough","Strikethrough text":"Strikethrough text",Style:"Style",Subscript:"Subscript",Superscript:"Superscript",Table:"Table","Table alignment toolbar":"Table alignment toolbar","Table cell text alignment":"Table cell text alignment","Table properties":"Table properties","Table toolbar":"Table toolbar","Text alternative":"Text alternative",'The color is invalid. Try "#FF0000" or "rgb(255,0,0)" or "red".':'The color is invalid. Try "#FF0000" or "rgb(255,0,0)" or "red".','The value is invalid. Try "10px" or "2em" or simply "2".':'The value is invalid. Try "10px" or "2em" or simply "2".',"The value must not be empty.":"The value must not be empty.","The value should be a plain number.":"The value should be a plain number.","These keyboard shortcuts allow for quick access to content editing features.":"These keyboard shortcuts allow for quick access to content editing features.","This link has no URL":"This link has no URL","To-do List":"To-do List","Toggle caption off":"Toggle caption off","Toggle caption on":"Toggle caption on","Toggle the circle list style":"Toggle the circle list style","Toggle the decimal list style":"Toggle the decimal list style","Toggle the decimal with leading zero list style":"Toggle the decimal with leading zero list style","Toggle the disc list style":"Toggle the disc list style","Toggle the lower–latin list style":"Toggle the lower–latin list style","Toggle the lower–roman list style":"Toggle the lower–roman list style","Toggle the square list style":"Toggle the square list style","Toggle the upper–latin list style":"Toggle the upper–latin list style","Toggle the upper–roman list style":"Toggle the upper–roman list style",Turquoise:"Turquoise","Type or paste your content here.":"Type or paste your content here.","Type your title":"Type your title",Underline:"Underline","Underline text":"Underline text",Undo:"Undo",Unlink:"Unlink","Update image URL":"Update image URL","Upload failed":"Upload failed","Upload from computer":"Upload from computer","Upload image from computer":"Upload image from computer","Upload in progress":"Upload in progress","Uploading image":"Uploading image","Upper-latin":"Upper-latin","Upper-roman":"Upper-roman","Use the following keystrokes for more efficient navigation in the CKEditor 5 user interface.":"Use the following keystrokes for more efficient navigation in the CKEditor 5 user interface.","User interface and content navigation keystrokes":"User interface and content navigation keystrokes","Vertical text alignment toolbar":"Vertical text alignment toolbar","Via URL":"Via URL",White:"White","Widget toolbar":"Widget toolbar",Width:"Width","Wrap text":"Wrap text",Yellow:"Yellow","You have no image upload permissions.":"You have no image upload permissions."}),t.getPluralForm=function(e){return 1!=e}}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={})), /*! * @license Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved. * For licensing, see LICENSE.md. */ -function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.OPEditor=t():e.OPEditor=t()}(self,(()=>(()=>{var e,t,o={55:(e,t,o)=>{"use strict";o.d(t,{A:()=>a});var n=o(1354),i=o.n(n),r=o(6314),s=o.n(r)()(i());s.push([e.id,".ck.ck-menu-bar__menu{display:block;font-size:inherit;position:relative}.ck.ck-menu-bar__menu.ck-menu-bar__menu_top-level{max-width:100%}","",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/components/menubar/menubarmenu.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-ui/components/menubar/menubarmenu.css"],names:[],mappings:"AAKA,sBACC,aAAc,CCCd,iBAAkB,CDAlB,iBACD,CCCC,kDACC,cACD",sourcesContent:["/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n.ck.ck-menu-bar__menu {\n\tdisplay: block;\n\tposition: relative;\n}\n","/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n.ck.ck-menu-bar__menu {\n\t/* Enable font size inheritance, which allows fluid UI scaling. */\n\tfont-size: inherit;\n\n\t&.ck-menu-bar__menu_top-level {\n\t\tmax-width: 100%;\n\t}\n}\n"],sourceRoot:""}]);const a=s},66:(e,t,o)=>{"use strict";o.d(t,{A:()=>a});var n=o(1354),i=o.n(n),r=o(6314),s=o.n(r)()(i());s.push([e.id,".ck.ck-toolbar{align-items:center;display:flex;flex-flow:row nowrap;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none}.ck.ck-toolbar>.ck-toolbar__items{align-items:center;display:flex;flex-flow:row wrap;flex-grow:1}.ck.ck-toolbar .ck.ck-toolbar__separator{display:inline-block}.ck.ck-toolbar .ck.ck-toolbar__separator:first-child,.ck.ck-toolbar .ck.ck-toolbar__separator:last-child{display:none}.ck.ck-toolbar .ck-toolbar__line-break{flex-basis:100%}.ck.ck-toolbar.ck-toolbar_grouping>.ck-toolbar__items{flex-wrap:nowrap}.ck.ck-toolbar.ck-toolbar_vertical>.ck-toolbar__items{flex-direction:column}.ck.ck-toolbar.ck-toolbar_floating>.ck-toolbar__items{flex-wrap:nowrap}.ck.ck-toolbar>.ck.ck-toolbar__grouped-dropdown>.ck-dropdown__button .ck-dropdown__arrow{display:none}.ck.ck-toolbar{background:var(--ck-color-toolbar-background);border:1px solid var(--ck-color-toolbar-border);border-radius:0;padding:0 var(--ck-spacing-small)}.ck-rounded-corners .ck.ck-toolbar,.ck.ck-toolbar.ck-rounded-corners{border-radius:var(--ck-border-radius)}.ck.ck-toolbar .ck.ck-toolbar__separator{background:var(--ck-color-toolbar-border);height:var(--ck-icon-size);margin-bottom:var(--ck-spacing-small);margin-top:var(--ck-spacing-small);min-width:1px;width:1px}.ck.ck-toolbar .ck-toolbar__line-break{height:0}.ck.ck-toolbar>.ck-toolbar__items>:not(.ck-toolbar__line-break){margin-right:var(--ck-spacing-small)}.ck.ck-toolbar>.ck-toolbar__items:empty+.ck.ck-toolbar__separator{display:none}.ck.ck-toolbar>.ck-toolbar__items>:not(.ck-toolbar__line-break),.ck.ck-toolbar>.ck.ck-toolbar__grouped-dropdown{margin-bottom:var(--ck-spacing-small);margin-top:var(--ck-spacing-small)}.ck.ck-toolbar.ck-toolbar_vertical{padding:0}.ck.ck-toolbar.ck-toolbar_vertical>.ck-toolbar__items>.ck{border-radius:0;margin:0;width:100%}.ck.ck-toolbar.ck-toolbar_compact{padding:0}.ck.ck-toolbar.ck-toolbar_compact>.ck-toolbar__items>*{margin:0}.ck.ck-toolbar.ck-toolbar_compact>.ck-toolbar__items>:not(:first-child):not(:last-child){border-radius:0}.ck.ck-toolbar>.ck.ck-toolbar__grouped-dropdown>.ck.ck-button.ck-dropdown__button{padding-left:var(--ck-spacing-tiny)}.ck.ck-toolbar .ck-toolbar__nested-toolbar-dropdown>.ck-dropdown__panel{min-width:auto}.ck.ck-toolbar .ck-toolbar__nested-toolbar-dropdown>.ck-button>.ck-button__label{max-width:7em;width:auto}.ck.ck-toolbar:focus{outline:none}.ck-toolbar-container .ck.ck-toolbar{border:0}.ck.ck-toolbar[dir=rtl]>.ck-toolbar__items>.ck,[dir=rtl] .ck.ck-toolbar>.ck-toolbar__items>.ck{margin-right:0}.ck.ck-toolbar[dir=rtl]:not(.ck-toolbar_compact)>.ck-toolbar__items>.ck,[dir=rtl] .ck.ck-toolbar:not(.ck-toolbar_compact)>.ck-toolbar__items>.ck{margin-left:var(--ck-spacing-small)}.ck.ck-toolbar[dir=rtl]>.ck-toolbar__items>.ck:last-child,[dir=rtl] .ck.ck-toolbar>.ck-toolbar__items>.ck:last-child{margin-left:0}.ck.ck-toolbar.ck-toolbar_compact[dir=rtl]>.ck-toolbar__items>.ck:first-child,[dir=rtl] .ck.ck-toolbar.ck-toolbar_compact>.ck-toolbar__items>.ck:first-child{border-bottom-left-radius:0;border-top-left-radius:0}.ck.ck-toolbar.ck-toolbar_compact[dir=rtl]>.ck-toolbar__items>.ck:last-child,[dir=rtl] .ck.ck-toolbar.ck-toolbar_compact>.ck-toolbar__items>.ck:last-child{border-bottom-right-radius:0;border-top-right-radius:0}.ck.ck-toolbar.ck-toolbar_grouping[dir=rtl]>.ck-toolbar__items:not(:empty):not(:only-child),.ck.ck-toolbar[dir=rtl]>.ck.ck-toolbar__separator,[dir=rtl] .ck.ck-toolbar.ck-toolbar_grouping>.ck-toolbar__items:not(:empty):not(:only-child),[dir=rtl] .ck.ck-toolbar>.ck.ck-toolbar__separator{margin-left:var(--ck-spacing-small)}.ck.ck-toolbar[dir=ltr]>.ck-toolbar__items>.ck:last-child,[dir=ltr] .ck.ck-toolbar>.ck-toolbar__items>.ck:last-child{margin-right:0}.ck.ck-toolbar.ck-toolbar_compact[dir=ltr]>.ck-toolbar__items>.ck:first-child,[dir=ltr] .ck.ck-toolbar.ck-toolbar_compact>.ck-toolbar__items>.ck:first-child{border-bottom-right-radius:0;border-top-right-radius:0}.ck.ck-toolbar.ck-toolbar_compact[dir=ltr]>.ck-toolbar__items>.ck:last-child,[dir=ltr] .ck.ck-toolbar.ck-toolbar_compact>.ck-toolbar__items>.ck:last-child{border-bottom-left-radius:0;border-top-left-radius:0}.ck.ck-toolbar.ck-toolbar_grouping[dir=ltr]>.ck-toolbar__items:not(:empty):not(:only-child),.ck.ck-toolbar[dir=ltr]>.ck.ck-toolbar__separator,[dir=ltr] .ck.ck-toolbar.ck-toolbar_grouping>.ck-toolbar__items:not(:empty):not(:only-child),[dir=ltr] .ck.ck-toolbar>.ck.ck-toolbar__separator{margin-right:var(--ck-spacing-small)}","",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/components/toolbar/toolbar.css","webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/mixins/_unselectable.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-ui/components/toolbar/toolbar.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/mixins/_rounded.css"],names:[],mappings:"AAOA,eAKC,kBAAmB,CAFnB,YAAa,CACb,oBAAqB,CCFrB,qBAAsB,CACtB,wBAAyB,CACzB,oBAAqB,CACrB,gBD6CD,CA3CC,kCAGC,kBAAmB,CAFnB,YAAa,CACb,kBAAmB,CAEnB,WAED,CAEA,yCACC,oBAWD,CAJC,yGAEC,YACD,CAGD,uCACC,eACD,CAEA,sDACC,gBACD,CAEA,sDACC,qBACD,CAEA,sDACC,gBACD,CAGC,yFACC,YACD,CE/CF,eAGC,6CAA8C,CAE9C,+CAAgD,CCFhD,eAAgB,CDChB,iCAuGD,CCtGC,qEAEC,qCAED,CDFA,yCAIC,yCAA0C,CAH1C,0BAA2B,CAU3B,qCAAsC,CADtC,kCAAmC,CAPnC,aAAc,CADd,SAUD,CAEA,uCACC,QACD,CAGC,gEAEC,oCACD,CAIA,kEACC,YACD,CAGD,gHAIC,qCAAsC,CADtC,kCAED,CAEA,mCAEC,SAaD,CAVC,0DAQC,eAAgB,CAHhB,QAAS,CAHT,UAOD,CAGD,kCAEC,SAWD,CATC,uDAEC,QAMD,CAHC,yFACC,eACD,CASD,kFACC,mCACD,CAMA,wEACC,cACD,CAEA,iFACC,aAAc,CACd,UACD,CAGD,qBACC,YACD,CAEA,qCACC,QACD,CAaA,+FACC,cACD,CAEA,iJAEC,mCACD,CAEA,qHACC,aACD,CAIC,6JAEC,2BAA4B,CAD5B,wBAED,CAGA,2JAEC,4BAA6B,CAD7B,yBAED,CASD,8RACC,mCACD,CAWA,qHACC,cACD,CAIC,6JAEC,4BAA6B,CAD7B,yBAED,CAGA,2JAEC,2BAA4B,CAD5B,wBAED,CASD,8RACC,oCACD",sourcesContent:['/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n@import "../../mixins/_unselectable.css";\n\n.ck.ck-toolbar {\n\t@mixin ck-unselectable;\n\n\tdisplay: flex;\n\tflex-flow: row nowrap;\n\talign-items: center;\n\n\t& > .ck-toolbar__items {\n\t\tdisplay: flex;\n\t\tflex-flow: row wrap;\n\t\talign-items: center;\n\t\tflex-grow: 1;\n\n\t}\n\n\t& .ck.ck-toolbar__separator {\n\t\tdisplay: inline-block;\n\n\t\t/*\n\t\t * A leading or trailing separator makes no sense (separates from nothing on one side).\n\t\t * For instance, it can happen when toolbar items (also separators) are getting grouped one by one and\n\t\t * moved to another toolbar in the dropdown.\n\t\t */\n\t\t&:first-child,\n\t\t&:last-child {\n\t\t\tdisplay: none;\n\t\t}\n\t}\n\n\t& .ck-toolbar__line-break {\n\t\tflex-basis: 100%;\n\t}\n\n\t&.ck-toolbar_grouping > .ck-toolbar__items {\n\t\tflex-wrap: nowrap;\n\t}\n\n\t&.ck-toolbar_vertical > .ck-toolbar__items {\n\t\tflex-direction: column;\n\t}\n\n\t&.ck-toolbar_floating > .ck-toolbar__items {\n\t\tflex-wrap: nowrap;\n\t}\n\n\t& > .ck.ck-toolbar__grouped-dropdown {\n\t\t& > .ck-dropdown__button .ck-dropdown__arrow {\n\t\t\tdisplay: none;\n\t\t}\n\t}\n}\n',"/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/**\n * Makes element unselectable.\n */\n@define-mixin ck-unselectable {\n\t-moz-user-select: none;\n\t-webkit-user-select: none;\n\t-ms-user-select: none;\n\tuser-select: none\n}\n",'/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n@import "../../../mixins/_rounded.css";\n@import "@ckeditor/ckeditor5-ui/theme/mixins/_dir.css";\n\n.ck.ck-toolbar {\n\t@mixin ck-rounded-corners;\n\n\tbackground: var(--ck-color-toolbar-background);\n\tpadding: 0 var(--ck-spacing-small);\n\tborder: 1px solid var(--ck-color-toolbar-border);\n\n\t& .ck.ck-toolbar__separator {\n\t\theight: var(--ck-icon-size);\n\t\twidth: 1px;\n\t\tmin-width: 1px;\n\t\tbackground: var(--ck-color-toolbar-border);\n\n\t\t/*\n\t\t * These margins make the separators look better in balloon toolbars (when aligned with the "tip").\n\t\t * See https://github.com/ckeditor/ckeditor5/issues/7493.\n\t\t */\n\t\tmargin-top: var(--ck-spacing-small);\n\t\tmargin-bottom: var(--ck-spacing-small);\n\t}\n\n\t& .ck-toolbar__line-break {\n\t\theight: 0;\n\t}\n\n\t& > .ck-toolbar__items {\n\t\t& > *:not(.ck-toolbar__line-break) {\n\t\t\t/* (#11) Separate toolbar items. */\n\t\t\tmargin-right: var(--ck-spacing-small);\n\t\t}\n\n\t\t/* Don\'t display a separator after an empty items container, for instance,\n\t\twhen all items were grouped */\n\t\t&:empty + .ck.ck-toolbar__separator {\n\t\t\tdisplay: none;\n\t\t}\n\t}\n\n\t& > .ck-toolbar__items > *:not(.ck-toolbar__line-break),\n\t& > .ck.ck-toolbar__grouped-dropdown {\n\t\t/* Make sure items wrapped to the next line have v-spacing */\n\t\tmargin-top: var(--ck-spacing-small);\n\t\tmargin-bottom: var(--ck-spacing-small);\n\t}\n\n\t&.ck-toolbar_vertical {\n\t\t/* Items in a vertical toolbar span the entire width. */\n\t\tpadding: 0;\n\n\t\t/* Specificity matters here. See https://github.com/ckeditor/ckeditor5-theme-lark/issues/168. */\n\t\t& > .ck-toolbar__items > .ck {\n\t\t\t/* Items in a vertical toolbar should span the horizontal space. */\n\t\t\twidth: 100%;\n\n\t\t\t/* Items in a vertical toolbar should have no margin. */\n\t\t\tmargin: 0;\n\n\t\t\t/* Items in a vertical toolbar span the entire width so rounded corners are pointless. */\n\t\t\tborder-radius: 0;\n\t\t}\n\t}\n\n\t&.ck-toolbar_compact {\n\t\t/* No spacing around items. */\n\t\tpadding: 0;\n\n\t\t& > .ck-toolbar__items > * {\n\t\t\t/* Compact toolbar items have no spacing between them. */\n\t\t\tmargin: 0;\n\n\t\t\t/* "Middle" children should have no rounded corners. */\n\t\t\t&:not(:first-child):not(:last-child) {\n\t\t\t\tborder-radius: 0;\n\t\t\t}\n\t\t}\n\t}\n\n\t& > .ck.ck-toolbar__grouped-dropdown {\n\t\t/*\n\t\t * Dropdown button has asymmetric padding to fit the arrow.\n\t\t * This button has no arrow so let\'s revert that padding back to normal.\n\t\t */\n\t\t& > .ck.ck-button.ck-dropdown__button {\n\t\t\tpadding-left: var(--ck-spacing-tiny);\n\t\t}\n\t}\n\n\t/* A drop-down containing the nested toolbar with configured items. */\n\t& .ck-toolbar__nested-toolbar-dropdown {\n\t\t/* Prevent empty space in the panel when the dropdown label is visible and long but the toolbar has few items. */\n\t\t& > .ck-dropdown__panel {\n\t\t\tmin-width: auto;\n\t\t}\n\n\t\t& > .ck-button > .ck-button__label {\n\t\t\tmax-width: 7em;\n\t\t\twidth: auto;\n\t\t}\n\t}\n\n\t&:focus {\n\t\toutline: none;\n\t}\n\n\t.ck-toolbar-container & {\n\t\tborder: 0;\n\t}\n}\n\n/* stylelint-disable */\n\n/*\n * Styles for RTL toolbars.\n *\n * Note: In some cases (e.g. a decoupled editor), the toolbar has its own "dir"\n * because its parent is not controlled by the editor framework.\n */\n[dir="rtl"] .ck.ck-toolbar,\n.ck.ck-toolbar[dir="rtl"] {\n\t& > .ck-toolbar__items > .ck {\n\t\tmargin-right: 0;\n\t}\n\n\t&:not(.ck-toolbar_compact) > .ck-toolbar__items > .ck {\n\t\t/* (#11) Separate toolbar items. */\n\t\tmargin-left: var(--ck-spacing-small);\n\t}\n\n\t& > .ck-toolbar__items > .ck:last-child {\n\t\tmargin-left: 0;\n\t}\n\n\t&.ck-toolbar_compact > .ck-toolbar__items > .ck {\n\t\t/* No rounded corners on the right side of the first child. */\n\t\t&:first-child {\n\t\t\tborder-top-left-radius: 0;\n\t\t\tborder-bottom-left-radius: 0;\n\t\t}\n\n\t\t/* No rounded corners on the left side of the last child. */\n\t\t&:last-child {\n\t\t\tborder-top-right-radius: 0;\n\t\t\tborder-bottom-right-radius: 0;\n\t\t}\n\t}\n\n\t/* Separate the the separator form the grouping dropdown when some items are grouped. */\n\t& > .ck.ck-toolbar__separator {\n\t\tmargin-left: var(--ck-spacing-small);\n\t}\n\n\t/* Some spacing between the items and the separator before the grouped items dropdown. */\n\t&.ck-toolbar_grouping > .ck-toolbar__items:not(:empty):not(:only-child) {\n\t\tmargin-left: var(--ck-spacing-small);\n\t}\n}\n\n/*\n * Styles for LTR toolbars.\n *\n * Note: In some cases (e.g. a decoupled editor), the toolbar has its own "dir"\n * because its parent is not controlled by the editor framework.\n */\n[dir="ltr"] .ck.ck-toolbar,\n.ck.ck-toolbar[dir="ltr"] {\n\t& > .ck-toolbar__items > .ck:last-child {\n\t\tmargin-right: 0;\n\t}\n\n\t&.ck-toolbar_compact > .ck-toolbar__items > .ck {\n\t\t/* No rounded corners on the right side of the first child. */\n\t\t&:first-child {\n\t\t\tborder-top-right-radius: 0;\n\t\t\tborder-bottom-right-radius: 0;\n\t\t}\n\n\t\t/* No rounded corners on the left side of the last child. */\n\t\t&:last-child {\n\t\t\tborder-top-left-radius: 0;\n\t\t\tborder-bottom-left-radius: 0;\n\t\t}\n\t}\n\n\t/* Separate the the separator form the grouping dropdown when some items are grouped. */\n\t& > .ck.ck-toolbar__separator {\n\t\tmargin-right: var(--ck-spacing-small);\n\t}\n\n\t/* Some spacing between the items and the separator before the grouped items dropdown. */\n\t&.ck-toolbar_grouping > .ck-toolbar__items:not(:empty):not(:only-child) {\n\t\tmargin-right: var(--ck-spacing-small);\n\t}\n}\n\n/* stylelint-enable */\n',"/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/**\n * Implements rounded corner interface for .ck-rounded-corners class.\n *\n * @see $ck-border-radius\n */\n@define-mixin ck-rounded-corners {\n\tborder-radius: 0;\n\n\t.ck-rounded-corners &,\n\t&.ck-rounded-corners {\n\t\tborder-radius: var(--ck-border-radius);\n\t\t@mixin-content;\n\t}\n}\n"],sourceRoot:""}]);const a=s},178:(e,t,o)=>{"use strict";o.d(t,{A:()=>a});var n=o(1354),i=o.n(n),r=o(6314),s=o.n(r)()(i());s.push([e.id,":root{--ck-color-editable-blur-selection:#d9d9d9}.ck.ck-editor__editable:not(.ck-editor__nested-editable){border-radius:0}.ck-rounded-corners .ck.ck-editor__editable:not(.ck-editor__nested-editable),.ck.ck-editor__editable.ck-rounded-corners:not(.ck-editor__nested-editable){border-radius:var(--ck-border-radius)}.ck.ck-editor__editable.ck-focused:not(.ck-editor__nested-editable){border:var(--ck-focus-ring);box-shadow:var(--ck-inner-shadow),0 0;outline:none}.ck.ck-editor__editable_inline{border:1px solid transparent;overflow:auto;padding:0 var(--ck-spacing-standard)}.ck.ck-editor__editable_inline[dir=ltr]{text-align:left}.ck.ck-editor__editable_inline[dir=rtl]{text-align:right}.ck.ck-editor__editable_inline>:first-child{margin-top:var(--ck-spacing-large)}.ck.ck-editor__editable_inline>:last-child{margin-bottom:var(--ck-spacing-large)}.ck.ck-editor__editable_inline.ck-blurred ::selection{background:var(--ck-color-editable-blur-selection)}.ck.ck-balloon-panel.ck-toolbar-container[class*=arrow_n]:after{border-bottom-color:var(--ck-color-panel-background)}.ck.ck-balloon-panel.ck-toolbar-container[class*=arrow_s]:after{border-top-color:var(--ck-color-panel-background)}","",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-ui/components/editorui/editorui.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/mixins/_rounded.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/mixins/_focus.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/mixins/_shadow.css"],names:[],mappings:"AAWA,MACC,0CACD,CAEA,yDCJC,eDWD,CCTC,yJAEC,qCAED,CDCA,oEEPA,2BAA2B,CCF3B,qCAA8B,CDC9B,YFWA,CAGD,+BAGC,4BAA6B,CAF7B,aAAc,CACd,oCA6BD,CA1BC,wCACC,eACD,CAEA,wCACC,gBACD,CAGA,4CACC,kCACD,CAGA,2CAKC,qCACD,CAGA,sDACC,kDACD,CAKA,gEACC,oDACD,CAIA,gEACC,iDACD",sourcesContent:['/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n@import "../../../mixins/_rounded.css";\n@import "../../../mixins/_disabled.css";\n@import "../../../mixins/_shadow.css";\n@import "../../../mixins/_focus.css";\n@import "../../mixins/_button.css";\n\n:root {\n\t--ck-color-editable-blur-selection: hsl(0, 0%, 85%);\n}\n\n.ck.ck-editor__editable:not(.ck-editor__nested-editable) {\n\t@mixin ck-rounded-corners;\n\n\t&.ck-focused {\n\t\t@mixin ck-focus-ring;\n\t\t@mixin ck-box-shadow var(--ck-inner-shadow);\n\t}\n}\n\n.ck.ck-editor__editable_inline {\n\toverflow: auto;\n\tpadding: 0 var(--ck-spacing-standard);\n\tborder: 1px solid transparent;\n\n\t&[dir="ltr"] {\n\t\ttext-align: left;\n\t}\n\n\t&[dir="rtl"] {\n\t\ttext-align: right;\n\t}\n\n\t/* https://github.com/ckeditor/ckeditor5-theme-lark/issues/116 */\n\t& > *:first-child {\n\t\tmargin-top: var(--ck-spacing-large);\n\t}\n\n\t/* https://github.com/ckeditor/ckeditor5/issues/847 */\n\t& > *:last-child {\n\t\t/*\n\t\t * This value should match with the default margins of the block elements (like .media or .image)\n\t\t * to avoid a content jumping when the fake selection container shows up (See https://github.com/ckeditor/ckeditor5/issues/9825).\n\t\t */\n\t\tmargin-bottom: var(--ck-spacing-large);\n\t}\n\n\t/* https://github.com/ckeditor/ckeditor5/issues/6517 */\n\t&.ck-blurred ::selection {\n\t\tbackground: var(--ck-color-editable-blur-selection);\n\t}\n}\n\n/* https://github.com/ckeditor/ckeditor5-theme-lark/issues/111 */\n.ck.ck-balloon-panel.ck-toolbar-container[class*="arrow_n"] {\n\t&::after {\n\t\tborder-bottom-color: var(--ck-color-panel-background);\n\t}\n}\n\n.ck.ck-balloon-panel.ck-toolbar-container[class*="arrow_s"] {\n\t&::after {\n\t\tborder-top-color: var(--ck-color-panel-background);\n\t}\n}\n',"/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/**\n * Implements rounded corner interface for .ck-rounded-corners class.\n *\n * @see $ck-border-radius\n */\n@define-mixin ck-rounded-corners {\n\tborder-radius: 0;\n\n\t.ck-rounded-corners &,\n\t&.ck-rounded-corners {\n\t\tborder-radius: var(--ck-border-radius);\n\t\t@mixin-content;\n\t}\n}\n","/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/**\n * A visual style of focused element's border.\n */\n@define-mixin ck-focus-ring {\n\t/* Disable native outline. */\n\toutline: none;\n\tborder: var(--ck-focus-ring)\n}\n","/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/**\n * A helper to combine multiple shadows.\n */\n@define-mixin ck-box-shadow $shadowA, $shadowB: 0 0 {\n\tbox-shadow: $shadowA, $shadowB;\n}\n\n/**\n * Gives an element a drop shadow so it looks like a floating panel.\n */\n@define-mixin ck-drop-shadow {\n\t@mixin ck-box-shadow var(--ck-drop-shadow);\n}\n"],sourceRoot:""}]);const a=s},426:(e,t,o)=>{"use strict";o.d(t,{A:()=>a});var n=o(1354),i=o.n(n),r=o(6314),s=o.n(r)()(i());s.push([e.id,":root{--ck-dropdown-max-width:75vw}.ck.ck-dropdown{display:inline-block;position:relative}.ck.ck-dropdown .ck-dropdown__arrow{pointer-events:none;z-index:var(--ck-z-default)}.ck.ck-dropdown .ck-button.ck-dropdown__button{width:100%}.ck.ck-dropdown .ck-dropdown__panel{display:none;max-width:var(--ck-dropdown-max-width);position:absolute;z-index:var(--ck-z-panel)}.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel-visible{display:inline-block}.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_n,.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_ne,.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_nme,.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_nmw,.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_nw{bottom:100%}.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_s,.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_se,.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_sme,.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_smw,.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_sw{bottom:auto;top:100%}.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_ne,.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_se{left:0}.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_nw,.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_sw{right:0}.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_n,.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_s{left:50%;transform:translateX(-50%)}.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_nmw,.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_smw{left:75%;transform:translateX(-75%)}.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_nme,.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_sme{left:25%;transform:translateX(-25%)}.ck.ck-toolbar .ck-dropdown__panel{z-index:calc(var(--ck-z-panel) + 1)}:root{--ck-dropdown-arrow-size:calc(var(--ck-icon-size)*0.5)}.ck.ck-dropdown{font-size:inherit}.ck.ck-dropdown .ck-dropdown__arrow{width:var(--ck-dropdown-arrow-size)}[dir=ltr] .ck.ck-dropdown .ck-dropdown__arrow{margin-left:var(--ck-spacing-standard);right:var(--ck-spacing-standard)}[dir=rtl] .ck.ck-dropdown .ck-dropdown__arrow{left:var(--ck-spacing-standard);margin-right:var(--ck-spacing-small)}.ck.ck-dropdown.ck-disabled .ck-dropdown__arrow{opacity:var(--ck-disabled-opacity)}[dir=ltr] .ck.ck-dropdown .ck-button.ck-dropdown__button:not(.ck-button_with-text){padding-left:var(--ck-spacing-small)}[dir=rtl] .ck.ck-dropdown .ck-button.ck-dropdown__button:not(.ck-button_with-text){padding-right:var(--ck-spacing-small)}.ck.ck-dropdown .ck-button.ck-dropdown__button .ck-button__label{overflow:hidden;text-overflow:ellipsis;width:7em}.ck.ck-dropdown .ck-button.ck-dropdown__button.ck-disabled .ck-button__label{opacity:var(--ck-disabled-opacity)}.ck.ck-dropdown .ck-button.ck-dropdown__button.ck-on{border-bottom-left-radius:0;border-bottom-right-radius:0}.ck.ck-dropdown .ck-button.ck-dropdown__button.ck-dropdown__button_label-width_auto .ck-button__label{width:auto}.ck.ck-dropdown .ck-button.ck-dropdown__button.ck-off:active,.ck.ck-dropdown .ck-button.ck-dropdown__button.ck-on:active{box-shadow:none}.ck.ck-dropdown .ck-button.ck-dropdown__button.ck-off:active:focus,.ck.ck-dropdown .ck-button.ck-dropdown__button.ck-on:active:focus{box-shadow:var(--ck-focus-outer-shadow),0 0}.ck.ck-dropdown__panel{background:var(--ck-color-dropdown-panel-background);border:1px solid var(--ck-color-dropdown-panel-border);border-radius:0;bottom:0;min-width:100%}.ck-rounded-corners .ck.ck-dropdown__panel,.ck.ck-dropdown__panel.ck-rounded-corners{border-radius:var(--ck-border-radius)}.ck.ck-dropdown__panel{box-shadow:var(--ck-drop-shadow),0 0}.ck.ck-dropdown__panel.ck-dropdown__panel_se{border-top-left-radius:0}.ck.ck-dropdown__panel.ck-dropdown__panel_sw{border-top-right-radius:0}.ck.ck-dropdown__panel.ck-dropdown__panel_ne{border-bottom-left-radius:0}.ck.ck-dropdown__panel.ck-dropdown__panel_nw{border-bottom-right-radius:0}.ck.ck-dropdown__panel:focus{outline:none}","",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/components/dropdown/dropdown.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-ui/components/dropdown/dropdown.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/mixins/_disabled.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/mixins/_shadow.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/mixins/_rounded.css"],names:[],mappings:"AAKA,MACC,4BACD,CAEA,gBACC,oBAAqB,CACrB,iBA2ED,CAzEC,oCACC,mBAAoB,CACpB,2BACD,CAGA,+CACC,UACD,CAEA,oCACC,YAAa,CAEb,sCAAuC,CAEvC,iBAAkB,CAHlB,yBA4DD,CAvDC,+DACC,oBACD,CAEA,mSAKC,WACD,CAEA,mSAUC,WAAY,CADZ,QAED,CAEA,oHAEC,MACD,CAEA,oHAEC,OACD,CAEA,kHAGC,QAAS,CACT,0BACD,CAEA,sHAGC,QAAS,CACT,0BACD,CAEA,sHAGC,QAAS,CACT,0BACD,CAQF,mCACC,mCACD,CCpFA,MACC,sDACD,CAEA,gBAEC,iBA2ED,CAzEC,oCACC,mCACD,CAGC,8CAIC,sCAAuC,CAHvC,gCAID,CAIA,8CACC,+BAAgC,CAGhC,oCACD,CAGD,gDC/BA,kCDiCA,CAIE,mFAEC,oCACD,CAIA,mFAEC,qCACD,CAID,iEAEC,eAAgB,CAChB,sBAAuB,CAFvB,SAGD,CAGA,6EC1DD,kCD4DC,CAGA,qDACC,2BAA4B,CAC5B,4BACD,CAEA,sGACC,UACD,CAGA,yHAEC,eAKD,CAHC,qIE7EF,2CF+EE,CAKH,uBAIC,oDAAqD,CACrD,sDAAuD,CGvFvD,eAAgB,CHwFhB,QAAS,CAGT,cAuBD,CGhHC,qFAEC,qCAED,CH4ED,uBEpFC,oCFoHD,CAnBC,6CACC,wBACD,CAEA,6CACC,yBACD,CAEA,6CACC,2BACD,CAEA,6CACC,4BACD,CAEA,6BACC,YACD",sourcesContent:["/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n:root {\n\t--ck-dropdown-max-width: 75vw;\n}\n\n.ck.ck-dropdown {\n\tdisplay: inline-block;\n\tposition: relative;\n\n\t& .ck-dropdown__arrow {\n\t\tpointer-events: none;\n\t\tz-index: var(--ck-z-default);\n\t}\n\n\t/* Dropdown button should span horizontally, e.g. in vertical toolbars */\n\t& .ck-button.ck-dropdown__button {\n\t\twidth: 100%;\n\t}\n\n\t& .ck-dropdown__panel {\n\t\tdisplay: none;\n\t\tz-index: var(--ck-z-panel);\n\t\tmax-width: var(--ck-dropdown-max-width);\n\n\t\tposition: absolute;\n\n\t\t&.ck-dropdown__panel-visible {\n\t\t\tdisplay: inline-block;\n\t\t}\n\n\t\t&.ck-dropdown__panel_ne,\n\t\t&.ck-dropdown__panel_nw,\n\t\t&.ck-dropdown__panel_n,\n\t\t&.ck-dropdown__panel_nmw,\n\t\t&.ck-dropdown__panel_nme {\n\t\t\tbottom: 100%;\n\t\t}\n\n\t\t&.ck-dropdown__panel_se,\n\t\t&.ck-dropdown__panel_sw,\n\t\t&.ck-dropdown__panel_smw,\n\t\t&.ck-dropdown__panel_sme,\n\t\t&.ck-dropdown__panel_s {\n\t\t\t/*\n\t\t\t * Using transform: translate3d( 0, 100%, 0 ) causes blurry dropdown on Chrome 67-78+ on non-retina displays.\n\t\t\t * See https://github.com/ckeditor/ckeditor5/issues/1053.\n\t\t\t */\n\t\t\ttop: 100%;\n\t\t\tbottom: auto;\n\t\t}\n\n\t\t&.ck-dropdown__panel_ne,\n\t\t&.ck-dropdown__panel_se {\n\t\t\tleft: 0px;\n\t\t}\n\n\t\t&.ck-dropdown__panel_nw,\n\t\t&.ck-dropdown__panel_sw {\n\t\t\tright: 0px;\n\t\t}\n\n\t\t&.ck-dropdown__panel_s,\n\t\t&.ck-dropdown__panel_n {\n\t\t\t/* Positioning panels relative to the center of the button */\n\t\t\tleft: 50%;\n\t\t\ttransform: translateX(-50%);\n\t\t}\n\n\t\t&.ck-dropdown__panel_nmw,\n\t\t&.ck-dropdown__panel_smw {\n\t\t\t/* Positioning panels relative to the middle-west of the button */\n\t\t\tleft: 75%;\n\t\t\ttransform: translateX(-75%);\n\t\t}\n\n\t\t&.ck-dropdown__panel_nme,\n\t\t&.ck-dropdown__panel_sme {\n\t\t\t/* Positioning panels relative to the middle-east of the button */\n\t\t\tleft: 25%;\n\t\t\ttransform: translateX(-25%);\n\t\t}\n\t}\n}\n\n/*\n * Toolbar dropdown panels should be always above the UI (eg. other dropdown panels) from the editor's content.\n * See https://github.com/ckeditor/ckeditor5/issues/7874\n */\n.ck.ck-toolbar .ck-dropdown__panel {\n\tz-index: calc( var(--ck-z-panel) + 1 );\n}\n",'/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n@import "../../../mixins/_rounded.css";\n@import "../../../mixins/_disabled.css";\n@import "../../../mixins/_shadow.css";\n@import "@ckeditor/ckeditor5-ui/theme/mixins/_dir.css";\n\n:root {\n\t--ck-dropdown-arrow-size: calc(0.5 * var(--ck-icon-size));\n}\n\n.ck.ck-dropdown {\n\t/* Enable font size inheritance, which allows fluid UI scaling. */\n\tfont-size: inherit;\n\n\t& .ck-dropdown__arrow {\n\t\twidth: var(--ck-dropdown-arrow-size);\n\t}\n\n\t@mixin ck-dir ltr {\n\t\t& .ck-dropdown__arrow {\n\t\t\tright: var(--ck-spacing-standard);\n\n\t\t\t/* A space to accommodate the triangle. */\n\t\t\tmargin-left: var(--ck-spacing-standard);\n\t\t}\n\t}\n\n\t@mixin ck-dir rtl {\n\t\t& .ck-dropdown__arrow {\n\t\t\tleft: var(--ck-spacing-standard);\n\n\t\t\t/* A space to accommodate the triangle. */\n\t\t\tmargin-right: var(--ck-spacing-small);\n\t\t}\n\t}\n\n\t&.ck-disabled .ck-dropdown__arrow {\n\t\t@mixin ck-disabled;\n\t}\n\n\t& .ck-button.ck-dropdown__button {\n\t\t@mixin ck-dir ltr {\n\t\t\t&:not(.ck-button_with-text) {\n\t\t\t\t/* Make sure dropdowns with just an icon have the right inner spacing */\n\t\t\t\tpadding-left: var(--ck-spacing-small);\n\t\t\t}\n\t\t}\n\n\t\t@mixin ck-dir rtl {\n\t\t\t&:not(.ck-button_with-text) {\n\t\t\t\t/* Make sure dropdowns with just an icon have the right inner spacing */\n\t\t\t\tpadding-right: var(--ck-spacing-small);\n\t\t\t}\n\t\t}\n\n\t\t/* #23 */\n\t\t& .ck-button__label {\n\t\t\twidth: 7em;\n\t\t\toverflow: hidden;\n\t\t\ttext-overflow: ellipsis;\n\t\t}\n\n\t\t/* https://github.com/ckeditor/ckeditor5-theme-lark/issues/70 */\n\t\t&.ck-disabled .ck-button__label {\n\t\t\t@mixin ck-disabled;\n\t\t}\n\n\t\t/* https://github.com/ckeditor/ckeditor5/issues/816 */\n\t\t&.ck-on {\n\t\t\tborder-bottom-left-radius: 0;\n\t\t\tborder-bottom-right-radius: 0;\n\t\t}\n\n\t\t&.ck-dropdown__button_label-width_auto .ck-button__label {\n\t\t\twidth: auto;\n\t\t}\n\n\t\t/* https://github.com/ckeditor/ckeditor5/issues/8699 */\n\t\t&.ck-off:active,\n\t\t&.ck-on:active {\n\t\t\tbox-shadow: none;\n\n\t\t\t&:focus {\n\t\t\t\t@mixin ck-box-shadow var(--ck-focus-outer-shadow);\n\t\t\t}\n\t\t}\n\t}\n}\n\n.ck.ck-dropdown__panel {\n\t@mixin ck-rounded-corners;\n\t@mixin ck-drop-shadow;\n\n\tbackground: var(--ck-color-dropdown-panel-background);\n\tborder: 1px solid var(--ck-color-dropdown-panel-border);\n\tbottom: 0;\n\n\t/* Make sure the panel is at least as wide as the drop-down\'s button. */\n\tmin-width: 100%;\n\n\t/* Disabled corner border radius to be consistent with the .dropdown__button\n\thttps://github.com/ckeditor/ckeditor5/issues/816 */\n\t&.ck-dropdown__panel_se {\n\t\tborder-top-left-radius: 0;\n\t}\n\n\t&.ck-dropdown__panel_sw {\n\t\tborder-top-right-radius: 0;\n\t}\n\n\t&.ck-dropdown__panel_ne {\n\t\tborder-bottom-left-radius: 0;\n\t}\n\n\t&.ck-dropdown__panel_nw {\n\t\tborder-bottom-right-radius: 0;\n\t}\n\n\t&:focus {\n\t\toutline: none;\n\t}\n}\n',"/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/**\n * A class which indicates that an element holding it is disabled.\n */\n@define-mixin ck-disabled {\n\topacity: var(--ck-disabled-opacity);\n}\n","/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/**\n * A helper to combine multiple shadows.\n */\n@define-mixin ck-box-shadow $shadowA, $shadowB: 0 0 {\n\tbox-shadow: $shadowA, $shadowB;\n}\n\n/**\n * Gives an element a drop shadow so it looks like a floating panel.\n */\n@define-mixin ck-drop-shadow {\n\t@mixin ck-box-shadow var(--ck-drop-shadow);\n}\n","/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/**\n * Implements rounded corner interface for .ck-rounded-corners class.\n *\n * @see $ck-border-radius\n */\n@define-mixin ck-rounded-corners {\n\tborder-radius: 0;\n\n\t.ck-rounded-corners &,\n\t&.ck-rounded-corners {\n\t\tborder-radius: var(--ck-border-radius);\n\t\t@mixin-content;\n\t}\n}\n"],sourceRoot:""}]);const a=s},532:(e,t,o)=>{"use strict";o.d(t,{A:()=>a});var n=o(1354),i=o.n(n),r=o(6314),s=o.n(r)()(i());s.push([e.id,".ck-content ol{list-style-type:decimal}.ck-content ol ol{list-style-type:lower-latin}.ck-content ol ol ol{list-style-type:lower-roman}.ck-content ol ol ol ol{list-style-type:upper-latin}.ck-content ol ol ol ol ol{list-style-type:upper-roman}.ck-content ul{list-style-type:disc}.ck-content ul ul{list-style-type:circle}.ck-content ul ul ul,.ck-content ul ul ul ul{list-style-type:square}","",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-list/theme/list.css"],names:[],mappings:"AAKA,eACC,uBAiBD,CAfC,kBACC,2BAaD,CAXC,qBACC,2BASD,CAPC,wBACC,2BAKD,CAHC,2BACC,2BACD,CAMJ,eACC,oBAaD,CAXC,kBACC,sBASD,CAJE,6CACC,sBACD",sourcesContent:["/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n.ck-content ol {\n\tlist-style-type: decimal;\n\n\t& ol {\n\t\tlist-style-type: lower-latin;\n\n\t\t& ol {\n\t\t\tlist-style-type: lower-roman;\n\n\t\t\t& ol {\n\t\t\t\tlist-style-type: upper-latin;\n\n\t\t\t\t& ol {\n\t\t\t\t\tlist-style-type: upper-roman;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n.ck-content ul {\n\tlist-style-type: disc;\n\n\t& ul {\n\t\tlist-style-type: circle;\n\n\t\t& ul {\n\t\t\tlist-style-type: square;\n\n\t\t\t& ul {\n\t\t\t\tlist-style-type: square;\n\t\t\t}\n\t\t}\n\t}\n}\n"],sourceRoot:""}]);const a=s},540:e=>{"use strict";e.exports=function(e){var t=document.createElement("style");return e.setAttributes(t,e.attributes),e.insert(t,e.options),t}},601:(e,t,o)=>{"use strict";o.d(t,{A:()=>a});var n=o(1354),i=o.n(n),r=o(6314),s=o.n(r)()(i());s.push([e.id,".ck-hidden{display:none!important}:root{--ck-z-default:1;--ck-z-panel:calc(var(--ck-z-default) + 999);--ck-z-dialog:9999}.ck-transitions-disabled,.ck-transitions-disabled *{transition:none!important}:root{--ck-powered-by-font-size:calc(var(--ck-font-size-base)*7.5/13);--ck-powered-by-line-height:calc(var(--ck-font-size-base)*10/13);--ck-powered-by-letter-spacing:calc(var(--ck-font-size-base)*-0.2/13);--ck-powered-by-padding-vertical:2px;--ck-powered-by-padding-horizontal:4px;--ck-powered-by-text-color:#4f4f4f;--ck-powered-by-border-radius:var(--ck-border-radius);--ck-powered-by-background:#fff;--ck-powered-by-border-color:var(--ck-color-focus-border);--ck-powered-by-svg-width:53;--ck-powered-by-svg-height:10;--ck-powered-by-icon-width:calc(var(--ck-font-size-base)*var(--ck-powered-by-svg-width)/13);--ck-powered-by-icon-height:calc(var(--ck-font-size-base)*var(--ck-powered-by-svg-height)/13)}.ck.ck-balloon-panel.ck-powered-by-balloon{--ck-border-radius:var(--ck-powered-by-border-radius);background:var(--ck-powered-by-background);box-shadow:none;min-height:unset;z-index:calc(var(--ck-z-panel) - 1)}.ck.ck-balloon-panel.ck-powered-by-balloon .ck.ck-powered-by{line-height:var(--ck-powered-by-line-height)}.ck.ck-balloon-panel.ck-powered-by-balloon .ck.ck-powered-by a{align-items:center;cursor:pointer;display:flex;filter:grayscale(80%);line-height:var(--ck-powered-by-line-height);opacity:.66;padding:var(--ck-powered-by-padding-vertical) var(--ck-powered-by-padding-horizontal)}.ck.ck-balloon-panel.ck-powered-by-balloon .ck.ck-powered-by .ck-powered-by__label{color:var(--ck-powered-by-text-color);cursor:pointer;font-size:var(--ck-powered-by-font-size);font-weight:700;letter-spacing:var(--ck-powered-by-letter-spacing);line-height:normal;margin-right:4px;padding-left:2px;text-transform:uppercase}.ck.ck-balloon-panel.ck-powered-by-balloon .ck.ck-powered-by .ck-icon{cursor:pointer;display:block;height:var(--ck-powered-by-icon-height);width:var(--ck-powered-by-icon-width)}.ck.ck-balloon-panel.ck-powered-by-balloon .ck.ck-powered-by:hover a{filter:grayscale(0);opacity:1}.ck.ck-balloon-panel.ck-powered-by-balloon[class*=position_inside]{border-color:transparent}.ck.ck-balloon-panel.ck-powered-by-balloon[class*=position_border]{border:var(--ck-focus-ring);border-color:var(--ck-powered-by-border-color)}:root{--ck-evaluation-badge-font-size:calc(var(--ck-font-size-base)*7.5/13);--ck-evaluation-badge-line-height:calc(var(--ck-font-size-base)*7.5/13);--ck-evaluation-badge-letter-spacing:calc(var(--ck-font-size-base)*-0.2/13);--ck-evaluation-badge-padding-vertical:2px;--ck-evaluation-badge-padding-horizontal:4px;--ck-evaluation-badge-text-color:#4f4f4f;--ck-evaluation-badge-border-radius:var(--ck-border-radius);--ck-evaluation-badge-background:#fff;--ck-evaluation-badge-border-color:var(--ck-color-focus-border)}.ck.ck-balloon-panel.ck-evaluation-badge-balloon{--ck-border-radius:var(--ck-evaluation-badge-border-radius);background:var(--ck-evaluation-badge-background);box-shadow:none;min-height:unset;z-index:calc(var(--ck-z-panel) - 1)}.ck.ck-balloon-panel.ck-evaluation-badge-balloon .ck.ck-evaluation-badge{line-height:var(--ck-evaluation-badge-line-height);padding:var(--ck-evaluation-badge-padding-vertical) var(--ck-evaluation-badge-padding-horizontal)}.ck.ck-balloon-panel.ck-evaluation-badge-balloon .ck.ck-evaluation-badge .ck-evaluation-badge__label{color:var(--ck-evaluation-badge-text-color);display:block;font-size:var(--ck-evaluation-badge-font-size);font-weight:700;letter-spacing:var(--ck-evaluation-badge-letter-spacing);line-height:normal;padding:0 2px;text-transform:uppercase}.ck.ck-balloon-panel.ck-evaluation-badge-balloon[class*=position_inside]{border-color:transparent}.ck.ck-balloon-panel.ck-evaluation-badge-balloon[class*=position_border]{border:var(--ck-focus-ring);border-color:var(--ck-evaluation-badge-border-color)}:root{--ck-color-base-foreground:#fafafa;--ck-color-base-background:#fff;--ck-color-base-border:#ccced1;--ck-color-base-action:#53a336;--ck-color-base-focus:#6cb5f9;--ck-color-base-text:#333;--ck-color-base-active:#2977ff;--ck-color-base-active-focus:#0d65ff;--ck-color-base-error:#db3700;--ck-color-focus-border-coordinates:218,81.8%,56.9%;--ck-color-focus-border:hsl(var(--ck-color-focus-border-coordinates));--ck-color-focus-outer-shadow:#cae1fc;--ck-color-focus-disabled-shadow:rgba(119,186,248,.3);--ck-color-focus-error-shadow:rgba(255,64,31,.3);--ck-color-text:var(--ck-color-base-text);--ck-color-shadow-drop:rgba(0,0,0,.15);--ck-color-shadow-drop-active:rgba(0,0,0,.2);--ck-color-shadow-inner:rgba(0,0,0,.1);--ck-color-button-default-background:transparent;--ck-color-button-default-hover-background:#f0f0f0;--ck-color-button-default-active-background:#f0f0f0;--ck-color-button-default-disabled-background:transparent;--ck-color-button-on-background:#f0f7ff;--ck-color-button-on-hover-background:#dbecff;--ck-color-button-on-active-background:#dbecff;--ck-color-button-on-disabled-background:#f0f2f4;--ck-color-button-on-color:#2977ff;--ck-color-button-action-background:var(--ck-color-base-action);--ck-color-button-action-hover-background:#4d9d30;--ck-color-button-action-active-background:#4d9d30;--ck-color-button-action-disabled-background:#7ec365;--ck-color-button-action-text:var(--ck-color-base-background);--ck-color-button-save:#008a00;--ck-color-button-cancel:#db3700;--ck-color-switch-button-off-background:#939393;--ck-color-switch-button-off-hover-background:#7d7d7d;--ck-color-switch-button-on-background:var(--ck-color-button-action-background);--ck-color-switch-button-on-hover-background:#4d9d30;--ck-color-switch-button-inner-background:var(--ck-color-base-background);--ck-color-switch-button-inner-shadow:rgba(0,0,0,.1);--ck-color-dropdown-panel-background:var(--ck-color-base-background);--ck-color-dropdown-panel-border:var(--ck-color-base-border);--ck-color-dialog-background:var(--ck-custom-background);--ck-color-dialog-form-header-border:var(--ck-custom-border);--ck-color-input-background:var(--ck-color-base-background);--ck-color-input-border:var(--ck-color-base-border);--ck-color-input-error-border:var(--ck-color-base-error);--ck-color-input-text:var(--ck-color-base-text);--ck-color-input-disabled-background:#f2f2f2;--ck-color-input-disabled-border:var(--ck-color-base-border);--ck-color-input-disabled-text:#757575;--ck-color-list-background:var(--ck-color-base-background);--ck-color-list-button-hover-background:var(--ck-color-button-default-hover-background);--ck-color-list-button-on-background:var(--ck-color-button-on-color);--ck-color-list-button-on-background-focus:var(--ck-color-button-on-color);--ck-color-list-button-on-text:var(--ck-color-base-background);--ck-color-panel-background:var(--ck-color-base-background);--ck-color-panel-border:var(--ck-color-base-border);--ck-color-toolbar-background:var(--ck-color-base-background);--ck-color-toolbar-border:var(--ck-color-base-border);--ck-color-tooltip-background:var(--ck-color-base-text);--ck-color-tooltip-text:var(--ck-color-base-background);--ck-color-engine-placeholder-text:#707070;--ck-color-upload-bar-background:#6cb5f9;--ck-color-link-default:#0000f0;--ck-color-link-selected-background:rgba(31,176,255,.1);--ck-color-link-fake-selection:rgba(31,176,255,.3);--ck-color-highlight-background:#ff0;--ck-color-light-red:#fcc;--ck-disabled-opacity:.5;--ck-focus-outer-shadow-geometry:0 0 0 3px;--ck-focus-outer-shadow:var(--ck-focus-outer-shadow-geometry) var(--ck-color-focus-outer-shadow);--ck-focus-disabled-outer-shadow:var(--ck-focus-outer-shadow-geometry) var(--ck-color-focus-disabled-shadow);--ck-focus-error-outer-shadow:var(--ck-focus-outer-shadow-geometry) var(--ck-color-focus-error-shadow);--ck-focus-ring:1px solid var(--ck-color-focus-border);--ck-font-size-base:13px;--ck-line-height-base:1.84615;--ck-font-face:Helvetica,Arial,Tahoma,Verdana,Sans-Serif;--ck-font-size-tiny:0.7em;--ck-font-size-small:0.75em;--ck-font-size-normal:1em;--ck-font-size-big:1.4em;--ck-font-size-large:1.8em;--ck-ui-component-min-height:2.3em}.ck-reset_all :not(.ck-reset_all-excluded *),.ck.ck-reset,.ck.ck-reset_all{background:transparent;border:0;box-sizing:border-box;height:auto;margin:0;padding:0;position:static;text-decoration:none;transition:none;vertical-align:middle;width:auto;word-wrap:break-word}.ck-reset_all :not(.ck-reset_all-excluded *),.ck.ck-reset_all{border-collapse:collapse;color:var(--ck-color-text);cursor:auto;float:none;font:normal normal normal var(--ck-font-size-base)/var(--ck-line-height-base) var(--ck-font-face);text-align:left;white-space:nowrap}.ck-reset_all .ck-rtl :not(.ck-reset_all-excluded *){text-align:right}.ck-reset_all iframe:not(.ck-reset_all-excluded *){vertical-align:inherit}.ck-reset_all textarea:not(.ck-reset_all-excluded *){white-space:pre-wrap}.ck-reset_all input[type=password]:not(.ck-reset_all-excluded *),.ck-reset_all input[type=text]:not(.ck-reset_all-excluded *),.ck-reset_all textarea:not(.ck-reset_all-excluded *){cursor:text}.ck-reset_all input[type=password][disabled]:not(.ck-reset_all-excluded *),.ck-reset_all input[type=text][disabled]:not(.ck-reset_all-excluded *),.ck-reset_all textarea[disabled]:not(.ck-reset_all-excluded *){cursor:default}.ck-reset_all fieldset:not(.ck-reset_all-excluded *){border:2px groove #dfdee3;padding:10px}.ck-reset_all button:not(.ck-reset_all-excluded *)::-moz-focus-inner{border:0;padding:0}.ck[dir=rtl],.ck[dir=rtl] .ck{text-align:right}:root{--ck-border-radius:2px;--ck-inner-shadow:2px 2px 3px var(--ck-color-shadow-inner) inset;--ck-drop-shadow:0 1px 2px 1px var(--ck-color-shadow-drop);--ck-drop-shadow-active:0 3px 6px 1px var(--ck-color-shadow-drop-active);--ck-spacing-unit:0.6em;--ck-spacing-large:calc(var(--ck-spacing-unit)*1.5);--ck-spacing-standard:var(--ck-spacing-unit);--ck-spacing-medium:calc(var(--ck-spacing-unit)*0.8);--ck-spacing-small:calc(var(--ck-spacing-unit)*0.5);--ck-spacing-tiny:calc(var(--ck-spacing-unit)*0.3);--ck-spacing-extra-tiny:calc(var(--ck-spacing-unit)*0.16)}","",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/globals/_hidden.css","webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/globals/_zindex.css","webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/globals/_transition.css","webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/globals/_poweredby.css","webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/globals/_evaluationbadge.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-ui/globals/_colors.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-ui/globals/_disabled.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-ui/globals/_focus.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-ui/globals/_fonts.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-ui/globals/_reset.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-ui/globals/_rounded.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-ui/globals/_shadow.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-ui/globals/_spacing.css"],names:[],mappings:"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",sourcesContent:["/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/**\n * A class which hides an element in DOM.\n */\n.ck-hidden {\n\t/* Override selector specificity. Otherwise, all elements with some display\n\tstyle defined will override this one, which is not a desired result. */\n\tdisplay: none !important;\n}\n","/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n:root {\n\t--ck-z-default: 1;\n\t--ck-z-panel: calc( var(--ck-z-default) + 999 );\n\t--ck-z-dialog: 9999;\n}\n","/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/**\n * A class that disables all transitions of the element and its children.\n */\n.ck-transitions-disabled,\n.ck-transitions-disabled * {\n\ttransition: none !important;\n}\n",'/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n:root {\n\t/* where 7.5(px) is the font size of the powered by label and 13(px) is the base font size. */\n\t--ck-powered-by-font-size: calc(var(--ck-font-size-base) * 7.5 / 13);\n\t/* where 10(px) is the line height of the powered by label and 13(px) is the base font size. */\n\t--ck-powered-by-line-height: calc(var(--ck-font-size-base) * 10 / 13);\n\t/* where -0.2(px) is the letter spacing of the powered by label and 13(px) is the base font size. */\n\t--ck-powered-by-letter-spacing: calc(var(--ck-font-size-base) * -0.2 / 13);\n\t--ck-powered-by-padding-vertical: 2px;\n\t--ck-powered-by-padding-horizontal: 4px;\n\t--ck-powered-by-text-color: hsl(0, 0%, 31%);\n\t--ck-powered-by-border-radius: var(--ck-border-radius);\n\t--ck-powered-by-background: hsl(0, 0%, 100%);\n\t--ck-powered-by-border-color: var(--ck-color-focus-border);\n\n\t--ck-powered-by-svg-width: 53;\n\t--ck-powered-by-svg-height: 10;\n\t--ck-powered-by-icon-width: calc(var(--ck-font-size-base) * var(--ck-powered-by-svg-width) / 13);\n\t--ck-powered-by-icon-height: calc(var(--ck-font-size-base) * var(--ck-powered-by-svg-height) / 13);\n}\n\n.ck.ck-balloon-panel.ck-powered-by-balloon {\n\t--ck-border-radius: var(--ck-powered-by-border-radius);\n\n\tbox-shadow: none;\n\tbackground: var(--ck-powered-by-background);\n\tmin-height: unset;\n\tz-index: calc( var(--ck-z-panel) - 1 );\n\n\t& .ck.ck-powered-by {\n\t\tline-height: var(--ck-powered-by-line-height);\n\n\t\t& a {\n\t\t\tcursor: pointer;\n\t\t\tdisplay: flex;\n\t\t\talign-items: center;\n\t\t\topacity: .66;\n\t\t\tfilter: grayscale(80%);\n\t\t\tline-height: var(--ck-powered-by-line-height);\n\t\t\tpadding: var(--ck-powered-by-padding-vertical) var(--ck-powered-by-padding-horizontal);\n\t\t}\n\n\t\t& .ck-powered-by__label {\n\t\t\tfont-size: var(--ck-powered-by-font-size);\n\t\t\tletter-spacing: var(--ck-powered-by-letter-spacing);\n\t\t\tpadding-left: 2px;\n\t\t\ttext-transform: uppercase;\n\t\t\tfont-weight: bold;\n\t\t\tmargin-right: 4px;\n\t\t\tcursor: pointer;\n\t\t\tline-height: normal;\n\t\t\tcolor: var(--ck-powered-by-text-color);\n\n\t\t}\n\n\t\t& .ck-icon {\n\t\t\tdisplay: block;\n\t\t\tcursor: pointer;\n\t\t\twidth: var(--ck-powered-by-icon-width);\n\t\t\theight: var(--ck-powered-by-icon-height);\n\t\t}\n\n\t\t&:hover {\n\t\t\t& a {\n\t\t\t\tfilter: grayscale(0%);\n\t\t\t\topacity: 1;\n\t\t\t}\n\t\t}\n\t}\n\n\t&[class*="position_inside"] {\n\t\tborder-color: transparent;\n\t}\n\n\t&[class*="position_border"] {\n\t\tborder: var(--ck-focus-ring);\n\t\tborder-color: var(--ck-powered-by-border-color);\n\t}\n}\n\n','/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n:root {\n\t/* where 7.5(px) is the font size of the evaluation badge label and 13(px) is the base font size. */\n\t--ck-evaluation-badge-font-size: calc(var(--ck-font-size-base) * 7.5 / 13);\n\t/* where 7.5(px) is the line height of the evaluation badge label and 13(px) is the base font size. */\n\t--ck-evaluation-badge-line-height: calc(var(--ck-font-size-base) * 7.5 / 13);\n\t/* where -0.2(px) is the letter spacing of the evaluation badge label and 13(px) is the base font size. */\n\t--ck-evaluation-badge-letter-spacing: calc(var(--ck-font-size-base) * -0.2 / 13);\n\t--ck-evaluation-badge-padding-vertical: 2px;\n\t--ck-evaluation-badge-padding-horizontal: 4px;\n\t--ck-evaluation-badge-text-color: hsl(0, 0%, 31%);\n\t--ck-evaluation-badge-border-radius: var(--ck-border-radius);\n\t--ck-evaluation-badge-background: hsl(0, 0%, 100%);\n\t--ck-evaluation-badge-border-color: var(--ck-color-focus-border);\n}\n\n.ck.ck-balloon-panel.ck-evaluation-badge-balloon {\n\t--ck-border-radius: var(--ck-evaluation-badge-border-radius);\n\n\tbox-shadow: none;\n\tbackground: var(--ck-evaluation-badge-background);\n\tmin-height: unset;\n\tz-index: calc( var(--ck-z-panel) - 1 );\n\n\t& .ck.ck-evaluation-badge {\n\t\tline-height: var(--ck-evaluation-badge-line-height);\n\t\tpadding: var(--ck-evaluation-badge-padding-vertical) var(--ck-evaluation-badge-padding-horizontal);\n\n\t\t& .ck-evaluation-badge__label {\n\t\t\tdisplay: block;\n\t\t\tpadding: 0 2px;\n\t\t\tfont-size: var(--ck-evaluation-badge-font-size);\n\t\t\tletter-spacing: var(--ck-evaluation-badge-letter-spacing);\n\t\t\tfont-weight: bold;\n\t\t\tline-height: normal;\n\t\t\ttext-transform: uppercase;\n\t\t\tcolor: var(--ck-evaluation-badge-text-color);\n\t\t}\n\t}\n\n\t&[class*="position_inside"] {\n\t\tborder-color: transparent;\n\t}\n\n\t&[class*="position_border"] {\n\t\tborder: var(--ck-focus-ring);\n\t\tborder-color: var(--ck-evaluation-badge-border-color);\n\t}\n}\n\n',"/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n:root {\n\t--ck-color-base-foreground: \t\t\t\t\t\t\t\thsl(0, 0%, 98%);\n\t--ck-color-base-background: \t\t\t\t\t\t\t\thsl(0, 0%, 100%);\n\t--ck-color-base-border: \t\t\t\t\t\t\t\t\thsl(220, 6%, 81%);\n\t--ck-color-base-action: \t\t\t\t\t\t\t\t\thsl(104, 50.2%, 42.5%);\n\t--ck-color-base-focus: \t\t\t\t\t\t\t\t\t\thsl(209, 92%, 70%);\n\t--ck-color-base-text: \t\t\t\t\t\t\t\t\t\thsl(0, 0%, 20%);\n\t--ck-color-base-active: \t\t\t\t\t\t\t\t\thsl(218.1, 100%, 58%);\n\t--ck-color-base-active-focus:\t\t\t\t\t\t\t\thsl(218.2, 100%, 52.5%);\n\t--ck-color-base-error:\t\t\t\t\t\t\t\t\t\thsl(15, 100%, 43%);\n\n\t/* -- Generic colors ------------------------------------------------------------------------ */\n\n\t--ck-color-focus-border-coordinates: \t\t\t\t\t\t218, 81.8%, 56.9%;\n\t--ck-color-focus-border: \t\t\t\t\t\t\t\t\thsl(var(--ck-color-focus-border-coordinates));\n\t--ck-color-focus-outer-shadow:\t\t\t\t\t\t\t\thsl(212.4, 89.3%, 89%);\n\t--ck-color-focus-disabled-shadow:\t\t\t\t\t\t\thsla(209, 90%, 72%,.3);\n\t--ck-color-focus-error-shadow:\t\t\t\t\t\t\t\thsla(9,100%,56%,.3);\n\t--ck-color-text: \t\t\t\t\t\t\t\t\t\t\tvar(--ck-color-base-text);\n\t--ck-color-shadow-drop: \t\t\t\t\t\t\t\t\thsla(0, 0%, 0%, 0.15);\n\t--ck-color-shadow-drop-active:\t\t\t\t\t\t\t\thsla(0, 0%, 0%, 0.2);\n\t--ck-color-shadow-inner: \t\t\t\t\t\t\t\t\thsla(0, 0%, 0%, 0.1);\n\n\t/* -- Buttons ------------------------------------------------------------------------------- */\n\n\t--ck-color-button-default-background: \t\t\t\t\t\ttransparent;\n\t--ck-color-button-default-hover-background: \t\t\t\thsl(0, 0%, 94.1%);\n\t--ck-color-button-default-active-background: \t\t\t\thsl(0, 0%, 94.1%);\n\t--ck-color-button-default-disabled-background: \t\t\t\ttransparent;\n\n\t--ck-color-button-on-background: \t\t\t\t\t\t\thsl(212, 100%, 97.1%);\n\t--ck-color-button-on-hover-background: \t\t\t\t\t\thsl(211.7, 100%, 92.9%);\n\t--ck-color-button-on-active-background: \t\t\t\t\thsl(211.7, 100%, 92.9%);\n\t--ck-color-button-on-disabled-background: \t\t\t\t\thsl(211, 15%, 95%);\n\t--ck-color-button-on-color:\t\t\t\t\t\t\t\t\thsl(218.1, 100%, 58%);\n\n\n\t--ck-color-button-action-background: \t\t\t\t\t\tvar(--ck-color-base-action);\n\t--ck-color-button-action-hover-background: \t\t\t\t\thsl(104, 53.2%, 40.2%);\n\t--ck-color-button-action-active-background: \t\t\t\thsl(104, 53.2%, 40.2%);\n\t--ck-color-button-action-disabled-background: \t\t\t\thsl(104, 44%, 58%);\n\t--ck-color-button-action-text: \t\t\t\t\t\t\t\tvar(--ck-color-base-background);\n\n\t--ck-color-button-save: \t\t\t\t\t\t\t\t\thsl(120, 100%, 27%);\n\t--ck-color-button-cancel: \t\t\t\t\t\t\t\t\thsl(15, 100%, 43%);\n\n\t--ck-color-switch-button-off-background:\t\t\t\t\thsl(0, 0%, 57.6%);\n\t--ck-color-switch-button-off-hover-background:\t\t\t\thsl(0, 0%, 49%);\n\t--ck-color-switch-button-on-background:\t\t\t\t\t\tvar(--ck-color-button-action-background);\n\t--ck-color-switch-button-on-hover-background:\t\t\t\thsl(104, 53.2%, 40.2%);\n\t--ck-color-switch-button-inner-background:\t\t\t\t\tvar(--ck-color-base-background);\n\t--ck-color-switch-button-inner-shadow:\t\t\t\t\t\thsla(0, 0%, 0%, 0.1);\n\n\t/* -- Dropdown ------------------------------------------------------------------------------ */\n\n\t--ck-color-dropdown-panel-background: \t\t\t\t\t\tvar(--ck-color-base-background);\n\t--ck-color-dropdown-panel-border: \t\t\t\t\t\t\tvar(--ck-color-base-border);\n\n\t/* -- Dialog -------------------------------------------------------------------------------- */\n\n\t--ck-color-dialog-background: \t\t\t\t\t\t\t\tvar(--ck-custom-background);\n\t--ck-color-dialog-form-header-border: \t\t\t\t\t\tvar(--ck-custom-border);\n\n\t/* -- Input --------------------------------------------------------------------------------- */\n\n\t--ck-color-input-background: \t\t\t\t\t\t\t\tvar(--ck-color-base-background);\n\t--ck-color-input-border: \t\t\t\t\t\t\t\t\tvar(--ck-color-base-border);\n\t--ck-color-input-error-border:\t\t\t\t\t\t\t\tvar(--ck-color-base-error);\n\t--ck-color-input-text: \t\t\t\t\t\t\t\t\t\tvar(--ck-color-base-text);\n\t--ck-color-input-disabled-background: \t\t\t\t\t\thsl(0, 0%, 95%);\n\t--ck-color-input-disabled-border: \t\t\t\t\t\t\tvar(--ck-color-base-border);\n\t--ck-color-input-disabled-text: \t\t\t\t\t\t\thsl(0, 0%, 46%);\n\n\t/* -- List ---------------------------------------------------------------------------------- */\n\n\t--ck-color-list-background: \t\t\t\t\t\t\t\tvar(--ck-color-base-background);\n\t--ck-color-list-button-hover-background: \t\t\t\t\tvar(--ck-color-button-default-hover-background);\n\t--ck-color-list-button-on-background: \t\t\t\t\t\tvar(--ck-color-button-on-color);\n\t--ck-color-list-button-on-background-focus: \t\t\t\tvar(--ck-color-button-on-color);\n\t--ck-color-list-button-on-text:\t\t\t\t\t\t\t\tvar(--ck-color-base-background);\n\n\t/* -- Panel --------------------------------------------------------------------------------- */\n\n\t--ck-color-panel-background: \t\t\t\t\t\t\t\tvar(--ck-color-base-background);\n\t--ck-color-panel-border: \t\t\t\t\t\t\t\t\tvar(--ck-color-base-border);\n\n\t/* -- Toolbar ------------------------------------------------------------------------------- */\n\n\t--ck-color-toolbar-background: \t\t\t\t\t\t\t\tvar(--ck-color-base-background);\n\t--ck-color-toolbar-border: \t\t\t\t\t\t\t\t\tvar(--ck-color-base-border);\n\n\t/* -- Tooltip ------------------------------------------------------------------------------- */\n\n\t--ck-color-tooltip-background: \t\t\t\t\t\t\t\tvar(--ck-color-base-text);\n\t--ck-color-tooltip-text: \t\t\t\t\t\t\t\t\tvar(--ck-color-base-background);\n\n\t/* -- Engine -------------------------------------------------------------------------------- */\n\n\t--ck-color-engine-placeholder-text: \t\t\t\t\t\thsl(0, 0%, 44%);\n\n\t/* -- Upload -------------------------------------------------------------------------------- */\n\n\t--ck-color-upload-bar-background:\t\t \t\t\t\t\thsl(209, 92%, 70%);\n\n\t/* -- Link -------------------------------------------------------------------------------- */\n\n\t--ck-color-link-default:\t\t\t\t\t\t\t\t\thsl(240, 100%, 47%);\n\t--ck-color-link-selected-background:\t\t\t\t\t\thsla(201, 100%, 56%, 0.1);\n\t--ck-color-link-fake-selection:\t\t\t\t\t\t\t\thsla(201, 100%, 56%, 0.3);\n\n\t/* -- Search result highlight ---------------------------------------------------------------- */\n\n\t--ck-color-highlight-background:\t\t\t\t\t\t\thsl(60, 100%, 50%);\n\n\t/* -- Generic colors ------------------------------------------------------------------------- */\n\n\t--ck-color-light-red:\t\t\t\t\t\t\t\t\t\thsl(0, 100%, 90%);\n}\n","/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n:root {\n\t/**\n\t * An opacity value of disabled UI item.\n\t */\n\t--ck-disabled-opacity: .5;\n}\n","/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n:root {\n\t/**\n\t * The geometry of the of focused element's outer shadow.\n\t */\n\t--ck-focus-outer-shadow-geometry: 0 0 0 3px;\n\n\t/**\n\t * A visual style of focused element's outer shadow.\n\t */\n\t--ck-focus-outer-shadow: var(--ck-focus-outer-shadow-geometry) var(--ck-color-focus-outer-shadow);\n\n\t/**\n\t * A visual style of focused element's outer shadow (when disabled).\n\t */\n\t--ck-focus-disabled-outer-shadow: var(--ck-focus-outer-shadow-geometry) var(--ck-color-focus-disabled-shadow);\n\n\t/**\n\t * A visual style of focused element's outer shadow (when has errors).\n\t */\n\t--ck-focus-error-outer-shadow: var(--ck-focus-outer-shadow-geometry) var(--ck-color-focus-error-shadow);\n\n\t/**\n\t * A visual style of focused element's border or outline.\n\t */\n\t--ck-focus-ring: 1px solid var(--ck-color-focus-border);\n}\n","/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n:root {\n\t--ck-font-size-base: 13px;\n\t--ck-line-height-base: 1.84615;\n\t--ck-font-face: Helvetica, Arial, Tahoma, Verdana, Sans-Serif;\n\n\t--ck-font-size-tiny: 0.7em;\n\t--ck-font-size-small: 0.75em;\n\t--ck-font-size-normal: 1em;\n\t--ck-font-size-big: 1.4em;\n\t--ck-font-size-large: 1.8em;\n}\n",'/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n:root {\n\t/* This is super-important. This is **manually** adjusted so a button without an icon\n\tis never smaller than a button with icon, additionally making sure that text-less buttons\n\tare perfect squares. The value is also shared by other components which should stay "in-line"\n\twith buttons. */\n\t--ck-ui-component-min-height: 2.3em;\n}\n\n/**\n * Resets an element, ignoring its children.\n */\n.ck.ck-reset,\n.ck.ck-reset_all,\n.ck-reset_all *:not(.ck-reset_all-excluded *) {\n\tbox-sizing: border-box;\n\twidth: auto;\n\theight: auto;\n\tposition: static;\n\n\t/* Do not include inheritable rules here. */\n\tmargin: 0;\n\tpadding: 0;\n\tborder: 0;\n\tbackground: transparent;\n\ttext-decoration: none;\n\tvertical-align: middle;\n\ttransition: none;\n\n\t/* https://github.com/ckeditor/ckeditor5-theme-lark/issues/105 */\n\tword-wrap: break-word;\n}\n\n/**\n * Resets an element AND its children.\n */\n.ck.ck-reset_all,\n.ck-reset_all *:not(.ck-reset_all-excluded *) {\n\t/* These are rule inherited by all children elements. */\n\tborder-collapse: collapse;\n\tfont: normal normal normal var(--ck-font-size-base)/var(--ck-line-height-base) var(--ck-font-face);\n\tcolor: var(--ck-color-text);\n\ttext-align: left;\n\twhite-space: nowrap;\n\tcursor: auto;\n\tfloat: none;\n}\n\n.ck-reset_all {\n\t& .ck-rtl *:not(.ck-reset_all-excluded *) {\n\t\ttext-align: right;\n\t}\n\n\t& iframe:not(.ck-reset_all-excluded *) {\n\t\t/* For IE */\n\t\tvertical-align: inherit;\n\t}\n\n\t& textarea:not(.ck-reset_all-excluded *) {\n\t\twhite-space: pre-wrap;\n\t}\n\n\t& textarea:not(.ck-reset_all-excluded *),\n\t& input[type="text"]:not(.ck-reset_all-excluded *),\n\t& input[type="password"]:not(.ck-reset_all-excluded *) {\n\t\tcursor: text;\n\t}\n\n\t& textarea[disabled]:not(.ck-reset_all-excluded *),\n\t& input[type="text"][disabled]:not(.ck-reset_all-excluded *),\n\t& input[type="password"][disabled]:not(.ck-reset_all-excluded *) {\n\t\tcursor: default;\n\t}\n\n\t& fieldset:not(.ck-reset_all-excluded *) {\n\t\tpadding: 10px;\n\t\tborder: 2px groove hsl(255, 7%, 88%);\n\t}\n\n\t& button:not(.ck-reset_all-excluded *)::-moz-focus-inner {\n\t\t/* See http://stackoverflow.com/questions/5517744/remove-extra-button-spacing-padding-in-firefox */\n\t\tpadding: 0;\n\t\tborder: 0\n\t}\n}\n\n/**\n * Default UI rules for RTL languages.\n */\n.ck[dir="rtl"],\n.ck[dir="rtl"] .ck {\n\ttext-align: right;\n}\n',"/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/**\n * Default border-radius value.\n */\n:root{\n\t--ck-border-radius: 2px;\n}\n","/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n:root {\n\t/**\n\t * A visual style of element's inner shadow (i.e. input).\n\t */\n\t--ck-inner-shadow: 2px 2px 3px var(--ck-color-shadow-inner) inset;\n\n\t/**\n\t * A visual style of element's drop shadow (i.e. panel).\n\t */\n\t--ck-drop-shadow: 0 1px 2px 1px var(--ck-color-shadow-drop);\n\n\t/**\n\t * A visual style of element's active shadow (i.e. comment or suggestion).\n\t */\n\t--ck-drop-shadow-active: 0 3px 6px 1px var(--ck-color-shadow-drop-active);\n}\n","/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n:root {\n\t--ck-spacing-unit: \t\t\t\t\t\t0.6em;\n\t--ck-spacing-large: \t\t\t\t\tcalc(var(--ck-spacing-unit) * 1.5);\n\t--ck-spacing-standard: \t\t\t\t\tvar(--ck-spacing-unit);\n\t--ck-spacing-medium: \t\t\t\t\tcalc(var(--ck-spacing-unit) * 0.8);\n\t--ck-spacing-small: \t\t\t\t\tcalc(var(--ck-spacing-unit) * 0.5);\n\t--ck-spacing-tiny: \t\t\t\t\t\tcalc(var(--ck-spacing-unit) * 0.3);\n\t--ck-spacing-extra-tiny: \t\t\t\tcalc(var(--ck-spacing-unit) * 0.16);\n}\n"],sourceRoot:""}]);const a=s},734:(e,t,o)=>{const n=o(5659),i=o(8507),r={};Object.keys(n).forEach((e=>{r[e]={},Object.defineProperty(r[e],"channels",{value:n[e].channels}),Object.defineProperty(r[e],"labels",{value:n[e].labels});const t=i(e);Object.keys(t).forEach((o=>{const n=t[o];r[e][o]=function(e){const t=function(...t){const o=t[0];if(null==o)return o;o.length>1&&(t=o);const n=e(t);if("object"==typeof n)for(let e=n.length,t=0;t1&&(t=o),e(t))};return"conversion"in e&&(t.conversion=e.conversion),t}(n)}))})),e.exports=r},871:(e,t,o)=>{"use strict";o.d(t,{A:()=>a});var n=o(1354),i=o.n(n),r=o(6314),s=o.n(r)()(i());s.push([e.id,'.ck-vertical-form .ck-button:after{bottom:-1px;content:"";position:absolute;right:-1px;top:-1px;width:0;z-index:1}.ck-vertical-form .ck-button:focus:after{display:none}@media screen and (max-width:600px){.ck.ck-responsive-form .ck-button:after{bottom:-1px;content:"";position:absolute;right:-1px;top:-1px;width:0;z-index:1}.ck.ck-responsive-form .ck-button:focus:after{display:none}}.ck-vertical-form>.ck-button:nth-last-child(2):after{border-right:1px solid var(--ck-color-base-border)}.ck.ck-responsive-form{padding:var(--ck-spacing-large)}.ck.ck-responsive-form:focus{outline:none}[dir=ltr] .ck.ck-responsive-form>:not(:first-child),[dir=rtl] .ck.ck-responsive-form>:not(:last-child){margin-left:var(--ck-spacing-standard)}@media screen and (max-width:600px){.ck.ck-responsive-form{padding:0;width:calc(var(--ck-input-width)*.8)}.ck.ck-responsive-form .ck-labeled-field-view{margin:var(--ck-spacing-large) var(--ck-spacing-large) 0}.ck.ck-responsive-form .ck-labeled-field-view .ck-input-number,.ck.ck-responsive-form .ck-labeled-field-view .ck-input-text{min-width:0;width:100%}.ck.ck-responsive-form .ck-labeled-field-view .ck-labeled-field-view__error{white-space:normal}.ck.ck-responsive-form>.ck-button:nth-last-child(2):after{border-right:1px solid var(--ck-color-base-border)}.ck.ck-responsive-form>.ck-button:last-child,.ck.ck-responsive-form>.ck-button:nth-last-child(2){border-radius:0;margin-top:var(--ck-spacing-large);padding:var(--ck-spacing-standard)}.ck.ck-responsive-form>.ck-button:last-child:not(:focus),.ck.ck-responsive-form>.ck-button:nth-last-child(2):not(:focus){border-top:1px solid var(--ck-color-base-border)}[dir=ltr] .ck.ck-responsive-form>.ck-button:last-child,[dir=ltr] .ck.ck-responsive-form>.ck-button:nth-last-child(2),[dir=rtl] .ck.ck-responsive-form>.ck-button:last-child,[dir=rtl] .ck.ck-responsive-form>.ck-button:nth-last-child(2){margin-left:0}[dir=rtl] .ck.ck-responsive-form>.ck-button:last-child:last-of-type,[dir=rtl] .ck.ck-responsive-form>.ck-button:nth-last-child(2):last-of-type{border-right:1px solid var(--ck-color-base-border)}}',"",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/components/responsive-form/responsiveform.css","webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/mixins/_rwd.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-ui/components/responsive-form/responsiveform.css","webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/mixins/_dir.css"],names:[],mappings:"AAQC,mCAMC,WAAY,CALZ,UAAW,CAEX,iBAAkB,CAClB,UAAW,CACX,QAAS,CAHT,OAAQ,CAKR,SACD,CAEA,yCACC,YACD,CCdA,oCDoBE,wCAMC,WAAY,CALZ,UAAW,CAEX,iBAAkB,CAClB,UAAW,CACX,QAAS,CAHT,OAAQ,CAKR,SACD,CAEA,8CACC,YACD,CC9BF,CCAD,qDACC,kDACD,CAEA,uBACC,+BAoED,CAlEC,6BAEC,YACD,CASC,uGACC,sCACD,CDvBD,oCCMD,uBAqBE,SAAU,CACV,oCA+CF,CA7CE,8CACC,wDAYD,CAVC,4HAEC,WAAY,CACZ,UACD,CAGA,4EACC,kBACD,CAKA,0DACC,kDACD,CAGD,iGAIC,eAAgB,CADhB,kCAAmC,CADnC,kCAmBD,CAfC,yHACC,gDACD,CC5DF,0ODmEG,aCjEH,CDmEG,+IACC,kDACD,CDrEH",sourcesContent:['/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n@import "@ckeditor/ckeditor5-ui/theme/mixins/_rwd.css";\n\n.ck-vertical-form .ck-button {\n\t&::after {\n\t\tcontent: "";\n\t\twidth: 0;\n\t\tposition: absolute;\n\t\tright: -1px;\n\t\ttop: -1px;\n\t\tbottom: -1px;\n\t\tz-index: 1;\n\t}\n\n\t&:focus::after {\n\t\tdisplay: none;\n\t}\n}\n\n.ck.ck-responsive-form {\n\t@mixin ck-media-phone {\n\t\t& .ck-button {\n\t\t\t&::after {\n\t\t\t\tcontent: "";\n\t\t\t\twidth: 0;\n\t\t\t\tposition: absolute;\n\t\t\t\tright: -1px;\n\t\t\t\ttop: -1px;\n\t\t\t\tbottom: -1px;\n\t\t\t\tz-index: 1;\n\t\t\t}\n\n\t\t\t&:focus::after {\n\t\t\t\tdisplay: none;\n\t\t\t}\n\t\t}\n\t}\n}\n',"/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n@define-mixin ck-media-phone {\n\t@media screen and (max-width: 600px) {\n\t\t@mixin-content;\n\t}\n}\n",'/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n@import "@ckeditor/ckeditor5-ui/theme/mixins/_rwd.css";\n@import "@ckeditor/ckeditor5-ui/theme/mixins/_dir.css";\n\n.ck-vertical-form > .ck-button:nth-last-child(2)::after {\n\tborder-right: 1px solid var(--ck-color-base-border);\n}\n\n.ck.ck-responsive-form {\n\tpadding: var(--ck-spacing-large);\n\n\t&:focus {\n\t\t/* See: https://github.com/ckeditor/ckeditor5/issues/4773 */\n\t\toutline: none;\n\t}\n\n\t@mixin ck-dir ltr {\n\t\t& > :not(:first-child) {\n\t\t\tmargin-left: var(--ck-spacing-standard);\n\t\t}\n\t}\n\n\t@mixin ck-dir rtl {\n\t\t& > :not(:last-child) {\n\t\t\tmargin-left: var(--ck-spacing-standard);\n\t\t}\n\t}\n\n\t@mixin ck-media-phone {\n\t\tpadding: 0;\n\t\twidth: calc(.8 * var(--ck-input-width));\n\n\t\t& .ck-labeled-field-view {\n\t\t\tmargin: var(--ck-spacing-large) var(--ck-spacing-large) 0;\n\n\t\t\t& .ck-input-text,\n\t\t\t& .ck-input-number {\n\t\t\t\tmin-width: 0;\n\t\t\t\twidth: 100%;\n\t\t\t}\n\n\t\t\t/* Let the long error messages wrap in the narrow form. */\n\t\t\t& .ck-labeled-field-view__error {\n\t\t\t\twhite-space: normal;\n\t\t\t}\n\t\t}\n\n\t\t/* Styles for two last buttons in the form (save&cancel, edit&unlink, etc.). */\n\t\t& > .ck-button:nth-last-child(2) {\n\t\t\t&::after {\n\t\t\t\tborder-right: 1px solid var(--ck-color-base-border);\n\t\t\t}\n\t\t}\n\n\t\t& > .ck-button:nth-last-child(1),\n\t\t& > .ck-button:nth-last-child(2) {\n\t\t\tpadding: var(--ck-spacing-standard);\n\t\t\tmargin-top: var(--ck-spacing-large);\n\t\t\tborder-radius: 0;\n\n\t\t\t&:not(:focus) {\n\t\t\t\tborder-top: 1px solid var(--ck-color-base-border);\n\t\t\t}\n\n\t\t\t@mixin ck-dir ltr {\n\t\t\t\tmargin-left: 0;\n\t\t\t}\n\n\t\t\t@mixin ck-dir rtl {\n\t\t\t\tmargin-left: 0;\n\n\t\t\t\t&:last-of-type {\n\t\t\t\t\tborder-right: 1px solid var(--ck-color-base-border);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n','/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n@define-mixin ck-dir $direction {\n\t[dir="$(direction)"] & {\n\t\t@mixin-content;\n\t}\n}\n'],sourceRoot:""}]);const a=s},880:(e,t,o)=>{"use strict";o.d(t,{A:()=>a});var n=o(1354),i=o.n(n),r=o(6314),s=o.n(r)()(i());s.push([e.id,".ck.ck-dialog-overlay{bottom:0;left:0;overscroll-behavior:none;position:fixed;right:0;top:0;user-select:none}.ck.ck-dialog-overlay.ck-dialog-overlay__transparent{animation:none;background:none;pointer-events:none}.ck.ck-dialog{overscroll-behavior:none;position:absolute;width:fit-content}.ck.ck-dialog .ck.ck-form__header{flex-shrink:0}.ck.ck-dialog:not(.ck-dialog_modal) .ck.ck-form__header .ck-form__header__label{cursor:grab}.ck.ck-dialog-overlay.ck-dialog-overlay__transparent .ck.ck-dialog{pointer-events:all}:root{--ck-dialog-overlay-background-color:rgba(0,0,0,.5);--ck-dialog-drop-shadow:0px 0px 6px 2px rgba(0,0,0,.15);--ck-dialog-max-width:100vw;--ck-dialog-max-height:90vh;--ck-color-dialog-background:var(--ck-color-base-background);--ck-color-dialog-form-header-border:var(--ck-color-base-border)}.ck.ck-dialog-overlay{animation:ck-dialog-fade-in .3s;background:var(--ck-dialog-overlay-background-color);z-index:var(--ck-z-dialog)}.ck.ck-dialog{border-radius:0;--ck-drop-shadow:var(--ck-dialog-drop-shadow);background:var(--ck-color-dialog-background);border:1px solid var(--ck-color-base-border);max-height:var(--ck-dialog-max-height);max-width:var(--ck-dialog-max-width);overscroll-behavior:contain}.ck-rounded-corners .ck.ck-dialog,.ck.ck-dialog.ck-rounded-corners{border-radius:var(--ck-border-radius)}.ck.ck-dialog{box-shadow:var(--ck-drop-shadow),0 0}.ck.ck-dialog .ck.ck-form__header{border-bottom:1px solid var(--ck-color-dialog-form-header-border)}.ck-dialog-scroll-locked{overflow:hidden}@keyframes ck-dialog-fade-in{0%{background:transparent}to{background:var(--ck-dialog-overlay-background-color)}}","",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/components/dialog/dialog.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-ui/components/dialog/dialog.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/mixins/_rounded.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/mixins/_shadow.css"],names:[],mappings:"AAKA,sBAKC,QAAS,CACT,MAAO,CAJP,wBAAyB,CAEzB,cAAe,CAGf,OAAQ,CACR,KAAM,CAPN,gBAcD,CALC,qDAEC,cAAe,CACf,eAAgB,CAFhB,mBAGD,CAGD,cACC,wBAAyB,CAEzB,iBAAkB,CADlB,iBAiBD,CAdC,kCACC,aACD,CAIC,gFACC,WACD,CAGD,mEACC,kBACD,CC/BD,MACC,mDAA2D,CAC3D,uDAA8D,CAC9D,2BAA4B,CAC5B,2BAA4B,CAC5B,4DAA6D,CAC7D,gEACD,CAEA,sBACC,+BAAgC,CAChC,oDAAqD,CACrD,0BACD,CAEA,cCbC,eAAgB,CDiBhB,6CAA8C,CAE9C,4CAA6C,CAG7C,4CAA6C,CAF7C,sCAAuC,CACvC,oCAAqC,CAErC,2BAKD,CC1BC,mEAEC,qCAED,CDOD,cEfC,oCF8BD,CAHC,kCACC,iEACD,CAGD,yBACC,eACD,CAEA,6BACC,GACC,sBACD,CAEA,GACC,oDACD,CACD",sourcesContent:["/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n.ck.ck-dialog-overlay {\n\tuser-select: none;\n\toverscroll-behavior: none;\n\n\tposition: fixed;\n\tbottom: 0;\n\tleft: 0;\n\tright: 0;\n\ttop: 0;\n\n\t&.ck-dialog-overlay__transparent {\n\t\tpointer-events: none;\n\t\tanimation: none;\n\t\tbackground: none;\n\t}\n}\n\n.ck.ck-dialog {\n\toverscroll-behavior: none;\n\twidth: fit-content;\n\tposition: absolute;\n\n\t& .ck.ck-form__header {\n\t\tflex-shrink: 0;\n\t}\n\n\t/* Modals should not be draggable. */\n\t&:not(.ck-dialog_modal) {\n\t\t& .ck.ck-form__header .ck-form__header__label {\n\t\t\tcursor: grab;\n\t\t}\n\t}\n\n\t.ck.ck-dialog-overlay.ck-dialog-overlay__transparent & {\n\t\tpointer-events: all;\n\t}\n}\n",'/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n@import "../../../mixins/_rounded.css";\n@import "../../../mixins/_shadow.css";\n@import "@ckeditor/ckeditor5-ui/theme/mixins/_rwd.css";\n\n:root {\n\t--ck-dialog-overlay-background-color: hsla( 0, 0%, 0%, .5 );\n\t--ck-dialog-drop-shadow: 0px 0px 6px 2px hsl(0deg 0% 0% / 15%);\n\t--ck-dialog-max-width: 100vw;\n\t--ck-dialog-max-height: 90vh;\n\t--ck-color-dialog-background: var(--ck-color-base-background);\n\t--ck-color-dialog-form-header-border: var(--ck-color-base-border);\n}\n\n.ck.ck-dialog-overlay {\n\tanimation: ck-dialog-fade-in .3s;\n\tbackground: var(--ck-dialog-overlay-background-color);\n\tz-index: var(--ck-z-dialog);\n}\n\n.ck.ck-dialog {\n\t@mixin ck-rounded-corners;\n\t@mixin ck-drop-shadow;\n\n\t--ck-drop-shadow: var(--ck-dialog-drop-shadow);\n\n\tbackground: var(--ck-color-dialog-background);\n\tmax-height: var(--ck-dialog-max-height);\n\tmax-width: var(--ck-dialog-max-width);\n\tborder: 1px solid var(--ck-color-base-border);\n\toverscroll-behavior: contain;\n\n\t& .ck.ck-form__header {\n\t\tborder-bottom: 1px solid var(--ck-color-dialog-form-header-border);\n\t}\n}\n\n.ck-dialog-scroll-locked {\n\toverflow: hidden;\n}\n\n@keyframes ck-dialog-fade-in {\n\t0% {\n\t\tbackground: hsla( 0, 0%, 0%, 0 );\n\t}\n\n\t100% {\n\t\tbackground: var(--ck-dialog-overlay-background-color);\n\t}\n}\n',"/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/**\n * Implements rounded corner interface for .ck-rounded-corners class.\n *\n * @see $ck-border-radius\n */\n@define-mixin ck-rounded-corners {\n\tborder-radius: 0;\n\n\t.ck-rounded-corners &,\n\t&.ck-rounded-corners {\n\t\tborder-radius: var(--ck-border-radius);\n\t\t@mixin-content;\n\t}\n}\n","/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/**\n * A helper to combine multiple shadows.\n */\n@define-mixin ck-box-shadow $shadowA, $shadowB: 0 0 {\n\tbox-shadow: $shadowA, $shadowB;\n}\n\n/**\n * Gives an element a drop shadow so it looks like a floating panel.\n */\n@define-mixin ck-drop-shadow {\n\t@mixin ck-box-shadow var(--ck-drop-shadow);\n}\n"],sourceRoot:""}]);const a=s},1091:(e,t,o)=>{"use strict";o.d(t,{A:()=>a});var n=o(1354),i=o.n(n),r=o(6314),s=o.n(r)()(i());s.push([e.id,".ck.ck-editor__editable img.image_placeholder{background-size:100% 100%}","",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-image/theme/imageplaceholder.css"],names:[],mappings:"AAMC,8CACC,yBACD",sourcesContent:["/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n.ck.ck-editor__editable {\n\t& img.image_placeholder {\n\t\tbackground-size: 100% 100%;\n\t}\n}\n"],sourceRoot:""}]);const a=s},1102:(e,t,o)=>{"use strict";o.d(t,{A:()=>a});var n=o(1354),i=o.n(n),r=o(6314),s=o.n(r)()(i());s.push([e.id,".ck-button.ck-dropdown-menu-list__nested-menu__item__button{border-radius:0}.ck-button.ck-dropdown-menu-list__nested-menu__item__button>.ck-spinner-container,.ck-button.ck-dropdown-menu-list__nested-menu__item__button>.ck-spinner-container .ck-spinner{--ck-toolbar-spinner-size:20px}.ck-button.ck-dropdown-menu-list__nested-menu__item__button>.ck-spinner-container{margin-left:calc(var(--ck-spacing-small)*-1);margin-right:var(--ck-spacing-small)}.ck-button.ck-dropdown-menu-list__nested-menu__item__button:focus{border-color:transparent;box-shadow:none}.ck-button.ck-dropdown-menu-list__nested-menu__item__button:focus:not(.ck-on){background:var(--ck-color-button-default-hover-background)}","",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-ui/components/dropdown/menu/dropdownmenulistitembutton.css"],names:[],mappings:"AAQA,4DACC,eA0BD,CAxBC,gLAGC,8BACD,CAEA,kFAEC,4CAA+C,CAC/C,oCACD,CAMA,kEACC,wBAAyB,CACzB,eAKD,CAHC,8EACC,0DACD",sourcesContent:["/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/*\n * List item buttons.\n */\n.ck-button.ck-dropdown-menu-list__nested-menu__item__button {\n\tborder-radius: 0;\n\n\t& > .ck-spinner-container,\n\t& > .ck-spinner-container .ck-spinner {\n\t\t/* These styles correspond to .ck-icon so that the spinner seamlessly replaces the icon. */\n\t\t--ck-toolbar-spinner-size: 20px;\n\t}\n\n\t& > .ck-spinner-container {\n\t\t/* These margins are the same as for .ck-icon. */\n\t\tmargin-left: calc(-1 * var(--ck-spacing-small));\n\t\tmargin-right: var(--ck-spacing-small);\n\t}\n\n\t/*\n\t * Hovered items automatically get focused. Default focus styles look odd\n\t * while moving across a huge list of items so let's get rid of them\n\t */\n\t&:focus {\n\t\tborder-color: transparent;\n\t\tbox-shadow: none;\n\n\t\t&:not(.ck-on) {\n\t\t\tbackground: var(--ck-color-button-default-hover-background);\n\t\t}\n\t}\n}\n"],sourceRoot:""}]);const a=s},1111:(e,t,o)=>{"use strict";o.d(t,{A:()=>a});var n=o(1354),i=o.n(n),r=o(6314),s=o.n(r)()(i());s.push([e.id,".ck .ck-placeholder,.ck.ck-placeholder{position:relative}.ck .ck-placeholder:before,.ck.ck-placeholder:before{content:attr(data-placeholder);left:0;pointer-events:none;position:absolute;right:0}.ck.ck-read-only .ck-placeholder:before{display:none}.ck.ck-reset_all .ck-placeholder{position:relative}@media (forced-colors:active){.ck .ck-placeholder,.ck.ck-placeholder{forced-color-adjust:preserve-parent-color}}.ck .ck-placeholder:before,.ck.ck-placeholder:before{cursor:text}@media (forced-colors:none){.ck .ck-placeholder:before,.ck.ck-placeholder:before{color:var(--ck-color-engine-placeholder-text)}}@media (forced-colors:active){.ck .ck-placeholder:before,.ck.ck-placeholder:before{font-style:italic;margin-left:1px}}","",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-engine/theme/placeholder.css","webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/mixins/_mediacolors.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-engine/placeholder.css"],names:[],mappings:"AAMA,uCAEC,iBAWD,CATC,qDAIC,8BAA+B,CAF/B,MAAO,CAKP,mBAAoB,CANpB,iBAAkB,CAElB,OAKD,CAKA,wCACC,YACD,CAQD,iCACC,iBACD,CC7BC,8BACC,uCCOA,yCDLA,CACD,CCOA,qDACC,WAmBD,CDvBA,4BACC,qDCMC,6CDJD,CACD,CAZA,8BACC,qDCsBC,iBAAkB,CAMlB,eD1BD,CACD",sourcesContent:["/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/* See ckeditor/ckeditor5#936. */\n.ck.ck-placeholder,\n.ck .ck-placeholder {\n\tposition: relative;\n\n\t&::before {\n\t\tposition: absolute;\n\t\tleft: 0;\n\t\tright: 0;\n\t\tcontent: attr(data-placeholder);\n\n\t\t/* See ckeditor/ckeditor5#469. */\n\t\tpointer-events: none;\n\t}\n}\n\n/* See ckeditor/ckeditor5#1987. */\n.ck.ck-read-only .ck-placeholder {\n\t&::before {\n\t\tdisplay: none;\n\t}\n}\n\n/*\n * Rules for the `ck-placeholder` are loaded before the rules for `ck-reset_all` in the base CKEditor 5 DLL build.\n * This fix overwrites the incorrectly set `position: static` from `ck-reset_all`.\n * See https://github.com/ckeditor/ckeditor5/issues/11418.\n */\n.ck.ck-reset_all .ck-placeholder {\n\tposition: relative;\n}\n","/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n@define-mixin ck-media-forced-colors {\n\t@media (forced-colors: active) {\n\t\t& {\n\t\t\t@mixin-content;\n\t\t}\n\t}\n}\n\n@define-mixin ck-media-default-colors {\n\t@media (forced-colors: none) {\n\t\t& {\n\t\t\t@mixin-content;\n\t\t}\n\t}\n}\n",'/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n@import "@ckeditor/ckeditor5-ui/theme/mixins/_mediacolors.css";\n\n/* See ckeditor/ckeditor5#936. */\n.ck.ck-placeholder, .ck .ck-placeholder {\n\t@mixin ck-media-forced-colors {\n\t\t/*\n\t\t * This is needed for Edge on Windows to use the right color for the placeholder content (::before).\n\t\t * See https://github.com/ckeditor/ckeditor5/issues/14907.\n\t\t */\n\t\tforced-color-adjust: preserve-parent-color;\n\t}\n\n\t&::before {\n\t\tcursor: text;\n\n\t\t@mixin ck-media-default-colors {\n\t\t\tcolor: var(--ck-color-engine-placeholder-text);\n\t\t}\n\n\t\t@mixin ck-media-forced-colors {\n\t\t\t/*\n\t\t\t * In the high contrast mode there is no telling between regular and placeholder text. Using\n\t\t\t * italic text to address that issue. See https://github.com/ckeditor/ckeditor5/issues/14907.\n\t\t\t */\n\t\t\tfont-style: italic;\n\n\t\t\t/*\n\t\t\t * Without this margin, the caret will not show up and blink when the user puts the selection\n\t\t\t * in the placeholder (Edge on Windows). See https://github.com/ckeditor/ckeditor5/issues/14907.\n\t\t\t */\n\t\t\tmargin-left: 1px;\n\t\t}\n\t}\n}\n'],sourceRoot:""}]);const a=s},1160:(e,t,o)=>{"use strict";o.d(t,{A:()=>a});var n=o(1354),i=o.n(n),r=o(6314),s=o.n(r)()(i());s.push([e.id,'.ck .ck-upload-placeholder-loader{align-items:center;display:flex;justify-content:center;left:0;position:absolute;top:0}.ck .ck-upload-placeholder-loader:before{content:"";position:relative}:root{--ck-color-upload-placeholder-loader:#b3b3b3;--ck-upload-placeholder-loader-size:32px;--ck-upload-placeholder-image-aspect-ratio:2.8}.ck .ck-image-upload-placeholder{margin:0;width:100%}.ck .ck-image-upload-placeholder.image-inline{width:calc(var(--ck-upload-placeholder-loader-size)*2*var(--ck-upload-placeholder-image-aspect-ratio))}.ck .ck-image-upload-placeholder img{aspect-ratio:var(--ck-upload-placeholder-image-aspect-ratio)}.ck .ck-upload-placeholder-loader{height:100%;width:100%}.ck .ck-upload-placeholder-loader:before{animation:ck-upload-placeholder-loader 1s linear infinite;border-radius:50%;border-right:2px solid transparent;border-top:3px solid var(--ck-color-upload-placeholder-loader);height:var(--ck-upload-placeholder-loader-size);width:var(--ck-upload-placeholder-loader-size)}@keyframes ck-upload-placeholder-loader{to{transform:rotate(1turn)}}',"",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-image/theme/imageuploadloader.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-image/imageuploadloader.css"],names:[],mappings:"AAKA,kCAGC,kBAAmB,CADnB,YAAa,CAEb,sBAAuB,CAEvB,MAAO,CALP,iBAAkB,CAIlB,KAOD,CAJC,yCACC,UAAW,CACX,iBACD,CCXD,MACC,4CAAqD,CACrD,wCAAyC,CACzC,8CACD,CAEA,iCAGC,QAAS,CADT,UAgBD,CAbC,8CACC,sGACD,CAEA,qCAOC,4DACD,CAGD,kCAEC,WAAY,CADZ,UAWD,CARC,yCAMC,yDAA0D,CAH1D,iBAAkB,CAElB,kCAAmC,CADnC,8DAA+D,CAF/D,+CAAgD,CADhD,8CAMD,CAGD,wCACC,GACC,uBACD,CACD",sourcesContent:["/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n.ck .ck-upload-placeholder-loader {\n\tposition: absolute;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\ttop: 0;\n\tleft: 0;\n\n\t&::before {\n\t\tcontent: '';\n\t\tposition: relative;\n\t}\n}\n","/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n:root {\n\t--ck-color-upload-placeholder-loader: hsl(0, 0%, 70%);\n\t--ck-upload-placeholder-loader-size: 32px;\n\t--ck-upload-placeholder-image-aspect-ratio: 2.8;\n}\n\n.ck .ck-image-upload-placeholder {\n\t/* We need to control the full width of the SVG gray background. */\n\twidth: 100%;\n\tmargin: 0;\n\n\t&.image-inline {\n\t\twidth: calc( 2 * var(--ck-upload-placeholder-loader-size) * var(--ck-upload-placeholder-image-aspect-ratio) );\n\t}\n\n\t& img {\n\t\t/*\n\t\t * This is an arbitrary aspect for a 1x1 px GIF to display to the user. Not too tall, not too short.\n\t\t * There's nothing special about this number except that it should make the image placeholder look like\n\t\t * a real image during this short period after the upload started and before the image was read from the\n\t\t * file system (and a rich preview was loaded).\n\t\t */\n\t\taspect-ratio: var(--ck-upload-placeholder-image-aspect-ratio);\n\t}\n}\n\n.ck .ck-upload-placeholder-loader {\n\twidth: 100%;\n\theight: 100%;\n\n\t&::before {\n\t\twidth: var(--ck-upload-placeholder-loader-size);\n\t\theight: var(--ck-upload-placeholder-loader-size);\n\t\tborder-radius: 50%;\n\t\tborder-top: 3px solid var(--ck-color-upload-placeholder-loader);\n\t\tborder-right: 2px solid transparent;\n\t\tanimation: ck-upload-placeholder-loader 1s linear infinite;\n\t}\n}\n\n@keyframes ck-upload-placeholder-loader {\n\tto {\n\t\ttransform: rotate( 360deg );\n\t}\n}\n"],sourceRoot:""}]);const a=s},1173:(e,t,o)=>{"use strict";o.d(t,{A:()=>a});var n=o(1354),i=o.n(n),r=o(6314),s=o.n(r)()(i());s.push([e.id,".ck.ck-image-custom-resize-form{align-items:flex-start;display:flex;flex-direction:row;flex-wrap:nowrap}.ck.ck-image-custom-resize-form .ck-labeled-field-view{display:inline-block}.ck.ck-image-custom-resize-form .ck-label{display:none}@media screen and (max-width:600px){.ck.ck-image-custom-resize-form{flex-wrap:wrap}.ck.ck-image-custom-resize-form .ck-labeled-field-view{flex-basis:100%}.ck.ck-image-custom-resize-form .ck-button{flex-basis:50%}}","",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-image/theme/imagecustomresizeform.css","webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/mixins/_rwd.css"],names:[],mappings:"AAOA,gCAIC,sBAAuB,CAHvB,YAAa,CACb,kBAAmB,CACnB,gBAsBD,CAnBC,uDACC,oBACD,CAEA,0CACC,YACD,CCbA,oCDCD,gCAeE,cAUF,CARE,uDACC,eACD,CAEA,2CACC,cACD,CCtBD",sourcesContent:['/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n@import "@ckeditor/ckeditor5-ui/theme/mixins/_rwd.css";\n\n.ck.ck-image-custom-resize-form {\n\tdisplay: flex;\n\tflex-direction: row;\n\tflex-wrap: nowrap;\n\talign-items: flex-start;\n\n\t& .ck-labeled-field-view {\n\t\tdisplay: inline-block;\n\t}\n\n\t& .ck-label {\n\t\tdisplay: none;\n\t}\n\n\t@mixin ck-media-phone {\n\t\tflex-wrap: wrap;\n\n\t\t& .ck-labeled-field-view {\n\t\t\tflex-basis: 100%;\n\t\t}\n\n\t\t& .ck-button {\n\t\t\tflex-basis: 50%;\n\t\t}\n\t}\n}\n',"/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n@define-mixin ck-media-phone {\n\t@media screen and (max-width: 600px) {\n\t\t@mixin-content;\n\t}\n}\n"],sourceRoot:""}]);const a=s},1214:(e,t,o)=>{"use strict";o.d(t,{A:()=>a});var n=o(1354),i=o.n(n),r=o(6314),s=o.n(r)()(i());s.push([e.id,":root{--ck-menu-bar-menu-item-min-width:18em}.ck.ck-menu-bar__menu .ck.ck-menu-bar__menu__item{min-width:var(--ck-menu-bar-menu-item-min-width)}","",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-ui/components/menubar/menubarmenulistitem.css"],names:[],mappings:"AAKA,MACC,sCACD,CAEA,kDACC,gDACD",sourcesContent:["/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n:root {\n\t--ck-menu-bar-menu-item-min-width: 18em;\n}\n\n.ck.ck-menu-bar__menu .ck.ck-menu-bar__menu__item {\n\tmin-width: var(--ck-menu-bar-menu-item-min-width);\n}\n"],sourceRoot:""}]);const a=s},1216:(e,t,o)=>{"use strict";o.d(t,{A:()=>a});var n=o(1354),i=o.n(n),r=o(6314),s=o.n(r)()(i());s.push([e.id,":root{--ck-color-resizer:var(--ck-color-focus-border);--ck-color-resizer-tooltip-background:#262626;--ck-color-resizer-tooltip-text:#f2f2f2;--ck-resizer-border-radius:var(--ck-border-radius);--ck-resizer-tooltip-offset:10px;--ck-resizer-tooltip-height:calc(var(--ck-spacing-small)*2 + 10px)}.ck .ck-widget,.ck .ck-widget.ck-widget_with-selection-handle{position:relative}.ck .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle{position:absolute}.ck .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle .ck-icon{display:block}.ck .ck-widget.ck-widget_with-selection-handle.ck-widget_selected>.ck-widget__selection-handle,.ck .ck-widget.ck-widget_with-selection-handle:hover>.ck-widget__selection-handle{visibility:visible}.ck .ck-size-view{background:var(--ck-color-resizer-tooltip-background);border:1px solid var(--ck-color-resizer-tooltip-text);border-radius:var(--ck-resizer-border-radius);color:var(--ck-color-resizer-tooltip-text);display:block;font-size:var(--ck-font-size-tiny);height:var(--ck-resizer-tooltip-height);line-height:var(--ck-resizer-tooltip-height);padding:0 var(--ck-spacing-small)}.ck .ck-size-view.ck-orientation-above-center,.ck .ck-size-view.ck-orientation-bottom-left,.ck .ck-size-view.ck-orientation-bottom-right,.ck .ck-size-view.ck-orientation-top-left,.ck .ck-size-view.ck-orientation-top-right{position:absolute}.ck .ck-size-view.ck-orientation-top-left{left:var(--ck-resizer-tooltip-offset);top:var(--ck-resizer-tooltip-offset)}.ck .ck-size-view.ck-orientation-top-right{right:var(--ck-resizer-tooltip-offset);top:var(--ck-resizer-tooltip-offset)}.ck .ck-size-view.ck-orientation-bottom-right{bottom:var(--ck-resizer-tooltip-offset);right:var(--ck-resizer-tooltip-offset)}.ck .ck-size-view.ck-orientation-bottom-left{bottom:var(--ck-resizer-tooltip-offset);left:var(--ck-resizer-tooltip-offset)}.ck .ck-size-view.ck-orientation-above-center{left:50%;top:calc(var(--ck-resizer-tooltip-height)*-1);transform:translate(-50%)}:root{--ck-widget-outline-thickness:3px;--ck-widget-handler-icon-size:16px;--ck-widget-handler-animation-duration:200ms;--ck-widget-handler-animation-curve:ease;--ck-color-widget-blurred-border:#dedede;--ck-color-widget-hover-border:#ffc83d;--ck-color-widget-editable-focus-background:var(--ck-color-base-background);--ck-color-widget-drag-handler-icon-color:var(--ck-color-base-background)}.ck .ck-widget{outline-color:transparent;outline-style:solid;outline-width:var(--ck-widget-outline-thickness);transition:outline-color var(--ck-widget-handler-animation-duration) var(--ck-widget-handler-animation-curve)}@media (prefers-reduced-motion:reduce){.ck .ck-widget{transition:none}}.ck .ck-widget.ck-widget_selected,.ck .ck-widget.ck-widget_selected:hover{outline:var(--ck-widget-outline-thickness) solid var(--ck-color-focus-border)}.ck .ck-widget:hover{outline-color:var(--ck-color-widget-hover-border)}.ck .ck-editor__nested-editable{border:1px solid transparent}.ck .ck-editor__nested-editable.ck-editor__nested-editable_focused,.ck .ck-editor__nested-editable:focus{box-shadow:var(--ck-inner-shadow),0 0}@media (forced-colors:none){.ck .ck-editor__nested-editable.ck-editor__nested-editable_focused,.ck .ck-editor__nested-editable:focus{background-color:var(--ck-color-widget-editable-focus-background)}}.ck .ck-editor__nested-editable.ck-editor__nested-editable_focused:not(td,th),.ck .ck-editor__nested-editable:focus:not(td,th){border:var(--ck-focus-ring);outline:none}.ck .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle{background-color:transparent;border-radius:var(--ck-border-radius) var(--ck-border-radius) 0 0;box-sizing:border-box;left:calc(0px - var(--ck-widget-outline-thickness));opacity:0;padding:4px;top:0;transform:translateY(-100%);transition:background-color var(--ck-widget-handler-animation-duration) var(--ck-widget-handler-animation-curve),visibility var(--ck-widget-handler-animation-duration) var(--ck-widget-handler-animation-curve),opacity var(--ck-widget-handler-animation-duration) var(--ck-widget-handler-animation-curve)}@media (prefers-reduced-motion:reduce){.ck .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle{transition:none}}.ck .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle .ck-icon{color:var(--ck-color-widget-drag-handler-icon-color);height:var(--ck-widget-handler-icon-size);width:var(--ck-widget-handler-icon-size)}.ck .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle .ck-icon .ck-icon__selected-indicator{opacity:0;transition:opacity .3s var(--ck-widget-handler-animation-curve)}@media (prefers-reduced-motion:reduce){.ck .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle .ck-icon .ck-icon__selected-indicator{transition:none}}.ck .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle:hover .ck-icon .ck-icon__selected-indicator{opacity:1}.ck .ck-widget.ck-widget_with-selection-handle:hover>.ck-widget__selection-handle{background-color:var(--ck-color-widget-hover-border);opacity:1}.ck .ck-widget.ck-widget_with-selection-handle.ck-widget_selected:hover>.ck-widget__selection-handle,.ck .ck-widget.ck-widget_with-selection-handle.ck-widget_selected>.ck-widget__selection-handle{background-color:var(--ck-color-focus-border);opacity:1}.ck .ck-widget.ck-widget_with-selection-handle.ck-widget_selected:hover>.ck-widget__selection-handle .ck-icon .ck-icon__selected-indicator,.ck .ck-widget.ck-widget_with-selection-handle.ck-widget_selected>.ck-widget__selection-handle .ck-icon .ck-icon__selected-indicator{opacity:1}.ck[dir=rtl] .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle{left:auto;right:calc(0px - var(--ck-widget-outline-thickness))}.ck.ck-editor__editable.ck-read-only .ck-widget{transition:none}.ck.ck-editor__editable.ck-read-only .ck-widget:not(.ck-widget_selected){--ck-widget-outline-thickness:0px}.ck.ck-editor__editable.ck-read-only .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle,.ck.ck-editor__editable.ck-read-only .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle:hover{background:var(--ck-color-widget-blurred-border)}.ck.ck-editor__editable.ck-blurred .ck-widget.ck-widget_selected,.ck.ck-editor__editable.ck-blurred .ck-widget.ck-widget_selected:hover{outline-color:var(--ck-color-widget-blurred-border)}.ck.ck-editor__editable.ck-blurred .ck-widget.ck-widget_selected.ck-widget_with-selection-handle:hover>.ck-widget__selection-handle,.ck.ck-editor__editable.ck-blurred .ck-widget.ck-widget_selected.ck-widget_with-selection-handle:hover>.ck-widget__selection-handle:hover,.ck.ck-editor__editable.ck-blurred .ck-widget.ck-widget_selected.ck-widget_with-selection-handle>.ck-widget__selection-handle,.ck.ck-editor__editable.ck-blurred .ck-widget.ck-widget_selected.ck-widget_with-selection-handle>.ck-widget__selection-handle:hover{background:var(--ck-color-widget-blurred-border)}.ck.ck-editor__editable blockquote>.ck-widget.ck-widget_with-selection-handle:first-child,.ck.ck-editor__editable>.ck-widget.ck-widget_with-selection-handle:first-child{margin-top:calc(1em + var(--ck-widget-handler-icon-size))}","",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-widget/theme/widget.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-widget/widget.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/mixins/_shadow.css","webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/mixins/_mediacolors.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/mixins/_focus.css"],names:[],mappings:"AAKA,MACC,+CAAgD,CAChD,6CAAsD,CACtD,uCAAgD,CAEhD,kDAAmD,CACnD,gCAAiC,CACjC,kEACD,CAOA,8DAEC,iBAqBD,CAnBC,4EACC,iBAOD,CALC,qFAGC,aACD,CASD,iLACC,kBACD,CAGD,kBACC,qDAAsD,CAEtD,qDAAsD,CACtD,6CAA8C,CAF9C,0CAA2C,CAI3C,aAAc,CADd,kCAAmC,CAGnC,uCAAwC,CACxC,4CAA6C,CAF7C,iCAsCD,CAlCC,8NAKC,iBACD,CAEA,0CAEC,qCAAsC,CADtC,oCAED,CAEA,2CAEC,sCAAuC,CADvC,oCAED,CAEA,8CACC,uCAAwC,CACxC,sCACD,CAEA,6CACC,uCAAwC,CACxC,qCACD,CAGA,8CAEC,QAAS,CADT,6CAAgD,CAEhD,yBACD,CChFD,MACC,iCAAkC,CAClC,kCAAmC,CACnC,4CAA6C,CAC7C,wCAAyC,CAEzC,wCAAiD,CACjD,sCAAkD,CAClD,2EAA4E,CAC5E,yEACD,CAEA,eAGC,yBAA0B,CAD1B,mBAAoB,CADpB,gDAAiD,CAGjD,6GAcD,CAZC,uCAND,eAOE,eAWF,CAVC,CAEA,0EAEC,6EACD,CAEA,qBACC,iDACD,CAGD,gCACC,4BAoBD,CAhBC,yGCrCA,qCDoDA,CE/CA,4BACC,yGFmCC,iEEjCD,CACD,CFwCC,+HG/CD,2BAA2B,CAD3B,YHkDC,CAKD,4EAKC,4BAA6B,CAa7B,iEAAkE,CAhBlE,qBAAsB,CAoBtB,mDAAoD,CAhBpD,SAAU,CALV,WAAY,CAsBZ,KAAM,CAFN,2BAA4B,CAT5B,6SAwCD,CA3BC,uCAzBD,4EA0BE,eA0BF,CAzBC,CAEA,qFAIC,oDAAqD,CADrD,yCAA0C,CAD1C,wCAeD,CAVC,kHACC,SAAU,CAGV,+DAKD,CAHC,uCAND,kHAOE,eAEF,CADC,CAKF,wHACC,SACD,CAID,kFAEC,oDAAqD,CADrD,SAED,CAKC,oMAEC,6CAA8C,CAD9C,SAOD,CAHC,gRACC,SACD,CAOH,qFACC,SAAU,CACV,oDACD,CAGA,gDAEC,eAkBD,CAhBC,yEAOC,iCACD,CAGC,gOAEC,gDACD,CAOD,wIAEC,mDAQD,CALE,ghBAEC,gDACD,CAKH,yKAOC,yDACD",sourcesContent:["/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n:root {\n\t--ck-color-resizer: var(--ck-color-focus-border);\n\t--ck-color-resizer-tooltip-background: hsl(0, 0%, 15%);\n\t--ck-color-resizer-tooltip-text: hsl(0, 0%, 95%);\n\n\t--ck-resizer-border-radius: var(--ck-border-radius);\n\t--ck-resizer-tooltip-offset: 10px;\n\t--ck-resizer-tooltip-height: calc(var(--ck-spacing-small) * 2 + 10px);\n}\n\n.ck .ck-widget {\n\t/* This is neccessary for type around UI to be positioned properly. */\n\tposition: relative;\n}\n\n.ck .ck-widget.ck-widget_with-selection-handle {\n\t/* Make the widget wrapper a relative positioning container for the drag handle. */\n\tposition: relative;\n\n\t& .ck-widget__selection-handle {\n\t\tposition: absolute;\n\n\t\t& .ck-icon {\n\t\t\t/* Make sure the icon in not a subject to font-size or line-height to avoid\n\t\t\tunnecessary spacing around it. */\n\t\t\tdisplay: block;\n\t\t}\n\t}\n\n\t/* Show the selection handle on mouse hover over the widget, but not for nested widgets. */\n\t&:hover > .ck-widget__selection-handle {\n\t\tvisibility: visible;\n\t}\n\n\t/* Show the selection handle when the widget is selected, but not for nested widgets. */\n\t&.ck-widget_selected > .ck-widget__selection-handle {\n\t\tvisibility: visible;\n\t}\n}\n\n.ck .ck-size-view {\n\tbackground: var(--ck-color-resizer-tooltip-background);\n\tcolor: var(--ck-color-resizer-tooltip-text);\n\tborder: 1px solid var(--ck-color-resizer-tooltip-text);\n\tborder-radius: var(--ck-resizer-border-radius);\n\tfont-size: var(--ck-font-size-tiny);\n\tdisplay: block;\n\tpadding: 0 var(--ck-spacing-small);\n\theight: var(--ck-resizer-tooltip-height);\n\tline-height: var(--ck-resizer-tooltip-height);\n\n\t&.ck-orientation-top-left,\n\t&.ck-orientation-top-right,\n\t&.ck-orientation-bottom-right,\n\t&.ck-orientation-bottom-left,\n\t&.ck-orientation-above-center {\n\t\tposition: absolute;\n\t}\n\n\t&.ck-orientation-top-left {\n\t\ttop: var(--ck-resizer-tooltip-offset);\n\t\tleft: var(--ck-resizer-tooltip-offset);\n\t}\n\n\t&.ck-orientation-top-right {\n\t\ttop: var(--ck-resizer-tooltip-offset);\n\t\tright: var(--ck-resizer-tooltip-offset);\n\t}\n\n\t&.ck-orientation-bottom-right {\n\t\tbottom: var(--ck-resizer-tooltip-offset);\n\t\tright: var(--ck-resizer-tooltip-offset);\n\t}\n\n\t&.ck-orientation-bottom-left {\n\t\tbottom: var(--ck-resizer-tooltip-offset);\n\t\tleft: var(--ck-resizer-tooltip-offset);\n\t}\n\n\t/* Class applied if the widget is too small to contain the size label */\n\t&.ck-orientation-above-center {\n\t\ttop: calc(var(--ck-resizer-tooltip-height) * -1);\n\t\tleft: 50%;\n\t\ttransform: translate(-50%);\n\t}\n}\n",'/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n@import "../mixins/_focus.css";\n@import "../mixins/_shadow.css";\n@import "@ckeditor/ckeditor5-ui/theme/mixins/_mediacolors.css";\n\n:root {\n\t--ck-widget-outline-thickness: 3px;\n\t--ck-widget-handler-icon-size: 16px;\n\t--ck-widget-handler-animation-duration: 200ms;\n\t--ck-widget-handler-animation-curve: ease;\n\n\t--ck-color-widget-blurred-border: hsl(0, 0%, 87%);\n\t--ck-color-widget-hover-border: hsl(43, 100%, 62%);\n\t--ck-color-widget-editable-focus-background: var(--ck-color-base-background);\n\t--ck-color-widget-drag-handler-icon-color: var(--ck-color-base-background);\n}\n\n.ck .ck-widget {\n\toutline-width: var(--ck-widget-outline-thickness);\n\toutline-style: solid;\n\toutline-color: transparent;\n\ttransition: outline-color var(--ck-widget-handler-animation-duration) var(--ck-widget-handler-animation-curve);\n\n\t@media (prefers-reduced-motion: reduce) {\n\t\ttransition: none;\n\t}\n\n\t&.ck-widget_selected,\n\t&.ck-widget_selected:hover {\n\t\toutline: var(--ck-widget-outline-thickness) solid var(--ck-color-focus-border);\n\t}\n\n\t&:hover {\n\t\toutline-color: var(--ck-color-widget-hover-border);\n\t}\n}\n\n.ck .ck-editor__nested-editable {\n\tborder: 1px solid transparent;\n\n\t/* The :focus style is applied before .ck-editor__nested-editable_focused class is rendered in the view.\n\tThese styles show a different border for a blink of an eye, so `:focus` need to have same styles applied. */\n\t&.ck-editor__nested-editable_focused,\n\t&:focus {\n\t\t@mixin ck-box-shadow var(--ck-inner-shadow);\n\t\t@mixin ck-media-default-colors {\n\t\t\tbackground-color: var(--ck-color-widget-editable-focus-background);\n\t\t}\n\n\t\t/**\n\t\t * Focus border should not be applied to table cells because it overrides the default table cell border color.\n\t\t * In other words - in some scenarios, the part of the table cell border has focus color style, which is not expected behavior\n\t\t * because it should be the same as the table cell border color.\n\t\t */\n\t\t&:not(td, th) {\n\t\t\t@mixin ck-focus-ring;\n\t\t}\n\t}\n}\n\n.ck .ck-widget.ck-widget_with-selection-handle {\n\t& .ck-widget__selection-handle {\n\t\tpadding: 4px;\n\t\tbox-sizing: border-box;\n\n\t\t/* Background and opacity will be animated as the handler shows up or the widget gets selected. */\n\t\tbackground-color: transparent;\n\t\topacity: 0;\n\n\t\t/* Transition:\n\t\t * background-color for the .ck-widget_selected state change,\n\t\t * visibility for hiding the handler,\n\t\t * opacity for the proper look of the icon when the handler disappears. */\n\t\ttransition:\n\t\t\tbackground-color var(--ck-widget-handler-animation-duration) var(--ck-widget-handler-animation-curve),\n\t\t\tvisibility var(--ck-widget-handler-animation-duration) var(--ck-widget-handler-animation-curve),\n\t\t\topacity var(--ck-widget-handler-animation-duration) var(--ck-widget-handler-animation-curve);\n\n\t\t/* Make only top corners round. */\n\t\tborder-radius: var(--ck-border-radius) var(--ck-border-radius) 0 0;\n\n\t\t/* Place the drag handler outside the widget wrapper. */\n\t\ttransform: translateY(-100%);\n\t\tleft: calc(0px - var(--ck-widget-outline-thickness));\n\t\ttop: 0;\n\n\t\t@media (prefers-reduced-motion: reduce) {\n\t\t\ttransition: none;\n\t\t}\n\n\t\t& .ck-icon {\n\t\t\t/* Make sure the dimensions of the icon are independent of the fon-size of the content. */\n\t\t\twidth: var(--ck-widget-handler-icon-size);\n\t\t\theight: var(--ck-widget-handler-icon-size);\n\t\t\tcolor: var(--ck-color-widget-drag-handler-icon-color);\n\n\t\t\t/* The "selected" part of the icon is invisible by default */\n\t\t\t& .ck-icon__selected-indicator {\n\t\t\t\topacity: 0;\n\n\t\t\t\t/* Note: The animation is longer on purpose. Simply feels better. */\n\t\t\t\ttransition: opacity 300ms var(--ck-widget-handler-animation-curve);\n\n\t\t\t\t@media (prefers-reduced-motion: reduce) {\n\t\t\t\t\ttransition: none;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t/* Advertise using the look of the icon that once clicked the handler, the widget will be selected. */\n\t\t&:hover .ck-icon .ck-icon__selected-indicator {\n\t\t\topacity: 1;\n\t\t}\n\t}\n\n\t/* Show the selection handler on mouse hover over the widget, but not for nested widgets. */\n\t&:hover > .ck-widget__selection-handle {\n\t\topacity: 1;\n\t\tbackground-color: var(--ck-color-widget-hover-border);\n\t}\n\n\t/* Show the selection handler when the widget is selected, but not for nested widgets. */\n\t&.ck-widget_selected,\n\t&.ck-widget_selected:hover {\n\t\t& > .ck-widget__selection-handle {\n\t\t\topacity: 1;\n\t\t\tbackground-color: var(--ck-color-focus-border);\n\n\t\t\t/* When the widget is selected, notify the user using the proper look of the icon. */\n\t\t\t& .ck-icon .ck-icon__selected-indicator {\n\t\t\t\topacity: 1;\n\t\t\t}\n\t\t}\n\t}\n}\n\n/* In a RTL environment, align the selection handler to the right side of the widget */\n/* stylelint-disable-next-line no-descending-specificity */\n.ck[dir="rtl"] .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle {\n\tleft: auto;\n\tright: calc(0px - var(--ck-widget-outline-thickness));\n}\n\n/* https://github.com/ckeditor/ckeditor5/issues/6415 */\n.ck.ck-editor__editable.ck-read-only .ck-widget {\n\t/* Prevent the :hover outline from showing up because of the used outline-color transition. */\n\ttransition: none;\n\n\t&:not(.ck-widget_selected) {\n\t\t/* Disable visual effects of hover/active widget when CKEditor is in readOnly mode.\n\t\t * See: https://github.com/ckeditor/ckeditor5/issues/1261\n\t\t *\n\t\t * Leave the unit because this custom property is used in calc() by other features.\n\t\t * See: https://github.com/ckeditor/ckeditor5/issues/6775\n\t\t */\n\t\t--ck-widget-outline-thickness: 0px;\n\t}\n\n\t&.ck-widget_with-selection-handle {\n\t\t& .ck-widget__selection-handle,\n\t\t& .ck-widget__selection-handle:hover {\n\t\t\tbackground: var(--ck-color-widget-blurred-border);\n\t\t}\n\t}\n}\n\n/* Style the widget when it\'s selected but the editable it belongs to lost focus. */\n/* stylelint-disable-next-line no-descending-specificity */\n.ck.ck-editor__editable.ck-blurred .ck-widget {\n\t&.ck-widget_selected,\n\t&.ck-widget_selected:hover {\n\t\toutline-color: var(--ck-color-widget-blurred-border);\n\n\t\t&.ck-widget_with-selection-handle {\n\t\t\t& > .ck-widget__selection-handle,\n\t\t\t& > .ck-widget__selection-handle:hover {\n\t\t\t\tbackground: var(--ck-color-widget-blurred-border);\n\t\t\t}\n\t\t}\n\t}\n}\n\n.ck.ck-editor__editable > .ck-widget.ck-widget_with-selection-handle:first-child,\n.ck.ck-editor__editable blockquote > .ck-widget.ck-widget_with-selection-handle:first-child {\n\t/* Do not crop selection handler if a widget is a first-child in the blockquote or in the root editable.\n\tIn fact, anything with overflow: hidden.\n\thttps://github.com/ckeditor/ckeditor5-block-quote/issues/28\n\thttps://github.com/ckeditor/ckeditor5-widget/issues/44\n\thttps://github.com/ckeditor/ckeditor5-widget/issues/66 */\n\tmargin-top: calc(1em + var(--ck-widget-handler-icon-size));\n}\n',"/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/**\n * A helper to combine multiple shadows.\n */\n@define-mixin ck-box-shadow $shadowA, $shadowB: 0 0 {\n\tbox-shadow: $shadowA, $shadowB;\n}\n\n/**\n * Gives an element a drop shadow so it looks like a floating panel.\n */\n@define-mixin ck-drop-shadow {\n\t@mixin ck-box-shadow var(--ck-drop-shadow);\n}\n","/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n@define-mixin ck-media-forced-colors {\n\t@media (forced-colors: active) {\n\t\t& {\n\t\t\t@mixin-content;\n\t\t}\n\t}\n}\n\n@define-mixin ck-media-default-colors {\n\t@media (forced-colors: none) {\n\t\t& {\n\t\t\t@mixin-content;\n\t\t}\n\t}\n}\n","/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/**\n * A visual style of focused element's border.\n */\n@define-mixin ck-focus-ring {\n\t/* Disable native outline. */\n\toutline: none;\n\tborder: var(--ck-focus-ring)\n}\n"],sourceRoot:""}]);const a=s},1230:(e,t,o)=>{"use strict";o.d(t,{A:()=>a});var n=o(1354),i=o.n(n),r=o(6314),s=o.n(r)()(i());s.push([e.id,'.ck-image-upload-complete-icon{border-radius:50%;display:block;position:absolute;right:min(var(--ck-spacing-medium),6%);top:min(var(--ck-spacing-medium),6%);z-index:1}.ck-image-upload-complete-icon:after{content:"";position:absolute}:root{--ck-color-image-upload-icon:#fff;--ck-color-image-upload-icon-background:#008a00;--ck-image-upload-icon-size:20;--ck-image-upload-icon-width:2px;--ck-image-upload-icon-is-visible:clamp(0px,100% - 50px,1px)}.ck-image-upload-complete-icon{animation-delay:0ms,3s;animation-duration:.5s,.5s;animation-fill-mode:forwards,forwards;animation-name:ck-upload-complete-icon-show,ck-upload-complete-icon-hide;background:var(--ck-color-image-upload-icon-background);font-size:calc(1px*var(--ck-image-upload-icon-size));height:calc(var(--ck-image-upload-icon-is-visible)*var(--ck-image-upload-icon-size));opacity:0;overflow:hidden;width:calc(var(--ck-image-upload-icon-is-visible)*var(--ck-image-upload-icon-size))}.ck-image-upload-complete-icon:after{animation-delay:.5s;animation-duration:.5s;animation-fill-mode:forwards;animation-name:ck-upload-complete-icon-check;border-right:var(--ck-image-upload-icon-width) solid var(--ck-color-image-upload-icon);border-top:var(--ck-image-upload-icon-width) solid var(--ck-color-image-upload-icon);box-sizing:border-box;height:0;left:25%;opacity:0;top:50%;transform:scaleX(-1) rotate(135deg);transform-origin:left top;width:0}@media (prefers-reduced-motion:reduce){.ck-image-upload-complete-icon{animation-duration:0ms}.ck-image-upload-complete-icon:after{animation:none;height:.45em;opacity:1;width:.3em}}@keyframes ck-upload-complete-icon-show{0%{opacity:0}to{opacity:1}}@keyframes ck-upload-complete-icon-hide{0%{opacity:1}to{opacity:0}}@keyframes ck-upload-complete-icon-check{0%{height:0;opacity:1;width:0}33%{height:0;width:.3em}to{height:.45em;opacity:1;width:.3em}}',"",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-image/theme/imageuploadicon.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-image/imageuploadicon.css"],names:[],mappings:"AAKA,+BAUC,iBAAkB,CATlB,aAAc,CACd,iBAAkB,CAOlB,sCAAwC,CADxC,oCAAsC,CAGtC,SAMD,CAJC,qCACC,UAAW,CACX,iBACD,CChBD,MACC,iCAA8C,CAC9C,+CAA4D,CAG5D,8BAA+B,CAC/B,gCAAiC,CACjC,4DACD,CAEA,+BAWC,sBAA4B,CAN5B,0BAAgC,CADhC,qCAAuC,CADvC,wEAA0E,CAD1E,uDAAwD,CAMxD,oDAAuD,CAWvD,oFAAuF,CAlBvF,SAAU,CAgBV,eAAgB,CAChB,mFAqCD,CAjCC,qCAgBC,mBAAsB,CADtB,sBAAyB,CAEzB,4BAA6B,CAH7B,4CAA6C,CAF7C,sFAAuF,CADvF,oFAAqF,CASrF,qBAAsB,CAdtB,QAAS,CAJT,QAAS,CAGT,SAAU,CADV,OAAQ,CAKR,mCAAoC,CACpC,yBAA0B,CAH1B,OAcD,CAEA,uCA7CD,+BA8CE,sBASF,CAPE,qCACC,cAAe,CAGf,YAAc,CAFd,SAAU,CACV,UAED,CACD,CAGD,wCACC,GACC,SACD,CAEA,GACC,SACD,CACD,CAEA,wCACC,GACC,SACD,CAEA,GACC,SACD,CACD,CAEA,yCACC,GAGC,QAAS,CAFT,SAAU,CACV,OAED,CACA,IAEC,QAAS,CADT,UAED,CACA,GAGC,YAAc,CAFd,SAAU,CACV,UAED,CACD",sourcesContent:['/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n.ck-image-upload-complete-icon {\n\tdisplay: block;\n\tposition: absolute;\n\n\t/*\n\t * Smaller images should have the icon closer to the border.\n\t * Match the icon position with the linked image indicator brought by the link image feature.\n\t */\n\ttop: min(var(--ck-spacing-medium), 6%);\n\tright: min(var(--ck-spacing-medium), 6%);\n\tborder-radius: 50%;\n\tz-index: 1;\n\n\t&::after {\n\t\tcontent: "";\n\t\tposition: absolute;\n\t}\n}\n','/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n:root {\n\t--ck-color-image-upload-icon: hsl(0, 0%, 100%);\n\t--ck-color-image-upload-icon-background: hsl(120, 100%, 27%);\n\n\t/* Match the icon size with the linked image indicator brought by the link image feature. */\n\t--ck-image-upload-icon-size: 20;\n\t--ck-image-upload-icon-width: 2px;\n\t--ck-image-upload-icon-is-visible: clamp(0px, 100% - 50px, 1px);\n}\n\n.ck-image-upload-complete-icon {\n\topacity: 0;\n\tbackground: var(--ck-color-image-upload-icon-background);\n\tanimation-name: ck-upload-complete-icon-show, ck-upload-complete-icon-hide;\n\tanimation-fill-mode: forwards, forwards;\n\tanimation-duration: 500ms, 500ms;\n\n\t/* To make animation scalable. */\n\tfont-size: calc(1px * var(--ck-image-upload-icon-size));\n\n\t/* Hide completed upload icon after 3 seconds. */\n\tanimation-delay: 0ms, 3000ms;\n\n\t/*\n\t * Use CSS math to simulate container queries.\n\t * https://css-tricks.com/the-raven-technique-one-step-closer-to-container-queries/#what-about-showing-and-hiding-things\n\t */\n\toverflow: hidden;\n\twidth: calc(var(--ck-image-upload-icon-is-visible) * var(--ck-image-upload-icon-size));\n\theight: calc(var(--ck-image-upload-icon-is-visible) * var(--ck-image-upload-icon-size));\n\n\t/* This is check icon element made from border-width mixed with animations. */\n\t&::after {\n\t\t/* Because of border transformation we need to "hard code" left position. */\n\t\tleft: 25%;\n\n\t\ttop: 50%;\n\t\topacity: 0;\n\t\theight: 0;\n\t\twidth: 0;\n\n\t\ttransform: scaleX(-1) rotate(135deg);\n\t\ttransform-origin: left top;\n\t\tborder-top: var(--ck-image-upload-icon-width) solid var(--ck-color-image-upload-icon);\n\t\tborder-right: var(--ck-image-upload-icon-width) solid var(--ck-color-image-upload-icon);\n\n\t\tanimation-name: ck-upload-complete-icon-check;\n\t\tanimation-duration: 500ms;\n\t\tanimation-delay: 500ms;\n\t\tanimation-fill-mode: forwards;\n\n\t\t/* #1095. While reset is not providing proper box-sizing for pseudoelements, we need to handle it. */\n\t\tbox-sizing: border-box;\n\t}\n\n\t@media (prefers-reduced-motion: reduce) {\n\t\tanimation-duration: 0ms;\n\n\t\t&::after {\n\t\t\tanimation: none;\n\t\t\topacity: 1;\n\t\t\twidth: 0.3em;\n\t\t\theight: 0.45em;\n\t\t}\n\t}\n}\n\n@keyframes ck-upload-complete-icon-show {\n\tfrom {\n\t\topacity: 0;\n\t}\n\n\tto {\n\t\topacity: 1;\n\t}\n}\n\n@keyframes ck-upload-complete-icon-hide {\n\tfrom {\n\t\topacity: 1;\n\t}\n\n\tto {\n\t\topacity: 0;\n\t}\n}\n\n@keyframes ck-upload-complete-icon-check {\n\t0% {\n\t\topacity: 1;\n\t\twidth: 0;\n\t\theight: 0;\n\t}\n\t33% {\n\t\twidth: 0.3em;\n\t\theight: 0;\n\t}\n\t100% {\n\t\topacity: 1;\n\t\twidth: 0.3em;\n\t\theight: 0.45em;\n\t}\n}\n'],sourceRoot:""}]);const a=s},1330:(e,t,o)=>{"use strict";o.d(t,{A:()=>a});var n=o(1354),i=o.n(n),r=o(6314),s=o.n(r)()(i());s.push([e.id,".ck.ck-list-styles-list{display:grid}:root{--ck-list-style-button-size:44px}.ck.ck-list-styles-list{column-gap:var(--ck-spacing-medium);grid-template-columns:repeat(3,auto);padding:var(--ck-spacing-large);row-gap:var(--ck-spacing-medium)}.ck.ck-list-styles-list .ck-button{box-sizing:content-box;margin:0;padding:0}.ck.ck-list-styles-list .ck-button,.ck.ck-list-styles-list .ck-button .ck-icon{height:var(--ck-list-style-button-size);width:var(--ck-list-style-button-size)}","",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-list/theme/liststyles.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-list/liststyles.css"],names:[],mappings:"AAKA,wBACC,YACD,CCFA,MACC,gCACD,CAEA,wBAGC,mCAAoC,CAFpC,oCAAwC,CAGxC,+BAAgC,CAFhC,gCA4BD,CAxBC,mCAiBC,sBAAuB,CAPvB,QAAS,CANT,SAmBD,CAJC,+EAhBA,uCAAwC,CADxC,sCAoBA",sourcesContent:["/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n.ck.ck-list-styles-list {\n\tdisplay: grid;\n}\n",'/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n:root {\n\t--ck-list-style-button-size: 44px;\n}\n\n.ck.ck-list-styles-list {\n\tgrid-template-columns: repeat( 3, auto );\n\trow-gap: var(--ck-spacing-medium);\n\tcolumn-gap: var(--ck-spacing-medium);\n\tpadding: var(--ck-spacing-large);\n\n\t& .ck-button {\n\t\t/* Make the button look like a thumbnail (the icon "takes it all"). */\n\t\twidth: var(--ck-list-style-button-size);\n\t\theight: var(--ck-list-style-button-size);\n\t\tpadding: 0;\n\n\t\t/*\n\t\t * Buttons are aligned by the grid so disable default button margins to not collide with the\n\t\t * gaps in the grid.\n\t\t */\n\t\tmargin: 0;\n\n\t\t/*\n\t\t * Make sure the button border (which is displayed on focus, BTW) does not steal pixels\n\t\t * from the button dimensions and, as a result, decrease the size of the icon\n\t\t * (which becomes blurry as it scales down).\n\t\t */\n\t\tbox-sizing: content-box;\n\n\t\t& .ck-icon {\n\t\t\twidth: var(--ck-list-style-button-size);\n\t\t\theight: var(--ck-list-style-button-size);\n\t\t}\n\t}\n}\n'],sourceRoot:""}]);const a=s},1354:e=>{"use strict";e.exports=function(e){var t=e[1],o=e[3];if(!o)return t;if("function"==typeof btoa){var n=btoa(unescape(encodeURIComponent(JSON.stringify(o)))),i="sourceMappingURL=data:application/json;charset=utf-8;base64,".concat(n),r="/*# ".concat(i," */");return[t].concat([r]).join("\n")}return[t].join("\n")}},1478:(e,t,o)=>{"use strict";o.d(t,{A:()=>a});var n=o(1354),i=o.n(n),r=o(6314),s=o.n(r)()(i());s.push([e.id,":root{--ck-color-mention-background:rgba(153,0,48,.1);--ck-color-mention-text:#990030}.ck-content .mention{background:var(--ck-color-mention-background);color:var(--ck-color-mention-text)}","",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-mention/mention.css"],names:[],mappings:"AAKA,MACC,+CAAwD,CACxD,+BACD,CAEA,qBACC,6CAA8C,CAC9C,kCACD",sourcesContent:["/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n:root {\n\t--ck-color-mention-background: hsla(341, 100%, 30%, 0.1);\n\t--ck-color-mention-text: hsl(341, 100%, 30%);\n}\n\n.ck-content .mention {\n\tbackground: var(--ck-color-mention-background);\n\tcolor: var(--ck-color-mention-text);\n}\n"],sourceRoot:""}]);const a=s},1501:(e,t,o)=>{"use strict";o.d(t,{A:()=>a});var n=o(1354),i=o.n(n),r=o(6314),s=o.n(r)()(i());s.push([e.id,".ck-content blockquote{border-left:5px solid #ccc;font-style:italic;margin-left:0;margin-right:0;overflow:hidden;padding-left:1.5em;padding-right:1.5em}.ck-content[dir=rtl] blockquote{border-left:0;border-right:5px solid #ccc}","",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-block-quote/theme/blockquote.css"],names:[],mappings:"AAKA,uBAWC,0BAAsC,CADtC,iBAAkB,CAFlB,aAAc,CACd,cAAe,CAPf,eAAgB,CAIhB,kBAAmB,CADnB,mBAOD,CAEA,gCACC,aAAc,CACd,2BACD",sourcesContent:['/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n.ck-content blockquote {\n\t/* See #12 */\n\toverflow: hidden;\n\n\t/* https://github.com/ckeditor/ckeditor5-block-quote/issues/15 */\n\tpadding-right: 1.5em;\n\tpadding-left: 1.5em;\n\n\tmargin-left: 0;\n\tmargin-right: 0;\n\tfont-style: italic;\n\tborder-left: solid 5px hsl(0, 0%, 80%);\n}\n\n.ck-content[dir="rtl"] blockquote {\n\tborder-left: 0;\n\tborder-right: solid 5px hsl(0, 0%, 80%);\n}\n'],sourceRoot:""}]);const a=s},1545:(e,t,o)=>{"use strict";o.d(t,{A:()=>a});var n=o(1354),i=o.n(n),r=o(6314),s=o.n(r)()(i());s.push([e.id,".ck.ck-image-insert-url{padding:var(--ck-spacing-large) var(--ck-spacing-large) 0;width:400px}.ck.ck-image-insert-url .ck-image-insert-url__action-row{display:grid;grid-template-columns:repeat(2,1fr)}:root{--ck-image-insert-insert-by-url-width:250px}.ck.ck-image-insert-url{--ck-input-width:100%}.ck.ck-image-insert-url .ck-image-insert-url__action-row{grid-column-gap:var(--ck-spacing-large);margin-top:var(--ck-spacing-large)}.ck.ck-image-insert-url .ck-image-insert-url__action-row .ck-button-cancel,.ck.ck-image-insert-url .ck-image-insert-url__action-row .ck-button-save{justify-content:center;min-width:auto}.ck.ck-image-insert-url .ck-image-insert-url__action-row .ck-button .ck-button__label{color:var(--ck-color-text)}.ck.ck-image-insert-form>.ck.ck-button{display:block;width:100%}[dir=ltr] .ck.ck-image-insert-form>.ck.ck-button{text-align:left}[dir=rtl] .ck.ck-image-insert-form>.ck.ck-button{text-align:right}.ck.ck-image-insert-form>.ck.ck-collapsible{min-width:var(--ck-image-insert-insert-by-url-width)}.ck.ck-image-insert-form>.ck.ck-collapsible:not(:first-child){border-top:1px solid var(--ck-color-base-border)}.ck.ck-image-insert-form>.ck.ck-collapsible:not(:last-child){border-bottom:1px solid var(--ck-color-base-border)}.ck.ck-image-insert-form>.ck.ck-image-insert-url{min-width:var(--ck-image-insert-insert-by-url-width);padding:var(--ck-spacing-large)}.ck.ck-image-insert-form:focus{outline:none}","",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-image/theme/imageinsert.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-image/imageinsert.css","webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/mixins/_dir.css"],names:[],mappings:"AAKA,wBAEC,yDAA0D,CAD1D,WAOD,CAJC,yDACC,YAAa,CACb,mCACD,CCLD,MACC,2CACD,CAEA,wBACC,qBAgBD,CAdC,yDACC,uCAAwC,CACxC,kCAWD,CATC,oJAEC,sBAAuB,CACvB,cACD,CAEA,sFACC,0BACD,CAKD,uCACC,aAAc,CACd,UASD,CCpCA,iDD8BE,eC5BF,CAFA,iDDkCE,gBChCF,CDoCA,4CASC,oDACD,CATC,8DACC,gDACD,CAEA,6DACC,mDACD,CAMD,iDACC,oDAAqD,CACrD,+BACD,CAEA,+BACC,YACD",sourcesContent:["/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n.ck.ck-image-insert-url {\n\twidth: 400px;\n\tpadding: var(--ck-spacing-large) var(--ck-spacing-large) 0;\n\n\t& .ck-image-insert-url__action-row {\n\t\tdisplay: grid;\n\t\tgrid-template-columns: repeat(2, 1fr);\n\t}\n}\n",'/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n@import "@ckeditor/ckeditor5-ui/theme/mixins/_dir.css";\n\n:root {\n\t--ck-image-insert-insert-by-url-width: 250px;\n}\n\n.ck.ck-image-insert-url {\n\t--ck-input-width: 100%;\n\n\t& .ck-image-insert-url__action-row {\n\t\tgrid-column-gap: var(--ck-spacing-large);\n\t\tmargin-top: var(--ck-spacing-large);\n\n\t\t& .ck-button-save,\n\t\t& .ck-button-cancel {\n\t\t\tjustify-content: center;\n\t\t\tmin-width: auto;\n\t\t}\n\n\t\t& .ck-button .ck-button__label {\n\t\t\tcolor: var(--ck-color-text);\n\t\t}\n\t}\n}\n\n.ck.ck-image-insert-form {\n\t& > .ck.ck-button {\n\t\tdisplay: block;\n\t\twidth: 100%;\n\n\t\t@mixin ck-dir ltr {\n\t\t\ttext-align: left;\n\t\t}\n\n\t\t@mixin ck-dir rtl {\n\t\t\ttext-align: right;\n\t\t}\n\t}\n\n\t& > .ck.ck-collapsible {\n\t\t&:not(:first-child) {\n\t\t\tborder-top: 1px solid var(--ck-color-base-border);\n\t\t}\n\n\t\t&:not(:last-child) {\n\t\t\tborder-bottom: 1px solid var(--ck-color-base-border);\n\t\t}\n\n\t\tmin-width: var(--ck-image-insert-insert-by-url-width);\n\t}\n\n\t/* This is the case when there are no other integrations configured than insert by URL */\n\t& > .ck.ck-image-insert-url {\n\t\tmin-width: var(--ck-image-insert-insert-by-url-width);\n\t\tpadding: var(--ck-spacing-large);\n\t}\n\n\t&:focus {\n\t\toutline: none;\n\t}\n}\n','/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n@define-mixin ck-dir $direction {\n\t[dir="$(direction)"] & {\n\t\t@mixin-content;\n\t}\n}\n'],sourceRoot:""}]);const a=s},1546:(e,t,o)=>{"use strict";o.d(t,{A:()=>a});var n=o(1354),i=o.n(n),r=o(6314),s=o.n(r)()(i());s.push([e.id,":root{--ck-input-width:18em;--ck-input-text-width:var(--ck-input-width)}.ck.ck-input{background:var(--ck-color-input-background);border:1px solid var(--ck-color-input-border);border-radius:0;min-height:var(--ck-ui-component-min-height);min-width:var(--ck-input-width);padding:var(--ck-spacing-extra-tiny) var(--ck-spacing-medium);transition:box-shadow .1s ease-in-out,border .1s ease-in-out}.ck-rounded-corners .ck.ck-input,.ck.ck-input.ck-rounded-corners{border-radius:var(--ck-border-radius)}@media (prefers-reduced-motion:reduce){.ck.ck-input{transition:none}}.ck.ck-input:focus{border:var(--ck-focus-ring);box-shadow:var(--ck-focus-outer-shadow),0 0;outline:none}.ck.ck-input[readonly]{background:var(--ck-color-input-disabled-background);border:1px solid var(--ck-color-input-disabled-border);color:var(--ck-color-input-disabled-text)}.ck.ck-input[readonly]:focus{box-shadow:var(--ck-focus-disabled-outer-shadow),0 0}.ck.ck-input.ck-error{animation:ck-input-shake .3s ease both;border-color:var(--ck-color-input-error-border)}@media (prefers-reduced-motion:reduce){.ck.ck-input.ck-error{animation:none}}.ck.ck-input.ck-error:focus{box-shadow:var(--ck-focus-error-outer-shadow),0 0}@keyframes ck-input-shake{20%{transform:translateX(-2px)}40%{transform:translateX(2px)}60%{transform:translateX(-1px)}80%{transform:translateX(1px)}}","",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-ui/components/input/input.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/mixins/_rounded.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/mixins/_focus.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/mixins/_shadow.css"],names:[],mappings:"AASA,MACC,qBAAsB,CAGtB,2CACD,CAEA,aAGC,2CAA4C,CAC5C,6CAA8C,CCT9C,eAAgB,CDchB,4CAA6C,CAH7C,+BAAgC,CADhC,6DAA8D,CAO9D,4DAkCD,CCjDC,iEAEC,qCAED,CDaA,uCAdD,aAeE,eA+BF,CA9BC,CAEA,mBEvBA,2BAA2B,CCF3B,2CAA8B,CDC9B,YF2BA,CAEA,uBAEC,oDAAqD,CADrD,sDAAuD,CAEvD,yCAMD,CAJC,6BGnCD,oDHsCC,CAGD,sBAEC,sCAAuC,CADvC,+CAUD,CAPC,uCAJD,sBAKE,cAMF,CALC,CAEA,4BGjDD,iDHmDC,CAIF,0BACC,IACC,0BACD,CAEA,IACC,yBACD,CAEA,IACC,0BACD,CAEA,IACC,yBACD,CACD",sourcesContent:['/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n@import "../../../mixins/_rounded.css";\n@import "../../../mixins/_focus.css";\n@import "../../../mixins/_shadow.css";\n\n:root {\n\t--ck-input-width: 18em;\n\n\t/* Backward compatibility. */\n\t--ck-input-text-width: var(--ck-input-width);\n}\n\n.ck.ck-input {\n\t@mixin ck-rounded-corners;\n\n\tbackground: var(--ck-color-input-background);\n\tborder: 1px solid var(--ck-color-input-border);\n\tpadding: var(--ck-spacing-extra-tiny) var(--ck-spacing-medium);\n\tmin-width: var(--ck-input-width);\n\n\t/* This is important to stay of the same height as surrounding buttons */\n\tmin-height: var(--ck-ui-component-min-height);\n\n\t/* Apply some smooth transition to the box-shadow and border. */\n\ttransition: box-shadow .1s ease-in-out, border .1s ease-in-out;\n\n\t@media (prefers-reduced-motion: reduce) {\n\t\ttransition: none;\n\t}\n\n\t&:focus {\n\t\t@mixin ck-focus-ring;\n\t\t@mixin ck-box-shadow var(--ck-focus-outer-shadow);\n\t}\n\n\t&[readonly] {\n\t\tborder: 1px solid var(--ck-color-input-disabled-border);\n\t\tbackground: var(--ck-color-input-disabled-background);\n\t\tcolor: var(--ck-color-input-disabled-text);\n\n\t\t&:focus {\n\t\t\t/* The read-only input should have a slightly less visible shadow when focused. */\n\t\t\t@mixin ck-box-shadow var(--ck-focus-disabled-outer-shadow);\n\t\t}\n\t}\n\n\t&.ck-error {\n\t\tborder-color: var(--ck-color-input-error-border);\n\t\tanimation: ck-input-shake .3s ease both;\n\n\t\t@media (prefers-reduced-motion: reduce) {\n\t\t\tanimation: none;\n\t\t}\n\n\t\t&:focus {\n\t\t\t@mixin ck-box-shadow var(--ck-focus-error-outer-shadow);\n\t\t}\n\t}\n}\n\n@keyframes ck-input-shake {\n\t20% {\n\t\ttransform: translateX(-2px);\n\t}\n\n\t40% {\n\t\ttransform: translateX(2px);\n\t}\n\n\t60% {\n\t\ttransform: translateX(-1px);\n\t}\n\n\t80% {\n\t\ttransform: translateX(1px);\n\t}\n}\n',"/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/**\n * Implements rounded corner interface for .ck-rounded-corners class.\n *\n * @see $ck-border-radius\n */\n@define-mixin ck-rounded-corners {\n\tborder-radius: 0;\n\n\t.ck-rounded-corners &,\n\t&.ck-rounded-corners {\n\t\tborder-radius: var(--ck-border-radius);\n\t\t@mixin-content;\n\t}\n}\n","/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/**\n * A visual style of focused element's border.\n */\n@define-mixin ck-focus-ring {\n\t/* Disable native outline. */\n\toutline: none;\n\tborder: var(--ck-focus-ring)\n}\n","/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/**\n * A helper to combine multiple shadows.\n */\n@define-mixin ck-box-shadow $shadowA, $shadowB: 0 0 {\n\tbox-shadow: $shadowA, $shadowB;\n}\n\n/**\n * Gives an element a drop shadow so it looks like a floating panel.\n */\n@define-mixin ck-drop-shadow {\n\t@mixin ck-box-shadow var(--ck-drop-shadow);\n}\n"],sourceRoot:""}]);const a=s},1710:(e,t,o)=>{"use strict";o.d(t,{A:()=>a});var n=o(1354),i=o.n(n),r=o(6314),s=o.n(r)()(i());s.push([e.id,".ck.ck-aria-live-announcer{left:-10000px;position:absolute;top:-10000px}.ck.ck-aria-live-region-list{list-style-type:none}","",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/components/arialiveannouncer/arialiveannouncer.css"],names:[],mappings:"AAKA,2BAEC,aAAc,CADd,iBAAkB,CAElB,YACD,CAEA,6BACC,oBACD",sourcesContent:["/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n.ck.ck-aria-live-announcer {\n\tposition: absolute;\n\tleft: -10000px;\n\ttop: -10000px;\n}\n\n.ck.ck-aria-live-region-list {\n\tlist-style-type: none;\n}\n"],sourceRoot:""}]);const a=s},1750:(e,t,o)=>{"use strict";o.d(t,{A:()=>a});var n=o(1354),i=o.n(n),r=o(6314),s=o.n(r)()(i());s.push([e.id,".ck.ck-collapsible.ck-collapsible_collapsed>.ck-collapsible__children{display:none}:root{--ck-collapsible-arrow-size:calc(var(--ck-icon-size)*0.5)}.ck.ck-collapsible>.ck.ck-button{border-radius:0;color:inherit;font-weight:700;width:100%}.ck.ck-collapsible>.ck.ck-button:focus{background:transparent}.ck.ck-collapsible>.ck.ck-button:active,.ck.ck-collapsible>.ck.ck-button:hover:not(:focus),.ck.ck-collapsible>.ck.ck-button:not(:focus){background:transparent;border-color:transparent;box-shadow:none}.ck.ck-collapsible>.ck.ck-button>.ck-icon{margin-right:var(--ck-spacing-medium);width:var(--ck-collapsible-arrow-size)}.ck.ck-collapsible>.ck-collapsible__children{padding:var(--ck-spacing-medium) var(--ck-spacing-large) var(--ck-spacing-large)}.ck.ck-collapsible.ck-collapsible_collapsed>.ck.ck-button .ck-icon{transform:rotate(-90deg)}","",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/components/collapsible/collapsible.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-ui/components/collapsible/collapsible.css"],names:[],mappings:"AAMC,sEACC,YACD,CCHD,MACC,yDACD,CAGC,iCAGC,eAAgB,CAChB,aAAc,CAFd,eAAiB,CADjB,UAmBD,CAdC,uCACC,sBACD,CAEA,wIACC,sBAAuB,CACvB,wBAAyB,CACzB,eACD,CAEA,0CACC,qCAAsC,CACtC,sCACD,CAGD,6CACC,gFACD,CAGC,mEACC,wBACD",sourcesContent:["/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n.ck.ck-collapsible.ck-collapsible_collapsed {\n\t& > .ck-collapsible__children {\n\t\tdisplay: none;\n\t}\n}\n","/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n:root {\n\t--ck-collapsible-arrow-size: calc(0.5 * var(--ck-icon-size));\n}\n\n.ck.ck-collapsible {\n\t& > .ck.ck-button {\n\t\twidth: 100%;\n\t\tfont-weight: bold;\n\t\tborder-radius: 0;\n\t\tcolor: inherit;\n\n\t\t&:focus {\n\t\t\tbackground: transparent;\n\t\t}\n\n\t\t&:active, &:not(:focus), &:hover:not(:focus) {\n\t\t\tbackground: transparent;\n\t\t\tborder-color: transparent;\n\t\t\tbox-shadow: none;\n\t\t}\n\n\t\t& > .ck-icon {\n\t\t\tmargin-right: var(--ck-spacing-medium);\n\t\t\twidth: var(--ck-collapsible-arrow-size);\n\t\t}\n\t}\n\n\t& > .ck-collapsible__children {\n\t\tpadding: var(--ck-spacing-medium) var(--ck-spacing-large) var(--ck-spacing-large);\n\t}\n\n\t&.ck-collapsible_collapsed {\n\t\t& > .ck.ck-button .ck-icon {\n\t\t\ttransform: rotate(-90deg);\n\t\t}\n\t}\n}\n"],sourceRoot:""}]);const a=s},1806:(e,t,o)=>{"use strict";o.d(t,{A:()=>a});var n=o(1354),i=o.n(n),r=o(6314),s=o.n(r)()(i());s.push([e.id,".ck.ck-form{padding:0 0 var(--ck-spacing-large)}.ck.ck-form:focus{outline:none}.ck.ck-form .ck.ck-input-text{min-width:100%;width:0}.ck.ck-form .ck.ck-dropdown{min-width:100%}.ck.ck-form .ck.ck-dropdown .ck-dropdown__button:not(:focus){border:1px solid var(--ck-color-base-border)}.ck.ck-form .ck.ck-dropdown .ck-dropdown__button .ck-button__label{width:100%}","",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-table/form.css"],names:[],mappings:"AAKA,YACC,mCAyBD,CAvBC,kBAEC,YACD,CAEA,8BACC,cAAe,CACf,OACD,CAEA,4BACC,cAWD,CARE,6DACC,4CACD,CAEA,mEACC,UACD",sourcesContent:["/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n.ck.ck-form {\n\tpadding: 0 0 var(--ck-spacing-large);\n\n\t&:focus {\n\t\t/* See: https://github.com/ckeditor/ckeditor5/issues/4773 */\n\t\toutline: none;\n\t}\n\n\t& .ck.ck-input-text {\n\t\tmin-width: 100%;\n\t\twidth: 0;\n\t}\n\n\t& .ck.ck-dropdown {\n\t\tmin-width: 100%;\n\n\t\t& .ck-dropdown__button {\n\t\t\t&:not(:focus) {\n\t\t\t\tborder: 1px solid var(--ck-color-base-border);\n\t\t\t}\n\n\t\t\t& .ck-button__label {\n\t\t\t\twidth: 100%;\n\t\t\t}\n\t\t}\n\t}\n}\n"],sourceRoot:""}]);const a=s},1911:(e,t,o)=>{"use strict";o.d(t,{A:()=>a});var n=o(1354),i=o.n(n),r=o(6314),s=o.n(r)()(i());s.push([e.id,".ck.ck-list-properties.ck-list-properties_without-styles{padding:var(--ck-spacing-large)}.ck.ck-list-properties.ck-list-properties_without-styles>*{min-width:14em}.ck.ck-list-properties.ck-list-properties_without-styles>*+*{margin-top:var(--ck-spacing-standard)}.ck.ck-list-properties.ck-list-properties_with-numbered-properties>.ck-list-styles-list{grid-template-columns:repeat(4,auto)}.ck.ck-list-properties.ck-list-properties_with-numbered-properties>.ck-collapsible{border-top:1px solid var(--ck-color-base-border)}.ck.ck-list-properties.ck-list-properties_with-numbered-properties>.ck-collapsible>.ck-collapsible__children>*{width:100%}.ck.ck-list-properties.ck-list-properties_with-numbered-properties>.ck-collapsible>.ck-collapsible__children>*+*{margin-top:var(--ck-spacing-standard)}.ck.ck-list-properties .ck.ck-numbered-list-properties__start-index .ck-input{min-width:auto;width:100%}.ck.ck-list-properties .ck.ck-numbered-list-properties__reversed-order{background:transparent;margin-bottom:calc(var(--ck-spacing-tiny)*-1);padding-left:0;padding-right:0}.ck.ck-list-properties .ck.ck-numbered-list-properties__reversed-order:active,.ck.ck-list-properties .ck.ck-numbered-list-properties__reversed-order:hover{background:none;border-color:transparent;box-shadow:none}","",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-list/listproperties.css"],names:[],mappings:"AAOC,yDACC,+BASD,CAPC,2DACC,cAKD,CAHC,6DACC,qCACD,CASD,wFACC,oCACD,CAGA,mFACC,gDAWD,CARE,+GACC,UAKD,CAHC,iHACC,qCACD,CAMJ,8EACC,cAAe,CACf,UACD,CAEA,uEACC,sBAAuB,CAGvB,6CAAgD,CAFhD,cAAe,CACf,eAQD,CALC,2JAGC,eAAgB,CADhB,wBAAyB,CADzB,eAGD",sourcesContent:["/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n.ck.ck-list-properties {\n\t/* When there are no list styles and there is no collapsible. */\n\t&.ck-list-properties_without-styles {\n\t\tpadding: var(--ck-spacing-large);\n\n\t\t& > * {\n\t\t\tmin-width: 14em;\n\n\t\t\t& + * {\n\t\t\t\tmargin-top: var(--ck-spacing-standard);\n\t\t\t}\n\t\t}\n\t}\n\n\t/*\n\t * When the numbered list property fields (start at, reversed) should be displayed,\n\t * more horizontal space is needed. Reconfigure the style grid to create that space.\n\t */\n\t&.ck-list-properties_with-numbered-properties {\n\t\t& > .ck-list-styles-list {\n\t\t\tgrid-template-columns: repeat( 4, auto );\n\t\t}\n\n\t\t/* When list styles are rendered and property fields are in a collapsible. */\n\t\t& > .ck-collapsible {\n\t\t\tborder-top: 1px solid var(--ck-color-base-border);\n\n\t\t\t& > .ck-collapsible__children {\n\t\t\t\t& > * {\n\t\t\t\t\twidth: 100%;\n\n\t\t\t\t\t& + * {\n\t\t\t\t\t\tmargin-top: var(--ck-spacing-standard);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t& .ck.ck-numbered-list-properties__start-index .ck-input {\n\t\tmin-width: auto;\n\t\twidth: 100%;\n\t}\n\n\t& .ck.ck-numbered-list-properties__reversed-order {\n\t\tbackground: transparent;\n\t\tpadding-left: 0;\n\t\tpadding-right: 0;\n\t\tmargin-bottom: calc(-1 * var(--ck-spacing-tiny));\n\n\t\t&:active, &:hover {\n\t\t\tbox-shadow: none;\n\t\t\tborder-color: transparent;\n\t\t\tbackground: none;\n\t\t}\n\t}\n}\n"],sourceRoot:""}]);const a=s},1998:(e,t,o)=>{"use strict";o.d(t,{A:()=>a});var n=o(1354),i=o.n(n),r=o(6314),s=o.n(r)()(i());s.push([e.id,".ck.ck-highlighted-text mark{background:var(--ck-color-highlight-background);font-size:inherit;font-weight:inherit;line-height:inherit;vertical-align:initial}","",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/components/highlightedtext/highlightedtext.css"],names:[],mappings:"AAKA,6BACC,+CAAgD,CAIhD,iBAAkB,CAFlB,mBAAoB,CACpB,mBAAoB,CAFpB,sBAID",sourcesContent:["/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n.ck.ck-highlighted-text mark {\n\tbackground: var(--ck-color-highlight-background);\n\tvertical-align: initial;\n\tfont-weight: inherit;\n\tline-height: inherit;\n\tfont-size: inherit;\n}\n"],sourceRoot:""}]);const a=s},2060:(e,t,o)=>{"use strict";o.d(t,{A:()=>a});var n=o(1354),i=o.n(n),r=o(6314),s=o.n(r)()(i());s.push([e.id,".ck .ck-widget_with-resizer{position:relative}.ck .ck-widget__resizer{display:none;left:0;pointer-events:none;position:absolute;top:0}.ck-focused .ck-widget_with-resizer.ck-widget_selected>.ck-widget__resizer{display:block}.ck .ck-widget__resizer__handle{pointer-events:all;position:absolute}.ck .ck-widget__resizer__handle.ck-widget__resizer__handle-bottom-right,.ck .ck-widget__resizer__handle.ck-widget__resizer__handle-top-left{cursor:nwse-resize}.ck .ck-widget__resizer__handle.ck-widget__resizer__handle-bottom-left,.ck .ck-widget__resizer__handle.ck-widget__resizer__handle-top-right{cursor:nesw-resize}:root{--ck-resizer-size:10px;--ck-resizer-offset:calc(var(--ck-resizer-size)/-2 - 2px);--ck-resizer-border-width:1px}.ck .ck-widget__resizer{outline:1px solid var(--ck-color-resizer)}.ck .ck-widget__resizer__handle{background:var(--ck-color-focus-border);border:var(--ck-resizer-border-width) solid #fff;border-radius:var(--ck-resizer-border-radius);height:var(--ck-resizer-size);width:var(--ck-resizer-size)}.ck .ck-widget__resizer__handle.ck-widget__resizer__handle-top-left{left:var(--ck-resizer-offset);top:var(--ck-resizer-offset)}.ck .ck-widget__resizer__handle.ck-widget__resizer__handle-top-right{right:var(--ck-resizer-offset);top:var(--ck-resizer-offset)}.ck .ck-widget__resizer__handle.ck-widget__resizer__handle-bottom-right{bottom:var(--ck-resizer-offset);right:var(--ck-resizer-offset)}.ck .ck-widget__resizer__handle.ck-widget__resizer__handle-bottom-left{bottom:var(--ck-resizer-offset);left:var(--ck-resizer-offset)}","",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-widget/theme/widgetresize.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-widget/widgetresize.css"],names:[],mappings:"AAKA,4BAEC,iBACD,CAEA,wBACC,YAAa,CAMb,MAAO,CAFP,mBAAoB,CAHpB,iBAAkB,CAMlB,KACD,CAGC,2EACC,aACD,CAGD,gCAIC,kBAAmB,CAHnB,iBAcD,CATC,4IAEC,kBACD,CAEA,4IAEC,kBACD,CCpCD,MACC,sBAAuB,CAGvB,yDAAiE,CACjE,6BACD,CAEA,wBACC,yCACD,CAEA,gCAGC,uCAAwC,CACxC,gDAA6D,CAC7D,6CAA8C,CAH9C,6BAA8B,CAD9B,4BAyBD,CAnBC,oEAEC,6BAA8B,CAD9B,4BAED,CAEA,qEAEC,8BAA+B,CAD/B,4BAED,CAEA,wEACC,+BAAgC,CAChC,8BACD,CAEA,uEACC,+BAAgC,CAChC,6BACD",sourcesContent:["/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n.ck .ck-widget_with-resizer {\n\t/* Make the widget wrapper a relative positioning container for the drag handle. */\n\tposition: relative;\n}\n\n.ck .ck-widget__resizer {\n\tdisplay: none;\n\tposition: absolute;\n\n\t/* The wrapper itself should not interfere with the pointer device, only the handles should. */\n\tpointer-events: none;\n\n\tleft: 0;\n\ttop: 0;\n}\n\n.ck-focused .ck-widget_with-resizer.ck-widget_selected {\n\t& > .ck-widget__resizer {\n\t\tdisplay: block;\n\t}\n}\n\n.ck .ck-widget__resizer__handle {\n\tposition: absolute;\n\n\t/* Resizers are the only UI elements that should interfere with a pointer device. */\n\tpointer-events: all;\n\n\t&.ck-widget__resizer__handle-top-left,\n\t&.ck-widget__resizer__handle-bottom-right {\n\t\tcursor: nwse-resize;\n\t}\n\n\t&.ck-widget__resizer__handle-top-right,\n\t&.ck-widget__resizer__handle-bottom-left {\n\t\tcursor: nesw-resize;\n\t}\n}\n","/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n:root {\n\t--ck-resizer-size: 10px;\n\n\t/* Set the resizer with a 50% offset. */\n\t--ck-resizer-offset: calc( ( var(--ck-resizer-size) / -2 ) - 2px);\n\t--ck-resizer-border-width: 1px;\n}\n\n.ck .ck-widget__resizer {\n\toutline: 1px solid var(--ck-color-resizer);\n}\n\n.ck .ck-widget__resizer__handle {\n\twidth: var(--ck-resizer-size);\n\theight: var(--ck-resizer-size);\n\tbackground: var(--ck-color-focus-border);\n\tborder: var(--ck-resizer-border-width) solid hsl(0, 0%, 100%);\n\tborder-radius: var(--ck-resizer-border-radius);\n\n\t&.ck-widget__resizer__handle-top-left {\n\t\ttop: var(--ck-resizer-offset);\n\t\tleft: var(--ck-resizer-offset);\n\t}\n\n\t&.ck-widget__resizer__handle-top-right {\n\t\ttop: var(--ck-resizer-offset);\n\t\tright: var(--ck-resizer-offset);\n\t}\n\n\t&.ck-widget__resizer__handle-bottom-right {\n\t\tbottom: var(--ck-resizer-offset);\n\t\tright: var(--ck-resizer-offset);\n\t}\n\n\t&.ck-widget__resizer__handle-bottom-left {\n\t\tbottom: var(--ck-resizer-offset);\n\t\tleft: var(--ck-resizer-offset);\n\t}\n}\n"],sourceRoot:""}]);const a=s},2350:(e,t,o)=>{"use strict";o.d(t,{A:()=>a});var n=o(1354),i=o.n(n),r=o(6314),s=o.n(r)()(i());s.push([e.id,".ck.ck-link-form{align-items:flex-start;display:flex}.ck.ck-link-form .ck-label{display:none}@media screen and (max-width:600px){.ck.ck-link-form{flex-wrap:wrap}.ck.ck-link-form .ck-labeled-field-view{flex-basis:100%}.ck.ck-link-form .ck-button{flex-basis:50%}}.ck.ck-link-form_layout-vertical{display:block}.ck.ck-link-form_layout-vertical .ck-button.ck-button-cancel,.ck.ck-link-form_layout-vertical .ck-button.ck-button-save{margin-top:var(--ck-spacing-medium)}.ck.ck-link-form_layout-vertical{min-width:var(--ck-input-width);padding:0}.ck.ck-link-form_layout-vertical .ck-labeled-field-view{margin:var(--ck-spacing-large) var(--ck-spacing-large) var(--ck-spacing-small)}.ck.ck-link-form_layout-vertical .ck-labeled-field-view .ck-input-text{min-width:0;width:100%}.ck.ck-link-form_layout-vertical>.ck-button{border-radius:0;margin:0;padding:var(--ck-spacing-standard);width:50%}.ck.ck-link-form_layout-vertical>.ck-button:not(:focus){border-top:1px solid var(--ck-color-base-border)}[dir=ltr] .ck.ck-link-form_layout-vertical>.ck-button,[dir=rtl] .ck.ck-link-form_layout-vertical>.ck-button{margin-left:0}[dir=rtl] .ck.ck-link-form_layout-vertical>.ck-button:last-of-type{border-right:1px solid var(--ck-color-base-border)}.ck.ck-link-form_layout-vertical .ck.ck-list{margin:0 var(--ck-spacing-large)}.ck.ck-link-form_layout-vertical .ck.ck-list .ck-button.ck-switchbutton{padding:0;width:100%}.ck.ck-link-form_layout-vertical .ck.ck-list .ck-button.ck-switchbutton:hover{background:none}","",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-link/theme/linkform.css","webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/mixins/_rwd.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-link/linkform.css","webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/mixins/_dir.css"],names:[],mappings:"AAOA,iBAEC,sBAAuB,CADvB,YAkBD,CAfC,2BACC,YACD,CCPA,oCDCD,iBASE,cAUF,CARE,wCACC,eACD,CAEA,4BACC,cACD,CChBD,CDwBD,iCACC,aAYD,CALE,wHAEC,mCACD,CEhCF,iCAEC,+BAAgC,CADhC,SAgDD,CA7CC,wDACC,8EAMD,CAJC,uEACC,WAAY,CACZ,UACD,CAGD,4CAIC,eAAgB,CAFhB,QAAS,CADT,kCAAmC,CAEnC,SAkBD,CAfC,wDACC,gDACD,CC1BD,4GDiCE,aC/BF,CDiCE,mEACC,kDACD,CAKF,6CACC,gCAUD,CARC,wEACC,SAAU,CACV,UAKD,CAHC,8EACC,eACD",sourcesContent:['/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n@import "@ckeditor/ckeditor5-ui/theme/mixins/_rwd.css";\n\n.ck.ck-link-form {\n\tdisplay: flex;\n\talign-items: flex-start;\n\n\t& .ck-label {\n\t\tdisplay: none;\n\t}\n\n\t@mixin ck-media-phone {\n\t\tflex-wrap: wrap;\n\n\t\t& .ck-labeled-field-view {\n\t\t\tflex-basis: 100%;\n\t\t}\n\n\t\t& .ck-button {\n\t\t\tflex-basis: 50%;\n\t\t}\n\t}\n}\n\n/*\n * Style link form differently when manual decorators are available.\n * See: https://github.com/ckeditor/ckeditor5-link/issues/186.\n */\n.ck.ck-link-form_layout-vertical {\n\tdisplay: block;\n\n\t/*\n\t * Whether the form is in the responsive mode or not, if there are decorator buttons\n\t * keep the top margin of action buttons medium.\n\t */\n\t& .ck-button {\n\t\t&.ck-button-save,\n\t\t&.ck-button-cancel {\n\t\t\tmargin-top: var(--ck-spacing-medium);\n\t\t}\n\t}\n}\n',"/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n@define-mixin ck-media-phone {\n\t@media screen and (max-width: 600px) {\n\t\t@mixin-content;\n\t}\n}\n",'/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n@import "@ckeditor/ckeditor5-ui/theme/mixins/_dir.css";\n\n/*\n * Style link form differently when manual decorators are available.\n * See: https://github.com/ckeditor/ckeditor5-link/issues/186.\n */\n.ck.ck-link-form_layout-vertical {\n\tpadding: 0;\n\tmin-width: var(--ck-input-width);\n\n\t& .ck-labeled-field-view {\n\t\tmargin: var(--ck-spacing-large) var(--ck-spacing-large) var(--ck-spacing-small);\n\n\t\t& .ck-input-text {\n\t\t\tmin-width: 0;\n\t\t\twidth: 100%;\n\t\t}\n\t}\n\n\t& > .ck-button {\n\t\tpadding: var(--ck-spacing-standard);\n\t\tmargin: 0;\n\t\twidth: 50%;\n\t\tborder-radius: 0;\n\n\t\t&:not(:focus) {\n\t\t\tborder-top: 1px solid var(--ck-color-base-border);\n\t\t}\n\n\t\t@mixin ck-dir ltr {\n\t\t\tmargin-left: 0;\n\t\t}\n\n\t\t@mixin ck-dir rtl {\n\t\t\tmargin-left: 0;\n\n\t\t\t&:last-of-type {\n\t\t\t\tborder-right: 1px solid var(--ck-color-base-border);\n\t\t\t}\n\t\t}\n\t}\n\n\t/* Using additional `.ck` class for stronger CSS specificity than `.ck.ck-link-form > :not(:first-child)`. */\n\t& .ck.ck-list {\n\t\tmargin: 0 var(--ck-spacing-large);\n\n\t\t& .ck-button.ck-switchbutton {\n\t\t\tpadding: 0;\n\t\t\twidth: 100%;\n\n\t\t\t&:hover {\n\t\t\t\tbackground: none;\n\t\t\t}\n\t\t}\n\t}\n}\n','/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n@define-mixin ck-dir $direction {\n\t[dir="$(direction)"] & {\n\t\t@mixin-content;\n\t}\n}\n'],sourceRoot:""}]);const a=s},2401:e=>{"use strict";e.exports="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyMCAyMCI+PHBhdGggZmlsbD0iI2ZmZiIgZD0ibTExLjA3NyAxNSAuOTkxLTEuNDE2YS43NS43NSAwIDEgMSAxLjIyOS44NmwtMS4xNDggMS42NGEuNzUuNzUgMCAwIDEtLjIxNy4yMDYgNS4yNTEgNS4yNTEgMCAwIDEtOC41MDMtNS45NTUuNy43IDAgMCAxIC4xMi0uMjc0bDEuMTQ3LTEuNjM5YS43NS43NSAwIDEgMSAxLjIyOC44Nkw0LjkzMyAxMC43bC4wMDYuMDAzYTMuNzUgMy43NSAwIDAgMCA2LjEzMiA0LjI5NHptNS40OTQtNS4zMzVhLjc1Ljc1IDAgMCAxLS4xMi4yNzRsLTEuMTQ3IDEuNjM5YS43NS43NSAwIDEgMS0xLjIyOC0uODZsLjg2LTEuMjNhMy43NSAzLjc1IDAgMCAwLTYuMTQ0LTQuMzAxbC0uODYgMS4yMjlhLjc1Ljc1IDAgMCAxLTEuMjI5LS44NmwxLjE0OC0xLjY0YS43NS43NSAwIDAgMSAuMjE3LS4yMDYgNS4yNTEgNS4yNTEgMCAwIDEgOC41MDMgNS45NTVtLTQuNTYzLTIuNTMyYS43NS43NSAwIDAgMSAuMTg0IDEuMDQ1bC0zLjE1NSA0LjUwNWEuNzUuNzUgMCAxIDEtMS4yMjktLjg2bDMuMTU1LTQuNTA2YS43NS43NSAwIDAgMSAxLjA0NS0uMTg0Ii8+PC9zdmc+"},2454:(e,t,o)=>{"use strict";o.d(t,{A:()=>a});var n=o(1354),i=o.n(n),r=o(6314),s=o.n(r)()(i());s.push([e.id,".ck.ck-dropdown>.ck-dropdown__panel>.ck-list{border-radius:0}.ck-rounded-corners .ck.ck-dropdown>.ck-dropdown__panel>.ck-list,.ck.ck-dropdown>.ck-dropdown__panel>.ck-list.ck-rounded-corners{border-radius:var(--ck-border-radius);border-top-left-radius:0}.ck.ck-dropdown>.ck-dropdown__panel>.ck-list .ck-list__item:first-child>.ck-button{border-radius:0}.ck-rounded-corners .ck.ck-dropdown>.ck-dropdown__panel>.ck-list .ck-list__item:first-child>.ck-button,.ck.ck-dropdown>.ck-dropdown__panel>.ck-list .ck-list__item:first-child>.ck-button.ck-rounded-corners{border-radius:var(--ck-border-radius);border-bottom-left-radius:0;border-bottom-right-radius:0;border-top-left-radius:0}.ck.ck-dropdown>.ck-dropdown__panel>.ck-list .ck-list__item:last-child>.ck-button{border-radius:0}.ck-rounded-corners .ck.ck-dropdown>.ck-dropdown__panel>.ck-list .ck-list__item:last-child>.ck-button,.ck.ck-dropdown>.ck-dropdown__panel>.ck-list .ck-list__item:last-child>.ck-button.ck-rounded-corners{border-radius:var(--ck-border-radius);border-top-left-radius:0;border-top-right-radius:0}","",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-ui/components/dropdown/listdropdown.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/mixins/_rounded.css"],names:[],mappings:"AAOA,6CCIC,eDqBD,CCnBC,iIAEC,qCAAsC,CDJtC,wBCMD,CDAC,mFCND,eDYC,CCVD,6MAEC,qCAAsC,CDKpC,2BAA4B,CAC5B,4BAA6B,CAF7B,wBCFH,CDQC,kFCdD,eDmBC,CCjBD,2MAEC,qCAAsC,CDYpC,wBAAyB,CACzB,yBCXH",sourcesContent:['/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n@import "../../../mixins/_rounded.css";\n\n.ck.ck-dropdown > .ck-dropdown__panel > .ck-list {\n\t/* Disabled radius of top-left border to be consistent with .dropdown__button\n\thttps://github.com/ckeditor/ckeditor5/issues/816 */\n\t@mixin ck-rounded-corners {\n\t\tborder-top-left-radius: 0;\n\t}\n\n\t/* Make sure the button belonging to the first/last child of the list goes well with the\n\tborder radius of the entire panel. */\n\t& .ck-list__item {\n\t\t&:first-child > .ck-button {\n\t\t\t@mixin ck-rounded-corners {\n\t\t\t\tborder-top-left-radius: 0;\n\t\t\t\tborder-bottom-left-radius: 0;\n\t\t\t\tborder-bottom-right-radius: 0;\n\t\t\t}\n\t\t}\n\n\t\t&:last-child > .ck-button {\n\t\t\t@mixin ck-rounded-corners {\n\t\t\t\tborder-top-left-radius: 0;\n\t\t\t\tborder-top-right-radius: 0;\n\t\t\t}\n\t\t}\n\t}\n}\n',"/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/**\n * Implements rounded corner interface for .ck-rounded-corners class.\n *\n * @see $ck-border-radius\n */\n@define-mixin ck-rounded-corners {\n\tborder-radius: 0;\n\n\t.ck-rounded-corners &,\n\t&.ck-rounded-corners {\n\t\tborder-radius: var(--ck-border-radius);\n\t\t@mixin-content;\n\t}\n}\n"],sourceRoot:""}]);const a=s},2688:(e,t,o)=>{"use strict";o.d(t,{A:()=>a});var n=o(1354),i=o.n(n),r=o(6314),s=o.n(r)()(i());s.push([e.id,".ck.ck-autocomplete{position:relative}.ck.ck-autocomplete>.ck-search__results{position:absolute;z-index:var(--ck-z-panel)}.ck.ck-autocomplete>.ck-search__results.ck-search__results_n{bottom:100%}.ck.ck-autocomplete>.ck-search__results.ck-search__results_s{bottom:auto;top:100%}.ck.ck-autocomplete>.ck-search__results{background:var(--ck-color-base-background);border:1px solid var(--ck-color-dropdown-panel-border);border-radius:0;max-height:200px;min-width:auto;overflow-y:auto}.ck-rounded-corners .ck.ck-autocomplete>.ck-search__results,.ck.ck-autocomplete>.ck-search__results.ck-rounded-corners{border-radius:var(--ck-border-radius)}.ck.ck-autocomplete>.ck-search__results{box-shadow:var(--ck-drop-shadow),0 0}.ck.ck-autocomplete>.ck-search__results.ck-search__results_n{border-bottom-left-radius:0;border-bottom-right-radius:0;margin-bottom:-1px}.ck.ck-autocomplete>.ck-search__results.ck-search__results_s{border-top-left-radius:0;border-top-right-radius:0;margin-top:-1px}","",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/components/autocomplete/autocomplete.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-ui/components/autocomplete/autocomplete.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/mixins/_rounded.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/mixins/_shadow.css"],names:[],mappings:"AAKA,oBACC,iBAeD,CAbC,wCACC,iBAAkB,CAClB,yBAUD,CARC,6DACC,WACD,CAEA,6DAEC,WAAY,CADZ,QAED,CCVD,wCAMC,0CAA2C,CAC3C,sDAAuD,CCLxD,eAAgB,CDEf,gBAAiB,CAIjB,cAAe,CAHf,eAoBD,CCrBA,uHAEC,qCAED,CDRA,wCEAA,oCFyBA,CAfC,6DACC,2BAA4B,CAC5B,4BAA6B,CAG7B,kBACD,CAEA,6DACC,wBAAyB,CACzB,yBAA0B,CAG1B,eACD",sourcesContent:["/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n.ck.ck-autocomplete {\n\tposition: relative;\n\n\t& > .ck-search__results {\n\t\tposition: absolute;\n\t\tz-index: var(--ck-z-panel);\n\n\t\t&.ck-search__results_n {\n\t\t\tbottom: 100%;\n\t\t}\n\n\t\t&.ck-search__results_s {\n\t\t\ttop: 100%;\n\t\t\tbottom: auto;\n\t\t}\n\t}\n}\n",'/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n@import "@ckeditor/ckeditor5-theme-lark/theme/mixins/_rounded.css";\n@import "@ckeditor/ckeditor5-theme-lark/theme/mixins/_shadow.css";\n\n.ck.ck-autocomplete {\n\t& > .ck-search__results {\n\t\t@mixin ck-rounded-corners;\n\t\t@mixin ck-drop-shadow;\n\n\t\tmax-height: 200px;\n\t\toverflow-y: auto;\n\t\tbackground: var(--ck-color-base-background);\n\t\tborder: 1px solid var(--ck-color-dropdown-panel-border);\n\t\tmin-width: auto;\n\n\t\t&.ck-search__results_n {\n\t\t\tborder-bottom-left-radius: 0;\n\t\t\tborder-bottom-right-radius: 0;\n\n\t\t\t/* Prevent duplicated borders between the input and the results pane. */\n\t\t\tmargin-bottom: -1px;\n\t\t}\n\n\t\t&.ck-search__results_s {\n\t\t\tborder-top-left-radius: 0;\n\t\t\tborder-top-right-radius: 0;\n\n\t\t\t/* Prevent duplicated borders between the input and the results pane. */\n\t\t\tmargin-top: -1px;\n\t\t}\n\t}\n}\n',"/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/**\n * Implements rounded corner interface for .ck-rounded-corners class.\n *\n * @see $ck-border-radius\n */\n@define-mixin ck-rounded-corners {\n\tborder-radius: 0;\n\n\t.ck-rounded-corners &,\n\t&.ck-rounded-corners {\n\t\tborder-radius: var(--ck-border-radius);\n\t\t@mixin-content;\n\t}\n}\n","/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/**\n * A helper to combine multiple shadows.\n */\n@define-mixin ck-box-shadow $shadowA, $shadowB: 0 0 {\n\tbox-shadow: $shadowA, $shadowB;\n}\n\n/**\n * Gives an element a drop shadow so it looks like a floating panel.\n */\n@define-mixin ck-drop-shadow {\n\t@mixin ck-box-shadow var(--ck-drop-shadow);\n}\n"],sourceRoot:""}]);const a=s},2850:(e,t,o)=>{"use strict";o.d(t,{A:()=>a});var n=o(1354),i=o.n(n),r=o(6314),s=o.n(r)()(i());s.push([e.id,':root{--ck-table-selected-cell-background:rgba(158,207,250,.3)}.ck.ck-editor__editable .table table td.ck-editor__editable_selected,.ck.ck-editor__editable .table table th.ck-editor__editable_selected{box-shadow:unset;caret-color:transparent;outline:unset;position:relative}.ck.ck-editor__editable .table table td.ck-editor__editable_selected:after,.ck.ck-editor__editable .table table th.ck-editor__editable_selected:after{background-color:var(--ck-table-selected-cell-background);bottom:0;content:"";left:0;pointer-events:none;position:absolute;right:0;top:0}.ck.ck-editor__editable .table table td.ck-editor__editable_selected ::selection,.ck.ck-editor__editable .table table td.ck-editor__editable_selected:focus,.ck.ck-editor__editable .table table th.ck-editor__editable_selected ::selection,.ck.ck-editor__editable .table table th.ck-editor__editable_selected:focus{background-color:transparent}.ck.ck-editor__editable .table table td.ck-editor__editable_selected .ck-widget,.ck.ck-editor__editable .table table th.ck-editor__editable_selected .ck-widget{outline:unset}.ck.ck-editor__editable .table table td.ck-editor__editable_selected .ck-widget>.ck-widget__selection-handle,.ck.ck-editor__editable .table table th.ck-editor__editable_selected .ck-widget>.ck-widget__selection-handle{display:none}',"",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-table/tableselection.css"],names:[],mappings:"AAKA,MACC,wDACD,CAGC,0IAKC,gBAAiB,CAFjB,uBAAwB,CACxB,aAAc,CAFd,iBAiCD,CA3BC,sJAGC,yDAA0D,CAK1D,QAAS,CAPT,UAAW,CAKX,MAAO,CAJP,mBAAoB,CAEpB,iBAAkB,CAGlB,OAAQ,CAFR,KAID,CAEA,wTAEC,4BACD,CAMA,gKACC,aAKD,CAHC,0NACC,YACD",sourcesContent:["/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n:root {\n\t--ck-table-selected-cell-background: hsla(208, 90%, 80%, .3);\n}\n\n.ck.ck-editor__editable .table table {\n\t& td.ck-editor__editable_selected,\n\t& th.ck-editor__editable_selected {\n\t\tposition: relative;\n\t\tcaret-color: transparent;\n\t\toutline: unset;\n\t\tbox-shadow: unset;\n\n\t\t/* https://github.com/ckeditor/ckeditor5/issues/6446 */\n\t\t&:after {\n\t\t\tcontent: '';\n\t\t\tpointer-events: none;\n\t\t\tbackground-color: var(--ck-table-selected-cell-background);\n\t\t\tposition: absolute;\n\t\t\ttop: 0;\n\t\t\tleft: 0;\n\t\t\tright: 0;\n\t\t\tbottom: 0;\n\t\t}\n\n\t\t& ::selection,\n\t\t&:focus {\n\t\t\tbackground-color: transparent;\n\t\t}\n\n\t\t/*\n\t\t * To reduce the amount of noise, all widgets in the table selection have no outline and no selection handle.\n\t\t * See https://github.com/ckeditor/ckeditor5/issues/9491.\n\t\t */\n\t\t& .ck-widget {\n\t\t\toutline: unset;\n\n\t\t\t& > .ck-widget__selection-handle {\n\t\t\t\tdisplay: none;\n\t\t\t}\n\t\t}\n\t}\n}\n"],sourceRoot:""}]);const a=s},2922:(e,t,o)=>{"use strict";o.d(t,{A:()=>a});var n=o(1354),i=o.n(n),r=o(6314),s=o.n(r)()(i());s.push([e.id,".ck.ck-color-selector .ck-color-grids-fragment .ck-button.ck-color-selector__color-picker,.ck.ck-color-selector .ck-color-grids-fragment .ck-button.ck-color-selector__remove-color{align-items:center;display:flex}[dir=rtl] .ck.ck-color-selector .ck-color-grids-fragment .ck-button.ck-color-selector__color-picker,[dir=rtl] .ck.ck-color-selector .ck-color-grids-fragment .ck-button.ck-color-selector__remove-color{justify-content:flex-start}.ck.ck-color-selector .ck-color-picker-fragment .ck.ck-color-selector_action-bar{display:flex;flex-direction:row;justify-content:space-around}.ck.ck-color-selector .ck-color-picker-fragment .ck.ck-color-selector_action-bar .ck-button-cancel,.ck.ck-color-selector .ck-color-picker-fragment .ck.ck-color-selector_action-bar .ck-button-save{flex:1}.ck.ck-color-selector .ck-color-grids-fragment .ck-button.ck-color-selector__color-picker,.ck.ck-color-selector .ck-color-grids-fragment .ck-button.ck-color-selector__remove-color{width:100%}.ck.ck-color-selector .ck-color-grids-fragment .ck-button.ck-color-selector__color-picker{border-bottom-left-radius:0;border-bottom-right-radius:0;padding:calc(var(--ck-spacing-standard)/2) var(--ck-spacing-standard)}.ck.ck-color-selector .ck-color-grids-fragment .ck-button.ck-color-selector__color-picker:not(:focus){border-top:1px solid var(--ck-color-base-border)}[dir=ltr] .ck.ck-color-selector .ck-color-grids-fragment .ck-button.ck-color-selector__color-picker .ck.ck-icon{margin-right:var(--ck-spacing-standard)}[dir=rtl] .ck.ck-color-selector .ck-color-grids-fragment .ck-button.ck-color-selector__color-picker .ck.ck-icon{margin-left:var(--ck-spacing-standard)}.ck.ck-color-selector .ck-color-grids-fragment label.ck.ck-color-grid__label{font-weight:unset}.ck.ck-color-selector .ck-color-picker-fragment .ck.ck-color-picker{padding:8px}.ck.ck-color-selector .ck-color-picker-fragment .ck.ck-color-picker .hex-color-picker{height:100px;min-width:180px}.ck.ck-color-selector .ck-color-picker-fragment .ck.ck-color-picker .hex-color-picker::part(saturation){border-radius:var(--ck-border-radius) var(--ck-border-radius) 0 0}.ck.ck-color-selector .ck-color-picker-fragment .ck.ck-color-picker .hex-color-picker::part(hue){border-radius:0 0 var(--ck-border-radius) var(--ck-border-radius)}.ck.ck-color-selector .ck-color-picker-fragment .ck.ck-color-picker .hex-color-picker::part(hue-pointer),.ck.ck-color-selector .ck-color-picker-fragment .ck.ck-color-picker .hex-color-picker::part(saturation-pointer){height:15px;width:15px}.ck.ck-color-selector .ck-color-picker-fragment .ck.ck-color-selector_action-bar{padding:0 8px 8px}","",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/components/colorselector/colorselector.css","webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/mixins/_dir.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-ui/components/colorselector/colorselector.css"],names:[],mappings:"AAUE,oLAGC,kBAAmB,CADnB,YAMD,CCZD,wMDUG,0BCRH,CDeC,iFACC,YAAa,CACb,kBAAmB,CACnB,4BAMD,CAJC,oMAEC,MACD,CErBD,oLAEC,UACD,CAEA,0FAEC,2BAA4B,CAC5B,4BAA6B,CAF7B,qEAiBD,CAbC,sGACC,gDACD,CDhBF,gHCoBI,uCDlBJ,CAFA,gHCwBI,sCDtBJ,CC2BC,6EACC,iBACD,CAKA,oEACC,WAoBD,CAlBC,sFACC,YAAa,CACb,eAeD,CAbC,wGACC,iEACD,CAEA,iGACC,iEACD,CAEA,yNAGC,WAAY,CADZ,UAED,CAIF,iFACC,iBACD",sourcesContent:['/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n@import "@ckeditor/ckeditor5-ui/theme/mixins/_dir.css";\n\n.ck.ck-color-selector {\n\t/* View fragment with color grids. */\n\t& .ck-color-grids-fragment {\n\t\t& .ck-button.ck-color-selector__remove-color,\n\t\t& .ck-button.ck-color-selector__color-picker {\n\t\t\tdisplay: flex;\n\t\t\talign-items: center;\n\n\t\t\t@mixin ck-dir rtl {\n\t\t\t\tjustify-content: flex-start;\n\t\t\t}\n\t\t}\n\t}\n\n\t/* View fragment with a color picker. */\n\t& .ck-color-picker-fragment {\n\t\t& .ck.ck-color-selector_action-bar {\n\t\t\tdisplay: flex;\n\t\t\tflex-direction: row;\n\t\t\tjustify-content: space-around;\n\n\t\t\t& .ck-button-save,\n\t\t\t& .ck-button-cancel {\n\t\t\t\tflex: 1\n\t\t\t}\n\t\t}\n\t}\n}\n','/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n@define-mixin ck-dir $direction {\n\t[dir="$(direction)"] & {\n\t\t@mixin-content;\n\t}\n}\n','/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n@import "@ckeditor/ckeditor5-ui/theme/mixins/_dir.css";\n\n.ck.ck-color-selector {\n\t/* View fragment with color grids. */\n\t& .ck-color-grids-fragment {\n\t\t& .ck-button.ck-color-selector__remove-color,\n\t\t& .ck-button.ck-color-selector__color-picker {\n\t\t\twidth: 100%;\n\t\t}\n\n\t\t& .ck-button.ck-color-selector__color-picker {\n\t\t\tpadding: calc(var(--ck-spacing-standard) / 2) var(--ck-spacing-standard);\n\t\t\tborder-bottom-left-radius: 0;\n\t\t\tborder-bottom-right-radius: 0;\n\n\t\t\t&:not(:focus) {\n\t\t\t\tborder-top: 1px solid var(--ck-color-base-border);\n\t\t\t}\n\n\t\t\t& .ck.ck-icon {\n\t\t\t\t@mixin ck-dir ltr {\n\t\t\t\t\tmargin-right: var(--ck-spacing-standard);\n\t\t\t\t}\n\n\t\t\t\t@mixin ck-dir rtl {\n\t\t\t\t\tmargin-left: var(--ck-spacing-standard);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t& label.ck.ck-color-grid__label {\n\t\t\tfont-weight: unset;\n\t\t}\n\t}\n\n\t/* View fragment with a color picker. */\n\t& .ck-color-picker-fragment {\n\t\t& .ck.ck-color-picker {\n\t\t\tpadding: 8px;\n\n\t\t\t& .hex-color-picker {\n\t\t\t\theight: 100px;\n\t\t\t\tmin-width: 180px;\n\n\t\t\t\t&::part(saturation) {\n\t\t\t\t\tborder-radius: var(--ck-border-radius) var(--ck-border-radius) 0 0;\n\t\t\t\t}\n\n\t\t\t\t&::part(hue) {\n\t\t\t\t\tborder-radius: 0 0 var(--ck-border-radius) var(--ck-border-radius);\n\t\t\t\t}\n\n\t\t\t\t&::part(saturation-pointer),\n\t\t\t\t&::part(hue-pointer) {\n\t\t\t\t\twidth: 15px;\n\t\t\t\t\theight: 15px;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t& .ck.ck-color-selector_action-bar {\n\t\t\tpadding: 0 8px 8px;\n\t\t}\n\t}\n}\n'],sourceRoot:""}]);const a=s},2992:(e,t,o)=>{var n,i=function(){var e=String.fromCharCode,t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",o="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+-$",n={};function i(e,t){if(!n[e]){n[e]={};for(var o=0;o>>8,o[2*n+1]=s%256}return o},decompressFromUint8Array:function(t){if(null==t)return r.decompress(t);for(var o=new Array(t.length/2),n=0,i=o.length;n>=1}else{for(i=1,n=0;n>=1}0==--u&&(u=Math.pow(2,p),p++),delete a[d]}else for(i=s[d],n=0;n>=1;0==--u&&(u=Math.pow(2,p),p++),s[c]=h++,d=String(l)}if(""!==d){if(Object.prototype.hasOwnProperty.call(a,d)){if(d.charCodeAt(0)<256){for(n=0;n>=1}else{for(i=1,n=0;n>=1}0==--u&&(u=Math.pow(2,p),p++),delete a[d]}else for(i=s[d],n=0;n>=1;0==--u&&(u=Math.pow(2,p),p++)}for(i=2,n=0;n>=1;for(;;){if(g<<=1,f==t-1){m.push(o(g));break}f++}return m.join("")},decompress:function(e){return null==e?"":""==e?null:r._decompress(e.length,32768,(function(t){return e.charCodeAt(t)}))},_decompress:function(t,o,n){var i,r,s,a,l,c,d,u=[],h=4,p=4,m=3,g="",f=[],b={val:n(0),position:o,index:1};for(i=0;i<3;i+=1)u[i]=i;for(s=0,l=Math.pow(2,2),c=1;c!=l;)a=b.val&b.position,b.position>>=1,0==b.position&&(b.position=o,b.val=n(b.index++)),s|=(a>0?1:0)*c,c<<=1;switch(s){case 0:for(s=0,l=Math.pow(2,8),c=1;c!=l;)a=b.val&b.position,b.position>>=1,0==b.position&&(b.position=o,b.val=n(b.index++)),s|=(a>0?1:0)*c,c<<=1;d=e(s);break;case 1:for(s=0,l=Math.pow(2,16),c=1;c!=l;)a=b.val&b.position,b.position>>=1,0==b.position&&(b.position=o,b.val=n(b.index++)),s|=(a>0?1:0)*c,c<<=1;d=e(s);break;case 2:return""}for(u[3]=d,r=d,f.push(d);;){if(b.index>t)return"";for(s=0,l=Math.pow(2,m),c=1;c!=l;)a=b.val&b.position,b.position>>=1,0==b.position&&(b.position=o,b.val=n(b.index++)),s|=(a>0?1:0)*c,c<<=1;switch(d=s){case 0:for(s=0,l=Math.pow(2,8),c=1;c!=l;)a=b.val&b.position,b.position>>=1,0==b.position&&(b.position=o,b.val=n(b.index++)),s|=(a>0?1:0)*c,c<<=1;u[p++]=e(s),d=p-1,h--;break;case 1:for(s=0,l=Math.pow(2,16),c=1;c!=l;)a=b.val&b.position,b.position>>=1,0==b.position&&(b.position=o,b.val=n(b.index++)),s|=(a>0?1:0)*c,c<<=1;u[p++]=e(s),d=p-1,h--;break;case 2:return f.join("")}if(0==h&&(h=Math.pow(2,m),m++),u[d])g=u[d];else{if(d!==p)return null;g=r+r.charAt(0)}f.push(g),u[p++]=r+g.charAt(0),r=g,0==--h&&(h=Math.pow(2,m),m++)}}};return r}();void 0===(n=function(){return i}.call(t,o,t,e))||(e.exports=n)},3038:(e,t,o)=>{"use strict";o.d(t,{A:()=>a});var n=o(1354),i=o.n(n),r=o(6314),s=o.n(r)()(i());s.push([e.id,":root{--ck-color-image-caption-background:#f7f7f7;--ck-color-image-caption-text:#333;--ck-color-image-caption-highlighted-background:#fd0}.ck-content .image>figcaption{background-color:var(--ck-color-image-caption-background);caption-side:bottom;color:var(--ck-color-image-caption-text);display:table-caption;font-size:.75em;outline-offset:-1px;padding:.6em;word-break:break-word}@media (forced-colors:active){.ck-content .image>figcaption{background-color:unset;color:unset}}@media (forced-colors:none){.ck.ck-editor__editable .image>figcaption.image__caption_highlighted{animation:ck-image-caption-highlight .6s ease-out}}@media (prefers-reduced-motion:reduce){.ck.ck-editor__editable .image>figcaption.image__caption_highlighted{animation:none}}@keyframes ck-image-caption-highlight{0%{background-color:var(--ck-color-image-caption-highlighted-background)}to{background-color:var(--ck-color-image-caption-background)}}","",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-image/theme/imagecaption.css","webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/mixins/_mediacolors.css"],names:[],mappings:"AAOA,MACC,2CAAoD,CACpD,kCAA8C,CAC9C,oDACD,CAGA,8BAKC,yDAA0D,CAH1D,mBAAoB,CAEpB,wCAAyC,CAHzC,qBAAsB,CAMtB,eAAgB,CAChB,mBAAoB,CAFpB,YAAa,CAHb,qBAYD,CAJC,8BAXD,8BAYE,sBAAuB,CACvB,WAEF,CADC,CCdA,4BACC,qEDmBA,iDCjBA,CACD,CDmBA,uCALD,qEAME,cAEF,CADC,CAGD,sCACC,GACC,qEACD,CAEA,GACC,yDACD,CACD",sourcesContent:['/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n@import "@ckeditor/ckeditor5-ui/theme/mixins/_mediacolors.css";\n\n:root {\n\t--ck-color-image-caption-background: hsl(0, 0%, 97%);\n\t--ck-color-image-caption-text: hsl(0, 0%, 20%);\n\t--ck-color-image-caption-highlighted-background: hsl(52deg 100% 50%);\n}\n\n/* Content styles */\n.ck-content .image > figcaption {\n\tdisplay: table-caption;\n\tcaption-side: bottom;\n\tword-break: break-word;\n\tcolor: var(--ck-color-image-caption-text);\n\tbackground-color: var(--ck-color-image-caption-background);\n\tpadding: .6em;\n\tfont-size: .75em;\n\toutline-offset: -1px;\n\n\t/* Improve placeholder rendering in high-constrast mode (https://github.com/ckeditor/ckeditor5/issues/14907). */\n\t@media (forced-colors: active) {\n\t\tbackground-color: unset;\n\t\tcolor: unset;\n\t}\n}\n\n/* Editing styles */\n.ck.ck-editor__editable .image > figcaption.image__caption_highlighted {\n\t@mixin ck-media-default-colors {\n\t\tanimation: ck-image-caption-highlight .6s ease-out;\n\t}\n\n\t@media (prefers-reduced-motion: reduce) {\n\t\tanimation: none;\n\t}\n}\n\n@keyframes ck-image-caption-highlight {\n\t0% {\n\t\tbackground-color: var(--ck-color-image-caption-highlighted-background);\n\t}\n\n\t100% {\n\t\tbackground-color: var(--ck-color-image-caption-background);\n\t}\n}\n',"/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n@define-mixin ck-media-forced-colors {\n\t@media (forced-colors: active) {\n\t\t& {\n\t\t\t@mixin-content;\n\t\t}\n\t}\n}\n\n@define-mixin ck-media-default-colors {\n\t@media (forced-colors: none) {\n\t\t& {\n\t\t\t@mixin-content;\n\t\t}\n\t}\n}\n"],sourceRoot:""}]);const a=s},3086:(e,t,o)=>{"use strict";o.d(t,{A:()=>a});var n=o(1354),i=o.n(n),r=o(6314),s=o.n(r)()(i());s.push([e.id,".color-picker-hex-input{width:max-content}.color-picker-hex-input .ck.ck-input{min-width:unset}.ck.ck-color-picker__row{display:flex;flex-direction:row;flex-wrap:nowrap;justify-content:space-between;margin:var(--ck-spacing-large) 0 0;width:unset}.ck.ck-color-picker__row .ck.ck-labeled-field-view{padding-top:unset}.ck.ck-color-picker__row .ck.ck-input-text{width:unset}.ck.ck-color-picker__row .ck-color-picker__hash-view{padding-right:var(--ck-spacing-medium);padding-top:var(--ck-spacing-tiny)}","",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/components/colorpicker/colorpicker.css"],names:[],mappings:"AAKA,wBACC,iBAKD,CAHC,qCACC,eACD,CAGD,yBACC,YAAa,CACb,kBAAmB,CACnB,gBAAiB,CACjB,6BAA8B,CAC9B,kCAAmC,CACnC,WAcD,CAZC,mDACC,iBACD,CAEA,2CACC,WACD,CAEA,qDAEC,sCAAuC,CADvC,kCAED",sourcesContent:["/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n.color-picker-hex-input {\n\twidth: max-content;\n\n\t& .ck.ck-input {\n\t\tmin-width: unset;\n\t}\n}\n\n.ck.ck-color-picker__row {\n\tdisplay: flex;\n\tflex-direction: row;\n\tflex-wrap: nowrap;\n\tjustify-content: space-between;\n\tmargin: var(--ck-spacing-large) 0 0;\n\twidth: unset;\n\n\t& .ck.ck-labeled-field-view {\n\t\tpadding-top: unset;\n\t}\n\n\t& .ck.ck-input-text {\n\t\twidth: unset;\n\t}\n\n\t& .ck-color-picker__hash-view {\n\t\tpadding-top: var(--ck-spacing-tiny);\n\t\tpadding-right: var(--ck-spacing-medium);\n\t}\n}\n"],sourceRoot:""}]);const a=s},3389:(e,t,o)=>{"use strict";o.d(t,{A:()=>a});var n=o(1354),i=o.n(n),r=o(6314),s=o.n(r)()(i());s.push([e.id,".ck.ck-list-item-button{border-radius:0;min-height:unset;width:100%}[dir=ltr] .ck.ck-list-item-button{text-align:left}[dir=rtl] .ck.ck-list-item-button{text-align:right}[dir=ltr] .ck.ck-list-item-button.ck-list-item-button_toggleable{padding-left:var(--ck-spacing-small)}[dir=rtl] .ck.ck-list-item-button.ck-list-item-button_toggleable{padding-right:var(--ck-spacing-small)}.ck.ck-list-item-button .ck-list-item-button__check-holder{display:inline-flex;height:.9em;width:.9em}[dir=ltr] .ck.ck-list-item-button .ck-list-item-button__check-holder{margin-right:var(--ck-spacing-small)}[dir=rtl] .ck.ck-list-item-button .ck-list-item-button__check-holder{margin-left:var(--ck-spacing-small)}.ck.ck-list-item-button .ck-list-item-button__check-icon{height:100%}.ck.ck-button.ck-list-item-button{padding:var(--ck-spacing-tiny) calc(var(--ck-spacing-standard)*2)}.ck.ck-button.ck-list-item-button,.ck.ck-button.ck-list-item-button.ck-on{background:var(--ck-color-list-background);color:var(--ck-color-text)}[dir=ltr] .ck.ck-button.ck-list-item-button:has(.ck-list-item-button__check-holder){padding-left:var(--ck-spacing-small)}[dir=rtl] .ck.ck-button.ck-list-item-button:has(.ck-list-item-button__check-holder){padding-right:var(--ck-spacing-small)}.ck.ck-button.ck-list-item-button.ck-button.ck-on:hover,.ck.ck-button.ck-list-item-button.ck-on:hover,.ck.ck-button.ck-list-item-button.ck-on:not(.ck-list-item-button_toggleable),.ck.ck-button.ck-list-item-button:hover:not(.ck-disabled){background:var(--ck-color-list-button-hover-background)}.ck.ck-button.ck-list-item-button.ck-button.ck-on:hover:not(.ck-disabled),.ck.ck-button.ck-list-item-button.ck-on:hover:not(.ck-disabled),.ck.ck-button.ck-list-item-button.ck-on:not(.ck-list-item-button_toggleable):not(.ck-disabled),.ck.ck-button.ck-list-item-button:hover:not(.ck-disabled):not(.ck-disabled){color:var(--ck-color-text)}","",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/components/button/listitembutton.css","webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/mixins/_dir.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-ui/components/button/listitembutton.css"],names:[],mappings:"AAOA,wBAGC,eAAgB,CAFhB,gBAAiB,CACjB,UAsCD,CCzCC,kCDOC,eCLD,CAFA,kCDWC,gBCTD,CAFA,iEDgBE,oCCdF,CAFA,iEDoBE,qCClBF,CDsBA,2DACC,mBAAoB,CAEpB,WAAY,CADZ,UAUD,CCpCA,qED8BE,oCC5BF,CAFA,qEDkCE,mCChCF,CDoCA,yDACC,WACD,CEvCD,kCACC,iEAiCD,CA/BC,0EAEC,0CAA2C,CAC3C,0BACD,CDRA,oFCYE,oCDVF,CAFA,oFCgBE,qCDdF,CCuBA,6OAIC,uDAKD,CAHC,qTACC,0BACD",sourcesContent:['/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n@import "../../mixins/_dir.css";\n\n.ck.ck-list-item-button {\n\tmin-height: unset;\n\twidth: 100%;\n\tborder-radius: 0;\n\n\t@mixin ck-dir ltr {\n\t\ttext-align: left;\n\t}\n\n\t@mixin ck-dir rtl {\n\t\ttext-align: right;\n\t}\n\n\t&.ck-list-item-button_toggleable {\n\t\t@mixin ck-dir ltr {\n\t\t\tpadding-left: var(--ck-spacing-small);\n\t\t}\n\n\t\t@mixin ck-dir rtl {\n\t\t\tpadding-right: var(--ck-spacing-small);\n\t\t}\n\t}\n\n\t& .ck-list-item-button__check-holder {\n\t\tdisplay: inline-flex;\n\t\twidth: .9em;\n\t\theight: .9em;\n\n\t\t@mixin ck-dir ltr {\n\t\t\tmargin-right: var(--ck-spacing-small);\n\t\t}\n\n\t\t@mixin ck-dir rtl {\n\t\t\tmargin-left: var(--ck-spacing-small);\n\t\t}\n\t}\n\n\t& .ck-list-item-button__check-icon {\n\t\theight: 100%;\n\t}\n}\n','/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n@define-mixin ck-dir $direction {\n\t[dir="$(direction)"] & {\n\t\t@mixin-content;\n\t}\n}\n','/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n@import "@ckeditor/ckeditor5-ui/theme/mixins/_dir.css";\n\n.ck.ck-button.ck-list-item-button {\n\tpadding: var(--ck-spacing-tiny) calc(2 * var(--ck-spacing-standard));\n\n\t&,\n\t&.ck-on {\n\t\tbackground: var(--ck-color-list-background);\n\t\tcolor: var(--ck-color-text);\n\t}\n\n\t&:has(.ck-list-item-button__check-holder) {\n\t\t@mixin ck-dir ltr {\n\t\t\tpadding-left: var(--ck-spacing-small);\n\t\t}\n\n\t\t@mixin ck-dir rtl {\n\t\t\tpadding-right: var(--ck-spacing-small);\n\t\t}\n\t}\n\n\t/*\n\t * `.ck-on` class and background styling is overridden for `ck-button` in many places.\n\t * This is a workaround to make sure that the background is not overridden and uses similar\n\t * selector specificity as the other overrides.\n\t */\n\t&:hover:not(.ck-disabled),\n\t&.ck-button.ck-on:hover,\n\t&.ck-on:not(.ck-list-item-button_toggleable),\n\t&.ck-on:hover {\n\t\tbackground: var(--ck-color-list-button-hover-background);\n\n\t\t&:not(.ck-disabled) {\n\t\t\tcolor: var(--ck-color-text);\n\t\t}\n\t}\n}\n'],sourceRoot:""}]);const a=s},3579:(e,t,o)=>{"use strict";o.d(t,{A:()=>a});var n=o(1354),i=o.n(n),r=o(6314),s=o.n(r)()(i());s.push([e.id,".ck .ck-fake-panel{position:absolute;z-index:calc(var(--ck-z-panel) - 1)}.ck .ck-fake-panel div{position:absolute}.ck .ck-fake-panel div:first-child{z-index:2}.ck .ck-fake-panel div:nth-child(2){z-index:1}:root{--ck-balloon-fake-panel-offset-horizontal:6px;--ck-balloon-fake-panel-offset-vertical:6px}.ck .ck-fake-panel div{background:var(--ck-color-panel-background);border:1px solid var(--ck-color-panel-border);border-radius:var(--ck-border-radius);box-shadow:var(--ck-drop-shadow),0 0;height:100%;min-height:15px;width:100%}.ck .ck-fake-panel div:first-child{margin-left:var(--ck-balloon-fake-panel-offset-horizontal);margin-top:var(--ck-balloon-fake-panel-offset-vertical)}.ck .ck-fake-panel div:nth-child(2){margin-left:calc(var(--ck-balloon-fake-panel-offset-horizontal)*2);margin-top:calc(var(--ck-balloon-fake-panel-offset-vertical)*2)}.ck .ck-fake-panel div:nth-child(3){margin-left:calc(var(--ck-balloon-fake-panel-offset-horizontal)*3);margin-top:calc(var(--ck-balloon-fake-panel-offset-vertical)*3)}.ck .ck-balloon-panel_arrow_s+.ck-fake-panel,.ck .ck-balloon-panel_arrow_se+.ck-fake-panel,.ck .ck-balloon-panel_arrow_sw+.ck-fake-panel{--ck-balloon-fake-panel-offset-vertical:-6px}","",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/components/panel/fakepanel.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-ui/components/panel/fakepanel.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/mixins/_shadow.css"],names:[],mappings:"AAKA,mBACC,iBAAkB,CAGlB,mCACD,CAEA,uBACC,iBACD,CAEA,mCACC,SACD,CAEA,oCACC,SACD,CCfA,MACC,6CAA8C,CAC9C,2CACD,CAGA,uBAKC,2CAA4C,CAC5C,6CAA8C,CAC9C,qCAAsC,CCXtC,oCAA8B,CDc9B,WAAY,CAPZ,eAAgB,CAMhB,UAED,CAEA,mCACC,0DAA2D,CAC3D,uDACD,CAEA,oCACC,kEAAqE,CACrE,+DACD,CACA,oCACC,kEAAqE,CACrE,+DACD,CAGA,yIAGC,4CACD",sourcesContent:["/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n.ck .ck-fake-panel {\n\tposition: absolute;\n\n\t/* Fake panels should be placed under main balloon content. */\n\tz-index: calc(var(--ck-z-panel) - 1);\n}\n\n.ck .ck-fake-panel div {\n\tposition: absolute;\n}\n\n.ck .ck-fake-panel div:nth-child( 1 ) {\n\tz-index: 2;\n}\n\n.ck .ck-fake-panel div:nth-child( 2 ) {\n\tz-index: 1;\n}\n",'/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n@import "../../../mixins/_shadow.css";\n\n:root {\n\t--ck-balloon-fake-panel-offset-horizontal: 6px;\n\t--ck-balloon-fake-panel-offset-vertical: 6px;\n}\n\n/* Let\'s use `.ck-balloon-panel` appearance. See: balloonpanel.css. */\n.ck .ck-fake-panel div {\n\t@mixin ck-drop-shadow;\n\n\tmin-height: 15px;\n\n\tbackground: var(--ck-color-panel-background);\n\tborder: 1px solid var(--ck-color-panel-border);\n\tborder-radius: var(--ck-border-radius);\n\n\twidth: 100%;\n\theight: 100%;\n}\n\n.ck .ck-fake-panel div:nth-child( 1 ) {\n\tmargin-left: var(--ck-balloon-fake-panel-offset-horizontal);\n\tmargin-top: var(--ck-balloon-fake-panel-offset-vertical);\n}\n\n.ck .ck-fake-panel div:nth-child( 2 ) {\n\tmargin-left: calc(var(--ck-balloon-fake-panel-offset-horizontal) * 2);\n\tmargin-top: calc(var(--ck-balloon-fake-panel-offset-vertical) * 2);\n}\n.ck .ck-fake-panel div:nth-child( 3 ) {\n\tmargin-left: calc(var(--ck-balloon-fake-panel-offset-horizontal) * 3);\n\tmargin-top: calc(var(--ck-balloon-fake-panel-offset-vertical) * 3);\n}\n\n/* If balloon is positioned above element, we need to move fake panel to the top. */\n.ck .ck-balloon-panel_arrow_s + .ck-fake-panel,\n.ck .ck-balloon-panel_arrow_se + .ck-fake-panel,\n.ck .ck-balloon-panel_arrow_sw + .ck-fake-panel {\n\t--ck-balloon-fake-panel-offset-vertical: -6px;\n}\n',"/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/**\n * A helper to combine multiple shadows.\n */\n@define-mixin ck-box-shadow $shadowA, $shadowB: 0 0 {\n\tbox-shadow: $shadowA, $shadowB;\n}\n\n/**\n * Gives an element a drop shadow so it looks like a floating panel.\n */\n@define-mixin ck-drop-shadow {\n\t@mixin ck-box-shadow var(--ck-drop-shadow);\n}\n"],sourceRoot:""}]);const a=s},3669:(e,t,o)=>{"use strict";o.d(t,{A:()=>h});var n=o(1354),i=o.n(n),r=o(6314),s=o.n(r),a=o(4417),l=o.n(a),c=new URL(o(2401),o.b),d=s()(i()),u=l()(c);d.push([e.id,`.ck.ck-editor__editable a span.image-inline:after,.ck.ck-editor__editable figure.image>a:after{display:block;position:absolute}:root{--ck-link-image-indicator-icon-size:20;--ck-link-image-indicator-icon-is-visible:clamp(0px,100% - 50px,1px)}.ck.ck-editor__editable a span.image-inline:after,.ck.ck-editor__editable figure.image>a:after{background-color:rgba(0,0,0,.4);background-image:url(${u});background-position:50%;background-repeat:no-repeat;background-size:14px;border-radius:100%;content:"";height:calc(var(--ck-link-image-indicator-icon-is-visible)*var(--ck-link-image-indicator-icon-size));overflow:hidden;right:min(var(--ck-spacing-medium),6%);top:min(var(--ck-spacing-medium),6%);width:calc(var(--ck-link-image-indicator-icon-is-visible)*var(--ck-link-image-indicator-icon-size))}`,"",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-link/theme/linkimage.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-link/linkimage.css"],names:[],mappings:"AASE,+FACC,aAAc,CACd,iBACD,CCPF,MAEC,sCAAuC,CACvC,oEACD,CAME,+FAUC,+BAAqC,CACrC,wDAA+3B,CAG/3B,uBAA2B,CAD3B,2BAA4B,CAD5B,oBAAqB,CAGrB,kBAAmB,CAdnB,UAAW,CAsBX,oGAAuG,CAFvG,eAAgB,CAbhB,sCAAwC,CADxC,oCAAsC,CAetC,mGAED",sourcesContent:["/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n.ck.ck-editor__editable {\n\t/* Linked image indicator */\n\t& figure.image > a,\n\t& a span.image-inline {\n\t\t&::after {\n\t\t\tdisplay: block;\n\t\t\tposition: absolute;\n\t\t}\n\t}\n}\n\n",'/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n:root {\n\t/* Match the icon size with the upload indicator brought by the image upload feature. */\n\t--ck-link-image-indicator-icon-size: 20;\n\t--ck-link-image-indicator-icon-is-visible: clamp(0px, 100% - 50px, 1px);\n}\n\n.ck.ck-editor__editable {\n\t/* Linked image indicator */\n\t& figure.image > a,\n\t& a span.image-inline {\n\t\t&::after {\n\t\t\tcontent: "";\n\n\t\t\t/*\n\t\t\t * Smaller images should have the icon closer to the border.\n\t\t\t * Match the icon position with the upload indicator brought by the image upload feature.\n\t\t\t */\n\t\t\ttop: min(var(--ck-spacing-medium), 6%);\n\t\t\tright: min(var(--ck-spacing-medium), 6%);\n\n\t\t\tbackground-color: hsla(0, 0%, 0%, .4);\n\t\t\tbackground-image: url("data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMjAgMjAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZmlsbD0iI2ZmZiIgZD0ibTExLjA3NyAxNSAuOTkxLTEuNDE2YS43NS43NSAwIDEgMSAxLjIyOS44NmwtMS4xNDggMS42NGEuNzQ4Ljc0OCAwIDAgMS0uMjE3LjIwNiA1LjI1MSA1LjI1MSAwIDAgMS04LjUwMy01Ljk1NS43NDEuNzQxIDAgMCAxIC4xMi0uMjc0bDEuMTQ3LTEuNjM5YS43NS43NSAwIDEgMSAxLjIyOC44Nkw0LjkzMyAxMC43bC4wMDYuMDAzYTMuNzUgMy43NSAwIDAgMCA2LjEzMiA0LjI5NGwuMDA2LjAwNHptNS40OTQtNS4zMzVhLjc0OC43NDggMCAwIDEtLjEyLjI3NGwtMS4xNDcgMS42MzlhLjc1Ljc1IDAgMSAxLTEuMjI4LS44NmwuODYtMS4yM2EzLjc1IDMuNzUgMCAwIDAtNi4xNDQtNC4zMDFsLS44NiAxLjIyOWEuNzUuNzUgMCAwIDEtMS4yMjktLjg2bDEuMTQ4LTEuNjRhLjc0OC43NDggMCAwIDEgLjIxNy0uMjA2IDUuMjUxIDUuMjUxIDAgMCAxIDguNTAzIDUuOTU1em0tNC41NjMtMi41MzJhLjc1Ljc1IDAgMCAxIC4xODQgMS4wNDVsLTMuMTU1IDQuNTA1YS43NS43NSAwIDEgMS0xLjIyOS0uODZsMy4xNTUtNC41MDZhLjc1Ljc1IDAgMCAxIDEuMDQ1LS4xODR6Ii8+PC9zdmc+");\n\t\t\tbackground-size: 14px;\n\t\t\tbackground-repeat: no-repeat;\n\t\t\tbackground-position: center;\n\t\t\tborder-radius: 100%;\n\n\t\t\t/*\n\t\t\t* Use CSS math to simulate container queries.\n\t\t\t* https://css-tricks.com/the-raven-technique-one-step-closer-to-container-queries/#what-about-showing-and-hiding-things\n\t\t\t*/\n\t\t\toverflow: hidden;\n\t\t\twidth: calc(var(--ck-link-image-indicator-icon-is-visible) * var(--ck-link-image-indicator-icon-size));\n\t\t\theight: calc(var(--ck-link-image-indicator-icon-is-visible) * var(--ck-link-image-indicator-icon-size));\n\t\t}\n\t}\n}\n\n'],sourceRoot:""}]);const h=d},4001:(e,t,o)=>{"use strict";o.d(t,{A:()=>a});var n=o(1354),i=o.n(n),r=o(6314),s=o.n(r)()(i());s.push([e.id,".ck.ck-table-properties-form .ck-form__row.ck-table-properties-form__alignment-row{align-content:baseline;flex-basis:0;flex-wrap:wrap}.ck.ck-table-properties-form .ck-form__row.ck-table-properties-form__alignment-row .ck.ck-toolbar .ck-toolbar__items{flex-wrap:nowrap}.ck.ck-table-properties-form{width:320px}.ck.ck-table-properties-form .ck-form__row.ck-table-properties-form__alignment-row{align-self:flex-end;padding:0}.ck.ck-table-properties-form .ck-form__row.ck-table-properties-form__alignment-row .ck.ck-toolbar{background:none;margin-top:var(--ck-spacing-standard)}.ck.ck-table-properties-form .ck-form__row.ck-table-properties-form__alignment-row .ck.ck-toolbar .ck-toolbar__items>*{width:40px}","",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-table/theme/tableproperties.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-table/tableproperties.css"],names:[],mappings:"AAOE,mFAGC,sBAAuB,CADvB,YAAa,CADb,cAOD,CAHC,qHACC,gBACD,CCTH,6BACC,WAmBD,CAhBE,mFACC,mBAAoB,CACpB,SAYD,CAVC,kGACC,eAAgB,CAGhB,qCAKD,CAHC,uHACC,UACD",sourcesContent:["/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n.ck.ck-table-properties-form {\n\t& .ck-form__row {\n\t\t&.ck-table-properties-form__alignment-row {\n\t\t\tflex-wrap: wrap;\n\t\t\tflex-basis: 0;\n\t\t\talign-content: baseline;\n\n\t\t\t& .ck.ck-toolbar .ck-toolbar__items {\n\t\t\t\tflex-wrap: nowrap;\n\t\t\t}\n\t\t}\n\t}\n}\n","/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n.ck.ck-table-properties-form {\n\twidth: 320px;\n\n\t& .ck-form__row {\n\t\t&.ck-table-properties-form__alignment-row {\n\t\t\talign-self: flex-end;\n\t\t\tpadding: 0;\n\n\t\t\t& .ck.ck-toolbar {\n\t\t\t\tbackground: none;\n\n\t\t\t\t/* Compensate for missing input label that would push the margin (toolbar has no inputs). */\n\t\t\t\tmargin-top: var(--ck-spacing-standard);\n\n\t\t\t\t& .ck-toolbar__items > * {\n\t\t\t\t\twidth: 40px;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n"],sourceRoot:""}]);const a=s},4106:(e,t,o)=>{"use strict";o.d(t,{A:()=>a});var n=o(1354),i=o.n(n),r=o(6314),s=o.n(r)()(i());s.push([e.id,".ck.ck-icon{vertical-align:middle}:root{--ck-icon-size:calc(var(--ck-line-height-base)*var(--ck-font-size-normal));--ck-icon-font-size:.8333350694em}.ck.ck-icon{font-size:var(--ck-icon-font-size);height:var(--ck-icon-size);width:var(--ck-icon-size)}.ck.ck-icon,.ck.ck-icon *{cursor:inherit}.ck.ck-icon.ck-icon_inherit-color,.ck.ck-icon.ck-icon_inherit-color *{color:inherit}.ck.ck-icon.ck-icon_inherit-color :not([fill]){fill:currentColor}","",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/components/icon/icon.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-ui/components/icon/icon.css"],names:[],mappings:"AAKA,YACC,qBACD,CCFA,MACC,0EAA6E,CAC7E,iCACD,CAEA,YAKC,kCAAmC,CAHnC,0BAA2B,CAD3B,yBA2BD,CAlBC,0BAFA,cAKA,CAMC,sEACC,aAMD,CAJC,+CAEC,iBACD",sourcesContent:["/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n.ck.ck-icon {\n\tvertical-align: middle;\n}\n",'/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n:root {\n\t--ck-icon-size: calc(var(--ck-line-height-base) * var(--ck-font-size-normal));\n\t--ck-icon-font-size: .8333350694em;\n}\n\n.ck.ck-icon {\n\twidth: var(--ck-icon-size);\n\theight: var(--ck-icon-size);\n\n\t/* Multiplied by the height of the line in "px" should give SVG "viewport" dimensions */\n\tfont-size: var(--ck-icon-font-size);\n\n\t/* Inherit cursor style (#5). */\n\tcursor: inherit;\n\n\t& * {\n\t\t/* Inherit cursor style (#5). */\n\t\tcursor: inherit;\n\t}\n\n\t/* Allows dynamic coloring of an icon by inheriting its color from the parent. */\n\t&.ck-icon_inherit-color {\n\t\tcolor: inherit;\n\n\t\t& * {\n\t\t\tcolor: inherit;\n\n\t\t\t&:not([fill]) {\n\t\t\t\t/* Needed by FF. */\n\t\t\t\tfill: currentColor;\n\t\t\t}\n\t\t}\n\t}\n}\n'],sourceRoot:""}]);const a=s},4204:(e,t,o)=>{"use strict";o.d(t,{A:()=>a});var n=o(1354),i=o.n(n),r=o(6314),s=o.n(r)()(i());s.push([e.id,":root{--ck-color-selector-column-resizer-hover:var(--ck-color-base-active);--ck-table-column-resizer-width:7px;--ck-table-column-resizer-position-offset:calc(var(--ck-table-column-resizer-width)*-0.5 - 0.5px)}.ck-content .table .ck-table-resized{table-layout:fixed}.ck-content .table table{overflow:hidden}.ck-content .table td,.ck-content .table th{overflow-wrap:break-word;position:relative}.ck.ck-editor__editable .table .ck-table-column-resizer{bottom:0;cursor:col-resize;position:absolute;right:var(--ck-table-column-resizer-position-offset);top:0;user-select:none;width:var(--ck-table-column-resizer-width);z-index:var(--ck-z-default)}.ck.ck-editor__editable .table[draggable] .ck-table-column-resizer,.ck.ck-editor__editable.ck-column-resize_disabled .table .ck-table-column-resizer{display:none}.ck.ck-editor__editable .table .ck-table-column-resizer:hover,.ck.ck-editor__editable .table .ck-table-column-resizer__active{background-color:var(--ck-color-selector-column-resizer-hover);bottom:-999999px;opacity:.25;top:-999999px}.ck.ck-editor__editable[dir=rtl] .table .ck-table-column-resizer{left:var(--ck-table-column-resizer-position-offset);right:unset}","",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-table/theme/tablecolumnresize.css"],names:[],mappings:"AAKA,MACC,oEAAqE,CACrE,mCAAoC,CAIpC,iGACD,CAEA,qCACC,kBACD,CAEA,yBACC,eACD,CAEA,4CAIC,wBAAyB,CACzB,iBACD,CAEA,wDAGC,QAAS,CAGT,iBAAkB,CALlB,iBAAkB,CAGlB,oDAAqD,CAFrD,KAAM,CAKN,gBAAiB,CAFjB,0CAA2C,CAG3C,2BACD,CAQA,qJACC,YACD,CAEA,8HAEC,8DAA+D,CAO/D,gBAAiB,CANjB,WAAa,CAKb,aAED,CAEA,iEACC,mDAAoD,CACpD,WACD",sourcesContent:["/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n:root {\n\t--ck-color-selector-column-resizer-hover: var(--ck-color-base-active);\n\t--ck-table-column-resizer-width: 7px;\n\n\t/* The offset used for absolute positioning of the resizer element, so that it is placed exactly above the cell border.\n\t The value is: minus half the width of the resizer decreased additionaly by the half the width of the border (0.5px). */\n\t--ck-table-column-resizer-position-offset: calc(var(--ck-table-column-resizer-width) * -0.5 - 0.5px);\n}\n\n.ck-content .table .ck-table-resized {\n\ttable-layout: fixed;\n}\n\n.ck-content .table table {\n\toverflow: hidden;\n}\n\n.ck-content .table td,\n.ck-content .table th {\n\t/* To prevent text overflowing beyond its cell when columns are resized by resize handler\n\t(https://github.com/ckeditor/ckeditor5/pull/14379#issuecomment-1589460978). */\n\toverflow-wrap: break-word;\n\tposition: relative;\n}\n\n.ck.ck-editor__editable .table .ck-table-column-resizer {\n\tposition: absolute;\n\ttop: 0;\n\tbottom: 0;\n\tright: var(--ck-table-column-resizer-position-offset);\n\twidth: var(--ck-table-column-resizer-width);\n\tcursor: col-resize;\n\tuser-select: none;\n\tz-index: var(--ck-z-default);\n}\n\n.ck.ck-editor__editable.ck-column-resize_disabled .table .ck-table-column-resizer {\n\tdisplay: none;\n}\n\n/* The resizer elements, which are extended to an extremely high height, break the drag & drop feature in Chrome. To make it work again,\n all resizers must be hidden while the table is dragged. */\n.ck.ck-editor__editable .table[draggable] .ck-table-column-resizer {\n\tdisplay: none;\n}\n\n.ck.ck-editor__editable .table .ck-table-column-resizer:hover,\n.ck.ck-editor__editable .table .ck-table-column-resizer__active {\n\tbackground-color: var(--ck-color-selector-column-resizer-hover);\n\topacity: 0.25;\n\t/* The resizer element resides in each cell so to occupy the entire height of the table, which is unknown from a CSS point of view,\n\t it is extended to an extremely high height. Even for screens with a very high pixel density, the resizer will fulfill its role as\n\t it should, i.e. for a screen of 476 ppi the total height of the resizer will take over 350 sheets of A4 format, which is totally\n\t unrealistic height for a single table. */\n\ttop: -999999px;\n\tbottom: -999999px;\n}\n\n.ck.ck-editor__editable[dir=rtl] .table .ck-table-column-resizer {\n\tleft: var(--ck-table-column-resizer-position-offset);\n\tright: unset;\n}\n"],sourceRoot:""}]);const a=s},4214:(e,t,o)=>{"use strict";o.d(t,{A:()=>a});var n=o(1354),i=o.n(n),r=o(6314),s=o.n(r)()(i());s.push([e.id,".ck-content img.image_resized{height:auto}.ck-content .image.image_resized{box-sizing:border-box;display:block;max-width:100%}.ck-content .image.image_resized img{width:100%}.ck-content .image.image_resized>figcaption{display:block}.ck.ck-editor__editable td .image-inline.image_resized img,.ck.ck-editor__editable th .image-inline.image_resized img{max-width:100%}[dir=ltr] .ck.ck-button.ck-button_with-text.ck-resize-image-button .ck-button__icon{margin-right:var(--ck-spacing-standard)}[dir=rtl] .ck.ck-button.ck-button_with-text.ck-resize-image-button .ck-button__icon{margin-left:var(--ck-spacing-standard)}.ck.ck-dropdown .ck-button.ck-resize-image-button .ck-button__label{width:4em}","",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-image/theme/imageresize.css"],names:[],mappings:"AAMA,8BACC,WACD,CAEA,iCAQC,qBAAsB,CADtB,aAAc,CANd,cAkBD,CATC,qCAEC,UACD,CAEA,4CAEC,aACD,CAQC,sHACC,cACD,CAIF,oFACC,uCACD,CAEA,oFACC,sCACD,CAEA,oEACC,SACD",sourcesContent:['/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/* Preserve aspect ratio of the resized image after introducing image height attribute. */\n.ck-content img.image_resized {\n\theight: auto;\n}\n\n.ck-content .image.image_resized {\n\tmax-width: 100%;\n\t/*\n\tThe `
    ` element for resized images must not use `display:table` as browsers do not support `max-width` for it well.\n\tSee https://stackoverflow.com/questions/4019604/chrome-safari-ignoring-max-width-in-table/14420691#14420691 for more.\n\tFortunately, since we control the width, there is no risk that the image will look bad.\n\t*/\n\tdisplay: block;\n\tbox-sizing: border-box;\n\n\t& img {\n\t\t/* For resized images it is the `
    ` element that determines the image width. */\n\t\twidth: 100%;\n\t}\n\n\t& > figcaption {\n\t\t/* The `
    ` element uses `display:block`, so `
    ` also has to. */\n\t\tdisplay: block;\n\t}\n}\n\n.ck.ck-editor__editable {\n\t/* The resized inline image nested in the table should respect its parent size.\n\tSee https://github.com/ckeditor/ckeditor5/issues/9117. */\n\t& td,\n\t& th {\n\t\t& .image-inline.image_resized img {\n\t\t\tmax-width: 100%;\n\t\t}\n\t}\n}\n\n[dir="ltr"] .ck.ck-button.ck-button_with-text.ck-resize-image-button .ck-button__icon {\n\tmargin-right: var(--ck-spacing-standard);\n}\n\n[dir="rtl"] .ck.ck-button.ck-button_with-text.ck-resize-image-button .ck-button__icon {\n\tmargin-left: var(--ck-spacing-standard);\n}\n\n.ck.ck-dropdown .ck-button.ck-resize-image-button .ck-button__label {\n\twidth: 4em;\n}\n'],sourceRoot:""}]);const a=s},4284:e=>{"use strict";var t,o=(t=[],function(e,o){return t[e]=o,t.filter(Boolean).join("\n")});function n(e,t,n,i){var r;if(n)r="";else{r="",i.supports&&(r+="@supports (".concat(i.supports,") {")),i.media&&(r+="@media ".concat(i.media," {"));var s=void 0!==i.layer;s&&(r+="@layer".concat(i.layer.length>0?" ".concat(i.layer):""," {")),r+=i.css,s&&(r+="}"),i.media&&(r+="}"),i.supports&&(r+="}")}if(e.styleSheet)e.styleSheet.cssText=o(t,r);else{var a=document.createTextNode(r),l=e.childNodes;l[t]&&e.removeChild(l[t]),l.length?e.insertBefore(a,l[t]):e.appendChild(a)}}var i={singleton:null,singletonCounter:0};e.exports=function(e){if("undefined"==typeof document)return{update:function(){},remove:function(){}};var t=i.singletonCounter++,o=i.singleton||(i.singleton=e.insertStyleElement(e));return{update:function(e){n(o,t,!1,e)},remove:function(e){n(o,t,!0,e)}}}},4307:(e,t,o)=>{"use strict";o.d(t,{A:()=>a});var n=o(1354),i=o.n(n),r=o(6314),s=o.n(r)()(i());s.push([e.id,".ck.ck-input-color{display:flex;flex-direction:row-reverse;width:100%}.ck.ck-input-color>input.ck.ck-input-text{flex-grow:1;min-width:auto}.ck.ck-input-color>div.ck.ck-dropdown{min-width:auto}.ck.ck-input-color>div.ck.ck-dropdown>.ck-input-color__button .ck-dropdown__arrow{display:none}.ck.ck-input-color .ck.ck-input-color__button{display:flex}.ck.ck-input-color .ck.ck-input-color__button .ck.ck-input-color__button__preview{overflow:hidden;position:relative}.ck.ck-input-color .ck.ck-input-color__button .ck.ck-input-color__button__preview>.ck.ck-input-color__button__preview__no-color-indicator{display:block;position:absolute}[dir=ltr] .ck.ck-input-color>.ck.ck-input-text{border-bottom-right-radius:0;border-top-right-radius:0}[dir=rtl] .ck.ck-input-color>.ck.ck-input-text{border-bottom-left-radius:0;border-top-left-radius:0}.ck.ck-input-color>.ck.ck-input-text:focus{z-index:0}.ck.ck-input-color>.ck.ck-dropdown>.ck.ck-button.ck-input-color__button{padding:0}[dir=ltr] .ck.ck-input-color>.ck.ck-dropdown>.ck.ck-button.ck-input-color__button{border-bottom-left-radius:0;border-top-left-radius:0}[dir=ltr] .ck.ck-input-color>.ck.ck-dropdown>.ck.ck-button.ck-input-color__button:not(:focus){border-left:1px solid transparent}[dir=rtl] .ck.ck-input-color>.ck.ck-dropdown>.ck.ck-button.ck-input-color__button{border-bottom-right-radius:0;border-top-right-radius:0}[dir=rtl] .ck.ck-input-color>.ck.ck-dropdown>.ck.ck-button.ck-input-color__button:not(:focus){border-right:1px solid transparent}.ck.ck-input-color>.ck.ck-dropdown>.ck.ck-button.ck-input-color__button.ck-disabled{background:var(--ck-color-input-disabled-background)}.ck.ck-input-color>.ck.ck-dropdown>.ck.ck-button.ck-input-color__button>.ck.ck-input-color__button__preview{border:1px solid var(--ck-color-input-border);border-radius:0;height:20px;width:20px}.ck-rounded-corners .ck.ck-input-color>.ck.ck-dropdown>.ck.ck-button.ck-input-color__button>.ck.ck-input-color__button__preview,.ck.ck-input-color>.ck.ck-dropdown>.ck.ck-button.ck-input-color__button>.ck.ck-input-color__button__preview.ck-rounded-corners{border-radius:var(--ck-border-radius)}.ck.ck-input-color>.ck.ck-dropdown>.ck.ck-button.ck-input-color__button>.ck.ck-input-color__button__preview>.ck.ck-input-color__button__preview__no-color-indicator{background:red;border-radius:2px;height:150%;left:50%;top:-30%;transform:rotate(45deg);transform-origin:50%;width:8%}.ck.ck-input-color .ck.ck-input-color__remove-color{border-bottom-left-radius:0;border-bottom-right-radius:0;padding:calc(var(--ck-spacing-standard)/2) var(--ck-spacing-standard);width:100%}.ck.ck-input-color .ck.ck-input-color__remove-color:not(:focus){border-bottom:1px solid var(--ck-color-input-border)}[dir=ltr] .ck.ck-input-color .ck.ck-input-color__remove-color{border-top-right-radius:0}[dir=rtl] .ck.ck-input-color .ck.ck-input-color__remove-color{border-top-left-radius:0}.ck.ck-input-color .ck.ck-input-color__remove-color .ck.ck-icon{margin-right:var(--ck-spacing-standard)}[dir=rtl] .ck.ck-input-color .ck.ck-input-color__remove-color .ck.ck-icon{margin-left:var(--ck-spacing-standard);margin-right:0}","",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-table/theme/colorinput.css","webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/mixins/_dir.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-table/colorinput.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/mixins/_rounded.css"],names:[],mappings:"AAKA,mBAEC,YAAa,CACb,0BAA2B,CAF3B,UAgCD,CA5BC,0CAEC,WAAY,CADZ,cAED,CAEA,sCACC,cAMD,CAHC,kFACC,YACD,CAGD,8CAEC,YAWD,CATC,kFAEC,eAAgB,CADhB,iBAOD,CAJC,0IAEC,aAAc,CADd,iBAED,CC7BF,+CCME,4BAA6B,CAD7B,yBDHF,CAFA,+CCWE,2BAA4B,CAD5B,wBDRF,CCcC,2CACC,SACD,CAIA,wEACC,SA0CD,CDjED,kFC2BG,2BAA4B,CAD5B,wBDxBH,CC2BG,8FACC,iCACD,CD/BH,kFCoCG,4BAA6B,CAD7B,yBDjCH,CCoCG,8FACC,kCACD,CAGD,oFACC,oDACD,CAEA,4GAKC,6CAA8C,CC/CjD,eAAgB,CD8Cb,WAAY,CADZ,UAcD,CCzDF,+PAEC,qCAED,CD2CG,oKAKC,cAA6B,CAC7B,iBAAkB,CAHlB,WAAY,CADZ,QAAS,CADT,QAAS,CAMT,uBAAwB,CACxB,oBAAqB,CAJrB,QAKD,CAKH,oDAIC,2BAA4B,CAC5B,4BAA6B,CAH7B,qEAAwE,CADxE,UA0BD,CApBC,gEACC,oDACD,CD7ED,8DCgFE,yBD9EF,CAFA,8DCoFE,wBDlFF,CCqFC,gEACC,uCAMD,CD9FD,0EC4FG,sCAAuC,CADvC,cDzFH",sourcesContent:["/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n.ck.ck-input-color {\n\twidth: 100%;\n\tdisplay: flex;\n\tflex-direction: row-reverse;\n\n\t& > input.ck.ck-input-text {\n\t\tmin-width: auto;\n\t\tflex-grow: 1;\n\t}\n\n\t& > div.ck.ck-dropdown {\n\t\tmin-width: auto;\n\n\t\t/* This dropdown has no arrow but a color preview instead. */\n\t\t& > .ck-input-color__button .ck-dropdown__arrow {\n\t\t\tdisplay: none;\n\t\t}\n\t}\n\n\t& .ck.ck-input-color__button {\n\t\t/* Resolving issue with misaligned buttons on Safari (see #10589) */\n\t\tdisplay: flex;\n\n\t\t& .ck.ck-input-color__button__preview {\n\t\t\tposition: relative;\n\t\t\toverflow: hidden;\n\n\t\t\t& > .ck.ck-input-color__button__preview__no-color-indicator {\n\t\t\t\tposition: absolute;\n\t\t\t\tdisplay: block;\n\t\t\t}\n\t\t}\n\t}\n}\n",'/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n@define-mixin ck-dir $direction {\n\t[dir="$(direction)"] & {\n\t\t@mixin-content;\n\t}\n}\n','/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n@import "@ckeditor/ckeditor5-ui/theme/mixins/_dir.css";\n@import "../mixins/_rounded.css";\n\n.ck.ck-input-color {\n\t& > .ck.ck-input-text {\n\t\t@mixin ck-dir ltr {\n\t\t\tborder-top-right-radius: 0;\n\t\t\tborder-bottom-right-radius: 0;\n\t\t}\n\n\t\t@mixin ck-dir rtl {\n\t\t\tborder-top-left-radius: 0;\n\t\t\tborder-bottom-left-radius: 0;\n\t\t}\n\n\t\t/* Make sure the focused input is always on top of the dropdown button so its\n\t\t outline and border are never cropped (also when the input is read-only). */\n\t\t&:focus {\n\t\t\tz-index: 0;\n\t\t}\n\t}\n\n\t& > .ck.ck-dropdown {\n\t\t& > .ck.ck-button.ck-input-color__button {\n\t\t\tpadding: 0;\n\n\t\t\t@mixin ck-dir ltr {\n\t\t\t\tborder-top-left-radius: 0;\n\t\t\t\tborder-bottom-left-radius: 0;\n\n\t\t\t\t&:not(:focus) {\n\t\t\t\t\tborder-left: 1px solid transparent;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t@mixin ck-dir rtl {\n\t\t\t\tborder-top-right-radius: 0;\n\t\t\t\tborder-bottom-right-radius: 0;\n\n\t\t\t\t&:not(:focus) {\n\t\t\t\t\tborder-right: 1px solid transparent;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t&.ck-disabled {\n\t\t\t\tbackground: var(--ck-color-input-disabled-background);\n\t\t\t}\n\n\t\t\t& > .ck.ck-input-color__button__preview {\n\t\t\t\t@mixin ck-rounded-corners;\n\n\t\t\t\twidth: 20px;\n\t\t\t\theight: 20px;\n\t\t\t\tborder: 1px solid var(--ck-color-input-border);\n\n\t\t\t\t& > .ck.ck-input-color__button__preview__no-color-indicator {\n\t\t\t\t\ttop: -30%;\n\t\t\t\t\tleft: 50%;\n\t\t\t\t\theight: 150%;\n\t\t\t\t\twidth: 8%;\n\t\t\t\t\tbackground: hsl(0, 100%, 50%);\n\t\t\t\t\tborder-radius: 2px;\n\t\t\t\t\ttransform: rotate(45deg);\n\t\t\t\t\ttransform-origin: 50%;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t& .ck.ck-input-color__remove-color {\n\t\twidth: 100%;\n\t\tpadding: calc(var(--ck-spacing-standard) / 2) var(--ck-spacing-standard);\n\n\t\tborder-bottom-left-radius: 0;\n\t\tborder-bottom-right-radius: 0;\n\n\t\t&:not(:focus) {\n\t\t\tborder-bottom: 1px solid var(--ck-color-input-border);\n\t\t}\n\n\t\t@mixin ck-dir ltr {\n\t\t\tborder-top-right-radius: 0;\n\t\t}\n\n\t\t@mixin ck-dir rtl {\n\t\t\tborder-top-left-radius: 0;\n\t\t}\n\n\t\t& .ck.ck-icon {\n\t\t\tmargin-right: var(--ck-spacing-standard);\n\n\t\t\t@mixin ck-dir rtl {\n\t\t\t\tmargin-right: 0;\n\t\t\t\tmargin-left: var(--ck-spacing-standard);\n\t\t\t}\n\t\t}\n\t}\n}\n',"/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/**\n * Implements rounded corner interface for .ck-rounded-corners class.\n *\n * @see $ck-border-radius\n */\n@define-mixin ck-rounded-corners {\n\tborder-radius: 0;\n\n\t.ck-rounded-corners &,\n\t&.ck-rounded-corners {\n\t\tborder-radius: var(--ck-border-radius);\n\t\t@mixin-content;\n\t}\n}\n"],sourceRoot:""}]);const a=s},4417:e=>{"use strict";e.exports=function(e,t){return t||(t={}),e?(e=String(e.__esModule?e.default:e),/^['"].*['"]$/.test(e)&&(e=e.slice(1,-1)),t.hash&&(e+=t.hash),/["'() \t\n]|(%20)/.test(e)||t.needQuotes?'"'.concat(e.replace(/"/g,'\\"').replace(/\n/g,"\\n"),'"'):e):e}},4606:(e,t,o)=>{"use strict";o.d(t,{A:()=>a});var n=o(1354),i=o.n(n),r=o(6314),s=o.n(r)()(i());s.push([e.id,".ck.ck-label{display:block}.ck.ck-voice-label{display:none}.ck.ck-label{font-weight:700}","",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/components/label/label.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-ui/components/label/label.css"],names:[],mappings:"AAKA,aACC,aACD,CAEA,mBACC,YACD,CCNA,aACC,eACD",sourcesContent:["/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n.ck.ck-label {\n\tdisplay: block;\n}\n\n.ck.ck-voice-label {\n\tdisplay: none;\n}\n","/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n.ck.ck-label {\n\tfont-weight: bold;\n}\n"],sourceRoot:""}]);const a=s},4650:(e,t,o)=>{"use strict";o.d(t,{A:()=>a});var n=o(1354),i=o.n(n),r=o(6314),s=o.n(r)()(i());s.push([e.id,".ck.ck-balloon-panel.ck-tooltip{-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none;z-index:calc(var(--ck-z-dialog) + 100);--ck-balloon-border-width:0px;--ck-balloon-arrow-offset:0px;--ck-balloon-arrow-half-width:4px;--ck-balloon-arrow-height:4px;--ck-tooltip-text-padding:4px;--ck-color-panel-background:var(--ck-color-tooltip-background);box-shadow:none;padding:0 var(--ck-spacing-medium)}.ck.ck-balloon-panel.ck-tooltip .ck-tooltip__text{color:var(--ck-color-tooltip-text);font-size:.9em;line-height:1.5}.ck.ck-balloon-panel.ck-tooltip.ck-tooltip_multi-line .ck-tooltip__text{display:inline-block;max-width:200px;padding:var(--ck-tooltip-text-padding) 0;white-space:break-spaces}.ck.ck-balloon-panel.ck-tooltip:before{display:none}","",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/components/tooltip/tooltip.css","webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/mixins/_unselectable.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-ui/components/tooltip/tooltip.css"],names:[],mappings:"AAOA,gCCEC,qBAAsB,CACtB,wBAAyB,CACzB,oBAAqB,CACrB,gBAAgB,CDFhB,sCAAyC,CEFzC,6BAA8B,CAC9B,6BAA8B,CAC9B,iCAAkC,CAClC,6BAA8B,CAC9B,6BAA8B,CAC9B,8DAA+D,CAkB/D,eAAgB,CAhBhB,kCFJD,CEMC,kDAGC,kCAAmC,CAFnC,cAAe,CACf,eAED,CAEA,wEAEC,oBAAqB,CAErB,eAAgB,CADhB,wCAAyC,CAFzC,wBAID,CAMA,uCACC,YACD",sourcesContent:['/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n@import "../../mixins/_unselectable.css";\n\n.ck.ck-balloon-panel.ck-tooltip {\n\t@mixin ck-unselectable;\n\n\tz-index: calc( var(--ck-z-dialog) + 100 );\n}\n',"/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/**\n * Makes element unselectable.\n */\n@define-mixin ck-unselectable {\n\t-moz-user-select: none;\n\t-webkit-user-select: none;\n\t-ms-user-select: none;\n\tuser-select: none\n}\n",'/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n@import "../../../mixins/_rounded.css";\n\n.ck.ck-balloon-panel.ck-tooltip {\n\t--ck-balloon-border-width: 0px;\n\t--ck-balloon-arrow-offset: 0px;\n\t--ck-balloon-arrow-half-width: 4px;\n\t--ck-balloon-arrow-height: 4px;\n\t--ck-tooltip-text-padding: 4px;\n\t--ck-color-panel-background: var(--ck-color-tooltip-background);\n\n\tpadding: 0 var(--ck-spacing-medium);\n\n\t& .ck-tooltip__text {\n\t\tfont-size: .9em;\n\t\tline-height: 1.5;\n\t\tcolor: var(--ck-color-tooltip-text);\n\t}\n\n\t&.ck-tooltip_multi-line .ck-tooltip__text {\n\t\twhite-space: break-spaces;\n\t\tdisplay: inline-block;\n\t\tpadding: var(--ck-tooltip-text-padding) 0;\n\t\tmax-width: 200px;\n\t}\n\n\t/* Reset balloon panel styles */\n\tbox-shadow: none;\n\n\t/* Hide the default shadow of the .ck-balloon-panel tip */\n\t&::before {\n\t\tdisplay: none;\n\t}\n}\n'],sourceRoot:""}]);const a=s},4694:(e,t,o)=>{"use strict";o.d(t,{A:()=>a});var n=o(1354),i=o.n(n),r=o(6314),s=o.n(r)()(i());s.push([e.id,":root{--ck-dropdown-menu-menu-item-min-width:18em}.ck.ck-dropdown-menu-list__nested-menu__item{min-width:var(--ck-dropdown-menu-menu-item-min-width)}","",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-ui/components/dropdown/menu/dropdownmenulistitem.css"],names:[],mappings:"AAKA,MACC,2CACD,CAEA,6CACC,qDACD",sourcesContent:["/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n:root {\n\t--ck-dropdown-menu-menu-item-min-width: 18em;\n}\n\n.ck.ck-dropdown-menu-list__nested-menu__item {\n\tmin-width: var(--ck-dropdown-menu-menu-item-min-width);\n}\n"],sourceRoot:""}]);const a=s},4782:(e,t,o)=>{"use strict";o.d(t,{A:()=>a});var n=o(1354),i=o.n(n),r=o(6314),s=o.n(r)()(i());s.push([e.id,".ck.ck-menu-bar{background:var(--ck-color-base-background);border:1px solid var(--ck-color-toolbar-border);display:flex;flex-wrap:wrap;gap:var(--ck-spacing-small);justify-content:flex-start;padding:var(--ck-spacing-small);width:100%}","",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-ui/components/menubar/menubar.css"],names:[],mappings:"AAKA,gBAIC,0CAA2C,CAG3C,+CAAgD,CANhD,YAAa,CACb,cAAe,CAIf,2BAA4B,CAH5B,0BAA2B,CAE3B,+BAAgC,CAGhC,UACD",sourcesContent:["/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n.ck.ck-menu-bar {\n\tdisplay: flex;\n\tflex-wrap: wrap;\n\tjustify-content: flex-start;\n\tbackground: var(--ck-color-base-background);\n\tpadding: var(--ck-spacing-small);\n\tgap: var(--ck-spacing-small);\n\tborder: 1px solid var(--ck-color-toolbar-border);\n\twidth: 100%;\n}\n"],sourceRoot:""}]);const a=s},4866:(e,t,o)=>{"use strict";o.d(t,{A:()=>a});var n=o(1354),i=o.n(n),r=o(6314),s=o.n(r)()(i());s.push([e.id,".ck.ck-form__header{align-items:center;display:flex;flex-direction:row;flex-wrap:nowrap;justify-content:space-between}.ck.ck-form__header h2.ck-form__header__label{flex-grow:1}:root{--ck-form-header-height:44px}.ck.ck-form__header{border-bottom:1px solid var(--ck-color-base-border);height:var(--ck-form-header-height);line-height:var(--ck-form-header-height);padding:var(--ck-spacing-small) var(--ck-spacing-large)}[dir=ltr] .ck.ck-form__header>.ck-icon{margin-right:var(--ck-spacing-medium)}[dir=rtl] .ck.ck-form__header>.ck-icon{margin-left:var(--ck-spacing-medium)}.ck.ck-form__header .ck-form__header__label{--ck-font-size-base:15px;font-weight:700}","",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/components/formheader/formheader.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-ui/components/formheader/formheader.css","webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/mixins/_dir.css"],names:[],mappings:"AAKA,oBAIC,kBAAmB,CAHnB,YAAa,CACb,kBAAmB,CACnB,gBAAiB,CAEjB,6BAKD,CAHC,8CACC,WACD,CCPD,MACC,4BACD,CAEA,oBAIC,mDAAoD,CAFpD,mCAAoC,CACpC,wCAAyC,CAFzC,uDAmBD,CCzBC,uCDaE,qCCXF,CAFA,uCDiBE,oCCfF,CDmBA,4CACC,wBAAyB,CACzB,eACD",sourcesContent:["/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n.ck.ck-form__header {\n\tdisplay: flex;\n\tflex-direction: row;\n\tflex-wrap: nowrap;\n\talign-items: center;\n\tjustify-content: space-between;\n\n\t& h2.ck-form__header__label {\n\t\tflex-grow: 1;\n\t}\n}\n",'/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n@import "@ckeditor/ckeditor5-ui/theme/mixins/_dir.css";\n\n:root {\n\t--ck-form-header-height: 44px;\n}\n\n.ck.ck-form__header {\n\tpadding: var(--ck-spacing-small) var(--ck-spacing-large);\n\theight: var(--ck-form-header-height);\n\tline-height: var(--ck-form-header-height);\n\tborder-bottom: 1px solid var(--ck-color-base-border);\n\n\t& > .ck-icon {\n\t\t@mixin ck-dir ltr {\n\t\t\tmargin-right: var(--ck-spacing-medium);\n\t\t}\n\n\t\t@mixin ck-dir rtl {\n\t\t\tmargin-left: var(--ck-spacing-medium);\n\t\t}\n\t}\n\n\t& .ck-form__header__label {\n\t\t--ck-font-size-base: 15px;\n\t\tfont-weight: bold;\n\t}\n}\n','/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n@define-mixin ck-dir $direction {\n\t[dir="$(direction)"] & {\n\t\t@mixin-content;\n\t}\n}\n'],sourceRoot:""}]);const a=s},4868:e=>{"use strict";e.exports=function(e,t){Object.keys(t).forEach((function(o){e.setAttribute(o,t[o])}))}},4873:(e,t,o)=>{"use strict";o.d(t,{A:()=>a});var n=o(1354),i=o.n(n),r=o(6314),s=o.n(r)()(i());s.push([e.id,":root{--ck-menu-bar-menu-max-width:75vw;--ck-menu-bar-nested-menu-horizontal-offset:5px}.ck.ck-menu-bar__menu>.ck.ck-menu-bar__menu__panel{max-width:var(--ck-menu-bar-menu-max-width);position:absolute;z-index:var(--ck-z-panel)}.ck.ck-menu-bar__menu>.ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_ne,.ck.ck-menu-bar__menu>.ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_nw{bottom:100%}.ck.ck-menu-bar__menu>.ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_se,.ck.ck-menu-bar__menu>.ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_sw{bottom:auto;top:100%}.ck.ck-menu-bar__menu>.ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_ne,.ck.ck-menu-bar__menu>.ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_se{left:0}.ck.ck-menu-bar__menu>.ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_nw,.ck.ck-menu-bar__menu>.ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_sw{right:0}.ck.ck-menu-bar__menu>.ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_en,.ck.ck-menu-bar__menu>.ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_es{left:calc(100% - var(--ck-menu-bar-nested-menu-horizontal-offset))}.ck.ck-menu-bar__menu>.ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_es{top:0}.ck.ck-menu-bar__menu>.ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_en{bottom:0}.ck.ck-menu-bar__menu>.ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_wn,.ck.ck-menu-bar__menu>.ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_ws{right:calc(100% - var(--ck-menu-bar-nested-menu-horizontal-offset))}.ck.ck-menu-bar__menu>.ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_ws{top:0}.ck.ck-menu-bar__menu>.ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_wn{bottom:0}:root{--ck-menu-bar-menu-panel-max-width:75vw}.ck.ck-menu-bar__menu>.ck.ck-menu-bar__menu__panel{background:var(--ck-color-dropdown-panel-background);border:1px solid var(--ck-color-dropdown-panel-border);border-radius:0;bottom:0;height:fit-content;max-width:var(--ck-menu-bar-menu-panel-max-width)}.ck-rounded-corners .ck.ck-menu-bar__menu>.ck.ck-menu-bar__menu__panel,.ck.ck-menu-bar__menu>.ck.ck-menu-bar__menu__panel.ck-rounded-corners{border-radius:var(--ck-border-radius)}.ck.ck-menu-bar__menu>.ck.ck-menu-bar__menu__panel{box-shadow:var(--ck-drop-shadow),0 0}.ck.ck-menu-bar__menu>.ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_es,.ck.ck-menu-bar__menu>.ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_se{border-top-left-radius:0}.ck.ck-menu-bar__menu>.ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_sw,.ck.ck-menu-bar__menu>.ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_ws{border-top-right-radius:0}.ck.ck-menu-bar__menu>.ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_en,.ck.ck-menu-bar__menu>.ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_ne{border-bottom-left-radius:0}.ck.ck-menu-bar__menu>.ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_nw,.ck.ck-menu-bar__menu>.ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_wn{border-bottom-right-radius:0}.ck.ck-menu-bar__menu>.ck.ck-menu-bar__menu__panel:focus{outline:none}.ck.ck-menu-bar .ck-list-item-button:active,.ck.ck-menu-bar .ck-list-item-button:focus{border-color:transparent;box-shadow:none}.ck.ck-menu-bar.ck-menu-bar_focus-border-enabled .ck-list-item-button:active,.ck.ck-menu-bar.ck-menu-bar_focus-border-enabled .ck-list-item-button:focus{border:var(--ck-focus-ring);box-shadow:var(--ck-focus-outer-shadow),0 0;outline:none;position:relative;z-index:2}","",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/components/menubar/menubarmenupanel.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-ui/components/menubar/menubarmenupanel.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/mixins/_rounded.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/mixins/_shadow.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/mixins/_focus.css"],names:[],mappings:"AAKA,MACC,iCAAkC,CAClC,+CACD,CAEA,mDAEC,2CAA4C,CAC5C,iBAAkB,CAFlB,yBAkDD,CA9CC,gLAEC,WACD,CAEA,gLAGC,WAAY,CADZ,QAED,CAEA,gLAEC,MACD,CAEA,gLAEC,OACD,CAEA,gLAEC,kEACD,CAEA,wFACC,KACD,CAEA,wFACC,QACD,CAEA,gLAEC,mEACD,CAEA,wFACC,KACD,CAEA,wFACC,QACD,CCnDD,MACC,uCACD,CAEA,mDAIC,oDAAqD,CACrD,sDAAuD,CCPvD,eAAgB,CDQhB,QAAS,CACT,kBAAmB,CACnB,iDA0BD,CClCC,6IAEC,qCAED,CDJD,mDEJC,oCFsCD,CAvBC,gLAEC,wBACD,CAEA,gLAEC,yBACD,CAEA,gLAEC,2BACD,CAEA,gLAEC,4BACD,CAEA,yDACC,YACD,CAKC,uFAEC,wBAAyB,CACzB,eACD,CAIA,yJGhDD,2BAA2B,CDF3B,2CAA8B,CCC9B,YAAa,CHoDX,iBAAkB,CAClB,SAID",sourcesContent:["/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n:root {\n\t--ck-menu-bar-menu-max-width: 75vw;\n\t--ck-menu-bar-nested-menu-horizontal-offset: 5px;\n}\n\n.ck.ck-menu-bar__menu > .ck.ck-menu-bar__menu__panel {\n\tz-index: var(--ck-z-panel);\n\tmax-width: var(--ck-menu-bar-menu-max-width);\n\tposition: absolute;\n\n\t&.ck-menu-bar__menu__panel_position_ne,\n\t&.ck-menu-bar__menu__panel_position_nw {\n\t\tbottom: 100%;\n\t}\n\n\t&.ck-menu-bar__menu__panel_position_se,\n\t&.ck-menu-bar__menu__panel_position_sw {\n\t\ttop: 100%;\n\t\tbottom: auto;\n\t}\n\n\t&.ck-menu-bar__menu__panel_position_ne,\n\t&.ck-menu-bar__menu__panel_position_se {\n\t\tleft: 0px;\n\t}\n\n\t&.ck-menu-bar__menu__panel_position_nw,\n\t&.ck-menu-bar__menu__panel_position_sw {\n\t\tright: 0px;\n\t}\n\n\t&.ck-menu-bar__menu__panel_position_es,\n\t&.ck-menu-bar__menu__panel_position_en {\n\t\tleft: calc( 100% - var(--ck-menu-bar-nested-menu-horizontal-offset) );\n\t}\n\n\t&.ck-menu-bar__menu__panel_position_es {\n\t\ttop: 0px;\n\t}\n\n\t&.ck-menu-bar__menu__panel_position_en {\n\t\tbottom: 0px;\n\t}\n\n\t&.ck-menu-bar__menu__panel_position_ws,\n\t&.ck-menu-bar__menu__panel_position_wn {\n\t\tright: calc( 100% - var(--ck-menu-bar-nested-menu-horizontal-offset) );\n\t}\n\n\t&.ck-menu-bar__menu__panel_position_ws {\n\t\ttop: 0px;\n\t}\n\n\t&.ck-menu-bar__menu__panel_position_wn {\n\t\tbottom: 0px;\n\t}\n}\n",'/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n@import "../../../mixins/_rounded.css";\n@import "../../../mixins/_shadow.css";\n@import "../../../mixins/_focus.css";\n\n:root {\n\t--ck-menu-bar-menu-panel-max-width: 75vw;\n}\n\n.ck.ck-menu-bar__menu > .ck.ck-menu-bar__menu__panel {\n\t@mixin ck-rounded-corners;\n\t@mixin ck-drop-shadow;\n\n\tbackground: var(--ck-color-dropdown-panel-background);\n\tborder: 1px solid var(--ck-color-dropdown-panel-border);\n\tbottom: 0;\n\theight: fit-content;\n\tmax-width: var(--ck-menu-bar-menu-panel-max-width);\n\n\t/* Corner border radius consistent with the button. */\n\t&.ck-menu-bar__menu__panel_position_es,\n\t&.ck-menu-bar__menu__panel_position_se {\n\t\tborder-top-left-radius: 0;\n\t}\n\n\t&.ck-menu-bar__menu__panel_position_ws,\n\t&.ck-menu-bar__menu__panel_position_sw {\n\t\tborder-top-right-radius: 0;\n\t}\n\n\t&.ck-menu-bar__menu__panel_position_en,\n\t&.ck-menu-bar__menu__panel_position_ne {\n\t\tborder-bottom-left-radius: 0;\n\t}\n\n\t&.ck-menu-bar__menu__panel_position_wn,\n\t&.ck-menu-bar__menu__panel_position_nw {\n\t\tborder-bottom-right-radius: 0;\n\t}\n\n\t&:focus {\n\t\toutline: none;\n\t}\n}\n\n.ck.ck-menu-bar {\n\t& .ck-list-item-button {\n\t\t&:focus,\n\t\t&:active {\n\t\t\tborder-color: transparent;\n\t\t\tbox-shadow: none;\n\t\t}\n\t}\n\n\t&.ck-menu-bar_focus-border-enabled .ck-list-item-button {\n\t\t&:focus,\n\t\t&:active {\n\t\t\t/* Fix truncated shadows due to rendering order. */\n\t\t\tposition: relative;\n\t\t\tz-index: 2;\n\n\t\t\t@mixin ck-focus-ring;\n\t\t\t@mixin ck-box-shadow var(--ck-focus-outer-shadow);\n\t\t}\n\t}\n}\n',"/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/**\n * Implements rounded corner interface for .ck-rounded-corners class.\n *\n * @see $ck-border-radius\n */\n@define-mixin ck-rounded-corners {\n\tborder-radius: 0;\n\n\t.ck-rounded-corners &,\n\t&.ck-rounded-corners {\n\t\tborder-radius: var(--ck-border-radius);\n\t\t@mixin-content;\n\t}\n}\n","/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/**\n * A helper to combine multiple shadows.\n */\n@define-mixin ck-box-shadow $shadowA, $shadowB: 0 0 {\n\tbox-shadow: $shadowA, $shadowB;\n}\n\n/**\n * Gives an element a drop shadow so it looks like a floating panel.\n */\n@define-mixin ck-drop-shadow {\n\t@mixin ck-box-shadow var(--ck-drop-shadow);\n}\n","/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/**\n * A visual style of focused element's border.\n */\n@define-mixin ck-focus-ring {\n\t/* Disable native outline. */\n\toutline: none;\n\tborder: var(--ck-focus-ring)\n}\n"],sourceRoot:""}]);const a=s},5067:(e,t,o)=>{"use strict";o.d(t,{A:()=>a});var n=o(1354),i=o.n(n),r=o(6314),s=o.n(r)()(i());s.push([e.id,".ck.ck-dropdown-menu-list__nested-menu__button>.ck-dropdown-menu-list__nested-menu__button__arrow{pointer-events:none;z-index:var(--ck-z-default)}.ck.ck-button.ck-dropdown-menu-list__nested-menu__button{border-radius:0;padding:var(--ck-spacing-tiny) calc(var(--ck-spacing-standard)*2);width:100%}.ck.ck-button.ck-dropdown-menu-list__nested-menu__button:focus{border-color:transparent;box-shadow:none}.ck.ck-button.ck-dropdown-menu-list__nested-menu__button:focus:not(.ck-on){background:var(--ck-color-button-default-hover-background)}.ck.ck-button.ck-dropdown-menu-list__nested-menu__button>.ck-button__label{flex-grow:1;overflow:hidden;text-overflow:ellipsis}.ck.ck-button.ck-dropdown-menu-list__nested-menu__button.ck-disabled>.ck-button__label{opacity:var(--ck-disabled-opacity)}.ck.ck-button.ck-dropdown-menu-list__nested-menu__button.ck-icon-spacing:not(:has(.ck-button__icon))>.ck-button__label{margin-left:calc(var(--ck-icon-size) - var(--ck-spacing-small))}.ck.ck-button.ck-dropdown-menu-list__nested-menu__button>.ck-dropdown-menu-list__nested-menu__button__arrow{width:var(--ck-dropdown-arrow-size)}[dir=ltr] .ck.ck-button.ck-dropdown-menu-list__nested-menu__button>.ck-dropdown-menu-list__nested-menu__button__arrow{margin-right:calc(var(--ck-spacing-small)*-1);transform:rotate(-90deg)}[dir=rtl] .ck.ck-button.ck-dropdown-menu-list__nested-menu__button>.ck-dropdown-menu-list__nested-menu__button__arrow{margin-left:calc(var(--ck-spacing-small)*-1);transform:rotate(90deg)}.ck.ck-button.ck-dropdown-menu-list__nested-menu__button.ck-disabled>.ck-dropdown-menu-list__nested-menu__button__arrow{opacity:var(--ck-disabled-opacity)}[dir=ltr] .ck.ck-button.ck-dropdown-menu-list__nested-menu__button:not(.ck-button_with-text){padding-left:var(--ck-spacing-small)}[dir=ltr] .ck.ck-button.ck-dropdown-menu-list__nested-menu__button>.ck-dropdown-menu-list__nested-menu__button__arrow{margin-left:var(--ck-spacing-standard);right:var(--ck-spacing-standard)}[dir=rtl] .ck.ck-button.ck-dropdown-menu-list__nested-menu__button:not(.ck-button_with-text){padding-right:var(--ck-spacing-small)}[dir=rtl] .ck.ck-button.ck-dropdown-menu-list__nested-menu__button>.ck-dropdown-menu-list__nested-menu__button__arrow{left:var(--ck-spacing-standard);margin-right:var(--ck-spacing-small)}","",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/components/dropdown/menu/dropdownmenubutton.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-ui/components/dropdown/menu/dropdownmenubutton.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/mixins/_disabled.css","webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/mixins/_dir.css"],names:[],mappings:"AAKA,kGACC,mBAAoB,CACpB,2BACD,CCIA,yDAGC,eAAgB,CADhB,iEAAoE,CADpE,UA2ED,CAvEC,+DACC,wBAAyB,CACzB,eAKD,CAHC,2EACC,0DACD,CAGD,2EACC,WAAY,CACZ,eAAgB,CAChB,sBACD,CAEA,uFCvBA,kCDyBA,CAGA,uHACC,+DACD,CAEA,4GACC,mCAeD,CEnDA,sHF0CE,6CAAgD,CAHhD,wBErCF,CAFA,sHFiDE,4CAA+C,CAH/C,uBE5CF,CFmDA,wHClDA,kCDoDA,CAGC,6FACC,oCACD,CAEA,sHAIC,sCAAuC,CAHvC,gCAID,CAIA,6FACC,qCACD,CAEA,sHACC,+BAAgC,CAGhC,oCACD",sourcesContent:["/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n.ck.ck-dropdown-menu-list__nested-menu__button > .ck-dropdown-menu-list__nested-menu__button__arrow {\n\tpointer-events: none;\n\tz-index: var(--ck-z-default);\n}\n",'/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n@import "../../../../mixins/_disabled.css";\n@import "../../../mixins/_button.css";\n@import "@ckeditor/ckeditor5-ui/theme/mixins/_dir.css";\n\n/*\n * All menu buttons.\n */\n.ck.ck-button.ck-dropdown-menu-list__nested-menu__button {\n\twidth: 100%;\n\tpadding: var(--ck-spacing-tiny) calc(2 * var(--ck-spacing-standard));\n\tborder-radius: 0;\n\n\t&:focus {\n\t\tborder-color: transparent;\n\t\tbox-shadow: none;\n\n\t\t&:not(.ck-on) {\n\t\t\tbackground: var(--ck-color-button-default-hover-background);\n\t\t}\n\t}\n\n\t& > .ck-button__label {\n\t\tflex-grow: 1;\n\t\toverflow: hidden;\n\t\ttext-overflow: ellipsis;\n\t}\n\n\t&.ck-disabled > .ck-button__label {\n\t\t@mixin ck-disabled;\n\t}\n\n\t/* Spacing in buttons that miss the icon. */\n\t&.ck-icon-spacing:not(:has(.ck-button__icon)) > .ck-button__label {\n\t\tmargin-left: calc(var(--ck-icon-size) - var(--ck-spacing-small));\n\t}\n\n\t& > .ck-dropdown-menu-list__nested-menu__button__arrow {\n\t\twidth: var(--ck-dropdown-arrow-size);\n\n\t\t@mixin ck-dir ltr {\n\t\t\ttransform: rotate(-90deg);\n\n\t\t\t/* Nudge the arrow gently to the right because its center of gravity is to the left */\n\t\t\tmargin-right: calc(-1 * var(--ck-spacing-small));\n\t\t}\n\n\t\t@mixin ck-dir rtl {\n\t\t\ttransform: rotate(90deg);\n\n\t\t\t/* Nudge the arrow gently to the left because its center of gravity is to the right (after rotation). */\n\t\t\tmargin-left: calc(-1 * var(--ck-spacing-small));\n\t\t}\n\t}\n\n\t&.ck-disabled > .ck-dropdown-menu-list__nested-menu__button__arrow {\n\t\t@mixin ck-disabled;\n\t}\n\n\t@mixin ck-dir ltr {\n\t\t&:not(.ck-button_with-text) {\n\t\t\tpadding-left: var(--ck-spacing-small);\n\t\t}\n\n\t\t& > .ck-dropdown-menu-list__nested-menu__button__arrow {\n\t\t\tright: var(--ck-spacing-standard);\n\n\t\t\t/* A space to accommodate the triangle. */\n\t\t\tmargin-left: var(--ck-spacing-standard);\n\t\t}\n\t}\n\n\t@mixin ck-dir rtl {\n\t\t&:not(.ck-button_with-text) {\n\t\t\tpadding-right: var(--ck-spacing-small);\n\t\t}\n\n\t\t& > .ck-dropdown-menu-list__nested-menu__button__arrow {\n\t\t\tleft: var(--ck-spacing-standard);\n\n\t\t\t/* A space to accommodate the triangle. */\n\t\t\tmargin-right: var(--ck-spacing-small);\n\t\t}\n\t}\n}\n',"/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/**\n * A class which indicates that an element holding it is disabled.\n */\n@define-mixin ck-disabled {\n\topacity: var(--ck-disabled-opacity);\n}\n",'/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n@define-mixin ck-dir $direction {\n\t[dir="$(direction)"] & {\n\t\t@mixin-content;\n\t}\n}\n'],sourceRoot:""}]);const a=s},5072:e=>{"use strict";var t=[];function o(e){for(var o=-1,n=0;n{"use strict";o.d(t,{A:()=>a});var n=o(1354),i=o.n(n),r=o(6314),s=o.n(r)()(i());s.push([e.id,".ck.ck-menu-bar__menu .ck-button.ck-menu-bar__menu__item__button{border-radius:0}.ck.ck-menu-bar__menu .ck-button.ck-menu-bar__menu__item__button>.ck-spinner-container,.ck.ck-menu-bar__menu .ck-button.ck-menu-bar__menu__item__button>.ck-spinner-container .ck-spinner{--ck-toolbar-spinner-size:20px}.ck.ck-menu-bar__menu .ck-button.ck-menu-bar__menu__item__button>.ck-spinner-container{font-size:var(--ck-icon-font-size)}[dir=ltr] .ck.ck-menu-bar__menu .ck-button.ck-menu-bar__menu__item__button>.ck-spinner-container{margin-right:var(--ck-spacing-medium)}[dir=rtl] .ck.ck-menu-bar__menu .ck-button.ck-menu-bar__menu__item__button>.ck-spinner-container{margin-left:var(--ck-spacing-medium)}","",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-ui/components/menubar/menubarmenulistitembutton.css","webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/mixins/_dir.css"],names:[],mappings:"AAWC,iEACC,eAoBD,CAlBC,0LAGC,8BACD,CAEA,uFAEC,kCASD,CCzBD,iGDmBG,qCCjBH,CAFA,iGDuBG,oCCrBH",sourcesContent:['/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n@import "@ckeditor/ckeditor5-ui/theme/mixins/_dir.css";\n\n.ck.ck-menu-bar__menu {\n\t/*\n\t * List item buttons.\n\t */\n\t& .ck-button.ck-menu-bar__menu__item__button {\n\t\tborder-radius: 0;\n\n\t\t& > .ck-spinner-container,\n\t\t& > .ck-spinner-container .ck-spinner {\n\t\t\t/* These styles correspond to .ck-icon so that the spinner seamlessly replaces the icon. */\n\t\t\t--ck-toolbar-spinner-size: 20px;\n\t\t}\n\n\t\t& > .ck-spinner-container {\n\t\t\t/* This ensures margins corresponding to the .ck-icon. */\n\t\t\tfont-size: var(--ck-icon-font-size);\n\n\t\t\t@mixin ck-dir ltr {\n\t\t\t\tmargin-right: var(--ck-spacing-medium);\n\t\t\t}\n\n\t\t\t@mixin ck-dir rtl {\n\t\t\t\tmargin-left: var(--ck-spacing-medium);\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n','/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n@define-mixin ck-dir $direction {\n\t[dir="$(direction)"] & {\n\t\t@mixin-content;\n\t}\n}\n'],sourceRoot:""}]);const a=s},5079:(e,t,o)=>{"use strict";o.d(t,{A:()=>a});var n=o(1354),i=o.n(n),r=o(6314),s=o.n(r)()(i());s.push([e.id,'.ck-content .page-break{align-items:center;clear:both;display:flex;justify-content:center;padding:5px 0;position:relative}.ck-content .page-break:after{border-bottom:2px dashed #c4c4c4;content:"";position:absolute;width:100%}.ck-content .page-break__label{background:#fff;border:1px solid #c4c4c4;border-radius:2px;box-shadow:2px 2px 1px rgba(0,0,0,.15);color:#333;display:block;font-family:Helvetica,Arial,Tahoma,Verdana,Sans-Serif;font-size:.75em;font-weight:700;padding:.3em .6em;position:relative;text-transform:uppercase;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;z-index:1}@media print{.ck-content .page-break{padding:0}.ck-content .page-break:after{display:none}.ck-content :has(+.page-break){margin-bottom:0}}',"",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-page-break/theme/pagebreak.css"],names:[],mappings:"AAKA,wBAKC,kBAAmB,CAHnB,UAAW,CAEX,YAAa,CAEb,sBAAuB,CAHvB,aAAc,CAFd,iBAaD,CANC,8BAGC,gCAAyC,CAFzC,UAAW,CACX,iBAAkB,CAElB,UACD,CAGD,+BAYC,eAA4B,CAN5B,wBAAiC,CACjC,iBAAkB,CAMlB,sCAA6C,CAF7C,UAAsB,CAPtB,aAAc,CAId,qDAA0D,CAC1D,eAAiB,CACjB,eAAiB,CAPjB,iBAAkB,CAFlB,iBAAkB,CAIlB,wBAAyB,CAWzB,wBAAyB,CACzB,qBAAsB,CACtB,oBAAqB,CACrB,gBAAiB,CAjBjB,SAkBD,CAGA,aACC,wBACC,SAKD,CAHC,8BACC,YACD,CASD,+BACC,eACD,CACD",sourcesContent:["/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n.ck-content .page-break {\n\tposition: relative;\n\tclear: both;\n\tpadding: 5px 0;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\n\t&::after {\n\t\tcontent: '';\n\t\tposition: absolute;\n\t\tborder-bottom: 2px dashed hsl(0, 0%, 77%);\n\t\twidth: 100%;\n\t}\n}\n\n.ck-content .page-break__label {\n\tposition: relative;\n\tz-index: 1;\n\tpadding: .3em .6em;\n\tdisplay: block;\n\ttext-transform: uppercase;\n\tborder: 1px solid hsl(0, 0%, 77%);\n\tborder-radius: 2px;\n\tfont-family: Helvetica, Arial, Tahoma, Verdana, Sans-Serif;\n\tfont-size: 0.75em;\n\tfont-weight: bold;\n\tcolor: hsl(0, 0%, 20%);\n\tbackground: hsl(0, 0%, 100%);\n\tbox-shadow: 2px 2px 1px hsla(0, 0%, 0%, 0.15);\n\n\t/* Disable the possibility to select the label text by the user. */\n\t-webkit-user-select: none;\n\t-moz-user-select: none;\n\t-ms-user-select: none;\n\tuser-select: none;\n}\n\n/* Do not show the page break element inside the print preview window. */\n@media print {\n\t.ck-content .page-break {\n\t\tpadding: 0;\n\n\t\t&::after {\n\t\t\tdisplay: none;\n\t\t}\n\t}\n\n\t/*\n\t * From time to time placing page-break directly after a block element with margin causes appending a new blank page in pagination mode.\n\t * Removing margin-bottom from the block element fixes that issue and the margin is not being moved to the next blank page.\n\t *\n\t * Keep this in sync with the pagination plugins.\n\t */\n\t.ck-content *:has(+ .page-break) {\n\t\tmargin-bottom: 0;\n\t}\n}\n"],sourceRoot:""}]);const a=s},5484:(e,t,o)=>{"use strict";o.d(t,{A:()=>a});var n=o(1354),i=o.n(n),r=o(6314),s=o.n(r)()(i());s.push([e.id,':root{--ck-todo-list-checkmark-size:16px}.ck-content .todo-list{list-style:none}.ck-content .todo-list li{margin-bottom:5px;position:relative}.ck-content .todo-list li .todo-list{margin-top:5px}.ck-content .todo-list .todo-list__label>input{-webkit-appearance:none;border:0;display:inline-block;height:var(--ck-todo-list-checkmark-size);left:-25px;margin-left:0;margin-right:-15px;position:relative;right:0;vertical-align:middle;width:var(--ck-todo-list-checkmark-size)}.ck-content[dir=rtl] .todo-list .todo-list__label>input{left:0;margin-left:-15px;margin-right:0;right:-25px}.ck-content .todo-list .todo-list__label>input:before{border:1px solid #333;border-radius:2px;box-sizing:border-box;content:"";display:block;height:100%;position:absolute;transition:box-shadow .25s ease-in-out;width:100%}@media (prefers-reduced-motion:reduce){.ck-content .todo-list .todo-list__label>input:before{transition:none}}.ck-content .todo-list .todo-list__label>input:after{border-color:transparent;border-style:solid;border-width:0 calc(var(--ck-todo-list-checkmark-size)/8) calc(var(--ck-todo-list-checkmark-size)/8) 0;box-sizing:content-box;content:"";display:block;height:calc(var(--ck-todo-list-checkmark-size)/2.6);left:calc(var(--ck-todo-list-checkmark-size)/3);pointer-events:none;position:absolute;top:calc(var(--ck-todo-list-checkmark-size)/5.3);transform:rotate(45deg);width:calc(var(--ck-todo-list-checkmark-size)/5.3)}.ck-content .todo-list .todo-list__label>input[checked]:before{background:#26ab33;border-color:#26ab33}.ck-content .todo-list .todo-list__label>input[checked]:after{border-color:#fff}.ck-content .todo-list .todo-list__label .todo-list__label__description{vertical-align:middle}.ck-content .todo-list .todo-list__label.todo-list__label_without-description input[type=checkbox]{position:absolute}.ck-editor__editable.ck-content .todo-list .todo-list__label>input,.ck-editor__editable.ck-content .todo-list .todo-list__label>span[contenteditable=false]>input{cursor:pointer}.ck-editor__editable.ck-content .todo-list .todo-list__label>input:hover:before,.ck-editor__editable.ck-content .todo-list .todo-list__label>span[contenteditable=false]>input:hover:before{box-shadow:0 0 0 5px rgba(0,0,0,.1)}.ck-editor__editable.ck-content .todo-list .todo-list__label>span[contenteditable=false]>input{-webkit-appearance:none;border:0;display:inline-block;height:var(--ck-todo-list-checkmark-size);left:-25px;margin-left:0;margin-right:-15px;position:relative;right:0;vertical-align:middle;width:var(--ck-todo-list-checkmark-size)}.ck-editor__editable.ck-content[dir=rtl] .todo-list .todo-list__label>span[contenteditable=false]>input{left:0;margin-left:-15px;margin-right:0;right:-25px}.ck-editor__editable.ck-content .todo-list .todo-list__label>span[contenteditable=false]>input:before{border:1px solid #333;border-radius:2px;box-sizing:border-box;content:"";display:block;height:100%;position:absolute;transition:box-shadow .25s ease-in-out;width:100%}@media (prefers-reduced-motion:reduce){.ck-editor__editable.ck-content .todo-list .todo-list__label>span[contenteditable=false]>input:before{transition:none}}.ck-editor__editable.ck-content .todo-list .todo-list__label>span[contenteditable=false]>input:after{border-color:transparent;border-style:solid;border-width:0 calc(var(--ck-todo-list-checkmark-size)/8) calc(var(--ck-todo-list-checkmark-size)/8) 0;box-sizing:content-box;content:"";display:block;height:calc(var(--ck-todo-list-checkmark-size)/2.6);left:calc(var(--ck-todo-list-checkmark-size)/3);pointer-events:none;position:absolute;top:calc(var(--ck-todo-list-checkmark-size)/5.3);transform:rotate(45deg);width:calc(var(--ck-todo-list-checkmark-size)/5.3)}.ck-editor__editable.ck-content .todo-list .todo-list__label>span[contenteditable=false]>input[checked]:before{background:#26ab33;border-color:#26ab33}.ck-editor__editable.ck-content .todo-list .todo-list__label>span[contenteditable=false]>input[checked]:after{border-color:#fff}.ck-editor__editable.ck-content .todo-list .todo-list__label.todo-list__label_without-description input[type=checkbox]{position:absolute}',"",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-list/theme/todolist.css"],names:[],mappings:"AAKA,MACC,kCACD,CA4EA,uBACC,eAwBD,CAtBC,0BAEC,iBAAkB,CADlB,iBAMD,CAHC,qCACC,cACD,CAIA,+CAtFD,uBAAwB,CAQxB,QAAS,CAPT,oBAAqB,CAGrB,yCAA0C,CAO1C,UAAW,CAGX,aAAc,CAFd,kBAAmB,CAVnB,iBAAkB,CAWlB,OAAQ,CARR,qBAAsB,CAFtB,wCAqFC,CAvED,wDACC,MAAO,CAGP,iBAAkB,CAFlB,cAAe,CACf,WAED,CAEA,sDAOC,qBAAiC,CACjC,iBAAkB,CALlB,qBAAsB,CACtB,UAAW,CAHX,aAAc,CAKd,WAAY,CAJZ,iBAAkB,CAOlB,sCAAwC,CAJxC,UASD,CAHC,uCAXD,sDAYE,eAEF,CADC,CAGD,qDAaC,wBAAyB,CADzB,kBAAmB,CAEnB,sGAA+G,CAX/G,sBAAuB,CAEvB,UAAW,CAJX,aAAc,CAUd,mDAAwD,CAHxD,+CAAoD,CAJpD,mBAAoB,CAFpB,iBAAkB,CAOlB,gDAAqD,CAMrD,uBAAwB,CALxB,kDAMD,CAGC,+DACC,kBAA8B,CAC9B,oBACD,CAEA,8DACC,iBACD,CAwBA,wEACC,qBACD,CAEA,mGACC,iBACD,CAYD,kKAEC,cAKD,CAHC,4LACC,mCACD,CAMD,+FAxHA,uBAAwB,CAQxB,QAAS,CAPT,oBAAqB,CAGrB,yCAA0C,CAO1C,UAAW,CAGX,aAAc,CAFd,kBAAmB,CAVnB,iBAAkB,CAWlB,OAAQ,CARR,qBAAsB,CAFtB,wCAuHA,CAzGA,wGACC,MAAO,CAGP,iBAAkB,CAFlB,cAAe,CACf,WAED,CAEA,sGAOC,qBAAiC,CACjC,iBAAkB,CALlB,qBAAsB,CACtB,UAAW,CAHX,aAAc,CAKd,WAAY,CAJZ,iBAAkB,CAOlB,sCAAwC,CAJxC,UASD,CAHC,uCAXD,sGAYE,eAEF,CADC,CAGD,qGAaC,wBAAyB,CADzB,kBAAmB,CAEnB,sGAA+G,CAX/G,sBAAuB,CAEvB,UAAW,CAJX,aAAc,CAUd,mDAAwD,CAHxD,+CAAoD,CAJpD,mBAAoB,CAFpB,iBAAkB,CAOlB,gDAAqD,CAMrD,uBAAwB,CALxB,kDAMD,CAGC,+GACC,kBAA8B,CAC9B,oBACD,CAEA,8GACC,iBACD,CA2DA,uHACC,iBACD",sourcesContent:["/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n:root {\n\t--ck-todo-list-checkmark-size: 16px;\n}\n\n@define-mixin todo-list-checkbox {\n\t-webkit-appearance: none;\n\tdisplay: inline-block;\n\tposition: relative;\n\twidth: var(--ck-todo-list-checkmark-size);\n\theight: var(--ck-todo-list-checkmark-size);\n\tvertical-align: middle;\n\n\t/* Needed on iOS */\n\tborder: 0;\n\n\t/* LTR styles */\n\tleft: -25px;\n\tmargin-right: -15px;\n\tright: 0;\n\tmargin-left: 0;\n\n\t/* RTL styles */\n\t[dir=rtl]& {\n\t\tleft: 0;\n\t\tmargin-right: 0;\n\t\tright: -25px;\n\t\tmargin-left: -15px;\n\t}\n\n\t&::before {\n\t\tdisplay: block;\n\t\tposition: absolute;\n\t\tbox-sizing: border-box;\n\t\tcontent: '';\n\t\twidth: 100%;\n\t\theight: 100%;\n\t\tborder: 1px solid hsl(0, 0%, 20%);\n\t\tborder-radius: 2px;\n\t\ttransition: 250ms ease-in-out box-shadow;\n\n\t\t@media (prefers-reduced-motion: reduce) {\n\t\t\ttransition: none;\n\t\t}\n\t}\n\n\t&::after {\n\t\tdisplay: block;\n\t\tposition: absolute;\n\t\tbox-sizing: content-box;\n\t\tpointer-events: none;\n\t\tcontent: '';\n\n\t\t/* Calculate tick position, size and border-width proportional to the checkmark size. */\n\t\tleft: calc( var(--ck-todo-list-checkmark-size) / 3 );\n\t\ttop: calc( var(--ck-todo-list-checkmark-size) / 5.3 );\n\t\twidth: calc( var(--ck-todo-list-checkmark-size) / 5.3 );\n\t\theight: calc( var(--ck-todo-list-checkmark-size) / 2.6 );\n\t\tborder-style: solid;\n\t\tborder-color: transparent;\n\t\tborder-width: 0 calc( var(--ck-todo-list-checkmark-size) / 8 ) calc( var(--ck-todo-list-checkmark-size) / 8 ) 0;\n\t\ttransform: rotate(45deg);\n\t}\n\n\t&[checked] {\n\t\t&::before {\n\t\t\tbackground: hsl(126, 64%, 41%);\n\t\t\tborder-color: hsl(126, 64%, 41%);\n\t\t}\n\n\t\t&::after {\n\t\t\tborder-color: hsl(0, 0%, 100%);\n\t\t}\n\t}\n}\n\n/*\n * To-do list content styles.\n */\n.ck-content .todo-list {\n\tlist-style: none;\n\n\t& li {\n\t\tposition: relative;\n\t\tmargin-bottom: 5px;\n\n\t\t& .todo-list {\n\t\t\tmargin-top: 5px;\n\t\t}\n\t}\n\n\t& .todo-list__label {\n\t\t& > input {\n\t\t\t@mixin todo-list-checkbox;\n\t\t}\n\n\t\t& .todo-list__label__description {\n\t\t\tvertical-align: middle;\n\t\t}\n\n\t\t&.todo-list__label_without-description input[type=checkbox] {\n\t\t\tposition: absolute;\n\t\t}\n\t}\n}\n\n/*\n * To-do list editing view styles.\n */\n.ck-editor__editable.ck-content .todo-list .todo-list__label {\n\t/*\n\t * To-do list should be interactive only during the editing\n\t * (https://github.com/ckeditor/ckeditor5/issues/2090).\n\t */\n\t& > input,\n\t& > span[contenteditable=false] > input {\n\t\tcursor: pointer;\n\n\t\t&:hover::before {\n\t\t\tbox-shadow: 0 0 0 5px hsla(0, 0%, 0%, 0.1);\n\t\t}\n\t}\n\n\t/*\n\t * Document Lists - editing view has an additional span around checkbox.\n\t */\n\t& > span[contenteditable=false] > input {\n\t\t@mixin todo-list-checkbox;\n\t}\n\n\t&.todo-list__label_without-description {\n\t\t& input[type=checkbox] {\n\t\t\tposition: absolute;\n\t\t}\n\t}\n}\n"],sourceRoot:""}]);const a=s},5540:(e,t,o)=>{"use strict";o.d(t,{A:()=>a});var n=o(1354),i=o.n(n),r=o(6314),s=o.n(r)()(i());s.push([e.id,".ck.ck-search>.ck-labeled-field-view>.ck-labeled-field-view__input-wrapper>.ck-icon{position:absolute;top:50%;transform:translateY(-50%)}[dir=ltr] .ck.ck-search>.ck-labeled-field-view>.ck-labeled-field-view__input-wrapper>.ck-icon{left:var(--ck-spacing-medium)}[dir=rtl] .ck.ck-search>.ck-labeled-field-view>.ck-labeled-field-view__input-wrapper>.ck-icon{right:var(--ck-spacing-medium)}.ck.ck-search>.ck-labeled-field-view .ck-search__reset{position:absolute;top:50%;transform:translateY(-50%)}.ck.ck-search>.ck-search__results>.ck-search__info>span:first-child{display:block}.ck.ck-search>.ck-search__results>.ck-search__info:not(.ck-hidden)~*{display:none}:root{--ck-search-field-view-horizontal-spacing:calc(var(--ck-icon-size) + var(--ck-spacing-medium))}.ck.ck-search>.ck-labeled-field-view .ck-input{width:100%}.ck.ck-search>.ck-labeled-field-view.ck-search__query_with-icon{--ck-labeled-field-label-default-position-x:var(--ck-search-field-view-horizontal-spacing)}.ck.ck-search>.ck-labeled-field-view.ck-search__query_with-icon>.ck-labeled-field-view__input-wrapper>.ck-icon{opacity:.5;pointer-events:none}.ck.ck-search>.ck-labeled-field-view.ck-search__query_with-icon .ck-input{width:100%}[dir=ltr] .ck.ck-search>.ck-labeled-field-view.ck-search__query_with-icon .ck-input,[dir=rtl] .ck.ck-search>.ck-labeled-field-view.ck-search__query_with-icon .ck-input:not(.ck-input-text_empty){padding-left:var(--ck-search-field-view-horizontal-spacing)}.ck.ck-search>.ck-labeled-field-view.ck-search__query_with-reset{--ck-labeled-field-empty-unfocused-max-width:100% - 2 * var(--ck-search-field-view-horizontal-spacing)}.ck.ck-search>.ck-labeled-field-view.ck-search__query_with-reset.ck-labeled-field-view_empty{--ck-labeled-field-empty-unfocused-max-width:100% - var(--ck-search-field-view-horizontal-spacing) - var(--ck-spacing-medium)}.ck.ck-search>.ck-labeled-field-view.ck-search__query_with-reset .ck-search__reset{background:none;min-height:auto;min-width:auto;opacity:.5;padding:0}[dir=ltr] .ck.ck-search>.ck-labeled-field-view.ck-search__query_with-reset .ck-search__reset{right:var(--ck-spacing-medium)}[dir=rtl] .ck.ck-search>.ck-labeled-field-view.ck-search__query_with-reset .ck-search__reset{left:var(--ck-spacing-medium)}.ck.ck-search>.ck-labeled-field-view.ck-search__query_with-reset .ck-search__reset:hover{opacity:1}.ck.ck-search>.ck-labeled-field-view.ck-search__query_with-reset .ck-input{width:100%}[dir=ltr] .ck.ck-search>.ck-labeled-field-view.ck-search__query_with-reset .ck-input:not(.ck-input-text_empty),[dir=rtl] .ck.ck-search>.ck-labeled-field-view.ck-search__query_with-reset .ck-input{padding-right:var(--ck-search-field-view-horizontal-spacing)}.ck.ck-search>.ck-search__results{min-width:100%}.ck.ck-search>.ck-search__results>.ck-search__info{padding:var(--ck-spacing-medium) var(--ck-spacing-large);width:100%}.ck.ck-search>.ck-search__results>.ck-search__info *{white-space:normal}.ck.ck-search>.ck-search__results>.ck-search__info>span:first-child{font-weight:700}.ck.ck-search>.ck-search__results>.ck-search__info>span:last-child{margin-top:var(--ck-spacing-medium)}","",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/components/search/search.css","webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/mixins/_dir.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-ui/components/search/search.css"],names:[],mappings:"AASE,oFACC,iBAAkB,CAClB,OAAQ,CACR,0BASD,CCfD,8FDSG,6BCPH,CAFA,8FDaG,8BCXH,CDeC,uDACC,iBAAkB,CAClB,OAAQ,CACR,0BACD,CAKC,oEACC,aACD,CAGA,qEACC,YACD,CEhCH,MACC,8FACD,CAIE,+CACC,UACD,CAEA,gEACC,0FAoBD,CAlBC,+GACC,UAAW,CACX,mBACD,CAEA,0EACC,UAWD,CAJE,kMACC,2DACD,CAKH,iEACC,sGAwCD,CAtCC,6FACC,6HACD,CAEA,mFAIC,eAAgB,CAFhB,eAAgB,CADhB,cAAe,CAIf,UAAW,CACX,SAaD,CD5DF,6FCkDI,8BDhDJ,CAFA,6FCsDI,6BDpDJ,CCuDG,yFACC,SACD,CAGD,2EACC,UAWD,CD1EF,oMCwEI,4DDtEJ,CC4EA,kCACC,cAkBD,CAhBC,mDAEC,wDAAyD,CADzD,UAcD,CAXC,qDACC,kBACD,CAEA,oEACC,eACD,CAEA,mEACC,mCACD",sourcesContent:['/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n@import "@ckeditor/ckeditor5-ui/theme/mixins/_dir.css";\n\n.ck.ck-search {\n\t& > .ck-labeled-field-view {\n\t\t& > .ck-labeled-field-view__input-wrapper > .ck-icon {\n\t\t\tposition: absolute;\n\t\t\ttop: 50%;\n\t\t\ttransform: translateY(-50%);\n\n\t\t\t@mixin ck-dir ltr {\n\t\t\t\tleft: var(--ck-spacing-medium);\n\t\t\t}\n\n\t\t\t@mixin ck-dir rtl {\n\t\t\t\tright: var(--ck-spacing-medium);\n\t\t\t}\n\t\t}\n\n\t\t& .ck-search__reset {\n\t\t\tposition: absolute;\n\t\t\ttop: 50%;\n\t\t\ttransform: translateY(-50%);\n\t\t}\n\t}\n\n\t& > .ck-search__results {\n\t\t& > .ck-search__info {\n\t\t\t& > span:first-child {\n\t\t\t\tdisplay: block;\n\t\t\t}\n\n\t\t\t/* Hide the filtered view when nothing was found */\n\t\t\t&:not(.ck-hidden) ~ * {\n\t\t\t\tdisplay: none;\n\t\t\t}\n\t\t}\n\t}\n}\n','/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n@define-mixin ck-dir $direction {\n\t[dir="$(direction)"] & {\n\t\t@mixin-content;\n\t}\n}\n','/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n@import "@ckeditor/ckeditor5-ui/theme/mixins/_dir.css";\n\n:root {\n\t--ck-search-field-view-horizontal-spacing: calc(var(--ck-icon-size) + var(--ck-spacing-medium));\n}\n\n.ck.ck-search {\n\t& > .ck-labeled-field-view {\n\t\t& .ck-input {\n\t\t\twidth: 100%;\n\t\t}\n\n\t\t&.ck-search__query_with-icon {\n\t\t\t--ck-labeled-field-label-default-position-x: var(--ck-search-field-view-horizontal-spacing);\n\n\t\t\t& > .ck-labeled-field-view__input-wrapper > .ck-icon {\n\t\t\t\topacity: .5;\n\t\t\t\tpointer-events: none;\n\t\t\t}\n\n\t\t\t& .ck-input {\n\t\t\t\twidth: 100%;\n\n\t\t\t\t@mixin ck-dir ltr {\n\t\t\t\t\tpadding-left: var(--ck-search-field-view-horizontal-spacing);\n\t\t\t\t}\n\n\t\t\t\t@mixin ck-dir rtl {\n\t\t\t\t\t&:not(.ck-input-text_empty) {\n\t\t\t\t\t\tpadding-left: var(--ck-search-field-view-horizontal-spacing);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t&.ck-search__query_with-reset {\n\t\t\t--ck-labeled-field-empty-unfocused-max-width: 100% - 2 * var(--ck-search-field-view-horizontal-spacing);\n\n\t\t\t&.ck-labeled-field-view_empty {\n\t\t\t\t--ck-labeled-field-empty-unfocused-max-width: 100% - var(--ck-search-field-view-horizontal-spacing) - var(--ck-spacing-medium);\n\t\t\t}\n\n\t\t\t& .ck-search__reset {\n\t\t\t\tmin-width: auto;\n\t\t\t\tmin-height: auto;\n\n\t\t\t\tbackground: none;\n\t\t\t\topacity: .5;\n\t\t\t\tpadding: 0;\n\n\t\t\t\t@mixin ck-dir ltr {\n\t\t\t\t\tright: var(--ck-spacing-medium);\n\t\t\t\t}\n\n\t\t\t\t@mixin ck-dir rtl {\n\t\t\t\t\tleft: var(--ck-spacing-medium);\n\t\t\t\t}\n\n\t\t\t\t&:hover {\n\t\t\t\t\topacity: 1;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t& .ck-input {\n\t\t\t\twidth: 100%;\n\n\t\t\t\t@mixin ck-dir ltr {\n\t\t\t\t\t&:not(.ck-input-text_empty) {\n\t\t\t\t\t\tpadding-right: var(--ck-search-field-view-horizontal-spacing);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t@mixin ck-dir rtl {\n\t\t\t\t\tpadding-right: var(--ck-search-field-view-horizontal-spacing);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t& > .ck-search__results {\n\t\tmin-width: 100%;\n\n\t\t& > .ck-search__info {\n\t\t\twidth: 100%;\n\t\t\tpadding: var(--ck-spacing-medium) var(--ck-spacing-large);\n\n\t\t\t& * {\n\t\t\t\twhite-space: normal;\n\t\t\t}\n\n\t\t\t& > span:first-child {\n\t\t\t\tfont-weight: bold;\n\t\t\t}\n\n\t\t\t& > span:last-child {\n\t\t\t\tmargin-top: var(--ck-spacing-medium);\n\t\t\t}\n\t\t}\n\t}\n}\n\n'],sourceRoot:""}]);const a=s},5615:(e,t,o)=>{"use strict";o.d(t,{A:()=>a});var n=o(1354),i=o.n(n),r=o(6314),s=o.n(r)()(i());s.push([e.id,':root{--ck-balloon-panel-arrow-z-index:calc(var(--ck-z-default) - 3)}.ck.ck-balloon-panel{display:none;position:absolute;z-index:var(--ck-z-panel)}.ck.ck-balloon-panel.ck-balloon-panel_with-arrow:after,.ck.ck-balloon-panel.ck-balloon-panel_with-arrow:before{content:"";position:absolute}.ck.ck-balloon-panel.ck-balloon-panel_with-arrow:before{z-index:var(--ck-balloon-panel-arrow-z-index)}.ck.ck-balloon-panel.ck-balloon-panel_with-arrow:after{z-index:calc(var(--ck-balloon-panel-arrow-z-index) + 1)}.ck.ck-balloon-panel[class*=arrow_n]:before{z-index:var(--ck-balloon-panel-arrow-z-index)}.ck.ck-balloon-panel[class*=arrow_n]:after{z-index:calc(var(--ck-balloon-panel-arrow-z-index) + 1)}.ck.ck-balloon-panel[class*=arrow_s]:before{z-index:var(--ck-balloon-panel-arrow-z-index)}.ck.ck-balloon-panel[class*=arrow_s]:after{z-index:calc(var(--ck-balloon-panel-arrow-z-index) + 1)}.ck.ck-balloon-panel.ck-balloon-panel_visible{display:block}:root{--ck-balloon-border-width:1px;--ck-balloon-arrow-offset:2px;--ck-balloon-arrow-height:10px;--ck-balloon-arrow-half-width:8px;--ck-balloon-arrow-drop-shadow:0 2px 2px var(--ck-color-shadow-drop)}.ck.ck-balloon-panel{background:var(--ck-color-panel-background);border:var(--ck-balloon-border-width) solid var(--ck-color-panel-border);border-radius:0;min-height:15px}.ck-rounded-corners .ck.ck-balloon-panel,.ck.ck-balloon-panel.ck-rounded-corners{border-radius:var(--ck-border-radius)}.ck.ck-balloon-panel{box-shadow:var(--ck-drop-shadow),0 0}.ck.ck-balloon-panel.ck-balloon-panel_with-arrow:after,.ck.ck-balloon-panel.ck-balloon-panel_with-arrow:before{border-style:solid;height:0;width:0}.ck.ck-balloon-panel[class*=arrow_n]:after,.ck.ck-balloon-panel[class*=arrow_n]:before{border-width:0 var(--ck-balloon-arrow-half-width) var(--ck-balloon-arrow-height) var(--ck-balloon-arrow-half-width)}.ck.ck-balloon-panel[class*=arrow_n]:before{border-color:transparent transparent var(--ck-color-panel-border) transparent;margin-top:calc(var(--ck-balloon-border-width)*-1)}.ck.ck-balloon-panel[class*=arrow_n]:after{border-color:transparent transparent var(--ck-color-panel-background) transparent;margin-top:calc(var(--ck-balloon-arrow-offset) - var(--ck-balloon-border-width))}.ck.ck-balloon-panel[class*=arrow_s]:after,.ck.ck-balloon-panel[class*=arrow_s]:before{border-width:var(--ck-balloon-arrow-height) var(--ck-balloon-arrow-half-width) 0 var(--ck-balloon-arrow-half-width)}.ck.ck-balloon-panel[class*=arrow_s]:before{border-color:var(--ck-color-panel-border) transparent transparent;filter:drop-shadow(var(--ck-balloon-arrow-drop-shadow));margin-bottom:calc(var(--ck-balloon-border-width)*-1)}.ck.ck-balloon-panel[class*=arrow_s]:after{border-color:var(--ck-color-panel-background) transparent transparent transparent;margin-bottom:calc(var(--ck-balloon-arrow-offset) - var(--ck-balloon-border-width))}.ck.ck-balloon-panel[class*=arrow_e]:after,.ck.ck-balloon-panel[class*=arrow_e]:before{border-width:var(--ck-balloon-arrow-half-width) 0 var(--ck-balloon-arrow-half-width) var(--ck-balloon-arrow-height)}.ck.ck-balloon-panel[class*=arrow_e]:before{border-color:transparent transparent transparent var(--ck-color-panel-border);margin-right:calc(var(--ck-balloon-border-width)*-1)}.ck.ck-balloon-panel[class*=arrow_e]:after{border-color:transparent transparent transparent var(--ck-color-panel-background);margin-right:calc(var(--ck-balloon-arrow-offset) - var(--ck-balloon-border-width))}.ck.ck-balloon-panel[class*=arrow_w]:after,.ck.ck-balloon-panel[class*=arrow_w]:before{border-width:var(--ck-balloon-arrow-half-width) var(--ck-balloon-arrow-height) var(--ck-balloon-arrow-half-width) 0}.ck.ck-balloon-panel[class*=arrow_w]:before{border-color:transparent var(--ck-color-panel-border) transparent transparent;margin-left:calc(var(--ck-balloon-border-width)*-1)}.ck.ck-balloon-panel[class*=arrow_w]:after{border-color:transparent var(--ck-color-panel-background) transparent transparent;margin-left:calc(var(--ck-balloon-arrow-offset) - var(--ck-balloon-border-width))}.ck.ck-balloon-panel.ck-balloon-panel_arrow_n:after,.ck.ck-balloon-panel.ck-balloon-panel_arrow_n:before{left:50%;margin-left:calc(var(--ck-balloon-arrow-half-width)*-1);top:calc(var(--ck-balloon-arrow-height)*-1)}.ck.ck-balloon-panel.ck-balloon-panel_arrow_nw:after,.ck.ck-balloon-panel.ck-balloon-panel_arrow_nw:before{left:calc(var(--ck-balloon-arrow-half-width)*2);top:calc(var(--ck-balloon-arrow-height)*-1)}.ck.ck-balloon-panel.ck-balloon-panel_arrow_ne:after,.ck.ck-balloon-panel.ck-balloon-panel_arrow_ne:before{right:calc(var(--ck-balloon-arrow-half-width)*2);top:calc(var(--ck-balloon-arrow-height)*-1)}.ck.ck-balloon-panel.ck-balloon-panel_arrow_s:after,.ck.ck-balloon-panel.ck-balloon-panel_arrow_s:before{bottom:calc(var(--ck-balloon-arrow-height)*-1);left:50%;margin-left:calc(var(--ck-balloon-arrow-half-width)*-1)}.ck.ck-balloon-panel.ck-balloon-panel_arrow_sw:after,.ck.ck-balloon-panel.ck-balloon-panel_arrow_sw:before{bottom:calc(var(--ck-balloon-arrow-height)*-1);left:calc(var(--ck-balloon-arrow-half-width)*2)}.ck.ck-balloon-panel.ck-balloon-panel_arrow_se:after,.ck.ck-balloon-panel.ck-balloon-panel_arrow_se:before{bottom:calc(var(--ck-balloon-arrow-height)*-1);right:calc(var(--ck-balloon-arrow-half-width)*2)}.ck.ck-balloon-panel.ck-balloon-panel_arrow_sme:after,.ck.ck-balloon-panel.ck-balloon-panel_arrow_sme:before{bottom:calc(var(--ck-balloon-arrow-height)*-1);margin-right:calc(var(--ck-balloon-arrow-half-width)*2);right:25%}.ck.ck-balloon-panel.ck-balloon-panel_arrow_smw:after,.ck.ck-balloon-panel.ck-balloon-panel_arrow_smw:before{bottom:calc(var(--ck-balloon-arrow-height)*-1);left:25%;margin-left:calc(var(--ck-balloon-arrow-half-width)*2)}.ck.ck-balloon-panel.ck-balloon-panel_arrow_nme:after,.ck.ck-balloon-panel.ck-balloon-panel_arrow_nme:before{margin-right:calc(var(--ck-balloon-arrow-half-width)*2);right:25%;top:calc(var(--ck-balloon-arrow-height)*-1)}.ck.ck-balloon-panel.ck-balloon-panel_arrow_nmw:after,.ck.ck-balloon-panel.ck-balloon-panel_arrow_nmw:before{left:25%;margin-left:calc(var(--ck-balloon-arrow-half-width)*2);top:calc(var(--ck-balloon-arrow-height)*-1)}.ck.ck-balloon-panel.ck-balloon-panel_arrow_e:after,.ck.ck-balloon-panel.ck-balloon-panel_arrow_e:before{margin-top:calc(var(--ck-balloon-arrow-half-width)*-1);right:calc(var(--ck-balloon-arrow-height)*-1);top:50%}.ck.ck-balloon-panel.ck-balloon-panel_arrow_w:after,.ck.ck-balloon-panel.ck-balloon-panel_arrow_w:before{left:calc(var(--ck-balloon-arrow-height)*-1);margin-top:calc(var(--ck-balloon-arrow-half-width)*-1);top:50%}',"",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/components/panel/balloonpanel.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-ui/components/panel/balloonpanel.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/mixins/_rounded.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/mixins/_shadow.css"],names:[],mappings:"AAKA,MAEC,8DACD,CAEA,qBACC,YAAa,CACb,iBAAkB,CAElB,yBAyCD,CAtCE,+GAEC,UAAW,CACX,iBACD,CAEA,wDACC,6CACD,CAEA,uDACC,uDACD,CAIA,4CACC,6CACD,CAEA,2CACC,uDACD,CAIA,4CACC,6CACD,CAEA,2CACC,uDACD,CAGD,8CACC,aACD,CC9CD,MACC,6BAA8B,CAC9B,6BAA8B,CAC9B,8BAA+B,CAC/B,iCAAkC,CAClC,oEACD,CAEA,qBAMC,2CAA4C,CAC5C,wEAAyE,CCZzE,eAAgB,CDShB,eA0LD,CCjMC,iFAEC,qCAED,CDDD,qBEPC,oCFqMD,CApLE,+GAIC,kBAAmB,CADnB,QAAS,CADT,OAGD,CAIA,uFAEC,mHACD,CAEA,4CACC,6EAA8E,CAC9E,kDACD,CAEA,2CACC,iFAAkF,CAClF,gFACD,CAIA,uFAEC,mHACD,CAEA,4CACC,iEAAkE,CAClE,uDAAwD,CACxD,qDACD,CAEA,2CACC,iFAAkF,CAClF,mFACD,CAIA,uFAEC,mHACD,CAEA,4CACC,6EAA8E,CAC9E,oDACD,CAEA,2CACC,iFAAkF,CAClF,kFACD,CAIA,uFAEC,mHACD,CAEA,4CACC,6EAA8E,CAC9E,mDACD,CAEA,2CACC,iFAAkF,CAClF,iFACD,CAIA,yGAEC,QAAS,CACT,uDAA0D,CAC1D,2CACD,CAIA,2GAEC,+CAAkD,CAClD,2CACD,CAIA,2GAEC,gDAAmD,CACnD,2CACD,CAIA,yGAIC,8CAAiD,CAFjD,QAAS,CACT,uDAED,CAIA,2GAGC,8CAAiD,CADjD,+CAED,CAIA,2GAGC,8CAAiD,CADjD,gDAED,CAIA,6GAIC,8CAAiD,CADjD,uDAA0D,CAD1D,SAGD,CAIA,6GAIC,8CAAiD,CAFjD,QAAS,CACT,sDAED,CAIA,6GAGC,uDAA0D,CAD1D,SAAU,CAEV,2CACD,CAIA,6GAEC,QAAS,CACT,sDAAyD,CACzD,2CACD,CAIA,yGAGC,sDAAyD,CADzD,6CAAgD,CAEhD,OACD,CAIA,yGAEC,4CAA+C,CAC/C,sDAAyD,CACzD,OACD",sourcesContent:['/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n:root {\n\t/* Make sure the balloon arrow does not float over its children. */\n\t--ck-balloon-panel-arrow-z-index: calc(var(--ck-z-default) - 3);\n}\n\n.ck.ck-balloon-panel {\n\tdisplay: none;\n\tposition: absolute;\n\n\tz-index: var(--ck-z-panel);\n\n\t&.ck-balloon-panel_with-arrow {\n\t\t&::before,\n\t\t&::after {\n\t\t\tcontent: "";\n\t\t\tposition: absolute;\n\t\t}\n\n\t\t&::before {\n\t\t\tz-index: var(--ck-balloon-panel-arrow-z-index);\n\t\t}\n\n\t\t&::after {\n\t\t\tz-index: calc(var(--ck-balloon-panel-arrow-z-index) + 1);\n\t\t}\n\t}\n\n\t&[class*="arrow_n"] {\n\t\t&::before {\n\t\t\tz-index: var(--ck-balloon-panel-arrow-z-index);\n\t\t}\n\n\t\t&::after {\n\t\t\tz-index: calc(var(--ck-balloon-panel-arrow-z-index) + 1);\n\t\t}\n\t}\n\n\t&[class*="arrow_s"] {\n\t\t&::before {\n\t\t\tz-index: var(--ck-balloon-panel-arrow-z-index);\n\t\t}\n\n\t\t&::after {\n\t\t\tz-index: calc(var(--ck-balloon-panel-arrow-z-index) + 1);\n\t\t}\n\t}\n\n\t&.ck-balloon-panel_visible {\n\t\tdisplay: block;\n\t}\n}\n','/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n@import "../../../mixins/_rounded.css";\n@import "../../../mixins/_shadow.css";\n\n:root {\n\t--ck-balloon-border-width: 1px;\n\t--ck-balloon-arrow-offset: 2px;\n\t--ck-balloon-arrow-height: 10px;\n\t--ck-balloon-arrow-half-width: 8px;\n\t--ck-balloon-arrow-drop-shadow: 0 2px 2px var(--ck-color-shadow-drop);\n}\n\n.ck.ck-balloon-panel {\n\t@mixin ck-rounded-corners;\n\t@mixin ck-drop-shadow;\n\n\tmin-height: 15px;\n\n\tbackground: var(--ck-color-panel-background);\n\tborder: var(--ck-balloon-border-width) solid var(--ck-color-panel-border);\n\n\t&.ck-balloon-panel_with-arrow {\n\t\t&::before,\n\t\t&::after {\n\t\t\twidth: 0;\n\t\t\theight: 0;\n\t\t\tborder-style: solid;\n\t\t}\n\t}\n\n\t&[class*="arrow_n"] {\n\t\t&::before,\n\t\t&::after {\n\t\t\tborder-width: 0 var(--ck-balloon-arrow-half-width) var(--ck-balloon-arrow-height) var(--ck-balloon-arrow-half-width);\n\t\t}\n\n\t\t&::before {\n\t\t\tborder-color: transparent transparent var(--ck-color-panel-border) transparent;\n\t\t\tmargin-top: calc( -1 * var(--ck-balloon-border-width) );\n\t\t}\n\n\t\t&::after {\n\t\t\tborder-color: transparent transparent var(--ck-color-panel-background) transparent;\n\t\t\tmargin-top: calc( var(--ck-balloon-arrow-offset) - var(--ck-balloon-border-width) );\n\t\t}\n\t}\n\n\t&[class*="arrow_s"] {\n\t\t&::before,\n\t\t&::after {\n\t\t\tborder-width: var(--ck-balloon-arrow-height) var(--ck-balloon-arrow-half-width) 0 var(--ck-balloon-arrow-half-width);\n\t\t}\n\n\t\t&::before {\n\t\t\tborder-color: var(--ck-color-panel-border) transparent transparent;\n\t\t\tfilter: drop-shadow(var(--ck-balloon-arrow-drop-shadow));\n\t\t\tmargin-bottom: calc( -1 * var(--ck-balloon-border-width) );\n\t\t}\n\n\t\t&::after {\n\t\t\tborder-color: var(--ck-color-panel-background) transparent transparent transparent;\n\t\t\tmargin-bottom: calc( var(--ck-balloon-arrow-offset) - var(--ck-balloon-border-width) );\n\t\t}\n\t}\n\n\t&[class*="arrow_e"] {\n\t\t&::before,\n\t\t&::after {\n\t\t\tborder-width: var(--ck-balloon-arrow-half-width) 0 var(--ck-balloon-arrow-half-width) var(--ck-balloon-arrow-height);\n\t\t}\n\n\t\t&::before {\n\t\t\tborder-color: transparent transparent transparent var(--ck-color-panel-border);\n\t\t\tmargin-right: calc( -1 * var(--ck-balloon-border-width) );\n\t\t}\n\n\t\t&::after {\n\t\t\tborder-color: transparent transparent transparent var(--ck-color-panel-background);\n\t\t\tmargin-right: calc( var(--ck-balloon-arrow-offset) - var(--ck-balloon-border-width) );\n\t\t}\n\t}\n\n\t&[class*="arrow_w"] {\n\t\t&::before,\n\t\t&::after {\n\t\t\tborder-width: var(--ck-balloon-arrow-half-width) var(--ck-balloon-arrow-height) var(--ck-balloon-arrow-half-width) 0;\n\t\t}\n\n\t\t&::before {\n\t\t\tborder-color: transparent var(--ck-color-panel-border) transparent transparent;\n\t\t\tmargin-left: calc( -1 * var(--ck-balloon-border-width) );\n\t\t}\n\n\t\t&::after {\n\t\t\tborder-color: transparent var(--ck-color-panel-background) transparent transparent;\n\t\t\tmargin-left: calc( var(--ck-balloon-arrow-offset) - var(--ck-balloon-border-width) );\n\t\t}\n\t}\n\n\t&.ck-balloon-panel_arrow_n {\n\t\t&::before,\n\t\t&::after {\n\t\t\tleft: 50%;\n\t\t\tmargin-left: calc(-1 * var(--ck-balloon-arrow-half-width));\n\t\t\ttop: calc(-1 * var(--ck-balloon-arrow-height));\n\t\t}\n\t}\n\n\t&.ck-balloon-panel_arrow_nw {\n\t\t&::before,\n\t\t&::after {\n\t\t\tleft: calc(2 * var(--ck-balloon-arrow-half-width));\n\t\t\ttop: calc(-1 * var(--ck-balloon-arrow-height));\n\t\t}\n\t}\n\n\t&.ck-balloon-panel_arrow_ne {\n\t\t&::before,\n\t\t&::after {\n\t\t\tright: calc(2 * var(--ck-balloon-arrow-half-width));\n\t\t\ttop: calc(-1 * var(--ck-balloon-arrow-height));\n\t\t}\n\t}\n\n\t&.ck-balloon-panel_arrow_s {\n\t\t&::before,\n\t\t&::after {\n\t\t\tleft: 50%;\n\t\t\tmargin-left: calc(-1 * var(--ck-balloon-arrow-half-width));\n\t\t\tbottom: calc(-1 * var(--ck-balloon-arrow-height));\n\t\t}\n\t}\n\n\t&.ck-balloon-panel_arrow_sw {\n\t\t&::before,\n\t\t&::after {\n\t\t\tleft: calc(2 * var(--ck-balloon-arrow-half-width));\n\t\t\tbottom: calc(-1 * var(--ck-balloon-arrow-height));\n\t\t}\n\t}\n\n\t&.ck-balloon-panel_arrow_se {\n\t\t&::before,\n\t\t&::after {\n\t\t\tright: calc(2 * var(--ck-balloon-arrow-half-width));\n\t\t\tbottom: calc(-1 * var(--ck-balloon-arrow-height));\n\t\t}\n\t}\n\n\t&.ck-balloon-panel_arrow_sme {\n\t\t&::before,\n\t\t&::after {\n\t\t\tright: 25%;\n\t\t\tmargin-right: calc(2 * var(--ck-balloon-arrow-half-width));\n\t\t\tbottom: calc(-1 * var(--ck-balloon-arrow-height));\n\t\t}\n\t}\n\n\t&.ck-balloon-panel_arrow_smw {\n\t\t&::before,\n\t\t&::after {\n\t\t\tleft: 25%;\n\t\t\tmargin-left: calc(2 * var(--ck-balloon-arrow-half-width));\n\t\t\tbottom: calc(-1 * var(--ck-balloon-arrow-height));\n\t\t}\n\t}\n\n\t&.ck-balloon-panel_arrow_nme {\n\t\t&::before,\n\t\t&::after {\n\t\t\tright: 25%;\n\t\t\tmargin-right: calc(2 * var(--ck-balloon-arrow-half-width));\n\t\t\ttop: calc(-1 * var(--ck-balloon-arrow-height));\n\t\t}\n\t}\n\n\t&.ck-balloon-panel_arrow_nmw {\n\t\t&::before,\n\t\t&::after {\n\t\t\tleft: 25%;\n\t\t\tmargin-left: calc(2 * var(--ck-balloon-arrow-half-width));\n\t\t\ttop: calc(-1 * var(--ck-balloon-arrow-height));\n\t\t}\n\t}\n\n\t&.ck-balloon-panel_arrow_e {\n\t\t&::before,\n\t\t&::after {\n\t\t\tright: calc(-1 * var(--ck-balloon-arrow-height));\n\t\t\tmargin-top: calc(-1 * var(--ck-balloon-arrow-half-width));\n\t\t\ttop: 50%;\n\t\t}\n\t}\n\n\t&.ck-balloon-panel_arrow_w {\n\t\t&::before,\n\t\t&::after {\n\t\t\tleft: calc(-1 * var(--ck-balloon-arrow-height));\n\t\t\tmargin-top: calc(-1 * var(--ck-balloon-arrow-half-width));\n\t\t\ttop: 50%;\n\t\t}\n\t}\n}\n',"/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/**\n * Implements rounded corner interface for .ck-rounded-corners class.\n *\n * @see $ck-border-radius\n */\n@define-mixin ck-rounded-corners {\n\tborder-radius: 0;\n\n\t.ck-rounded-corners &,\n\t&.ck-rounded-corners {\n\t\tborder-radius: var(--ck-border-radius);\n\t\t@mixin-content;\n\t}\n}\n","/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/**\n * A helper to combine multiple shadows.\n */\n@define-mixin ck-box-shadow $shadowA, $shadowB: 0 0 {\n\tbox-shadow: $shadowA, $shadowB;\n}\n\n/**\n * Gives an element a drop shadow so it looks like a floating panel.\n */\n@define-mixin ck-drop-shadow {\n\t@mixin ck-box-shadow var(--ck-drop-shadow);\n}\n"],sourceRoot:""}]);const a=s},5659:(e,t,o)=>{const n=o(8156),i={};for(const e of Object.keys(n))i[n[e]]=e;const r={rgb:{channels:3,labels:"rgb"},hsl:{channels:3,labels:"hsl"},hsv:{channels:3,labels:"hsv"},hwb:{channels:3,labels:"hwb"},cmyk:{channels:4,labels:"cmyk"},xyz:{channels:3,labels:"xyz"},lab:{channels:3,labels:"lab"},lch:{channels:3,labels:"lch"},hex:{channels:1,labels:["hex"]},keyword:{channels:1,labels:["keyword"]},ansi16:{channels:1,labels:["ansi16"]},ansi256:{channels:1,labels:["ansi256"]},hcg:{channels:3,labels:["h","c","g"]},apple:{channels:3,labels:["r16","g16","b16"]},gray:{channels:1,labels:["gray"]}};e.exports=r;for(const e of Object.keys(r)){if(!("channels"in r[e]))throw new Error("missing channels property: "+e);if(!("labels"in r[e]))throw new Error("missing channel labels property: "+e);if(r[e].labels.length!==r[e].channels)throw new Error("channel and label counts mismatch: "+e);const{channels:t,labels:o}=r[e];delete r[e].channels,delete r[e].labels,Object.defineProperty(r[e],"channels",{value:t}),Object.defineProperty(r[e],"labels",{value:o})}r.rgb.hsl=function(e){const t=e[0]/255,o=e[1]/255,n=e[2]/255,i=Math.min(t,o,n),r=Math.max(t,o,n),s=r-i;let a,l;r===i?a=0:t===r?a=(o-n)/s:o===r?a=2+(n-t)/s:n===r&&(a=4+(t-o)/s),a=Math.min(60*a,360),a<0&&(a+=360);const c=(i+r)/2;return l=r===i?0:c<=.5?s/(r+i):s/(2-r-i),[a,100*l,100*c]},r.rgb.hsv=function(e){let t,o,n,i,r;const s=e[0]/255,a=e[1]/255,l=e[2]/255,c=Math.max(s,a,l),d=c-Math.min(s,a,l),u=function(e){return(c-e)/6/d+.5};return 0===d?(i=0,r=0):(r=d/c,t=u(s),o=u(a),n=u(l),s===c?i=n-o:a===c?i=1/3+t-n:l===c&&(i=2/3+o-t),i<0?i+=1:i>1&&(i-=1)),[360*i,100*r,100*c]},r.rgb.hwb=function(e){const t=e[0],o=e[1];let n=e[2];const i=r.rgb.hsl(e)[0],s=1/255*Math.min(t,Math.min(o,n));return n=1-1/255*Math.max(t,Math.max(o,n)),[i,100*s,100*n]},r.rgb.cmyk=function(e){const t=e[0]/255,o=e[1]/255,n=e[2]/255,i=Math.min(1-t,1-o,1-n);return[100*((1-t-i)/(1-i)||0),100*((1-o-i)/(1-i)||0),100*((1-n-i)/(1-i)||0),100*i]},r.rgb.keyword=function(e){const t=i[e];if(t)return t;let o,r=1/0;for(const t of Object.keys(n)){const i=n[t],l=(a=i,((s=e)[0]-a[0])**2+(s[1]-a[1])**2+(s[2]-a[2])**2);l.04045?((t+.055)/1.055)**2.4:t/12.92,o=o>.04045?((o+.055)/1.055)**2.4:o/12.92,n=n>.04045?((n+.055)/1.055)**2.4:n/12.92;return[100*(.4124*t+.3576*o+.1805*n),100*(.2126*t+.7152*o+.0722*n),100*(.0193*t+.1192*o+.9505*n)]},r.rgb.lab=function(e){const t=r.rgb.xyz(e);let o=t[0],n=t[1],i=t[2];o/=95.047,n/=100,i/=108.883,o=o>.008856?o**(1/3):7.787*o+16/116,n=n>.008856?n**(1/3):7.787*n+16/116,i=i>.008856?i**(1/3):7.787*i+16/116;return[116*n-16,500*(o-n),200*(n-i)]},r.hsl.rgb=function(e){const t=e[0]/360,o=e[1]/100,n=e[2]/100;let i,r,s;if(0===o)return s=255*n,[s,s,s];i=n<.5?n*(1+o):n+o-n*o;const a=2*n-i,l=[0,0,0];for(let e=0;e<3;e++)r=t+1/3*-(e-1),r<0&&r++,r>1&&r--,s=6*r<1?a+6*(i-a)*r:2*r<1?i:3*r<2?a+(i-a)*(2/3-r)*6:a,l[e]=255*s;return l},r.hsl.hsv=function(e){const t=e[0];let o=e[1]/100,n=e[2]/100,i=o;const r=Math.max(n,.01);n*=2,o*=n<=1?n:2-n,i*=r<=1?r:2-r;return[t,100*(0===n?2*i/(r+i):2*o/(n+o)),100*((n+o)/2)]},r.hsv.rgb=function(e){const t=e[0]/60,o=e[1]/100;let n=e[2]/100;const i=Math.floor(t)%6,r=t-Math.floor(t),s=255*n*(1-o),a=255*n*(1-o*r),l=255*n*(1-o*(1-r));switch(n*=255,i){case 0:return[n,l,s];case 1:return[a,n,s];case 2:return[s,n,l];case 3:return[s,a,n];case 4:return[l,s,n];case 5:return[n,s,a]}},r.hsv.hsl=function(e){const t=e[0],o=e[1]/100,n=e[2]/100,i=Math.max(n,.01);let r,s;s=(2-o)*n;const a=(2-o)*i;return r=o*i,r/=a<=1?a:2-a,r=r||0,s/=2,[t,100*r,100*s]},r.hwb.rgb=function(e){const t=e[0]/360;let o=e[1]/100,n=e[2]/100;const i=o+n;let r;i>1&&(o/=i,n/=i);const s=Math.floor(6*t),a=1-n;r=6*t-s,1&s&&(r=1-r);const l=o+r*(a-o);let c,d,u;switch(s){default:case 6:case 0:c=a,d=l,u=o;break;case 1:c=l,d=a,u=o;break;case 2:c=o,d=a,u=l;break;case 3:c=o,d=l,u=a;break;case 4:c=l,d=o,u=a;break;case 5:c=a,d=o,u=l}return[255*c,255*d,255*u]},r.cmyk.rgb=function(e){const t=e[0]/100,o=e[1]/100,n=e[2]/100,i=e[3]/100;return[255*(1-Math.min(1,t*(1-i)+i)),255*(1-Math.min(1,o*(1-i)+i)),255*(1-Math.min(1,n*(1-i)+i))]},r.xyz.rgb=function(e){const t=e[0]/100,o=e[1]/100,n=e[2]/100;let i,r,s;return i=3.2406*t+-1.5372*o+-.4986*n,r=-.9689*t+1.8758*o+.0415*n,s=.0557*t+-.204*o+1.057*n,i=i>.0031308?1.055*i**(1/2.4)-.055:12.92*i,r=r>.0031308?1.055*r**(1/2.4)-.055:12.92*r,s=s>.0031308?1.055*s**(1/2.4)-.055:12.92*s,i=Math.min(Math.max(0,i),1),r=Math.min(Math.max(0,r),1),s=Math.min(Math.max(0,s),1),[255*i,255*r,255*s]},r.xyz.lab=function(e){let t=e[0],o=e[1],n=e[2];t/=95.047,o/=100,n/=108.883,t=t>.008856?t**(1/3):7.787*t+16/116,o=o>.008856?o**(1/3):7.787*o+16/116,n=n>.008856?n**(1/3):7.787*n+16/116;return[116*o-16,500*(t-o),200*(o-n)]},r.lab.xyz=function(e){let t,o,n;o=(e[0]+16)/116,t=e[1]/500+o,n=o-e[2]/200;const i=o**3,r=t**3,s=n**3;return o=i>.008856?i:(o-16/116)/7.787,t=r>.008856?r:(t-16/116)/7.787,n=s>.008856?s:(n-16/116)/7.787,t*=95.047,o*=100,n*=108.883,[t,o,n]},r.lab.lch=function(e){const t=e[0],o=e[1],n=e[2];let i;i=360*Math.atan2(n,o)/2/Math.PI,i<0&&(i+=360);return[t,Math.sqrt(o*o+n*n),i]},r.lch.lab=function(e){const t=e[0],o=e[1],n=e[2]/360*2*Math.PI;return[t,o*Math.cos(n),o*Math.sin(n)]},r.rgb.ansi16=function(e,t=null){const[o,n,i]=e;let s=null===t?r.rgb.hsv(e)[2]:t;if(s=Math.round(s/50),0===s)return 30;let a=30+(Math.round(i/255)<<2|Math.round(n/255)<<1|Math.round(o/255));return 2===s&&(a+=60),a},r.hsv.ansi16=function(e){return r.rgb.ansi16(r.hsv.rgb(e),e[2])},r.rgb.ansi256=function(e){const t=e[0],o=e[1],n=e[2];if(t===o&&o===n)return t<8?16:t>248?231:Math.round((t-8)/247*24)+232;return 16+36*Math.round(t/255*5)+6*Math.round(o/255*5)+Math.round(n/255*5)},r.ansi16.rgb=function(e){let t=e%10;if(0===t||7===t)return e>50&&(t+=3.5),t=t/10.5*255,[t,t,t];const o=.5*(1+~~(e>50));return[(1&t)*o*255,(t>>1&1)*o*255,(t>>2&1)*o*255]},r.ansi256.rgb=function(e){if(e>=232){const t=10*(e-232)+8;return[t,t,t]}let t;e-=16;return[Math.floor(e/36)/5*255,Math.floor((t=e%36)/6)/5*255,t%6/5*255]},r.rgb.hex=function(e){const t=(((255&Math.round(e[0]))<<16)+((255&Math.round(e[1]))<<8)+(255&Math.round(e[2]))).toString(16).toUpperCase();return"000000".substring(t.length)+t},r.hex.rgb=function(e){const t=e.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);if(!t)return[0,0,0];let o=t[0];3===t[0].length&&(o=o.split("").map((e=>e+e)).join(""));const n=parseInt(o,16);return[n>>16&255,n>>8&255,255&n]},r.rgb.hcg=function(e){const t=e[0]/255,o=e[1]/255,n=e[2]/255,i=Math.max(Math.max(t,o),n),r=Math.min(Math.min(t,o),n),s=i-r;let a,l;return a=s<1?r/(1-s):0,l=s<=0?0:i===t?(o-n)/s%6:i===o?2+(n-t)/s:4+(t-o)/s,l/=6,l%=1,[360*l,100*s,100*a]},r.hsl.hcg=function(e){const t=e[1]/100,o=e[2]/100,n=o<.5?2*t*o:2*t*(1-o);let i=0;return n<1&&(i=(o-.5*n)/(1-n)),[e[0],100*n,100*i]},r.hsv.hcg=function(e){const t=e[1]/100,o=e[2]/100,n=t*o;let i=0;return n<1&&(i=(o-n)/(1-n)),[e[0],100*n,100*i]},r.hcg.rgb=function(e){const t=e[0]/360,o=e[1]/100,n=e[2]/100;if(0===o)return[255*n,255*n,255*n];const i=[0,0,0],r=t%1*6,s=r%1,a=1-s;let l=0;switch(Math.floor(r)){case 0:i[0]=1,i[1]=s,i[2]=0;break;case 1:i[0]=a,i[1]=1,i[2]=0;break;case 2:i[0]=0,i[1]=1,i[2]=s;break;case 3:i[0]=0,i[1]=a,i[2]=1;break;case 4:i[0]=s,i[1]=0,i[2]=1;break;default:i[0]=1,i[1]=0,i[2]=a}return l=(1-o)*n,[255*(o*i[0]+l),255*(o*i[1]+l),255*(o*i[2]+l)]},r.hcg.hsv=function(e){const t=e[1]/100,o=t+e[2]/100*(1-t);let n=0;return o>0&&(n=t/o),[e[0],100*n,100*o]},r.hcg.hsl=function(e){const t=e[1]/100,o=e[2]/100*(1-t)+.5*t;let n=0;return o>0&&o<.5?n=t/(2*o):o>=.5&&o<1&&(n=t/(2*(1-o))),[e[0],100*n,100*o]},r.hcg.hwb=function(e){const t=e[1]/100,o=t+e[2]/100*(1-t);return[e[0],100*(o-t),100*(1-o)]},r.hwb.hcg=function(e){const t=e[1]/100,o=1-e[2]/100,n=o-t;let i=0;return n<1&&(i=(o-n)/(1-n)),[e[0],100*n,100*i]},r.apple.rgb=function(e){return[e[0]/65535*255,e[1]/65535*255,e[2]/65535*255]},r.rgb.apple=function(e){return[e[0]/255*65535,e[1]/255*65535,e[2]/255*65535]},r.gray.rgb=function(e){return[e[0]/100*255,e[0]/100*255,e[0]/100*255]},r.gray.hsl=function(e){return[0,0,e[0]]},r.gray.hsv=r.gray.hsl,r.gray.hwb=function(e){return[0,100,e[0]]},r.gray.cmyk=function(e){return[0,0,0,e[0]]},r.gray.lab=function(e){return[e[0],0,0]},r.gray.hex=function(e){const t=255&Math.round(e[0]/100*255),o=((t<<16)+(t<<8)+t).toString(16).toUpperCase();return"000000".substring(o.length)+o},r.rgb.gray=function(e){return[(e[0]+e[1]+e[2])/3/255*100]}},5667:(e,t,o)=>{"use strict";o.d(t,{A:()=>a});var n=o(1354),i=o.n(n),r=o(6314),s=o.n(r)()(i());s.push([e.id,".ck.ck-menu-bar__menu>.ck-menu-bar__menu__button>.ck-menu-bar__menu__button__arrow{pointer-events:none;z-index:var(--ck-z-default)}.ck.ck-menu-bar__menu>.ck-menu-bar__menu__button{width:100%}.ck.ck-menu-bar__menu>.ck-menu-bar__menu__button>.ck-button__label{flex-grow:1;overflow:hidden;text-overflow:ellipsis}.ck.ck-menu-bar__menu>.ck-menu-bar__menu__button.ck-disabled>.ck-button__label{opacity:var(--ck-disabled-opacity)}[dir=ltr] .ck.ck-menu-bar__menu>.ck-menu-bar__menu__button:not(.ck-button_with-text){padding-left:var(--ck-spacing-small)}[dir=rtl] .ck.ck-menu-bar__menu>.ck-menu-bar__menu__button:not(.ck-button_with-text){padding-right:var(--ck-spacing-small)}.ck.ck-menu-bar__menu.ck-menu-bar__menu_top-level>.ck-menu-bar__menu__button{min-height:unset;padding:var(--ck-spacing-small) var(--ck-spacing-medium)}.ck.ck-menu-bar__menu.ck-menu-bar__menu_top-level>.ck-menu-bar__menu__button .ck-button__label{line-height:unset;overflow:visible;width:unset}.ck.ck-menu-bar__menu.ck-menu-bar__menu_top-level>.ck-menu-bar__menu__button.ck-on{border-bottom-left-radius:0;border-bottom-right-radius:0}.ck.ck-menu-bar__menu.ck-menu-bar__menu_top-level>.ck-menu-bar__menu__button .ck-icon{display:none}.ck.ck-menu-bar__menu:not(.ck-menu-bar__menu_top-level) .ck-menu-bar__menu__button{border-radius:0}.ck.ck-menu-bar__menu:not(.ck-menu-bar__menu_top-level) .ck-menu-bar__menu__button>.ck-menu-bar__menu__button__arrow{width:var(--ck-dropdown-arrow-size)}[dir=ltr] .ck.ck-menu-bar__menu:not(.ck-menu-bar__menu_top-level) .ck-menu-bar__menu__button>.ck-menu-bar__menu__button__arrow{margin-left:var(--ck-spacing-standard);margin-right:calc(var(--ck-spacing-small)*-1);transform:rotate(-90deg)}[dir=rtl] .ck.ck-menu-bar__menu:not(.ck-menu-bar__menu_top-level) .ck-menu-bar__menu__button>.ck-menu-bar__menu__button__arrow{left:var(--ck-spacing-standard);margin-left:calc(var(--ck-spacing-small)*-1);margin-right:var(--ck-spacing-small);transform:rotate(90deg)}.ck.ck-menu-bar__menu:not(.ck-menu-bar__menu_top-level) .ck-menu-bar__menu__button.ck-disabled>.ck-menu-bar__menu__button__arrow{opacity:var(--ck-disabled-opacity)}","",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/components/menubar/menubarmenubutton.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-ui/components/menubar/menubarmenubutton.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/mixins/_disabled.css","webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/mixins/_dir.css"],names:[],mappings:"AAMC,mFACC,mBAAoB,CACpB,2BACD,CCIA,iDACC,UAuBD,CArBC,mEACC,WAAY,CACZ,eAAgB,CAChB,sBACD,CAEA,+ECbD,kCDeC,CAGC,qFACC,oCACD,CAIA,qFACC,qCACD,CAOF,6EAEC,gBAAiB,CADjB,wDAsBD,CAnBC,+FAEC,iBAAkB,CAMlB,gBAAiB,CAPjB,WAQD,CAEA,mFACC,2BAA4B,CAC5B,4BACD,CAEA,sFACC,YACD,CAMD,mFACC,eA+BD,CA7BC,qHACC,mCAuBD,CE3FD,+HF0EG,sCAAuC,CAGvC,6CAAgD,CANhD,wBErEH,CAFA,+HFmFG,+BAAgC,CAMhC,4CAA+C,CAH/C,oCAAqC,CALrC,uBE/EH,CF2FC,iIC1FD,kCD4FC",sourcesContent:["/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n.ck.ck-menu-bar__menu {\n\t& > .ck-menu-bar__menu__button > .ck-menu-bar__menu__button__arrow {\n\t\tpointer-events: none;\n\t\tz-index: var(--ck-z-default);\n\t}\n}\n",'/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n@import "../../../mixins/_disabled.css";\n@import "../../mixins/_button.css";\n@import "@ckeditor/ckeditor5-ui/theme/mixins/_dir.css";\n\n.ck.ck-menu-bar__menu {\n\t/*\n\t * All menu buttons.\n\t */\n\t& > .ck-menu-bar__menu__button {\n\t\twidth: 100%;\n\n\t\t& > .ck-button__label {\n\t\t\tflex-grow: 1;\n\t\t\toverflow: hidden;\n\t\t\ttext-overflow: ellipsis;\n\t\t}\n\n\t\t&.ck-disabled > .ck-button__label {\n\t\t\t@mixin ck-disabled;\n\t\t}\n\n\t\t@mixin ck-dir ltr {\n\t\t\t&:not(.ck-button_with-text) {\n\t\t\t\tpadding-left: var(--ck-spacing-small);\n\t\t\t}\n\t\t}\n\n\t\t@mixin ck-dir rtl {\n\t\t\t&:not(.ck-button_with-text) {\n\t\t\t\tpadding-right: var(--ck-spacing-small);\n\t\t\t}\n\t\t}\n\t}\n\n\t/*\n\t * Top-level menu buttons only.\n\t */\n\t&.ck-menu-bar__menu_top-level > .ck-menu-bar__menu__button {\n\t\tpadding: var(--ck-spacing-small) var(--ck-spacing-medium);\n\t\tmin-height: unset;\n\n\t\t& .ck-button__label {\n\t\t\twidth: unset;\n\t\t\tline-height: unset;\n\n\t\t\t/*\n\t\t\t * Top-level buttons don\'t use ellipsis and overflow: hidden clips descenders.\n\t\t\t * See https://github.com/ckeditor/ckeditor5/issues/17422.\n\t\t\t */\n\t\t\toverflow: visible;\n\t\t}\n\n\t\t&.ck-on {\n\t\t\tborder-bottom-left-radius: 0;\n\t\t\tborder-bottom-right-radius: 0;\n\t\t}\n\n\t\t& .ck-icon {\n\t\t\tdisplay: none;\n\t\t}\n\t}\n\n\t/*\n\t * Sub-menu buttons.\n\t */\n\t&:not(.ck-menu-bar__menu_top-level) .ck-menu-bar__menu__button {\n\t\tborder-radius: 0;\n\n\t\t& > .ck-menu-bar__menu__button__arrow {\n\t\t\twidth: var(--ck-dropdown-arrow-size);\n\n\t\t\t@mixin ck-dir ltr {\n\t\t\t\ttransform: rotate(-90deg);\n\n\t\t\t\t/* A space to accommodate the triangle. */\n\t\t\t\tmargin-left: var(--ck-spacing-standard);\n\n\t\t\t\t/* Nudge the arrow gently to the right because its center of gravity is to the left */\n\t\t\t\tmargin-right: calc(-1 * var(--ck-spacing-small));\n\t\t\t}\n\n\t\t\t@mixin ck-dir rtl {\n\t\t\t\ttransform: rotate(90deg);\n\n\t\t\t\tleft: var(--ck-spacing-standard);\n\n\t\t\t\t/* A space to accommodate the triangle. */\n\t\t\t\tmargin-right: var(--ck-spacing-small);\n\n\t\t\t\t/* Nudge the arrow gently to the left because its center of gravity is to the right (after rotation). */\n\t\t\t\tmargin-left: calc(-1 * var(--ck-spacing-small));\n\t\t\t}\n\t\t}\n\n\t\t&.ck-disabled > .ck-menu-bar__menu__button__arrow {\n\t\t\t@mixin ck-disabled;\n\t\t}\n\t}\n}\n',"/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/**\n * A class which indicates that an element holding it is disabled.\n */\n@define-mixin ck-disabled {\n\topacity: var(--ck-disabled-opacity);\n}\n",'/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n@define-mixin ck-dir $direction {\n\t[dir="$(direction)"] & {\n\t\t@mixin-content;\n\t}\n}\n'],sourceRoot:""}]);const a=s},5704:(e,t,o)=>{"use strict";o.d(t,{A:()=>a});var n=o(1354),i=o.n(n),r=o(6314),s=o.n(r)()(i());s.push([e.id,'.ck.ck-table-form .ck-form__row.ck-table-form__background-row,.ck.ck-table-form .ck-form__row.ck-table-form__border-row{flex-wrap:wrap}.ck.ck-table-form .ck-form__row.ck-table-form__dimensions-row{align-items:center;flex-wrap:wrap}.ck.ck-table-form .ck-form__row.ck-table-form__dimensions-row .ck-labeled-field-view{align-items:center;display:flex;flex-direction:column-reverse}.ck.ck-table-form .ck-form__row.ck-table-form__dimensions-row .ck-labeled-field-view .ck.ck-dropdown,.ck.ck-table-form .ck-form__row.ck-table-form__dimensions-row .ck-table-form__dimension-operator{flex-grow:0}.ck.ck-table-form .ck.ck-labeled-field-view{position:relative}.ck.ck-table-form .ck.ck-labeled-field-view .ck.ck-labeled-field-view__status{bottom:calc(var(--ck-table-properties-error-arrow-size)*-1);left:50%;position:absolute;transform:translate(-50%,100%);z-index:1}.ck.ck-table-form .ck.ck-labeled-field-view .ck.ck-labeled-field-view__status:after{content:"";left:50%;position:absolute;top:calc(var(--ck-table-properties-error-arrow-size)*-1);transform:translateX(-50%)}:root{--ck-table-properties-error-arrow-size:6px;--ck-table-properties-min-error-width:150px}.ck.ck-table-form .ck-form__row.ck-table-form__border-row .ck-labeled-field-view>.ck-label{font-size:var(--ck-font-size-tiny);text-align:center}.ck.ck-table-form .ck-form__row.ck-table-form__border-row .ck-table-form__border-style,.ck.ck-table-form .ck-form__row.ck-table-form__border-row .ck-table-form__border-width{max-width:80px;min-width:80px;width:80px}.ck.ck-table-form .ck-form__row.ck-table-form__dimensions-row{padding:0}.ck.ck-table-form .ck-form__row.ck-table-form__dimensions-row .ck-table-form__dimensions-row__height,.ck.ck-table-form .ck-form__row.ck-table-form__dimensions-row .ck-table-form__dimensions-row__width{margin:0}.ck.ck-table-form .ck-form__row.ck-table-form__dimensions-row .ck-table-form__dimension-operator{align-self:flex-end;display:inline-block;height:var(--ck-ui-component-min-height);line-height:var(--ck-ui-component-min-height);margin:0 var(--ck-spacing-small)}.ck.ck-table-form .ck.ck-labeled-field-view{padding-top:var(--ck-spacing-standard)}.ck.ck-table-form .ck.ck-labeled-field-view .ck.ck-labeled-field-view__status{animation:ck-table-form-labeled-view-status-appear .15s ease both;background:var(--ck-color-base-error);border-radius:0;color:var(--ck-color-base-background);min-width:var(--ck-table-properties-min-error-width);padding:var(--ck-spacing-small) var(--ck-spacing-medium);text-align:center}.ck-rounded-corners .ck.ck-table-form .ck.ck-labeled-field-view .ck.ck-labeled-field-view__status,.ck.ck-table-form .ck.ck-labeled-field-view .ck.ck-labeled-field-view__status.ck-rounded-corners{border-radius:var(--ck-border-radius)}.ck.ck-table-form .ck.ck-labeled-field-view .ck.ck-labeled-field-view__status:after{border-color:transparent transparent var(--ck-color-base-error) transparent;border-style:solid;border-width:0 var(--ck-table-properties-error-arrow-size) var(--ck-table-properties-error-arrow-size) var(--ck-table-properties-error-arrow-size)}@media (prefers-reduced-motion:reduce){.ck.ck-table-form .ck.ck-labeled-field-view .ck.ck-labeled-field-view__status{animation:none}}.ck.ck-table-form .ck.ck-labeled-field-view .ck-input.ck-error:not(:focus)+.ck.ck-labeled-field-view__status{display:none}@keyframes ck-table-form-labeled-view-status-appear{0%{opacity:0}to{opacity:1}}',"",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-table/theme/tableform.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-table/tableform.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/mixins/_rounded.css"],names:[],mappings:"AAWE,wHACC,cACD,CAEA,8DAEC,kBAAmB,CADnB,cAgBD,CAbC,qFAGC,kBAAmB,CAFnB,YAAa,CACb,6BAMD,CAEA,sMACC,WACD,CAIF,4CAEC,iBAoBD,CAlBC,8EAGC,2DAAgE,CADhE,QAAS,CADT,iBAAkB,CAGlB,8BAA+B,CAG/B,SAUD,CAPC,oFACC,UAAW,CAGX,QAAS,CAFT,iBAAkB,CAClB,wDAA6D,CAE7D,0BACD,CChDH,MACC,0CAA2C,CAC3C,2CACD,CAMI,2FACC,kCAAmC,CACnC,iBACD,CAGD,8KAIC,cAAe,CADf,cAAe,CADf,UAGD,CAGD,8DACC,SAcD,CAZC,yMAEC,QACD,CAEA,iGACC,mBAAoB,CACpB,oBAAqB,CACrB,wCAAyC,CACzC,6CAA8C,CAC9C,gCACD,CAIF,4CACC,sCA6BD,CA3BC,8EAgBC,iEAAkE,CAblE,qCAAsC,CC3CxC,eAAgB,CD4Cd,qCAAsC,CAEtC,oDAAqD,CADrD,wDAAyD,CAEzD,iBAcD,CC3DD,mMAEC,qCAED,CD4CE,oFACC,2EAA4E,CAE5E,kBAAmB,CADnB,kJAED,CAIA,uCAlBD,8EAmBE,cAEF,CADC,CAID,6GACC,YACD,CAIF,oDACC,GACC,SACD,CAEA,GACC,SACD,CACD",sourcesContent:['/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n.ck.ck-table-form {\n\t& .ck-form__row {\n\t\t&.ck-table-form__border-row {\n\t\t\tflex-wrap: wrap;\n\t\t}\n\n\t\t&.ck-table-form__background-row {\n\t\t\tflex-wrap: wrap;\n\t\t}\n\n\t\t&.ck-table-form__dimensions-row {\n\t\t\tflex-wrap: wrap;\n\t\t\talign-items: center;\n\n\t\t\t& .ck-labeled-field-view {\n\t\t\t\tdisplay: flex;\n\t\t\t\tflex-direction: column-reverse;\n\t\t\t\talign-items: center;\n\n\t\t\t\t& .ck.ck-dropdown {\n\t\t\t\t\tflex-grow: 0;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t& .ck-table-form__dimension-operator {\n\t\t\t\tflex-grow: 0;\n\t\t\t}\n\t\t}\n\t}\n\n\t& .ck.ck-labeled-field-view {\n\t\t/* Allow absolute positioning of the status (error) balloons. */\n\t\tposition: relative;\n\n\t\t& .ck.ck-labeled-field-view__status {\n\t\t\tposition: absolute;\n\t\t\tleft: 50%;\n\t\t\tbottom: calc( -1 * var(--ck-table-properties-error-arrow-size) );\n\t\t\ttransform: translate(-50%,100%);\n\n\t\t\t/* Make sure the balloon status stays on top of other form elements. */\n\t\t\tz-index: 1;\n\n\t\t\t/* The arrow pointing towards the field. */\n\t\t\t&::after {\n\t\t\t\tcontent: "";\n\t\t\t\tposition: absolute;\n\t\t\t\ttop: calc( -1 * var(--ck-table-properties-error-arrow-size) );\n\t\t\t\tleft: 50%;\n\t\t\t\ttransform: translateX( -50% );\n\t\t\t}\n\t\t}\n\t}\n}\n','/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n@import "../mixins/_rounded.css";\n\n:root {\n\t--ck-table-properties-error-arrow-size: 6px;\n\t--ck-table-properties-min-error-width: 150px;\n}\n\n.ck.ck-table-form {\n\t& .ck-form__row {\n\t\t&.ck-table-form__border-row {\n\t\t\t& .ck-labeled-field-view {\n\t\t\t\t& > .ck-label {\n\t\t\t\t\tfont-size: var(--ck-font-size-tiny);\n\t\t\t\t\ttext-align: center;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t& .ck-table-form__border-style,\n\t\t\t& .ck-table-form__border-width {\n\t\t\t\twidth: 80px;\n\t\t\t\tmin-width: 80px;\n\t\t\t\tmax-width: 80px;\n\t\t\t}\n\t\t}\n\n\t\t&.ck-table-form__dimensions-row {\n\t\t\tpadding: 0;\n\n\t\t\t& .ck-table-form__dimensions-row__width,\n\t\t\t& .ck-table-form__dimensions-row__height {\n\t\t\t\tmargin: 0\n\t\t\t}\n\n\t\t\t& .ck-table-form__dimension-operator {\n\t\t\t\talign-self: flex-end;\n\t\t\t\tdisplay: inline-block;\n\t\t\t\theight: var(--ck-ui-component-min-height);\n\t\t\t\tline-height: var(--ck-ui-component-min-height);\n\t\t\t\tmargin: 0 var(--ck-spacing-small);\n\t\t\t}\n\t\t}\n\t}\n\n\t& .ck.ck-labeled-field-view {\n\t\tpadding-top: var(--ck-spacing-standard);\n\n\t\t& .ck.ck-labeled-field-view__status {\n\t\t\t@mixin ck-rounded-corners;\n\n\t\t\tbackground: var(--ck-color-base-error);\n\t\t\tcolor: var(--ck-color-base-background);\n\t\t\tpadding: var(--ck-spacing-small) var(--ck-spacing-medium);\n\t\t\tmin-width: var(--ck-table-properties-min-error-width);\n\t\t\ttext-align: center;\n\n\t\t\t/* The arrow pointing towards the field. */\n\t\t\t&::after {\n\t\t\t\tborder-color: transparent transparent var(--ck-color-base-error) transparent;\n\t\t\t\tborder-width: 0 var(--ck-table-properties-error-arrow-size) var(--ck-table-properties-error-arrow-size) var(--ck-table-properties-error-arrow-size);\n\t\t\t\tborder-style: solid;\n\t\t\t}\n\n\t\t\tanimation: ck-table-form-labeled-view-status-appear .15s ease both;\n\n\t\t\t@media (prefers-reduced-motion: reduce) {\n\t\t\t\tanimation: none;\n\t\t\t}\n\t\t}\n\n\t\t/* Hide the error balloon when the field is blurred. Makes the experience much more clear. */\n\t\t& .ck-input.ck-error:not(:focus) + .ck.ck-labeled-field-view__status {\n\t\t\tdisplay: none;\n\t\t}\n\t}\n}\n\n@keyframes ck-table-form-labeled-view-status-appear {\n\t0% {\n\t\topacity: 0;\n\t}\n\n\t100% {\n\t\topacity: 1;\n\t}\n}\n',"/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/**\n * Implements rounded corner interface for .ck-rounded-corners class.\n *\n * @see $ck-border-radius\n */\n@define-mixin ck-rounded-corners {\n\tborder-radius: 0;\n\n\t.ck-rounded-corners &,\n\t&.ck-rounded-corners {\n\t\tborder-radius: var(--ck-border-radius);\n\t\t@mixin-content;\n\t}\n}\n"],sourceRoot:""}]);const a=s},5706:(e,t,o)=>{"use strict";o.d(t,{A:()=>a});var n=o(1354),i=o.n(n),r=o(6314),s=o.n(r)()(i());s.push([e.id,".ck.ck-spinner-container{display:block;position:relative}.ck.ck-spinner{left:0;margin:0 auto;position:absolute;right:0;top:50%;transform:translateY(-50%);z-index:1}:root{--ck-toolbar-spinner-size:18px}.ck.ck-spinner-container{animation:ck-spinner-rotate 1.5s linear infinite;height:var(--ck-toolbar-spinner-size);width:var(--ck-toolbar-spinner-size)}@media (prefers-reduced-motion:reduce){.ck.ck-spinner-container{animation-duration:3s}}.ck.ck-spinner{border:2px solid var(--ck-color-text);border-radius:50%;border-top:2px solid transparent;height:var(--ck-toolbar-spinner-size);width:var(--ck-toolbar-spinner-size)}@keyframes ck-spinner-rotate{to{transform:rotate(1turn)}}","",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/components/spinner/spinner.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-ui/components/spinner/spinner.css"],names:[],mappings:"AASA,yBACC,aAAc,CACd,iBACD,CAEA,eAGC,MAAO,CAEP,aAAc,CAJd,iBAAkB,CAGlB,OAAQ,CAFR,OAAQ,CAIR,0BAA2B,CAC3B,SACD,CCjBA,MACC,8BACD,CAEA,yBAGC,gDAAiD,CADjD,qCAAsC,CADtC,oCAOD,CAHC,uCALD,yBAME,qBAEF,CADC,CAGD,eAKC,qCAA6B,CAF7B,iBAAkB,CAElB,gCAA6B,CAH7B,qCAAsC,CADtC,oCAKD,CAEA,6BACC,GACC,uBACD,CACD",sourcesContent:["/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n:root {\n\t--ck-toolbar-spinner-size: 18px;\n}\n\n.ck.ck-spinner-container {\n\tdisplay: block;\n\tposition: relative;\n}\n\n.ck.ck-spinner {\n\tposition: absolute;\n\ttop: 50%;\n\tleft: 0;\n\tright: 0;\n\tmargin: 0 auto;\n\ttransform: translateY(-50%);\n\tz-index: 1;\n}\n","/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n:root {\n\t--ck-toolbar-spinner-size: 18px;\n}\n\n.ck.ck-spinner-container {\n\twidth: var(--ck-toolbar-spinner-size);\n\theight: var(--ck-toolbar-spinner-size);\n\tanimation: 1.5s infinite ck-spinner-rotate linear;\n\n\t@media (prefers-reduced-motion: reduce) {\n\t\tanimation-duration: 3s;\n\t}\n}\n\n.ck.ck-spinner {\n\twidth: var(--ck-toolbar-spinner-size);\n\theight: var(--ck-toolbar-spinner-size);\n\tborder-radius: 50%;\n\tborder: 2px solid var(--ck-color-text);\n\tborder-top-color: transparent;\n}\n\n@keyframes ck-spinner-rotate {\n\tto {\n\t\ttransform: rotate(360deg)\n\t}\n}\n"],sourceRoot:""}]);const a=s},6016:(e,t,o)=>{"use strict";o.d(t,{A:()=>a});var n=o(1354),i=o.n(n),r=o(6314),s=o.n(r)()(i());s.push([e.id,".ck.ck-form__row{display:flex;flex-direction:row;flex-wrap:nowrap;justify-content:space-between}.ck.ck-form__row>:not(.ck-label){flex-grow:1}.ck.ck-form__row.ck-table-form__action-row .ck-button-cancel,.ck.ck-form__row.ck-table-form__action-row .ck-button-save{justify-content:center}.ck.ck-form__row{padding:var(--ck-spacing-standard) var(--ck-spacing-large) 0}[dir=ltr] .ck.ck-form__row>:not(.ck-label)+*{margin-left:var(--ck-spacing-large)}[dir=rtl] .ck.ck-form__row>:not(.ck-label)+*{margin-right:var(--ck-spacing-large)}.ck.ck-form__row>.ck-label{min-width:100%;width:100%}.ck.ck-form__row.ck-table-form__action-row{margin-top:var(--ck-spacing-large)}.ck.ck-form__row.ck-table-form__action-row .ck-button .ck-button__label{color:var(--ck-color-text)}","",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-table/theme/formrow.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-table/formrow.css","webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/mixins/_dir.css"],names:[],mappings:"AAKA,iBACC,YAAa,CACb,kBAAmB,CACnB,gBAAiB,CACjB,6BAaD,CAVC,iCACC,WACD,CAGC,wHAEC,sBACD,CCbF,iBACC,4DA2BD,CC7BC,6CDQG,mCCNH,CAFA,6CDYG,oCCVH,CDeA,2BAEC,cAAe,CADf,UAED,CAEA,2CACC,kCAKD,CAHC,wEACC,0BACD",sourcesContent:["/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n.ck.ck-form__row {\n\tdisplay: flex;\n\tflex-direction: row;\n\tflex-wrap: nowrap;\n\tjustify-content: space-between;\n\n\t/* Ignore labels that work as fieldset legends */\n\t& > *:not(.ck-label) {\n\t\tflex-grow: 1;\n\t}\n\n\t&.ck-table-form__action-row {\n\t\t& .ck-button-save,\n\t\t& .ck-button-cancel {\n\t\t\tjustify-content: center;\n\t\t}\n\t}\n}\n",'/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n@import "@ckeditor/ckeditor5-ui/theme/mixins/_dir.css";\n\n.ck.ck-form__row {\n\tpadding: var(--ck-spacing-standard) var(--ck-spacing-large) 0;\n\n\t/* Ignore labels that work as fieldset legends */\n\t& > *:not(.ck-label) {\n\t\t& + * {\n\t\t\t@mixin ck-dir ltr {\n\t\t\t\tmargin-left: var(--ck-spacing-large);\n\t\t\t}\n\n\t\t\t@mixin ck-dir rtl {\n\t\t\t\tmargin-right: var(--ck-spacing-large);\n\t\t\t}\n\t\t}\n\t}\n\n\t& > .ck-label {\n\t\twidth: 100%;\n\t\tmin-width: 100%;\n\t}\n\n\t&.ck-table-form__action-row {\n\t\tmargin-top: var(--ck-spacing-large);\n\n\t\t& .ck-button .ck-button__label {\n\t\t\tcolor: var(--ck-color-text);\n\t\t}\n\t}\n}\n','/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n@define-mixin ck-dir $direction {\n\t[dir="$(direction)"] & {\n\t\t@mixin-content;\n\t}\n}\n'],sourceRoot:""}]);const a=s},6048:(e,t,o)=>{"use strict";o.d(t,{A:()=>a});var n=o(1354),i=o.n(n),r=o(6314),s=o.n(r)()(i());s.push([e.id,".ck.ck-list{display:flex;flex-direction:column;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none}.ck.ck-list .ck-list__item,.ck.ck-list .ck-list__separator{display:block}.ck.ck-list .ck-list__item>:focus{position:relative;z-index:var(--ck-z-default)}.ck.ck-list{background:var(--ck-color-list-background);border-radius:0;list-style-type:none;padding:var(--ck-spacing-small) 0}.ck-rounded-corners .ck.ck-list,.ck.ck-list.ck-rounded-corners{border-radius:var(--ck-border-radius)}.ck.ck-list__item{cursor:default;min-width:15em}.ck.ck-list__item>.ck-button:not(.ck-list-item-button){border-radius:0;min-height:unset;padding:var(--ck-spacing-tiny) calc(var(--ck-spacing-standard)*2);width:100%}[dir=ltr] .ck.ck-list__item>.ck-button:not(.ck-list-item-button){text-align:left}[dir=rtl] .ck.ck-list__item>.ck-button:not(.ck-list-item-button){text-align:right}.ck.ck-list__item>.ck-button:not(.ck-list-item-button) .ck-button__label{line-height:calc(var(--ck-line-height-base)*var(--ck-font-size-base))}.ck.ck-list__item>.ck-button:not(.ck-list-item-button):active{box-shadow:none}.ck.ck-list__item>.ck-button.ck-on:not(.ck-list-item-button){background:var(--ck-color-list-button-on-background);color:var(--ck-color-list-button-on-text)}.ck.ck-list__item>.ck-button.ck-on:not(.ck-list-item-button):active{box-shadow:none}.ck.ck-list__item>.ck-button.ck-on:not(.ck-list-item-button):hover:not(.ck-disabled){background:var(--ck-color-list-button-on-background-focus)}.ck.ck-list__item>.ck-button.ck-on:not(.ck-list-item-button):focus:not(.ck-disabled){border-color:var(--ck-color-base-background)}.ck.ck-list__item>.ck-button:not(.ck-list-item-button):hover:not(.ck-disabled){background:var(--ck-color-list-button-hover-background)}.ck.ck-list__item>.ck-button.ck-switchbutton.ck-on{background:var(--ck-color-list-background);color:inherit}.ck.ck-list__item>.ck-button.ck-switchbutton.ck-on:hover:not(.ck-disabled){background:var(--ck-color-list-button-hover-background);color:inherit}.ck-list .ck-list__group{padding-top:var(--ck-spacing-medium)}.ck-list .ck-list__group:first-child{padding-top:0}:not(.ck-hidden)~.ck-list .ck-list__group{border-top:1px solid var(--ck-color-base-border)}.ck-list .ck-list__group>.ck-label{font-size:11px;font-weight:700;padding:var(--ck-spacing-medium) var(--ck-spacing-large) 0}.ck.ck-list__separator{background:var(--ck-color-base-border);height:1px;margin:var(--ck-spacing-small) 0;width:100%}","",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/components/list/list.css","webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/mixins/_unselectable.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-ui/components/list/list.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/mixins/_rounded.css","webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/mixins/_dir.css"],names:[],mappings:"AAOA,YAGC,YAAa,CACb,qBAAsB,CCFtB,qBAAsB,CACtB,wBAAyB,CACzB,oBAAqB,CACrB,gBDaD,CAZC,2DAEC,aACD,CAKA,kCACC,iBAAkB,CAClB,2BACD,CEdD,YAIC,0CAA2C,CCH3C,eAAgB,CDEhB,oBAAqB,CAIrB,iCACD,CCLC,+DAEC,qCAED,CDGD,kBACC,cAAe,CAGf,cA4DD,CA1DC,uDAIC,eAAgB,CAFhB,gBAAiB,CADjB,iEAAoE,CAEpE,UAwCD,CE/DA,iEF2BE,eEzBF,CAFA,iEF+BE,gBE7BF,CFgCC,yEAEC,qEACD,CAEA,8DACC,eACD,CAEA,6DACC,oDAAqD,CACrD,yCAaD,CAXC,oEACC,eACD,CAEA,qFACC,0DACD,CAEA,qFACC,4CACD,CAGD,+EACC,uDACD,CAMA,mDACC,0CAA2C,CAC3C,aAMD,CAJC,2EACC,uDAAwD,CACxD,aACD,CAKH,yBACC,oCAiBD,CAdC,qCACC,aACD,CAGA,0CACC,gDACD,CAEA,mCACC,cAAe,CACf,eAAiB,CACjB,0DACD,CAGD,uBAGC,sCAAuC,CAFvC,UAAW,CAKX,gCAAiC,CAJjC,UAKD",sourcesContent:['/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n@import "../../mixins/_unselectable.css";\n\n.ck.ck-list {\n\t@mixin ck-unselectable;\n\n\tdisplay: flex;\n\tflex-direction: column;\n\n\t& .ck-list__item,\n\t& .ck-list__separator {\n\t\tdisplay: block;\n\t}\n\n\t/* Make sure that whatever child of the list item gets focus, it remains on the\n\ttop. Thanks to that, styles like box-shadow, outline, etc. are not masked by\n\tadjacent list items. */\n\t& .ck-list__item > *:focus {\n\t\tposition: relative;\n\t\tz-index: var(--ck-z-default);\n\t}\n}\n',"/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/**\n * Makes element unselectable.\n */\n@define-mixin ck-unselectable {\n\t-moz-user-select: none;\n\t-webkit-user-select: none;\n\t-ms-user-select: none;\n\tuser-select: none\n}\n",'/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n@import "../../../mixins/_disabled.css";\n@import "../../../mixins/_rounded.css";\n@import "../../../mixins/_shadow.css";\n@import "@ckeditor/ckeditor5-ui/theme/mixins/_dir.css";\n\n.ck.ck-list {\n\t@mixin ck-rounded-corners;\n\n\tlist-style-type: none;\n\tbackground: var(--ck-color-list-background);\n\n\t/* A spacing at the beginning and end of the list */\n\tpadding: var(--ck-spacing-small) 0;\n}\n\n.ck.ck-list__item {\n\tcursor: default;\n\n\t/* Almost as wide as menu bar items. */\n\tmin-width: 15em;\n\n\t& > .ck-button:not(.ck-list-item-button) {\n\t\tpadding: var(--ck-spacing-tiny) calc(2 * var(--ck-spacing-standard));\n\t\tmin-height: unset;\n\t\twidth: 100%;\n\t\tborder-radius: 0;\n\n\t\t@mixin ck-dir ltr {\n\t\t\ttext-align: left;\n\t\t}\n\n\t\t@mixin ck-dir rtl {\n\t\t\ttext-align: right;\n\t\t}\n\n\t\t& .ck-button__label {\n\t\t\t/* https://github.com/ckeditor/ckeditor5-heading/issues/63 */\n\t\t\tline-height: calc(var(--ck-line-height-base) * var(--ck-font-size-base));\n\t\t}\n\n\t\t&:active {\n\t\t\tbox-shadow: none;\n\t\t}\n\n\t\t&.ck-on {\n\t\t\tbackground: var(--ck-color-list-button-on-background);\n\t\t\tcolor: var(--ck-color-list-button-on-text);\n\n\t\t\t&:active {\n\t\t\t\tbox-shadow: none;\n\t\t\t}\n\n\t\t\t&:hover:not(.ck-disabled) {\n\t\t\t\tbackground: var(--ck-color-list-button-on-background-focus);\n\t\t\t}\n\n\t\t\t&:focus:not(.ck-disabled) {\n\t\t\t\tborder-color: var(--ck-color-base-background);\n\t\t\t}\n\t\t}\n\n\t\t&:hover:not(.ck-disabled) {\n\t\t\tbackground: var(--ck-color-list-button-hover-background);\n\t\t}\n\t}\n\n\t/* It\'s unnecessary to change the background/text of a switch toggle; it has different ways\n\tof conveying its state (like the switcher) */\n\t& > .ck-button.ck-switchbutton {\n\t\t&.ck-on {\n\t\t\tbackground: var(--ck-color-list-background);\n\t\t\tcolor: inherit;\n\n\t\t\t&:hover:not(.ck-disabled) {\n\t\t\t\tbackground: var(--ck-color-list-button-hover-background);\n\t\t\t\tcolor: inherit;\n\t\t\t}\n\t\t}\n\t}\n}\n\n.ck-list .ck-list__group {\n\tpadding-top: var(--ck-spacing-medium);\n\n\t/* Lists come with an inner vertical padding. Don\'t duplicate it. */\n\t&:first-child {\n\t\tpadding-top: 0;\n\t}\n\n\t/* The group should have a border when it\'s not the first item. */\n\t*:not(.ck-hidden) ~ & {\n\t\tborder-top: 1px solid var(--ck-color-base-border);\n\t}\n\n\t& > .ck-label {\n\t\tfont-size: 11px;\n\t\tfont-weight: bold;\n\t\tpadding: var(--ck-spacing-medium) var(--ck-spacing-large) 0;\n\t}\n}\n\n.ck.ck-list__separator {\n\theight: 1px;\n\twidth: 100%;\n\tbackground: var(--ck-color-base-border);\n\n\t/* Give the separator some air */\n\tmargin: var(--ck-spacing-small) 0;\n}\n',"/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/**\n * Implements rounded corner interface for .ck-rounded-corners class.\n *\n * @see $ck-border-radius\n */\n@define-mixin ck-rounded-corners {\n\tborder-radius: 0;\n\n\t.ck-rounded-corners &,\n\t&.ck-rounded-corners {\n\t\tborder-radius: var(--ck-border-radius);\n\t\t@mixin-content;\n\t}\n}\n",'/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n@define-mixin ck-dir $direction {\n\t[dir="$(direction)"] & {\n\t\t@mixin-content;\n\t}\n}\n'],sourceRoot:""}]);const a=s},6186:(e,t,o)=>{"use strict";o.d(t,{A:()=>a});var n=o(1354),i=o.n(n),r=o(6314),s=o.n(r)()(i());s.push([e.id,".ck.ck-heading_heading1 .ck-button__label{font-size:20px}.ck.ck-heading_heading2 .ck-button__label{font-size:17px}.ck.ck-heading_heading3 .ck-button__label{font-size:14px}.ck[class*=ck-heading_heading]{font-weight:700}.ck.ck-dropdown.ck-heading-dropdown .ck-dropdown__button .ck-button__label{width:8em}.ck.ck-dropdown.ck-heading-dropdown .ck-dropdown__panel .ck-list__item{min-width:18em}","",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-heading/theme/heading.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-heading/heading.css"],names:[],mappings:"AAKA,0CACC,cACD,CAEA,0CACC,cACD,CAEA,0CACC,cACD,CAEA,+BACC,eACD,CCZC,2EACC,SACD,CAEA,uEACC,cACD",sourcesContent:['/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n.ck.ck-heading_heading1 .ck-button__label {\n\tfont-size: 20px;\n}\n\n.ck.ck-heading_heading2 .ck-button__label {\n\tfont-size: 17px;\n}\n\n.ck.ck-heading_heading3 .ck-button__label {\n\tfont-size: 14px;\n}\n\n.ck[class*="ck-heading_heading"] {\n\tfont-weight: bold;\n}\n',"/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/* Resize dropdown's button label. */\n.ck.ck-dropdown.ck-heading-dropdown {\n\t& .ck-dropdown__button .ck-button__label {\n\t\twidth: 8em;\n\t}\n\n\t& .ck-dropdown__panel .ck-list__item {\n\t\tmin-width: 18em;\n\t}\n}\n"],sourceRoot:""}]);const a=s},6314:e=>{"use strict";e.exports=function(e){var t=[];return t.toString=function(){return this.map((function(t){var o="",n=void 0!==t[5];return t[4]&&(o+="@supports (".concat(t[4],") {")),t[2]&&(o+="@media ".concat(t[2]," {")),n&&(o+="@layer".concat(t[5].length>0?" ".concat(t[5]):""," {")),o+=e(t),n&&(o+="}"),t[2]&&(o+="}"),t[4]&&(o+="}"),o})).join("")},t.i=function(e,o,n,i,r){"string"==typeof e&&(e=[[null,e,void 0]]);var s={};if(n)for(var a=0;a0?" ".concat(d[5]):""," {").concat(d[1],"}")),d[5]=r),o&&(d[2]?(d[1]="@media ".concat(d[2]," {").concat(d[1],"}"),d[2]=o):d[2]=o),i&&(d[4]?(d[1]="@supports (".concat(d[4],") {").concat(d[1],"}"),d[4]=i):d[4]="".concat(i)),t.push(d))}},t}},6365:(e,t,o)=>{"use strict";o.d(t,{A:()=>a});var n=o(1354),i=o.n(n),r=o(6314),s=o.n(r)()(i());s.push([e.id,".ck.ck-labeled-field-view>.ck.ck-labeled-field-view__input-wrapper{display:flex;position:relative}.ck.ck-labeled-field-view .ck.ck-label{display:block;position:absolute}:root{--ck-labeled-field-view-transition:.1s cubic-bezier(0,0,0.24,0.95);--ck-labeled-field-empty-unfocused-max-width:100% - 2 * var(--ck-spacing-medium);--ck-labeled-field-label-default-position-x:var(--ck-spacing-medium);--ck-labeled-field-label-default-position-y:calc(var(--ck-font-size-base)*0.6);--ck-color-labeled-field-label-background:var(--ck-color-base-background)}.ck.ck-labeled-field-view{border-radius:0}.ck-rounded-corners .ck.ck-labeled-field-view,.ck.ck-labeled-field-view.ck-rounded-corners{border-radius:var(--ck-border-radius)}.ck.ck-labeled-field-view>.ck.ck-labeled-field-view__input-wrapper{width:100%}.ck.ck-labeled-field-view>.ck.ck-labeled-field-view__input-wrapper>.ck.ck-label{background:var(--ck-color-labeled-field-label-background);font-weight:400;line-height:normal;max-width:100%;overflow:hidden;padding:0 calc(var(--ck-font-size-tiny)*.5);pointer-events:none;text-overflow:ellipsis;top:0;transition:transform var(--ck-labeled-field-view-transition),padding var(--ck-labeled-field-view-transition),background var(--ck-labeled-field-view-transition)}[dir=ltr] .ck.ck-labeled-field-view>.ck.ck-labeled-field-view__input-wrapper>.ck.ck-label{left:0;transform:translate(var(--ck-spacing-medium),-6px) scale(.75);transform-origin:0 0}[dir=rtl] .ck.ck-labeled-field-view>.ck.ck-labeled-field-view__input-wrapper>.ck.ck-label{right:0;transform:translate(calc(var(--ck-spacing-medium)*-1),-6px) scale(.75);transform-origin:100% 0}@media (prefers-reduced-motion:reduce){.ck.ck-labeled-field-view>.ck.ck-labeled-field-view__input-wrapper>.ck.ck-label{transition:none}}.ck.ck-labeled-field-view.ck-error .ck-input:not([readonly])+.ck.ck-label,.ck.ck-labeled-field-view.ck-error>.ck.ck-labeled-field-view__input-wrapper>.ck.ck-label{color:var(--ck-color-base-error)}.ck.ck-labeled-field-view .ck-labeled-field-view__status{font-size:var(--ck-font-size-small);margin-top:var(--ck-spacing-small);white-space:normal}.ck.ck-labeled-field-view .ck-labeled-field-view__status.ck-labeled-field-view__status_error{color:var(--ck-color-base-error)}.ck.ck-labeled-field-view.ck-disabled>.ck.ck-labeled-field-view__input-wrapper>.ck.ck-label,.ck.ck-labeled-field-view.ck-labeled-field-view_empty:not(.ck-labeled-field-view_focused)>.ck.ck-labeled-field-view__input-wrapper>.ck.ck-label{color:var(--ck-color-input-disabled-text)}.ck.ck-labeled-field-view.ck-disabled.ck-labeled-field-view_empty:not(.ck-labeled-field-view_placeholder)>.ck.ck-labeled-field-view__input-wrapper>.ck.ck-label,.ck.ck-labeled-field-view.ck-labeled-field-view_empty:not(.ck-labeled-field-view_focused):not(.ck-labeled-field-view_placeholder):not(.ck-error)>.ck.ck-labeled-field-view__input-wrapper>.ck.ck-label{background:transparent;max-width:calc(var(--ck-labeled-field-empty-unfocused-max-width));padding:0}[dir=ltr] .ck.ck-labeled-field-view.ck-disabled.ck-labeled-field-view_empty:not(.ck-labeled-field-view_placeholder)>.ck.ck-labeled-field-view__input-wrapper>.ck.ck-label,[dir=ltr] .ck.ck-labeled-field-view.ck-labeled-field-view_empty:not(.ck-labeled-field-view_focused):not(.ck-labeled-field-view_placeholder):not(.ck-error)>.ck.ck-labeled-field-view__input-wrapper>.ck.ck-label{transform:translate(var(--ck-labeled-field-label-default-position-x),var(--ck-labeled-field-label-default-position-y)) scale(1)}[dir=rtl] .ck.ck-labeled-field-view.ck-disabled.ck-labeled-field-view_empty:not(.ck-labeled-field-view_placeholder)>.ck.ck-labeled-field-view__input-wrapper>.ck.ck-label,[dir=rtl] .ck.ck-labeled-field-view.ck-labeled-field-view_empty:not(.ck-labeled-field-view_focused):not(.ck-labeled-field-view_placeholder):not(.ck-error)>.ck.ck-labeled-field-view__input-wrapper>.ck.ck-label{transform:translate(calc(var(--ck-labeled-field-label-default-position-x)*-1),var(--ck-labeled-field-label-default-position-y)) scale(1)}.ck.ck-labeled-field-view>.ck.ck-labeled-field-view__input-wrapper>.ck-dropdown>.ck.ck-button{background:transparent}.ck.ck-labeled-field-view.ck-labeled-field-view_empty>.ck.ck-labeled-field-view__input-wrapper>.ck-dropdown>.ck-button>.ck-button__label{opacity:0}.ck.ck-labeled-field-view.ck-labeled-field-view_empty:not(.ck-labeled-field-view_focused):not(.ck-labeled-field-view_placeholder)>.ck.ck-labeled-field-view__input-wrapper>.ck-dropdown+.ck-label{max-width:calc(var(--ck-labeled-field-empty-unfocused-max-width) - var(--ck-dropdown-arrow-size) - var(--ck-spacing-standard))}","",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/components/labeledfield/labeledfieldview.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-ui/components/labeledfield/labeledfieldview.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/mixins/_rounded.css","webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/mixins/_dir.css"],names:[],mappings:"AAMC,mEACC,YAAa,CACb,iBACD,CAEA,uCACC,aAAc,CACd,iBACD,CCND,MACC,kEAAsE,CACtE,gFAAiF,CACjF,oEAAqE,CACrE,8EAAiF,CACjF,yEACD,CAEA,0BCLC,eDmHD,CCjHC,2FAEC,qCAED,CDEA,mEACC,UAwCD,CAtCC,gFAkBC,yDAA0D,CAG1D,eAAmB,CADnB,kBAAoB,CAOpB,cAAe,CAFf,eAAgB,CANhB,2CAA8C,CAH9C,mBAAoB,CAQpB,sBAAuB,CAvBvB,KAAQ,CA4BR,+JAQD,CErDD,0FFoBG,MAAS,CAGT,6DAA+D,CAF/D,oBEnBH,CAFA,0FF2BG,OAAU,CAEV,sEAA0E,CAD1E,uBE1BH,CFgDE,uCAlCD,gFAmCE,eAEF,CADC,CASD,mKACC,gCACD,CAGD,yDACC,mCAAoC,CACpC,kCAAmC,CAInC,kBAKD,CAHC,6FACC,gCACD,CAID,4OAEC,yCACD,CAIA,uWAaC,sBAAuB,CAFvB,iEAAkE,CAGlE,SACD,CEtGA,2XF0FE,+HExFF,CAFA,2XF8FE,wIE5FF,CFyGA,8FACC,sBACD,CAGA,yIACC,SACD,CAGA,kMACC,8HACD",sourcesContent:["/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n.ck.ck-labeled-field-view {\n\t& > .ck.ck-labeled-field-view__input-wrapper {\n\t\tdisplay: flex;\n\t\tposition: relative;\n\t}\n\n\t& .ck.ck-label {\n\t\tdisplay: block;\n\t\tposition: absolute;\n\t}\n}\n",'/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n@import "@ckeditor/ckeditor5-ui/theme/mixins/_dir.css";\n@import "../../../mixins/_rounded.css";\n\n:root {\n\t--ck-labeled-field-view-transition: .1s cubic-bezier(0, 0, 0.24, 0.95);\n\t--ck-labeled-field-empty-unfocused-max-width: 100% - 2 * var(--ck-spacing-medium);\n\t--ck-labeled-field-label-default-position-x: var(--ck-spacing-medium);\n\t--ck-labeled-field-label-default-position-y: calc(0.6 * var(--ck-font-size-base));\n\t--ck-color-labeled-field-label-background: var(--ck-color-base-background);\n}\n\n.ck.ck-labeled-field-view {\n\t@mixin ck-rounded-corners;\n\n\t& > .ck.ck-labeled-field-view__input-wrapper {\n\t\twidth: 100%;\n\n\t\t& > .ck.ck-label {\n\t\t\ttop: 0px;\n\n\t\t\t@mixin ck-dir ltr {\n\t\t\t\tleft: 0px;\n\t\t\t\ttransform-origin: 0 0;\n\t\t\t\t/* By default, display the label scaled down above the field. */\n\t\t\t\ttransform: translate(var(--ck-spacing-medium), -6px) scale(.75);\n\t\t\t}\n\n\t\t\t@mixin ck-dir rtl {\n\t\t\t\tright: 0px;\n\t\t\t\ttransform-origin: 100% 0;\n\t\t\t\ttransform: translate(calc(-1 * var(--ck-spacing-medium)), -6px) scale(.75);\n\t\t\t}\n\n\t\t\tpointer-events: none;\n\n\t\t\tbackground: var(--ck-color-labeled-field-label-background);\n\t\t\tpadding: 0 calc(.5 * var(--ck-font-size-tiny));\n\t\t\tline-height: initial;\n\t\t\tfont-weight: normal;\n\n\t\t\t/* Prevent overflow when the label is longer than the input */\n\t\t\ttext-overflow: ellipsis;\n\t\t\toverflow: hidden;\n\n\t\t\tmax-width: 100%;\n\n\t\t\ttransition:\n\t\t\t\ttransform var(--ck-labeled-field-view-transition),\n\t\t\t\tpadding var(--ck-labeled-field-view-transition),\n\t\t\t\tbackground var(--ck-labeled-field-view-transition);\n\n\t\t\t@media (prefers-reduced-motion: reduce) {\n\t\t\t\ttransition: none;\n\t\t\t}\n\t\t}\n\t}\n\n\t&.ck-error {\n\t\t& > .ck.ck-labeled-field-view__input-wrapper > .ck.ck-label {\n\t\t\tcolor: var(--ck-color-base-error);\n\t\t}\n\n\t\t& .ck-input:not([readonly]) + .ck.ck-label {\n\t\t\tcolor: var(--ck-color-base-error);\n\t\t}\n\t}\n\n\t& .ck-labeled-field-view__status {\n\t\tfont-size: var(--ck-font-size-small);\n\t\tmargin-top: var(--ck-spacing-small);\n\n\t\t/* Let the info wrap to the next line to avoid stretching the layout horizontally.\n\t\tThe status could be very long. */\n\t\twhite-space: normal;\n\n\t\t&.ck-labeled-field-view__status_error {\n\t\t\tcolor: var(--ck-color-base-error);\n\t\t}\n\t}\n\n\t/* Disabled fields and fields that have no focus should fade out. */\n\t&.ck-disabled > .ck.ck-labeled-field-view__input-wrapper > .ck.ck-label,\n\t&.ck-labeled-field-view_empty:not(.ck-labeled-field-view_focused) > .ck.ck-labeled-field-view__input-wrapper > .ck.ck-label {\n\t\tcolor: var(--ck-color-input-disabled-text);\n\t}\n\n\t/* Fields that are disabled or not focused and without a placeholder should have full-sized labels. */\n\t/* stylelint-disable-next-line no-descending-specificity */\n\t&.ck-disabled.ck-labeled-field-view_empty:not(.ck-labeled-field-view_placeholder) > .ck.ck-labeled-field-view__input-wrapper > .ck.ck-label,\n\t&.ck-labeled-field-view_empty:not(.ck-labeled-field-view_focused):not(.ck-labeled-field-view_placeholder):not(.ck-error) > .ck.ck-labeled-field-view__input-wrapper > .ck.ck-label {\n\t\t@mixin ck-dir ltr {\n\t\t\ttransform: translate(var(--ck-labeled-field-label-default-position-x), var(--ck-labeled-field-label-default-position-y)) scale(1);\n\t\t}\n\n\t\t@mixin ck-dir rtl {\n\t\t\ttransform: translate(calc(-1 * var(--ck-labeled-field-label-default-position-x)), var(--ck-labeled-field-label-default-position-y)) scale(1);\n\t\t}\n\n\t\t/* Compensate for the default translate position. */\n\t\tmax-width: calc(var(--ck-labeled-field-empty-unfocused-max-width));\n\n\t\tbackground: transparent;\n\t\tpadding: 0;\n\t}\n\n\t/*------ DropdownView integration ----------------------------------------------------------------------------------- */\n\n\t/* Make sure dropdown\' background color in any of dropdown\'s state does not collide with labeled field. */\n\t& > .ck.ck-labeled-field-view__input-wrapper > .ck-dropdown > .ck.ck-button {\n\t\tbackground: transparent;\n\t}\n\n\t/* When the dropdown is "empty", the labeled field label replaces its label. */\n\t&.ck-labeled-field-view_empty > .ck.ck-labeled-field-view__input-wrapper > .ck-dropdown > .ck-button > .ck-button__label {\n\t\topacity: 0;\n\t}\n\n\t/* Make sure the label of the empty, unfocused input does not cover the dropdown arrow. */\n\t&.ck-labeled-field-view_empty:not(.ck-labeled-field-view_focused):not(.ck-labeled-field-view_placeholder) > .ck.ck-labeled-field-view__input-wrapper > .ck-dropdown + .ck-label {\n\t\tmax-width: calc(var(--ck-labeled-field-empty-unfocused-max-width) - var(--ck-dropdown-arrow-size) - var(--ck-spacing-standard));\n\t}\n}\n',"/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/**\n * Implements rounded corner interface for .ck-rounded-corners class.\n *\n * @see $ck-border-radius\n */\n@define-mixin ck-rounded-corners {\n\tborder-radius: 0;\n\n\t.ck-rounded-corners &,\n\t&.ck-rounded-corners {\n\t\tborder-radius: var(--ck-border-radius);\n\t\t@mixin-content;\n\t}\n}\n",'/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n@define-mixin ck-dir $direction {\n\t[dir="$(direction)"] & {\n\t\t@mixin-content;\n\t}\n}\n'],sourceRoot:""}]);const a=s},6531:(e,t,o)=>{"use strict";o.d(t,{A:()=>a});var n=o(1354),i=o.n(n),r=o(6314),s=o.n(r)()(i());s.push([e.id,".ck.ck-editor__editable span[data-ck-unsafe-element]{display:none}","",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-engine/theme/renderer.css"],names:[],mappings:"AAMA,qDACC,YACD",sourcesContent:["/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/* Elements marked by the Renderer as hidden should be invisible in the editor. */\n.ck.ck-editor__editable span[data-ck-unsafe-element] {\n\tdisplay: none;\n}\n"],sourceRoot:""}]);const a=s},6559:(e,t,o)=>{"use strict";o.d(t,{A:()=>a});var n=o(1354),i=o.n(n),r=o(6314),s=o.n(r)()(i());s.push([e.id,".ck.ck-dropdown-menu-list__nested-menu{display:block}","",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/components/dropdown/menu/dropdownmenu.css"],names:[],mappings:"AAKA,uCACC,aACD",sourcesContent:["/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n.ck.ck-dropdown-menu-list__nested-menu {\n\tdisplay: block;\n}\n"],sourceRoot:""}]);const a=s},6701:(e,t,o)=>{"use strict";o.d(t,{A:()=>a});var n=o(1354),i=o.n(n),r=o(6314),s=o.n(r)()(i());s.push([e.id,".ck.ck-table-cell-properties-form .ck-form__row.ck-table-cell-properties-form__alignment-row{flex-wrap:wrap}.ck.ck-table-cell-properties-form .ck-form__row.ck-table-cell-properties-form__alignment-row .ck.ck-toolbar:first-of-type{flex-grow:0.57}.ck.ck-table-cell-properties-form .ck-form__row.ck-table-cell-properties-form__alignment-row .ck.ck-toolbar:last-of-type{flex-grow:0.43}.ck.ck-table-cell-properties-form .ck-form__row.ck-table-cell-properties-form__alignment-row .ck.ck-toolbar .ck-button{flex-grow:1}.ck.ck-table-cell-properties-form{width:320px}.ck.ck-table-cell-properties-form .ck-form__row.ck-table-cell-properties-form__padding-row{align-self:flex-end;padding:0;width:25%}.ck.ck-table-cell-properties-form .ck-form__row.ck-table-cell-properties-form__alignment-row .ck.ck-toolbar{background:none;margin-top:var(--ck-spacing-standard)}","",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-table/theme/tablecellproperties.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-table/tablecellproperties.css"],names:[],mappings:"AAOE,6FACC,cAiBD,CAdE,0HAEC,cACD,CAEA,yHAEC,cACD,CAEA,uHACC,WACD,CClBJ,kCACC,WAkBD,CAfE,2FACC,mBAAoB,CACpB,SAAU,CACV,SACD,CAGC,4GACC,eAAgB,CAGhB,qCACD",sourcesContent:["/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n.ck.ck-table-cell-properties-form {\n\t& .ck-form__row {\n\t\t&.ck-table-cell-properties-form__alignment-row {\n\t\t\tflex-wrap: wrap;\n\n\t\t\t& .ck.ck-toolbar {\n\t\t\t\t&:first-of-type {\n\t\t\t\t\t/* 4 buttons out of 7 (h-alignment + v-alignment) = 0.57 */\n\t\t\t\t\tflex-grow: 0.57;\n\t\t\t\t}\n\n\t\t\t\t&:last-of-type {\n\t\t\t\t\t/* 3 buttons out of 7 (h-alignment + v-alignment) = 0.43 */\n\t\t\t\t\tflex-grow: 0.43;\n\t\t\t\t}\n\n\t\t\t\t& .ck-button {\n\t\t\t\t\tflex-grow: 1;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n","/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n.ck.ck-table-cell-properties-form {\n\twidth: 320px;\n\n\t& .ck-form__row {\n\t\t&.ck-table-cell-properties-form__padding-row {\n\t\t\talign-self: flex-end;\n\t\t\tpadding: 0;\n\t\t\twidth: 25%;\n\t\t}\n\n\t\t&.ck-table-cell-properties-form__alignment-row {\n\t\t\t& .ck.ck-toolbar {\n\t\t\t\tbackground: none;\n\n\t\t\t\t/* Compensate for missing input label that would push the margin (toolbar has no inputs). */\n\t\t\t\tmargin-top: var(--ck-spacing-standard);\n\t\t\t}\n\t\t}\n\t}\n}\n"],sourceRoot:""}]);const a=s},6779:(e,t,o)=>{"use strict";o.d(t,{A:()=>a});var n=o(1354),i=o.n(n),r=o(6314),s=o.n(r)()(i());s.push([e.id,'.ck .ck-widget .ck-widget__type-around__button{display:block;overflow:hidden;position:absolute;z-index:var(--ck-z-default)}.ck .ck-widget .ck-widget__type-around__button svg{left:50%;position:absolute;top:50%;z-index:calc(var(--ck-z-default) + 2)}.ck .ck-widget .ck-widget__type-around__button.ck-widget__type-around__button_before{left:min(10%,30px);top:calc(var(--ck-widget-outline-thickness)*-.5);transform:translateY(-50%)}.ck .ck-widget .ck-widget__type-around__button.ck-widget__type-around__button_after{bottom:calc(var(--ck-widget-outline-thickness)*-.5);right:min(10%,30px);transform:translateY(50%)}.ck .ck-widget.ck-widget_selected>.ck-widget__type-around>.ck-widget__type-around__button:after,.ck .ck-widget>.ck-widget__type-around>.ck-widget__type-around__button:hover:after{content:"";display:block;left:1px;position:absolute;top:1px;z-index:calc(var(--ck-z-default) + 1)}.ck .ck-widget>.ck-widget__type-around>.ck-widget__type-around__fake-caret{display:none;left:0;position:absolute;right:0}.ck .ck-widget:hover>.ck-widget__type-around>.ck-widget__type-around__fake-caret{left:calc(var(--ck-widget-outline-thickness)*-1);right:calc(var(--ck-widget-outline-thickness)*-1)}.ck .ck-widget.ck-widget_type-around_show-fake-caret_before>.ck-widget__type-around>.ck-widget__type-around__fake-caret{display:block;top:calc(var(--ck-widget-outline-thickness)*-1 - 1px)}.ck .ck-widget.ck-widget_type-around_show-fake-caret_after>.ck-widget__type-around>.ck-widget__type-around__fake-caret{bottom:calc(var(--ck-widget-outline-thickness)*-1 - 1px);display:block}.ck.ck-editor__editable.ck-read-only .ck-widget__type-around,.ck.ck-editor__editable.ck-restricted-editing_mode_restricted .ck-widget__type-around,.ck.ck-editor__editable.ck-widget__type-around_disabled .ck-widget__type-around{display:none}:root{--ck-widget-type-around-button-size:20px;--ck-color-widget-type-around-button-active:var(--ck-color-focus-border);--ck-color-widget-type-around-button-hover:var(--ck-color-widget-hover-border);--ck-color-widget-type-around-button-blurred-editable:var(--ck-color-widget-blurred-border);--ck-color-widget-type-around-button-radar-start-alpha:0;--ck-color-widget-type-around-button-radar-end-alpha:.3;--ck-color-widget-type-around-button-icon:var(--ck-color-base-background)}.ck .ck-widget .ck-widget__type-around__button{background:var(--ck-color-widget-type-around-button);border-radius:100px;height:var(--ck-widget-type-around-button-size);opacity:0;pointer-events:none;transition:opacity var(--ck-widget-handler-animation-duration) var(--ck-widget-handler-animation-curve),background var(--ck-widget-handler-animation-duration) var(--ck-widget-handler-animation-curve);width:var(--ck-widget-type-around-button-size)}@media (prefers-reduced-motion:reduce){.ck .ck-widget .ck-widget__type-around__button{transition:none}}.ck .ck-widget .ck-widget__type-around__button svg{height:8px;margin-top:1px;transform:translate(-50%,-50%);transition:transform .5s ease;width:10px}@media (prefers-reduced-motion:reduce){.ck .ck-widget .ck-widget__type-around__button svg{transition:none}}.ck .ck-widget .ck-widget__type-around__button svg *{stroke-dasharray:10;stroke-dashoffset:0;fill:none;stroke:var(--ck-color-widget-type-around-button-icon);stroke-width:1.5px;stroke-linecap:round;stroke-linejoin:round}.ck .ck-widget .ck-widget__type-around__button svg line{stroke-dasharray:7}.ck .ck-widget .ck-widget__type-around__button:hover{animation:ck-widget-type-around-button-sonar 1s ease infinite}.ck .ck-widget .ck-widget__type-around__button:hover svg polyline{animation:ck-widget-type-around-arrow-dash 2s linear}.ck .ck-widget .ck-widget__type-around__button:hover svg line{animation:ck-widget-type-around-arrow-tip-dash 2s linear}@media (prefers-reduced-motion:reduce){.ck .ck-widget .ck-widget__type-around__button:hover,.ck .ck-widget .ck-widget__type-around__button:hover svg line,.ck .ck-widget .ck-widget__type-around__button:hover svg polyline{animation:none}}.ck .ck-widget.ck-widget_selected>.ck-widget__type-around>.ck-widget__type-around__button,.ck .ck-widget:hover>.ck-widget__type-around>.ck-widget__type-around__button{opacity:1;pointer-events:auto}.ck .ck-widget:not(.ck-widget_selected)>.ck-widget__type-around>.ck-widget__type-around__button{background:var(--ck-color-widget-type-around-button-hover)}.ck .ck-widget.ck-widget_selected>.ck-widget__type-around>.ck-widget__type-around__button,.ck .ck-widget>.ck-widget__type-around>.ck-widget__type-around__button:hover{background:var(--ck-color-widget-type-around-button-active)}.ck .ck-widget.ck-widget_selected>.ck-widget__type-around>.ck-widget__type-around__button:after,.ck .ck-widget>.ck-widget__type-around>.ck-widget__type-around__button:hover:after{background:linear-gradient(135deg,hsla(0,0%,100%,0),hsla(0,0%,100%,.3));border-radius:100px;height:calc(var(--ck-widget-type-around-button-size) - 2px);width:calc(var(--ck-widget-type-around-button-size) - 2px)}.ck .ck-widget.ck-widget_with-selection-handle>.ck-widget__type-around>.ck-widget__type-around__button_before{margin-left:20px}.ck .ck-widget .ck-widget__type-around__fake-caret{animation:ck-widget-type-around-fake-caret-pulse 1s linear infinite normal forwards;background:var(--ck-color-base-text);height:1px;outline:1px solid hsla(0,0%,100%,.5);pointer-events:none}.ck .ck-widget.ck-widget_selected.ck-widget_type-around_show-fake-caret_after,.ck .ck-widget.ck-widget_selected.ck-widget_type-around_show-fake-caret_before{outline-color:transparent}.ck .ck-widget.ck-widget_type-around_show-fake-caret_after.ck-widget_selected:hover,.ck .ck-widget.ck-widget_type-around_show-fake-caret_before.ck-widget_selected:hover{outline-color:var(--ck-color-widget-hover-border)}.ck .ck-widget.ck-widget_type-around_show-fake-caret_after>.ck-widget__type-around>.ck-widget__type-around__button,.ck .ck-widget.ck-widget_type-around_show-fake-caret_before>.ck-widget__type-around>.ck-widget__type-around__button{opacity:0;pointer-events:none}.ck .ck-widget.ck-widget_type-around_show-fake-caret_after.ck-widget_selected.ck-widget_with-resizer>.ck-widget__resizer,.ck .ck-widget.ck-widget_type-around_show-fake-caret_after.ck-widget_with-selection-handle.ck-widget_selected:hover>.ck-widget__selection-handle,.ck .ck-widget.ck-widget_type-around_show-fake-caret_after.ck-widget_with-selection-handle.ck-widget_selected>.ck-widget__selection-handle,.ck .ck-widget.ck-widget_type-around_show-fake-caret_before.ck-widget_selected.ck-widget_with-resizer>.ck-widget__resizer,.ck .ck-widget.ck-widget_type-around_show-fake-caret_before.ck-widget_with-selection-handle.ck-widget_selected:hover>.ck-widget__selection-handle,.ck .ck-widget.ck-widget_type-around_show-fake-caret_before.ck-widget_with-selection-handle.ck-widget_selected>.ck-widget__selection-handle{opacity:0}.ck[dir=rtl] .ck-widget.ck-widget_with-selection-handle .ck-widget__type-around>.ck-widget__type-around__button_before{margin-left:0;margin-right:20px}.ck-editor__nested-editable.ck-editor__editable_selected .ck-widget.ck-widget_selected>.ck-widget__type-around>.ck-widget__type-around__button,.ck-editor__nested-editable.ck-editor__editable_selected .ck-widget:hover>.ck-widget__type-around>.ck-widget__type-around__button{opacity:0;pointer-events:none}.ck-editor__editable.ck-blurred .ck-widget.ck-widget_selected>.ck-widget__type-around>.ck-widget__type-around__button:not(:hover){background:var(--ck-color-widget-type-around-button-blurred-editable)}.ck-editor__editable.ck-blurred .ck-widget.ck-widget_selected>.ck-widget__type-around>.ck-widget__type-around__button:not(:hover) svg *{stroke:#999}@keyframes ck-widget-type-around-arrow-dash{0%{stroke-dashoffset:10}20%,to{stroke-dashoffset:0}}@keyframes ck-widget-type-around-arrow-tip-dash{0%,20%{stroke-dashoffset:7}40%,to{stroke-dashoffset:0}}@keyframes ck-widget-type-around-button-sonar{0%{box-shadow:0 0 0 0 hsla(var(--ck-color-focus-border-coordinates),var(--ck-color-widget-type-around-button-radar-start-alpha))}50%{box-shadow:0 0 0 5px hsla(var(--ck-color-focus-border-coordinates),var(--ck-color-widget-type-around-button-radar-end-alpha))}to{box-shadow:0 0 0 5px hsla(var(--ck-color-focus-border-coordinates),var(--ck-color-widget-type-around-button-radar-start-alpha))}}@keyframes ck-widget-type-around-fake-caret-pulse{0%{opacity:1}49%{opacity:1}50%{opacity:0}99%{opacity:0}to{opacity:1}}',"",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-widget/theme/widgettypearound.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-widget/widgettypearound.css"],names:[],mappings:"AASC,+CACC,aAAc,CAEd,eAAgB,CADhB,iBAAkB,CAElB,2BAwBD,CAtBC,mDAGC,QAAS,CAFT,iBAAkB,CAClB,OAAQ,CAER,qCACD,CAEA,qFAGC,kBAAoB,CADpB,gDAAoD,CAGpD,0BACD,CAEA,oFAEC,mDAAuD,CACvD,mBAAqB,CAErB,yBACD,CAUA,mLACC,UAAW,CACX,aAAc,CAGd,QAAS,CAFT,iBAAkB,CAClB,OAAQ,CAER,qCACD,CAMD,2EACC,YAAa,CAEb,MAAO,CADP,iBAAkB,CAElB,OACD,CAOA,iFACC,gDAAqD,CACrD,iDACD,CAKA,wHAEC,aAAc,CADd,qDAED,CAKA,uHACC,wDAA6D,CAC7D,aACD,CAoBD,mOACC,YACD,CC3GA,MACC,wCAAyC,CACzC,wEAAyE,CACzE,8EAA+E,CAC/E,2FAA4F,CAC5F,wDAAyD,CACzD,uDAAwD,CACxD,yEACD,CAgBC,+CAGC,oDAAqD,CACrD,mBAAoB,CAFpB,+CAAgD,CAVjD,SAAU,CACV,mBAAoB,CAYnB,uMAAyM,CAJzM,8CAwED,CAhEC,uCATD,+CAUE,eA+DF,CA9DC,CAEA,mDAEC,UAAW,CAGX,cAAe,CAFf,8BAA+B,CAC/B,6BAA8B,CAH9B,UAwBD,CAlBC,uCAPD,mDAQE,eAiBF,CAhBC,CAEA,qDACC,mBAAoB,CACpB,mBAAoB,CAEpB,SAAU,CACV,qDAAsD,CACtD,kBAAmB,CACnB,oBAAqB,CACrB,qBACD,CAEA,wDACC,kBACD,CAGD,qDAIC,6DA4BD,CAtBE,kEACC,oDACD,CAEA,8DACC,wDACD,CAGD,uCAQE,qLACC,cACD,CAEF,CASD,uKA7FD,SAAU,CACV,mBA8FC,CAOD,gGACC,0DACD,CAOA,uKAEC,2DAQD,CANC,mLAIC,uEAAkF,CADlF,mBAAoB,CADpB,2DAA4D,CAD5D,0DAID,CAOD,8GACC,gBACD,CAKA,mDAGC,mFAAoF,CAOpF,oCAAqC,CARrC,UAAW,CAOX,oCAAwC,CARxC,mBAUD,CAOC,6JAEC,yBACD,CAUA,yKACC,iDACD,CAMA,uOAxKD,SAAU,CACV,mBAyKC,CAoBA,6yBACC,SACD,CASF,uHACC,aAAc,CACd,iBACD,CAYG,iRAxNF,SAAU,CACV,mBAyNE,CAQH,kIACC,qEAKD,CAHC,wIACC,WACD,CAGD,4CACC,GACC,oBACD,CACA,OACC,mBACD,CACD,CAEA,gDACC,OACC,mBACD,CACA,OACC,mBACD,CACD,CAEA,8CACC,GACC,6HACD,CACA,IACC,6HACD,CACA,GACC,+HACD,CACD,CAEA,kDACC,GACC,SACD,CACA,IACC,SACD,CACA,IACC,SACD,CACA,IACC,SACD,CACA,GACC,SACD,CACD",sourcesContent:['/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n.ck .ck-widget {\n\t/*\n\t * Styles of the type around buttons\n\t */\n\t& .ck-widget__type-around__button {\n\t\tdisplay: block;\n\t\tposition: absolute;\n\t\toverflow: hidden;\n\t\tz-index: var(--ck-z-default);\n\n\t\t& svg {\n\t\t\tposition: absolute;\n\t\t\ttop: 50%;\n\t\t\tleft: 50%;\n\t\t\tz-index: calc(var(--ck-z-default) + 2);\n\t\t}\n\n\t\t&.ck-widget__type-around__button_before {\n\t\t\t/* Place it in the middle of the outline */\n\t\t\ttop: calc(-0.5 * var(--ck-widget-outline-thickness));\n\t\t\tleft: min(10%, 30px);\n\n\t\t\ttransform: translateY(-50%);\n\t\t}\n\n\t\t&.ck-widget__type-around__button_after {\n\t\t\t/* Place it in the middle of the outline */\n\t\t\tbottom: calc(-0.5 * var(--ck-widget-outline-thickness));\n\t\t\tright: min(10%, 30px);\n\n\t\t\ttransform: translateY(50%);\n\t\t}\n\t}\n\n\t/*\n\t * Styles for the buttons when:\n\t * - the widget is selected,\n\t * - or the button is being hovered (regardless of the widget state).\n\t */\n\t&.ck-widget_selected > .ck-widget__type-around > .ck-widget__type-around__button,\n\t& > .ck-widget__type-around > .ck-widget__type-around__button:hover {\n\t\t&::after {\n\t\t\tcontent: "";\n\t\t\tdisplay: block;\n\t\t\tposition: absolute;\n\t\t\ttop: 1px;\n\t\t\tleft: 1px;\n\t\t\tz-index: calc(var(--ck-z-default) + 1);\n\t\t}\n\t}\n\n\t/*\n\t * Styles for the horizontal "fake caret" which is displayed when the user navigates using the keyboard.\n\t */\n\t& > .ck-widget__type-around > .ck-widget__type-around__fake-caret {\n\t\tdisplay: none;\n\t\tposition: absolute;\n\t\tleft: 0;\n\t\tright: 0;\n\t}\n\n\t/*\n\t * When the widget is hovered the "fake caret" would normally be narrower than the\n\t * extra outline displayed around the widget. Let\'s extend the "fake caret" to match\n\t * the full width of the widget.\n\t */\n\t&:hover > .ck-widget__type-around > .ck-widget__type-around__fake-caret {\n\t\tleft: calc( -1 * var(--ck-widget-outline-thickness) );\n\t\tright: calc( -1 * var(--ck-widget-outline-thickness) );\n\t}\n\n\t/*\n\t * Styles for the horizontal "fake caret" when it should be displayed before the widget (backward keyboard navigation).\n\t */\n\t&.ck-widget_type-around_show-fake-caret_before > .ck-widget__type-around > .ck-widget__type-around__fake-caret {\n\t\ttop: calc( -1 * var(--ck-widget-outline-thickness) - 1px );\n\t\tdisplay: block;\n\t}\n\n\t/*\n\t * Styles for the horizontal "fake caret" when it should be displayed after the widget (forward keyboard navigation).\n\t */\n\t&.ck-widget_type-around_show-fake-caret_after > .ck-widget__type-around > .ck-widget__type-around__fake-caret {\n\t\tbottom: calc( -1 * var(--ck-widget-outline-thickness) - 1px );\n\t\tdisplay: block;\n\t}\n}\n\n/*\n * Integration with the read-only mode of the editor.\n */\n.ck.ck-editor__editable.ck-read-only .ck-widget__type-around {\n\tdisplay: none;\n}\n\n/*\n * Integration with the restricted editing mode (feature) of the editor.\n */\n.ck.ck-editor__editable.ck-restricted-editing_mode_restricted .ck-widget__type-around {\n\tdisplay: none;\n}\n\n/*\n * Integration with the #isEnabled property of the WidgetTypeAround plugin.\n */\n.ck.ck-editor__editable.ck-widget__type-around_disabled .ck-widget__type-around {\n\tdisplay: none;\n}\n','/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n:root {\n\t--ck-widget-type-around-button-size: 20px;\n\t--ck-color-widget-type-around-button-active: var(--ck-color-focus-border);\n\t--ck-color-widget-type-around-button-hover: var(--ck-color-widget-hover-border);\n\t--ck-color-widget-type-around-button-blurred-editable: var(--ck-color-widget-blurred-border);\n\t--ck-color-widget-type-around-button-radar-start-alpha: 0;\n\t--ck-color-widget-type-around-button-radar-end-alpha: .3;\n\t--ck-color-widget-type-around-button-icon: var(--ck-color-base-background);\n}\n\n@define-mixin ck-widget-type-around-button-visible {\n\topacity: 1;\n\tpointer-events: auto;\n}\n\n@define-mixin ck-widget-type-around-button-hidden {\n\topacity: 0;\n\tpointer-events: none;\n}\n\n.ck .ck-widget {\n\t/*\n\t * Styles of the type around buttons\n\t */\n\t& .ck-widget__type-around__button {\n\t\twidth: var(--ck-widget-type-around-button-size);\n\t\theight: var(--ck-widget-type-around-button-size);\n\t\tbackground: var(--ck-color-widget-type-around-button);\n\t\tborder-radius: 100px;\n\t\ttransition: opacity var(--ck-widget-handler-animation-duration) var(--ck-widget-handler-animation-curve), background var(--ck-widget-handler-animation-duration) var(--ck-widget-handler-animation-curve);\n\n\t\t@mixin ck-widget-type-around-button-hidden;\n\n\t\t@media (prefers-reduced-motion: reduce) {\n\t\t\ttransition: none;\n\t\t}\n\n\t\t& svg {\n\t\t\twidth: 10px;\n\t\t\theight: 8px;\n\t\t\ttransform: translate(-50%,-50%);\n\t\t\ttransition: transform .5s ease;\n\t\t\tmargin-top: 1px;\n\n\t\t\t@media (prefers-reduced-motion: reduce) {\n\t\t\t\ttransition: none;\n\t\t\t}\n\n\t\t\t& * {\n\t\t\t\tstroke-dasharray: 10;\n\t\t\t\tstroke-dashoffset: 0;\n\n\t\t\t\tfill: none;\n\t\t\t\tstroke: var(--ck-color-widget-type-around-button-icon);\n\t\t\t\tstroke-width: 1.5px;\n\t\t\t\tstroke-linecap: round;\n\t\t\t\tstroke-linejoin: round;\n\t\t\t}\n\n\t\t\t& line {\n\t\t\t\tstroke-dasharray: 7;\n\t\t\t}\n\t\t}\n\n\t\t&:hover {\n\t\t\t/*\n\t\t\t * Display the "sonar" around the button when hovered.\n\t\t\t */\n\t\t\tanimation: ck-widget-type-around-button-sonar 1s ease infinite;\n\n\t\t\t/*\n\t\t\t * Animate active button\'s icon.\n\t\t\t */\n\t\t\t& svg {\n\t\t\t\t& polyline {\n\t\t\t\t\tanimation: ck-widget-type-around-arrow-dash 2s linear;\n\t\t\t\t}\n\n\t\t\t\t& line {\n\t\t\t\t\tanimation: ck-widget-type-around-arrow-tip-dash 2s linear;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t@media (prefers-reduced-motion: reduce) {\n\t\t\t\tanimation: none;\n\n\t\t\t\t& svg {\n\t\t\t\t\t& polyline {\n\t\t\t\t\t\tanimation: none;\n\t\t\t\t\t}\n\n\t\t\t\t\t& line {\n\t\t\t\t\t\tanimation: none;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t/*\n\t * Show type around buttons when the widget gets selected or being hovered.\n\t */\n\t&.ck-widget_selected,\n\t&:hover {\n\t\t& > .ck-widget__type-around > .ck-widget__type-around__button {\n\t\t\t@mixin ck-widget-type-around-button-visible;\n\t\t}\n\t}\n\n\t/*\n\t * Styles for the buttons when the widget is NOT selected (but the buttons are visible\n\t * and still can be hovered).\n\t */\n\t&:not(.ck-widget_selected) > .ck-widget__type-around > .ck-widget__type-around__button {\n\t\tbackground: var(--ck-color-widget-type-around-button-hover);\n\t}\n\n\t/*\n\t * Styles for the buttons when:\n\t * - the widget is selected,\n\t * - or the button is being hovered (regardless of the widget state).\n\t */\n\t&.ck-widget_selected > .ck-widget__type-around > .ck-widget__type-around__button,\n\t& > .ck-widget__type-around > .ck-widget__type-around__button:hover {\n\t\tbackground: var(--ck-color-widget-type-around-button-active);\n\n\t\t&::after {\n\t\t\twidth: calc(var(--ck-widget-type-around-button-size) - 2px);\n\t\t\theight: calc(var(--ck-widget-type-around-button-size) - 2px);\n\t\t\tborder-radius: 100px;\n\t\t\tbackground: linear-gradient(135deg, hsla(0,0%,100%,0) 0%, hsla(0,0%,100%,.3) 100%);\n\t\t}\n\t}\n\n\t/*\n\t * Styles for the "before" button when the widget has a selection handle. Because some space\n\t * is consumed by the handle, the button must be moved slightly to the right to let it breathe.\n\t */\n\t&.ck-widget_with-selection-handle > .ck-widget__type-around > .ck-widget__type-around__button_before {\n\t\tmargin-left: 20px;\n\t}\n\n\t/*\n\t * Styles for the horizontal "fake caret" which is displayed when the user navigates using the keyboard.\n\t */\n\t& .ck-widget__type-around__fake-caret {\n\t\tpointer-events: none;\n\t\theight: 1px;\n\t\tanimation: ck-widget-type-around-fake-caret-pulse linear 1s infinite normal forwards;\n\n\t\t/*\n\t\t * The semi-transparent-outline+background combo improves the contrast\n\t\t * when the background underneath the fake caret is dark.\n\t\t */\n\t\toutline: solid 1px hsla(0, 0%, 100%, .5);\n\t\tbackground: var(--ck-color-base-text);\n\t}\n\n\t/*\n\t * Styles of the widget when the "fake caret" is blinking (e.g. upon keyboard navigation).\n\t * Despite the widget being physically selected in the model, its outline should disappear.\n\t */\n\t&.ck-widget_selected {\n\t\t&.ck-widget_type-around_show-fake-caret_before,\n\t\t&.ck-widget_type-around_show-fake-caret_after {\n\t\t\toutline-color: transparent;\n\t\t}\n\t}\n\n\t&.ck-widget_type-around_show-fake-caret_before,\n\t&.ck-widget_type-around_show-fake-caret_after {\n\t\t/*\n\t\t * When the "fake caret" is visible we simulate that the widget is not selected\n\t\t * (despite being physically selected), so the outline color should be for the\n\t\t * unselected widget.\n\t\t */\n\t\t&.ck-widget_selected:hover {\n\t\t\toutline-color: var(--ck-color-widget-hover-border);\n\t\t}\n\n\t\t/*\n\t\t * Styles of the type around buttons when the "fake caret" is blinking (e.g. upon keyboard navigation).\n\t\t * In this state, the type around buttons would collide with the fake carets so they should disappear.\n\t\t */\n\t\t& > .ck-widget__type-around > .ck-widget__type-around__button {\n\t\t\t@mixin ck-widget-type-around-button-hidden;\n\t\t}\n\n\t\t/*\n\t\t * Fake horizontal caret integration with the selection handle. When the caret is visible, simply\n\t\t * hide the handle because it intersects with the caret (and does not make much sense anyway).\n\t\t */\n\t\t&.ck-widget_with-selection-handle {\n\t\t\t&.ck-widget_selected,\n\t\t\t&.ck-widget_selected:hover {\n\t\t\t\t& > .ck-widget__selection-handle {\n\t\t\t\t\topacity: 0\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t/*\n\t\t * Fake horizontal caret integration with the resize UI. When the caret is visible, simply\n\t\t * hide the resize UI because it creates too much noise. It can be visible when the user\n\t\t * hovers the widget, though.\n\t\t */\n\t\t&.ck-widget_selected.ck-widget_with-resizer > .ck-widget__resizer {\n\t\t\topacity: 0\n\t\t}\n\t}\n}\n\n/*\n * Styles for the "before" button when the widget has a selection handle in an RTL environment.\n * The selection handler is aligned to the right side of the widget so there is no need to create\n * additional space for it next to the "before" button.\n */\n.ck[dir="rtl"] .ck-widget.ck-widget_with-selection-handle .ck-widget__type-around > .ck-widget__type-around__button_before {\n\tmargin-left: 0;\n\tmargin-right: 20px;\n}\n\n/*\n * Hide type around buttons when the widget is selected as a child of a selected\n * nested editable (e.g. mulit-cell table selection).\n *\n * See https://github.com/ckeditor/ckeditor5/issues/7263.\n */\n.ck-editor__nested-editable.ck-editor__editable_selected {\n\t& .ck-widget {\n\t\t&.ck-widget_selected,\n\t\t&:hover {\n\t\t\t& > .ck-widget__type-around > .ck-widget__type-around__button {\n\t\t\t\t@mixin ck-widget-type-around-button-hidden;\n\t\t\t}\n\t\t}\n\t}\n}\n\n/*\n * Styles for the buttons when the widget is selected but the user clicked outside of the editor (blurred the editor).\n */\n.ck-editor__editable.ck-blurred .ck-widget.ck-widget_selected > .ck-widget__type-around > .ck-widget__type-around__button:not(:hover) {\n\tbackground: var(--ck-color-widget-type-around-button-blurred-editable);\n\n\t& svg * {\n\t\tstroke: hsl(0,0%,60%);\n\t}\n}\n\n@keyframes ck-widget-type-around-arrow-dash {\n\t0% {\n\t\tstroke-dashoffset: 10;\n\t}\n\t20%, 100% {\n\t\tstroke-dashoffset: 0;\n\t}\n}\n\n@keyframes ck-widget-type-around-arrow-tip-dash {\n\t0%, 20% {\n\t\tstroke-dashoffset: 7;\n\t}\n\t40%, 100% {\n\t\tstroke-dashoffset: 0;\n\t}\n}\n\n@keyframes ck-widget-type-around-button-sonar {\n\t0% {\n\t\tbox-shadow: 0 0 0 0 hsla(var(--ck-color-focus-border-coordinates), var(--ck-color-widget-type-around-button-radar-start-alpha));\n\t}\n\t50% {\n\t\tbox-shadow: 0 0 0 5px hsla(var(--ck-color-focus-border-coordinates), var(--ck-color-widget-type-around-button-radar-end-alpha));\n\t}\n\t100% {\n\t\tbox-shadow: 0 0 0 5px hsla(var(--ck-color-focus-border-coordinates), var(--ck-color-widget-type-around-button-radar-start-alpha));\n\t}\n}\n\n@keyframes ck-widget-type-around-fake-caret-pulse {\n\t0% {\n\t\topacity: 1;\n\t}\n\t49% {\n\t\topacity: 1;\n\t}\n\t50% {\n\t\topacity: 0;\n\t}\n\t99% {\n\t\topacity: 0;\n\t}\n\t100% {\n\t\topacity: 1;\n\t}\n}\n'],sourceRoot:""}]);const a=s},7133:(e,t,o)=>{"use strict";o.d(t,{A:()=>a});var n=o(1354),i=o.n(n),r=o(6314),s=o.n(r)()(i());s.push([e.id,'.ck.ck-splitbutton{font-size:inherit}.ck.ck-splitbutton .ck-splitbutton__action:focus{z-index:calc(var(--ck-z-default) + 1)}:root{--ck-color-split-button-hover-background:#ebebeb;--ck-color-split-button-hover-border:#b3b3b3}[dir=ltr] .ck.ck-splitbutton.ck-splitbutton_open>.ck-splitbutton__action,[dir=ltr] .ck.ck-splitbutton:hover>.ck-splitbutton__action{border-bottom-right-radius:unset;border-top-right-radius:unset}[dir=rtl] .ck.ck-splitbutton.ck-splitbutton_open>.ck-splitbutton__action,[dir=rtl] .ck.ck-splitbutton:hover>.ck-splitbutton__action{border-bottom-left-radius:unset;border-top-left-radius:unset}.ck.ck-splitbutton>.ck-splitbutton__arrow{min-width:unset}[dir=ltr] .ck.ck-splitbutton>.ck-splitbutton__arrow{border-bottom-left-radius:unset;border-top-left-radius:unset}[dir=rtl] .ck.ck-splitbutton>.ck-splitbutton__arrow{border-bottom-right-radius:unset;border-top-right-radius:unset}.ck.ck-splitbutton>.ck-splitbutton__arrow svg{width:var(--ck-dropdown-arrow-size)}.ck.ck-splitbutton>.ck-splitbutton__arrow:not(:focus){border-bottom-width:0;border-top-width:0}.ck.ck-splitbutton.ck-splitbutton_open{border-radius:0}.ck-rounded-corners .ck.ck-splitbutton.ck-splitbutton_open,.ck.ck-splitbutton.ck-splitbutton_open.ck-rounded-corners{border-radius:var(--ck-border-radius)}.ck-rounded-corners .ck.ck-splitbutton.ck-splitbutton_open>.ck-splitbutton__action,.ck.ck-splitbutton.ck-splitbutton_open.ck-rounded-corners>.ck-splitbutton__action{border-bottom-left-radius:0}.ck-rounded-corners .ck.ck-splitbutton.ck-splitbutton_open>.ck-splitbutton__arrow,.ck.ck-splitbutton.ck-splitbutton_open.ck-rounded-corners>.ck-splitbutton__arrow{border-bottom-right-radius:0}.ck.ck-splitbutton.ck-splitbutton_open>.ck-button:not(.ck-on):not(.ck-disabled):not(:hover),.ck.ck-splitbutton:hover>.ck-button:not(.ck-on):not(.ck-disabled):not(:hover){background:var(--ck-color-split-button-hover-background)}.ck.ck-splitbutton.ck-splitbutton_open>.ck-splitbutton__arrow:not(.ck-disabled):after,.ck.ck-splitbutton:hover>.ck-splitbutton__arrow:not(.ck-disabled):after{background-color:var(--ck-color-split-button-hover-border);content:"";height:100%;position:absolute;width:1px}.ck.ck-splitbutton.ck-splitbutton_open>.ck-splitbutton__arrow:focus:after,.ck.ck-splitbutton:hover>.ck-splitbutton__arrow:focus:after{--ck-color-split-button-hover-border:var(--ck-color-focus-border)}[dir=ltr] .ck.ck-splitbutton.ck-splitbutton_open>.ck-splitbutton__arrow:not(.ck-disabled):after,[dir=ltr] .ck.ck-splitbutton:hover>.ck-splitbutton__arrow:not(.ck-disabled):after{left:-1px}[dir=rtl] .ck.ck-splitbutton.ck-splitbutton_open>.ck-splitbutton__arrow:not(.ck-disabled):after,[dir=rtl] .ck.ck-splitbutton:hover>.ck-splitbutton__arrow:not(.ck-disabled):after{right:-1px}',"",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/components/dropdown/splitbutton.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-ui/components/dropdown/splitbutton.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/mixins/_rounded.css"],names:[],mappings:"AAKA,mBAEC,iBAKD,CAHC,iDACC,qCACD,CCJD,MACC,gDAAyD,CACzD,4CACD,CAQE,oIAGC,gCAAiC,CADjC,6BAED,CAEA,oIAGC,+BAAgC,CADhC,4BAED,CAGD,0CAGC,eAiBD,CAfC,oDAGC,+BAAgC,CADhC,4BAED,CAEA,oDAGC,gCAAiC,CADjC,6BAED,CAEA,8CACC,mCACD,CAKD,sDAEC,qBAAwB,CADxB,kBAED,CAIA,uCCnDA,eD6DA,CC3DA,qHAEC,qCAED,CD+CE,qKACC,2BACD,CAEA,mKACC,4BACD,CAUD,0KACC,wDACD,CAIA,8JAKC,0DAA2D,CAJ3D,UAAW,CAGX,WAAY,CAFZ,iBAAkB,CAClB,SAGD,CAGA,sIACC,iEACD,CAGC,kLACC,SACD,CAIA,kLACC,UACD",sourcesContent:["/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n.ck.ck-splitbutton {\n\t/* Enable font size inheritance, which allows fluid UI scaling. */\n\tfont-size: inherit;\n\n\t& .ck-splitbutton__action:focus {\n\t\tz-index: calc(var(--ck-z-default) + 1);\n\t}\n}\n\n",'/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n@import "../../../mixins/_rounded.css";\n\n:root {\n\t--ck-color-split-button-hover-background: hsl(0, 0%, 92%);\n\t--ck-color-split-button-hover-border: hsl(0, 0%, 70%);\n}\n\n.ck.ck-splitbutton {\n\t/*\n\t * Note: ck-rounded and ck-dir mixins don\'t go together (because they both use @nest).\n\t */\n\t&:hover > .ck-splitbutton__action,\n\t&.ck-splitbutton_open > .ck-splitbutton__action {\n\t\t[dir="ltr"] & {\n\t\t\t/* Don\'t round the action button on the right side */\n\t\t\tborder-top-right-radius: unset;\n\t\t\tborder-bottom-right-radius: unset;\n\t\t}\n\n\t\t[dir="rtl"] & {\n\t\t\t/* Don\'t round the action button on the left side */\n\t\t\tborder-top-left-radius: unset;\n\t\t\tborder-bottom-left-radius: unset;\n\t\t}\n\t}\n\n\t& > .ck-splitbutton__arrow {\n\t\t/* It\'s a text-less button and since the icon is positioned absolutely in such situation,\n\t\tit must get some arbitrary min-width. */\n\t\tmin-width: unset;\n\n\t\t[dir="ltr"] & {\n\t\t\t/* Don\'t round the arrow button on the left side */\n\t\t\tborder-top-left-radius: unset;\n\t\t\tborder-bottom-left-radius: unset;\n\t\t}\n\n\t\t[dir="rtl"] & {\n\t\t\t/* Don\'t round the arrow button on the right side */\n\t\t\tborder-top-right-radius: unset;\n\t\t\tborder-bottom-right-radius: unset;\n\t\t}\n\n\t\t& svg {\n\t\t\twidth: var(--ck-dropdown-arrow-size);\n\t\t}\n\t}\n\n\t/* Make sure the divider stretches 100% height of the button\n\thttps://github.com/ckeditor/ckeditor5/issues/10936 */\n\t& > .ck-splitbutton__arrow:not(:focus) {\n\t\tborder-top-width: 0px;\n\t\tborder-bottom-width: 0px;\n\t}\n\n\t/* Don\'t round the bottom left and right corners of the buttons when "open"\n\thttps://github.com/ckeditor/ckeditor5/issues/816 */\n\t&.ck-splitbutton_open {\n\t\t@mixin ck-rounded-corners {\n\t\t\t& > .ck-splitbutton__action {\n\t\t\t\tborder-bottom-left-radius: 0;\n\t\t\t}\n\n\t\t\t& > .ck-splitbutton__arrow {\n\t\t\t\tborder-bottom-right-radius: 0;\n\t\t\t}\n\t\t}\n\t}\n\n\t/* When the split button is "open" (the arrow is on) or being hovered, it should get some styling\n\tas a whole. The background of both buttons should stand out and there should be a visual\n\tseparation between both buttons. */\n\t&.ck-splitbutton_open,\n\t&:hover {\n\t\t/* When the split button hovered as a whole, not as individual buttons. */\n\t\t& > .ck-button:not(.ck-on):not(.ck-disabled):not(:hover) {\n\t\t\tbackground: var(--ck-color-split-button-hover-background);\n\t\t}\n\n\t\t/* Splitbutton separator needs to be set with the ::after pseudoselector\n\t\tto display properly the borders on focus */\n\t\t& > .ck-splitbutton__arrow:not(.ck-disabled)::after {\n\t\t\tcontent: \'\';\n\t\t\tposition: absolute;\n\t\t\twidth: 1px;\n\t\t\theight: 100%;\n\t\t\tbackground-color: var(--ck-color-split-button-hover-border);\n\t\t}\n\n\t\t/* Make sure the divider between the buttons looks fine when the button is focused */\n\t\t& > .ck-splitbutton__arrow:focus::after {\n\t\t\t--ck-color-split-button-hover-border: var(--ck-color-focus-border);\n\t\t}\n\n\t\t[dir="ltr"] & {\n\t\t\t& > .ck-splitbutton__arrow:not(.ck-disabled)::after {\n\t\t\t\tleft: -1px;\n\t\t\t}\n\t\t}\n\n\t\t[dir="rtl"] & {\n\t\t\t& > .ck-splitbutton__arrow:not(.ck-disabled)::after {\n\t\t\t\tright: -1px;\n\t\t\t}\n\t\t}\n\t}\n}\n',"/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/**\n * Implements rounded corner interface for .ck-rounded-corners class.\n *\n * @see $ck-border-radius\n */\n@define-mixin ck-rounded-corners {\n\tborder-radius: 0;\n\n\t.ck-rounded-corners &,\n\t&.ck-rounded-corners {\n\t\tborder-radius: var(--ck-border-radius);\n\t\t@mixin-content;\n\t}\n}\n"],sourceRoot:""}]);const a=s},7216:(e,t,o)=>{"use strict";o.d(t,{A:()=>a});var n=o(1354),i=o.n(n),r=o(6314),s=o.n(r)()(i());s.push([e.id,":root{--ck-mention-list-max-height:300px}.ck.ck-mentions{max-height:var(--ck-mention-list-max-height);overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain}.ck.ck-mentions>.ck-list__item{flex-shrink:0;overflow:hidden}","",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-mention/theme/mentionui.css"],names:[],mappings:"AAKA,MACC,kCACD,CAEA,gBACC,4CAA6C,CAM7C,iBAAkB,CAJlB,eAAgB,CAMhB,2BAQD,CAJC,+BAEC,aAAc,CADd,eAED",sourcesContent:["/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n:root {\n\t--ck-mention-list-max-height: 300px;\n}\n\n.ck.ck-mentions {\n\tmax-height: var(--ck-mention-list-max-height);\n\n\toverflow-y: auto;\n\n\t/* Prevent unnecessary horizontal scrollbar in Safari\n\thttps://github.com/ckeditor/ckeditor5-mention/issues/41 */\n\toverflow-x: hidden;\n\n\toverscroll-behavior: contain;\n\n\t/* Prevent unnecessary vertical scrollbar in Safari\n\thttps://github.com/ckeditor/ckeditor5-mention/issues/41 */\n\t& > .ck-list__item {\n\t\toverflow: hidden;\n\t\tflex-shrink: 0;\n\t}\n}\n"],sourceRoot:""}]);const a=s},7217:(e,t,o)=>{"use strict";o.d(t,{A:()=>a});var n=o(1354),i=o.n(n),r=o(6314),s=o.n(r)()(i());s.push([e.id,".ck.ck-balloon-panel.ck-dropdown-menu__nested-menu__panel{max-height:314px;overflow-y:auto;position:absolute;z-index:calc(var(--ck-z-panel) + 1)}:root{--ck-dropdown-menu-menu-panel-max-width:75vw}.ck.ck-balloon-panel.ck-dropdown-menu__nested-menu__panel{background:var(--ck-color-dropdown-panel-background);border:1px solid var(--ck-color-dropdown-panel-border);bottom:0;box-shadow:var(--ck-drop-shadow),0 0;height:fit-content;max-width:var(--ck-dropdown-menu-menu-panel-max-width)}.ck.ck-balloon-panel.ck-dropdown-menu__nested-menu__panel:after,.ck.ck-balloon-panel.ck-dropdown-menu__nested-menu__panel:before{display:none}.ck.ck-balloon-panel.ck-dropdown-menu__nested-menu__panel.ck-balloon-panel_es,.ck.ck-balloon-panel.ck-dropdown-menu__nested-menu__panel.ck-balloon-panel_se{border-top-left-radius:0}.ck.ck-balloon-panel.ck-dropdown-menu__nested-menu__panel.ck-balloon-panel_sw,.ck.ck-balloon-panel.ck-dropdown-menu__nested-menu__panel.ck-balloon-panel_ws{border-top-right-radius:0}.ck.ck-balloon-panel.ck-dropdown-menu__nested-menu__panel.ck-balloon-panel_en,.ck.ck-balloon-panel.ck-dropdown-menu__nested-menu__panel.ck-balloon-panel_ne{border-bottom-left-radius:0}.ck.ck-balloon-panel.ck-dropdown-menu__nested-menu__panel.ck-balloon-panel_nw,.ck.ck-balloon-panel.ck-dropdown-menu__nested-menu__panel.ck-balloon-panel_wn{border-bottom-right-radius:0}.ck.ck-balloon-panel.ck-dropdown-menu__nested-menu__panel:focus{outline:none}","",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/components/dropdown/menu/dropdownmenupanel.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-ui/components/dropdown/menu/dropdownmenupanel.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/mixins/_shadow.css"],names:[],mappings:"AAKA,0DAEC,gBAAiB,CACjB,eAAgB,CAFhB,iBAAkB,CAGlB,mCACD,CCFA,MACC,4CACD,CAEA,0DAGC,oDAAqD,CACrD,sDAAuD,CACvD,QAAS,CCRT,oCAA8B,CDS9B,kBAAmB,CACnB,sDAgCD,CA7BC,iIAEC,YACD,CAGA,4JAEC,wBACD,CAEA,4JAEC,yBACD,CAEA,4JAEC,2BACD,CAEA,4JAEC,4BACD,CAEA,gEACC,YACD",sourcesContent:["/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n.ck.ck-balloon-panel.ck-dropdown-menu__nested-menu__panel {\n\tposition: absolute;\n\tmax-height: 314px; /* With the default settings, this is equal to 10 menu items. */\n\toverflow-y: auto;\n\tz-index: calc(var(--ck-z-panel) + 1);\n}\n",'/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n@import "../../../../mixins/_rounded.css";\n@import "../../../../mixins/_shadow.css";\n\n:root {\n\t--ck-dropdown-menu-menu-panel-max-width: 75vw;\n}\n\n.ck.ck-balloon-panel.ck-dropdown-menu__nested-menu__panel {\n\t@mixin ck-drop-shadow;\n\n\tbackground: var(--ck-color-dropdown-panel-background);\n\tborder: 1px solid var(--ck-color-dropdown-panel-border);\n\tbottom: 0;\n\theight: fit-content;\n\tmax-width: var(--ck-dropdown-menu-menu-panel-max-width);\n\n\t/* Reset balloon styling */\n\t&::after,\n\t&::before {\n\t\tdisplay: none;\n\t}\n\n\t/* Corner border radius consistent with the button. */\n\t&.ck-balloon-panel_es,\n\t&.ck-balloon-panel_se {\n\t\tborder-top-left-radius: 0;\n\t}\n\n\t&.ck-balloon-panel_ws,\n\t&.ck-balloon-panel_sw {\n\t\tborder-top-right-radius: 0;\n\t}\n\n\t&.ck-balloon-panel_en,\n\t&.ck-balloon-panel_ne {\n\t\tborder-bottom-left-radius: 0;\n\t}\n\n\t&.ck-balloon-panel_wn,\n\t&.ck-balloon-panel_nw {\n\t\tborder-bottom-right-radius: 0;\n\t}\n\n\t&:focus {\n\t\toutline: none;\n\t}\n}\n',"/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/**\n * A helper to combine multiple shadows.\n */\n@define-mixin ck-box-shadow $shadowA, $shadowB: 0 0 {\n\tbox-shadow: $shadowA, $shadowB;\n}\n\n/**\n * Gives an element a drop shadow so it looks like a floating panel.\n */\n@define-mixin ck-drop-shadow {\n\t@mixin ck-box-shadow var(--ck-drop-shadow);\n}\n"],sourceRoot:""}]);const a=s},7289:(e,t,o)=>{"use strict";o.d(t,{A:()=>a});var n=o(1354),i=o.n(n),r=o(6314),s=o.n(r)()(i());s.push([e.id,".ck.ck-sticky-panel .ck-sticky-panel__content_sticky{position:fixed;top:0;z-index:var(--ck-z-panel)}.ck.ck-sticky-panel .ck-sticky-panel__content_sticky_bottom-limit{position:absolute;top:auto}.ck.ck-sticky-panel .ck-sticky-panel__content_sticky{border-top-left-radius:0;border-top-right-radius:0;border-width:0 1px 1px;box-shadow:var(--ck-drop-shadow),0 0}","",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/components/panel/stickypanel.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-ui/components/panel/stickypanel.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/mixins/_shadow.css"],names:[],mappings:"AAMC,qDAEC,cAAe,CACf,KAAM,CAFN,yBAGD,CAEA,kEAEC,iBAAkB,CADlB,QAED,CCPA,qDAIC,wBAAyB,CACzB,yBAA0B,CAF1B,sBAAuB,CCFxB,oCDKA",sourcesContent:["/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n.ck.ck-sticky-panel {\n\t& .ck-sticky-panel__content_sticky {\n\t\tz-index: var(--ck-z-panel); /* #315 */\n\t\tposition: fixed;\n\t\ttop: 0;\n\t}\n\n\t& .ck-sticky-panel__content_sticky_bottom-limit {\n\t\ttop: auto;\n\t\tposition: absolute;\n\t}\n}\n",'/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n@import "../../../mixins/_shadow.css";\n\n.ck.ck-sticky-panel {\n\t& .ck-sticky-panel__content_sticky {\n\t\t@mixin ck-drop-shadow;\n\n\t\tborder-width: 0 1px 1px;\n\t\tborder-top-left-radius: 0;\n\t\tborder-top-right-radius: 0;\n\t}\n}\n',"/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/**\n * A helper to combine multiple shadows.\n */\n@define-mixin ck-box-shadow $shadowA, $shadowB: 0 0 {\n\tbox-shadow: $shadowA, $shadowB;\n}\n\n/**\n * Gives an element a drop shadow so it looks like a floating panel.\n */\n@define-mixin ck-drop-shadow {\n\t@mixin ck-box-shadow var(--ck-drop-shadow);\n}\n"],sourceRoot:""}]);const a=s},7406:(e,t,o)=>{"use strict";o.d(t,{A:()=>a});var n=o(1354),i=o.n(n),r=o(6314),s=o.n(r)()(i());s.push([e.id,":root{--ck-color-selector-caption-background:#f7f7f7;--ck-color-selector-caption-text:#333;--ck-color-selector-caption-highlighted-background:#fd0}.ck-content .table>figcaption{background-color:var(--ck-color-selector-caption-background);caption-side:top;color:var(--ck-color-selector-caption-text);display:table-caption;font-size:.75em;outline-offset:-1px;padding:.6em;text-align:center;word-break:break-word}@media (forced-colors:active){.ck-content .table>figcaption{background-color:unset;color:unset}}@media (forced-colors:none){.ck.ck-editor__editable .table>figcaption.table__caption_highlighted{animation:ck-table-caption-highlight .6s ease-out}}.ck.ck-editor__editable .table>figcaption.ck-placeholder:before{overflow:hidden;padding-left:inherit;padding-right:inherit;text-overflow:ellipsis;white-space:nowrap}@keyframes ck-table-caption-highlight{0%{background-color:var(--ck-color-selector-caption-highlighted-background)}to{background-color:var(--ck-color-selector-caption-background)}}","",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-table/theme/tablecaption.css","webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/mixins/_mediacolors.css"],names:[],mappings:"AAOA,MACC,8CAAuD,CACvD,qCAAiD,CACjD,uDACD,CAGA,8BAMC,4DAA6D,CAJ7D,gBAAiB,CAGjB,2CAA4C,CAJ5C,qBAAsB,CAOtB,eAAgB,CAChB,mBAAoB,CAFpB,YAAa,CAHb,iBAAkB,CADlB,qBAaD,CCxBC,8BACC,8BDoBA,sBAAuB,CACvB,WCnBA,CACD,CAIA,4BDqBC,qEACC,iDACD,CCnBD,CDsBA,gEASC,eAAgB,CARhB,oBAAqB,CACrB,qBAAsB,CAQtB,sBAAuB,CAFvB,kBAGD,CAGD,sCACC,GACC,wEACD,CAEA,GACC,4DACD,CACD",sourcesContent:['/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n@import "@ckeditor/ckeditor5-ui/theme/mixins/_mediacolors.css";\n\n:root {\n\t--ck-color-selector-caption-background: hsl(0, 0%, 97%);\n\t--ck-color-selector-caption-text: hsl(0, 0%, 20%);\n\t--ck-color-selector-caption-highlighted-background: hsl(52deg 100% 50%);\n}\n\n/* Content styles */\n.ck-content .table > figcaption {\n\tdisplay: table-caption;\n\tcaption-side: top;\n\tword-break: break-word;\n\ttext-align: center;\n\tcolor: var(--ck-color-selector-caption-text);\n\tbackground-color: var(--ck-color-selector-caption-background);\n\tpadding: .6em;\n\tfont-size: .75em;\n\toutline-offset: -1px;\n\n\t/* Improve placeholder rendering in high-constrast mode (https://github.com/ckeditor/ckeditor5/issues/14907). */\n\t@mixin ck-media-forced-colors {\n\t\tbackground-color: unset;\n\t\tcolor: unset;\n\t}\n}\n\n/* Editing styles */\n.ck.ck-editor__editable .table > figcaption {\n\t@mixin ck-media-default-colors {\n\t\t&.table__caption_highlighted {\n\t\t\tanimation: ck-table-caption-highlight .6s ease-out;\n\t\t}\n\t}\n\n\t&.ck-placeholder::before {\n\t\tpadding-left: inherit;\n\t\tpadding-right: inherit;\n\n\t\t/*\n\t\t * Make sure the table caption placeholder doesn\'t overflow the placeholder area.\n\t\t * See https://github.com/ckeditor/ckeditor5/issues/9162.\n\t\t */\n\t\twhite-space: nowrap;\n\t\toverflow: hidden;\n\t\ttext-overflow: ellipsis;\n\t}\n}\n\n@keyframes ck-table-caption-highlight {\n\t0% {\n\t\tbackground-color: var(--ck-color-selector-caption-highlighted-background);\n\t}\n\n\t100% {\n\t\tbackground-color: var(--ck-color-selector-caption-background);\n\t}\n}\n',"/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n@define-mixin ck-media-forced-colors {\n\t@media (forced-colors: active) {\n\t\t& {\n\t\t\t@mixin-content;\n\t\t}\n\t}\n}\n\n@define-mixin ck-media-default-colors {\n\t@media (forced-colors: none) {\n\t\t& {\n\t\t\t@mixin-content;\n\t\t}\n\t}\n}\n"],sourceRoot:""}]);const a=s},7456:(e,t,o)=>{"use strict";o.d(t,{A:()=>a});var n=o(1354),i=o.n(n),r=o(6314),s=o.n(r)()(i());s.push([e.id,".ck .ck-link_selected{background:var(--ck-color-link-selected-background)}.ck .ck-link_selected span.image-inline{outline:var(--ck-widget-outline-thickness) solid var(--ck-color-link-selected-background)}.ck .ck-fake-link-selection{background:var(--ck-color-link-fake-selection)}.ck .ck-fake-link-selection_collapsed{border-right:1px solid var(--ck-color-base-text);height:100%;margin-right:-1px;outline:1px solid hsla(0,0%,100%,.5)}","",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-link/link.css"],names:[],mappings:"AAMA,sBACC,mDAMD,CAHC,wCACC,yFACD,CAOD,4BACC,8CACD,CAGA,sCAEC,gDAAiD,CADjD,WAAY,CAEZ,iBAAkB,CAClB,oCACD",sourcesContent:['/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/* Class added to span element surrounding currently selected link. */\n.ck .ck-link_selected {\n\tbackground: var(--ck-color-link-selected-background);\n\n\t/* Give linked inline images some outline to let the user know they are also part of the link. */\n\t& span.image-inline {\n\t\toutline: var(--ck-widget-outline-thickness) solid var(--ck-color-link-selected-background);\n\t}\n}\n\n/*\n * Classes used by the "fake visual selection" displayed in the content when an input\n * in the link UI has focus (the browser does not render the native selection in this state).\n */\n.ck .ck-fake-link-selection {\n\tbackground: var(--ck-color-link-fake-selection);\n}\n\n/* A collapsed fake visual selection. */\n.ck .ck-fake-link-selection_collapsed {\n\theight: 100%;\n\tborder-right: 1px solid var(--ck-color-base-text);\n\tmargin-right: -1px;\n\toutline: solid 1px hsla(0, 0%, 100%, .5);\n}\n'],sourceRoot:""}]);const a=s},7475:(e,t,o)=>{"use strict";o.d(t,{A:()=>a});var n=o(1354),i=o.n(n),r=o(6314),s=o.n(r)()(i());s.push([e.id,":root{--ck-toolbar-dropdown-max-width:60vw}.ck.ck-toolbar-dropdown>.ck-dropdown__panel{max-width:var(--ck-toolbar-dropdown-max-width);width:max-content}.ck.ck-toolbar-dropdown>.ck-dropdown__panel .ck-button:focus{z-index:calc(var(--ck-z-default) + 1)}.ck.ck-toolbar-dropdown .ck-toolbar{border:0}","",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/components/dropdown/toolbardropdown.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-ui/components/dropdown/toolbardropdown.css"],names:[],mappings:"AAKA,MACC,oCACD,CAEA,4CAGC,8CAA+C,CAD/C,iBAQD,CAJE,6DACC,qCACD,CCZF,oCACC,QACD",sourcesContent:["/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n:root {\n\t--ck-toolbar-dropdown-max-width: 60vw;\n}\n\n.ck.ck-toolbar-dropdown > .ck-dropdown__panel {\n\t/* https://github.com/ckeditor/ckeditor5/issues/5586 */\n\twidth: max-content;\n\tmax-width: var(--ck-toolbar-dropdown-max-width);\n\n\t& .ck-button {\n\t\t&:focus {\n\t\t\tz-index: calc(var(--ck-z-default) + 1);\n\t\t}\n\t}\n}\n","/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n.ck.ck-toolbar-dropdown .ck-toolbar {\n\tborder: 0;\n}\n"],sourceRoot:""}]);const a=s},7504:(e,t,o)=>{"use strict";o.d(t,{A:()=>a});var n=o(1354),i=o.n(n),r=o(6314),s=o.n(r)()(i());s.push([e.id,".ck.ck-editor__editable .image,.ck.ck-editor__editable .image-inline{position:relative}.ck.ck-editor__editable .image .ck-progress-bar,.ck.ck-editor__editable .image-inline .ck-progress-bar{left:0;position:absolute;top:0}.ck.ck-editor__editable .image-inline.ck-appear,.ck.ck-editor__editable .image.ck-appear{animation:fadeIn .7s}@media (prefers-reduced-motion:reduce){.ck.ck-editor__editable .image-inline.ck-appear,.ck.ck-editor__editable .image.ck-appear{animation:none;opacity:1}}.ck.ck-editor__editable .image .ck-progress-bar,.ck.ck-editor__editable .image-inline .ck-progress-bar{background:var(--ck-color-upload-bar-background);height:2px;transition:width .1s;width:0}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}","",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-image/theme/imageuploadprogress.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-image/imageuploadprogress.css"],names:[],mappings:"AAMC,qEAEC,iBACD,CAGA,uGAIC,MAAO,CAFP,iBAAkB,CAClB,KAED,CCRC,yFACC,oBAMD,CAJC,uCAHD,yFAKE,cAAe,CADf,SAGF,CADC,CAKF,uGAIC,gDAAiD,CAFjD,UAAW,CAGX,oBAAuB,CAFvB,OAGD,CAGD,kBACC,GAAO,SAAY,CACnB,GAAO,SAAY,CACpB",sourcesContent:["/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n.ck.ck-editor__editable {\n\t& .image,\n\t& .image-inline {\n\t\tposition: relative;\n\t}\n\n\t/* Upload progress bar. */\n\t& .image .ck-progress-bar,\n\t& .image-inline .ck-progress-bar {\n\t\tposition: absolute;\n\t\ttop: 0;\n\t\tleft: 0;\n\t}\n}\n","/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n.ck.ck-editor__editable {\n\t& .image,\n\t& .image-inline {\n\t\t/* Showing animation. */\n\t\t&.ck-appear {\n\t\t\tanimation: fadeIn 700ms;\n\n\t\t\t@media (prefers-reduced-motion: reduce) {\n\t\t\t\topacity: 1;\n\t\t\t\tanimation: none;\n\t\t\t}\n\t\t}\n\t}\n\n\t/* Upload progress bar. */\n\t& .image .ck-progress-bar,\n\t& .image-inline .ck-progress-bar {\n\t\theight: 2px;\n\t\twidth: 0;\n\t\tbackground: var(--ck-color-upload-bar-background);\n\t\ttransition: width 100ms;\n\t}\n}\n\n@keyframes fadeIn {\n\tfrom { opacity: 0; }\n\tto { opacity: 1; }\n}\n"],sourceRoot:""}]);const a=s},7659:e=>{"use strict";var t={};e.exports=function(e,o){var n=function(e){if(void 0===t[e]){var o=document.querySelector(e);if(window.HTMLIFrameElement&&o instanceof window.HTMLIFrameElement)try{o=o.contentDocument.head}catch(e){o=null}t[e]=o}return t[e]}(e);if(!n)throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.");n.appendChild(o)}},7875:(e,t,o)=>{"use strict";o.d(t,{A:()=>a});var n=o(1354),i=o.n(n),r=o(6314),s=o.n(r)()(i());s.push([e.id,".ck-editor__editable .ck-list-bogus-paragraph{display:block}","",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-list/theme/documentlist.css"],names:[],mappings:"AAKA,8CACC,aACD",sourcesContent:["/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n.ck-editor__editable .ck-list-bogus-paragraph {\n\tdisplay: block;\n}\n"],sourceRoot:""}]);const a=s},7879:(e,t,o)=>{"use strict";o.d(t,{A:()=>a});var n=o(1354),i=o.n(n),r=o(6314),s=o.n(r)()(i());s.push([e.id,":root{--ck-image-style-spacing:1.5em;--ck-inline-image-style-spacing:calc(var(--ck-image-style-spacing)/2)}.ck-content .image.image-style-block-align-left,.ck-content .image.image-style-block-align-right{max-width:calc(100% - var(--ck-image-style-spacing))}.ck-content .image.image-style-align-left,.ck-content .image.image-style-align-right{clear:none}.ck-content .image.image-style-side{float:right;margin-left:var(--ck-image-style-spacing);max-width:50%}.ck-content .image.image-style-align-left{float:left;margin-right:var(--ck-image-style-spacing)}.ck-content .image.image-style-align-right{float:right;margin-left:var(--ck-image-style-spacing)}.ck-content .image.image-style-block-align-right{margin-left:auto;margin-right:0}.ck-content .image.image-style-block-align-left{margin-left:0;margin-right:auto}.ck-content .image-style-align-center{margin-left:auto;margin-right:auto}.ck-content .image-style-align-left{float:left;margin-right:var(--ck-image-style-spacing)}.ck-content .image-style-align-right{float:right;margin-left:var(--ck-image-style-spacing)}.ck-content p+.image.image-style-align-left,.ck-content p+.image.image-style-align-right,.ck-content p+.image.image-style-side{margin-top:0}.ck-content .image-inline.image-style-align-left,.ck-content .image-inline.image-style-align-right{margin-bottom:var(--ck-inline-image-style-spacing);margin-top:var(--ck-inline-image-style-spacing)}.ck-content .image-inline.image-style-align-left{margin-right:var(--ck-inline-image-style-spacing)}.ck-content .image-inline.image-style-align-right{margin-left:var(--ck-inline-image-style-spacing)}.ck.ck-splitbutton.ck-splitbutton_flatten.ck-splitbutton_open>.ck-splitbutton__action:not(.ck-disabled),.ck.ck-splitbutton.ck-splitbutton_flatten.ck-splitbutton_open>.ck-splitbutton__arrow:not(.ck-disabled),.ck.ck-splitbutton.ck-splitbutton_flatten.ck-splitbutton_open>.ck-splitbutton__arrow:not(.ck-disabled):not(:hover),.ck.ck-splitbutton.ck-splitbutton_flatten:hover>.ck-splitbutton__action:not(.ck-disabled),.ck.ck-splitbutton.ck-splitbutton_flatten:hover>.ck-splitbutton__arrow:not(.ck-disabled),.ck.ck-splitbutton.ck-splitbutton_flatten:hover>.ck-splitbutton__arrow:not(.ck-disabled):not(:hover){background-color:var(--ck-color-button-on-background)}.ck.ck-splitbutton.ck-splitbutton_flatten.ck-splitbutton_open>.ck-splitbutton__action:not(.ck-disabled):after,.ck.ck-splitbutton.ck-splitbutton_flatten.ck-splitbutton_open>.ck-splitbutton__arrow:not(.ck-disabled):after,.ck.ck-splitbutton.ck-splitbutton_flatten.ck-splitbutton_open>.ck-splitbutton__arrow:not(.ck-disabled):not(:hover):after,.ck.ck-splitbutton.ck-splitbutton_flatten:hover>.ck-splitbutton__action:not(.ck-disabled):after,.ck.ck-splitbutton.ck-splitbutton_flatten:hover>.ck-splitbutton__arrow:not(.ck-disabled):after,.ck.ck-splitbutton.ck-splitbutton_flatten:hover>.ck-splitbutton__arrow:not(.ck-disabled):not(:hover):after{display:none}.ck.ck-splitbutton.ck-splitbutton_flatten.ck-splitbutton_open:hover>.ck-splitbutton__action:not(.ck-disabled),.ck.ck-splitbutton.ck-splitbutton_flatten.ck-splitbutton_open:hover>.ck-splitbutton__arrow:not(.ck-disabled),.ck.ck-splitbutton.ck-splitbutton_flatten.ck-splitbutton_open:hover>.ck-splitbutton__arrow:not(.ck-disabled):not(:hover){background-color:var(--ck-color-button-on-hover-background)}","",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-image/theme/imagestyle.css"],names:[],mappings:"AAKA,MACC,8BAA+B,CAC/B,qEACD,CAQE,iGAEC,oDACD,CAIA,qFAEC,UACD,CAEA,oCACC,WAAY,CACZ,yCAA0C,CAC1C,aACD,CAEA,0CACC,UAAW,CACX,0CACD,CAEA,2CACC,WAAY,CACZ,yCACD,CAEA,iDAEC,gBAAiB,CADjB,cAED,CAEA,gDACC,aAAc,CACd,iBACD,CAGD,sCACC,gBAAiB,CACjB,iBACD,CAEA,oCACC,UAAW,CACX,0CACD,CAEA,qCACC,WAAY,CACZ,yCACD,CAGA,+HAGC,YACD,CAGC,mGAGC,kDAAmD,CADnD,+CAED,CAEA,iDACC,iDACD,CAEA,kDACC,gDACD,CAUC,0lBAGC,qDAKD,CAHC,8nBACC,YACD,CAKD,oVAGC,2DACD",sourcesContent:["/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n:root {\n\t--ck-image-style-spacing: 1.5em;\n\t--ck-inline-image-style-spacing: calc(var(--ck-image-style-spacing) / 2);\n}\n\n.ck-content {\n\t/* See: https://github.com/ckeditor/ckeditor5/issues/16317 */\n\t& .image {\n\t\t/* Provides a minimal side margin for the left and right aligned images, so that the user has a visual feedback\n\t\tconfirming successful application of the style if image width exceeds the editor's size.\n\t\tSee https://github.com/ckeditor/ckeditor5/issues/9342 */\n\t\t&.image-style-block-align-left,\n\t\t&.image-style-block-align-right {\n\t\t\tmax-width: calc(100% - var(--ck-image-style-spacing));\n\t\t}\n\n\t\t/* Allows displaying multiple floating images in the same line.\n\t\tSee https://github.com/ckeditor/ckeditor5/issues/9183#issuecomment-804988132 */\n\t\t&.image-style-align-left,\n\t\t&.image-style-align-right {\n\t\t\tclear: none;\n\t\t}\n\n\t\t&.image-style-side {\n\t\t\tfloat: right;\n\t\t\tmargin-left: var(--ck-image-style-spacing);\n\t\t\tmax-width: 50%;\n\t\t}\n\n\t\t&.image-style-align-left {\n\t\t\tfloat: left;\n\t\t\tmargin-right: var(--ck-image-style-spacing);\n\t\t}\n\n\t\t&.image-style-align-right {\n\t\t\tfloat: right;\n\t\t\tmargin-left: var(--ck-image-style-spacing);\n\t\t}\n\n\t\t&.image-style-block-align-right {\n\t\t\tmargin-right: 0;\n\t\t\tmargin-left: auto;\n\t\t}\n\n\t\t&.image-style-block-align-left {\n\t\t\tmargin-left: 0;\n\t\t\tmargin-right: auto;\n\t\t}\n\t}\n\n\t& .image-style-align-center {\n\t\tmargin-left: auto;\n\t\tmargin-right: auto;\n\t}\n\n\t& .image-style-align-left {\n\t\tfloat: left;\n\t\tmargin-right: var(--ck-image-style-spacing);\n\t}\n\n\t& .image-style-align-right {\n\t\tfloat: right;\n\t\tmargin-left: var(--ck-image-style-spacing);\n\t}\n\n\t/* Simulates margin collapsing with the preceding paragraph, which does not work for the floating elements. */\n\t& p + .image.image-style-align-left,\n\t& p + .image.image-style-align-right,\n\t& p + .image.image-style-side {\n\t\tmargin-top: 0;\n\t}\n\n\t& .image-inline {\n\t\t&.image-style-align-left,\n\t\t&.image-style-align-right {\n\t\t\tmargin-top: var(--ck-inline-image-style-spacing);\n\t\t\tmargin-bottom: var(--ck-inline-image-style-spacing);\n\t\t}\n\n\t\t&.image-style-align-left {\n\t\t\tmargin-right: var(--ck-inline-image-style-spacing);\n\t\t}\n\n\t\t&.image-style-align-right {\n\t\t\tmargin-left: var(--ck-inline-image-style-spacing);\n\t\t}\n\t}\n}\n\n.ck.ck-splitbutton {\n\t/* The button should display as a regular drop-down if the action button\n\tis forced to fire the same action as the arrow button. */\n\t&.ck-splitbutton_flatten {\n\t\t&:hover,\n\t\t&.ck-splitbutton_open {\n\t\t\t& > .ck-splitbutton__action:not(.ck-disabled),\n\t\t\t& > .ck-splitbutton__arrow:not(.ck-disabled),\n\t\t\t& > .ck-splitbutton__arrow:not(.ck-disabled):not(:hover) {\n\t\t\t\tbackground-color: var(--ck-color-button-on-background);\n\n\t\t\t\t&::after {\n\t\t\t\t\tdisplay: none;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t&.ck-splitbutton_open:hover {\n\t\t\t& > .ck-splitbutton__action:not(.ck-disabled),\n\t\t\t& > .ck-splitbutton__arrow:not(.ck-disabled),\n\t\t\t& > .ck-splitbutton__arrow:not(.ck-disabled):not(:hover) {\n\t\t\t\tbackground-color: var(--ck-color-button-on-hover-background);\n\t\t\t}\n\t\t}\n\t}\n}\n"],sourceRoot:""}]);const a=s},7962:(e,t,o)=>{"use strict";o.d(t,{A:()=>a});var n=o(1354),i=o.n(n),r=o(6314),s=o.n(r)()(i());s.push([e.id,".ck.ck-color-grid{display:grid}:root{--ck-color-grid-tile-size:24px;--ck-color-color-grid-check-icon:#166fd4}.ck.ck-color-grid{grid-gap:5px;padding:8px}.ck.ck-color-grid__tile{transition:box-shadow .2s ease}@media (forced-colors:none){.ck.ck-color-grid__tile{border:0;height:var(--ck-color-grid-tile-size);min-height:var(--ck-color-grid-tile-size);min-width:var(--ck-color-grid-tile-size);padding:0;width:var(--ck-color-grid-tile-size)}.ck.ck-color-grid__tile.ck-on,.ck.ck-color-grid__tile:focus:not(.ck-disabled),.ck.ck-color-grid__tile:hover:not(.ck-disabled){border:0}.ck.ck-color-grid__tile.ck-color-selector__color-tile_bordered{box-shadow:0 0 0 1px var(--ck-color-base-border)}.ck.ck-color-grid__tile.ck-on{box-shadow:inset 0 0 0 1px var(--ck-color-base-background),0 0 0 2px var(--ck-color-base-text)}.ck.ck-color-grid__tile:focus:not(.ck-disabled),.ck.ck-color-grid__tile:hover:not(.ck-disabled){box-shadow:inset 0 0 0 1px var(--ck-color-base-background),0 0 0 2px var(--ck-color-focus-border)}}@media (forced-colors:active){.ck.ck-color-grid__tile{height:unset;min-height:unset;min-width:unset;padding:0 var(--ck-spacing-small);width:unset}.ck.ck-color-grid__tile .ck-button__label{display:inline-block}}@media (prefers-reduced-motion:reduce){.ck.ck-color-grid__tile{transition:none}}.ck.ck-color-grid__tile.ck-disabled{cursor:unset;transition:unset}.ck.ck-color-grid__tile .ck.ck-icon{color:var(--ck-color-color-grid-check-icon);display:none}.ck.ck-color-grid__tile.ck-on .ck.ck-icon{display:block}.ck.ck-color-grid__label{padding:0 var(--ck-spacing-standard)}","",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/components/colorgrid/colorgrid.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-ui/components/colorgrid/colorgrid.css","webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/mixins/_mediacolors.css"],names:[],mappings:"AAKA,kBACC,YACD,CCCA,MACC,8BAA+B,CAK/B,wCACD,CAEA,kBACC,YAAa,CACb,WACD,CAEA,wBACC,8BAkED,CC3EC,4BACC,wBDgBA,QAAS,CAJT,qCAAsC,CAEtC,yCAA0C,CAD1C,wCAAyC,CAEzC,SAAU,CAJV,oCCTA,CDgBA,8HAIC,QACD,CAEA,+DACC,gDACD,CAEA,8BACC,8FACD,CAEA,gGAEC,iGACD,CCjCD,CAZA,8BACC,wBDqDA,YAAa,CAEb,gBAAiB,CADjB,eAAgB,CAEhB,iCAAkC,CAJlC,WClDA,CDwDA,0CACC,oBACD,CCzDD,CD4DA,uCAhDD,wBAiDE,eAkBF,CAjBC,CAEA,oCACC,YAAa,CACb,gBACD,CAEA,oCAEC,2CAA4C,CAD5C,YAED,CAGC,0CACC,aACD,CAIF,yBACC,oCACD",sourcesContent:["/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n.ck.ck-color-grid {\n\tdisplay: grid;\n}\n",'/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n@import "../../../mixins/_rounded.css";\n@import "@ckeditor/ckeditor5-ui/theme/mixins/_mediacolors.css";\n\n:root {\n\t--ck-color-grid-tile-size: 24px;\n\n\t/* Not using global colors here because these may change but some colors in a pallette\n\t * require special treatment. For instance, this ensures no matter what the UI text color is,\n\t * the check icon will look good on the black color tile. */\n\t--ck-color-color-grid-check-icon: hsl(212, 81%, 46%);\n}\n\n.ck.ck-color-grid {\n\tgrid-gap: 5px;\n\tpadding: 8px;\n}\n\n.ck.ck-color-grid__tile {\n\ttransition: .2s ease box-shadow;\n\n\t@mixin ck-media-default-colors {\n\t\twidth: var(--ck-color-grid-tile-size);\n\t\theight: var(--ck-color-grid-tile-size);\n\t\tmin-width: var(--ck-color-grid-tile-size);\n\t\tmin-height: var(--ck-color-grid-tile-size);\n\t\tpadding: 0;\n\t\tborder: 0;\n\n\t\t&.ck-on,\n\t\t&:focus:not( .ck-disabled ),\n\t\t&:hover:not( .ck-disabled ) {\n\t\t\t/* Disable the default .ck-button\'s border ring. */\n\t\t\tborder: 0;\n\t\t}\n\n\t\t&.ck-color-selector__color-tile_bordered {\n\t\t\tbox-shadow: 0 0 0 1px var(--ck-color-base-border);\n\t\t}\n\n\t\t&.ck-on {\n\t\t\tbox-shadow: inset 0 0 0 1px var(--ck-color-base-background), 0 0 0 2px var(--ck-color-base-text);\n\t\t}\n\n\t\t&:focus:not( .ck-disabled ),\n\t\t&:hover:not( .ck-disabled ) {\n\t\t\tbox-shadow: inset 0 0 0 1px var(--ck-color-base-background), 0 0 0 2px var(--ck-color-focus-border);\n\t\t}\n\t}\n\n\t/*\n\t * In high contrast mode, the colors are replaced with text labels.\n\t * See https://github.com/ckeditor/ckeditor5/issues/14907.\n\t */\n\t@mixin ck-media-forced-colors {\n\t\twidth: unset;\n\t\theight: unset;\n\t\tmin-width: unset;\n\t\tmin-height: unset;\n\t\tpadding: 0 var(--ck-spacing-small);\n\n\t\t& .ck-button__label {\n\t\t\tdisplay: inline-block;\n\t\t}\n\t}\n\n\t@media (prefers-reduced-motion: reduce) {\n\t\ttransition: none;\n\t}\n\n\t&.ck-disabled {\n\t\tcursor: unset;\n\t\ttransition: unset;\n\t}\n\n\t& .ck.ck-icon {\n\t\tdisplay: none;\n\t\tcolor: var(--ck-color-color-grid-check-icon);\n\t}\n\n\t&.ck-on {\n\t\t& .ck.ck-icon {\n\t\t\tdisplay: block;\n\t\t}\n\t}\n}\n\n.ck.ck-color-grid__label {\n\tpadding: 0 var(--ck-spacing-standard);\n}\n',"/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n@define-mixin ck-media-forced-colors {\n\t@media (forced-colors: active) {\n\t\t& {\n\t\t\t@mixin-content;\n\t\t}\n\t}\n}\n\n@define-mixin ck-media-default-colors {\n\t@media (forced-colors: none) {\n\t\t& {\n\t\t\t@mixin-content;\n\t\t}\n\t}\n}\n"],sourceRoot:""}]);const a=s},8040:(e,t,o)=>{"use strict";o.d(t,{A:()=>a});var n=o(1354),i=o.n(n),r=o(6314),s=o.n(r)()(i());s.push([e.id,".ck.ck-link-actions{display:flex;flex-direction:row;flex-wrap:nowrap}.ck.ck-link-actions .ck-link-actions__preview{display:inline-block}.ck.ck-link-actions .ck-link-actions__preview .ck-button__label{overflow:hidden}@media screen and (max-width:600px){.ck.ck-link-actions{flex-wrap:wrap}.ck.ck-link-actions .ck-link-actions__preview{flex-basis:100%}.ck.ck-link-actions .ck-button:not(.ck-link-actions__preview){flex-basis:50%}}.ck.ck-link-actions .ck-button.ck-link-actions__preview{padding-left:0;padding-right:0}.ck.ck-link-actions .ck-button.ck-link-actions__preview .ck-button__label{color:var(--ck-color-link-default);cursor:pointer;max-width:var(--ck-input-width);min-width:3em;padding:0 var(--ck-spacing-medium);text-align:center;text-overflow:ellipsis}.ck.ck-link-actions .ck-button.ck-link-actions__preview .ck-button__label:hover{text-decoration:underline}.ck.ck-link-actions .ck-button.ck-link-actions__preview,.ck.ck-link-actions .ck-button.ck-link-actions__preview:active,.ck.ck-link-actions .ck-button.ck-link-actions__preview:focus,.ck.ck-link-actions .ck-button.ck-link-actions__preview:hover{background:none}.ck.ck-link-actions .ck-button.ck-link-actions__preview:active{box-shadow:none}.ck.ck-link-actions .ck-button.ck-link-actions__preview:focus .ck-button__label{text-decoration:underline}[dir=ltr] .ck.ck-link-actions .ck-button:not(:first-child),[dir=rtl] .ck.ck-link-actions .ck-button:not(:last-child){margin-left:var(--ck-spacing-standard)}@media screen and (max-width:600px){.ck.ck-link-actions .ck-button.ck-link-actions__preview{margin:var(--ck-spacing-standard) var(--ck-spacing-standard) 0}.ck.ck-link-actions .ck-button.ck-link-actions__preview .ck-button__label{max-width:100%;min-width:0}[dir=ltr] .ck.ck-link-actions .ck-button:not(.ck-link-actions__preview),[dir=rtl] .ck.ck-link-actions .ck-button:not(.ck-link-actions__preview){margin-left:0}}","",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-link/theme/linkactions.css","webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/mixins/_rwd.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-link/linkactions.css","webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/mixins/_dir.css"],names:[],mappings:"AAOA,oBACC,YAAa,CACb,kBAAmB,CACnB,gBAqBD,CAnBC,8CACC,oBAKD,CAHC,gEACC,eACD,CCXD,oCDCD,oBAcE,cAUF,CARE,8CACC,eACD,CAEA,8DACC,cACD,CCrBD,CCIA,wDACC,cAAe,CACf,eAmCD,CAjCC,0EAEC,kCAAmC,CAEnC,cAAe,CAIf,+BAAgC,CAChC,aAAc,CARd,kCAAmC,CASnC,iBAAkB,CAPlB,sBAYD,CAHC,gFACC,yBACD,CAGD,mPAIC,eACD,CAEA,+DACC,eACD,CAGC,gFACC,yBACD,CAWD,qHACC,sCACD,CDtDD,oCC0DC,wDACC,8DAMD,CAJC,0EAEC,cAAe,CADf,WAED,CChEF,gJDyEG,aCvEH,CFAA",sourcesContent:['/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n@import "@ckeditor/ckeditor5-ui/theme/mixins/_rwd.css";\n\n.ck.ck-link-actions {\n\tdisplay: flex;\n\tflex-direction: row;\n\tflex-wrap: nowrap;\n\n\t& .ck-link-actions__preview {\n\t\tdisplay: inline-block;\n\n\t\t& .ck-button__label {\n\t\t\toverflow: hidden;\n\t\t}\n\t}\n\n\t@mixin ck-media-phone {\n\t\tflex-wrap: wrap;\n\n\t\t& .ck-link-actions__preview {\n\t\t\tflex-basis: 100%;\n\t\t}\n\n\t\t& .ck-button:not(.ck-link-actions__preview) {\n\t\t\tflex-basis: 50%;\n\t\t}\n\t}\n}\n',"/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n@define-mixin ck-media-phone {\n\t@media screen and (max-width: 600px) {\n\t\t@mixin-content;\n\t}\n}\n",'/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n@import "@ckeditor/ckeditor5-ui/theme/mixins/_unselectable.css";\n@import "@ckeditor/ckeditor5-ui/theme/mixins/_dir.css";\n@import "../mixins/_focus.css";\n@import "../mixins/_shadow.css";\n@import "@ckeditor/ckeditor5-ui/theme/mixins/_rwd.css";\n\n.ck.ck-link-actions {\n\t& .ck-button.ck-link-actions__preview {\n\t\tpadding-left: 0;\n\t\tpadding-right: 0;\n\n\t\t& .ck-button__label {\n\t\t\tpadding: 0 var(--ck-spacing-medium);\n\t\t\tcolor: var(--ck-color-link-default);\n\t\t\ttext-overflow: ellipsis;\n\t\t\tcursor: pointer;\n\n\t\t\t/* Match the box model of the link editor form\'s input so the balloon\n\t\t\tdoes not change width when moving between actions and the form. */\n\t\t\tmax-width: var(--ck-input-width);\n\t\t\tmin-width: 3em;\n\t\t\ttext-align: center;\n\n\t\t\t&:hover {\n\t\t\t\ttext-decoration: underline;\n\t\t\t}\n\t\t}\n\n\t\t&,\n\t\t&:hover,\n\t\t&:focus,\n\t\t&:active {\n\t\t\tbackground: none;\n\t\t}\n\n\t\t&:active {\n\t\t\tbox-shadow: none;\n\t\t}\n\n\t\t&:focus {\n\t\t\t& .ck-button__label {\n\t\t\t\ttext-decoration: underline;\n\t\t\t}\n\t\t}\n\t}\n\n\t@mixin ck-dir ltr {\n\t\t& .ck-button:not(:first-child) {\n\t\t\tmargin-left: var(--ck-spacing-standard);\n\t\t}\n\t}\n\n\t@mixin ck-dir rtl {\n\t\t& .ck-button:not(:last-child) {\n\t\t\tmargin-left: var(--ck-spacing-standard);\n\t\t}\n\t}\n\n\t@mixin ck-media-phone {\n\t\t& .ck-button.ck-link-actions__preview {\n\t\t\tmargin: var(--ck-spacing-standard) var(--ck-spacing-standard) 0;\n\n\t\t\t& .ck-button__label {\n\t\t\t\tmin-width: 0;\n\t\t\t\tmax-width: 100%;\n\t\t\t}\n\t\t}\n\n\t\t& .ck-button:not(.ck-link-actions__preview) {\n\t\t\t@mixin ck-dir ltr {\n\t\t\t\tmargin-left: 0;\n\t\t\t}\n\n\t\t\t@mixin ck-dir rtl {\n\t\t\t\tmargin-left: 0;\n\t\t\t}\n\t\t}\n\t}\n}\n','/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n@define-mixin ck-dir $direction {\n\t[dir="$(direction)"] & {\n\t\t@mixin-content;\n\t}\n}\n'],sourceRoot:""}]);const a=s},8091:(e,t,o)=>{"use strict";o.d(t,{A:()=>a});var n=o(1354),i=o.n(n),r=o(6314),s=o.n(r)()(i());s.push([e.id,".ck.ck-dialog .ck.ck-dialog__actions{display:flex;justify-content:flex-end;padding:var(--ck-spacing-large)}.ck.ck-dialog .ck.ck-dialog__actions>*+*{margin-left:var(--ck-spacing-large)}","",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/components/dialog/dialogactions.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-ui/components/dialog/dialogactions.css"],names:[],mappings:"AAMC,qCACC,YAAa,CACb,wBAAyB,CCDzB,+BDED,CCAC,yCACC,mCACD",sourcesContent:["/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n.ck.ck-dialog {\n\t& .ck.ck-dialog__actions {\n\t\tdisplay: flex;\n\t\tjustify-content: flex-end;\n\t}\n}\n","/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n.ck.ck-dialog {\n\t& .ck.ck-dialog__actions {\n\t\tpadding: var(--ck-spacing-large);\n\n\t\t& > * + * {\n\t\t\tmargin-left: var(--ck-spacing-large);\n\t\t}\n\t}\n}\n"],sourceRoot:""}]);const a=s},8156:e=>{"use strict";e.exports={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]}},8368:(e,t,o)=>{"use strict";o.d(t,{A:()=>a});var n=o(1354),i=o.n(n),r=o(6314),s=o.n(r)()(i());s.push([e.id,".ck-textarea{overflow-x:hidden}","",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-ui/components/textarea/textarea.css"],names:[],mappings:"AASA,aACC,iBACD",sourcesContent:["/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/*\n * This fixes a problem in Firefox when the initial height of the complement does not match the number of rows.\n * This bug is especially visible when rows=1.\n */\n.ck-textarea {\n\toverflow-x: hidden\n}\n"],sourceRoot:""}]);const a=s},8429:(e,t,o)=>{"use strict";o.d(t,{A:()=>a});var n=o(1354),i=o.n(n),r=o(6314),s=o.n(r)()(i());s.push([e.id,".ck.ck-text-alternative-form{display:flex;flex-direction:row;flex-wrap:nowrap}.ck.ck-text-alternative-form .ck-labeled-field-view{display:inline-block}.ck.ck-text-alternative-form .ck-label{display:none}@media screen and (max-width:600px){.ck.ck-text-alternative-form{flex-wrap:wrap}.ck.ck-text-alternative-form .ck-labeled-field-view{flex-basis:100%}.ck.ck-text-alternative-form .ck-button{flex-basis:50%}}","",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-image/theme/textalternativeform.css","webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/mixins/_rwd.css"],names:[],mappings:"AAOA,6BACC,YAAa,CACb,kBAAmB,CACnB,gBAqBD,CAnBC,oDACC,oBACD,CAEA,uCACC,YACD,CCZA,oCDCD,6BAcE,cAUF,CARE,oDACC,eACD,CAEA,wCACC,cACD,CCrBD",sourcesContent:['/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n@import "@ckeditor/ckeditor5-ui/theme/mixins/_rwd.css";\n\n.ck.ck-text-alternative-form {\n\tdisplay: flex;\n\tflex-direction: row;\n\tflex-wrap: nowrap;\n\n\t& .ck-labeled-field-view {\n\t\tdisplay: inline-block;\n\t}\n\n\t& .ck-label {\n\t\tdisplay: none;\n\t}\n\n\t@mixin ck-media-phone {\n\t\tflex-wrap: wrap;\n\n\t\t& .ck-labeled-field-view {\n\t\t\tflex-basis: 100%;\n\t\t}\n\n\t\t& .ck-button {\n\t\t\tflex-basis: 50%;\n\t\t}\n\t}\n}\n',"/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n@define-mixin ck-media-phone {\n\t@media screen and (max-width: 600px) {\n\t\t@mixin-content;\n\t}\n}\n"],sourceRoot:""}]);const a=s},8507:(e,t,o)=>{const n=o(5659);function i(e){const t=function(){const e={},t=Object.keys(n);for(let o=t.length,n=0;n{"use strict";o.d(t,{A:()=>a});var n=o(1354),i=o.n(n),r=o(6314),s=o.n(r)()(i());s.push([e.id,".ck-content .image{clear:both;display:table;margin:.9em auto;min-width:50px;text-align:center}.ck-content .image img{display:block;height:auto;margin:0 auto;max-width:100%;min-width:100%}.ck-content .image-inline{align-items:flex-start;display:inline-flex;max-width:100%}.ck-content .image-inline picture{display:flex}.ck-content .image-inline img,.ck-content .image-inline picture{flex-grow:1;flex-shrink:1;max-width:100%}.ck.ck-editor__editable .image>figcaption.ck-placeholder:before{overflow:hidden;padding-left:inherit;padding-right:inherit;text-overflow:ellipsis;white-space:nowrap}.ck.ck-editor__editable .image{z-index:1}.ck.ck-editor__editable .image.ck-widget_selected{z-index:2}.ck.ck-editor__editable .image-inline{z-index:1}.ck.ck-editor__editable .image-inline.ck-widget_selected{z-index:2}.ck.ck-editor__editable .image-inline.ck-widget_selected ::selection{display:none}.ck.ck-editor__editable .image-inline img{height:auto}.ck.ck-editor__editable td .image-inline img,.ck.ck-editor__editable th .image-inline img{max-width:none}","",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-image/theme/image.css"],names:[],mappings:"AAMC,mBAEC,UAAW,CADX,aAAc,CAOd,gBAAkB,CAGlB,cAAe,CARf,iBA2BD,CAjBC,uBAEC,aAAc,CAad,WAAY,CAVZ,aAAc,CAGd,cAAe,CAGf,cAKD,CAGD,0BAYC,sBAAuB,CANvB,mBAAoB,CAGpB,cAoBD,CAdC,kCACC,YACD,CAGA,gEAGC,WAAY,CACZ,aAAc,CAGd,cACD,CAUD,gEASC,eAAgB,CARhB,oBAAqB,CACrB,qBAAsB,CAQtB,sBAAuB,CAFvB,kBAGD,CAKA,+BACC,SASD,CAHC,kDACC,SACD,CAMD,sCACC,SAkBD,CAZC,yDACC,SAUD,CAHC,qEACC,YACD,CAMF,0CACC,WACD,CAMC,0FACC,cACD",sourcesContent:['/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n.ck-content {\n\t& .image {\n\t\tdisplay: table;\n\t\tclear: both;\n\t\ttext-align: center;\n\n\t\t/* Make sure there is some space between the content and the image. Center image by default. */\n\t\t/* The first value should be equal to --ck-spacing-large variable if used in the editor context\n\t \tto avoid the content jumping (See https://github.com/ckeditor/ckeditor5/issues/9825). */\n\t\tmargin: 0.9em auto;\n\n\t\t/* Make sure the caption will be displayed properly (See: https://github.com/ckeditor/ckeditor5/issues/1870). */\n\t\tmin-width: 50px;\n\n\t\t& img {\n\t\t\t/* Prevent unnecessary margins caused by line-height (see #44). */\n\t\t\tdisplay: block;\n\n\t\t\t/* Center the image if its width is smaller than the content\'s width. */\n\t\t\tmargin: 0 auto;\n\n\t\t\t/* Make sure the image never exceeds the size of the parent container (ckeditor/ckeditor5-ui#67). */\n\t\t\tmax-width: 100%;\n\n\t\t\t/* Make sure the image is never smaller than the parent container (See: https://github.com/ckeditor/ckeditor5/issues/9300). */\n\t\t\tmin-width: 100%;\n\n\t\t\t/* Keep proportions of the block image if the height is set and the image is wider than the editor width.\n\t\t\tSee https://github.com/ckeditor/ckeditor5/issues/14542. */\n\t\t\theight: auto;\n\t\t}\n\t}\n\n\t& .image-inline {\n\t\t/*\n\t\t * Normally, the .image-inline would have "display: inline-block" and "img { width: 100% }" (to follow the wrapper while resizing).\n\t\t * Unfortunately, together with "srcset", it gets automatically stretched up to the width of the editing root.\n\t\t * This strange behavior does not happen with inline-flex.\n\t\t */\n\t\tdisplay: inline-flex;\n\n\t\t/* While being resized, don\'t allow the image to exceed the width of the editing root. */\n\t\tmax-width: 100%;\n\n\t\t/* This is required by Safari to resize images in a sensible way. Without this, the browser breaks the ratio. */\n\t\talign-items: flex-start;\n\n\t\t/* When the picture is present it must act as a flex container to let the img resize properly */\n\t\t& picture {\n\t\t\tdisplay: flex;\n\t\t}\n\n\t\t/* When the picture is present, it must act like a resizable img. */\n\t\t& picture,\n\t\t& img {\n\t\t\t/* This is necessary for the img to span the entire .image-inline wrapper and to resize properly. */\n\t\t\tflex-grow: 1;\n\t\t\tflex-shrink: 1;\n\n\t\t\t/* Prevents overflowing the editing root boundaries when an inline image is very wide. */\n\t\t\tmax-width: 100%;\n\t\t}\n\t}\n}\n\n.ck.ck-editor__editable {\n\t/*\n\t * Inhertit the content styles padding of the
    in case the integration overrides `text-align: center`\n\t * of `.image` (e.g. to the left/right). This ensures the placeholder stays at the padding just like the native\n\t * caret does, and not at the edge of
    .\n\t */\n\t& .image > figcaption.ck-placeholder::before {\n\t\tpadding-left: inherit;\n\t\tpadding-right: inherit;\n\n\t\t/*\n\t\t * Make sure the image caption placeholder doesn\'t overflow the placeholder area.\n\t\t * See https://github.com/ckeditor/ckeditor5/issues/9162.\n\t\t */\n\t\twhite-space: nowrap;\n\t\toverflow: hidden;\n\t\ttext-overflow: ellipsis;\n\t}\n\n\t/*\n\t * See https://github.com/ckeditor/ckeditor5/issues/15115.\n\t */\n\t& .image {\n\t\tz-index: 1;\n\n\t\t/*\n\t\t * Make sure the selected image always stays on top of its siblings.\n\t\t * See https://github.com/ckeditor/ckeditor5/issues/9108.\n\t\t */\n\t\t&.ck-widget_selected {\n\t\t\tz-index: 2;\n\t\t}\n\t}\n\n\t/*\n\t * See https://github.com/ckeditor/ckeditor5/issues/15115.\n\t */\n\t& .image-inline {\n\t\tz-index: 1;\n\n\t\t/*\n\t\t * Make sure the selected inline image always stays on top of its siblings.\n\t\t * See https://github.com/ckeditor/ckeditor5/issues/9108.\n\t\t */\n\t\t&.ck-widget_selected {\n\t\t\tz-index: 2;\n\n\t\t\t/*\n\t\t\t * Make sure the native browser selection style is not displayed.\n\t\t\t * Inline image widgets have their own styles for the selected state and\n\t\t\t * leaving this up to the browser is asking for a visual collision.\n\t\t\t */\n\t\t\t& ::selection {\n\t\t\t\tdisplay: none;\n\t\t\t}\n\t\t}\n\t}\n\n\t/* Keep proportions of the inline image if the height is set and the image is wider than the editor width.\n\tSee https://github.com/ckeditor/ckeditor5/issues/14542. */\n\t& .image-inline img {\n\t\theight: auto;\n\t}\n\n\t/* The inline image nested in the table should have its original size if not resized.\n\tSee https://github.com/ckeditor/ckeditor5/issues/9117. */\n\t& td,\n\t& th {\n\t\t& .image-inline img {\n\t\t\tmax-width: none;\n\t\t}\n\t}\n}\n'],sourceRoot:""}]);const a=s},8603:(e,t,o)=>{"use strict";o.d(t,{A:()=>a});var n=o(1354),i=o.n(n),r=o(6314),s=o.n(r)()(i());s.push([e.id,".ck .ck-insert-table-dropdown__grid{display:flex;flex-direction:row;flex-wrap:wrap}:root{--ck-insert-table-dropdown-padding:10px;--ck-insert-table-dropdown-box-height:11px;--ck-insert-table-dropdown-box-width:12px;--ck-insert-table-dropdown-box-margin:1px}.ck .ck-insert-table-dropdown__grid{padding:var(--ck-insert-table-dropdown-padding) var(--ck-insert-table-dropdown-padding) 0;width:calc(var(--ck-insert-table-dropdown-box-width)*10 + var(--ck-insert-table-dropdown-box-margin)*20 + var(--ck-insert-table-dropdown-padding)*2)}.ck .ck-insert-table-dropdown__label,.ck[dir=rtl] .ck-insert-table-dropdown__label{text-align:center}.ck .ck-insert-table-dropdown-grid-box{border:1px solid var(--ck-color-base-border);border-radius:1px;margin:var(--ck-insert-table-dropdown-box-margin);min-height:var(--ck-insert-table-dropdown-box-height);min-width:var(--ck-insert-table-dropdown-box-width);outline:none;transition:none}@media (prefers-reduced-motion:reduce){.ck .ck-insert-table-dropdown-grid-box{transition:none}}.ck .ck-insert-table-dropdown-grid-box:focus{box-shadow:none}.ck .ck-insert-table-dropdown-grid-box.ck-on{background:var(--ck-color-focus-outer-shadow);border-color:var(--ck-color-focus-border)}","",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-table/theme/inserttable.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-table/inserttable.css"],names:[],mappings:"AAKA,oCACC,YAAa,CACb,kBAAmB,CACnB,cACD,CCJA,MACC,uCAAwC,CACxC,0CAA2C,CAC3C,yCAA0C,CAC1C,yCACD,CAEA,oCAGC,yFAA0F,CAD1F,oJAED,CAEA,mFAEC,iBACD,CAEA,uCAIC,4CAA6C,CAC7C,iBAAkB,CAFlB,iDAAkD,CADlD,qDAAsD,CADtD,mDAAoD,CAKpD,YAAa,CACb,eAcD,CAZC,uCATD,uCAUE,eAWF,CAVC,CAEA,6CACC,eACD,CAEA,6CAEC,6CAA8C,CAD9C,yCAED",sourcesContent:["/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n.ck .ck-insert-table-dropdown__grid {\n\tdisplay: flex;\n\tflex-direction: row;\n\tflex-wrap: wrap;\n}\n","/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n:root {\n\t--ck-insert-table-dropdown-padding: 10px;\n\t--ck-insert-table-dropdown-box-height: 11px;\n\t--ck-insert-table-dropdown-box-width: 12px;\n\t--ck-insert-table-dropdown-box-margin: 1px;\n}\n\n.ck .ck-insert-table-dropdown__grid {\n\t/* The width of a container should match 10 items in a row so there will be a 10x10 grid. */\n\twidth: calc(var(--ck-insert-table-dropdown-box-width) * 10 + var(--ck-insert-table-dropdown-box-margin) * 20 + var(--ck-insert-table-dropdown-padding) * 2);\n\tpadding: var(--ck-insert-table-dropdown-padding) var(--ck-insert-table-dropdown-padding) 0;\n}\n\n.ck .ck-insert-table-dropdown__label,\n.ck[dir=rtl] .ck-insert-table-dropdown__label {\n\ttext-align: center;\n}\n\n.ck .ck-insert-table-dropdown-grid-box {\n\tmin-width: var(--ck-insert-table-dropdown-box-width);\n\tmin-height: var(--ck-insert-table-dropdown-box-height);\n\tmargin: var(--ck-insert-table-dropdown-box-margin);\n\tborder: 1px solid var(--ck-color-base-border);\n\tborder-radius: 1px;\n\toutline: none;\n\ttransition: none;\n\n\t@media (prefers-reduced-motion: reduce) {\n\t\ttransition: none;\n\t}\n\n\t&:focus {\n\t\tbox-shadow: none;\n\t}\n\n\t&.ck-on {\n\t\tborder-color: var(--ck-color-focus-border);\n\t\tbackground: var(--ck-color-focus-outer-shadow);\n\t}\n}\n\n"],sourceRoot:""}]);const a=s},8864:(e,t,o)=>{"use strict";o.d(t,{A:()=>a});var n=o(1354),i=o.n(n),r=o(6314),s=o.n(r)()(i());s.push([e.id,":root{--ck-color-selector-focused-cell-background:rgba(158,201,250,.3)}.ck-widget.table td.ck-editor__nested-editable.ck-editor__nested-editable_focused,.ck-widget.table td.ck-editor__nested-editable:focus,.ck-widget.table th.ck-editor__nested-editable.ck-editor__nested-editable_focused,.ck-widget.table th.ck-editor__nested-editable:focus{background:var(--ck-color-selector-focused-cell-background);outline:1px solid var(--ck-color-focus-border);outline-offset:-1px}","",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-table/tableediting.css"],names:[],mappings:"AAKA,MACC,gEACD,CAWE,8QAGC,2DAA4D,CAC5D,8CAA+C,CAC/C,mBACD",sourcesContent:["/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n:root {\n\t--ck-color-selector-focused-cell-background: hsla(212, 90%, 80%, .3);\n}\n\n.ck-widget.table {\n\t& td,\n\t& th {\n\t\t/**\n\t\t * While setting outline is fine, the border should not be modified here\n\t\t * because it overrides the default table cell border color which is not expected.\n\t\t * So do not use `@mixin ck-focus-ring;` here, or any other border styles.\n\t\t * See more: https://github.com/ckeditor/ckeditor5/issues/16979\n\t\t */\n\t\t&.ck-editor__nested-editable.ck-editor__nested-editable_focused,\n\t\t&.ck-editor__nested-editable:focus {\n\t\t\t/* A very slight background to highlight the focused cell */\n\t\t\tbackground: var(--ck-color-selector-focused-cell-background);\n\t\t\toutline: 1px solid var(--ck-color-focus-border);\n\t\t\toutline-offset: -1px; /* progressive enhancement - no IE support */\n\t\t}\n\t}\n}\n"],sourceRoot:""}]);const a=s},8948:(e,t,o)=>{"use strict";o.d(t,{A:()=>a});var n=o(1354),i=o.n(n),r=o(6314),s=o.n(r)()(i());s.push([e.id,".ck.ck-button,a.ck.ck-button{align-items:center;display:inline-flex;position:relative;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none}[dir=ltr] .ck.ck-button,[dir=ltr] a.ck.ck-button{justify-content:left}[dir=rtl] .ck.ck-button,[dir=rtl] a.ck.ck-button{justify-content:right}.ck.ck-button .ck-button__label,a.ck.ck-button .ck-button__label{display:none}.ck.ck-button.ck-button_with-text .ck-button__label,a.ck.ck-button.ck-button_with-text .ck-button__label{display:inline-block}.ck.ck-button:not(.ck-button_with-text),a.ck.ck-button:not(.ck-button_with-text){justify-content:center}.ck.ck-button,a.ck.ck-button{-webkit-appearance:none;background:var(--ck-color-button-default-background);border:1px solid transparent;border-radius:0;cursor:default;font-size:inherit;line-height:1;min-height:var(--ck-ui-component-min-height);min-width:var(--ck-ui-component-min-height);padding:var(--ck-spacing-tiny);text-align:center;transition:box-shadow .2s ease-in-out,border .2s ease-in-out;vertical-align:middle;white-space:nowrap}.ck.ck-button:not(.ck-disabled):hover,a.ck.ck-button:not(.ck-disabled):hover{background:var(--ck-color-button-default-hover-background)}.ck.ck-button:not(.ck-disabled):active,a.ck.ck-button:not(.ck-disabled):active{background:var(--ck-color-button-default-active-background)}.ck.ck-button.ck-disabled,a.ck.ck-button.ck-disabled{background:var(--ck-color-button-default-disabled-background)}.ck-rounded-corners .ck.ck-button,.ck-rounded-corners a.ck.ck-button,.ck.ck-button.ck-rounded-corners,a.ck.ck-button.ck-rounded-corners{border-radius:var(--ck-border-radius)}@media (prefers-reduced-motion:reduce){.ck.ck-button,a.ck.ck-button{transition:none}}.ck.ck-button:active,.ck.ck-button:focus,a.ck.ck-button:active,a.ck.ck-button:focus{border:var(--ck-focus-ring);box-shadow:var(--ck-focus-outer-shadow),0 0;outline:none}.ck.ck-button .ck-button__icon use,.ck.ck-button .ck-button__icon use *,a.ck.ck-button .ck-button__icon use,a.ck.ck-button .ck-button__icon use *{color:inherit}.ck.ck-button .ck-button__label,a.ck.ck-button .ck-button__label{color:inherit;cursor:inherit;font-size:inherit;font-weight:inherit;vertical-align:middle}[dir=ltr] .ck.ck-button .ck-button__label,[dir=ltr] a.ck.ck-button .ck-button__label{text-align:left}[dir=rtl] .ck.ck-button .ck-button__label,[dir=rtl] a.ck.ck-button .ck-button__label{text-align:right}.ck.ck-button .ck-button__keystroke,a.ck.ck-button .ck-button__keystroke{color:inherit;opacity:.5}[dir=ltr] .ck.ck-button .ck-button__keystroke,[dir=ltr] a.ck.ck-button .ck-button__keystroke{margin-left:var(--ck-spacing-large)}[dir=rtl] .ck.ck-button .ck-button__keystroke,[dir=rtl] a.ck.ck-button .ck-button__keystroke{margin-right:var(--ck-spacing-large)}.ck.ck-button.ck-disabled:active,.ck.ck-button.ck-disabled:focus,a.ck.ck-button.ck-disabled:active,a.ck.ck-button.ck-disabled:focus{box-shadow:var(--ck-focus-disabled-outer-shadow),0 0}.ck.ck-button.ck-disabled .ck-button__icon,.ck.ck-button.ck-disabled .ck-button__label,a.ck.ck-button.ck-disabled .ck-button__icon,a.ck.ck-button.ck-disabled .ck-button__label{opacity:var(--ck-disabled-opacity)}.ck.ck-button.ck-disabled .ck-button__keystroke,a.ck.ck-button.ck-disabled .ck-button__keystroke{opacity:.3}.ck.ck-button.ck-button_with-text,a.ck.ck-button.ck-button_with-text{padding:var(--ck-spacing-tiny) var(--ck-spacing-standard)}[dir=ltr] .ck.ck-button.ck-button_with-text .ck-button__icon,[dir=ltr] a.ck.ck-button.ck-button_with-text .ck-button__icon{margin-right:var(--ck-spacing-medium)}[dir=rtl] .ck.ck-button.ck-button_with-text .ck-button__icon,[dir=rtl] a.ck.ck-button.ck-button_with-text .ck-button__icon{margin-left:var(--ck-spacing-medium)}.ck.ck-button.ck-button_with-keystroke .ck-button__label,a.ck.ck-button.ck-button_with-keystroke .ck-button__label{flex-grow:1}.ck.ck-button.ck-on,a.ck.ck-button.ck-on{background:var(--ck-color-button-on-background);color:var(--ck-color-button-on-color)}.ck.ck-button.ck-on:not(.ck-disabled):hover,a.ck.ck-button.ck-on:not(.ck-disabled):hover{background:var(--ck-color-button-on-hover-background)}.ck.ck-button.ck-on:not(.ck-disabled):active,a.ck.ck-button.ck-on:not(.ck-disabled):active{background:var(--ck-color-button-on-active-background)}.ck.ck-button.ck-on.ck-disabled,a.ck.ck-button.ck-on.ck-disabled{background:var(--ck-color-button-on-disabled-background)}.ck.ck-button.ck-button-save,a.ck.ck-button.ck-button-save{color:var(--ck-color-button-save)}.ck.ck-button.ck-button-cancel,a.ck.ck-button.ck-button-cancel{color:var(--ck-color-button-cancel)}.ck.ck-button-action,a.ck.ck-button-action{background:var(--ck-color-button-action-background);color:var(--ck-color-button-action-text)}.ck.ck-button-action:not(.ck-disabled):hover,a.ck.ck-button-action:not(.ck-disabled):hover{background:var(--ck-color-button-action-hover-background)}.ck.ck-button-action:not(.ck-disabled):active,a.ck.ck-button-action:not(.ck-disabled):active{background:var(--ck-color-button-action-active-background)}.ck.ck-button-action.ck-disabled,a.ck.ck-button-action.ck-disabled{background:var(--ck-color-button-action-disabled-background)}.ck.ck-button-bold,a.ck.ck-button-bold{font-weight:700}","",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/components/button/button.css","webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/mixins/_unselectable.css","webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/mixins/_dir.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-ui/components/button/button.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-ui/mixins/_button.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/mixins/_rounded.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/mixins/_focus.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/mixins/_shadow.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/mixins/_disabled.css"],names:[],mappings:"AAQA,6BAMC,kBAAmB,CADnB,mBAAoB,CADpB,iBAAkB,CCHlB,qBAAsB,CACtB,wBAAyB,CACzB,oBAAqB,CACrB,gBD0BD,CEhCC,iDFWC,oBETD,CAFA,iDFeC,qBEbD,CFgBA,iEACC,YACD,CAGC,yGACC,oBACD,CAID,iFACC,sBACD,CGzBD,6BA6BC,uBAAwB,CC7BxB,oDAAqC,CDuBrC,4BAA6B,CExB7B,eAAgB,CFOhB,cAAe,CAcf,iBAAkB,CAHlB,aAAc,CAJd,4CAA6C,CAD7C,2CAA4C,CAJ5C,8BAA+B,CAC/B,iBAAkB,CAiBlB,4DAA8D,CAnB9D,qBAAsB,CAFtB,kBAwID,CC1IE,6EACC,0DACD,CAEA,+EACC,2DACD,CAID,qDACC,6DACD,CCdA,wIAEC,qCAED,CF0BA,uCA/BD,6BAgCE,eA6GF,CA5GC,CAEA,oFGpCA,2BAA2B,CCF3B,2CAA8B,CDC9B,YHyCA,CAIC,kJAEC,aACD,CAGD,iEAIC,aAAc,CACd,cAAe,CAHf,iBAAkB,CAClB,mBAAoB,CAMpB,qBASD,CDzEA,qFCmEE,eDjEF,CAFA,qFCuEE,gBDrEF,CCyEA,yEACC,aAAc,CAUd,UACD,CDvFA,6FC+EE,mCD7EF,CAFA,6FCmFE,oCDjFF,CCyFC,oIIxFD,oDJ4FC,CAOA,gLKnGD,kCLqGC,CAEA,iGACC,UACD,CAGD,qEACC,yDAYD,CD5HA,2HCqHG,qCDnHH,CAFA,2HCyHG,oCDvHH,CC8HC,mHACC,WACD,CAID,yCChIA,+CAAqC,CDmIpC,qCACD,CCjIC,yFACC,qDACD,CAEA,2FACC,sDACD,CAID,iEACC,wDACD,CDuHA,2DACC,iCACD,CAEA,+DACC,mCACD,CAID,2CChJC,mDAAqC,CDoJrC,wCACD,CClJE,2FACC,yDACD,CAEA,6FACC,0DACD,CAID,mEACC,4DACD,CDwID,uCAEC,eACD",sourcesContent:['/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n@import "../../mixins/_unselectable.css";\n@import "../../mixins/_dir.css";\n\n.ck.ck-button,\na.ck.ck-button {\n\t@mixin ck-unselectable;\n\n\tposition: relative;\n\tdisplay: inline-flex;\n\talign-items: center;\n\n\t@mixin ck-dir ltr {\n\t\tjustify-content: left;\n\t}\n\n\t@mixin ck-dir rtl {\n\t\tjustify-content: right;\n\t}\n\n\t& .ck-button__label {\n\t\tdisplay: none;\n\t}\n\n\t&.ck-button_with-text {\n\t\t& .ck-button__label {\n\t\t\tdisplay: inline-block;\n\t\t}\n\t}\n\n\t/* Center the icon horizontally in a button without text. */\n\t&:not(.ck-button_with-text) {\n\t\tjustify-content: center;\n\t}\n}\n',"/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/**\n * Makes element unselectable.\n */\n@define-mixin ck-unselectable {\n\t-moz-user-select: none;\n\t-webkit-user-select: none;\n\t-ms-user-select: none;\n\tuser-select: none\n}\n",'/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n@define-mixin ck-dir $direction {\n\t[dir="$(direction)"] & {\n\t\t@mixin-content;\n\t}\n}\n','/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n@import "../../../mixins/_focus.css";\n@import "../../../mixins/_shadow.css";\n@import "../../../mixins/_disabled.css";\n@import "../../../mixins/_rounded.css";\n@import "../../mixins/_button.css";\n@import "@ckeditor/ckeditor5-ui/theme/mixins/_dir.css";\n\n.ck.ck-button,\na.ck.ck-button {\n\t@mixin ck-button-colors --ck-color-button-default;\n\t@mixin ck-rounded-corners;\n\n\twhite-space: nowrap;\n\tcursor: default;\n\tvertical-align: middle;\n\tpadding: var(--ck-spacing-tiny);\n\ttext-align: center;\n\n\t/* A very important piece of styling. Go to variable declaration to learn more. */\n\tmin-width: var(--ck-ui-component-min-height);\n\tmin-height: var(--ck-ui-component-min-height);\n\n\t/* Normalize the height of the line. Removing this will break consistent height\n\tamong text and text-less buttons (with icons). */\n\tline-height: 1;\n\n\t/* Enable font size inheritance, which allows fluid UI scaling. */\n\tfont-size: inherit;\n\n\t/* Avoid flickering when the foucs border shows up. */\n\tborder: 1px solid transparent;\n\n\t/* Apply some smooth transition to the box-shadow and border. */\n\ttransition: box-shadow .2s ease-in-out, border .2s ease-in-out;\n\n\t/* https://github.com/ckeditor/ckeditor5-theme-lark/issues/189 */\n\t-webkit-appearance: none;\n\n\t@media (prefers-reduced-motion: reduce) {\n\t\ttransition: none;\n\t}\n\n\t&:active,\n\t&:focus {\n\t\t@mixin ck-focus-ring;\n\t\t@mixin ck-box-shadow var(--ck-focus-outer-shadow);\n\t}\n\n\t/* Allow icon coloring using the text "color" property. */\n\t& .ck-button__icon {\n\t\t& use,\n\t\t& use * {\n\t\t\tcolor: inherit;\n\t\t}\n\t}\n\n\t& .ck-button__label {\n\t\t/* Enable font size inheritance, which allows fluid UI scaling. */\n\t\tfont-size: inherit;\n\t\tfont-weight: inherit;\n\t\tcolor: inherit;\n\t\tcursor: inherit;\n\n\t\t/* Must be consistent with .ck-icon\'s vertical align. Otherwise, buttons with and\n\t\twithout labels (but with icons) have different sizes in Chrome */\n\t\tvertical-align: middle;\n\n\t\t@mixin ck-dir ltr {\n\t\t\ttext-align: left;\n\t\t}\n\n\t\t@mixin ck-dir rtl {\n\t\t\ttext-align: right;\n\t\t}\n\t}\n\n\t& .ck-button__keystroke {\n\t\tcolor: inherit;\n\n\t\t@mixin ck-dir ltr {\n\t\t\tmargin-left: var(--ck-spacing-large);\n\t\t}\n\n\t\t@mixin ck-dir rtl {\n\t\t\tmargin-right: var(--ck-spacing-large);\n\t\t}\n\n\t\topacity: .5;\n\t}\n\n\t/* https://github.com/ckeditor/ckeditor5-theme-lark/issues/70 */\n\t&.ck-disabled {\n\t\t&:active,\n\t\t&:focus {\n\t\t\t/* The disabled button should have a slightly less visible shadow when focused. */\n\t\t\t@mixin ck-box-shadow var(--ck-focus-disabled-outer-shadow);\n\t\t}\n\n\t\t& .ck-button__icon {\n\t\t\t@mixin ck-disabled;\n\t\t}\n\n\t\t/* https://github.com/ckeditor/ckeditor5-theme-lark/issues/98 */\n\t\t& .ck-button__label {\n\t\t\t@mixin ck-disabled;\n\t\t}\n\n\t\t& .ck-button__keystroke {\n\t\t\topacity: .3;\n\t\t}\n\t}\n\n\t&.ck-button_with-text {\n\t\tpadding: var(--ck-spacing-tiny) var(--ck-spacing-standard);\n\n\t\t/* stylelint-disable-next-line no-descending-specificity */\n\t\t& .ck-button__icon {\n\t\t\t@mixin ck-dir ltr {\n\t\t\t\tmargin-right: var(--ck-spacing-medium);\n\t\t\t}\n\n\t\t\t@mixin ck-dir rtl {\n\t\t\t\tmargin-left: var(--ck-spacing-medium);\n\t\t\t}\n\t\t}\n\t}\n\n\t&.ck-button_with-keystroke {\n\t\t/* stylelint-disable-next-line no-descending-specificity */\n\t\t& .ck-button__label {\n\t\t\tflex-grow: 1;\n\t\t}\n\t}\n\n\t/* A style of the button which is currently on, e.g. its feature is active. */\n\t&.ck-on {\n\t\t@mixin ck-button-colors --ck-color-button-on;\n\n\t\tcolor: var(--ck-color-button-on-color);\n\t}\n\n\t&.ck-button-save {\n\t\tcolor: var(--ck-color-button-save);\n\t}\n\n\t&.ck-button-cancel {\n\t\tcolor: var(--ck-color-button-cancel);\n\t}\n}\n\n/* A style of the button which handles the primary action. */\n.ck.ck-button-action,\na.ck.ck-button-action {\n\t@mixin ck-button-colors --ck-color-button-action;\n\n\tcolor: var(--ck-color-button-action-text);\n}\n\n.ck.ck-button-bold,\na.ck.ck-button-bold {\n\tfont-weight: bold;\n}\n',"/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/**\n * Implements a button of given background color.\n *\n * @param {String} $background - Background color of the button.\n * @param {String} $border - Border color of the button.\n */\n@define-mixin ck-button-colors $prefix {\n\tbackground: var($(prefix)-background);\n\n\t&:not(.ck-disabled) {\n\t\t&:hover {\n\t\t\tbackground: var($(prefix)-hover-background);\n\t\t}\n\n\t\t&:active {\n\t\t\tbackground: var($(prefix)-active-background);\n\t\t}\n\t}\n\n\t/* https://github.com/ckeditor/ckeditor5-theme-lark/issues/98 */\n\t&.ck-disabled {\n\t\tbackground: var($(prefix)-disabled-background);\n\t}\n}\n","/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/**\n * Implements rounded corner interface for .ck-rounded-corners class.\n *\n * @see $ck-border-radius\n */\n@define-mixin ck-rounded-corners {\n\tborder-radius: 0;\n\n\t.ck-rounded-corners &,\n\t&.ck-rounded-corners {\n\t\tborder-radius: var(--ck-border-radius);\n\t\t@mixin-content;\n\t}\n}\n","/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/**\n * A visual style of focused element's border.\n */\n@define-mixin ck-focus-ring {\n\t/* Disable native outline. */\n\toutline: none;\n\tborder: var(--ck-focus-ring)\n}\n","/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/**\n * A helper to combine multiple shadows.\n */\n@define-mixin ck-box-shadow $shadowA, $shadowB: 0 0 {\n\tbox-shadow: $shadowA, $shadowB;\n}\n\n/**\n * Gives an element a drop shadow so it looks like a floating panel.\n */\n@define-mixin ck-drop-shadow {\n\t@mixin ck-box-shadow var(--ck-drop-shadow);\n}\n","/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/**\n * A class which indicates that an element holding it is disabled.\n */\n@define-mixin ck-disabled {\n\topacity: var(--ck-disabled-opacity);\n}\n"],sourceRoot:""}]);const a=s},9248:(e,t,o)=>{"use strict";o.d(t,{A:()=>a});var n=o(1354),i=o.n(n),r=o(6314),s=o.n(r)()(i());s.push([e.id,".ck-content code{background-color:hsla(0,0%,78%,.3);border-radius:2px;padding:.15em}.ck.ck-editor__editable .ck-code_selected{background-color:hsla(0,0%,78%,.5)}","",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-basic-styles/theme/code.css"],names:[],mappings:"AAKA,iBACC,kCAAuC,CAEvC,iBAAkB,CADlB,aAED,CAEA,0CACC,kCACD",sourcesContent:["/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n.ck-content code {\n\tbackground-color: hsla(0, 0%, 78%, 0.3);\n\tpadding: .15em;\n\tborder-radius: 2px;\n}\n\n.ck.ck-editor__editable .ck-code_selected {\n\tbackground-color: hsla(0, 0%, 78%, 0.5);\n}\n"],sourceRoot:""}]);const a=s},9262:(e,t,o)=>{"use strict";o.d(t,{A:()=>a});var n=o(1354),i=o.n(n),r=o(6314),s=o.n(r)()(i());s.push([e.id,'.ck.ck-editor__editable .ck.ck-clipboard-drop-target-position{display:inline;pointer-events:none;position:relative}.ck.ck-editor__editable .ck.ck-clipboard-drop-target-position span{position:absolute;width:0}.ck.ck-editor__editable .ck-widget:-webkit-drag>.ck-widget__selection-handle,.ck.ck-editor__editable .ck-widget:-webkit-drag>.ck-widget__type-around{display:none}.ck.ck-clipboard-drop-target-line{pointer-events:none;position:absolute}:root{--ck-clipboard-drop-target-dot-width:12px;--ck-clipboard-drop-target-dot-height:8px;--ck-clipboard-drop-target-color:var(--ck-color-focus-border)}.ck.ck-editor__editable .ck.ck-clipboard-drop-target-position span{background:var(--ck-clipboard-drop-target-color);border:1px solid var(--ck-clipboard-drop-target-color);bottom:calc(var(--ck-clipboard-drop-target-dot-height)*-.5);margin-left:-1px;top:calc(var(--ck-clipboard-drop-target-dot-height)*-.5)}.ck.ck-editor__editable .ck.ck-clipboard-drop-target-position span:after{border-color:var(--ck-clipboard-drop-target-color) transparent transparent transparent;border-style:solid;border-width:calc(var(--ck-clipboard-drop-target-dot-height)) calc(var(--ck-clipboard-drop-target-dot-width)*.5) 0 calc(var(--ck-clipboard-drop-target-dot-width)*.5);content:"";display:block;height:0;left:50%;position:absolute;top:calc(var(--ck-clipboard-drop-target-dot-height)*-.5);transform:translateX(-50%);width:0}.ck.ck-editor__editable .ck-widget.ck-clipboard-drop-target-range{outline:var(--ck-widget-outline-thickness) solid var(--ck-clipboard-drop-target-color)!important}.ck.ck-editor__editable .ck-widget:-webkit-drag{zoom:.6;outline:none!important}.ck.ck-clipboard-drop-target-line{background:var(--ck-clipboard-drop-target-color);border:1px solid var(--ck-clipboard-drop-target-color);height:0;margin-top:-1px}.ck.ck-clipboard-drop-target-line:before{border-style:solid;content:"";height:0;position:absolute;top:calc(var(--ck-clipboard-drop-target-dot-width)*-.5);width:0}[dir=ltr] .ck.ck-clipboard-drop-target-line:before{border-color:transparent transparent transparent var(--ck-clipboard-drop-target-color);border-width:calc(var(--ck-clipboard-drop-target-dot-width)*.5) 0 calc(var(--ck-clipboard-drop-target-dot-width)*.5) var(--ck-clipboard-drop-target-dot-height);left:-1px}[dir=rtl] .ck.ck-clipboard-drop-target-line:before{border-color:transparent var(--ck-clipboard-drop-target-color) transparent transparent;border-width:calc(var(--ck-clipboard-drop-target-dot-width)*.5) var(--ck-clipboard-drop-target-dot-height) calc(var(--ck-clipboard-drop-target-dot-width)*.5) 0;right:-1px}',"",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-clipboard/theme/clipboard.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-clipboard/clipboard.css","webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/mixins/_dir.css"],names:[],mappings:"AASC,8DACC,cAAe,CAEf,mBAAoB,CADpB,iBAOD,CAJC,mEACC,iBAAkB,CAClB,OACD,CAWA,qJACC,YACD,CAIF,kCAEC,mBAAoB,CADpB,iBAED,CC9BA,MACC,yCAA0C,CAC1C,yCAA0C,CAC1C,6DACD,CAOE,mEAIC,gDAAiD,CADjD,sDAAuD,CAFvD,2DAA8D,CAI9D,gBAAiB,CAHjB,wDAqBD,CAfC,yEAWC,sFAAuF,CAEvF,kBAAmB,CADnB,qKAA0K,CAX1K,UAAW,CAIX,aAAc,CAFd,QAAS,CAIT,QAAS,CADT,iBAAkB,CAElB,wDAA2D,CAE3D,0BAA2B,CAR3B,OAYD,CAOF,kEACC,gGACD,CAKA,gDACC,OAAS,CACT,sBACD,CAGD,kCAGC,gDAAiD,CADjD,sDAAuD,CADvD,QAAS,CAGT,eAwBD,CAtBC,yCAMC,kBAAmB,CALnB,UAAW,CAIX,QAAS,CAHT,iBAAkB,CAClB,uDAA0D,CAC1D,OAiBD,CCjFA,mDDwEE,sFAAuF,CADvF,+JAAoK,CAFpK,SCnEF,CAFA,mDD+EE,sFAAuF,CADvF,+JAAmK,CAFnK,UC1EF",sourcesContent:["/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n.ck.ck-editor__editable {\n\t/*\n\t * Vertical drop target (in text).\n\t */\n\t& .ck.ck-clipboard-drop-target-position {\n\t\tdisplay: inline;\n\t\tposition: relative;\n\t\tpointer-events: none;\n\n\t\t& span {\n\t\t\tposition: absolute;\n\t\t\twidth: 0;\n\t\t}\n\t}\n\n\t/*\n\t * Styles of the widget being dragged (its preview).\n\t */\n\t& .ck-widget:-webkit-drag {\n\t\t& > .ck-widget__selection-handle {\n\t\t\tdisplay: none;\n\t\t}\n\n\t\t& > .ck-widget__type-around {\n\t\t\tdisplay: none;\n\t\t}\n\t}\n}\n\n.ck.ck-clipboard-drop-target-line {\n\tposition: absolute;\n\tpointer-events: none;\n}\n","/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n@import \"@ckeditor/ckeditor5-ui/theme/mixins/_dir.css\";\n\n:root {\n\t--ck-clipboard-drop-target-dot-width: 12px;\n\t--ck-clipboard-drop-target-dot-height: 8px;\n\t--ck-clipboard-drop-target-color: var(--ck-color-focus-border);\n}\n\n.ck.ck-editor__editable {\n\t/*\n\t * Vertical drop target (in text).\n\t */\n\t& .ck.ck-clipboard-drop-target-position {\n\t\t& span {\n\t\t\tbottom: calc(-.5 * var(--ck-clipboard-drop-target-dot-height));\n\t\t\ttop: calc(-.5 * var(--ck-clipboard-drop-target-dot-height));\n\t\t\tborder: 1px solid var(--ck-clipboard-drop-target-color);\n\t\t\tbackground: var(--ck-clipboard-drop-target-color);\n\t\t\tmargin-left: -1px;\n\n\t\t\t/* The triangle above the marker */\n\t\t\t&::after {\n\t\t\t\tcontent: '';\n\t\t\t\twidth: 0;\n\t\t\t\theight: 0;\n\n\t\t\t\tdisplay: block;\n\t\t\t\tposition: absolute;\n\t\t\t\tleft: 50%;\n\t\t\t\ttop: calc(-.5 * var(--ck-clipboard-drop-target-dot-height));\n\n\t\t\t\ttransform: translateX(-50%);\n\t\t\t\tborder-color: var(--ck-clipboard-drop-target-color) transparent transparent transparent;\n\t\t\t\tborder-width: calc(var(--ck-clipboard-drop-target-dot-height)) calc(.5 * var(--ck-clipboard-drop-target-dot-width)) 0 calc(.5 * var(--ck-clipboard-drop-target-dot-width));\n\t\t\t\tborder-style: solid;\n\t\t\t}\n\t\t}\n\t}\n\n\t/*\n\t * Styles of the widget that it a drop target.\n\t */\n\t& .ck-widget.ck-clipboard-drop-target-range {\n\t\toutline: var(--ck-widget-outline-thickness) solid var(--ck-clipboard-drop-target-color) !important;\n\t}\n\n\t/*\n\t * Styles of the widget being dragged (its preview).\n\t */\n\t& .ck-widget:-webkit-drag {\n\t\tzoom: 0.6;\n\t\toutline: none !important;\n\t}\n}\n\n.ck.ck-clipboard-drop-target-line {\n\theight: 0;\n\tborder: 1px solid var(--ck-clipboard-drop-target-color);\n\tbackground: var(--ck-clipboard-drop-target-color);\n\tmargin-top: -1px;\n\n\t&::before {\n\t\tcontent: '';\n\t\tposition: absolute;\n\t\ttop: calc(-.5 * var(--ck-clipboard-drop-target-dot-width));\n\t\twidth: 0;\n\t\theight: 0;\n\t\tborder-style: solid;\n\n\t\t@mixin ck-dir ltr {\n\t\t\tleft: -1px;\n\n\t\t\tborder-width: calc(.5 * var(--ck-clipboard-drop-target-dot-width)) 0 calc(.5 * var(--ck-clipboard-drop-target-dot-width)) var(--ck-clipboard-drop-target-dot-height);\n\t\t\tborder-color: transparent transparent transparent var(--ck-clipboard-drop-target-color);\n\t\t}\n\n\t\t@mixin ck-dir rtl {\n\t\t\tright: -1px;\n\n\t\t\tborder-width:calc(.5 * var(--ck-clipboard-drop-target-dot-width)) var(--ck-clipboard-drop-target-dot-height) calc(.5 * var(--ck-clipboard-drop-target-dot-width)) 0;\n\t\t\tborder-color: transparent var(--ck-clipboard-drop-target-color) transparent transparent;\n\t\t}\n\t}\n}\n",'/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n@define-mixin ck-dir $direction {\n\t[dir="$(direction)"] & {\n\t\t@mixin-content;\n\t}\n}\n'],sourceRoot:""}]);const a=s},9428:e=>{var t=!0,o=!1,n=!1;function i(e,t,o){var n=e.attrIndex(t),i=[t,o];n<0?e.attrPush(i):e.attrs[n]=i}function r(e,t){for(var o=e[t].level-1,n=t-1;n>=0;n--)if(e[n].level===o)return n;return-1}function s(e,t){return"inline"===e[t].type&&function(e){return"paragraph_open"===e.type}(e[t-1])&&function(e){return"list_item_open"===e.type}(e[t-2])&&function(e){return 0===e.content.indexOf("[ ] ")||0===e.content.indexOf("[x] ")||0===e.content.indexOf("[X] ")}(e[t])}function a(e,i){if(e.children.unshift(function(e,o){var n=new o("html_inline","",0),i=t?' disabled="" ':"";0===e.content.indexOf("[ ] ")?n.content='':0!==e.content.indexOf("[x] ")&&0!==e.content.indexOf("[X] ")||(n.content='');return n}(e,i)),e.children[1].content=e.children[1].content.slice(3),e.content=e.content.slice(3),o)if(n){e.children.pop();var r="task-item-"+Math.ceil(1e7*Math.random()-1e3);e.children[0].content=e.children[0].content.slice(0,-1)+' id="'+r+'">',e.children.push(function(e,t,o){var n=new o("html_inline","",0);return n.content='",n.attrs=[{for:t}],n}(e.content,r,i))}else e.children.unshift(function(e){var t=new e("html_inline","",0);return t.content="",t}(i))}e.exports=function(e,l){l&&(t=!l.enabled,o=!!l.label,n=!!l.labelAfter),e.core.ruler.after("inline","github-task-lists",(function(e){for(var o=e.tokens,n=2;n{"use strict";o.d(t,{A:()=>a});var n=o(1354),i=o.n(n),r=o(6314),s=o.n(r)()(i());s.push([e.id,":root{--ck-accessibility-help-dialog-max-width:600px;--ck-accessibility-help-dialog-max-height:400px;--ck-accessibility-help-dialog-border-color:#ccced1;--ck-accessibility-help-dialog-code-background-color:#ededed;--ck-accessibility-help-dialog-kbd-shadow-color:#9c9c9c}.ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content{border:1px solid transparent;max-height:var(--ck-accessibility-help-dialog-max-height);max-width:var(--ck-accessibility-help-dialog-max-width);overflow:auto;padding:var(--ck-spacing-large);user-select:text}.ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content:focus{border:var(--ck-focus-ring);box-shadow:var(--ck-focus-outer-shadow),0 0;outline:none}.ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content *{white-space:normal}.ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content .ck-label{display:none}.ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content h3{font-size:1.2em;font-weight:700}.ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content h4{font-size:1em;font-weight:700}.ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content h3,.ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content h4,.ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content p,.ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content table{margin:1em 0}.ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content dl{border-bottom:none;border-top:1px solid var(--ck-accessibility-help-dialog-border-color);display:grid;grid-template-columns:2fr 1fr}.ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content dl dd,.ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content dl dt{border-bottom:1px solid var(--ck-accessibility-help-dialog-border-color);padding:.4em 0}.ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content dl dt{grid-column-start:1}.ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content dl dd{grid-column-start:2;text-align:right}.ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content code,.ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content kbd{background:var(--ck-accessibility-help-dialog-code-background-color);border-radius:2px;display:inline-block;font-size:.9em;line-height:1;padding:.4em;text-align:center;vertical-align:middle}.ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content code{font-family:monospace}.ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content kbd{box-shadow:0 1px 1px var(--ck-accessibility-help-dialog-kbd-shadow-color);margin:0 1px;min-width:1.8em}.ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content kbd+kbd{margin-left:2px}","",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-ui/components/editorui/accessibilityhelp.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/mixins/_focus.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/mixins/_shadow.css"],names:[],mappings:"AAQA,MACC,8CAA+C,CAC/C,+CAAgD,CAChD,mDAA8D,CAC9D,4DAAyE,CACzE,uDACD,CAEA,wEAOC,4BAA6B,CAJ7B,yDAA0D,CAD1D,uDAAwD,CAExD,aAAc,CAHd,+BAAgC,CAIhC,gBAgFD,CA5EC,8ECdA,2BAA2B,CCF3B,2CAA8B,CDC9B,YDkBA,CAEA,0EACC,kBACD,CAGA,kFACC,YACD,CAEA,2EAEC,eAAgB,CADhB,eAED,CAEA,2EAEC,aAAc,CADd,eAED,CAEA,8SAIC,YACD,CAEA,2EAIC,kBAAmB,CADnB,qEAAsE,CAFtE,YAAa,CACb,6BAiBD,CAbC,4JACC,wEAAyE,CACzE,cACD,CAEA,8EACC,mBACD,CAEA,8EACC,mBAAoB,CACpB,gBACD,CAGD,yJAEC,oEAAqE,CAIrE,iBAAkB,CALlB,oBAAqB,CAOrB,cAAe,CAHf,aAAc,CAFd,YAAa,CAIb,iBAAkB,CAHlB,qBAKD,CAEA,6EACC,qBACD,CAEA,4EAEC,yEAA4E,CAC5E,YAAa,CAFb,eAOD,CAHC,gFACC,eACD",sourcesContent:['/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n@import "../../../mixins/_focus.css";\n@import "../../../mixins/_shadow.css";\n\n:root {\n\t--ck-accessibility-help-dialog-max-width: 600px;\n\t--ck-accessibility-help-dialog-max-height: 400px;\n\t--ck-accessibility-help-dialog-border-color: hsl(220, 6%, 81%);\n\t--ck-accessibility-help-dialog-code-background-color: hsl(0deg 0% 92.94%);\n\t--ck-accessibility-help-dialog-kbd-shadow-color: hsl(0deg 0% 61%);\n}\n\n.ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content {\n\tpadding: var(--ck-spacing-large);\n\tmax-width: var(--ck-accessibility-help-dialog-max-width);\n\tmax-height: var(--ck-accessibility-help-dialog-max-height);\n\toverflow: auto;\n\tuser-select: text;\n\n\tborder: 1px solid transparent;\n\n\t&:focus {\n\t\t@mixin ck-focus-ring;\n\t\t@mixin ck-box-shadow var(--ck-focus-outer-shadow);\n\t}\n\n\t* {\n\t\twhite-space: normal;\n\t}\n\n\t/* Hide the main label of the content container. */\n\t& .ck-label {\n\t\tdisplay: none;\n\t}\n\n\t& h3 {\n\t\tfont-weight: bold;\n\t\tfont-size: 1.2em;\n\t}\n\n\t& h4 {\n\t\tfont-weight: bold;\n\t\tfont-size: 1em;\n\t}\n\n\t& p,\n\t& h3,\n\t& h4,\n\t& table {\n\t\tmargin: 1em 0;\n\t}\n\n\t& dl {\n\t\tdisplay: grid;\n\t\tgrid-template-columns: 2fr 1fr;\n\t\tborder-top: 1px solid var(--ck-accessibility-help-dialog-border-color);\n\t\tborder-bottom: none;\n\n\t\t& dt, & dd {\n\t\t\tborder-bottom: 1px solid var(--ck-accessibility-help-dialog-border-color);\n\t\t\tpadding: .4em 0;\n\t\t}\n\n\t\t& dt {\n\t\t\tgrid-column-start: 1;\n\t\t}\n\n\t\t& dd {\n\t\t\tgrid-column-start: 2;\n\t\t\ttext-align: right;\n\t\t}\n\t}\n\n\t& kbd, & code {\n\t\tdisplay: inline-block;\n\t\tbackground: var(--ck-accessibility-help-dialog-code-background-color);\n\t\tpadding: .4em;\n\t\tvertical-align: middle;\n\t\tline-height: 1;\n\t\tborder-radius: 2px;\n\t\ttext-align: center;\n\t\tfont-size: .9em;\n\t}\n\n\t& code {\n\t\tfont-family: monospace;\n\t}\n\n\t& kbd {\n\t\tmin-width: 1.8em;\n\t\tbox-shadow: 0px 1px 1px var(--ck-accessibility-help-dialog-kbd-shadow-color);\n\t\tmargin: 0 1px;\n\n\t\t& + kbd {\n\t\t\tmargin-left: 2px;\n\t\t}\n\t}\n}\n\n',"/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/**\n * A visual style of focused element's border.\n */\n@define-mixin ck-focus-ring {\n\t/* Disable native outline. */\n\toutline: none;\n\tborder: var(--ck-focus-ring)\n}\n","/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/**\n * A helper to combine multiple shadows.\n */\n@define-mixin ck-box-shadow $shadowA, $shadowB: 0 0 {\n\tbox-shadow: $shadowA, $shadowB;\n}\n\n/**\n * Gives an element a drop shadow so it looks like a floating panel.\n */\n@define-mixin ck-drop-shadow {\n\t@mixin ck-box-shadow var(--ck-drop-shadow);\n}\n"],sourceRoot:""}]);const a=s},9624:(e,t,o)=>{"use strict";o.d(t,{A:()=>a});var n=o(1354),i=o.n(n),r=o(6314),s=o.n(r)()(i());s.push([e.id,".ck.ck-button.ck-switchbutton .ck-button__toggle,.ck.ck-button.ck-switchbutton .ck-button__toggle .ck-button__toggle__inner{display:block}:root{--ck-switch-button-toggle-width:2.6153846154em;--ck-switch-button-toggle-inner-size:calc(1.07692em + 1px);--ck-switch-button-translation:calc(var(--ck-switch-button-toggle-width) - var(--ck-switch-button-toggle-inner-size) - 2px);--ck-switch-button-inner-hover-shadow:0 0 0 5px var(--ck-color-switch-button-inner-shadow)}.ck.ck-button.ck-switchbutton,.ck.ck-button.ck-switchbutton.ck-on:active,.ck.ck-button.ck-switchbutton.ck-on:focus,.ck.ck-button.ck-switchbutton.ck-on:hover,.ck.ck-button.ck-switchbutton:active,.ck.ck-button.ck-switchbutton:focus,.ck.ck-button.ck-switchbutton:hover{background:transparent;color:inherit}[dir=ltr] .ck.ck-button.ck-switchbutton .ck-button__label{margin-right:calc(var(--ck-spacing-large)*2)}[dir=rtl] .ck.ck-button.ck-switchbutton .ck-button__label{margin-left:calc(var(--ck-spacing-large)*2)}.ck.ck-button.ck-switchbutton .ck-button__toggle{background:var(--ck-color-switch-button-off-background);border:1px solid transparent;border-radius:0;transition:background .4s ease,box-shadow .2s ease-in-out,outline .2s ease-in-out;width:var(--ck-switch-button-toggle-width)}.ck-rounded-corners .ck.ck-button.ck-switchbutton .ck-button__toggle,.ck.ck-button.ck-switchbutton .ck-button__toggle.ck-rounded-corners{border-radius:var(--ck-border-radius)}[dir=ltr] .ck.ck-button.ck-switchbutton .ck-button__toggle{margin-left:auto}[dir=rtl] .ck.ck-button.ck-switchbutton .ck-button__toggle{margin-right:auto}.ck.ck-button.ck-switchbutton .ck-button__toggle .ck-button__toggle__inner{background:var(--ck-color-switch-button-inner-background);border-radius:0;height:var(--ck-switch-button-toggle-inner-size);transition:all .3s ease;width:var(--ck-switch-button-toggle-inner-size)}.ck-rounded-corners .ck.ck-button.ck-switchbutton .ck-button__toggle .ck-button__toggle__inner,.ck.ck-button.ck-switchbutton .ck-button__toggle .ck-button__toggle__inner.ck-rounded-corners{border-radius:var(--ck-border-radius);border-radius:calc(var(--ck-border-radius)*.5)}@media (prefers-reduced-motion:reduce){.ck.ck-button.ck-switchbutton .ck-button__toggle .ck-button__toggle__inner{transition:none}}.ck.ck-button.ck-switchbutton .ck-button__toggle:hover{background:var(--ck-color-switch-button-off-hover-background)}.ck.ck-button.ck-switchbutton .ck-button__toggle:hover .ck-button__toggle__inner{box-shadow:var(--ck-switch-button-inner-hover-shadow)}.ck.ck-button.ck-switchbutton.ck-disabled .ck-button__toggle{opacity:var(--ck-disabled-opacity)}.ck.ck-button.ck-switchbutton:focus{border-color:transparent;box-shadow:none;outline:none}.ck.ck-button.ck-switchbutton:focus .ck-button__toggle{box-shadow:0 0 0 1px var(--ck-color-base-background),0 0 0 5px var(--ck-color-focus-outer-shadow);outline:var(--ck-focus-ring);outline-offset:1px}.ck.ck-button.ck-switchbutton.ck-on .ck-button__toggle{background:var(--ck-color-switch-button-on-background)}.ck.ck-button.ck-switchbutton.ck-on .ck-button__toggle:hover{background:var(--ck-color-switch-button-on-hover-background)}[dir=ltr] .ck.ck-button.ck-switchbutton.ck-on .ck-button__toggle .ck-button__toggle__inner{transform:translateX(var( --ck-switch-button-translation ))}[dir=rtl] .ck.ck-button.ck-switchbutton.ck-on .ck-button__toggle .ck-button__toggle__inner{transform:translateX(calc(var( --ck-switch-button-translation )*-1))}","",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/components/button/switchbutton.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-ui/components/button/switchbutton.css","webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/mixins/_dir.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/mixins/_rounded.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/mixins/_disabled.css"],names:[],mappings:"AASE,4HACC,aACD,CCCF,MAEC,8CAA+C,CAE/C,0DAAgE,CAChE,2HAIC,CACD,0FACD,CAOC,0QAEC,sBAAuB,CADvB,aAED,CC3BA,0DDgCE,4CC9BF,CAFA,0DDqCE,2CCnCF,CDuCA,iDAkBC,uDAAwD,CAFxD,4BAA6B,CEpD9B,eAAgB,CFmDf,iFAAsF,CAEtF,0CA2BD,CE9EA,yIAEC,qCAED,CDXA,2DD8CE,gBC5CF,CAFA,2DDmDE,iBCjDF,CD2DC,2EAOC,yDAA0D,CE/D5D,eAAgB,CF8Dd,gDAAiD,CAIjD,uBAA0B,CAL1B,+CAUD,CErED,6LAEC,qCAAsC,CFsDpC,8CEpDH,CF8DE,uCAZD,2EAaE,eAEF,CADC,CAGD,uDACC,6DAKD,CAHC,iFACC,qDACD,CAIF,6DGpFA,kCHsFA,CAGA,oCACC,wBAAyB,CAEzB,eAAgB,CADhB,YAQD,CALC,uDACC,iGAAmG,CAEnG,4BAA6B,CAD7B,kBAED,CAKA,uDACC,sDAkBD,CAhBC,6DACC,4DACD,CC/GF,2FDsHI,2DCpHJ,CAFA,2FD0HI,oECxHJ",sourcesContent:["/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n.ck.ck-button.ck-switchbutton {\n\t& .ck-button__toggle {\n\t\tdisplay: block;\n\n\t\t& .ck-button__toggle__inner {\n\t\t\tdisplay: block;\n\t\t}\n\t}\n}\n",'/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n@import "../../../mixins/_rounded.css";\n@import "../../../mixins/_disabled.css";\n@import "@ckeditor/ckeditor5-ui/theme/mixins/_dir.css";\n\n/* Note: To avoid rendering issues (aliasing) but to preserve the responsive nature\nof the component, floating–point numbers have been used which, for the default font size\n(see: --ck-font-size-base), will generate simple integers. */\n:root {\n\t/* 34px at 13px font-size */\n\t--ck-switch-button-toggle-width: 2.6153846154em;\n\t/* 14px at 13px font-size */\n\t--ck-switch-button-toggle-inner-size: calc(1.0769230769em + 1px);\n\t--ck-switch-button-translation: calc(\n\t\tvar(--ck-switch-button-toggle-width) -\n\t\tvar(--ck-switch-button-toggle-inner-size) -\n\t\t2px /* Border */\n\t);\n\t--ck-switch-button-inner-hover-shadow: 0 0 0 5px var(--ck-color-switch-button-inner-shadow);\n}\n\n.ck.ck-button.ck-switchbutton {\n\t/* Unlike a regular button, the switch button text color and background should never change.\n\t * Changing toggle switch (background, outline) is enough to carry the information about the\n\t * state of the entire component (https://github.com/ckeditor/ckeditor5/issues/12519)\n\t */\n\t&, &:hover, &:focus, &:active, &.ck-on:hover, &.ck-on:focus, &.ck-on:active {\n\t\tcolor: inherit;\n\t\tbackground: transparent;\n\t}\n\n\t& .ck-button__label {\n\t\t@mixin ck-dir ltr {\n\t\t\t/* Separate the label from the switch */\n\t\t\tmargin-right: calc(2 * var(--ck-spacing-large));\n\t\t}\n\n\t\t@mixin ck-dir rtl {\n\t\t\t/* Separate the label from the switch */\n\t\t\tmargin-left: calc(2 * var(--ck-spacing-large));\n\t\t}\n\t}\n\n\t& .ck-button__toggle {\n\t\t@mixin ck-rounded-corners;\n\n\t\t@mixin ck-dir ltr {\n\t\t\t/* Make sure the toggle is always to the right as far as possible. */\n\t\t\tmargin-left: auto;\n\t\t}\n\n\t\t@mixin ck-dir rtl {\n\t\t\t/* Make sure the toggle is always to the left as far as possible. */\n\t\t\tmargin-right: auto;\n\t\t}\n\n\t\t/* Apply some smooth transition to the box-shadow and border. */\n\t\t/* Gently animate the background color of the toggle switch */\n\t\ttransition: background 400ms ease, box-shadow .2s ease-in-out, outline .2s ease-in-out;\n\t\tborder: 1px solid transparent;\n\t\twidth: var(--ck-switch-button-toggle-width);\n\t\tbackground: var(--ck-color-switch-button-off-background);\n\n\t\t& .ck-button__toggle__inner {\n\t\t\t@mixin ck-rounded-corners {\n\t\t\t\tborder-radius: calc(.5 * var(--ck-border-radius));\n\t\t\t}\n\n\t\t\twidth: var(--ck-switch-button-toggle-inner-size);\n\t\t\theight: var(--ck-switch-button-toggle-inner-size);\n\t\t\tbackground: var(--ck-color-switch-button-inner-background);\n\n\t\t\t/* Gently animate the inner part of the toggle switch */\n\t\t\ttransition: all 300ms ease;\n\n\t\t\t@media (prefers-reduced-motion: reduce) {\n\t\t\t\ttransition: none;\n\t\t\t}\n\t\t}\n\n\t\t&:hover {\n\t\t\tbackground: var(--ck-color-switch-button-off-hover-background);\n\n\t\t\t& .ck-button__toggle__inner {\n\t\t\t\tbox-shadow: var(--ck-switch-button-inner-hover-shadow);\n\t\t\t}\n\t\t}\n\t}\n\n\t&.ck-disabled .ck-button__toggle {\n\t\t@mixin ck-disabled;\n\t}\n\n\t/* Overriding default .ck-button:focus styles + an outline around the toogle */\n\t&:focus {\n\t\tborder-color: transparent;\n\t\toutline: none;\n\t\tbox-shadow: none;\n\n\t\t& .ck-button__toggle {\n\t\t\tbox-shadow: 0 0 0 1px var(--ck-color-base-background), 0 0 0 5px var(--ck-color-focus-outer-shadow);\n\t\t\toutline-offset: 1px;\n\t\t\toutline: var(--ck-focus-ring);\n\t\t}\n\t}\n\n\t/* stylelint-disable-next-line no-descending-specificity */\n\t&.ck-on {\n\t\t& .ck-button__toggle {\n\t\t\tbackground: var(--ck-color-switch-button-on-background);\n\n\t\t\t&:hover {\n\t\t\t\tbackground: var(--ck-color-switch-button-on-hover-background);\n\t\t\t}\n\n\t\t\t& .ck-button__toggle__inner {\n\t\t\t\t/*\n\t\t\t\t* Move the toggle switch to the right. It will be animated.\n\t\t\t\t*/\n\t\t\t\t@mixin ck-dir ltr {\n\t\t\t\t\ttransform: translateX( var( --ck-switch-button-translation ) );\n\t\t\t\t}\n\n\t\t\t\t@mixin ck-dir rtl {\n\t\t\t\t\ttransform: translateX( calc( -1 * var( --ck-switch-button-translation ) ) );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n','/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n@define-mixin ck-dir $direction {\n\t[dir="$(direction)"] & {\n\t\t@mixin-content;\n\t}\n}\n',"/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/**\n * Implements rounded corner interface for .ck-rounded-corners class.\n *\n * @see $ck-border-radius\n */\n@define-mixin ck-rounded-corners {\n\tborder-radius: 0;\n\n\t.ck-rounded-corners &,\n\t&.ck-rounded-corners {\n\t\tborder-radius: var(--ck-border-radius);\n\t\t@mixin-content;\n\t}\n}\n","/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/**\n * A class which indicates that an element holding it is disabled.\n */\n@define-mixin ck-disabled {\n\topacity: var(--ck-disabled-opacity);\n}\n"],sourceRoot:""}]);const a=s},9938:(e,t,o)=>{"use strict";o.d(t,{A:()=>a});var n=o(1354),i=o.n(n),r=o(6314),s=o.n(r)()(i());s.push([e.id,".ck .ck-balloon-rotator__navigation{align-items:center;display:flex;justify-content:center}.ck .ck-balloon-rotator__content .ck-toolbar{justify-content:center}.ck .ck-balloon-rotator__navigation{background:var(--ck-color-toolbar-background);border-bottom:1px solid var(--ck-color-toolbar-border);padding:0 var(--ck-spacing-small)}.ck .ck-balloon-rotator__navigation>*{margin-bottom:var(--ck-spacing-small);margin-right:var(--ck-spacing-small);margin-top:var(--ck-spacing-small)}.ck .ck-balloon-rotator__navigation .ck-balloon-rotator__counter{margin-left:var(--ck-spacing-small);margin-right:var(--ck-spacing-standard)}.ck .ck-balloon-rotator__content .ck.ck-annotation-wrapper{box-shadow:none}","",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/components/panel/balloonrotator.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-ui/components/panel/balloonrotator.css"],names:[],mappings:"AAKA,oCAEC,kBAAmB,CADnB,YAAa,CAEb,sBACD,CAKA,6CACC,sBACD,CCXA,oCACC,6CAA8C,CAC9C,sDAAuD,CACvD,iCAgBD,CAbC,sCAGC,qCAAsC,CAFtC,oCAAqC,CACrC,kCAED,CAGA,iEAIC,mCAAoC,CAHpC,uCAID,CAMA,2DACC,eACD",sourcesContent:["/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n.ck .ck-balloon-rotator__navigation {\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n}\n\n/* Buttons inside a toolbar should be centered when rotator bar is wider.\n * See: https://github.com/ckeditor/ckeditor5-ui/issues/495\n */\n.ck .ck-balloon-rotator__content .ck-toolbar {\n\tjustify-content: center;\n}\n","/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n.ck .ck-balloon-rotator__navigation {\n\tbackground: var(--ck-color-toolbar-background);\n\tborder-bottom: 1px solid var(--ck-color-toolbar-border);\n\tpadding: 0 var(--ck-spacing-small);\n\n\t/* Let's keep similar appearance to `ck-toolbar`. */\n\t& > * {\n\t\tmargin-right: var(--ck-spacing-small);\n\t\tmargin-top: var(--ck-spacing-small);\n\t\tmargin-bottom: var(--ck-spacing-small);\n\t}\n\n\t/* Gives counter more breath than buttons. */\n\t& .ck-balloon-rotator__counter {\n\t\tmargin-right: var(--ck-spacing-standard);\n\n\t\t/* We need to use smaller margin because of previous button's right margin. */\n\t\tmargin-left: var(--ck-spacing-small);\n\t}\n}\n\n.ck .ck-balloon-rotator__content {\n\n\t/* Disable default annotation shadow inside rotator with fake panels. */\n\t& .ck.ck-annotation-wrapper {\n\t\tbox-shadow: none;\n\t}\n}\n"],sourceRoot:""}]);const a=s},9939:(e,t,o)=>{"use strict";o.d(t,{A:()=>a});var n=o(1354),i=o.n(n),r=o(6314),s=o.n(r)()(i());s.push([e.id,".ck.ck-block-toolbar-button{position:absolute;z-index:var(--ck-z-default)}:root{--ck-color-block-toolbar-button:var(--ck-color-text);--ck-block-toolbar-button-size:var(--ck-font-size-normal)}.ck.ck-block-toolbar-button{color:var(--ck-color-block-toolbar-button);font-size:var(--ck-block-toolbar-size)}","",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/components/toolbar/blocktoolbar.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-ui/components/toolbar/blocktoolbar.css"],names:[],mappings:"AAKA,4BACC,iBAAkB,CAClB,2BACD,CCHA,MACC,oDAAqD,CACrD,yDACD,CAEA,4BACC,0CAA2C,CAC3C,sCACD",sourcesContent:["/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n.ck.ck-block-toolbar-button {\n\tposition: absolute;\n\tz-index: var(--ck-z-default);\n}\n","/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n:root {\n\t--ck-color-block-toolbar-button: var(--ck-color-text);\n\t--ck-block-toolbar-button-size: var(--ck-font-size-normal);\n}\n\n.ck.ck-block-toolbar-button {\n\tcolor: var(--ck-color-block-toolbar-button);\n\tfont-size: var(--ck-block-toolbar-size);\n}\n"],sourceRoot:""}]);const a=s},9969:(e,t,o)=>{"use strict";o.d(t,{A:()=>a});var n=o(1354),i=o.n(n),r=o(6314),s=o.n(r)()(i());s.push([e.id,".ck-content .table{display:table;margin:.9em auto}.ck-content .table table{border:1px double #b3b3b3;border-collapse:collapse;border-spacing:0;height:100%;width:100%}.ck-content .table table td,.ck-content .table table th{border:1px solid #bfbfbf;min-width:2em;padding:.4em}.ck-content .table table th{background:rgba(0,0,0,.05);font-weight:700}@media print{.ck-content .table table{height:auto}}.ck-content[dir=rtl] .table th{text-align:right}.ck-content[dir=ltr] .table th{text-align:left}.ck-editor__editable .ck-table-bogus-paragraph{display:inline-block;width:100%}","",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-table/theme/table.css"],names:[],mappings:"AAKA,mBAKC,aAAc,CADd,gBAiCD,CA9BC,yBAYC,yBAAkC,CAVlC,wBAAyB,CACzB,gBAAiB,CAKjB,WAAY,CADZ,UAsBD,CAfC,wDAQC,wBAAiC,CANjC,aAAc,CACd,YAMD,CAEA,4BAEC,0BAA+B,CAD/B,eAED,CAeF,aACC,yBACC,WACD,CACD,CAIA,+BACC,gBACD,CAEA,+BACC,eACD,CAEA,+CAKC,oBAAqB,CAMrB,UACD",sourcesContent:['/*\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n.ck-content .table {\n\t/* Give the table widget some air and center it horizontally */\n\t/* The first value should be equal to --ck-spacing-large variable if used in the editor context\n\tto avoid the content jumping (See https://github.com/ckeditor/ckeditor5/issues/9825). */\n\tmargin: 0.9em auto;\n\tdisplay: table;\n\n\t& table {\n\t\t/* The table cells should have slight borders */\n\t\tborder-collapse: collapse;\n\t\tborder-spacing: 0;\n\n\t\t/* Table width and height are set on the parent
    . Make sure the table inside stretches\n\t\tto the full dimensions of the container (https://github.com/ckeditor/ckeditor5/issues/6186). */\n\t\twidth: 100%;\n\t\theight: 100%;\n\n\t\t/* The outer border of the table should be slightly darker than the inner lines.\n\t\tAlso see https://github.com/ckeditor/ckeditor5-table/issues/50. */\n\t\tborder: 1px double hsl(0, 0%, 70%);\n\n\t\t& td,\n\t\t& th {\n\t\t\tmin-width: 2em;\n\t\t\tpadding: .4em;\n\n\t\t\t/* The border is inherited from .ck-editor__nested-editable styles, so theoretically it\'s not necessary here.\n\t\t\tHowever, the border is a content style, so it should use .ck-content (so it works outside the editor).\n\t\t\tHence, the duplication. See https://github.com/ckeditor/ckeditor5/issues/6314 */\n\t\t\tborder: 1px solid hsl(0, 0%, 75%);\n\t\t}\n\n\t\t& th {\n\t\t\tfont-weight: bold;\n\t\t\tbackground: hsla(0, 0%, 0%, 5%);\n\t\t}\n\t}\n}\n\n/**\n * Expanding the table to the full height of the parent container is necessary because tables\n * are rendered inside
    elements, which is kinda buggy in table height calculation.\n * While setting `height: 100%` fixes the issue in the editing mode described here:\n * https://github.com/ckeditor/ckeditor5/issues/6186\n *\n * it\'s causing another issue with the table height in the print preview mode here:\n * https://github.com/ckeditor/ckeditor5/issues/16856\n *\n * For now, resetting the height to `initial` in the print mode works as a workaround.\n */\n@media print {\n\t.ck-content .table table {\n\t\theight: initial;\n\t}\n}\n\n/* Text alignment of the table header should match the editor settings and override the native browser styling,\nwhen content is available outside the editor. See https://github.com/ckeditor/ckeditor5/issues/6638 */\n.ck-content[dir="rtl"] .table th {\n\ttext-align: right;\n}\n\n.ck-content[dir="ltr"] .table th {\n\ttext-align: left;\n}\n\n.ck-editor__editable .ck-table-bogus-paragraph {\n\t/*\n\t * Use display:inline-block to force Chrome/Safari to limit text mutations to this element.\n\t * See https://github.com/ckeditor/ckeditor5/issues/6062.\n\t */\n\tdisplay: inline-block;\n\n\t/*\n\t * Inline HTML elements nested in the span should always be dimensioned in relation to the whole cell width.\n\t * See https://github.com/ckeditor/ckeditor5/issues/9117.\n\t */\n\twidth: 100%;\n}\n'],sourceRoot:""}]);const a=s}},n={};function i(e){var t=n[e];if(void 0!==t)return t.exports;var r=n[e]={id:e,exports:{}};return o[e](r,r.exports,i),r.exports}i.m=o,i.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return i.d(t,{a:t}),t},t=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,i.t=function(o,n){if(1&n&&(o=this(o)),8&n)return o;if("object"==typeof o&&o){if(4&n&&o.__esModule)return o;if(16&n&&"function"==typeof o.then)return o}var r=Object.create(null);i.r(r);var s={};e=e||[null,t({}),t([]),t(t)];for(var a=2&n&&o;"object"==typeof a&&!~e.indexOf(a);a=t(a))Object.getOwnPropertyNames(a).forEach((e=>s[e]=()=>o[e]));return s.default=()=>o,i.d(r,s),r},i.d=(e,t)=>{for(var o in t)i.o(t,o)&&!i.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:t[o]})},i.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),i.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},i.b=document.baseURI||self.location.href;var r={};return(()=>{"use strict";var e={};i.r(e),i.d(e,{decode:()=>UI,encode:()=>KI,format:()=>ZI,parse:()=>lP});var t={};i.r(t),i.d(t,{Any:()=>uP,Cc:()=>hP,Cf:()=>pP,P:()=>cP,S:()=>dP,Z:()=>mP});var o={};i.r(o),i.d(o,{arrayReplaceAt:()=>jP,assign:()=>HP,escapeHtml:()=>eF,escapeRE:()=>oF,fromCodePoint:()=>$P,has:()=>LP,isMdAsciiPunct:()=>sF,isPunctChar:()=>rF,isSpace:()=>nF,isString:()=>NP,isValidEntityCode:()=>qP,isWhiteSpace:()=>iF,lib:()=>lF,normalizeReference:()=>aF,unescapeAll:()=>ZP,unescapeMd:()=>KP});var n={};let r;i.r(n),i.d(n,{parseLinkDestination:()=>dF,parseLinkLabel:()=>cF,parseLinkTitle:()=>uF});try{r={window,document}}catch(e){r={window:{},document:{}}}const s=r;function a(){try{return navigator.userAgent.toLowerCase()}catch(e){return""}}const l=a(),c={isMac:d(l),isWindows:u(l),isGecko:h(l),isSafari:p(l),isiOS:m(l),isAndroid:g(l),isBlink:f(l),get isMediaForcedColors(){return!!s.window.matchMedia&&s.window.matchMedia("(forced-colors: active)").matches},get isMotionReduced(){return!!s.window.matchMedia&&s.window.matchMedia("(prefers-reduced-motion)").matches},features:{isRegExpUnicodePropertySupported:b()}};function d(e){return e.indexOf("macintosh")>-1}function u(e){return e.indexOf("windows")>-1}function h(e){return!!e.match(/gecko\/\d+/)}function p(e){return e.indexOf(" applewebkit/")>-1&&-1===e.indexOf("chrome")}function m(e){return!!e.match(/iphone|ipad/i)||d(e)&&navigator.maxTouchPoints>0}function g(e){return e.indexOf("android")>-1}function f(e){return e.indexOf("chrome/")>-1&&e.indexOf("edge/")<0}function b(){let e=!1;try{e=0==="ć".search(new RegExp("[\\p{L}]","u"))}catch(e){}return e}function k(e,t,o,n){o=o||function(e,t){return e===t};const i=Array.isArray(e)?e:Array.prototype.slice.call(e),r=Array.isArray(t)?t:Array.prototype.slice.call(t),s=function(e,t,o){const n=w(e,t,o);if(-1===n)return{firstIndex:-1,lastIndexOld:-1,lastIndexNew:-1};const i=y(e,n),r=y(t,n),s=w(i,r,o),a=e.length-s,l=t.length-s;return{firstIndex:n,lastIndexOld:a,lastIndexNew:l}}(i,r,o),a=n?function(e,t){const{firstIndex:o,lastIndexOld:n,lastIndexNew:i}=e;if(-1===o)return Array(t).fill("equal");let r=[];o>0&&(r=r.concat(Array(o).fill("equal")));i-o>0&&(r=r.concat(Array(i-o).fill("insert")));n-o>0&&(r=r.concat(Array(n-o).fill("delete")));i0&&o.push({index:n,type:"insert",values:e.slice(n,r)});i-n>0&&o.push({index:n+(r-n),type:"delete",howMany:i-n});return o}(r,s);return a}function w(e,t,o){for(let n=0;n200||i>200||n+i>300)return A.fastDiff(e,t,o,!0);let r,s;if(ic?-1:1;d[n+h]&&(d[n]=d[n+h].slice(0)),d[n]||(d[n]=[]),d[n].push(i>c?r:s);let p=Math.max(i,c),m=p-n;for(;mc;p--)u[p]=h(p);u[c]=h(c),m++}while(u[c]!==l);return d[c].slice(1)}A.fastDiff=k;const C=function(){return function e(){e.called=!0}};class v{constructor(e,t){this.source=e,this.name=t,this.path=[],this.stop=C(),this.off=C()}}const x=new Array(256).fill("").map(((e,t)=>("0"+t.toString(16)).slice(-2)));function E(){const[e,t,o,n]=crypto.getRandomValues(new Uint32Array(4));return"e"+x[255&e]+x[e>>8&255]+x[e>>16&255]+x[e>>24&255]+x[255&t]+x[t>>8&255]+x[t>>16&255]+x[t>>24&255]+x[255&o]+x[o>>8&255]+x[o>>16&255]+x[o>>24&255]+x[255&n]+x[n>>8&255]+x[n>>16&255]+x[n>>24&255]}const D={get(e="normal"){return"number"!=typeof e?this[e]||this.normal:e},highest:1e5,high:1e3,normal:0,low:-1e3,lowest:-1e5};function B(e,t){const o=D.get(t.priority);let n=0,i=e.length;for(;n>1;D.get(e[t].priority){if("object"==typeof t&&null!==t){if(o.has(t))return`[object ${t.constructor.name}]`;o.add(t)}return t},i=t?` ${JSON.stringify(t,n)}`:"",r=I(e);return e+i+r}(e,o)),this.name="CKEditorError",this.context=t,this.data=o}is(e){return"CKEditorError"===e}static rethrowUnexpectedError(e,t){if(e.is&&e.is("CKEditorError"))throw e;const o=new S(e.message,t);throw o.stack=e.stack,o}}function T(e,t){console.warn(...P(e,t))}function I(e){return`\nRead more: https://ckeditor.com/docs/ckeditor5/latest/support/error-codes.html#error-${e}`}function P(e,t){const o=I(e);return t?[e,t,o]:[e,o]}const F="44.3.0",R=new Date(2025,2,5);if(globalThis.CKEDITOR_VERSION)throw new S("ckeditor-duplicated-modules",null);globalThis.CKEDITOR_VERSION=F;const M=Symbol("listeningTo"),z=Symbol("emitterId"),O=Symbol("delegations"),N=V(Object);function V(e){if(!e)return N;return class extends e{on(e,t,o){this.listenTo(this,e,t,o)}once(e,t,o){let n=!1;this.listenTo(this,e,((e,...o)=>{n||(n=!0,e.off(),t.call(this,e,...o))}),o)}off(e,t){this.stopListening(this,e,t)}listenTo(e,t,o,n={}){let i,r;this[M]||(this[M]={});const s=this[M];H(e)||L(e);const a=H(e);(i=s[a])||(i=s[a]={emitter:e,callbacks:{}}),(r=i.callbacks[t])||(r=i.callbacks[t]=[]),r.push(o),function(e,t,o,n,i){t._addEventListener?t._addEventListener(o,n,i):e._addEventListener.call(t,o,n,i)}(this,e,t,o,n)}stopListening(e,t,o){const n=this[M];let i=e&&H(e);const r=n&&i?n[i]:void 0,s=r&&t?r.callbacks[t]:void 0;if(!(!n||e&&!r||t&&!s))if(o){U(this,e,t,o);-1!==s.indexOf(o)&&(1===s.length?delete r.callbacks[t]:U(this,e,t,o))}else if(s){for(;o=s.pop();)U(this,e,t,o);delete r.callbacks[t]}else if(r){for(t in r.callbacks)this.stopListening(e,t);delete n[i]}else{for(i in n)this.stopListening(n[i].emitter);delete this[M]}}fire(e,...t){try{const o=e instanceof v?e:new v(this,e),n=o.name;let i=function(e,t){if(!e._events)return null;let o=t;do{const t=e._events[o];if(t&&t.callbacks&&t.callbacks.length)return t.callbacks;const n=o.lastIndexOf(":");o=n>-1?o.substring(0,n):""}while(o);return null}(this,n);if(o.path.push(this),i){i=i.slice();for(let e=0;e{this[O]||(this[O]=new Map),e.forEach((e=>{const n=this[O].get(e);n?n.set(t,o):this[O].set(e,new Map([[t,o]]))}))}}}stopDelegating(e,t){if(this[O])if(e)if(t){const o=this[O].get(e);o&&o.delete(t)}else this[O].delete(e);else this[O].clear()}_addEventListener(e,t,o){!function(e,t){const o=j(e);if(o[t])return;let n=t,i=null;const r=[];for(;""!==n&&!o[n];)o[n]={callbacks:[],childEvents:[]},r.push(o[n]),i&&o[n].childEvents.push(i),i=n,n=n.substr(0,n.lastIndexOf(":"));if(""!==n){for(const e of r)e.callbacks=o[n].callbacks.slice();o[n].childEvents.push(i)}}(this,e);const n=q(this,e),i={callback:t,priority:D.get(o.priority)};for(const e of n)B(e,i)}_removeEventListener(e,t){const o=q(this,e);for(const e of o)for(let o=0;o{V[e]=N.prototype[e]}));const W=function(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)},G=Symbol("observableProperties"),K=Symbol("boundObservables"),Z=Symbol("boundProperties"),J=Symbol("decoratedMethods"),Y=Symbol("decoratedOriginal"),Q=X(V());function X(e){if(!e)return Q;return class extends e{set(e,t){if(W(e))return void Object.keys(e).forEach((t=>{this.set(t,e[t])}),this);ee(this);const o=this[G];if(e in this&&!o.has(e))throw new S("observable-set-cannot-override",this);Object.defineProperty(this,e,{enumerable:!0,configurable:!0,get:()=>o.get(e),set(t){const n=o.get(e);let i=this.fire(`set:${e}`,e,t,n);void 0===i&&(i=t),n===i&&o.has(e)||(o.set(e,i),this.fire(`change:${e}`,e,i,n))}}),this[e]=t}bind(...e){if(!e.length||!ne(e))throw new S("observable-bind-wrong-properties",this);if(new Set(e).size!==e.length)throw new S("observable-bind-duplicate-properties",this);ee(this);const t=this[Z];e.forEach((e=>{if(t.has(e))throw new S("observable-bind-rebind",this)}));const o=new Map;return e.forEach((e=>{const n={property:e,to:[]};t.set(e,n),o.set(e,n)})),{to:te,toMany:oe,_observable:this,_bindProperties:e,_to:[],_bindings:o}}unbind(...e){if(!this[G])return;const t=this[Z],o=this[K];if(e.length){if(!ne(e))throw new S("observable-unbind-wrong-properties",this);e.forEach((e=>{const n=t.get(e);n&&(n.to.forEach((([e,t])=>{const i=o.get(e),r=i[t];r.delete(n),r.size||delete i[t],Object.keys(i).length||(o.delete(e),this.stopListening(e,"change"))})),t.delete(e))}))}else o.forEach(((e,t)=>{this.stopListening(t,"change")})),o.clear(),t.clear()}decorate(e){ee(this);const t=this[e];if(!t)throw new S("observablemixin-cannot-decorate-undefined",this,{object:this,methodName:e});this.on(e,((e,o)=>{e.return=t.apply(this,o)})),this[e]=function(...t){return this.fire(e,t)},this[e][Y]=t,this[J]||(this[J]=[]),this[J].push(e)}stopListening(e,t,o){if(!e&&this[J]){for(const e of this[J])this[e]=this[e][Y];delete this[J]}super.stopListening(e,t,o)}}}function ee(e){e[G]||(Object.defineProperty(e,G,{value:new Map}),Object.defineProperty(e,K,{value:new Map}),Object.defineProperty(e,Z,{value:new Map}))}function te(...e){const t=function(...e){if(!e.length)throw new S("observable-bind-to-parse-error",null);const t={to:[]};let o;"function"==typeof e[e.length-1]&&(t.callback=e.pop());return e.forEach((e=>{if("string"==typeof e)o.properties.push(e);else{if("object"!=typeof e)throw new S("observable-bind-to-parse-error",null);o={observable:e,properties:[]},t.to.push(o)}})),t}(...e),o=Array.from(this._bindings.keys()),n=o.length;if(!t.callback&&t.to.length>1)throw new S("observable-bind-to-no-callback",this);if(n>1&&t.callback)throw new S("observable-bind-to-extra-callback",this);var i;t.to.forEach((e=>{if(e.properties.length&&e.properties.length!==n)throw new S("observable-bind-to-properties-length",this);e.properties.length||(e.properties=this._bindProperties)})),this._to=t.to,t.callback&&(this._bindings.get(o[0]).callback=t.callback),i=this._observable,this._to.forEach((e=>{const t=i[K];let o;t.get(e.observable)||i.listenTo(e.observable,"change",((n,r)=>{o=t.get(e.observable)[r],o&&o.forEach((e=>{ie(i,e.property)}))}))})),function(e){let t;e._bindings.forEach(((o,n)=>{e._to.forEach((i=>{t=i.properties[o.callback?0:e._bindProperties.indexOf(n)],o.to.push([i.observable,t]),function(e,t,o,n){const i=e[K],r=i.get(o),s=r||{};s[n]||(s[n]=new Set);s[n].add(t),r||i.set(o,s)}(e._observable,o,i.observable,t)}))}))}(this),this._bindProperties.forEach((e=>{ie(this._observable,e)}))}function oe(e,t,o){if(this._bindings.size>1)throw new S("observable-bind-to-many-not-one-binding",this);this.to(...function(e,t){const o=e.map((e=>[e,t]));return Array.prototype.concat.apply([],o)}(e,t),o)}function ne(e){return e.every((e=>"string"==typeof e))}function ie(e,t){const o=e[Z].get(t);let n;o.callback?n=o.callback.apply(e,o.to.map((e=>e[0][e[1]]))):(n=o.to[0],n=n[0][n[1]]),Object.prototype.hasOwnProperty.call(e,t)?e[t]=n:e.set(t,n)}function re(e){let t=0;for(const o of e)t++;return t}function se(e,t){const o=Math.min(e.length,t.length);for(let n=0;n{X[e]=Q.prototype[e]}));const le="object"==typeof global&&global&&global.Object===Object&&global;var ce="object"==typeof self&&self&&self.Object===Object&&self;const de=le||ce||Function("return this")();const ue=de.Symbol;var he=Object.prototype,pe=he.hasOwnProperty,me=he.toString,ge=ue?ue.toStringTag:void 0;const fe=function(e){var t=pe.call(e,ge),o=e[ge];try{e[ge]=void 0;var n=!0}catch(e){}var i=me.call(e);return n&&(t?e[ge]=o:delete e[ge]),i};var be=Object.prototype.toString;const ke=function(e){return be.call(e)};var we=ue?ue.toStringTag:void 0;const _e=function(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":we&&we in Object(e)?fe(e):ke(e)};const ye=Array.isArray;const Ae=function(e){return null!=e&&"object"==typeof e};const Ce=function(e){return"string"==typeof e||!ye(e)&&Ae(e)&&"[object String]"==_e(e)};function ve(e,t,o={},n=[]){const i=o&&o.xmlns,r=i?e.createElementNS(i,t):e.createElement(t);for(const e in o)r.setAttribute(e,o[e]);!Ce(n)&&ae(n)||(n=[n]);for(let t of n)Ce(t)&&(t=e.createTextNode(t)),r.appendChild(t);return r}const xe=function(e,t){return function(o){return e(t(o))}};const Ee=xe(Object.getPrototypeOf,Object);var De=Function.prototype,Be=Object.prototype,Se=De.toString,Te=Be.hasOwnProperty,Ie=Se.call(Object);const Pe=function(e){if(!Ae(e)||"[object Object]"!=_e(e))return!1;var t=Ee(e);if(null===t)return!0;var o=Te.call(t,"constructor")&&t.constructor;return"function"==typeof o&&o instanceof o&&Se.call(o)==Ie};const Fe=function(){this.__data__=[],this.size=0};const Re=function(e,t){return e===t||e!=e&&t!=t};const Me=function(e,t){for(var o=e.length;o--;)if(Re(e[o][0],t))return o;return-1};var ze=Array.prototype.splice;const Oe=function(e){var t=this.__data__,o=Me(t,e);return!(o<0)&&(o==t.length-1?t.pop():ze.call(t,o,1),--this.size,!0)};const Ne=function(e){var t=this.__data__,o=Me(t,e);return o<0?void 0:t[o][1]};const Ve=function(e){return Me(this.__data__,e)>-1};const Le=function(e,t){var o=this.__data__,n=Me(o,e);return n<0?(++this.size,o.push([e,t])):o[n][1]=t,this};function He(e){var t=-1,o=null==e?0:e.length;for(this.clear();++t-1&&e%1==0&&e-1&&e%1==0&&e<=9007199254740991};var Yt={};Yt["[object Float32Array]"]=Yt["[object Float64Array]"]=Yt["[object Int8Array]"]=Yt["[object Int16Array]"]=Yt["[object Int32Array]"]=Yt["[object Uint8Array]"]=Yt["[object Uint8ClampedArray]"]=Yt["[object Uint16Array]"]=Yt["[object Uint32Array]"]=!0,Yt["[object Arguments]"]=Yt["[object Array]"]=Yt["[object ArrayBuffer]"]=Yt["[object Boolean]"]=Yt["[object DataView]"]=Yt["[object Date]"]=Yt["[object Error]"]=Yt["[object Function]"]=Yt["[object Map]"]=Yt["[object Number]"]=Yt["[object Object]"]=Yt["[object RegExp]"]=Yt["[object Set]"]=Yt["[object String]"]=Yt["[object WeakMap]"]=!1;const Qt=function(e){return Ae(e)&&Jt(e.length)&&!!Yt[_e(e)]};const Xt=function(e){return function(t){return e(t)}};var eo="object"==typeof exports&&exports&&!exports.nodeType&&exports,to=eo&&"object"==typeof module&&module&&!module.nodeType&&module,oo=to&&to.exports===eo&&le.process;const no=function(){try{var e=to&&to.require&&to.require("util").types;return e||oo&&oo.binding&&oo.binding("util")}catch(e){}}();var io=no&&no.isTypedArray;const ro=io?Xt(io):Qt;var so=Object.prototype.hasOwnProperty;const ao=function(e,t){var o=ye(e),n=!o&&jt(e),i=!o&&!n&&Gt(e),r=!o&&!n&&!i&&ro(e),s=o||n||i||r,a=s?Ot(e.length,String):[],l=a.length;for(var c in e)!t&&!so.call(e,c)||s&&("length"==c||i&&("offset"==c||"parent"==c)||r&&("buffer"==c||"byteLength"==c||"byteOffset"==c)||Zt(c,l))||a.push(c);return a};var lo=Object.prototype;const co=function(e){var t=e&&e.constructor;return e===("function"==typeof t&&t.prototype||lo)};const uo=xe(Object.keys,Object);var ho=Object.prototype.hasOwnProperty;const po=function(e){if(!co(e))return uo(e);var t=[];for(var o in Object(e))ho.call(e,o)&&"constructor"!=o&&t.push(o);return t};const mo=function(e){return null!=e&&Jt(e.length)&&!Ge(e)};const go=function(e){return mo(e)?ao(e):po(e)};const fo=function(e,t){return e&&zt(t,go(t),e)};const bo=function(e){var t=[];if(null!=e)for(var o in Object(e))t.push(o);return t};var ko=Object.prototype.hasOwnProperty;const wo=function(e){if(!W(e))return bo(e);var t=co(e),o=[];for(var n in e)("constructor"!=n||!t&&ko.call(e,n))&&o.push(n);return o};const _o=function(e){return mo(e)?ao(e,!0):wo(e)};const yo=function(e,t){return e&&zt(t,_o(t),e)};var Ao="object"==typeof exports&&exports&&!exports.nodeType&&exports,Co=Ao&&"object"==typeof module&&module&&!module.nodeType&&module,vo=Co&&Co.exports===Ao?de.Buffer:void 0,xo=vo?vo.allocUnsafe:void 0;const Eo=function(e,t){if(t)return e.slice();var o=e.length,n=xo?xo(o):new e.constructor(o);return e.copy(n),n};const Do=function(e,t){var o=-1,n=e.length;for(t||(t=Array(n));++o{this._setToTarget(e,n,t[n],o)}))}}function Pn(e){return Sn(e,Fn)}function Fn(e){return Tn(e)||"function"==typeof e?e:void 0}function Rn(e){if(e){if(e.defaultView)return e instanceof e.defaultView.Document;if(e.ownerDocument&&e.ownerDocument.defaultView)return e instanceof e.ownerDocument.defaultView.Node}return!1}function Mn(e){const t=Object.prototype.toString.apply(e);return"[object Window]"==t||"[object global]"==t}const zn=On(V());function On(e){if(!e)return zn;return class extends e{listenTo(e,t,o,n={}){if(Rn(e)||Mn(e)){const i={capture:!!n.useCapture,passive:!!n.usePassive},r=this._getProxyEmitter(e,i)||new Nn(e,i);this.listenTo(r,t,o,n)}else super.listenTo(e,t,o,n)}stopListening(e,t,o){if(Rn(e)||Mn(e)){const n=this._getAllProxyEmitters(e);for(const e of n)this.stopListening(e,t,o)}else super.stopListening(e,t,o)}_getProxyEmitter(e,t){return function(e,t){const o=e[M];return o&&o[t]?o[t].emitter:null}(this,Vn(e,t))}_getAllProxyEmitters(e){return[{capture:!1,passive:!1},{capture:!1,passive:!0},{capture:!0,passive:!1},{capture:!0,passive:!0}].map((t=>this._getProxyEmitter(e,t))).filter((e=>!!e))}}}["_getProxyEmitter","_getAllProxyEmitters","on","once","off","listenTo","stopListening","fire","delegate","stopDelegating","_addEventListener","_removeEventListener"].forEach((e=>{On[e]=zn.prototype[e]}));class Nn extends(V()){constructor(e,t){super(),L(this,Vn(e,t)),this._domNode=e,this._options=t}attach(e){if(this._domListeners&&this._domListeners[e])return;const t=this._createDomListener(e);this._domNode.addEventListener(e,t,this._options),this._domListeners||(this._domListeners={}),this._domListeners[e]=t}detach(e){let t;!this._domListeners[e]||(t=this._events[e])&&t.callbacks.length||this._domListeners[e].removeListener()}_addEventListener(e,t,o){this.attach(e),V().prototype._addEventListener.call(this,e,t,o)}_removeEventListener(e,t){V().prototype._removeEventListener.call(this,e,t),this.detach(e)}_createDomListener(e){const t=t=>{this.fire(e,t)};return t.removeListener=()=>{this._domNode.removeEventListener(e,t,this._options),delete this._domListeners[e]},t}}function Vn(e,t){let o=function(e){return e["data-ck-expando"]||(e["data-ck-expando"]=E())}(e);for(const e of Object.keys(t).sort())t[e]&&(o+="-"+e);return o}function Ln(e){const t=[];let o=e;for(;o&&o.nodeType!=Node.DOCUMENT_NODE;)t.unshift(o),o=o.parentNode;return t}function Hn(e){const t=e.ownerDocument.defaultView.getComputedStyle(e);return{top:parseInt(t.borderTopWidth,10),right:parseInt(t.borderRightWidth,10),bottom:parseInt(t.borderBottomWidth,10),left:parseInt(t.borderLeftWidth,10)}}function jn(e){if(!e.target)return null;const t=e.target.ownerDocument,o=e.clientX,n=e.clientY;let i=null;return t.caretRangeFromPoint&&t.caretRangeFromPoint(o,n)?i=t.caretRangeFromPoint(o,n):e.rangeParent&&(i=t.createRange(),i.setStart(e.rangeParent,e.rangeOffset),i.collapse(!0)),i}function qn(e){return"[object Text]"==Object.prototype.toString.call(e)}function $n(e){return"[object Range]"==Object.prototype.toString.apply(e)}function Un(e){return e&&e.parentNode?e.offsetParent===s.document.body?null:e.offsetParent:null}const Wn=["top","right","bottom","left","width","height"];class Gn{constructor(e){const t=$n(e);if(Object.defineProperty(this,"_source",{value:e._source||e,writable:!0,enumerable:!1}),Jn(e)||t)if(t){const t=Gn.getDomRangeRects(e);Kn(this,Gn.getBoundingRect(t))}else Kn(this,e.getBoundingClientRect());else if(Mn(e)){const{innerWidth:t,innerHeight:o}=e;Kn(this,{top:0,right:t,bottom:o,left:0,width:t,height:o})}else Kn(this,e)}clone(){return new Gn(this)}moveTo(e,t){return this.top=t,this.right=e+this.width,this.bottom=t+this.height,this.left=e,this}moveBy(e,t){return this.top+=t,this.right+=e,this.left+=e,this.bottom+=t,this}getIntersection(e){const t={top:Math.max(this.top,e.top),right:Math.min(this.right,e.right),bottom:Math.min(this.bottom,e.bottom),left:Math.max(this.left,e.left),width:0,height:0};if(t.width=t.right-t.left,t.height=t.bottom-t.top,t.width<0||t.height<0)return null;{const e=new Gn(t);return e._source=this._source,e}}getIntersectionArea(e){const t=this.getIntersection(e);return t?t.getArea():0}getArea(){return this.width*this.height}getVisible(){const e=this._source;let t=this.clone();if(Zn(e))return t;let o,n=e,i=e.parentNode||e.commonAncestorContainer;for(;i&&!Zn(i);){const e="visible"===((r=i)instanceof HTMLElement?r.ownerDocument.defaultView.getComputedStyle(r).overflow:"visible");n instanceof HTMLElement&&"absolute"===Yn(n)&&(o=n);const s=Yn(i);if(e||o&&("relative"===s&&e||"relative"!==s)){n=i,i=i.parentNode;continue}const a=new Gn(i),l=t.getIntersection(a);if(!l)return null;l.getArea(){for(const t of e){const e=Qn._getElementCallbacks(t.target);if(e)for(const o of e)o(t)}}))}}Qn._observerInstance=null,Qn._elementCallbacks=null;const Xn=Qn;function ei(e,t){e instanceof HTMLTextAreaElement&&(e.value=t),e.innerHTML=t}function ti(e){return t=>t+e}function oi(e){let t=0;for(;e.previousSibling;)e=e.previousSibling,t++;return t}function ni(e,t,o){e.insertBefore(o,e.childNodes[t]||null)}function ii(e){return e&&e.nodeType===Node.COMMENT_NODE}function ri(e){return!!e&&(qn(e)?ri(e.parentElement):!!e.getClientRects&&!!e.getClientRects().length)}function si({element:e,target:t,positions:o,limiter:n,fitInViewport:i,viewportOffsetConfig:r}){Ge(t)&&(t=t()),Ge(n)&&(n=n());const a=Un(e),l=function(e){e=Object.assign({top:0,bottom:0,left:0,right:0},e);const t=new Gn(s.window);return t.top+=e.top,t.height-=e.top,t.bottom-=e.bottom,t.height-=e.bottom,t}(r),c=new Gn(e),d=ai(t,l);let u;if(!d||!l.getIntersection(d))return null;const h={targetRect:d,elementRect:c,positionedElementAncestor:a,viewportRect:l};if(n||i){if(n){const e=ai(n,l);e&&(h.limiterRect=e)}u=function(e,t){const{elementRect:o}=t,n=o.getArea(),i=e.map((e=>new li(e,t))).filter((e=>!!e.name));let r=0,s=null;for(const e of i){const{limiterIntersectionArea:t,viewportIntersectionArea:o}=e;if(t===n)return e;const i=o**2+t**2;i>r&&(r=i,s=e)}return s}(o,h)}else u=new li(o[0],h);return u}function ai(e,t){const o=new Gn(e).getVisible();return o?o.getIntersection(t):null}class li{constructor(e,t){const o=e(t.targetRect,t.elementRect,t.viewportRect,t.limiterRect);if(!o)return;const{left:n,top:i,name:r,config:s}=o;this.name=r,this.config=s,this._positioningFunctionCoordinates={left:n,top:i},this._options=t}get left(){return this._absoluteRect.left}get top(){return this._absoluteRect.top}get limiterIntersectionArea(){const e=this._options.limiterRect;return e?e.getIntersectionArea(this._rect):0}get viewportIntersectionArea(){return this._options.viewportRect.getIntersectionArea(this._rect)}get _rect(){return this._cachedRect||(this._cachedRect=this._options.elementRect.clone().moveTo(this._positioningFunctionCoordinates.left,this._positioningFunctionCoordinates.top)),this._cachedRect}get _absoluteRect(){return this._cachedAbsoluteRect||(this._cachedAbsoluteRect=this._rect.toAbsoluteRect()),this._cachedAbsoluteRect}}function ci(e){const t=e.parentNode;t&&t.removeChild(e)}function di({window:e,rect:t,alignToTop:o,forceScroll:n,viewportOffset:i}){const r=t.clone().moveBy(0,i.bottom),s=t.clone().moveBy(0,-i.top),a=new Gn(e).excludeScrollbarsAndBorders(),l=o&&n,c=[s,r].every((e=>a.contains(e)));let{scrollX:d,scrollY:u}=e;const h=d,p=u;l?u-=a.top-t.top+i.top:c||(pi(s,a)?u-=a.top-t.top+i.top:hi(r,a)&&(u+=o?t.top-a.top-i.top:t.bottom-a.bottom+i.bottom)),c||(mi(t,a)?d-=a.left-t.left+i.left:gi(t,a)&&(d+=t.right-a.right+i.right)),d==h&&u===p||e.scrollTo(d,u)}function ui({parent:e,getRect:t,alignToTop:o,forceScroll:n,ancestorOffset:i=0,limiterElement:r}){const s=fi(e),a=o&&n;let l,c,d;const u=r||s.document.body;for(;e!=u;)c=t(),l=new Gn(e).excludeScrollbarsAndBorders(),d=l.contains(c),a?e.scrollTop-=l.top-c.top+i:d||(pi(c,l)?e.scrollTop-=l.top-c.top+i:hi(c,l)&&(e.scrollTop+=o?c.top-l.top-i:c.bottom-l.bottom+i)),d||(mi(c,l)?e.scrollLeft-=l.left-c.left+i:gi(c,l)&&(e.scrollLeft+=c.right-l.right+i)),e=e.parentNode}function hi(e,t){return e.bottom>t.bottom}function pi(e,t){return e.topt.right}function fi(e){return $n(e)?e.startContainer.ownerDocument.defaultView:e.ownerDocument.defaultView}function bi(e){if($n(e)){let t=e.commonAncestorContainer;return qn(t)&&(t=t.parentNode),t}return e.parentNode}function ki(e,t){const o=fi(e),n=new Gn(e);if(o===t)return n;{let e=o;for(;e!=t;){const t=e.frameElement,o=new Gn(t).excludeScrollbarsAndBorders();n.moveBy(o.left,o.top),e=e.parent}}return n}const wi={ctrl:"⌃",cmd:"⌘",alt:"⌥",shift:"⇧"},_i={ctrl:"Ctrl+",alt:"Alt+",shift:"Shift+"},yi={37:"←",38:"↑",39:"→",40:"↓",9:"⇥",33:"Page Up",34:"Page Down"},Ai=Bi(),Ci=Object.fromEntries(Object.entries(Ai).map((([e,t])=>{let o;return o=t in yi?yi[t]:e.charAt(0).toUpperCase()+e.slice(1),[t,o]})));function vi(e){let t;if("string"==typeof e){if(t=Ai[e.toLowerCase()],!t)throw new S("keyboard-unknown-key",null,{key:e})}else t=e.keyCode+(e.altKey?Ai.alt:0)+(e.ctrlKey?Ai.ctrl:0)+(e.shiftKey?Ai.shift:0)+(e.metaKey?Ai.cmd:0);return t}function xi(e){return"string"==typeof e&&(e=function(e){return e.split("+").map((e=>e.trim()))}(e)),e.map((e=>"string"==typeof e?function(e){if(e.endsWith("!"))return vi(e.slice(0,-1));const t=vi(e);return(c.isMac||c.isiOS)&&t==Ai.ctrl?Ai.cmd:t}(e):e)).reduce(((e,t)=>t+e),0)}function Ei(e,t){let o=xi(e);const n=t?"Mac"===t:c.isMac||c.isiOS;return Object.entries(n?wi:_i).reduce(((e,[t,n])=>(o&Ai[t]&&(o&=~Ai[t],e+=n),e)),"")+(o?Ci[o]:"")}function Di(e,t){const o="ltr"===t;switch(e){case Ai.arrowleft:return o?"left":"right";case Ai.arrowright:return o?"right":"left";case Ai.arrowup:return"up";case Ai.arrowdown:return"down"}}function Bi(){const e={pageup:33,pagedown:34,end:35,home:36,arrowleft:37,arrowup:38,arrowright:39,arrowdown:40,backspace:8,delete:46,enter:13,space:32,esc:27,tab:9,ctrl:1114112,shift:2228224,alt:4456448,cmd:8912896};for(let t=65;t<=90;t++){e[String.fromCharCode(t).toLowerCase()]=t}for(let t=48;t<=57;t++)e[t-48]=t;for(let t=112;t<=123;t++)e["f"+(t-111)]=t;return Object.assign(e,{"'":222,",":108,"-":109,".":110,"/":111,";":186,"=":187,"[":219,"\\":220,"]":221,"`":223}),e}function Si(e){return Array.isArray(e)?e:[e]}const Ti=function(e,t,o){(void 0!==o&&!Re(e[t],o)||void 0===o&&!(t in e))&&Ft(e,t,o)};const Ii=function(e){return function(t,o,n){for(var i=-1,r=Object(t),s=n(t),a=s.length;a--;){var l=s[e?a:++i];if(!1===o(r[l],l,r))break}return t}}();const Pi=function(e){return Ae(e)&&mo(e)};const Fi=function(e,t){if(("constructor"!==t||"function"!=typeof e[t])&&"__proto__"!=t)return e[t]};const Ri=function(e){return zt(e,_o(e))};const Mi=function(e,t,o,n,i,r,s){var a=Fi(e,o),l=Fi(t,o),c=s.get(l);if(c)Ti(e,o,c);else{var d=r?r(a,l,o+"",e,t,s):void 0,u=void 0===d;if(u){var h=ye(l),p=!h&&Gt(l),m=!h&&!p&&ro(l);d=l,h||p||m?ye(a)?d=a:Pi(a)?d=Do(a):p?(u=!1,d=Eo(l,!0)):m?(u=!1,d=pn(l,!0)):d=[]:Pe(l)||jt(l)?(d=a,jt(a)?d=Ri(a):W(a)&&!Ge(a)||(d=bn(l))):u=!1}u&&(s.set(l,d),i(d,l,n,r,s),s.delete(l)),Ti(e,o,d)}};const zi=function e(t,o,n,i,r){t!==o&&Ii(o,(function(s,a){if(r||(r=new Tt),W(s))Mi(t,o,a,n,e,i,r);else{var l=i?i(Fi(t,a),s,a+"",t,o,r):void 0;void 0===l&&(l=s),Ti(t,a,l)}}),_o)};const Oi=function(e){return e};const Ni=function(e,t,o){switch(o.length){case 0:return e.call(t);case 1:return e.call(t,o[0]);case 2:return e.call(t,o[0],o[1]);case 3:return e.call(t,o[0],o[1],o[2])}return e.apply(t,o)};var Vi=Math.max;const Li=function(e,t,o){return t=Vi(void 0===t?e.length-1:t,0),function(){for(var n=arguments,i=-1,r=Vi(n.length-t,0),s=Array(r);++i0){if(++t>=800)return arguments[0]}else t=0;return e.apply(void 0,arguments)}};const Ui=$i(ji);const Wi=function(e,t){return Ui(Li(e,t,Oi),e+"")};const Gi=function(e,t,o){if(!W(o))return!1;var n=typeof t;return!!("number"==n?mo(o)&&Zt(t,o.length):"string"==n&&t in o)&&Re(o[t],e)};const Ki=function(e){return Wi((function(t,o){var n=-1,i=o.length,r=i>1?o[i-1]:void 0,s=i>2?o[2]:void 0;for(r=e.length>3&&"function"==typeof r?(i--,r):void 0,s&&Gi(o[0],o[1],s)&&(r=i<3?void 0:r,i=1),t=Object(t);++n1===e?0:1),d=l[a];if("string"==typeof d)return d;return d[Number(c(o))]}s.window.CKEDITOR_TRANSLATIONS||(s.window.CKEDITOR_TRANSLATIONS={});const Qi=["ar","ara","dv","div","fa","per","fas","he","heb","ku","kur","ug","uig"];function Xi(e){return Qi.includes(e)?"rtl":"ltr"}class er{constructor({uiLanguage:e="en",contentLanguage:t,translations:o}={}){this.uiLanguage=e,this.contentLanguage=t||this.uiLanguage,this.uiLanguageDirection=Xi(this.uiLanguage),this.contentLanguageDirection=Xi(this.contentLanguage),this.translations=function(e){return Array.isArray(e)?e.reduce(((e,t)=>Ji(e,t))):e}(o),this.t=(e,t)=>this._t(e,t)}get language(){return console.warn("locale-deprecated-language-property: The Locale#language property has been deprecated and will be removed in the near future. Please use #uiLanguage and #contentLanguage properties instead."),this.uiLanguage}_t(e,t=[]){t=Si(t),"string"==typeof e&&(e={string:e});const o=!!e.plural?t[0]:1;return function(e,t){return e.replace(/%(\d+)/g,((e,o)=>othis._items.length||t<0)throw new S("collection-add-item-invalid-index",this);let o=0;for(const n of e){const e=this._getItemIdBeforeAdding(n),i=t+o;this._items.splice(i,0,n),this._itemMap.set(e,n),this.fire("add",n,i),o++}return this.fire("change",{added:e,removed:[],index:t}),this}get(e){let t;if("string"==typeof e)t=this._itemMap.get(e);else{if("number"!=typeof e)throw new S("collection-get-invalid-arg",this);t=this._items[e]}return t||null}has(e){if("string"==typeof e)return this._itemMap.has(e);{const t=e[this._idProperty];return t&&this._itemMap.has(t)}}getIndex(e){let t;return t="string"==typeof e?this._itemMap.get(e):e,t?this._items.indexOf(t):-1}remove(e){const[t,o]=this._remove(e);return this.fire("change",{added:[],removed:[t],index:o}),t}map(e,t){return this._items.map(e,t)}forEach(e,t){this._items.forEach(e,t)}find(e,t){return this._items.find(e,t)}filter(e,t){return this._items.filter(e,t)}clear(){this._bindToCollection&&(this.stopListening(this._bindToCollection),this._bindToCollection=null);const e=Array.from(this._items);for(;this.length;)this._remove(0);this.fire("change",{added:[],removed:e,index:0})}bindTo(e){if(this._bindToCollection)throw new S("collection-bind-to-rebind",this);return this._bindToCollection=e,{as:e=>{this._setUpBindToBinding((t=>new e(t)))},using:e=>{"function"==typeof e?this._setUpBindToBinding(e):this._setUpBindToBinding((t=>t[e]))}}}_setUpBindToBinding(e){const t=this._bindToCollection,o=(o,n,i)=>{const r=t._bindToCollection==this,s=t._bindToInternalToExternalMap.get(n);if(r&&s)this._bindToExternalToInternalMap.set(n,s),this._bindToInternalToExternalMap.set(s,n);else{const o=e(n);if(!o)return void this._skippedIndexesFromExternal.push(i);let r=i;for(const e of this._skippedIndexesFromExternal)i>e&&r--;for(const e of t._skippedIndexesFromExternal)r>=e&&r++;this._bindToExternalToInternalMap.set(n,o),this._bindToInternalToExternalMap.set(o,n),this.add(o,r);for(let e=0;e{const n=this._bindToExternalToInternalMap.get(t);n&&this.remove(n),this._skippedIndexesFromExternal=this._skippedIndexesFromExternal.reduce(((e,t)=>(ot&&e.push(t),e)),[])}))}_getItemIdBeforeAdding(e){const t=this._idProperty;let o;if(t in e){if(o=e[t],"string"!=typeof o)throw new S("collection-add-invalid-id",this);if(this.get(o))throw new S("collection-add-item-already-exists",this)}else e[t]=o=E();return o}_remove(e){let t,o,n,i=!1;const r=this._idProperty;if("string"==typeof e?(o=e,n=this._itemMap.get(o),i=!n,n&&(t=this._items.indexOf(n))):"number"==typeof e?(t=e,n=this._items[t],i=!n,n&&(o=n[r])):(n=e,o=n[r],t=this._items.indexOf(n),i=-1==t||!this._itemMap.get(o)),i)throw new S("collection-remove-404",this);this._items.splice(t,1),this._itemMap.delete(o);const s=this._bindToInternalToExternalMap.get(n);return this._bindToInternalToExternalMap.delete(n),this._bindToExternalToInternalMap.delete(s),this.fire("remove",n,t),[n,t]}[Symbol.iterator](){return this._items[Symbol.iterator]()}}function or(e){const t=e.next();return t.done?null:t.value}class nr extends(On(X())){constructor(){super(),this._elements=new Set,this._externalViews=new Set,this._blurTimeout=null,this.set("isFocused",!1),this.set("focusedElement",null)}get elements(){return Array.from(this._elements.values())}get externalViews(){return Array.from(this._externalViews.values())}add(e){if(rr(e))this._addElement(e);else if(ir(e))this._addView(e);else{if(!e.element)throw new S("focustracker-add-view-missing-element",{focusTracker:this,view:e});this._addElement(e.element)}}remove(e){rr(e)?this._removeElement(e):ir(e)?this._removeView(e):this._removeElement(e.element)}_addElement(e){if(this._elements.has(e))throw new S("focustracker-add-element-already-exist",this);this.listenTo(e,"focus",(()=>{const t=this.externalViews.find((t=>function(e,t){if(sr(e,t))return!0;return!!t.focusTracker.externalViews.find((t=>sr(e,t)))}(e,t)));t?this._focus(t.element):this._focus(e)}),{useCapture:!0}),this.listenTo(e,"blur",(()=>{this._blur()}),{useCapture:!0}),this._elements.add(e)}_removeElement(e){this._elements.has(e)&&(this.stopListening(e),this._elements.delete(e)),e===this.focusedElement&&this._blur()}_addView(e){e.element&&this._addElement(e.element),this.listenTo(e.focusTracker,"change:focusedElement",(()=>{e.focusTracker.focusedElement?e.element&&this._focus(e.element):this._blur()})),this._externalViews.add(e)}_removeView(e){e.element&&this._removeElement(e.element),this.stopListening(e.focusTracker),this._externalViews.delete(e)}destroy(){this.stopListening(),this._elements.clear(),this._externalViews.clear(),this.isFocused=!1,this.focusedElement=null}_focus(e){this._clearBlurTimeout(),this.focusedElement=e,this.isFocused=!0}_blur(){if(this.elements.find((e=>e.contains(document.activeElement))))return;this.externalViews.find((e=>e.focusTracker.isFocused&&!e.focusTracker._blurTimeout))||(this._clearBlurTimeout(),this._blurTimeout=setTimeout((()=>{this.focusedElement=null,this.isFocused=!1}),0))}_clearBlurTimeout(){clearTimeout(this._blurTimeout),this._blurTimeout=null}}function ir(e){return"focusTracker"in e&&e.focusTracker instanceof nr}function rr(e){return Tn(e)}function sr(e,t){return!!t.element&&t.element.contains(document.activeElement)&&e.contains(t.element)}class ar{constructor(){this._listener=new(On())}listenTo(e){this._listener.listenTo(e,"keydown",((e,t)=>{this._listener.fire("_keydown:"+vi(t),t)}))}set(e,t,o={}){const n=xi(e),i=o.priority;this._listener.listenTo(this._listener,"_keydown:"+n,((e,n)=>{o.filter&&!o.filter(n)||(t(n,(()=>{n.preventDefault(),n.stopPropagation(),e.stop()})),e.return=!0)}),{priority:i})}press(e){return!!this._listener.fire("_keydown:"+vi(e),e)}stopListening(e){this._listener.stopListening(e)}destroy(){this.stopListening()}}function lr(e){return ae(e)?new Map(e):function(e){const t=new Map;for(const o in e)t.set(o,e[o]);return t}(e)}function cr(e,t,o){const n=e.length,i=t.length;for(let t=n-1;t>=o;t--)e[t+i]=e[t];for(let n=0;ne(...i)),t)}return n.cancel=()=>{clearTimeout(o)},n}function ur(e){try{if(!e.startsWith("ey"))return null;const t=atob(e.replace(/-/g,"+").replace(/_/g,"/"));return JSON.parse(t)}catch(e){return null}}function hr(e,t){return!!(o=e.charAt(t-1))&&1==o.length&&/[\ud800-\udbff]/.test(o)&&function(e){return!!e&&1==e.length&&/[\udc00-\udfff]/.test(e)}(e.charAt(t));var o}function pr(e,t){return!!(o=e.charAt(t))&&1==o.length&&/[\u0300-\u036f\u1ab0-\u1aff\u1dc0-\u1dff\u20d0-\u20ff\ufe20-\ufe2f]/.test(o);var o}const mr=fr();function gr(e,t){const o=String(e).matchAll(mr);return Array.from(o).some((e=>e.indexe.source)).join("|")+")";return new RegExp(`${e}|${t}(?:‍${t})*`,"ug")}class br extends(X()){constructor(e){super(),this._disableStack=new Set,this.editor=e,this.set("isEnabled",!0)}forceDisabled(e){this._disableStack.add(e),1==this._disableStack.size&&(this.on("set:isEnabled",kr,{priority:"highest"}),this.isEnabled=!1)}clearForceDisabled(e){this._disableStack.delete(e),0==this._disableStack.size&&(this.off("set:isEnabled",kr),this.isEnabled=!0)}destroy(){this.stopListening()}static get isContextPlugin(){return!1}static get isOfficialPlugin(){return!1}static get isPremiumPlugin(){return!1}}function kr(e){e.return=!1,e.stop()}class wr extends(X()){constructor(e){super(),this.editor=e,this.set("value",void 0),this.set("isEnabled",!1),this._affectsData=!0,this._isEnabledBasedOnSelection=!0,this._disableStack=new Set,this.decorate("execute"),this.listenTo(this.editor.model.document,"change",(()=>{this.refresh()})),this.listenTo(e,"change:isReadOnly",(()=>{this.refresh()})),this.on("set:isEnabled",(t=>{if(!this.affectsData)return;const o=e.model.document.selection,n=!("$graveyard"==o.getFirstPosition().root.rootName)&&e.model.canEditAt(o);(e.isReadOnly||this._isEnabledBasedOnSelection&&!n)&&(t.return=!1,t.stop())}),{priority:"highest"}),this.on("execute",(e=>{this.isEnabled||e.stop()}),{priority:"high"})}get affectsData(){return this._affectsData}set affectsData(e){this._affectsData=e}refresh(){this.isEnabled=!0}forceDisabled(e){this._disableStack.add(e),1==this._disableStack.size&&(this.on("set:isEnabled",_r,{priority:"highest"}),this.isEnabled=!1)}clearForceDisabled(e){this._disableStack.delete(e),0==this._disableStack.size&&(this.off("set:isEnabled",_r),this.refresh())}execute(...e){}destroy(){this.stopListening()}}function _r(e){e.return=!1,e.stop()}class yr extends(V()){constructor(e,t=[],o=[]){super(),this._plugins=new Map,this._context=e,this._availablePlugins=new Map;for(const e of t)e.pluginName&&this._availablePlugins.set(e.pluginName,e);this._contextPlugins=new Map;for(const[e,t]of o)this._contextPlugins.set(e,t),this._contextPlugins.set(t,e),e.pluginName&&this._availablePlugins.set(e.pluginName,e)}*[Symbol.iterator](){for(const e of this._plugins)"function"==typeof e[0]&&(yield e)}get(e){const t=this._plugins.get(e);if(!t){let t=e;throw"function"==typeof e&&(t=e.pluginName||e.name),new S("plugincollection-plugin-not-loaded",this._context,{plugin:t})}return t}has(e){return this._plugins.has(e)}init(e,t=[],o=[]){const n=this,i=this._context;!function e(t,o=new Set){t.forEach((t=>{a(t)&&(o.has(t)||(o.add(t),t.pluginName&&!n._availablePlugins.has(t.pluginName)&&n._availablePlugins.set(t.pluginName,t),t.requires&&e(t.requires,o)))}))}(e),u(e);const r=[...function e(t,o=new Set){return t.map((e=>a(e)?e:n._availablePlugins.get(e))).reduce(((t,n)=>o.has(n)?t:(o.add(n),n.requires&&(u(n.requires,n),e(n.requires,o).forEach((e=>t.add(e)))),t.add(n))),new Set)}(e.filter((e=>!c(e,t))))];!function(e,t){for(const o of t){if("function"!=typeof o)throw new S("plugincollection-replace-plugin-invalid-type",null,{pluginItem:o});const t=o.pluginName;if(!t)throw new S("plugincollection-replace-plugin-missing-name",null,{pluginItem:o});if(o.requires&&o.requires.length)throw new S("plugincollection-plugin-for-replacing-cannot-have-dependencies",null,{pluginName:t});const i=n._availablePlugins.get(t);if(!i)throw new S("plugincollection-plugin-for-replacing-not-exist",null,{pluginName:t});const r=e.indexOf(i);if(-1===r){if(n._contextPlugins.has(i))return;throw new S("plugincollection-plugin-for-replacing-not-loaded",null,{pluginName:t})}if(i.requires&&i.requires.length)throw new S("plugincollection-replaced-plugin-cannot-have-dependencies",null,{pluginName:t});e.splice(r,1,o),n._availablePlugins.set(t,o)}}(r,o);const s=function(e){return e.map((e=>{let t=n._contextPlugins.get(e);return t=t||new e(i),n._add(e,t),t}))}(r);return h(s,"init").then((()=>h(s,"afterInit"))).then((()=>s));function a(e){return"function"==typeof e}function l(e){return a(e)&&!!e.isContextPlugin}function c(e,t){return t.some((t=>t===e||(d(e)===t||d(t)===e)))}function d(e){return a(e)?e.pluginName||e.name:e}function u(e,o=null){e.map((e=>a(e)?e:n._availablePlugins.get(e)||e)).forEach((e=>{!function(e,t){if(a(e))return;if(t)throw new S("plugincollection-soft-required",i,{missingPlugin:e,requiredBy:d(t)});throw new S("plugincollection-plugin-not-found",i,{plugin:e})}(e,o),function(e,t){if(!l(t))return;if(l(e))return;throw new S("plugincollection-context-required",i,{plugin:d(e),requiredBy:d(t)})}(e,o),function(e,o){if(!o)return;if(!c(e,t))return;throw new S("plugincollection-required",i,{plugin:d(e),requiredBy:d(o)})}(e,o)}))}function h(e,t){return e.reduce(((e,o)=>o[t]?n._contextPlugins.has(o)?e:e.then(o[t].bind(o)):e),Promise.resolve())}}destroy(){const e=[];for(const[,t]of this)"function"!=typeof t.destroy||this._contextPlugins.has(t)||e.push(t.destroy());return Promise.all(e)}_add(e,t){this._plugins.set(e,t);const o=e.pluginName;if(o){if(this._plugins.has(o))throw new S("plugincollection-plugin-name-conflict",null,{pluginName:o,plugin1:this._plugins.get(o).constructor,plugin2:e});this._plugins.set(o,t)}}}class Ar{constructor(e){this._contextOwner=null;const{translations:t,...o}=e||{};this.config=new In(o,this.constructor.defaultConfig);const n=this.constructor.builtinPlugins;this.config.define("plugins",n),this.plugins=new yr(this,n);const i=this.config.get("language")||{};this.locale=new er({uiLanguage:"string"==typeof i?i:i.ui,contentLanguage:this.config.get("language.content"),translations:t}),this.t=this.locale.t,this.editors=new tr}initPlugins(){const e=this.config.get("plugins")||[],t=this.config.get("substitutePlugins")||[];for(const o of e.concat(t)){if("function"!=typeof o)throw new S("context-initplugins-constructor-only",null,{Plugin:o});if(!0!==o.isContextPlugin)throw new S("context-initplugins-invalid-plugin",null,{Plugin:o})}return this.plugins.init(e,[],t)}destroy(){return Promise.all(Array.from(this.editors,(e=>e.destroy()))).then((()=>this.plugins.destroy()))}_addEditor(e,t){if(this._contextOwner)throw new S("context-addeditor-private-context");this.editors.add(e),t&&(this._contextOwner=e)}_removeEditor(e){return this.editors.has(e)&&this.editors.remove(e),this._contextOwner===e?this.destroy():Promise.resolve()}_getEditorConfig(){const e={};for(const t of this.config.names())["plugins","removePlugins","extraPlugins"].includes(t)||(e[t]=this.config.get(t));return e}static create(e){return new Promise((t=>{const o=new this(e);t(o.initPlugins().then((()=>o)))}))}}class Cr extends(X()){constructor(e){super(),this.context=e}destroy(){this.stopListening()}static get isContextPlugin(){return!0}static get isOfficialPlugin(){return!1}static get isPremiumPlugin(){return!1}}const vr=function(e){return"symbol"==typeof e||Ae(e)&&"[object Symbol]"==_e(e)};var xr=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,Er=/^\w*$/;const Dr=function(e,t){if(ye(e))return!1;var o=typeof e;return!("number"!=o&&"symbol"!=o&&"boolean"!=o&&null!=e&&!vr(e))||(Er.test(e)||!xr.test(e)||null!=t&&e in Object(t))};function Br(e,t){if("function"!=typeof e||null!=t&&"function"!=typeof t)throw new TypeError("Expected a function");var o=function(){var n=arguments,i=t?t.apply(this,n):n[0],r=o.cache;if(r.has(i))return r.get(i);var s=e.apply(this,n);return o.cache=r.set(i,s)||r,s};return o.cache=new(Br.Cache||Dt),o}Br.Cache=Dt;const Sr=Br;const Tr=function(e){var t=Sr(e,(function(e){return 500===o.size&&o.clear(),e})),o=t.cache;return t};var Ir=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Pr=/\\(\\)?/g,Fr=Tr((function(e){var t=[];return 46===e.charCodeAt(0)&&t.push(""),e.replace(Ir,(function(e,o,n,i){t.push(n?i.replace(Pr,"$1"):o||e)})),t}));const Rr=Fr;const Mr=function(e,t){for(var o=-1,n=null==e?0:e.length,i=Array(n);++ods([[t,s]],e)))}is.has(r)||(is.set(r,new Map),r.registerPostFixer((e=>ds(is.get(r),e))),r.on("change:isComposing",(()=>{e.change((e=>ds(is.get(r),e)))}),{priority:"high"})),t.is("editableElement")&&t.on("change:placeholder",((e,t,o)=>s(o))),t.placeholder?s(t.placeholder):o&&s(o),o&&function(){rs||T("enableplaceholder-deprecated-text-option");rs=!0}()}function as(e,t){return!t.hasClass("ck-placeholder")&&(e.addClass("ck-placeholder",t),!0)}function ls(e,t){return!!t.hasClass("ck-placeholder")&&(e.removeClass("ck-placeholder",t),!0)}function cs(e,t){if(!e.isAttached())return!1;if(function(e){for(const t of e.getChildren())if(!t.is("uiElement"))return!0;return!1}(e))return!1;const o=e.document,n=o.selection.anchor;return(!o.isComposing||!n||n.parent!==e)&&(!!t||(!o.isFocused||!!n&&n.parent!==e))}function ds(e,t){const o=[];let n=!1;for(const[i,r]of e)r.isDirectHost&&(o.push(i),us(t,i,r)&&(n=!0));for(const[i,r]of e){if(r.isDirectHost)continue;const e=hs(i);e&&(o.includes(e)||(r.hostElement=e,us(t,i,r)&&(n=!0)))}return n}function us(e,t,o){const{text:n,isDirectHost:i,hostElement:r}=o;let s=!1;r.getAttribute("data-placeholder")!==n&&(e.setAttribute("data-placeholder",n,r),s=!0);return(i||1==t.childCount)&&cs(r,o.keepOnFocus)?as(e,r)&&(s=!0):ls(e,r)&&(s=!0),s}function hs(e){if(e.childCount){const t=e.getChild(0);if(t.is("element")&&!t.is("uiElement")&&!t.is("attributeElement"))return t}return null}class ps{is(){throw new Error("is() method is abstract")}}const ms=function(e){return Bn(e,4)};class gs extends(V(ps)){constructor(e){super(),this.document=e,this.parent=null}get index(){let e;if(!this.parent)return null;if(-1==(e=this.parent.getChildIndex(this)))throw new S("view-node-not-found-in-parent",this);return e}get nextSibling(){const e=this.index;return null!==e&&this.parent.getChild(e+1)||null}get previousSibling(){const e=this.index;return null!==e&&this.parent.getChild(e-1)||null}get root(){let e=this;for(;e.parent;)e=e.parent;return e}isAttached(){return this.root.is("rootElement")}getPath(){const e=[];let t=this;for(;t.parent;)e.unshift(t.index),t=t.parent;return e}getAncestors(e={}){const t=[];let o=e.includeSelf?this:this.parent;for(;o;)t[e.parentFirst?"push":"unshift"](o),o=o.parent;return t}getCommonAncestor(e,t={}){const o=this.getAncestors(t),n=e.getAncestors(t);let i=0;for(;o[i]==n[i]&&o[i];)i++;return 0===i?null:o[i-1]}isBefore(e){if(this==e)return!1;if(this.root!==e.root)return!1;const t=this.getPath(),o=e.getPath(),n=se(t,o);switch(n){case"prefix":return!0;case"extension":return!1;default:return t[n]e.data.length)throw new S("view-textproxy-wrong-offsetintext",this);if(o<0||t+o>e.data.length)throw new S("view-textproxy-wrong-length",this);this.data=e.data.substring(t,t+o),this.offsetInText=t}get offsetSize(){return this.data.length}get isPartial(){return this.data.length!==this.textNode.data.length}get parent(){return this.textNode.parent}get root(){return this.textNode.root}get document(){return this.textNode.document}getAncestors(e={}){const t=[];let o=e.includeSelf?this.textNode:this.parent;for(;null!==o;)t[e.parentFirst?"push":"unshift"](o),o=o.parent;return t}}bs.prototype.is=function(e){return"$textProxy"===e||"view:$textProxy"===e||"textProxy"===e||"view:textProxy"===e};class ks{constructor(){this._consumables=new Map}add(e,t){let o;e.is("$text")||e.is("documentFragment")?this._consumables.set(e,!0):(this._consumables.has(e)?o=this._consumables.get(e):(o=new ws(e),this._consumables.set(e,o)),o.add(t?_s(t):e._getConsumables()))}test(e,t){const o=this._consumables.get(e);return void 0===o?null:e.is("$text")||e.is("documentFragment")?o:o.test(_s(t))}consume(e,t){if(e.is("$text")||e.is("documentFragment"))return!!this.test(e,t)&&(this._consumables.set(e,!1),!0);const o=this._consumables.get(e);return void 0!==o&&o.consume(_s(t))}revert(e,t){const o=this._consumables.get(e);void 0!==o&&(e.is("$text")||e.is("documentFragment")?this._consumables.set(e,!0):o.revert(_s(t)))}static createFrom(e,t){if(t||(t=new ks),e.is("$text"))t.add(e);else if(e.is("element")||e.is("documentFragment")){t.add(e);for(const o of e.getChildren())ks.createFrom(o,t)}return t}}class ws{constructor(e){this._canConsumeName=null,this._attributes=new Map,this.element=e}add(e){e.name&&(this._canConsumeName=!0);for(const[t,o]of e.attributes)if(o){let e=this._attributes.get(t);e&&"boolean"!=typeof e||(e=new Map,this._attributes.set(t,e)),e.set(o,!0)}else{if("style"==t||"class"==t)throw new S("viewconsumable-invalid-attribute",this);this._attributes.set(t,!0)}}test(e){if(e.name&&!this._canConsumeName)return this._canConsumeName;for(const[t,o]of e.attributes){const e=this._attributes.get(t);if(void 0===e)return null;if(!1===e)return!1;if(!0!==e)if(o){const t=e.get(o);if(void 0===t)return null;if(!t)return!1}else for(const t of e.values())if(!t)return!1}return!0}consume(e){if(!this.test(e))return!1;e.name&&(this._canConsumeName=!1);for(const[t,o]of e.attributes){const e=this._attributes.get(t);if("boolean"==typeof e)for(const[e]of this.element._getConsumables(t,o).attributes)this._attributes.set(e,!1);else if(o)for(const[,n]of this.element._getConsumables(t,o).attributes)e.set(n,!1);else for(const t of e.keys())e.set(t,!1)}return!0}revert(e){e.name&&(this._canConsumeName=!0);for(const[t,o]of e.attributes){const e=this._attributes.get(t);if(!1!==e){if(void 0!==e&&!0!==e)if(o){!1===e.get(o)&&e.set(o,!0)}else for(const t of e.keys())e.set(t,!0)}else this._attributes.set(t,!0)}}}function _s(e){const t=[];return"attributes"in e&&e.attributes&&ys(t,e.attributes),"classes"in e&&e.classes&&ys(t,e.classes,"class"),"styles"in e&&e.styles&&ys(t,e.styles,"style"),{name:e.name||!1,attributes:t}}function ys(e,t,o){if("string"!=typeof t)for(const n of t)Array.isArray(n)?e.push(n):e.push(o?[o,n]:[n]);else e.push(o?[o,t]:[t])}class As{constructor(...e){this._patterns=[],this.add(...e)}add(...e){for(let t of e)("string"==typeof t||t instanceof RegExp)&&(t={name:t}),this._patterns.push(t)}match(...e){for(const t of e)for(const e of this._patterns){const o=this._isElementMatching(t,e);if(o)return{element:t,pattern:e,match:o}}return null}matchAll(...e){const t=[];for(const o of e)for(const e of this._patterns){const n=this._isElementMatching(o,e);n&&t.push({element:o,pattern:e,match:n})}return t.length>0?t:null}getElementName(){if(1!==this._patterns.length)return null;const e=this._patterns[0],t=e.name;return"function"==typeof e||!t||t instanceof RegExp?null:t}_isElementMatching(e,t){if("function"==typeof t){const o=t(e);return o&&"object"==typeof o?_s(o):o}const o={};if(t.name&&(o.name=function(e,t){if(e instanceof RegExp)return!!t.match(e);return e===t}(t.name,e.name),!o.name))return null;const n=[];return t.attributes&&!function(e,t,o){let n;"object"!=typeof e||e instanceof RegExp||Array.isArray(e)?n=["class","style"]:(void 0!==e.style&&T("matcher-pattern-deprecated-attributes-style-key",e),void 0!==e.class&&T("matcher-pattern-deprecated-attributes-class-key",e));return t._collectAttributesMatch(vs(e),o,n)}(t.attributes,e,n)||t.classes&&!function(e,t,o){return t._collectAttributesMatch(vs(e,"class"),o)}(t.classes,e,n)||t.styles&&!function(e,t,o){return t._collectAttributesMatch(vs(e,"style"),o)}(t.styles,e,n)?null:(n.length&&(o.attributes=n),o)}}function Cs(e,t){return!0===e||e===t||e instanceof RegExp&&!!String(t).match(e)}function vs(e,t){if(Array.isArray(e))return e.map((e=>"object"!=typeof e||e instanceof RegExp?t?[t,e,!0]:[e,!0]:(void 0!==e.key&&void 0!==e.value||T("matcher-pattern-missing-key-or-value",e),t?[t,e.key,e.value]:[e.key,e.value])));if("object"!=typeof e||e instanceof RegExp)return[t?[t,e,!0]:[e,!0]];const o=[];for(const n in e)Object.prototype.hasOwnProperty.call(e,n)&&o.push(t?[t,n,e[n]]:[n,e[n]]);return o}const xs=function(e){var t=null==e?0:e.length;return t?e[t-1]:void 0};const Es=function(e,t,o){var n=-1,i=e.length;t<0&&(t=-t>i?0:i+t),(o=o>i?i:o)<0&&(o+=i),i=t>o?0:o-t>>>0,t>>>=0;for(var r=Array(i);++nt===e));return Array.isArray(t)}set(e,t){if(this._cachedStyleNames=null,this._cachedExpandedStyleNames=null,W(e))for(const[t,o]of Object.entries(e))this._styleProcessor.toNormalizedForm(t,o,this._styles);else this._styleProcessor.toNormalizedForm(e,t,this._styles)}remove(e){for(const t of Si(e)){this._cachedStyleNames=null,this._cachedExpandedStyleNames=null;const e=Ps(t);Ss(this._styles,e),delete this._styles[t],this._cleanEmptyObjectsOnPath(e)}}getNormalized(e){return this._styleProcessor.getNormalized(e,this._styles)}toString(){return this.isEmpty?"":this.getStylesEntries().map((e=>e.join(":"))).sort().join(";")+";"}getAsString(e){if(this.isEmpty)return;if(this._styles[e]&&!W(this._styles[e]))return this._styles[e];const t=this._styleProcessor.getReducedForm(e,this._styles).find((([t])=>t===e));return Array.isArray(t)?t[1]:void 0}getStyleNames(e=!1){return this.isEmpty?[]:e?(this._cachedExpandedStyleNames=this._cachedExpandedStyleNames||this._styleProcessor.getStyleNames(this._styles),this._cachedExpandedStyleNames):(this._cachedStyleNames=this._cachedStyleNames||this.getStylesEntries().map((([e])=>e)),this._cachedStyleNames)}keys(){return this.getStyleNames()}clear(){this._styles={},this._cachedStyleNames=null,this._cachedExpandedStyleNames=null}isSimilar(e){if(this.size!==e.size)return!1;for(const t of this.getStyleNames())if(!e.has(t)||e.getAsString(t)!==this.getAsString(t))return!1;return!0}getStylesEntries(){const e=[],t=Object.keys(this._styles);for(const o of t)e.push(...this._styleProcessor.getReducedForm(o,this._styles));return e}_clone(){const e=new this.constructor(this._styleProcessor);return e.set(this.getNormalized()),e}_getTokensMatch(e,t){const o=[];for(const n of this.getStyleNames(!0))if(Cs(e,n)){if(!0===t){o.push(n);continue}Cs(t,this.getAsString(n))&&o.push(n)}return o.length?o:void 0}_getConsumables(e){const t=[];if(e){t.push(e);for(const o of this._styleProcessor.getRelatedStyles(e))t.push(o)}else for(const e of this.getStyleNames()){for(const o of this._styleProcessor.getRelatedStyles(e))t.push(o);t.push(e)}return t}_canMergeFrom(e){for(const t of e.getStyleNames())if(this.has(t)&&this.getAsString(t)!==e.getAsString(t))return!1;return!0}_mergeFrom(e){for(const t of e.getStyleNames())this.has(t)||this.set(t,e.getAsString(t))}_isMatching(e){for(const t of e.getStyleNames())if(!this.has(t)||this.getAsString(t)!==e.getAsString(t))return!1;return!0}_cleanEmptyObjectsOnPath(e){const t=e.split(".");if(!(t.length>1))return;const o=t.splice(0,t.length-1).join("."),n=qr(this._styles,o);if(!n)return;!Object.keys(n).length&&this.remove(o)}}class Is{constructor(){this._normalizers=new Map,this._extractors=new Map,this._reducers=new Map,this._consumables=new Map}toNormalizedForm(e,t,o){if(W(t))Fs(o,Ps(e),t);else if(this._normalizers.has(e)){const n=this._normalizers.get(e),{path:i,value:r}=n(t);Fs(o,i,r)}else Fs(o,e,t)}getNormalized(e,t){if(!e)return Ji({},t);if(void 0!==t[e])return t[e];if(this._extractors.has(e)){const o=this._extractors.get(e);if("string"==typeof o)return qr(t,o);const n=o(e,t);if(n)return n}return qr(t,Ps(e))}getReducedForm(e,t){const o=this.getNormalized(e,t);if(void 0===o)return[];if(this._reducers.has(e)){return this._reducers.get(e)(o)}return[[e,o]]}getStyleNames(e){const t=new Set;for(const o of this._consumables.keys()){const n=this.getNormalized(o,e);n&&("object"!=typeof n||Object.keys(n).length)&&t.add(o)}for(const o of Object.keys(e))t.add(o);return Array.from(t)}getRelatedStyles(e){return this._consumables.get(e)||[]}setNormalizer(e,t){this._normalizers.set(e,t)}setExtractor(e,t){this._extractors.set(e,t)}setReducer(e,t){this._reducers.set(e,t)}setStyleRelation(e,t){this._mapStyleNames(e,t);for(const o of t)this._mapStyleNames(o,[e])}_mapStyleNames(e,t){this._consumables.has(e)||this._consumables.set(e,[]),this._consumables.get(e).push(...t)}}function Ps(e){return e.replace("-",".")}function Fs(e,t,o){let n=o;W(o)&&(n=Ji({},qr(e,t),o)),Ur(e,t,n)}class Rs{constructor(){this._set=new Set}get isEmpty(){return 0==this._set.size}get size(){return this._set.size}has(e){return this._set.has(e)}keys(){return Array.from(this._set.keys())}setTo(e){this.clear();for(const t of e.split(/\s+/))t&&this._set.add(t);return this}set(e){for(const t of Si(e))t&&this._set.add(t)}remove(e){for(const t of Si(e))this._set.delete(t)}clear(){this._set.clear()}toString(){return Array.from(this._set).join(" ")}isSimilar(e){if(this.size!==e.size)return!1;for(const t of this.keys())if(!e.has(t))return!1;return!0}_clone(){const e=new this.constructor;return e._set=new Set(this._set),e}_getTokensMatch(e){const t=[];if(!0===e){for(const e of this._set.keys())t.push(e);return t}if("string"==typeof e){for(const o of e.split(/\s+/)){if(!this._set.has(o))return;t.push(o)}return t}for(const o of this._set.keys())o.match(e)&&t.push(o);return t.length?t:void 0}_getConsumables(e){return e?[e]:this.keys()}_canMergeFrom(){return!0}_mergeFrom(e){for(const t of e._set.keys())this._set.has(t)||this._set.add(t)}_isMatching(e){for(const t of e._set.keys())if(!this._set.has(t))return!1;return!0}}class Ms extends gs{get _classes(){return this._attrs.get("class")}get _styles(){return this._attrs.get("style")}constructor(e,t,o,n){super(e),this._unsafeAttributesToRender=[],this._customProperties=new Map,this.name=t,this._attrs=this._parseAttributes(o),this._children=[],n&&this._insertChild(0,n)}get childCount(){return this._children.length}get isEmpty(){return 0===this._children.length}getChild(e){return this._children[e]}getChildIndex(e){return this._children.indexOf(e)}getChildren(){return this._children[Symbol.iterator]()}*getAttributeKeys(){this._classes&&(yield"class"),this._styles&&(yield"style");for(const e of this._attrs.keys())"class"!=e&&"style"!=e&&(yield e)}*getAttributes(){for(const[e,t]of this._attrs.entries())yield[e,String(t)]}getAttribute(e){return this._attrs.has(e)?String(this._attrs.get(e)):void 0}hasAttribute(e,t){return!!this._attrs.has(e)&&(void 0===t||(Os(this.name,e)||zs(this.name,e)?this._attrs.get(e).has(t):this._attrs.get(e)===t))}isSimilar(e){if(!(e instanceof Ms))return!1;if(this===e)return!0;if(this.name!=e.name)return!1;if(this._attrs.size!==e._attrs.size)return!1;for(const[t,o]of this._attrs){const n=e._attrs.get(t);if(void 0===n)return!1;if("string"==typeof o||"string"==typeof n){if(n!==o)return!1}else if(!o.isSimilar(n))return!1}return!0}hasClass(...e){for(const t of e)if(!this._classes||!this._classes.has(t))return!1;return!0}getClassNames(){const e=this._classes?this._classes.keys():[],t=e[Symbol.iterator]();return Object.assign(e,{next:t.next.bind(t)})}getStyle(e){return this._styles&&this._styles.getAsString(e)}getNormalizedStyle(e){return this._styles&&this._styles.getNormalized(e)}getStyleNames(e){return this._styles?this._styles.getStyleNames(e):[]}hasStyle(...e){for(const t of e)if(!this._styles||!this._styles.has(t))return!1;return!0}findAncestor(...e){const t=new As(...e);let o=this.parent;for(;o&&!o.is("documentFragment");){if(t.match(o))return o;o=o.parent}return null}getCustomProperty(e){return this._customProperties.get(e)}*getCustomProperties(){yield*this._customProperties.entries()}getIdentity(){const e=this._classes?this._classes.keys().sort().join(","):"",t=this._styles&&String(this._styles),o=Array.from(this._attrs).filter((([e])=>"style"!=e&&"class"!=e)).map((e=>`${e[0]}="${e[1]}"`)).sort().join(" ");return this.name+(""==e?"":` class="${e}"`)+(t?` style="${t}"`:"")+(""==o?"":` ${o}`)}shouldRenderUnsafeAttribute(e){return this._unsafeAttributesToRender.includes(e)}_clone(e=!1){const t=[];if(e)for(const o of this.getChildren())t.push(o._clone(e));const o=new this.constructor(this.document,this.name,this._attrs,t);return o._customProperties=new Map(this._customProperties),o.getFillerOffset=this.getFillerOffset,o._unsafeAttributesToRender=this._unsafeAttributesToRender,o}_appendChild(e){return this._insertChild(this.childCount,e)}_insertChild(e,t){this._fireChange("children",this,{index:e});let o=0;const n=function(e,t){if("string"==typeof t)return[new fs(e,t)];ae(t)||(t=[t]);const o=[];for(const n of t)"string"==typeof n?o.push(new fs(e,n)):n instanceof bs?o.push(new fs(e,n.data)):o.push(n);return o}(this.document,t);for(const t of n)null!==t.parent&&t._remove(),t.parent=this,t.document=this.document,this._children.splice(e,0,t),e++,o++;return o}_removeChildren(e,t=1){this._fireChange("children",this,{index:e});for(let o=e;ot&&e.selection.editableElement==this)),this.listenTo(e.selection,"change",(()=>{this.isFocused=e.isFocused&&e.selection.editableElement==this}))}destroy(){this.stopListening()}}Ls.prototype.is=function(e,t){return t?t===this.name&&("editableElement"===e||"view:editableElement"===e||"containerElement"===e||"view:containerElement"===e||"element"===e||"view:element"===e):"editableElement"===e||"view:editableElement"===e||"containerElement"===e||"view:containerElement"===e||"element"===e||"view:element"===e||"node"===e||"view:node"===e};const Hs=Symbol("rootName");class js extends Ls{constructor(e,t){super(e,t),this.rootName="main"}get rootName(){return this.getCustomProperty(Hs)}set rootName(e){this._setCustomProperty(Hs,e)}set _name(e){this.name=e}}js.prototype.is=function(e,t){return t?t===this.name&&("rootElement"===e||"view:rootElement"===e||"editableElement"===e||"view:editableElement"===e||"containerElement"===e||"view:containerElement"===e||"element"===e||"view:element"===e):"rootElement"===e||"view:rootElement"===e||"editableElement"===e||"view:editableElement"===e||"containerElement"===e||"view:containerElement"===e||"element"===e||"view:element"===e||"node"===e||"view:node"===e};class qs{constructor(e={}){if(!e.boundaries&&!e.startPosition)throw new S("view-tree-walker-no-start-position",null);if(e.direction&&"forward"!=e.direction&&"backward"!=e.direction)throw new S("view-tree-walker-unknown-direction",e.startPosition,{direction:e.direction});this.boundaries=e.boundaries||null,e.startPosition?this._position=$s._createAt(e.startPosition):this._position=$s._createAt(e.boundaries["backward"==e.direction?"end":"start"]),this.direction=e.direction||"forward",this.singleCharacters=!!e.singleCharacters,this.shallow=!!e.shallow,this.ignoreElementEnd=!!e.ignoreElementEnd,this._boundaryStartParent=this.boundaries?this.boundaries.start.parent:null,this._boundaryEndParent=this.boundaries?this.boundaries.end.parent:null}[Symbol.iterator](){return this}get position(){return this._position}skip(e){let t,o;do{o=this.position,t=this.next()}while(!t.done&&e(t.value));t.done||(this._position=o)}jumpTo(e){this._boundaryStartParent&&e.isBefore(this.boundaries.start)?e=this.boundaries.start:this._boundaryEndParent&&e.isAfter(this.boundaries.end)&&(e=this.boundaries.end),this._position=e.clone()}next(){return"forward"==this.direction?this._next():this._previous()}_next(){let e=this.position.clone();const t=this.position,o=e.parent;if(null===o.parent&&e.offset===o.childCount)return{done:!0,value:void 0};if(o===this._boundaryEndParent&&e.offset==this.boundaries.end.offset)return{done:!0,value:void 0};let n;if(o&&o.is("view:$text")){if(e.isAtEnd)return this._position=$s._createAfter(o),this._next();n=o.data[e.offset]}else n=o.getChild(e.offset);if("string"==typeof n){let n;if(this.singleCharacters)n=1;else{n=(o===this._boundaryEndParent?this.boundaries.end.offset:o.data.length)-e.offset}const i=new bs(o,e.offset,n);return e.offset+=n,this._position=e,this._formatReturnValue("text",i,t,e,n)}if(n&&n.is("view:element")){if(this.shallow){if(this.boundaries&&this.boundaries.end.isBefore(e))return{done:!0,value:void 0};e.offset++}else e=new $s(n,0);return this._position=e,this._formatReturnValue("elementStart",n,t,e,1)}if(n&&n.is("view:$text")){if(this.singleCharacters)return e=new $s(n,0),this._position=e,this._next();let o,i=n.data.length;return n==this._boundaryEndParent?(i=this.boundaries.end.offset,o=new bs(n,0,i),e=$s._createAfter(o)):(o=new bs(n,0,n.data.length),e.offset++),this._position=e,this._formatReturnValue("text",o,t,e,i)}return e=$s._createAfter(o),this._position=e,this.ignoreElementEnd?this._next():this._formatReturnValue("elementEnd",o,t,e)}_previous(){let e=this.position.clone();const t=this.position,o=e.parent;if(null===o.parent&&0===e.offset)return{done:!0,value:void 0};if(o==this._boundaryStartParent&&e.offset==this.boundaries.start.offset)return{done:!0,value:void 0};let n;if(o.is("view:$text")){if(e.isAtStart)return this._position=$s._createBefore(o),this._previous();n=o.data[e.offset-1]}else n=o.getChild(e.offset-1);if("string"==typeof n){let n;if(this.singleCharacters)n=1;else{const t=o===this._boundaryStartParent?this.boundaries.start.offset:0;n=e.offset-t}e.offset-=n;const i=new bs(o,e.offset,n);return this._position=e,this._formatReturnValue("text",i,t,e,n)}if(n&&n.is("view:element"))return this.shallow?(e.offset--,this._position=e,this._formatReturnValue("elementStart",n,t,e,1)):(e=new $s(n,n.childCount),this._position=e,this.ignoreElementEnd?this._previous():this._formatReturnValue("elementEnd",n,t,e));if(n&&n.is("view:$text")){if(this.singleCharacters)return e=new $s(n,n.data.length),this._position=e,this._previous();let o,i=n.data.length;if(n==this._boundaryStartParent){const t=this.boundaries.start.offset;o=new bs(n,t,n.data.length-t),i=o.data.length,e=$s._createBefore(o)}else o=new bs(n,0,n.data.length),e.offset--;return this._position=e,this._formatReturnValue("text",o,t,e,i)}return e=$s._createBefore(o),this._position=e,this._formatReturnValue("elementStart",o,t,e,1)}_formatReturnValue(e,t,o,n,i){return t.is("view:$textProxy")&&(t.offsetInText+t.data.length==t.textNode.data.length&&("forward"!=this.direction||this.boundaries&&this.boundaries.end.isEqual(this.position)?o=$s._createAfter(t.textNode):(n=$s._createAfter(t.textNode),this._position=n)),0===t.offsetInText&&("backward"!=this.direction||this.boundaries&&this.boundaries.start.isEqual(this.position)?o=$s._createBefore(t.textNode):(n=$s._createBefore(t.textNode),this._position=n))),{done:!1,value:{type:e,item:t,previousPosition:o,nextPosition:n,length:i}}}}class $s extends ps{constructor(e,t){super(),this.parent=e,this.offset=t}get nodeAfter(){return this.parent.is("$text")?null:this.parent.getChild(this.offset)||null}get nodeBefore(){return this.parent.is("$text")?null:this.parent.getChild(this.offset-1)||null}get isAtStart(){return 0===this.offset}get isAtEnd(){const e=this.parent.is("$text")?this.parent.data.length:this.parent.childCount;return this.offset===e}get root(){return this.parent.root}get editableElement(){let e=this.parent;for(;!(e instanceof Ls);){if(!e.parent)return null;e=e.parent}return e}getShiftedBy(e){const t=$s._createAt(this),o=t.offset+e;return t.offset=o<0?0:o,t}getLastMatchingPosition(e,t={}){t.startPosition=this;const o=new qs(t);return o.skip(e),o.position}getAncestors(){return this.parent.is("documentFragment")?[this.parent]:this.parent.getAncestors({includeSelf:!0})}getCommonAncestor(e){const t=this.getAncestors(),o=e.getAncestors();let n=0;for(;t[n]==o[n]&&t[n];)n++;return 0===n?null:t[n-1]}isEqual(e){return this.parent==e.parent&&this.offset==e.offset}isBefore(e){return"before"==this.compareWith(e)}isAfter(e){return"after"==this.compareWith(e)}compareWith(e){if(this.root!==e.root)return"different";if(this.isEqual(e))return"same";const t=this.parent.is("node")?this.parent.getPath():[],o=e.parent.is("node")?e.parent.getPath():[];t.push(this.offset),o.push(e.offset);const n=se(t,o);switch(n){case"prefix":return"before";case"extension":return"after";default:return t[n]0?new this(o,n):new this(n,o)}static _createIn(e){return this._createFromParentsAndOffsets(e,0,e,e.childCount)}static _createOn(e){const t=e.is("$textProxy")?e.offsetSize:1;return this._createFromPositionAndShift($s._createBefore(e),t)}}function Ws(e){return!(!e.item.is("attributeElement")&&!e.item.is("uiElement"))}Us.prototype.is=function(e){return"range"===e||"view:range"===e};class Gs extends(V(ps)){constructor(...e){super(),this._ranges=[],this._lastRangeBackward=!1,this._isFake=!1,this._fakeSelectionLabel="",e.length&&this.setTo(...e)}get isFake(){return this._isFake}get fakeSelectionLabel(){return this._fakeSelectionLabel}get anchor(){if(!this._ranges.length)return null;const e=this._ranges[this._ranges.length-1];return(this._lastRangeBackward?e.end:e.start).clone()}get focus(){if(!this._ranges.length)return null;const e=this._ranges[this._ranges.length-1];return(this._lastRangeBackward?e.start:e.end).clone()}get isCollapsed(){return 1===this.rangeCount&&this._ranges[0].isCollapsed}get rangeCount(){return this._ranges.length}get isBackward(){return!this.isCollapsed&&this._lastRangeBackward}get editableElement(){return this.anchor?this.anchor.editableElement:null}*getRanges(){for(const e of this._ranges)yield e.clone()}getFirstRange(){let e=null;for(const t of this._ranges)e&&!t.start.isBefore(e.start)||(e=t);return e?e.clone():null}getLastRange(){let e=null;for(const t of this._ranges)e&&!t.end.isAfter(e.end)||(e=t);return e?e.clone():null}getFirstPosition(){const e=this.getFirstRange();return e?e.start.clone():null}getLastPosition(){const e=this.getLastRange();return e?e.end.clone():null}isEqual(e){if(this.isFake!=e.isFake)return!1;if(this.isFake&&this.fakeSelectionLabel!=e.fakeSelectionLabel)return!1;if(this.rangeCount!=e.rangeCount)return!1;if(0===this.rangeCount)return!0;if(!this.anchor.isEqual(e.anchor)||!this.focus.isEqual(e.focus))return!1;for(const t of this._ranges){let o=!1;for(const n of e._ranges)if(t.isEqual(n)){o=!0;break}if(!o)return!1}return!0}isSimilar(e){if(this.isBackward!=e.isBackward)return!1;const t=re(this.getRanges());if(t!=re(e.getRanges()))return!1;if(0==t)return!0;for(let t of this.getRanges()){t=t.getTrimmed();let o=!1;for(let n of e.getRanges())if(n=n.getTrimmed(),t.start.isEqual(n.start)&&t.end.isEqual(n.end)){o=!0;break}if(!o)return!1}return!0}getSelectedElement(){return 1!==this.rangeCount?null:this.getFirstRange().getContainedElement()}setTo(...e){let[t,o,n]=e;if("object"==typeof o&&(n=o,o=void 0),null===t)this._setRanges([]),this._setFakeOptions(n);else if(t instanceof Gs||t instanceof Ks)this._setRanges(t.getRanges(),t.isBackward),this._setFakeOptions({fake:t.isFake,label:t.fakeSelectionLabel});else if(t instanceof Us)this._setRanges([t],n&&n.backward),this._setFakeOptions(n);else if(t instanceof $s)this._setRanges([new Us(t)]),this._setFakeOptions(n);else if(t instanceof gs){const e=!!n&&!!n.backward;let i;if(void 0===o)throw new S("view-selection-setto-required-second-parameter",this);i="in"==o?Us._createIn(t):"on"==o?Us._createOn(t):new Us($s._createAt(t,o)),this._setRanges([i],e),this._setFakeOptions(n)}else{if(!ae(t))throw new S("view-selection-setto-not-selectable",this);this._setRanges(t,n&&n.backward),this._setFakeOptions(n)}this.fire("change")}setFocus(e,t){if(null===this.anchor)throw new S("view-selection-setfocus-no-ranges",this);const o=$s._createAt(e,t);if("same"==o.compareWith(this.focus))return;const n=this.anchor;this._ranges.pop(),"before"==o.compareWith(n)?this._addRange(new Us(o,n),!0):this._addRange(new Us(n,o)),this.fire("change")}_setRanges(e,t=!1){e=Array.from(e),this._ranges=[];for(const t of e)this._addRange(t);this._lastRangeBackward=!!t}_setFakeOptions(e={}){this._isFake=!!e.fake,this._fakeSelectionLabel=e.fake&&e.label||""}_addRange(e,t=!1){if(!(e instanceof Us))throw new S("view-selection-add-range-not-range",this);this._pushRange(e),this._lastRangeBackward=!!t}_pushRange(e){for(const t of this._ranges)if(e.isIntersecting(t))throw new S("view-selection-range-intersects",this,{addedRange:e,intersectingRange:t});this._ranges.push(new Us(e.start,e.end))}}Gs.prototype.is=function(e){return"selection"===e||"view:selection"===e};class Ks extends(V(ps)){constructor(...e){super(),this._selection=new Gs,this._selection.delegate("change").to(this),e.length&&this._selection.setTo(...e)}get isFake(){return this._selection.isFake}get fakeSelectionLabel(){return this._selection.fakeSelectionLabel}get anchor(){return this._selection.anchor}get focus(){return this._selection.focus}get isCollapsed(){return this._selection.isCollapsed}get rangeCount(){return this._selection.rangeCount}get isBackward(){return this._selection.isBackward}get editableElement(){return this._selection.editableElement}get _ranges(){return this._selection._ranges}*getRanges(){yield*this._selection.getRanges()}getFirstRange(){return this._selection.getFirstRange()}getLastRange(){return this._selection.getLastRange()}getFirstPosition(){return this._selection.getFirstPosition()}getLastPosition(){return this._selection.getLastPosition()}getSelectedElement(){return this._selection.getSelectedElement()}isEqual(e){return this._selection.isEqual(e)}isSimilar(e){return this._selection.isSimilar(e)}_setTo(...e){this._selection.setTo(...e)}_setFocus(e,t){this._selection.setFocus(e,t)}}Ks.prototype.is=function(e){return"selection"===e||"documentSelection"==e||"view:selection"==e||"view:documentSelection"==e};class Zs extends v{constructor(e,t,o){super(e,t),this.startRange=o,this._eventPhase="none",this._currentTarget=null}get eventPhase(){return this._eventPhase}get currentTarget(){return this._currentTarget}}const Js=Symbol("bubbling contexts");function Ys(e){return class extends e{fire(e,...t){try{const o=e instanceof v?e:new v(this,e),n=ta(this);if(!n.size)return;if(Qs(o,"capturing",this),Xs(n,"$capture",o,...t))return o.return;const i=o.startRange||this.selection.getFirstRange(),r=i?i.getContainedElement():null,s=!!r&&Boolean(ea(n,r));let a=r||function(e){if(!e)return null;const t=e.start.parent,o=e.end.parent,n=t.getPath(),i=o.getPath();return n.length>i.length?t:o}(i);if(Qs(o,"atTarget",a),!s){if(Xs(n,"$text",o,...t))return o.return;Qs(o,"bubbling",a)}for(;a;){if(a.is("rootElement")){if(Xs(n,"$root",o,...t))return o.return}else if(a.is("element")&&Xs(n,a.name,o,...t))return o.return;if(Xs(n,a,o,...t))return o.return;a=a.parent,Qs(o,"bubbling",a)}return Qs(o,"bubbling",this),Xs(n,"$document",o,...t),o.return}catch(e){S.rethrowUnexpectedError(e,this)}}_addEventListener(e,t,o){const n=Si(o.context||"$document"),i=ta(this);for(const r of n){let n=i.get(r);n||(n=new(V()),i.set(r,n)),this.listenTo(n,e,t,o)}}_removeEventListener(e,t){const o=ta(this);for(const n of o.values())this.stopListening(n,e,t)}}}{const e=Ys(Object);["fire","_addEventListener","_removeEventListener"].forEach((t=>{Ys[t]=e.prototype[t]}))}function Qs(e,t,o){e instanceof Zs&&(e._eventPhase=t,e._currentTarget=o)}function Xs(e,t,o,...n){const i="string"==typeof t?e.get(t):ea(e,t);return!!i&&(i.fire(o,...n),o.stop.called)}function ea(e,t){for(const[o,n]of e)if("function"==typeof o&&o(t))return n;return null}function ta(e){return e[Js]||(e[Js]=new Map),e[Js]}class oa extends(Ys(X())){constructor(e){super(),this._postFixers=new Set,this.selection=new Ks,this.roots=new tr({idProperty:"rootName"}),this.stylesProcessor=e,this.set("isReadOnly",!1),this.set("isFocused",!1),this.set("isSelecting",!1),this.set("isComposing",!1)}getRoot(e="main"){return this.roots.get(e)}registerPostFixer(e){this._postFixers.add(e)}destroy(){this.roots.forEach((e=>e.destroy())),this.stopListening()}_callPostFixers(e){let t=!1;do{for(const o of this._postFixers)if(t=o(e),t)break}while(t)}}class na extends Ms{constructor(e,t,o,n){super(e,t,o,n),this._priority=10,this._id=null,this._clonesGroup=null,this.getFillerOffset=ra}get priority(){return this._priority}get id(){return this._id}getElementsWithSameId(){if(null===this.id)throw new S("attribute-element-get-elements-with-same-id-no-id",this);return new Set(this._clonesGroup)}isSimilar(e){return null!==this.id||null!==e.id?this.id===e.id:super.isSimilar(e)&&this.priority==e.priority}_clone(e=!1){const t=super._clone(e);return t._priority=this._priority,t._id=this._id,t}_canMergeAttributesFrom(e){return null===this.id&&null===e.id&&this.priority===e.priority&&super._canMergeAttributesFrom(e)}_canSubtractAttributesOf(e){return null===this.id&&null===e.id&&this.priority===e.priority&&super._canSubtractAttributesOf(e)}}na.DEFAULT_PRIORITY=10;const ia=na;function ra(){if(sa(this))return null;let e=this.parent;for(;e&&e.is("attributeElement");){if(sa(e)>1)return null;e=e.parent}return!e||sa(e)>1?null:this.childCount}function sa(e){return Array.from(e.getChildren()).filter((e=>!e.is("uiElement"))).length}na.prototype.is=function(e,t){return t?t===this.name&&("attributeElement"===e||"view:attributeElement"===e||"element"===e||"view:element"===e):"attributeElement"===e||"view:attributeElement"===e||"element"===e||"view:element"===e||"node"===e||"view:node"===e};class aa extends Ms{constructor(e,t,o,n){super(e,t,o,n),this.getFillerOffset=la}_insertChild(e,t){if(t&&(t instanceof gs||Array.from(t).length>0))throw new S("view-emptyelement-cannot-add",[this,t]);return 0}}function la(){return null}aa.prototype.is=function(e,t){return t?t===this.name&&("emptyElement"===e||"view:emptyElement"===e||"element"===e||"view:element"===e):"emptyElement"===e||"view:emptyElement"===e||"element"===e||"view:element"===e||"node"===e||"view:node"===e};class ca extends Ms{constructor(e,t,o,n){super(e,t,o,n),this.getFillerOffset=ua}_insertChild(e,t){if(t&&(t instanceof gs||Array.from(t).length>0))throw new S("view-uielement-cannot-add",[this,t]);return 0}render(e,t){return this.toDomElement(e)}toDomElement(e){const t=e.createElement(this.name);for(const e of this.getAttributeKeys())t.setAttribute(e,this.getAttribute(e));return t}}function da(e){e.document.on("arrowKey",((t,o)=>function(e,t,o){if(t.keyCode==Ai.arrowright){const e=t.domTarget.ownerDocument.defaultView.getSelection(),n=1==e.rangeCount&&e.getRangeAt(0).collapsed;if(n||t.shiftKey){const t=e.focusNode,i=e.focusOffset,r=o.domPositionToView(t,i);if(null===r)return;let s=!1;const a=r.getLastMatchingPosition((e=>(e.item.is("uiElement")&&(s=!0),!(!e.item.is("uiElement")&&!e.item.is("attributeElement")))));if(s){const t=o.viewPositionToDom(a);n?e.collapse(t.parent,t.offset):e.extend(t.parent,t.offset)}}}}(0,o,e.domConverter)),{priority:"low"})}function ua(){return null}ca.prototype.is=function(e,t){return t?t===this.name&&("uiElement"===e||"view:uiElement"===e||"element"===e||"view:element"===e):"uiElement"===e||"view:uiElement"===e||"element"===e||"view:element"===e||"node"===e||"view:node"===e};class ha extends Ms{constructor(e,t,o,n){super(e,t,o,n),this.getFillerOffset=pa}_insertChild(e,t){if(t&&(t instanceof gs||Array.from(t).length>0))throw new S("view-rawelement-cannot-add",[this,t]);return 0}render(e,t){}}function pa(){return null}ha.prototype.is=function(e,t){return t?t===this.name&&("rawElement"===e||"view:rawElement"===e||"element"===e||"view:element"===e):"rawElement"===e||"view:rawElement"===e||e===this.name||e==="view:"+this.name||"element"===e||"view:element"===e||"node"===e||"view:node"===e};class ma extends(V(ps)){constructor(e,t){super(),this._children=[],this._customProperties=new Map,this.document=e,t&&this._insertChild(0,t)}[Symbol.iterator](){return this._children[Symbol.iterator]()}get childCount(){return this._children.length}get isEmpty(){return 0===this.childCount}get root(){return this}get parent(){return null}get name(){}get getFillerOffset(){}getCustomProperty(e){return this._customProperties.get(e)}*getCustomProperties(){yield*this._customProperties.entries()}_appendChild(e){return this._insertChild(this.childCount,e)}getChild(e){return this._children[e]}getChildIndex(e){return this._children.indexOf(e)}getChildren(){return this._children[Symbol.iterator]()}_insertChild(e,t){this._fireChange("children",this,{index:e});let o=0;const n=function(e,t){if("string"==typeof t)return[new fs(e,t)];ae(t)||(t=[t]);return Array.from(t).map((t=>"string"==typeof t?new fs(e,t):t instanceof bs?new fs(e,t.data):t))}(this.document,t);for(const t of n)null!==t.parent&&t._remove(),t.parent=this,this._children.splice(e,0,t),e++,o++;return o}_removeChildren(e,t=1){this._fireChange("children",this,{index:e});for(let o=e;o{const o=e[e.length-1],n=!t.is("uiElement");return o&&o.breakAttributes==n?o.nodes.push(t):e.push({breakAttributes:n,nodes:[t]}),e}),[]);let n=null,i=e;for(const{nodes:e,breakAttributes:t}of o){const o=this._insertNodes(i,e,t);n||(n=o.start),i=o.end}return n?new Us(n,i):new Us(e)}remove(e){const t=e instanceof Us?e:Us._createOn(e);if(va(t,this.document),t.isCollapsed)return new ma(this.document);const{start:o,end:n}=this._breakAttributesRange(t,!0),i=o.parent,r=n.offset-o.offset,s=i._removeChildren(o.offset,r);for(const e of s)this._removeFromClonedElementsGroup(e);const a=this.mergeAttributes(o);return t.start=a,t.end=a.clone(),new ma(this.document,s)}clear(e,t){va(e,this.document);const o=e.getWalker({direction:"backward",ignoreElementEnd:!0});for(const n of o){const o=n.item;let i;if(o.is("element")&&t.isSimilar(o))i=Us._createOn(o);else if(!n.nextPosition.isAfter(e.start)&&o.is("$textProxy")){const e=o.getAncestors().find((e=>e.is("element")&&t.isSimilar(e)));e&&(i=Us._createIn(e))}i&&(i.end.isAfter(e.end)&&(i.end=e.end),i.start.isBefore(e.start)&&(i.start=e.start),this.remove(i))}}move(e,t){let o;if(t.isAfter(e.end)){const n=(t=this._breakAttributes(t,!0)).parent,i=n.childCount;e=this._breakAttributesRange(e,!0),o=this.remove(e),t.offset+=n.childCount-i}else o=this.remove(e);return this.insert(t,o)}wrap(e,t){if(!(t instanceof ia))throw new S("view-writer-wrap-invalid-attribute",this.document);if(va(e,this.document),e.isCollapsed){let n=e.start;n.parent.is("element")&&(o=n.parent,!Array.from(o.getChildren()).some((e=>!e.is("uiElement"))))&&(n=n.getLastMatchingPosition((e=>e.item.is("uiElement")))),n=this._wrapPosition(n,t);const i=this.document.selection;return i.isCollapsed&&i.getFirstPosition().isEqual(e.start)&&this.setSelection(n),new Us(n)}return this._wrapRange(e,t);var o}unwrap(e,t){if(!(t instanceof ia))throw new S("view-writer-unwrap-invalid-attribute",this.document);if(va(e,this.document),e.isCollapsed)return e;const{start:o,end:n}=this._breakAttributesRange(e,!0),i=o.parent,r=this._unwrapChildren(i,o.offset,n.offset,t),s=this.mergeAttributes(r.start);s.isEqual(r.start)||r.end.offset--;const a=this.mergeAttributes(r.end);return new Us(s,a)}rename(e,t){const o=new Ns(this.document,e,t.getAttributes());return this.insert($s._createAfter(t),o),this.move(Us._createIn(t),$s._createAt(o,0)),this.remove(Us._createOn(t)),o}clearClonedElementsGroup(e){this._cloneGroups.delete(e)}createPositionAt(e,t){return $s._createAt(e,t)}createPositionAfter(e){return $s._createAfter(e)}createPositionBefore(e){return $s._createBefore(e)}createRange(e,t){return new Us(e,t)}createRangeOn(e){return Us._createOn(e)}createRangeIn(e){return Us._createIn(e)}createSelection(...e){return new Gs(...e)}createSlot(e="children"){if(!this._slotFactory)throw new S("view-writer-invalid-create-slot-context",this.document);return this._slotFactory(this,e)}_registerSlotFactory(e){this._slotFactory=e}_clearSlotFactory(){this._slotFactory=null}_insertNodes(e,t,o){let n,i;if(n=o?fa(e):e.parent.is("$text")?e.parent.parent:e.parent,!n)throw new S("view-writer-invalid-position-container",this.document);i=o?this._breakAttributes(e,!0):e.parent.is("$text")?wa(e):e;const r=n._insertChild(i.offset,t);for(const e of t)this._addToClonedElementsGroup(e);const s=i.getShiftedBy(r),a=this.mergeAttributes(i);a.isEqual(i)||s.offset--;const l=this.mergeAttributes(s);return new Us(a,l)}_wrapChildren(e,t,o,n){let i=t;const r=[];for(;i!1,e.parent._insertChild(e.offset,o);const n=new Us(e,e.getShiftedBy(1));this.wrap(n,t);const i=new $s(o.parent,o.index);o._remove();const r=i.nodeBefore,s=i.nodeAfter;return r&&r.is("view:$text")&&s&&s.is("view:$text")?_a(r,s):ka(i)}_breakAttributesRange(e,t=!1){const o=e.start,n=e.end;if(va(e,this.document),e.isCollapsed){const o=this._breakAttributes(e.start,t);return new Us(o,o)}const i=this._breakAttributes(n,t),r=i.parent.childCount,s=this._breakAttributes(o,t);return i.offset+=i.parent.childCount-r,new Us(s,i)}_breakAttributes(e,t=!1){const o=e.offset,n=e.parent;if(e.parent.is("emptyElement"))throw new S("view-writer-cannot-break-empty-element",this.document);if(e.parent.is("uiElement"))throw new S("view-writer-cannot-break-ui-element",this.document);if(e.parent.is("rawElement"))throw new S("view-writer-cannot-break-raw-element",this.document);if(!t&&n.is("$text")&&Ca(n.parent))return e.clone();if(Ca(n))return e.clone();if(n.is("$text"))return this._breakAttributes(wa(e),t);if(o==n.childCount){const e=new $s(n.parent,n.index+1);return this._breakAttributes(e,t)}if(0===o){const e=new $s(n.parent,n.index);return this._breakAttributes(e,t)}{const e=n.index+1,i=n._clone();n.parent._insertChild(e,i),this._addToClonedElementsGroup(i);const r=n.childCount-o,s=n._removeChildren(o,r);i._appendChild(s);const a=new $s(n.parent,e);return this._breakAttributes(a,t)}}_addToClonedElementsGroup(e){if(!e.root.is("rootElement"))return;if(e.is("element"))for(const t of e.getChildren())this._addToClonedElementsGroup(t);const t=e.id;if(!t)return;let o=this._cloneGroups.get(t);o||(o=new Set,this._cloneGroups.set(t,o)),o.add(e),e._clonesGroup=o}_removeFromClonedElementsGroup(e){if(e.is("element"))for(const t of e.getChildren())this._removeFromClonedElementsGroup(t);const t=e.id;if(!t)return;const o=this._cloneGroups.get(t);o&&o.delete(e)}}function fa(e){let t=e.parent;for(;!Ca(t);){if(!t)return;t=t.parent}return t}function ba(e,t){return e.priorityt.priority)&&e.getIdentity()o instanceof e)))throw new S("view-writer-insert-invalid-node-type",t);o.is("$text")||Aa(o.getChildren(),t)}}function Ca(e){return e&&(e.is("containerElement")||e.is("documentFragment"))}function va(e,t){const o=fa(e.start),n=fa(e.end);if(!o||!n||o!==n)throw new S("view-writer-invalid-range-container",t)}const xa=e=>e.createTextNode(" "),Ea=e=>{const t=e.createElement("span");return t.dataset.ckeFiller="true",t.innerText=" ",t},Da=e=>{const t=e.createElement("br");return t.dataset.ckeFiller="true",t},Ba="⁠".repeat(7);function Sa(e){return"string"==typeof e?e.substr(0,7)===Ba:qn(e)&&e.data.substr(0,7)===Ba}function Ta(e){return 7==e.data.length&&Sa(e)}function Ia(e){const t="string"==typeof e?e:e.data;return Sa(e)?t.slice(7):t}function Pa(e,t){if(t.keyCode==Ai.arrowleft){const e=t.domTarget.ownerDocument.defaultView.getSelection();if(1==e.rangeCount&&e.getRangeAt(0).collapsed){const t=e.getRangeAt(0).startContainer,o=e.getRangeAt(0).startOffset;Sa(t)&&o<=7&&e.collapse(t,0)}}}var Fa=i(6531),Ra={attributes:{"data-cke":!0}};Ra.setAttributes=Xr(),Ra.insert=Yr().bind(null,"head"),Ra.domAPI=Zr(),Ra.insertStyleElement=ts();Gr()(Fa.A,Ra);Fa.A&&Fa.A.locals&&Fa.A.locals;class Ma extends(X()){constructor(e,t){super(),this.domDocuments=new Set,this.markedAttributes=new Set,this.markedChildren=new Set,this.markedTexts=new Set,this._inlineFiller=null,this._fakeSelectionContainer=null,this.domConverter=e,this.selection=t,this.set("isFocused",!1),this.set("isSelecting",!1),this.set("isComposing",!1),c.isBlink&&!c.isAndroid&&this.on("change:isSelecting",(()=>{this.isSelecting||this.render()}))}markToSync(e,t){if("text"===e)this.domConverter.mapViewToDom(t.parent)&&this.markedTexts.add(t);else{if(!this.domConverter.mapViewToDom(t))return;if("attributes"===e)this.markedAttributes.add(t);else{if("children"!==e){throw new S("view-renderer-unknown-type",this)}this.markedChildren.add(t)}}}render(){if(this.isComposing&&!c.isAndroid)return;let e=null;const t=!(c.isBlink&&!c.isAndroid)||!this.isSelecting;for(const e of this.markedChildren)this._updateChildrenMappings(e);t?(this._inlineFiller&&!this._isSelectionInInlineFiller()&&this._removeInlineFiller(),this._inlineFiller?e=this._getInlineFillerPosition():this._needsInlineFillerAtSelection()&&(e=this.selection.getFirstPosition(),this.markedChildren.add(e.parent))):this._inlineFiller&&this._inlineFiller.parentNode&&(e=this.domConverter.domPositionToView(this._inlineFiller),e&&e.parent.is("$text")&&(e=$s._createBefore(e.parent)));for(const e of this.markedAttributes)this._updateAttrs(e);for(const t of this.markedChildren)this._updateChildren(t,{inlineFillerPosition:e});for(const t of this.markedTexts)!this.markedChildren.has(t.parent)&&this.domConverter.mapViewToDom(t.parent)&&this._updateText(t,{inlineFillerPosition:e});if(t)if(e){const t=this.domConverter.viewPositionToDom(e),o=t.parent.ownerDocument;Sa(t.parent)?this._inlineFiller=t.parent:this._inlineFiller=za(o,t.parent,t.offset)}else this._inlineFiller=null;this._updateFocus(),this._updateSelection(),this.domConverter._clearTemporaryCustomProperties(),this.markedTexts.clear(),this.markedAttributes.clear(),this.markedChildren.clear()}_updateChildrenMappings(e){const t=this.domConverter.mapViewToDom(e);if(!t)return;const o=Array.from(t.childNodes),n=Array.from(this.domConverter.viewChildrenToDom(e,{withChildren:!1})),i=this._diffNodeLists(o,n),r=this._findUpdateActions(i,o,n,Oa);if(-1!==r.indexOf("update")){const t={equal:0,insert:0,delete:0};for(const i of r)if("update"===i){const i=t.equal+t.insert,r=t.equal+t.delete,s=e.getChild(i);!s||s.is("uiElement")||s.is("rawElement")||this._updateElementMappings(s,o[r]),ci(n[i]),t.equal++}else t[i]++}}_updateElementMappings(e,t){this.domConverter.unbindDomElement(t),this.domConverter.bindElements(t,e),this.markedChildren.add(e),this.markedAttributes.add(e)}_getInlineFillerPosition(){const e=this.selection.getFirstPosition();return e.parent.is("$text")?$s._createBefore(e.parent):e}_isSelectionInInlineFiller(){if(1!=this.selection.rangeCount||!this.selection.isCollapsed)return!1;const e=this.selection.getFirstPosition(),t=this.domConverter.viewPositionToDom(e);return!!(t&&qn(t.parent)&&Sa(t.parent))}_removeInlineFiller(){const e=this._inlineFiller;if(!Sa(e))throw new S("view-renderer-filler-was-lost",this);Ta(e)?e.remove():e.data=e.data.substr(7),this._inlineFiller=null}_needsInlineFillerAtSelection(){if(1!=this.selection.rangeCount||!this.selection.isCollapsed)return!1;const e=this.selection.getFirstPosition(),t=e.parent,o=e.offset;if(!this.domConverter.mapViewToDom(t.root))return!1;if(!t.is("element"))return!1;if(!function(e){if("false"==e.getAttribute("contenteditable"))return!1;const t=e.findAncestor((e=>e.hasAttribute("contenteditable")));return!t||"true"==t.getAttribute("contenteditable")}(t))return!1;const n=e.nodeBefore,i=e.nodeAfter;return!(n instanceof fs||i instanceof fs)&&(!!(o!==t.getFillerOffset()||n&&n.is("element","br"))&&(!c.isAndroid||!n&&!i))}_updateText(e,t){const o=this.domConverter.findCorrespondingDomText(e);let n=this.domConverter.viewToDom(e).data;const i=t.inlineFillerPosition;i&&i.parent==e.parent&&i.offset==e.index&&(n=Ba+n),this._updateTextNode(o,n)}_updateAttrs(e){const t=this.domConverter.mapViewToDom(e);if(t){for(const o of Array.from(t.attributes)){const n=o.name;e.hasAttribute(n)||this.domConverter.removeDomElementAttribute(t,n)}for(const o of e.getAttributeKeys())this.domConverter.setDomElementAttribute(t,o,e.getAttribute(o),e)}}_updateChildren(e,t){const o=this.domConverter.mapViewToDom(e);if(!o)return;if(c.isAndroid){let e=null;for(const t of Array.from(o.childNodes)){if(e&&qn(e)&&qn(t)){o.normalize();break}e=t}}const n=t.inlineFillerPosition,i=o.childNodes,r=Array.from(this.domConverter.viewChildrenToDom(e,{bind:!0}));n&&n.parent===e&&za(o.ownerDocument,r,n.offset);const s=this._diffNodeLists(i,r),a=this._findUpdateActions(s,i,r,Na);let l=0;const d=new Set;for(const e of a)"delete"===e?(d.add(i[l]),ci(i[l])):"equal"!==e&&"update"!==e||l++;l=0;for(const e of a)"insert"===e?(ni(o,l,r[l]),l++):"update"===e?(this._updateTextNode(i[l],r[l].data),l++):"equal"===e&&(this._markDescendantTextToSync(this.domConverter.domToView(r[l])),l++);for(const e of d)e.parentNode||this.domConverter.unbindDomElement(e)}_diffNodeLists(e,t){return e=function(e,t){const o=Array.from(e);if(0==o.length||!t)return o;const n=o[o.length-1];n==t&&o.pop();return o}(e,this._fakeSelectionContainer),A(e,t,Va.bind(null,this.domConverter))}_findUpdateActions(e,t,o,n){if(-1===e.indexOf("insert")||-1===e.indexOf("delete"))return e;let i=[],r=[],s=[];const a={equal:0,insert:0,delete:0};for(const l of e)"insert"===l?s.push(o[a.equal+a.insert]):"delete"===l?r.push(t[a.equal+a.delete]):(i=i.concat(A(r,s,n).map((e=>"equal"===e?"update":e))),i.push("equal"),r=[],s=[]),a[l]++;return i.concat(A(r,s,n).map((e=>"equal"===e?"update":e)))}_updateTextNode(e,t){const o=e.data;o!=t&&(c.isAndroid&&this.isComposing&&o.replace(/\u00A0/g," ")==t.replace(/\u00A0/g," ")||this._updateTextNodeInternal(e,t))}_updateTextNodeInternal(e,t){const o=k(e.data,t);for(const t of o)"insert"===t.type?e.insertData(t.index,t.values.join("")):e.deleteData(t.index,t.howMany)}_markDescendantTextToSync(e){if(e)if(e.is("$text"))this.markedTexts.add(e);else if(e.is("element"))for(const t of e.getChildren())this._markDescendantTextToSync(t)}_updateSelection(){if(c.isBlink&&!c.isAndroid&&this.isSelecting&&!this.markedChildren.size)return;if(0===this.selection.rangeCount)return this._removeDomSelection(),void this._removeFakeSelection();const e=this.domConverter.mapViewToDom(this.selection.editableElement);this.isFocused&&e&&(this.selection.isFake?this._updateFakeSelection(e):this._fakeSelectionContainer&&this._fakeSelectionContainer.isConnected?(this._removeFakeSelection(),this._updateDomSelection(e)):this.isComposing&&c.isAndroid||this._updateDomSelection(e))}_updateFakeSelection(e){const t=e.ownerDocument;this._fakeSelectionContainer||(this._fakeSelectionContainer=function(e){const t=e.createElement("div");return t.className="ck-fake-selection-container",Object.assign(t.style,{position:"fixed",top:0,left:"-9999px",width:"42px"}),t.textContent=" ",t}(t));const o=this._fakeSelectionContainer;if(this.domConverter.bindFakeSelection(o,this.selection),!this._fakeSelectionNeedsUpdate(e))return;o.parentElement&&o.parentElement==e||e.appendChild(o),o.textContent=this.selection.fakeSelectionLabel||" ";const n=t.getSelection(),i=t.createRange();n.removeAllRanges(),i.selectNodeContents(o),n.addRange(i)}_updateDomSelection(e){const t=e.ownerDocument.defaultView.getSelection();if(!this._domSelectionNeedsUpdate(t))return;const o=this.domConverter.viewPositionToDom(this.selection.anchor),n=this.domConverter.viewPositionToDom(this.selection.focus);t.setBaseAndExtent(o.parent,o.offset,n.parent,n.offset),c.isGecko&&function(e,t){let o=e.parent,n=e.offset;qn(o)&&Ta(o)&&(n=oi(o)+1,o=o.parentNode);if(o.nodeType!=Node.ELEMENT_NODE||n!=o.childNodes.length-1)return;const i=o.childNodes[n];i&&"BR"==i.tagName&&t.addRange(t.getRangeAt(0))}(n,t)}_domSelectionNeedsUpdate(e){if(!this.domConverter.isDomSelectionCorrect(e))return!0;const t=e&&this.domConverter.domSelectionToView(e);return(!t||!this.selection.isEqual(t))&&!(!this.selection.isCollapsed&&this.selection.isSimilar(t))}_fakeSelectionNeedsUpdate(e){const t=this._fakeSelectionContainer,o=e.ownerDocument.getSelection();return!t||t.parentElement!==e||(o.anchorNode!==t&&!t.contains(o.anchorNode)||t.textContent!==this.selection.fakeSelectionLabel)}_removeDomSelection(){for(const e of this.domDocuments){const t=e.getSelection();if(t.rangeCount){const o=e.activeElement,n=this.domConverter.mapDomToView(o);o&&n&&t.removeAllRanges()}}}_removeFakeSelection(){const e=this._fakeSelectionContainer;e&&e.remove()}_updateFocus(){if(this.isFocused){const e=this.selection.editableElement;e&&this.domConverter.focus(e)}}}function za(e,t,o){const n=t instanceof Array?t:t.childNodes,i=n[o];if(qn(i))return i.data=Ba+i.data,i;{const i=e.createTextNode(Ba);return Array.isArray(t)?n.splice(o,0,i):ni(t,o,i),i}}function Oa(e,t){return Rn(e)&&Rn(t)&&!qn(e)&&!qn(t)&&!ii(e)&&!ii(t)&&e.tagName.toLowerCase()===t.tagName.toLowerCase()}function Na(e,t){return Rn(e)&&Rn(t)&&qn(e)&&qn(t)}function Va(e,t,o){return t===o||(qn(t)&&qn(o)?t.data===o.data:!(!e.isBlockFiller(t)||!e.isBlockFiller(o)))}const La=Da(s.document),Ha=xa(s.document),ja=Ea(s.document),qa="data-ck-unsafe-attribute-",$a="data-ck-unsafe-element";class Ua{constructor(e,{blockFillerMode:t,renderingMode:o="editing"}={}){this._domToViewMapping=new WeakMap,this._viewToDomMapping=new WeakMap,this._fakeSelectionMapping=new WeakMap,this._rawContentElementMatcher=new As,this._inlineObjectElementMatcher=new As,this._elementsWithTemporaryCustomProperties=new Set,this.document=e,this.renderingMode=o,this.blockFillerMode=t||("editing"===o?"br":"nbsp"),this.preElements=["pre","textarea"],this.blockElements=["address","article","aside","blockquote","caption","center","dd","details","dir","div","dl","dt","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","legend","li","main","menu","nav","ol","p","pre","section","summary","table","tbody","td","tfoot","th","thead","tr","ul"],this.inlineObjectElements=["object","iframe","input","button","textarea","select","option","video","embed","audio","img","canvas"],this.unsafeElements=["script","style"],this._domDocument="editing"===this.renderingMode?s.document:s.document.implementation.createHTMLDocument("")}bindFakeSelection(e,t){this._fakeSelectionMapping.set(e,new Gs(t))}fakeSelectionToView(e){return this._fakeSelectionMapping.get(e)}bindElements(e,t){this._domToViewMapping.set(e,t),this._viewToDomMapping.set(t,e)}unbindDomElement(e){const t=this._domToViewMapping.get(e);if(t){this._domToViewMapping.delete(e),this._viewToDomMapping.delete(t);for(const t of e.children)this.unbindDomElement(t)}}bindDocumentFragments(e,t){this._domToViewMapping.set(e,t),this._viewToDomMapping.set(t,e)}shouldRenderAttribute(e,t,o){return"data"===this.renderingMode||!(e=e.toLowerCase()).startsWith("on")&&(("srcdoc"!==e||!t.match(/\bon\S+\s*=|javascript:|<\s*\/*script/i))&&("img"===o&&("src"===e||"srcset"===e)||("source"===o&&"srcset"===e||!t.match(/^\s*(javascript:|data:(image\/svg|text\/x?html))/i))))}setContentOf(e,t){if("data"===this.renderingMode)return void(e.innerHTML=t);const o=(new DOMParser).parseFromString(t,"text/html"),n=o.createDocumentFragment(),i=o.body.childNodes;for(;i.length>0;)n.appendChild(i[0]);const r=o.createTreeWalker(n,NodeFilter.SHOW_ELEMENT),s=[];let a;for(;a=r.nextNode();)s.push(a);for(const e of s){for(const t of e.getAttributeNames())this.setDomElementAttribute(e,t,e.getAttribute(t));const t=e.tagName.toLowerCase();this._shouldRenameElement(t)&&(Qa(t),e.replaceWith(this._createReplacementDomElement(t,e)))}for(;e.firstChild;)e.firstChild.remove();e.append(n)}viewToDom(e,t={}){if(e.is("$text")){const t=this._processDataFromViewText(e);return this._domDocument.createTextNode(t)}{const o=e;if(this.mapViewToDom(o)){if(!o.getCustomProperty("editingPipeline:doNotReuseOnce"))return this.mapViewToDom(o);this._elementsWithTemporaryCustomProperties.add(o)}let n;if(o.is("documentFragment"))n=this._domDocument.createDocumentFragment(),t.bind&&this.bindDocumentFragments(n,o);else{if(o.is("uiElement"))return n="$comment"===o.name?this._domDocument.createComment(o.getCustomProperty("$rawContent")):o.render(this._domDocument,this),t.bind&&this.bindElements(n,o),n;this._shouldRenameElement(o.name)?(Qa(o.name),n=this._createReplacementDomElement(o.name)):n=o.hasAttribute("xmlns")?this._domDocument.createElementNS(o.getAttribute("xmlns"),o.name):this._domDocument.createElement(o.name),o.is("rawElement")&&o.render(n,this),t.bind&&this.bindElements(n,o);for(const e of o.getAttributeKeys())this.setDomElementAttribute(n,e,o.getAttribute(e),o)}if(!1!==t.withChildren)for(const e of this.viewChildrenToDom(o,t))n instanceof HTMLTemplateElement?n.content.appendChild(e):n.appendChild(e);return n}}setDomElementAttribute(e,t,o,n){const i=this.shouldRenderAttribute(t,o,e.tagName.toLowerCase())||n&&n.shouldRenderUnsafeAttribute(t);i||T("domconverter-unsafe-attribute-detected",{domElement:e,key:t,value:o}),function(e){try{s.document.createAttribute(e)}catch(e){return!1}return!0}(t)?(e.hasAttribute(t)&&!i?e.removeAttribute(t):e.hasAttribute(qa+t)&&i&&e.removeAttribute(qa+t),e.setAttribute(i?t:qa+t,o)):T("domconverter-invalid-attribute-detected",{domElement:e,key:t,value:o})}removeDomElementAttribute(e,t){t!=$a&&(e.removeAttribute(t),e.removeAttribute(qa+t))}*viewChildrenToDom(e,t={}){const o=e.getFillerOffset&&e.getFillerOffset();let n=0;for(const i of e.getChildren()){o===n&&(yield this._getBlockFiller());const e=i.is("element")&&!!i.getCustomProperty("dataPipeline:transparentRendering")&&!or(i.getAttributes());if(e&&"data"==this.renderingMode)if(i.is("rawElement")){const e=this._domDocument.createElement(i.name);i.render(e,this),yield*[...e.childNodes]}else yield*this.viewChildrenToDom(i,t);else e&&T("domconverter-transparent-rendering-unsupported-in-editing-pipeline",{viewElement:i}),yield this.viewToDom(i,t);n++}o===n&&(yield this._getBlockFiller())}viewRangeToDom(e){const t=this.viewPositionToDom(e.start),o=this.viewPositionToDom(e.end),n=this._domDocument.createRange();return n.setStart(t.parent,t.offset),n.setEnd(o.parent,o.offset),n}viewPositionToDom(e){const t=e.parent;if(t.is("$text")){const o=this.findCorrespondingDomText(t);if(!o)return null;let n=e.offset;return Sa(o)&&(n+=7),{parent:o,offset:n}}{let o,n,i;if(0===e.offset){if(o=this.mapViewToDom(t),!o)return null;i=o.childNodes[0]}else{const t=e.nodeBefore;if(n=t.is("$text")?this.findCorrespondingDomText(t):this.mapViewToDom(t),!n)return null;o=n.parentNode,i=n.nextSibling}if(qn(i)&&Sa(i))return{parent:i,offset:7};return{parent:o,offset:n?oi(n)+1:0}}}domToView(e,t={}){const o=[],n=this._domToView(e,t,o),i=n.next().value;return i?(n.next(),this._processDomInlineNodes(null,o,t),"br"==this.blockFillerMode&&Ja(i)||i.is("$text")&&0==i.data.length?null:i):null}*domChildrenToView(e,t={},o=[]){let n=[];n=e instanceof HTMLTemplateElement?[...e.content.childNodes]:[...e.childNodes];for(let i=0;i{const{scrollLeft:t,scrollTop:o}=e;n.push([t,o])})),t.focus(),Wa(t,(e=>{const[t,o]=n.shift();e.scrollLeft=t,e.scrollTop=o})),s.window.scrollTo(e,o)}}_clearDomSelection(){const e=this.mapViewToDom(this.document.selection.editableElement);if(!e)return;const t=e.ownerDocument.defaultView.getSelection(),o=this.domSelectionToView(t);o&&o.rangeCount>0&&t.removeAllRanges()}isElement(e){return e&&e.nodeType==Node.ELEMENT_NODE}isDocumentFragment(e){return e&&e.nodeType==Node.DOCUMENT_FRAGMENT_NODE}isBlockFiller(e){return"br"==this.blockFillerMode?e.isEqualNode(La):!!Ya(e,this.blockElements)||(e.isEqualNode(ja)||function(e,t){const o=e.isEqualNode(Ha);return o&&Ga(e,t)&&1===e.parentNode.childNodes.length}(e,this.blockElements))}isDomSelectionBackward(e){if(e.isCollapsed)return!1;const t=this._domDocument.createRange();try{t.setStart(e.anchorNode,e.anchorOffset),t.setEnd(e.focusNode,e.focusOffset)}catch(e){return!1}const o=t.collapsed;return t.detach(),o}getHostViewElement(e){const t=Ln(e);for(t.pop();t.length;){const e=t.pop(),o=this._domToViewMapping.get(e);if(o&&(o.is("uiElement")||o.is("rawElement")))return o}return null}isDomSelectionCorrect(e){return this._isDomSelectionPositionCorrect(e.anchorNode,e.anchorOffset)&&this._isDomSelectionPositionCorrect(e.focusNode,e.focusOffset)}registerRawContentMatcher(e){this._rawContentElementMatcher.add(e)}registerInlineObjectMatcher(e){this._inlineObjectElementMatcher.add(e)}_clearTemporaryCustomProperties(){for(const e of this._elementsWithTemporaryCustomProperties)e._removeCustomProperty("editingPipeline:doNotReuseOnce");this._elementsWithTemporaryCustomProperties.clear()}_getBlockFiller(){switch(this.blockFillerMode){case"nbsp":return xa(this._domDocument);case"markedNbsp":return Ea(this._domDocument);case"br":return Da(this._domDocument)}}_isDomSelectionPositionCorrect(e,t){if(qn(e)&&Sa(e)&&t<7)return!1;if(this.isElement(e)&&Sa(e.childNodes[t]))return!1;const o=this.mapDomToView(e);return!o||!o.is("uiElement")&&!o.is("rawElement")}*_domToView(e,t,o){if("br"!=this.blockFillerMode&&Ya(e,this.blockElements))return null;const n=this.getHostViewElement(e);if(n)return n;if(ii(e)&&t.skipComments)return null;if(qn(e)){if(Ta(e))return null;{const t=e.data;if(""===t)return null;const n=new fs(this.document,t);return o.push(n),n}}{let n=this.mapDomToView(e);if(n)return this._isInlineObjectElement(n)&&o.push(n),n;if(this.isDocumentFragment(e))n=new ma(this.document),t.bind&&this.bindDocumentFragments(e,n);else{n=this._createViewElement(e,t),t.bind&&this.bindElements(e,n);const i=e.attributes;if(i)for(let e=i.length,t=0;t0?t[e-1]:null,l=e+1e.is("element")&&t.includes(e.name)))}(e,this.preElements))return!0;for(const t of e.getAncestors({parentFirst:!0}))if(t.is("element")&&t.hasStyle("white-space")&&"inherit"!==t.getStyle("white-space"))return["pre","pre-wrap","break-spaces"].includes(t.getStyle("white-space"));return!1}_getTouchingInlineViewNode(e,t){const o=new qs({startPosition:t?$s._createAfter(e):$s._createBefore(e),direction:t?"forward":"backward"});for(const{item:e}of o){if(e.is("$textProxy"))return e;if(!e.is("element")||!e.getCustomProperty("dataPipeline:transparentRendering")){if(e.is("element","br"))return null;if(this._isInlineObjectElement(e))return e;if(e.is("containerElement"))return null}}return null}_isBlockDomElement(e){return this.isElement(e)&&this.blockElements.includes(e.tagName.toLowerCase())}_isBlockViewElement(e){return e.is("element")&&this.blockElements.includes(e.name)}_isInlineObjectElement(e){return!!e.is("element")&&("br"==e.name||this.inlineObjectElements.includes(e.name)||!!this._inlineObjectElementMatcher.match(e))}_createViewElement(e,t){if(ii(e))return new ca(this.document,"$comment");const o=t.keepOriginalCase?e.tagName:e.tagName.toLowerCase();return new Ms(this.document,o)}_isViewElementWithRawContent(e,t){return!1!==t.withChildren&&e.is("element")&&!!this._rawContentElementMatcher.match(e)}_shouldRenameElement(e){const t=e.toLowerCase();return"editing"===this.renderingMode&&this.unsafeElements.includes(t)}_createReplacementDomElement(e,t){const o=this._domDocument.createElement("span");if(o.setAttribute($a,e),t){for(;t.firstChild;)o.appendChild(t.firstChild);for(const e of t.getAttributeNames())o.setAttribute(e,t.getAttribute(e))}return o}}function Wa(e,t){let o=e;for(;o;)t(o),o=o.parentElement}function Ga(e,t){const o=e.parentNode;return!!o&&!!o.tagName&&t.includes(o.tagName.toLowerCase())}function Ka(e,t,o){return" "==t&&e&&e.is("element")&&1==e.childCount&&o.includes(e.name)}function Za(e,t){return" "==t&&e&&e.is("element","span")&&1==e.childCount&&e.hasAttribute("data-cke-filler")}function Ja(e){return e.is("element","br")&&e.hasAttribute("data-cke-filler")}function Ya(e,t){return"BR"===e.tagName&&Ga(e,t)&&1===e.parentNode.childNodes.length}function Qa(e){"script"===e&&T("domconverter-unsafe-script-element-detected"),"style"===e&&T("domconverter-unsafe-style-element-detected")}class Xa extends(On()){constructor(e){super(),this._isEnabled=!1,this.view=e,this.document=e.document}get isEnabled(){return this._isEnabled}enable(){this._isEnabled=!0}disable(){this._isEnabled=!1}destroy(){this.disable(),this.stopListening()}checkShouldIgnoreEventFromTarget(e){return e&&3===e.nodeType&&(e=e.parentNode),!(!e||1!==e.nodeType)&&e.matches("[data-cke-ignore-events], [data-cke-ignore-events] *")}}var el=Ki((function(e,t){zt(t,_o(t),e)}));const tl=el;class ol{constructor(e,t,o){this.view=e,this.document=e.document,this.domEvent=t,this.domTarget=t.target,tl(this,o)}get target(){return this.view.domConverter.mapDomToView(this.domTarget)}preventDefault(){this.domEvent.preventDefault()}stopPropagation(){this.domEvent.stopPropagation()}}class nl extends Xa{constructor(){super(...arguments),this.useCapture=!1,this.usePassive=!1}observe(e){("string"==typeof this.domEventType?[this.domEventType]:this.domEventType).forEach((t=>{this.listenTo(e,t,((e,t)=>{this.isEnabled&&!this.checkShouldIgnoreEventFromTarget(t.target)&&this.onDomEvent(t)}),{useCapture:this.useCapture,usePassive:this.usePassive})}))}stopObserving(e){this.stopListening(e)}fire(e,t,o){this.isEnabled&&this.document.fire(e,new ol(this.view,t,o))}}class il extends nl{constructor(){super(...arguments),this.domEventType=["keydown","keyup"]}onDomEvent(e){const t={keyCode:e.keyCode,altKey:e.altKey,ctrlKey:e.ctrlKey,shiftKey:e.shiftKey,metaKey:e.metaKey,get keystroke(){return vi(this)}};this.fire(e.type,e,t)}}const rl=function(){return de.Date.now()};var sl=/\s/;const al=function(e){for(var t=e.length;t--&&sl.test(e.charAt(t)););return t};var ll=/^\s+/;const cl=function(e){return e?e.slice(0,al(e)+1).replace(ll,""):e};var dl=/^[-+]0x[0-9a-f]+$/i,ul=/^0b[01]+$/i,hl=/^0o[0-7]+$/i,pl=parseInt;const ml=function(e){if("number"==typeof e)return e;if(vr(e))return NaN;if(W(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=W(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=cl(e);var o=ul.test(e);return o||hl.test(e)?pl(e.slice(2),o?2:8):dl.test(e)?NaN:+e};var gl=Math.max,fl=Math.min;const bl=function(e,t,o){var n,i,r,s,a,l,c=0,d=!1,u=!1,h=!0;if("function"!=typeof e)throw new TypeError("Expected a function");function p(t){var o=n,r=i;return n=i=void 0,c=t,s=e.apply(r,o)}function m(e){var o=e-l;return void 0===l||o>=t||o<0||u&&e-c>=r}function g(){var e=rl();if(m(e))return f(e);a=setTimeout(g,function(e){var o=t-(e-l);return u?fl(o,r-(e-c)):o}(e))}function f(e){return a=void 0,h&&n?p(e):(n=i=void 0,s)}function b(){var e=rl(),o=m(e);if(n=arguments,i=this,l=e,o){if(void 0===a)return function(e){return c=e,a=setTimeout(g,t),d?p(e):s}(l);if(u)return clearTimeout(a),a=setTimeout(g,t),p(l)}return void 0===a&&(a=setTimeout(g,t)),s}return t=ml(t)||0,W(o)&&(d=!!o.leading,r=(u="maxWait"in o)?gl(ml(o.maxWait)||0,t):r,h="trailing"in o?!!o.trailing:h),b.cancel=function(){void 0!==a&&clearTimeout(a),c=0,n=l=i=a=void 0},b.flush=function(){return void 0===a?s:f(rl())},b};class kl extends Xa{constructor(e){super(e),this._fireSelectionChangeDoneDebounced=bl((e=>{this.document.fire("selectionChangeDone",e)}),200)}observe(){const e=this.document;e.on("arrowKey",((t,o)=>{e.selection.isFake&&this.isEnabled&&o.preventDefault()}),{context:"$capture"}),e.on("arrowKey",((t,o)=>{e.selection.isFake&&this.isEnabled&&this._handleSelectionMove(o.keyCode)}),{priority:"lowest"})}stopObserving(){}destroy(){super.destroy(),this._fireSelectionChangeDoneDebounced.cancel()}_handleSelectionMove(e){const t=this.document.selection,o=new Gs(t.getRanges(),{backward:t.isBackward,fake:!1});e!=Ai.arrowleft&&e!=Ai.arrowup||o.setTo(o.getFirstPosition()),e!=Ai.arrowright&&e!=Ai.arrowdown||o.setTo(o.getLastPosition());const n={oldSelection:t,newSelection:o,domSelection:null};this.document.fire("selectionChange",n),this._fireSelectionChangeDoneDebounced(n)}}const wl=function(e){return this.__data__.set(e,"__lodash_hash_undefined__"),this};const _l=function(e){return this.__data__.has(e)};function yl(e){var t=-1,o=null==e?0:e.length;for(this.__data__=new Dt;++ta))return!1;var c=r.get(e),d=r.get(t);if(c&&d)return c==t&&d==e;var u=-1,h=!0,p=2&o?new Al:void 0;for(r.set(e,t),r.set(t,e);++uthis._handleFocus())),t.on("blur",((e,t)=>this._handleBlur(t))),t.on("beforeinput",(()=>{t.isFocused||this._handleFocus()}),{priority:"highest"})}flush(){this._isFocusChanging&&(this._isFocusChanging=!1,this.document.isFocused=!0)}onDomEvent(e){this.fire(e.type,e)}destroy(){this._clearTimeout(),super.destroy()}_handleFocus(){this._clearTimeout(),this._isFocusChanging=!0,this._renderTimeoutId=setTimeout((()=>{this._renderTimeoutId=null,this.flush(),this.view.change((()=>{}))}),50)}_handleBlur(e){const t=this.document.selection.editableElement;null!==t&&t!==e.target||(this.document.isFocused=!1,this._isFocusChanging=!1,this.view.change((()=>{})))}_clearTimeout(){this._renderTimeoutId&&(clearTimeout(this._renderTimeoutId),this._renderTimeoutId=null)}}class ql extends Xa{constructor(e){super(e),this.mutationObserver=e.getObserver(Ll),this.focusObserver=e.getObserver(jl),this.selection=this.document.selection,this.domConverter=e.domConverter,this._documents=new WeakSet,this._fireSelectionChangeDoneDebounced=bl((e=>{this.document.fire("selectionChangeDone",e)}),200),this._clearInfiniteLoopInterval=setInterval((()=>this._clearInfiniteLoop()),1e3),this._documentIsSelectingInactivityTimeoutDebounced=bl((()=>this.document.isSelecting=!1),5e3),this._loopbackCounter=0}observe(e){const t=e.ownerDocument,o=()=>{this.document.isSelecting&&(this._handleSelectionChange(t),this.document.isSelecting=!1,this._documentIsSelectingInactivityTimeoutDebounced.cancel())};this.listenTo(e,"selectstart",(()=>{this.document.isSelecting=!0,this._documentIsSelectingInactivityTimeoutDebounced()}),{priority:"highest"}),this.listenTo(e,"keydown",o,{priority:"highest",useCapture:!0}),this.listenTo(e,"keyup",o,{priority:"highest",useCapture:!0}),this._documents.has(t)||(this.listenTo(t,"mouseup",o,{priority:"highest",useCapture:!0}),this.listenTo(t,"selectionchange",(()=>{this.document.isComposing&&!c.isAndroid||(this._handleSelectionChange(t),this._documentIsSelectingInactivityTimeoutDebounced())})),this.listenTo(this.view.document,"compositionstart",(()=>{this._handleSelectionChange(t)}),{priority:"lowest"}),this._documents.add(t))}stopObserving(e){this.stopListening(e)}destroy(){super.destroy(),clearInterval(this._clearInfiniteLoopInterval),this._fireSelectionChangeDoneDebounced.cancel(),this._documentIsSelectingInactivityTimeoutDebounced.cancel()}_reportInfiniteLoop(){}_handleSelectionChange(e){if(!this.isEnabled)return;const t=e.defaultView.getSelection();if(this.checkShouldIgnoreEventFromTarget(t.anchorNode))return;this.mutationObserver.flush();const o=this.domConverter.domSelectionToView(t);if(0!=o.rangeCount){if(this.view.hasDomSelection=!0,this.focusObserver.flush(),!this.selection.isEqual(o)||!this.domConverter.isDomSelectionCorrect(t))if(++this._loopbackCounter>60)this._reportInfiniteLoop();else if(this.selection.isSimilar(o))this.view.forceRender();else{const e={oldSelection:this.selection,newSelection:o,domSelection:t};this.document.fire("selectionChange",e),this._fireSelectionChangeDoneDebounced(e)}}else this.view.hasDomSelection=!1}_clearInfiniteLoop(){this._loopbackCounter=0}}class $l extends nl{constructor(e){super(e),this.domEventType=["compositionstart","compositionupdate","compositionend"];const t=this.document;t.on("compositionstart",(()=>{t.isComposing=!0}),{priority:"low"}),t.on("compositionend",(()=>{t.isComposing=!1}),{priority:"low"})}onDomEvent(e){this.fire(e.type,e,{data:e.data})}}class Ul{constructor(e,t={}){this._files=t.cacheFiles?Wl(e):null,this._native=e}get files(){return this._files||(this._files=Wl(this._native)),this._files}get types(){return this._native.types}getData(e){return this._native.getData(e)}setData(e,t){this._native.setData(e,t)}set effectAllowed(e){this._native.effectAllowed=e}get effectAllowed(){return this._native.effectAllowed}set dropEffect(e){this._native.dropEffect=e}get dropEffect(){return this._native.dropEffect}setDragImage(e,t,o){this._native.setDragImage(e,t,o)}get isCanceled(){return"none"==this._native.dropEffect||!!this._native.mozUserCancelled}}function Wl(e){const t=Array.from(e.files||[]),o=Array.from(e.items||[]);return t.length?t:o.filter((e=>"file"===e.kind)).map((e=>e.getAsFile()))}class Gl extends nl{constructor(){super(...arguments),this.domEventType="beforeinput"}onDomEvent(e){const t=e.getTargetRanges(),o=this.view,n=o.document;let i=null,r=null,s=[];if(e.dataTransfer&&(i=new Ul(e.dataTransfer)),null!==e.data?r=e.data:i&&(r=i.getData("text/plain")),n.selection.isFake)s=Array.from(n.selection.getRanges());else if(t.length)s=t.map((e=>{const t=o.domConverter.domPositionToView(e.startContainer,e.startOffset),n=o.domConverter.domPositionToView(e.endContainer,e.endOffset);return t?o.createRange(t,n):n?o.createRange(n):void 0})).filter((e=>!!e));else if(c.isAndroid){const t=e.target.ownerDocument.defaultView.getSelection();s=Array.from(o.domConverter.domSelectionToView(t).getRanges())}if(c.isAndroid&&"insertCompositionText"==e.inputType&&r&&r.endsWith("\n"))this.fire(e.type,e,{inputType:"insertParagraph",targetRanges:[o.createRange(s[0].end)]});else if("insertText"==e.inputType&&r&&r.includes("\n")){const t=r.split(/\n{1,2}/g);let o=s;for(let r=0;r{if(this.isEnabled&&((o=t.keyCode)==Ai.arrowright||o==Ai.arrowleft||o==Ai.arrowup||o==Ai.arrowdown)){const o=new Zs(this.document,"arrowKey",this.document.selection.getFirstRange());this.document.fire(o,t),o.stop.called&&e.stop()}var o}))}observe(){}stopObserving(){}}class Zl extends Xa{constructor(e){super(e);const t=this.document;t.on("keydown",((e,o)=>{if(!this.isEnabled||o.keyCode!=Ai.tab||o.ctrlKey)return;const n=new Zs(t,"tab",t.selection.getFirstRange());t.fire(n,o),n.stop.called&&e.stop()}))}observe(){}stopObserving(){}}const Jl=function(e){return Bn(e,5)};class Yl extends(X()){constructor(e){super(),this.domRoots=new Map,this._initialDomRootAttributes=new WeakMap,this._observers=new Map,this._ongoingChange=!1,this._postFixersInProgress=!1,this._renderingDisabled=!1,this._hasChangedSinceTheLastRendering=!1,this.document=new oa(e),this.domConverter=new Ua(this.document),this.set("isRenderingInProgress",!1),this.set("hasDomSelection",!1),this._renderer=new Ma(this.domConverter,this.document.selection),this._renderer.bind("isFocused","isSelecting","isComposing").to(this.document,"isFocused","isSelecting","isComposing"),this._writer=new ga(this.document),this.addObserver(Ll),this.addObserver(jl),this.addObserver(ql),this.addObserver(il),this.addObserver(kl),this.addObserver($l),this.addObserver(Kl),this.addObserver(Gl),this.addObserver(Zl),this.document.on("arrowKey",Pa,{priority:"low"}),da(this),this.on("render",(()=>{this._render(),this.document.fire("layoutChanged"),this._hasChangedSinceTheLastRendering=!1})),this.listenTo(this.document.selection,"change",(()=>{this._hasChangedSinceTheLastRendering=!0})),this.listenTo(this.document,"change:isFocused",(()=>{this._hasChangedSinceTheLastRendering=!0})),c.isiOS&&this.listenTo(this.document,"blur",((e,t)=>{this.domConverter.mapDomToView(t.domEvent.relatedTarget)||this.domConverter._clearDomSelection()})),this.listenTo(this.document,"mutations",((e,{mutations:t})=>{t.forEach((e=>this._renderer.markToSync(e.type,e.node)))}),{priority:"low"}),this.listenTo(this.document,"mutations",(()=>{this.forceRender()}),{priority:"lowest"})}attachDomRoot(e,t="main"){const o=this.document.getRoot(t);o._name=e.tagName.toLowerCase();const n={};for(const{name:t,value:i}of Array.from(e.attributes))n[t]=i,"class"===t?this._writer.addClass(i.split(" "),o):o.hasAttribute(t)||this._writer.setAttribute(t,i,o);this._initialDomRootAttributes.set(e,n);const i=()=>{this._writer.setAttribute("contenteditable",(!o.isReadOnly).toString(),o),o.isReadOnly?this._writer.addClass("ck-read-only",o):this._writer.removeClass("ck-read-only",o)};i(),this.domRoots.set(t,e),this.domConverter.bindElements(e,o),this._renderer.markToSync("children",o),this._renderer.markToSync("attributes",o),this._renderer.domDocuments.add(e.ownerDocument),o.on("change:children",((e,t)=>this._renderer.markToSync("children",t))),o.on("change:attributes",((e,t)=>this._renderer.markToSync("attributes",t))),o.on("change:text",((e,t)=>this._renderer.markToSync("text",t))),o.on("change:isReadOnly",(()=>this.change(i))),o.on("change",(()=>{this._hasChangedSinceTheLastRendering=!0}));for(const o of this._observers.values())o.observe(e,t)}detachDomRoot(e){const t=this.domRoots.get(e);Array.from(t.attributes).forEach((({name:e})=>t.removeAttribute(e)));const o=this._initialDomRootAttributes.get(t);for(const e in o)t.setAttribute(e,o[e]);this.domRoots.delete(e),this.domConverter.unbindDomElement(t);for(const e of this._observers.values())e.stopObserving(t)}getDomRoot(e="main"){return this.domRoots.get(e)}addObserver(e){let t=this._observers.get(e);if(t)return t;t=new e(this),this._observers.set(e,t);for(const[e,o]of this.domRoots)t.observe(o,e);return t.enable(),t}getObserver(e){return this._observers.get(e)}disableObservers(){for(const e of this._observers.values())e.disable()}enableObservers(){for(const e of this._observers.values())e.enable()}scrollToTheSelection({alignToTop:e,forceScroll:t,viewportOffset:o=20,ancestorOffset:n=20}={}){const i=this.document.selection.getFirstRange();if(!i)return;const r=Jl({alignToTop:e,forceScroll:t,viewportOffset:o,ancestorOffset:n});"number"==typeof o&&(o={top:o,bottom:o,left:o,right:o});const s={target:this.domConverter.viewRangeToDom(i),viewportOffset:o,ancestorOffset:n,alignToTop:e,forceScroll:t};this.fire("scrollToTheSelection",s,r),function({target:e,viewportOffset:t=0,ancestorOffset:o=0,alignToTop:n,forceScroll:i}){const r=fi(e);let s=r,a=null;for(t=function(e){return"number"==typeof e?{top:e,bottom:e,left:e,right:e}:e}(t);s;){let l;l=bi(s==r?e:a),ui({parent:l,getRect:()=>ki(e,s),alignToTop:n,ancestorOffset:o,forceScroll:i});let c=ki(e,s);const d=ki(l,s);if(c.height>d.height){const e=c.getIntersection(d);e&&(c=e)}if(di({window:s,rect:c,viewportOffset:t,alignToTop:n,forceScroll:i}),s.parent!=s){if(a=s.frameElement,s=s.parent,!a)return}else s=null}}(s)}focus(){if(!this.document.isFocused){const e=this.document.selection.editableElement;e&&(this.domConverter.focus(e),this.forceRender())}}change(e){if(this.isRenderingInProgress||this._postFixersInProgress)throw new S("cannot-change-view-tree",this);try{if(this._ongoingChange)return e(this._writer);this._ongoingChange=!0;const t=e(this._writer);return this._ongoingChange=!1,!this._renderingDisabled&&this._hasChangedSinceTheLastRendering&&(this._postFixersInProgress=!0,this.document._callPostFixers(this._writer),this._postFixersInProgress=!1,this.fire("render")),t}catch(e){S.rethrowUnexpectedError(e,this)}}forceRender(){this._hasChangedSinceTheLastRendering=!0,this.getObserver(jl).flush(),this.change((()=>{}))}destroy(){for(const e of this._observers.values())e.destroy();this.document.destroy(),this.stopListening()}createPositionAt(e,t){return $s._createAt(e,t)}createPositionAfter(e){return $s._createAfter(e)}createPositionBefore(e){return $s._createBefore(e)}createRange(e,t){return new Us(e,t)}createRangeOn(e){return Us._createOn(e)}createRangeIn(e){return Us._createIn(e)}createSelection(...e){return new Gs(...e)}_disableRendering(e){this._renderingDisabled=e,0==e&&this.change((()=>{}))}_render(){this.isRenderingInProgress=!0,this.disableObservers(),this._renderer.render(),this.enableObservers(),this.isRenderingInProgress=!1}}class Ql{is(){throw new Error("is() method is abstract")}}class Xl extends Ql{constructor(e,t,o){if(super(),this.textNode=e,t<0||t>e.offsetSize)throw new S("model-textproxy-wrong-offsetintext",this);if(o<0||t+o>e.offsetSize)throw new S("model-textproxy-wrong-length",this);this.data=e.data.substring(t,t+o),this.offsetInText=t}get startOffset(){return null!==this.textNode.startOffset?this.textNode.startOffset+this.offsetInText:null}get offsetSize(){return this.data.length}get endOffset(){return null!==this.startOffset?this.startOffset+this.offsetSize:null}get isPartial(){return this.offsetSize!==this.textNode.offsetSize}get parent(){return this.textNode.parent}get root(){return this.textNode.root}getPath(){const e=this.textNode.getPath();return e.length>0&&(e[e.length-1]+=this.offsetInText),e}getAncestors(e={}){const t=[];let o=e.includeSelf?this:this.parent;for(;o;)t[e.parentFirst?"push":"unshift"](o),o=o.parent;return t}hasAttribute(e){return this.textNode.hasAttribute(e)}getAttribute(e){return this.textNode.getAttribute(e)}getAttributes(){return this.textNode.getAttributes()}getAttributeKeys(){return this.textNode.getAttributeKeys()}}Xl.prototype.is=function(e){return"$textProxy"===e||"model:$textProxy"===e||"textProxy"===e||"model:textProxy"===e};class ec{constructor(e){if(!e||!e.boundaries&&!e.startPosition)throw new S("model-tree-walker-no-start-position",null);const t=e.direction||"forward";if("forward"!=t&&"backward"!=t)throw new S("model-tree-walker-unknown-direction",e,{direction:t});this.direction=t,this.boundaries=e.boundaries||null,e.startPosition?this._position=e.startPosition.clone():this._position=oc._createAt(this.boundaries["backward"==this.direction?"end":"start"]),this.position.stickiness="toNone",this.singleCharacters=!!e.singleCharacters,this.shallow=!!e.shallow,this.ignoreElementEnd=!!e.ignoreElementEnd,this._boundaryStartParent=this.boundaries?this.boundaries.start.parent:null,this._boundaryEndParent=this.boundaries?this.boundaries.end.parent:null,this._visitedParent=this.position.parent}[Symbol.iterator](){return this}get position(){return this._position}skip(e){let t,o,n,i;do{n=this.position,i=this._visitedParent,({done:t,value:o}=this.next())}while(!t&&e(o));t||(this._position=n,this._visitedParent=i)}jumpTo(e){this._boundaryStartParent&&e.isBefore(this.boundaries.start)?e=this.boundaries.start:this._boundaryEndParent&&e.isAfter(this.boundaries.end)&&(e=this.boundaries.end),this._position=e.clone(),this._visitedParent=e.parent}next(){return"forward"==this.direction?this._next():this._previous()}_next(){const e=this.position,t=this.position.clone(),o=this._visitedParent;if(null===o.parent&&t.offset===o.maxOffset)return{done:!0,value:void 0};if(o===this._boundaryEndParent&&t.offset==this.boundaries.end.offset)return{done:!0,value:void 0};const n=nc(t,o),i=n||ic(t,o,n);if(i&&i.is("model:element")){if(this.shallow){if(this.boundaries&&this.boundaries.end.isBefore(t))return{done:!0,value:void 0};t.offset++}else t.path.push(0),this._visitedParent=i;return this._position=t,tc("elementStart",i,e,t,1)}if(i&&i.is("model:$text")){let n;if(this.singleCharacters)n=1;else{let e=i.endOffset;this._boundaryEndParent==o&&this.boundaries.end.offsete&&(e=this.boundaries.start.offset),n=t.offset-e}const i=t.offset-r.startOffset,s=new Xl(r,i-n,n);return t.offset-=n,this._position=t,tc("text",s,e,t,n)}return t.path.pop(),this._position=t,this._visitedParent=o.parent,tc("elementStart",o,e,t,1)}}function tc(e,t,o,n,i){return{done:!1,value:{type:e,item:t,previousPosition:o,nextPosition:n,length:i}}}class oc extends Ql{constructor(e,t,o="toNone"){if(super(),!e.is("element")&&!e.is("documentFragment"))throw new S("model-position-root-invalid",e);if(!Array.isArray(t)||0===t.length)throw new S("model-position-path-incorrect-format",e,{path:t});e.is("rootElement")?t=t.slice():(t=[...e.getPath(),...t],e=e.root),this.root=e,this.path=t,this.stickiness=o}get offset(){return this.path[this.path.length-1]}set offset(e){this.path[this.path.length-1]=e}get parent(){let e=this.root;for(let t=0;t1)return!1;if(1===t)return sc(e,this,o);if(-1===t)return sc(this,e,o)}return this.path.length===e.path.length||(this.path.length>e.path.length?ac(this.path,t):ac(e.path,t))}hasSameParentAs(e){if(this.root!==e.root)return!1;return"same"==se(this.getParentPath(),e.getParentPath())}getTransformedByOperation(e){let t;switch(e.type){case"insert":t=this._getTransformedByInsertOperation(e);break;case"move":case"remove":case"reinsert":t=this._getTransformedByMoveOperation(e);break;case"split":t=this._getTransformedBySplitOperation(e);break;case"merge":t=this._getTransformedByMergeOperation(e);break;default:t=oc._createAt(this)}return t}_getTransformedByInsertOperation(e){return this._getTransformedByInsertion(e.position,e.howMany)}_getTransformedByMoveOperation(e){return this._getTransformedByMove(e.sourcePosition,e.targetPosition,e.howMany)}_getTransformedBySplitOperation(e){const t=e.movedRange;return t.containsPosition(this)||t.start.isEqual(this)&&"toNext"==this.stickiness?this._getCombined(e.splitPosition,e.moveTargetPosition):e.graveyardPosition?this._getTransformedByMove(e.graveyardPosition,e.insertionPosition,1):this._getTransformedByInsertion(e.insertionPosition,1)}_getTransformedByMergeOperation(e){const t=e.movedRange;let o;return t.containsPosition(this)||t.start.isEqual(this)?(o=this._getCombined(e.sourcePosition,e.targetPosition),e.sourcePosition.isBefore(e.targetPosition)&&(o=o._getTransformedByDeletion(e.deletionPosition,1))):o=this.isEqual(e.deletionPosition)?oc._createAt(e.deletionPosition):this._getTransformedByMove(e.deletionPosition,e.graveyardPosition,1),o}_getTransformedByDeletion(e,t){const o=oc._createAt(this);if(this.root!=e.root)return o;if("same"==se(e.getParentPath(),this.getParentPath())){if(e.offsetthis.offset)return null;o.offset-=t}}else if("prefix"==se(e.getParentPath(),this.getParentPath())){const n=e.path.length-1;if(e.offset<=this.path[n]){if(e.offset+t>this.path[n])return null;o.path[n]-=t}}return o}_getTransformedByInsertion(e,t){const o=oc._createAt(this);if(this.root!=e.root)return o;if("same"==se(e.getParentPath(),this.getParentPath()))(e.offset=t;){if(e.path[n]+i!==o.maxOffset)return!1;i=1,n--,o=o.parent}return!0}(e,o+1))}function ac(e,t){for(;tt+1;){const t=n.maxOffset-o.offset;0!==t&&e.push(new lc(o,o.getShiftedBy(t))),o.path=o.path.slice(0,-1),o.offset++,n=n.parent}for(;o.path.length<=this.end.path.length;){const t=this.end.path[o.path.length-1],n=t-o.offset;0!==n&&e.push(new lc(o,o.getShiftedBy(n))),o.offset=t,o.path.push(0)}return e}getWalker(e={}){return e.boundaries=this,new ec(e)}*getItems(e={}){e.boundaries=this,e.ignoreElementEnd=!0;const t=new ec(e);for(const e of t)yield e.item}*getPositions(e={}){e.boundaries=this;const t=new ec(e);yield t.position;for(const e of t)yield e.nextPosition}getTransformedByOperation(e){switch(e.type){case"insert":return this._getTransformedByInsertOperation(e);case"move":case"remove":case"reinsert":return this._getTransformedByMoveOperation(e);case"split":return[this._getTransformedBySplitOperation(e)];case"merge":return[this._getTransformedByMergeOperation(e)]}return[new lc(this.start,this.end)]}getTransformedByOperations(e){const t=[new lc(this.start,this.end)];for(const o of e)for(let e=0;e0?new this(o,n):new this(n,o)}static _createIn(e){return new this(oc._createAt(e,0),oc._createAt(e,e.maxOffset))}static _createOn(e){return this._createFromPositionAndShift(oc._createBefore(e),e.offsetSize)}static _createFromRanges(e){if(0===e.length)throw new S("range-create-from-ranges-empty-array",null);if(1==e.length)return e[0].clone();const t=e[0];e.sort(((e,t)=>e.start.isAfter(t.start)?1:-1));const o=e.indexOf(t),n=new this(t.start,t.end);for(let t=o-1;t>=0&&e[t].end.isEqual(n.start);t--)n.start=oc._createAt(e[t].start);for(let t=o+1;t{if(t.viewPosition)return;const o=this._modelToViewMapping.get(t.modelPosition.parent);if(!o)throw new S("mapping-model-position-view-parent-not-found",this,{modelPosition:t.modelPosition});t.viewPosition=this.findPositionIn(o,t.modelPosition.offset)}),{priority:"low"}),this.on("viewToModelPosition",((e,t)=>{if(t.modelPosition)return;const o=this.findMappedViewAncestor(t.viewPosition),n=this._viewToModelMapping.get(o),i=this._toModelOffset(t.viewPosition.parent,t.viewPosition.offset,o);t.modelPosition=oc._createAt(n,i)}),{priority:"low"})}bindElements(e,t){this._modelToViewMapping.set(e,t),this._viewToModelMapping.set(t,e)}unbindViewElement(e,t={}){const o=this.toModelElement(e);if(this._elementToMarkerNames.has(e))for(const t of this._elementToMarkerNames.get(e))this._unboundMarkerNames.add(t);if(t.defer)this._deferredBindingRemovals.set(e,e.root);else{this._viewToModelMapping.delete(e)&&this._cache.stopTracking(e),this._modelToViewMapping.get(o)==e&&this._modelToViewMapping.delete(o)}}unbindModelElement(e){const t=this.toViewElement(e);if(this._modelToViewMapping.delete(e),this._viewToModelMapping.get(t)==e){this._viewToModelMapping.delete(t)&&this._cache.stopTracking(t)}}bindElementToMarker(e,t){const o=this._markerNameToElements.get(t)||new Set;o.add(e);const n=this._elementToMarkerNames.get(e)||new Set;n.add(t),this._markerNameToElements.set(t,o),this._elementToMarkerNames.set(e,n)}unbindElementFromMarkerName(e,t){const o=this._markerNameToElements.get(t);o&&(o.delete(e),0==o.size&&this._markerNameToElements.delete(t));const n=this._elementToMarkerNames.get(e);n&&(n.delete(t),0==n.size&&this._elementToMarkerNames.delete(e))}flushUnboundMarkerNames(){const e=Array.from(this._unboundMarkerNames);return this._unboundMarkerNames.clear(),e}flushDeferredBindings(){for(const[e,t]of this._deferredBindingRemovals)e.root==t&&this.unbindViewElement(e);this._deferredBindingRemovals=new Map}clearBindings(){this._modelToViewMapping=new WeakMap,this._viewToModelMapping=new WeakMap,this._markerNameToElements=new Map,this._elementToMarkerNames=new Map,this._unboundMarkerNames=new Set,this._deferredBindingRemovals=new Map}toModelElement(e){return this._viewToModelMapping.get(e)}toViewElement(e){return this._modelToViewMapping.get(e)}toModelRange(e){return new lc(this.toModelPosition(e.start),this.toModelPosition(e.end))}toViewRange(e){return new Us(this.toViewPosition(e.start),this.toViewPosition(e.end))}toModelPosition(e){const t={viewPosition:e,mapper:this};return this.fire("viewToModelPosition",t),t.modelPosition}toViewPosition(e,t={}){const o={modelPosition:e,mapper:this,isPhantom:t.isPhantom};return this.fire("modelToViewPosition",o),o.viewPosition}markerNameToElements(e){const t=this._markerNameToElements.get(e);if(!t)return null;const o=new Set;for(const e of t)if(e.is("attributeElement"))for(const t of e.getElementsWithSameId())o.add(t);else o.add(e);return o}registerViewToModelLength(e,t){this._viewToModelLengthCallbacks.set(e,t)}findMappedViewAncestor(e){let t=e.parent;for(;!this._viewToModelMapping.has(t);)t=t.parent;return t}_toModelOffset(e,t,o){if(o!=e){return this._toModelOffset(e.parent,e.index,o)+this._toModelOffset(e,t,e)}if(e.is("$text"))return t;let n=0;for(let o=0;o0;){const e=t.pop(),n=e.name&&this._viewToModelLengthCallbacks.size>0&&this._viewToModelLengthCallbacks.get(e.name);if(n)o+=n(e);else if(this._viewToModelMapping.has(e))o+=1;else if(e.is("$text"))o+=e.data.length;else{if(e.is("uiElement"))continue;for(const o of e.getChildren())t.push(o)}}return o}findPositionIn(e,t){if(0===t)return this._moveViewPositionToTextNode(new $s(e,0));if(0==this._viewToModelLengthCallbacks.size&&this._viewToModelMapping.has(e)){const o=this._cache.getClosest(e,t);return this._findPositionStartingFrom(o.viewPosition,o.modelOffset,t,e,!0)}return this._findPositionStartingFrom(new $s(e,0),0,t,e,!1)}_findPositionStartingFrom(e,t,o,n,i){let r,s=e.parent,a=e.offset;if(s.is("$text"))return new $s(s,o-t);let l=t,c=0;for(;l{this._clearCacheInsideParent(t,o.index)},this._invalidateOnTextChangeCallback=(e,t)=>{this._clearCacheStartingBefore(t)}}save(e,t,o,n){const i=this._cachedMapping.get(o),r=i.cacheMap.get(n);if(r){const o=e.getChild(t-1),n=r.viewPosition.nodeBefore?this._nodeToCacheListIndex.get(r.viewPosition.nodeBefore):0;return void this._nodeToCacheListIndex.set(o,n)}const s={viewPosition:new $s(e,t),modelOffset:n};i.maxModelOffset=n>i.maxModelOffset?n:i.maxModelOffset,i.cacheMap.set(n,s);let a=i.cacheList.length-1;for(;a>=0&&i.cacheList[a].modelOffset>n;)a--;if(i.cacheList.splice(a+1,0,s),t>0){const o=e.getChild(t-1);this._nodeToCacheListIndex.set(o,a+1)}}getClosest(e,t){const o=this._cachedMapping.get(e);let n;if(o)if(t>o.maxModelOffset)n=o.cacheList[o.cacheList.length-1];else{const e=o.cacheMap.get(t);n=e||this._findInCacheList(o.cacheList,t)}else n=this.startTracking(e);const i=this._hoistViewPosition(n.viewPosition);return{modelOffset:n.modelOffset,viewPosition:i}}_hoistViewPosition(e){for(;e.parent.parent&&!this._cachedMapping.has(e.parent)&&e.isAtEnd;){const t=e.parent.parent,o=t.getChildIndex(e.parent)+1;e=new $s(t,o)}return e}startTracking(e){const t={viewPosition:new $s(e,0),modelOffset:0},o={maxModelOffset:0,cacheList:[t],cacheMap:new Map([[0,t]])};return this._cachedMapping.set(e,o),e.on("change:children",this._invalidateOnChildrenChangeCallback),e.on("change:text",this._invalidateOnTextChangeCallback),t}stopTracking(e){e.off("change:children",this._invalidateOnChildrenChangeCallback),e.off("change:text",this._invalidateOnTextChangeCallback),this._cachedMapping.delete(e)}_clearCacheInsideParent(e,t){if(0==t)this._cachedMapping.has(e)?this._clearCacheAll(e):this._clearCacheStartingBefore(e);else{const o=e.getChild(t-1);this._clearCacheStartingBefore(o)}}_clearCacheAll(e){const t=this._cachedMapping.get(e);t.maxModelOffset>0&&(t.maxModelOffset=0,t.cacheList.length=1,t.cacheMap.clear(),t.cacheMap.set(0,t.cacheList[0]))}_clearCacheStartingBefore(e){const t=this._nodeToCacheListIndex.get(e);if(void 0===t){const t=e.parent;return void(this._cachedMapping.has(t)||this._clearCacheStartingBefore(t))}let o=e.parent;for(;!this._cachedMapping.has(o);)o=o.parent;this._clearCacheFromIndex(o,t)}_clearCacheFromIndex(e,t){0===t&&(t=1);const o=this._cachedMapping.get(e),n=o.cacheList[t-1];if(!n)return;o.maxModelOffset=n.modelOffset;const i=o.cacheList.splice(t);for(const e of i){o.cacheMap.delete(e.modelOffset);const t=e.viewPosition.nodeBefore;this._nodeToCacheListIndex.delete(t)}}_findInCacheList(e,t){let o=0,n=e.length-1,i=n-o>>1,r=e[i];for(;o>1),r=e[i];return r.modelOffset<=t?r:e[i-1]}}class uc{constructor(){this._consumable=new Map,this._textProxyRegistry=new Map}add(e,t){t=hc(t),e instanceof Xl&&(e=this._getSymbolForTextProxy(e)),this._consumable.has(e)||this._consumable.set(e,new Map),this._consumable.get(e).set(t,!0)}consume(e,t){return t=hc(t),e instanceof Xl&&(e=this._getSymbolForTextProxy(e)),!!this.test(e,t)&&(this._consumable.get(e).set(t,!1),!0)}test(e,t){t=hc(t),e instanceof Xl&&(e=this._getSymbolForTextProxy(e));const o=this._consumable.get(e);if(void 0===o)return null;const n=o.get(t);return void 0===n?null:n}revert(e,t){t=hc(t),e instanceof Xl&&(e=this._getSymbolForTextProxy(e));const o=this.test(e,t);return!1===o?(this._consumable.get(e).set(t,!0),!0):!0!==o&&null}verifyAllConsumed(e){const t=[];for(const[o,n]of this._consumable)for(const[i,r]of n){const n=i.split(":")[0];r&&e==n&&t.push({event:i,item:o.name||o.description})}if(t.length)throw new S("conversion-model-consumable-not-consumed",null,{items:t})}_getSymbolForTextProxy(e){let t=null;const o=this._textProxyRegistry.get(e.startOffset);if(o){const n=o.get(e.endOffset);n&&(t=n.get(e.parent))}return t||(t=this._addSymbolForTextProxy(e)),t}_addSymbolForTextProxy(e){const t=e.startOffset,o=e.endOffset,n=e.parent,i=Symbol("$textProxy:"+e.data);let r,s;return r=this._textProxyRegistry.get(t),r||(r=new Map,this._textProxyRegistry.set(t,r)),s=r.get(o),s||(s=new Map,r.set(o,s)),s.set(n,i),i}}function hc(e){const t=e.split(":");return"insert"==t[0]?t[0]:"addMarker"==t[0]||"removeMarker"==t[0]?e:t.length>1?t[0]+":"+t[1]:t[0]}class pc extends(V()){constructor(e){super(),this._conversionApi={dispatcher:this,...e},this._firedEventsMap=new WeakMap}convertChanges(e,t,o){const n=this._createConversionApi(o,e.getRefreshedItems());for(const t of e.getMarkersToRemove())this._convertMarkerRemove(t.name,t.range,n);const i=this._reduceChanges(e.getChanges());for(const e of i)"insert"===e.type?this._convertInsert(lc._createFromPositionAndShift(e.position,e.length),n):"reinsert"===e.type?this._convertReinsert(lc._createFromPositionAndShift(e.position,e.length),n):"remove"===e.type?this._convertRemove(e.position,e.length,e.name,n):this._convertAttribute(e.range,e.attributeKey,e.attributeOldValue,e.attributeNewValue,n);n.mapper.flushDeferredBindings();for(const e of n.mapper.flushUnboundMarkerNames()){const o=t.get(e).getRange();this._convertMarkerRemove(e,o,n),this._convertMarkerAdd(e,o,n)}for(const t of e.getMarkersToAdd())this._convertMarkerAdd(t.name,t.range,n);n.consumable.verifyAllConsumed("insert")}convert(e,t,o,n={}){const i=this._createConversionApi(o,void 0,n);this._convertInsert(e,i);for(const[e,o]of t)this._convertMarkerAdd(e,o,i);i.consumable.verifyAllConsumed("insert")}convertSelection(e,t,o){const n=this._createConversionApi(o);this.fire("cleanSelection",{selection:e},n);const i=e.getFirstPosition().root;if(!n.mapper.toViewElement(i))return;const r=Array.from(t.getMarkersAtPosition(e.getFirstPosition()));if(this._addConsumablesForSelection(n.consumable,e,r),this.fire("selection",{selection:e},n),e.isCollapsed){for(const t of r)if(n.consumable.test(e,"addMarker:"+t.name)){const o=t.getRange();if(!mc(e.getFirstPosition(),t,n.mapper))continue;const i={item:e,markerName:t.name,markerRange:o};this.fire(`addMarker:${t.name}`,i,n)}for(const t of e.getAttributeKeys())if(n.consumable.test(e,"attribute:"+t)){const o={item:e,range:e.getFirstRange(),attributeKey:t,attributeOldValue:null,attributeNewValue:e.getAttribute(t)};this.fire(`attribute:${t}:$text`,o,n)}}}_convertInsert(e,t,o={}){o.doNotAddConsumables||this._addConsumablesForInsert(t.consumable,e);for(const o of e.getWalker({shallow:!0}))this._testAndFire("insert",gc(o),t)}_convertRemove(e,t,o,n){this.fire(`remove:${o}`,{position:e,length:t},n)}_convertAttribute(e,t,o,n,i){this._addConsumablesForRange(i.consumable,e,`attribute:${t}`);for(const r of e){const e={item:r.item,range:lc._createFromPositionAndShift(r.previousPosition,r.length),attributeKey:t,attributeOldValue:o,attributeNewValue:n};this._testAndFire(`attribute:${t}`,e,i)}}_convertReinsert(e,t){const o=Array.from(e.getWalker({shallow:!0}));this._addConsumablesForInsert(t.consumable,o);for(const e of o.map(gc))this._testAndFire("insert",{...e,reconversion:!0},t)}_convertMarkerAdd(e,t,o){if("$graveyard"==t.root.rootName)return;const n=`addMarker:${e}`;if(o.consumable.add(t,n),this.fire(n,{markerName:e,markerRange:t},o),o.consumable.consume(t,n)){this._addConsumablesForRange(o.consumable,t,n);for(const i of t.getItems()){if(!o.consumable.test(i,n))continue;const r={item:i,range:lc._createOn(i),markerName:e,markerRange:t};this.fire(n,r,o)}}}_convertMarkerRemove(e,t,o){"$graveyard"!=t.root.rootName&&this.fire(`removeMarker:${e}`,{markerName:e,markerRange:t},o)}_reduceChanges(e){const t={changes:e};return this.fire("reduceChanges",t),t.changes}_addConsumablesForInsert(e,t){for(const o of t){const t=o.item;if(null===e.test(t,"insert")){e.add(t,"insert");for(const o of t.getAttributeKeys())e.add(t,"attribute:"+o)}}return e}_addConsumablesForRange(e,t,o){for(const n of t.getItems())e.add(n,o);return e}_addConsumablesForSelection(e,t,o){e.add(t,"selection");for(const n of o)e.add(t,"addMarker:"+n.name);for(const o of t.getAttributeKeys())e.add(t,"attribute:"+o);return e}_testAndFire(e,t,o){const n=function(e,t){const o=t.item.is("element")?t.item.name:"$text";return`${e}:${o}`}(e,t),i=t.item.is("$textProxy")?o.consumable._getSymbolForTextProxy(t.item):t.item,r=this._firedEventsMap.get(o),s=r.get(i);if(s){if(s.has(n))return;s.add(n)}else r.set(i,new Set([n]));this.fire(n,t,o)}_testAndFireAddAttributes(e,t){const o={item:e,range:lc._createOn(e)};for(const e of o.item.getAttributeKeys())o.attributeKey=e,o.attributeOldValue=null,o.attributeNewValue=o.item.getAttribute(e),this._testAndFire(`attribute:${e}`,o,t)}_createConversionApi(e,t=new Set,o={}){const n={...this._conversionApi,consumable:new uc,writer:e,options:o,convertItem:e=>this._convertInsert(lc._createOn(e),n),convertChildren:e=>this._convertInsert(lc._createIn(e),n,{doNotAddConsumables:!0}),convertAttributes:e=>this._testAndFireAddAttributes(e,n),canReuseView:e=>!t.has(n.mapper.toModelElement(e))};return this._firedEventsMap.set(n,new Map),n}}function mc(e,t,o){const n=t.getRange(),i=Array.from(e.getAncestors());i.shift(),i.reverse();return!i.some((e=>{if(n.containsItem(e)){return!!o.toViewElement(e).getCustomProperty("addHighlight")}}))}function gc(e){return{item:e.item,range:lc._createFromPositionAndShift(e.previousPosition,e.length)}}class fc extends Ql{constructor(e){super(),this.parent=null,this._index=null,this._startOffset=null,this._attrs=lr(e)}get document(){return null}get index(){return this._index}get startOffset(){return this._startOffset}get offsetSize(){return 1}get endOffset(){return null===this.startOffset?null:this.startOffset+this.offsetSize}get nextSibling(){const e=this.index;return null!==e&&this.parent.getChild(e+1)||null}get previousSibling(){const e=this.index;return null!==e&&this.parent.getChild(e-1)||null}get root(){let e=this;for(;e.parent;)e=e.parent;return e}isAttached(){return null!==this.parent&&this.root.isAttached()}getPath(){const e=[];let t=this;for(;t.parent;)e.unshift(t.startOffset),t=t.parent;return e}getAncestors(e={}){const t=[];let o=e.includeSelf?this:this.parent;for(;o;)t[e.parentFirst?"push":"unshift"](o),o=o.parent;return t}getCommonAncestor(e,t={}){const o=this.getAncestors(t),n=e.getAncestors(t);let i=0;for(;o[i]==n[i]&&o[i];)i++;return 0===i?null:o[i-1]}isBefore(e){if(this==e)return!1;if(this.root!==e.root)return!1;const t=this.getPath(),o=e.getPath(),n=se(t,o);switch(n){case"prefix":return!0;case"extension":return!1;default:return t[n](e[t[0]]=t[1],e)),{})),e}_clone(e){return new this.constructor(this._attrs)}_remove(){this.parent._removeChildren(this.index)}_setAttribute(e,t){this._attrs.set(e,t)}_setAttributesTo(e){this._attrs=lr(e)}_removeAttribute(e){return this._attrs.delete(e)}_clearAttributes(){this._attrs.clear()}}fc.prototype.is=function(e){return"node"===e||"model:node"===e};class bc extends(V(Ql)){constructor(...e){super(),this._lastRangeBackward=!1,this._attrs=new Map,this._ranges=[],e.length&&this.setTo(...e)}get anchor(){if(this._ranges.length>0){const e=this._ranges[this._ranges.length-1];return this._lastRangeBackward?e.end:e.start}return null}get focus(){if(this._ranges.length>0){const e=this._ranges[this._ranges.length-1];return this._lastRangeBackward?e.start:e.end}return null}get isCollapsed(){return 1===this._ranges.length&&this._ranges[0].isCollapsed}get rangeCount(){return this._ranges.length}get isBackward(){return!this.isCollapsed&&this._lastRangeBackward}isEqual(e){if(this.rangeCount!=e.rangeCount)return!1;if(0===this.rangeCount)return!0;if(!this.anchor.isEqual(e.anchor)||!this.focus.isEqual(e.focus))return!1;for(const t of this._ranges){let o=!1;for(const n of e._ranges)if(t.isEqual(n)){o=!0;break}if(!o)return!1}return!0}*getRanges(){for(const e of this._ranges)yield new lc(e.start,e.end)}getFirstRange(){let e=null;for(const t of this._ranges)e&&!t.start.isBefore(e.start)||(e=t);return e?new lc(e.start,e.end):null}getLastRange(){let e=null;for(const t of this._ranges)e&&!t.end.isAfter(e.end)||(e=t);return e?new lc(e.start,e.end):null}getFirstPosition(){const e=this.getFirstRange();return e?e.start.clone():null}getLastPosition(){const e=this.getLastRange();return e?e.end.clone():null}setTo(...e){let[t,o,n]=e;if("object"==typeof o&&(n=o,o=void 0),null===t)this._setRanges([]);else if(t instanceof bc)this._setRanges(t.getRanges(),t.isBackward);else if(t&&"function"==typeof t.getRanges)this._setRanges(t.getRanges(),t.isBackward);else if(t instanceof lc)this._setRanges([t],!!n&&!!n.backward);else if(t instanceof oc)this._setRanges([new lc(t)]);else if(t instanceof fc){const e=!!n&&!!n.backward;let i;if("in"==o)i=lc._createIn(t);else if("on"==o)i=lc._createOn(t);else{if(void 0===o)throw new S("model-selection-setto-required-second-parameter",[this,t]);i=new lc(oc._createAt(t,o))}this._setRanges([i],e)}else{if(!ae(t))throw new S("model-selection-setto-not-selectable",[this,t]);this._setRanges(t,n&&!!n.backward)}}_setRanges(e,t=!1){const o=Array.from(e),n=o.some((t=>{if(!(t instanceof lc))throw new S("model-selection-set-ranges-not-range",[this,e]);return this._ranges.every((e=>!e.isEqual(t)))}));(o.length!==this._ranges.length||n)&&(this._replaceAllRanges(o),this._lastRangeBackward=!!t,this.fire("change:range",{directChange:!0}))}setFocus(e,t){if(null===this.anchor)throw new S("model-selection-setfocus-no-ranges",[this,e]);const o=oc._createAt(e,t);if("same"==o.compareWith(this.focus))return;const n=this.anchor;this._ranges.length&&this._popRange(),"before"==o.compareWith(n)?(this._pushRange(new lc(o,n)),this._lastRangeBackward=!0):(this._pushRange(new lc(n,o)),this._lastRangeBackward=!1),this.fire("change:range",{directChange:!0})}getAttribute(e){return this._attrs.get(e)}getAttributes(){return this._attrs.entries()}getAttributeKeys(){return this._attrs.keys()}hasAttribute(e){return this._attrs.has(e)}removeAttribute(e){this.hasAttribute(e)&&(this._attrs.delete(e),this.fire("change:attribute",{attributeKeys:[e],directChange:!0}))}setAttribute(e,t){this.getAttribute(e)!==t&&(this._attrs.set(e,t),this.fire("change:attribute",{attributeKeys:[e],directChange:!0}))}getSelectedElement(){return 1!==this.rangeCount?null:this.getFirstRange().getContainedElement()}*getSelectedBlocks(){const e=new WeakSet;for(const t of this.getRanges()){const o=_c(t.start,e);Ac(o,t)&&(yield o);const n=t.getWalker();for(const o of n){const i=o.item;"elementEnd"==o.type&&wc(i,e,t)?yield i:"elementStart"==o.type&&i.is("model:element")&&i.root.document.model.schema.isBlock(i)&&n.jumpTo(oc._createAt(i,"end"))}const i=_c(t.end,e);Cc(i,t)&&(yield i)}}containsEntireContent(e=this.anchor.root){const t=oc._createAt(e,0),o=oc._createAt(e,"end");return t.isTouching(this.getFirstPosition())&&o.isTouching(this.getLastPosition())}_pushRange(e){this._checkRange(e),this._ranges.push(new lc(e.start,e.end))}_checkRange(e){for(let t=0;t0;)this._popRange()}_popRange(){this._ranges.pop()}}function kc(e,t){return!t.has(e)&&(t.add(e),e.root.document.model.schema.isBlock(e)&&!!e.parent)}function wc(e,t,o){return kc(e,t)&&yc(e,o)}function _c(e,t){const o=e.parent.root.document.model.schema,n=e.parent.getAncestors({parentFirst:!0,includeSelf:!0});let i=!1;const r=n.find((e=>!i&&(i=o.isLimit(e),!i&&kc(e,t))));return n.forEach((e=>t.add(e))),r}function yc(e,t){const o=function(e){const t=e.root.document.model.schema;let o=e.parent;for(;o;){if(t.isBlock(o))return o;o=o.parent}}(e);if(!o)return!0;return!t.containsRange(lc._createOn(o),!0)}function Ac(e,t){return!!e&&(!(!t.isCollapsed&&!e.isEmpty)||!t.start.isTouching(oc._createAt(e,e.maxOffset))&&yc(e,t))}function Cc(e,t){return!!e&&(!(!t.isCollapsed&&!e.isEmpty)||!t.end.isTouching(oc._createAt(e,0))&&yc(e,t))}bc.prototype.is=function(e){return"selection"===e||"model:selection"===e};class vc extends(V(lc)){constructor(e,t){super(e,t),xc.call(this)}detach(){this.stopListening()}toRange(){return new lc(this.start,this.end)}static fromRange(e){return new vc(e.start,e.end)}}function xc(){this.listenTo(this.root.document.model,"applyOperation",((e,t)=>{const o=t[0];o.isDocumentOperation&&Ec.call(this,o)}),{priority:"low"})}function Ec(e){const t=this.getTransformedByOperation(e),o=lc._createFromRanges(t),n=!o.isEqual(this),i=function(e,t){switch(t.type){case"insert":return e.containsPosition(t.position);case"move":case"remove":case"reinsert":case"merge":return e.containsPosition(t.sourcePosition)||e.start.isEqual(t.sourcePosition)||e.containsPosition(t.targetPosition);case"split":return e.containsPosition(t.splitPosition)||e.containsPosition(t.insertionPosition)}return!1}(this,e);let r=null;if(n){"$graveyard"==o.root.rootName&&(r="remove"==e.type?e.sourcePosition:e.deletionPosition);const t=this.toRange();this.start=o.start,this.end=o.end,this.fire("change:range",t,{deletionPosition:r})}else i&&this.fire("change:content",this.toRange(),{deletionPosition:r})}vc.prototype.is=function(e){return"liveRange"===e||"model:liveRange"===e||"range"==e||"model:range"===e};class Dc extends fc{constructor(e,t){super(t),this._data=e||""}get offsetSize(){return this.data.length}get data(){return this._data}toJSON(){const e=super.toJSON();return e.data=this.data,e}_clone(){return new Dc(this.data,this.getAttributes())}static fromJSON(e){return new Dc(e.data,e.attributes)}}Dc.prototype.is=function(e){return"$text"===e||"model:$text"===e||"text"===e||"model:text"===e||"node"===e||"model:node"===e};const Bc="selection:";class Sc extends(V(Ql)){constructor(e){super(),this._selection=new Tc(e),this._selection.delegate("change:range").to(this),this._selection.delegate("change:attribute").to(this),this._selection.delegate("change:marker").to(this)}get isCollapsed(){return this._selection.isCollapsed}get anchor(){return this._selection.anchor}get focus(){return this._selection.focus}get rangeCount(){return this._selection.rangeCount}get hasOwnRange(){return this._selection.hasOwnRange}get isBackward(){return this._selection.isBackward}get isGravityOverridden(){return this._selection.isGravityOverridden}get markers(){return this._selection.markers}get _ranges(){return this._selection._ranges}getRanges(){return this._selection.getRanges()}getFirstPosition(){return this._selection.getFirstPosition()}getLastPosition(){return this._selection.getLastPosition()}getFirstRange(){return this._selection.getFirstRange()}getLastRange(){return this._selection.getLastRange()}getSelectedBlocks(){return this._selection.getSelectedBlocks()}getSelectedElement(){return this._selection.getSelectedElement()}containsEntireContent(e){return this._selection.containsEntireContent(e)}destroy(){this._selection.destroy()}getAttributeKeys(){return this._selection.getAttributeKeys()}getAttributes(){return this._selection.getAttributes()}getAttribute(e){return this._selection.getAttribute(e)}hasAttribute(e){return this._selection.hasAttribute(e)}refresh(){this._selection.updateMarkers(),this._selection._updateAttributes(!1)}observeMarkers(e){this._selection.observeMarkers(e)}_setFocus(e,t){this._selection.setFocus(e,t)}_setTo(...e){this._selection.setTo(...e)}_setAttribute(e,t){this._selection.setAttribute(e,t)}_removeAttribute(e){this._selection.removeAttribute(e)}_getStoredAttributes(){return this._selection.getStoredAttributes()}_overrideGravity(){return this._selection.overrideGravity()}_restoreGravity(e){this._selection.restoreGravity(e)}static _getStoreAttributeKey(e){return Bc+e}static _isStoreAttributeKey(e){return e.startsWith(Bc)}}Sc.prototype.is=function(e){return"selection"===e||"model:selection"==e||"documentSelection"==e||"model:documentSelection"==e};class Tc extends bc{constructor(e){super(),this.markers=new tr({idProperty:"name"}),this._attributePriority=new Map,this._selectionRestorePosition=null,this._hasChangedRange=!1,this._overriddenGravityRegister=new Set,this._observedMarkers=new Set,this._model=e.model,this._document=e,this.listenTo(this._model,"applyOperation",((e,t)=>{const o=t[0];o.isDocumentOperation&&"marker"!=o.type&&"rename"!=o.type&&"noop"!=o.type&&(0==this._ranges.length&&this._selectionRestorePosition&&this._fixGraveyardSelection(this._selectionRestorePosition),this._selectionRestorePosition=null,this._hasChangedRange&&(this._hasChangedRange=!1,this.fire("change:range",{directChange:!1})))}),{priority:"lowest"}),this.on("change:range",(()=>{this._validateSelectionRanges(this.getRanges())})),this.listenTo(this._model.markers,"update",((e,t,o,n)=>{this._updateMarker(t,n)})),this.listenTo(this._document,"change",((e,t)=>{!function(e,t){const o=e.document.differ;for(const n of o.getChanges()){if("insert"!=n.type)continue;const o=n.position.parent;n.length===o.maxOffset&&e.enqueueChange(t,(e=>{const t=Array.from(o.getAttributeKeys()).filter((e=>e.startsWith(Bc)));for(const n of t)e.removeAttribute(n,o)}))}}(this._model,t)}))}get isCollapsed(){return 0===this._ranges.length?this._document._getDefaultRange().isCollapsed:super.isCollapsed}get anchor(){return super.anchor||this._document._getDefaultRange().start}get focus(){return super.focus||this._document._getDefaultRange().end}get rangeCount(){return this._ranges.length?this._ranges.length:1}get hasOwnRange(){return this._ranges.length>0}get isGravityOverridden(){return!!this._overriddenGravityRegister.size}destroy(){for(let e=0;e{if(this._hasChangedRange=!0,t.root==this._document.graveyard){this._selectionRestorePosition=n.deletionPosition;const e=this._ranges.indexOf(t);this._ranges.splice(e,1),t.detach()}})),t}updateMarkers(){if(!this._observedMarkers.size)return;const e=[];let t=!1;for(const t of this._model.markers){const o=t.name.split(":",1)[0];if(!this._observedMarkers.has(o))continue;const n=t.getRange();for(const o of this.getRanges())n.containsRange(o,!o.isCollapsed)&&e.push(t)}const o=Array.from(this.markers);for(const o of e)this.markers.has(o)||(this.markers.add(o),t=!0);for(const o of Array.from(this.markers))e.includes(o)||(this.markers.remove(o),t=!0);t&&this.fire("change:marker",{oldMarkers:o,directChange:!1})}_updateMarker(e,t){const o=e.name.split(":",1)[0];if(!this._observedMarkers.has(o))return;let n=!1;const i=Array.from(this.markers),r=this.markers.has(e);if(t){let o=!1;for(const e of this.getRanges())if(t.containsRange(e,!e.isCollapsed)){o=!0;break}o&&!r?(this.markers.add(e),n=!0):!o&&r&&(this.markers.remove(e),n=!0)}else r&&(this.markers.remove(e),n=!0);n&&this.fire("change:marker",{oldMarkers:i,directChange:!1})}_updateAttributes(e){const t=lr(this._getSurroundingAttributes()),o=lr(this.getAttributes());if(e)this._attributePriority=new Map,this._attrs=new Map;else for(const[e,t]of this._attributePriority)"low"==t&&(this._attrs.delete(e),this._attributePriority.delete(e));this._setAttributesTo(t);const n=[];for(const[e,t]of this.getAttributes())o.has(e)&&o.get(e)===t||n.push(e);for(const[e]of o)this.hasAttribute(e)||n.push(e);n.length>0&&this.fire("change:attribute",{attributeKeys:n,directChange:!1})}_setAttribute(e,t,o=!0){const n=o?"normal":"low";if("low"==n&&"normal"==this._attributePriority.get(e))return!1;return super.getAttribute(e)!==t&&(this._attrs.set(e,t),this._attributePriority.set(e,n),!0)}_removeAttribute(e,t=!0){const o=t?"normal":"low";return("low"!=o||"normal"!=this._attributePriority.get(e))&&(this._attributePriority.set(e,o),!!super.hasAttribute(e)&&(this._attrs.delete(e),!0))}_setAttributesTo(e){const t=new Set;for(const[t,o]of this.getAttributes())e.get(t)!==o&&this._removeAttribute(t,!1);for(const[o,n]of e){this._setAttribute(o,n,!1)&&t.add(o)}return t}*getStoredAttributes(){const e=this.getFirstPosition().parent;if(this.isCollapsed&&e.isEmpty)for(const t of e.getAttributeKeys())if(t.startsWith(Bc)){const o=t.substr(10);yield[o,e.getAttribute(t)]}}_getSurroundingAttributes(){const e=this.getFirstPosition(),t=this._model.schema;if("$graveyard"==e.root.rootName)return null;let o=null;if(this.isCollapsed){const n=e.textNode?e.textNode:e.nodeBefore,i=e.textNode?e.textNode:e.nodeAfter;if(this.isGravityOverridden||(o=Ic(n,t)),o||(o=Ic(i,t)),!this.isGravityOverridden&&!o){let e=n;for(;e&&!o;)e=e.previousSibling,o=Ic(e,t)}if(!o){let e=i;for(;e&&!o;)e=e.nextSibling,o=Ic(e,t)}o||(o=this.getStoredAttributes())}else{const e=this.getFirstRange();for(const n of e){if(n.item.is("element")&&t.isObject(n.item)){o=Ic(n.item,t);break}if("text"==n.type){o=n.item.getAttributes();break}}}return o}_fixGraveyardSelection(e){const t=this._model.schema.getNearestSelectionRange(e);t&&this._pushRange(t)}}function Ic(e,t){if(!e)return null;if(e instanceof Xl||e instanceof Dc)return e.getAttributes();if(!t.isInline(e))return null;if(!t.isObject(e))return[];const o=[];for(const[n,i]of e.getAttributes())t.checkAttribute("$text",n)&&!1!==t.getAttributeProperties(n).copyFromObject&&o.push([n,i]);return o}class Pc{constructor(e){this._nodes=[],this._offsetToNode=[],e&&this._insertNodes(0,e)}[Symbol.iterator](){return this._nodes[Symbol.iterator]()}get length(){return this._nodes.length}get maxOffset(){return this._offsetToNode.length}getNode(e){return this._nodes[e]||null}getNodeAtOffset(e){return this._offsetToNode[e]||null}getNodeIndex(e){return e.index}getNodeStartOffset(e){return e.startOffset}indexToOffset(e){if(e==this._nodes.length)return this.maxOffset;const t=this._nodes[e];if(!t)throw new S("model-nodelist-index-out-of-bounds",this);return this.getNodeStartOffset(t)}offsetToIndex(e){if(e==this._offsetToNode.length)return this._nodes.length;const t=this._offsetToNode[e];if(!t)throw new S("model-nodelist-offset-out-of-bounds",this,{offset:e,nodeList:this});return this.getNodeIndex(t)}_insertNodes(e,t){const o=[];for(const e of t){if(!(e instanceof fc))throw new S("model-nodelist-insertnodes-not-node",this);o.push(e)}let n=this.indexToOffset(e);cr(this._nodes,o,e),cr(this._offsetToNode,function(e){const t=[];let o=0;for(const n of e)for(let e=0;enull!==e.index)),this._offsetToNode=this._offsetToNode.filter((e=>null!==e.index));let t=0;for(let e=0;ee.toJSON()))}}class Fc extends fc{constructor(e,t,o){super(t),this._children=new Pc,this.name=e,o&&this._insertChild(0,o)}get childCount(){return this._children.length}get maxOffset(){return this._children.maxOffset}get isEmpty(){return 0===this.childCount}getChild(e){return this._children.getNode(e)}getChildAtOffset(e){return this._children.getNodeAtOffset(e)}getChildren(){return this._children[Symbol.iterator]()}getChildIndex(e){return this._children.getNodeIndex(e)}getChildStartOffset(e){return this._children.getNodeStartOffset(e)}offsetToIndex(e){return this._children.offsetToIndex(e)}getNodeByPath(e){let t=this;for(const o of e)t=t.getChildAtOffset(o);return t}findAncestor(e,t={}){let o=t.includeSelf?this:this.parent;for(;o;){if(o.name===e)return o;o=o.parent}return null}toJSON(){const e=super.toJSON();if(e.name=this.name,this._children.length>0){e.children=[];for(const t of this._children)e.children.push(t.toJSON())}return e}_clone(e=!1){const t=e?function(e){const t=[];for(const o of e)t.push(o._clone(!0));return t}(this._children):void 0;return new Fc(this.name,this.getAttributes(),t)}_appendChild(e){this._insertChild(this.childCount,e)}_insertChild(e,t){const o=function(e){if("string"==typeof e)return[new Dc(e)];ae(e)||(e=[e]);const t=[];for(const o of e)"string"==typeof o?t.push(new Dc(o)):o instanceof Xl?t.push(new Dc(o.data,o.getAttributes())):t.push(o);return t}(t);for(const e of o)null!==e.parent&&e._remove(),e.parent=this;this._children._insertNodes(e,o)}_removeChildren(e,t=1){const o=this._children._removeNodes(e,t);for(const e of o)e.parent=null;return o}_removeChildrenArray(e){this._children._removeNodesArray(e);for(const t of e)t.parent=null}static fromJSON(e){let t;if(e.children){t=[];for(const o of e.children)o.name?t.push(Fc.fromJSON(o)):t.push(Dc.fromJSON(o))}return new Fc(e.name,e.attributes,t)}}Fc.prototype.is=function(e,t){return t?t===this.name&&("element"===e||"model:element"===e):"element"===e||"model:element"===e||"node"===e||"model:node"===e};class Rc{constructor(e){this._dispatchers=e}add(e){for(const t of this._dispatchers)e(t);return this}}class Mc extends Rc{elementToElement(e){return this.add(function(e){const t=Hc(e.model),o=jc(e.view,"container");t.attributes.length&&(t.children=!0);return n=>{n.on(`insert:${t.name}`,Nc(o,Gc(t)),{priority:e.converterPriority||"normal"}),(t.children||t.attributes.length)&&n.on("reduceChanges",Wc(t),{priority:"low"})}}(e))}elementToStructure(e){return this.add(function(e){const t=Hc(e.model),o=jc(e.view,"container");return t.children=!0,n=>{if(n._conversionApi.schema.checkChild(t.name,"$text"))throw new S("conversion-element-to-structure-disallowed-text",n,{elementName:t.name});var i,r;n.on(`insert:${t.name}`,(i=o,r=Gc(t),(e,t,o)=>{if(!r(t.item,o.consumable,{preflight:!0}))return;const n=new Map;o.writer._registerSlotFactory(function(e,t,o){return(n,i)=>{const r=n.createContainerElement("$slot");let s=null;if("children"===i)s=Array.from(e.getChildren());else{if("function"!=typeof i)throw new S("conversion-slot-mode-unknown",o.dispatcher,{modeOrFilter:i});s=Array.from(e.getChildren()).filter((e=>i(e)))}return t.set(r,s),r}}(t.item,n,o));const s=i(t.item,o,t);if(o.writer._clearSlotFactory(),!s)return;!function(e,t,o){const n=Array.from(t.values()).flat(),i=new Set(n);if(i.size!=n.length)throw new S("conversion-slot-filter-overlap",o.dispatcher,{element:e});if(i.size!=e.childCount)throw new S("conversion-slot-filter-incomplete",o.dispatcher,{element:e})}(t.item,n,o),r(t.item,o.consumable);const a=o.mapper.toViewPosition(t.range.start);o.mapper.bindElements(t.item,s),o.writer.insert(a,s),o.convertAttributes(t.item),function(e,t,o,n){o.mapper.on("modelToViewPosition",s,{priority:"highest"});let i=null,r=null;for([i,r]of t)Kc(e,r,o,n),o.writer.move(o.writer.createRangeIn(i),o.writer.createPositionBefore(i)),o.writer.remove(i);function s(e,t){const o=t.modelPosition.nodeAfter,n=r.indexOf(o);n<0||(t.viewPosition=t.mapper.findPositionIn(i,n))}o.mapper.off("modelToViewPosition",s)}(s,n,o,{reconversion:t.reconversion})}),{priority:e.converterPriority||"normal"}),n.on("reduceChanges",Wc(t),{priority:"low"})}}(e))}attributeToElement(e){return this.add(function(e){e=Jl(e);let t=e.model;"string"==typeof t&&(t={key:t});let o=`attribute:${t.key}`;t.name&&(o+=":"+t.name);if(t.values)for(const o of t.values)e.view[o]=jc(e.view[o],"attribute");else e.view=jc(e.view,"attribute");const n=qc(e);return t=>{t.on(o,Oc(n),{priority:e.converterPriority||"normal"})}}(e))}attributeToAttribute(e){return this.add(function(e){e=Jl(e);let t=e.model;"string"==typeof t&&(t={key:t});let o=`attribute:${t.key}`;t.name&&(o+=":"+t.name);if(t.values)for(const o of t.values)e.view[o]=$c(e.view[o]);else e.view=$c(e.view);const n=qc(e);return t=>{var i;t.on(o,(i=n,(e,t,o)=>{if(!o.consumable.test(t.item,e.name))return;const n=i(t.attributeOldValue,o,t),r=i(t.attributeNewValue,o,t);if(!n&&!r)return;o.consumable.consume(t.item,e.name);const s=o.mapper.toViewElement(t.item),a=o.writer;if(!s)throw new S("conversion-attribute-to-attribute-on-text",o.dispatcher,t);if(null!==t.attributeOldValue&&n){let e=n.value;"style"==n.key&&(e="string"==typeof n.value?new Ts(a.document.stylesProcessor).setTo(n.value).getStylesEntries().map((([e])=>e)):Object.keys(n.value)),a.removeAttribute(n.key,e,s)}if(null!==t.attributeNewValue&&r){let e=r.value;"style"==r.key&&"string"==typeof r.value&&(e=Object.fromEntries(new Ts(a.document.stylesProcessor).setTo(r.value).getStylesEntries())),a.setAttribute(r.key,e,!1,s)}}),{priority:e.converterPriority||"normal"})}}(e))}markerToElement(e){return this.add(function(e){const t=jc(e.view,"ui");return o=>{o.on(`addMarker:${e.model}`,Vc(t),{priority:e.converterPriority||"normal"}),o.on(`removeMarker:${e.model}`,((e,t,o)=>{const n=o.mapper.markerNameToElements(t.markerName);if(n){for(const e of n)o.mapper.unbindElementFromMarkerName(e,t.markerName),o.writer.clear(o.writer.createRangeOn(e),e);o.writer.clearClonedElementsGroup(t.markerName),e.stop()}}),{priority:e.converterPriority||"normal"})}}(e))}markerToHighlight(e){return this.add(function(e){return t=>{var o;t.on(`addMarker:${e.model}`,(o=e.view,(e,t,n)=>{if(!t.item)return;if(!(t.item instanceof bc||t.item instanceof Sc||t.item.is("$textProxy")))return;const i=Uc(o,t,n);if(!i)return;if(!n.consumable.consume(t.item,e.name))return;const r=n.writer,s=zc(r,i),a=r.document.selection;if(t.item instanceof bc||t.item instanceof Sc)r.wrap(a.getFirstRange(),s);else{const e=n.mapper.toViewRange(t.range),o=r.wrap(e,s);for(const e of o.getItems())if(e.is("attributeElement")&&e.isSimilar(s)){n.mapper.bindElementToMarker(e,t.markerName);break}}}),{priority:e.converterPriority||"normal"}),t.on(`addMarker:${e.model}`,function(e){return(t,o,n)=>{if(!o.item)return;if(!(o.item instanceof Fc))return;const i=Uc(e,o,n);if(!i)return;if(!n.consumable.test(o.item,t.name))return;const r=n.mapper.toViewElement(o.item);if(r&&r.getCustomProperty("addHighlight")){n.consumable.consume(o.item,t.name);for(const e of lc._createIn(o.item))n.consumable.consume(e.item,t.name);r.getCustomProperty("addHighlight")(r,i,n.writer),n.mapper.bindElementToMarker(r,o.markerName)}}}(e.view),{priority:e.converterPriority||"normal"}),t.on(`removeMarker:${e.model}`,function(e){return(t,o,n)=>{if(o.markerRange.isCollapsed)return;const i=Uc(e,o,n);if(!i)return;const r=zc(n.writer,i),s=n.mapper.markerNameToElements(o.markerName);if(s){for(const e of s)if(n.mapper.unbindElementFromMarkerName(e,o.markerName),e.is("attributeElement"))n.writer.unwrap(n.writer.createRangeOn(e),r);else{e.getCustomProperty("removeHighlight")(e,i.id,n.writer)}n.writer.clearClonedElementsGroup(o.markerName),t.stop()}}}(e.view),{priority:e.converterPriority||"normal"})}}(e))}markerToData(e){return this.add(function(e){e=Jl(e);const t=e.model;let o=e.view;o||(o=o=>({group:t,name:o.substr(e.model.length+1)}));return n=>{var i;n.on(`addMarker:${t}`,(i=o,(e,t,o)=>{const n=i(t.markerName,o);if(!n)return;const r=t.markerRange;o.consumable.consume(r,e.name)&&(Lc(r,!1,o,t,n),Lc(r,!0,o,t,n),e.stop())}),{priority:e.converterPriority||"normal"}),n.on(`removeMarker:${t}`,function(e){return(t,o,n)=>{const i=e(o.markerName,n);if(!i)return;const r=n.mapper.markerNameToElements(o.markerName);if(r){for(const e of r)n.mapper.unbindElementFromMarkerName(e,o.markerName),e.is("containerElement")?(s(`data-${i.group}-start-before`,e),s(`data-${i.group}-start-after`,e),s(`data-${i.group}-end-before`,e),s(`data-${i.group}-end-after`,e)):n.writer.clear(n.writer.createRangeOn(e),e);n.writer.clearClonedElementsGroup(o.markerName),t.stop()}function s(e,t){if(t.hasAttribute(e)){const o=new Set(t.getAttribute(e).split(","));o.delete(i.name),0==o.size?n.writer.removeAttribute(e,t):n.writer.setAttribute(e,Array.from(o).join(","),t)}}}}(o),{priority:e.converterPriority||"normal"})}}(e))}}function zc(e,t){const o=e.createAttributeElement("span",t.attributes);return t.classes&&o._addClass(t.classes),"number"==typeof t.priority&&(o._priority=t.priority),o._id=t.id,o}function Oc(e){return(t,o,n)=>{if(!n.consumable.test(o.item,t.name))return;const i=e(o.attributeOldValue,n,o),r=e(o.attributeNewValue,n,o);if(!i&&!r)return;n.consumable.consume(o.item,t.name);const s=n.writer,a=s.document.selection;if(o.item instanceof bc||o.item instanceof Sc)s.wrap(a.getFirstRange(),r);else{let e=n.mapper.toViewRange(o.range);null!==o.attributeOldValue&&i&&(e=s.unwrap(e,i)),null!==o.attributeNewValue&&r&&s.wrap(e,r)}}}function Nc(e,t=Jc){return(o,n,i)=>{if(!t(n.item,i.consumable,{preflight:!0}))return;const r=e(n.item,i,n);if(!r)return;t(n.item,i.consumable);const s=i.mapper.toViewPosition(n.range.start);i.mapper.bindElements(n.item,r),i.writer.insert(s,r),i.convertAttributes(n.item),Kc(r,n.item.getChildren(),i,{reconversion:n.reconversion})}}function Vc(e){return(t,o,n)=>{o.isOpening=!0;const i=e(o,n);o.isOpening=!1;const r=e(o,n);if(!i||!r)return;const s=o.markerRange;if(s.isCollapsed&&!n.consumable.consume(s,t.name))return;for(const e of s)if(!n.consumable.consume(e.item,t.name))return;const a=n.mapper,l=n.writer;l.insert(a.toViewPosition(s.start),i),n.mapper.bindElementToMarker(i,o.markerName),s.isCollapsed||(l.insert(a.toViewPosition(s.end),r),n.mapper.bindElementToMarker(r,o.markerName)),t.stop()}}function Lc(e,t,o,n,i){const r=t?e.start:e.end,s=r.nodeAfter&&r.nodeAfter.is("element")?r.nodeAfter:null,a=r.nodeBefore&&r.nodeBefore.is("element")?r.nodeBefore:null;if(s||a){let e,r;t&&s||!t&&!a?(e=s,r=!0):(e=a,r=!1);const l=o.mapper.toViewElement(e);if(l)return void function(e,t,o,n,i,r){const s=`data-${r.group}-${t?"start":"end"}-${o?"before":"after"}`,a=e.hasAttribute(s)?e.getAttribute(s).split(","):[];a.unshift(r.name),n.writer.setAttribute(s,a.join(","),e),n.mapper.bindElementToMarker(e,i.markerName)}(l,t,r,o,n,i)}!function(e,t,o,n,i){const r=`${i.group}-${t?"start":"end"}`,s=i.name?{name:i.name}:null,a=o.writer.createUIElement(r,s);o.writer.insert(e,a),o.mapper.bindElementToMarker(a,n.markerName)}(o.mapper.toViewPosition(r),t,o,n,i)}function Hc(e){return"string"==typeof e&&(e={name:e}),{name:e.name,attributes:e.attributes?Si(e.attributes):[],children:!!e.children}}function jc(e,t){return"function"==typeof e?e:(o,n)=>function(e,t,o){"string"==typeof e&&(e={name:e});let n;const i=t.writer,r=Object.assign({},e.attributes);if("container"==o)n=i.createContainerElement(e.name,r);else if("attribute"==o){const t={priority:e.priority||ia.DEFAULT_PRIORITY};n=i.createAttributeElement(e.name,r,t)}else n=i.createUIElement(e.name,r);if(e.styles){const t=Object.keys(e.styles);for(const o of t)i.setStyle(o,e.styles[o],n)}if(e.classes){const t=e.classes;if("string"==typeof t)i.addClass(t,n);else for(const e of t)i.addClass(e,n)}return n}(e,n,t)}function qc(e){return e.model.values?(t,o,n)=>{const i=e.view[t];return i?i(t,o,n):null}:e.view}function $c(e){return"string"==typeof e?t=>({key:e,value:t}):"object"==typeof e?e.value?()=>e:t=>({key:e.key,value:t}):e}function Uc(e,t,o){const n="function"==typeof e?e(t,o):e;return n?(n.priority||(n.priority=10),n.id||(n.id=t.markerName),n):null}function Wc(e){const t=function(e){return(t,o)=>{if(!t.is("element",e.name))return!1;if("attribute"==o.type){if(e.attributes.includes(o.attributeKey))return!0}else if(e.children)return!0;return!1}}(e);return(e,o)=>{const n=[];o.reconvertedElements||(o.reconvertedElements=new Set);for(const e of o.changes){const i="attribute"==e.type?e.range.start.nodeAfter:e.position.parent;if(i&&t(i,e)){if(!o.reconvertedElements.has(i)){o.reconvertedElements.add(i);const e=oc._createBefore(i);let t=n.length;for(let o=n.length-1;o>=0;o--){const i=n[o],r=("attribute"==i.type?i.range.start:i.position).compareWith(e);if("before"==r||"remove"==i.type&&"same"==r)break;t=o}n.splice(t,0,{type:"remove",name:i.name,position:e,length:1},{type:"reinsert",name:i.name,position:e,length:1})}}else n.push(e)}o.changes=n}}function Gc(e){return(t,o,n={})=>{const i=["insert"];for(const o of e.attributes)t.hasAttribute(o)&&i.push(`attribute:${o}`);return!!i.every((e=>o.test(t,e)))&&(n.preflight||i.forEach((e=>o.consume(t,e))),!0)}}function Kc(e,t,o,n){for(const i of t)Zc(e.root,i,o,n)||o.convertItem(i)}function Zc(e,t,o,n){const{writer:i,mapper:r}=o;if(!n.reconversion)return!1;const s=r.toViewElement(t);return!(!s||s.root==e)&&(!!o.canReuseView(s)&&(i.move(i.createRangeOn(s),r.toViewPosition(oc._createBefore(t))),!0))}function Jc(e,t,{preflight:o}={}){return o?t.test(e,"insert"):t.consume(e,"insert")}function Yc(e){const{schema:t,document:o}=e.model;for(const n of o.getRoots())if(n.isEmpty&&!t.checkChild(n,"$text")&&t.checkChild(n,"paragraph"))return e.insertElement("paragraph",n),!0;return!1}function Qc(e,t,o){const n=o.createContext(e);return!!o.checkChild(n,"paragraph")&&!!o.checkChild(n.push("paragraph"),t)}function Xc(e,t){const o=t.createElement("paragraph");return t.insert(o,e),t.createPositionAt(o,0)}class ed extends Rc{elementToElement(e){return this.add(td(e))}elementToAttribute(e){return this.add(function(e){e=Jl(e),id(e);const t=rd(e,!1),o=od(e.view),n=o?`element:${o}`:"element";return o=>{o.on(n,t,{priority:e.converterPriority||"low"})}}(e))}attributeToAttribute(e){return this.add(function(e){e=Jl(e);let t=null;("string"==typeof e.view||e.view.key)&&(t=function(e){"string"==typeof e.view&&(e.view={key:e.view});const t=e.view.key,o=void 0===e.view.value?/[\s\S]*/:e.view.value;let n;if("class"==t||"style"==t){const e="class"==t?"classes":"styles";n={[e]:o}}else n={attributes:{[t]:o}};e.view.name&&(n.name=e.view.name);return e.view=n,t}(e));id(e,t);const o=rd(e,!0);return t=>{t.on("element",o,{priority:e.converterPriority||"low"})}}(e))}elementToMarker(e){return this.add(function(e){const t=function(e){return(t,o)=>{const n="string"==typeof e?e:e(t,o);return o.writer.createElement("$marker",{"data-name":n})}}(e.model);return td({...e,model:t})}(e))}dataToMarker(e){return this.add(function(e){e=Jl(e),e.model||(e.model=t=>t?e.view+":"+t:e.view);const t={view:e.view,model:e.model},o=nd(sd(t,"start")),n=nd(sd(t,"end"));return i=>{i.on(`element:${e.view}-start`,o,{priority:e.converterPriority||"normal"}),i.on(`element:${e.view}-end`,n,{priority:e.converterPriority||"normal"});const r=D.low,s=D.highest,a=D.get(e.converterPriority)/s;i.on("element",function(e){return(t,o,n)=>{const i=`data-${e.view}`;function r(t,i){for(const r of i){const i=e.model(r,n),s=n.writer.createElement("$marker",{"data-name":i});n.writer.insert(s,t),o.modelCursor.isEqual(t)?o.modelCursor=o.modelCursor.getShiftedBy(1):o.modelCursor=o.modelCursor._getTransformedByInsertion(t,1),o.modelRange=o.modelRange._getTransformedByInsertion(t,1)[0]}}(n.consumable.test(o.viewItem,{attributes:i+"-end-after"})||n.consumable.test(o.viewItem,{attributes:i+"-start-after"})||n.consumable.test(o.viewItem,{attributes:i+"-end-before"})||n.consumable.test(o.viewItem,{attributes:i+"-start-before"}))&&(o.modelRange||Object.assign(o,n.convertChildren(o.viewItem,o.modelCursor)),n.consumable.consume(o.viewItem,{attributes:i+"-end-after"})&&r(o.modelRange.end,o.viewItem.getAttribute(i+"-end-after").split(",")),n.consumable.consume(o.viewItem,{attributes:i+"-start-after"})&&r(o.modelRange.end,o.viewItem.getAttribute(i+"-start-after").split(",")),n.consumable.consume(o.viewItem,{attributes:i+"-end-before"})&&r(o.modelRange.start,o.viewItem.getAttribute(i+"-end-before").split(",")),n.consumable.consume(o.viewItem,{attributes:i+"-start-before"})&&r(o.modelRange.start,o.viewItem.getAttribute(i+"-start-before").split(",")))}}(t),{priority:r+a})}}(e))}}function td(e){const t=nd(e=Jl(e)),o=od(e.view),n=o?`element:${o}`:"element";return o=>{o.on(n,t,{priority:e.converterPriority||"normal"})}}function od(e){return"string"==typeof e?e:"object"==typeof e&&"string"==typeof e.name?e.name:null}function nd(e){const t=new As(e.view);return(o,n,i)=>{const r=t.match(n.viewItem);if(!r)return;const s=r.match;if(s.name=!0,!i.consumable.test(n.viewItem,s))return;const a=function(e,t,o){return e instanceof Function?e(t,o):o.writer.createElement(e)}(e.model,n.viewItem,i);a&&i.safeInsert(a,n.modelCursor)&&(i.consumable.consume(n.viewItem,s),i.convertChildren(n.viewItem,a),i.updateConversionResult(a,n))}}function id(e,t=null){const o=null===t||(e=>e.getAttribute(t)),n="object"!=typeof e.model?e.model:e.model.key,i="object"!=typeof e.model||void 0===e.model.value?o:e.model.value;e.model={key:n,value:i}}function rd(e,t){const o=new As(e.view);return(n,i,r)=>{if(!i.modelRange&&t)return;const s=o.match(i.viewItem);if(!s)return;if(!function(e,t){const o="function"==typeof e?e(t):e;if("object"==typeof o&&!od(o))return!1;return!o.classes&&!o.attributes&&!o.styles}(e.view,i.viewItem)?delete s.match.name:s.match.name=!0,!r.consumable.test(i.viewItem,s.match))return;const a=e.model.key,l="function"==typeof e.model.value?e.model.value(i.viewItem,r):e.model.value;if(null===l)return;i.modelRange||Object.assign(i,r.convertChildren(i.viewItem,i.modelCursor));const c=function(e,t,o,n){let i=!1;for(const r of Array.from(e.getItems({shallow:o})))n.schema.checkAttribute(r,t.key)&&(i=!0,r.hasAttribute(t.key)||n.writer.setAttribute(t.key,t.value,r));return i}(i.modelRange,{key:a,value:l},t,r);c&&(r.consumable.test(i.viewItem,{name:!0})&&(s.match.name=!0),r.consumable.consume(i.viewItem,s.match))}}function sd(e,t){return{view:`${e.view}-${t}`,model:(t,o)=>{const n=t.getAttribute("name"),i=e.model(n,o);return o.writer.createElement("$marker",{"data-name":i})}}}function ad(e){e.document.registerPostFixer((t=>function(e,t){const o=t.document.selection,n=t.schema,i=[];let r=!1;for(const e of o.getRanges()){const t=ld(e,n);t&&!t.isEqual(e)?(i.push(t),r=!0):i.push(e)}r&&e.setSelection(function(e){const t=[...e],o=new Set;let n=1;for(;n!o.has(t)))}(i),{backward:o.isBackward});return!1}(t,e)))}function ld(e,t){return e.isCollapsed?function(e,t){const o=e.start,n=t.getNearestSelectionRange(o);if(!n){const e=o.getAncestors().reverse().find((e=>t.isObject(e)));return e?lc._createOn(e):null}if(!n.isCollapsed)return n;const i=n.start;if(o.isEqual(i))return null;return new lc(i)}(e,t):function(e,t){const{start:o,end:n}=e,i=t.checkChild(o,"$text"),r=t.checkChild(n,"$text"),s=t.getLimitElement(o),a=t.getLimitElement(n);if(s===a){if(i&&r)return null;if(function(e,t,o){const n=e.nodeAfter&&!o.isLimit(e.nodeAfter)||o.checkChild(e,"$text"),i=t.nodeBefore&&!o.isLimit(t.nodeBefore)||o.checkChild(t,"$text");return n||i}(o,n,t)){const e=o.nodeAfter&&t.isSelectable(o.nodeAfter)?null:t.getNearestSelectionRange(o,"forward"),i=n.nodeBefore&&t.isSelectable(n.nodeBefore)?null:t.getNearestSelectionRange(n,"backward"),r=e?e.start:o,s=i?i.end:n;return new lc(r,s)}}const l=s&&!s.is("rootElement"),c=a&&!a.is("rootElement");if(l||c){const e=o.nodeAfter&&n.nodeBefore&&o.nodeAfter.parent===n.nodeBefore.parent,i=l&&(!e||!dd(o.nodeAfter,t)),r=c&&(!e||!dd(n.nodeBefore,t));let d=o,u=n;return i&&(d=oc._createBefore(cd(s,t))),r&&(u=oc._createAfter(cd(a,t))),new lc(d,u)}return null}(e,t)}function cd(e,t){let o=e,n=o;for(;t.isLimit(n)&&n.parent;)o=n,n=n.parent;return o}function dd(e,t){return e&&t.isSelectable(e)}class ud extends(X()){constructor(e,t){super(),this.model=e,this.view=new Yl(t),this.mapper=new cc,this.downcastDispatcher=new pc({mapper:this.mapper,schema:e.schema});const o=this.model.document,n=o.selection,i=this.model.markers;var r,s,a;this.listenTo(this.model,"_beforeChanges",(()=>{this.view._disableRendering(!0)}),{priority:"highest"}),this.listenTo(this.model,"_afterChanges",(()=>{this.view._disableRendering(!1)}),{priority:"lowest"}),this.listenTo(o,"change",(()=>{this.view.change((e=>{this.downcastDispatcher.convertChanges(o.differ,i,e),this.downcastDispatcher.convertSelection(n,i,e)}))}),{priority:"low"}),this.listenTo(this.view.document,"selectionChange",function(e,t){return(o,n)=>{const i=n.newSelection,r=[];for(const e of i.getRanges())r.push(t.toModelRange(e));const s=e.createSelection(r,{backward:i.isBackward});s.isEqual(e.document.selection)||e.change((e=>{e.setSelection(s)}))}}(this.model,this.mapper)),this.listenTo(this.view.document,"beforeinput",(r=this.mapper,s=this.model.schema,a=this.view,(e,t)=>{if(!a.document.isComposing||c.isAndroid)for(let e=0;e{if(!o.consumable.consume(t.item,e.name))return;const n=o.writer,i=o.mapper.toViewPosition(t.range.start),r=n.createText(t.item.data);n.insert(i,r)}),{priority:"lowest"}),this.downcastDispatcher.on("insert",((e,t,o)=>{o.convertAttributes(t.item),t.reconversion||!t.item.is("element")||t.item.isEmpty||o.convertChildren(t.item)}),{priority:"lowest"}),this.downcastDispatcher.on("remove",((e,t,o)=>{const n=o.mapper.toViewPosition(t.position),i=t.position.getShiftedBy(t.length),r=o.mapper.toViewPosition(i,{isPhantom:!0}),s=o.writer.createRange(n,r),a=o.writer.remove(s.getTrimmed());for(const e of o.writer.createRangeIn(a).getItems())o.mapper.unbindViewElement(e,{defer:!0})}),{priority:"low"}),this.downcastDispatcher.on("cleanSelection",((e,t,o)=>{const n=o.writer,i=n.document.selection;for(const e of i.getRanges())e.isCollapsed&&e.end.parent.isAttached()&&o.writer.mergeAttributes(e.start);n.setSelection(null)})),this.downcastDispatcher.on("selection",((e,t,o)=>{const n=t.selection;if(n.isCollapsed)return;if(!o.consumable.consume(n,"selection"))return;const i=[];for(const e of n.getRanges())i.push(o.mapper.toViewRange(e));o.writer.setSelection(i,{backward:n.isBackward})}),{priority:"low"}),this.downcastDispatcher.on("selection",((e,t,o)=>{const n=t.selection;if(!n.isCollapsed)return;if(!o.consumable.consume(n,"selection"))return;const i=o.writer,r=n.getFirstPosition(),s=o.mapper.toViewPosition(r),a=i.breakAttributes(s);i.setSelection(a)}),{priority:"low"}),this.view.document.roots.bindTo(this.model.document.roots).using((e=>{if("$graveyard"==e.rootName)return null;const t=new js(this.view.document,e.name);return t.rootName=e.rootName,this.mapper.bindElements(e,t),t}))}destroy(){this.view.destroy(),this.stopListening()}reconvertMarker(e){const t="string"==typeof e?e:e.name,o=this.model.markers.get(t);if(!o)throw new S("editingcontroller-reconvertmarker-marker-not-exist",this,{markerName:t});this.model.change((()=>{this.model.markers._refresh(o)}))}reconvertItem(e){this.model.change((()=>{this.model.document.differ._refreshItem(e)}))}}class hd extends(X()){constructor(){super(),this._sourceDefinitions={},this._attributeProperties=Object.create(null),this._customChildChecks=new Map,this._customAttributeChecks=new Map,this._genericCheckSymbol=Symbol("$generic"),this.decorate("checkChild"),this.decorate("checkAttribute"),this.on("checkAttribute",((e,t)=>{t[0]=new pd(t[0])}),{priority:"highest"}),this.on("checkChild",((e,t)=>{t[0]=new pd(t[0]),t[1]=this.getDefinition(t[1])}),{priority:"highest"})}register(e,t){if(this._sourceDefinitions[e])throw new S("schema-cannot-register-item-twice",this,{itemName:e});this._sourceDefinitions[e]=[Object.assign({},t)],this._clearCache()}extend(e,t){if(!this._sourceDefinitions[e])throw new S("schema-cannot-extend-missing-item",this,{itemName:e});this._sourceDefinitions[e].push(Object.assign({},t)),this._clearCache()}getDefinitions(){return this._compiledDefinitions||this._compile(),this._compiledDefinitions}getDefinition(e){let t;return t="string"==typeof e?e:"is"in e&&(e.is("$text")||e.is("$textProxy"))?"$text":e.name,this.getDefinitions()[t]}isRegistered(e){return!!this.getDefinition(e)}isBlock(e){const t=this.getDefinition(e);return!(!t||!t.isBlock)}isLimit(e){const t=this.getDefinition(e);return!!t&&!(!t.isLimit&&!t.isObject)}isObject(e){const t=this.getDefinition(e);return!!t&&!!(t.isObject||t.isLimit&&t.isSelectable&&t.isContent)}isInline(e){const t=this.getDefinition(e);return!(!t||!t.isInline)}isSelectable(e){const t=this.getDefinition(e);return!!t&&!(!t.isSelectable&&!t.isObject)}isContent(e){const t=this.getDefinition(e);return!!t&&!(!t.isContent&&!t.isObject)}checkChild(e,t){return!!t&&this._checkContextMatch(e,t)}checkAttribute(e,t){const o=this.getDefinition(e.last);if(!o)return!1;const n=this._evaluateAttributeChecks(e,t);return void 0!==n?n:o.allowAttributes.includes(t)}checkMerge(e,t){if(e instanceof oc){const t=e.nodeBefore,o=e.nodeAfter;if(!(t instanceof Fc))throw new S("schema-check-merge-no-element-before",this);if(!(o instanceof Fc))throw new S("schema-check-merge-no-element-after",this);return this.checkMerge(t,o)}if(this.isLimit(e)||this.isLimit(t))return!1;for(const o of t.getChildren())if(!this.checkChild(e,o))return!1;return!0}addChildCheck(e,t){const o=void 0!==t?t:this._genericCheckSymbol,n=this._customChildChecks.get(o)||[];n.push(e),this._customChildChecks.set(o,n)}addAttributeCheck(e,t){const o=void 0!==t?t:this._genericCheckSymbol,n=this._customAttributeChecks.get(o)||[];n.push(e),this._customAttributeChecks.set(o,n)}setAttributeProperties(e,t){this._attributeProperties[e]=Object.assign(this.getAttributeProperties(e),t)}getAttributeProperties(e){return this._attributeProperties[e]||Object.create(null)}getLimitElement(e){let t;if(e instanceof oc)t=e.parent;else{t=(e instanceof lc?[e]:Array.from(e.getRanges())).reduce(((e,t)=>{const o=t.getCommonAncestor();return e?e.getCommonAncestor(o,{includeSelf:!0}):o}),null)}for(;!this.isLimit(t)&&t.parent;)t=t.parent;return t}checkAttributeInSelection(e,t){if(e.isCollapsed){const o=[...e.getFirstPosition().getAncestors(),new Dc("",e.getAttributes())];return this.checkAttribute(o,t)}{const o=e.getRanges();for(const e of o)for(const o of e)if(this.checkAttribute(o.item,t))return!0}return!1}*getValidRanges(e,t){e=function*(e){for(const t of e)yield*t.getMinimalFlatRanges()}(e);for(const o of e)yield*this._getValidRangesForRange(o,t)}getNearestSelectionRange(e,t="both"){if("$graveyard"==e.root.rootName)return null;if(this.checkChild(e,"$text"))return new lc(e);let o,n;const i=e.getAncestors().reverse().find((e=>this.isLimit(e)))||e.root;"both"!=t&&"backward"!=t||(o=new ec({boundaries:lc._createIn(i),startPosition:e,direction:"backward"})),"both"!=t&&"forward"!=t||(n=new ec({boundaries:lc._createIn(i),startPosition:e}));for(const e of function*(e,t){let o=!1;for(;!o;){if(o=!0,e){const t=e.next();t.done||(o=!1,yield{walker:e,value:t.value})}if(t){const e=t.next();e.done||(o=!1,yield{walker:t,value:e.value})}}}(o,n)){const t=e.walker==o?"elementEnd":"elementStart",n=e.value;if(n.type==t&&this.isObject(n.item))return lc._createOn(n.item);if(this.checkChild(n.nextPosition,"$text"))return new lc(n.nextPosition)}return null}findAllowedParent(e,t){let o=e.parent;for(;o;){if(this.checkChild(o,t))return o;if(this.isLimit(o))return null;o=o.parent}return null}setAllowedAttributes(e,t,o){const n=o.model;for(const[i,r]of Object.entries(t))n.schema.checkAttribute(e,i)&&o.setAttribute(i,r,e)}removeDisallowedAttributes(e,t){for(const o of e)if(o.is("$text"))Ed(this,o,t);else{const e=lc._createIn(o).getPositions();for(const o of e){Ed(this,o.nodeBefore||o.parent,t)}}}getAttributesWithProperty(e,t,o){const n={};for(const[i,r]of e.getAttributes()){const e=this.getAttributeProperties(i);void 0!==e[t]&&(void 0!==o&&o!==e[t]||(n[i]=r))}return n}createContext(e){return new pd(e)}_clearCache(){this._compiledDefinitions=null}_compile(){const e={},t=this._sourceDefinitions,o=Object.keys(t);for(const n of o)e[n]=md(t[n],n);const n=Object.values(e);for(const t of n)gd(e,t),fd(e,t),bd(e,t),kd(e,t);for(const t of n)wd(e,t);for(const t of n)_d(e,t);for(const t of n)yd(e,t);for(const t of n)Ad(e,t);for(const t of n)Cd(e,t);this._compiledDefinitions=function(e){const t={};for(const o of Object.values(e))t[o.name]={name:o.name,isBlock:!!o.isBlock,isContent:!!o.isContent,isInline:!!o.isInline,isLimit:!!o.isLimit,isObject:!!o.isObject,isSelectable:!!o.isSelectable,allowIn:Array.from(o.allowIn).filter((t=>!!e[t])),allowChildren:Array.from(o.allowChildren).filter((t=>!!e[t])),allowAttributes:Array.from(o.allowAttributes)};return t}(e)}_checkContextMatch(e,t){const o=e.last;let n=this._evaluateChildChecks(e,t);if(n=void 0!==n?n:t.allowIn.includes(o.name),!n)return!1;const i=this.getDefinition(o),r=e.trimLast();return!!i&&(0==r.length||this._checkContextMatch(r,i))}_evaluateChildChecks(e,t){const o=this._customChildChecks.get(this._genericCheckSymbol)||[],n=this._customChildChecks.get(t.name)||[];for(const i of[...o,...n]){const o=i(e,t);if(void 0!==o)return o}}_evaluateAttributeChecks(e,t){const o=this._customAttributeChecks.get(this._genericCheckSymbol)||[],n=this._customAttributeChecks.get(t)||[];for(const i of[...o,...n]){const o=i(e,t);if(void 0!==o)return o}}*_getValidRangesForRange(e,t){let o=e.start,n=e.start;for(const i of e.getItems({shallow:!0}))i.is("element")&&(yield*this._getValidRangesForRange(lc._createIn(i),t)),this.checkAttribute(i,t)||(o.isEqual(n)||(yield new lc(o,n)),o=oc._createAfter(i)),n=oc._createAfter(i);o.isEqual(n)||(yield new lc(o,n))}findOptimalInsertionRange(e,t){const o=e.getSelectedElement();if(o&&this.isObject(o)&&!this.isInline(o))return"before"==t||"after"==t?new lc(oc._createAt(o,t)):lc._createOn(o);const n=or(e.getSelectedBlocks());if(!n)return new lc(e.focus);if(n.isEmpty)return new lc(oc._createAt(n,0));const i=oc._createAfter(n);return e.focus.isTouching(i)?new lc(i):new lc(oc._createBefore(n))}}class pd{constructor(e){if(e instanceof pd)return e;let t;t="string"==typeof e?[e]:Array.isArray(e)?e:e.getAncestors({includeSelf:!0}),this._items=t.map(xd)}get length(){return this._items.length}get last(){return this._items[this._items.length-1]}[Symbol.iterator](){return this._items[Symbol.iterator]()}push(e){const t=new pd([e]);return t._items=[...this._items,...t._items],t}trimLast(){const e=new pd([]);return e._items=this._items.slice(0,-1),e}getItem(e){return this._items[e]}*getNames(){yield*this._items.map((e=>e.name))}endsWith(e){return Array.from(this.getNames()).join(" ").endsWith(e)}startsWith(e){return Array.from(this.getNames()).join(" ").startsWith(e)}}function md(e,t){const o={name:t,allowIn:new Set,allowChildren:new Set,disallowIn:new Set,disallowChildren:new Set,allowContentOf:new Set,allowWhere:new Set,allowAttributes:new Set,disallowAttributes:new Set,allowAttributesOf:new Set,inheritTypesFrom:new Set};return function(e,t){for(const o of e){const e=Object.keys(o).filter((e=>e.startsWith("is")));for(const n of e)t[n]=!!o[n]}}(e,o),vd(e,o,"allowIn"),vd(e,o,"allowChildren"),vd(e,o,"disallowIn"),vd(e,o,"disallowChildren"),vd(e,o,"allowContentOf"),vd(e,o,"allowWhere"),vd(e,o,"allowAttributes"),vd(e,o,"disallowAttributes"),vd(e,o,"allowAttributesOf"),vd(e,o,"inheritTypesFrom"),function(e,t){for(const o of e){const e=o.inheritAllFrom;e&&(t.allowContentOf.add(e),t.allowWhere.add(e),t.allowAttributesOf.add(e),t.inheritTypesFrom.add(e))}}(e,o),o}function gd(e,t){for(const o of t.allowIn){const n=e[o];n?n.allowChildren.add(t.name):t.allowIn.delete(o)}}function fd(e,t){for(const o of t.allowChildren){const n=e[o];n?n.allowIn.add(t.name):t.allowChildren.delete(o)}}function bd(e,t){for(const o of t.disallowIn){const n=e[o];n?n.disallowChildren.add(t.name):t.disallowIn.delete(o)}}function kd(e,t){for(const o of t.disallowChildren){const n=e[o];n?n.disallowIn.add(t.name):t.disallowChildren.delete(o)}}function wd(e,t){for(const e of t.disallowChildren)t.allowChildren.delete(e);for(const e of t.disallowIn)t.allowIn.delete(e);for(const e of t.disallowAttributes)t.allowAttributes.delete(e)}function _d(e,t){for(const o of t.allowContentOf){const n=e[o];n&&(n.disallowChildren.forEach((o=>{t.allowChildren.has(o)||(t.disallowChildren.add(o),e[o].disallowIn.add(t.name))})),n.allowChildren.forEach((o=>{t.disallowChildren.has(o)||(t.allowChildren.add(o),e[o].allowIn.add(t.name))})))}}function yd(e,t){for(const o of t.allowWhere){const n=e[o];n&&(n.disallowIn.forEach((o=>{t.allowIn.has(o)||(t.disallowIn.add(o),e[o].disallowChildren.add(t.name))})),n.allowIn.forEach((o=>{t.disallowIn.has(o)||(t.allowIn.add(o),e[o].allowChildren.add(t.name))})))}}function Ad(e,t){for(const o of t.allowAttributesOf){const n=e[o];if(!n)return;n.allowAttributes.forEach((e=>{t.disallowAttributes.has(e)||t.allowAttributes.add(e)}))}}function Cd(e,t){for(const o of t.inheritTypesFrom){const n=e[o];if(n){const e=Object.keys(n).filter((e=>e.startsWith("is")));for(const o of e)o in t||(t[o]=n[o])}}}function vd(e,t,o){for(const n of e){let e=n[o];"string"==typeof e&&(e=[e]),Array.isArray(e)&&e.forEach((e=>t[o].add(e)))}}function xd(e){return"string"==typeof e||e.is("documentFragment")?{name:"string"==typeof e?e:"$documentFragment",*getAttributeKeys(){},getAttribute(){}}:{name:e.is("element")?e.name:"$text",*getAttributeKeys(){yield*e.getAttributeKeys()},getAttribute:t=>e.getAttribute(t)}}function Ed(e,t,o){for(const n of t.getAttributeKeys())e.checkAttribute(t,n)||o.removeAttribute(n,t)}class Dd extends(V()){constructor(e){super(),this._splitParts=new Map,this._cursorParents=new Map,this._modelCursor=null,this._emptyElementsToKeep=new Set,this.conversionApi={...e,consumable:null,writer:null,store:null,convertItem:(e,t)=>this._convertItem(e,t),convertChildren:(e,t)=>this._convertChildren(e,t),safeInsert:(e,t)=>this._safeInsert(e,t),updateConversionResult:(e,t)=>this._updateConversionResult(e,t),splitToAllowedParent:(e,t)=>this._splitToAllowedParent(e,t),getSplitParts:e=>this._getSplitParts(e),keepEmptyElement:e=>this._keepEmptyElement(e)}}convert(e,t,o=["$root"]){this.fire("viewCleanup",e),this._modelCursor=function(e,t){let o;for(const n of new pd(e)){const e={};for(const t of n.getAttributeKeys())e[t]=n.getAttribute(t);const i=t.createElement(n.name,e);o&&t.insert(i,o),o=oc._createAt(i,0)}return o}(o,t),this.conversionApi.writer=t,this.conversionApi.consumable=ks.createFrom(e),this.conversionApi.store={};const{modelRange:n}=this._convertItem(e,this._modelCursor),i=t.createDocumentFragment();if(n){this._removeEmptyElements();const e=this._modelCursor.parent,o=e._removeChildren(0,e.childCount);i._insertChild(0,o),i.markers=function(e,t){const o=new Set,n=new Map,i=lc._createIn(e).getItems();for(const e of i)e.is("element","$marker")&&o.add(e);for(const e of o){const o=e.getAttribute("data-name"),i=t.createPositionBefore(e);n.has(o)?n.get(o).end=i.clone():n.set(o,new lc(i.clone())),t.remove(e)}return n}(i,t)}return this._modelCursor=null,this._splitParts.clear(),this._cursorParents.clear(),this._emptyElementsToKeep.clear(),this.conversionApi.writer=null,this.conversionApi.store=null,i}_convertItem(e,t){const o={viewItem:e,modelCursor:t,modelRange:null};if(e.is("element")?this.fire(`element:${e.name}`,o,this.conversionApi):e.is("$text")?this.fire("text",o,this.conversionApi):this.fire("documentFragment",o,this.conversionApi),o.modelRange&&!(o.modelRange instanceof lc))throw new S("view-conversion-dispatcher-incorrect-result",this);return{modelRange:o.modelRange,modelCursor:o.modelCursor}}_convertChildren(e,t){let o=t.is("position")?t:oc._createAt(t,0);const n=new lc(o);for(const t of Array.from(e.getChildren())){const e=this._convertItem(t,o);e.modelRange instanceof lc&&(n.end=e.modelRange.end,o=e.modelCursor)}return{modelRange:n,modelCursor:o}}_safeInsert(e,t){const o=this._splitToAllowedParent(e,t);return!!o&&(this.conversionApi.writer.insert(e,o.position),!0)}_updateConversionResult(e,t){const o=this._getSplitParts(e),n=this.conversionApi.writer;t.modelRange||(t.modelRange=n.createRange(n.createPositionBefore(e),n.createPositionAfter(o[o.length-1])));const i=this._cursorParents.get(e);t.modelCursor=i?n.createPositionAt(i,0):t.modelRange.end}_splitToAllowedParent(e,t){const{schema:o,writer:n}=this.conversionApi;let i=o.findAllowedParent(t,e);if(i){if(i===t.parent)return{position:t};this._modelCursor.parent.getAncestors().includes(i)&&(i=null)}if(!i)return Qc(t,e,o)?{position:Xc(t,n)}:null;const r=this.conversionApi.writer.split(t,i),s=[];for(const e of r.range.getWalker())if("elementEnd"==e.type)s.push(e.item);else{const t=s.pop(),o=e.item;this._registerSplitPair(t,o)}const a=r.range.end.parent;return this._cursorParents.set(e,a),{position:r.position,cursorParent:a}}_registerSplitPair(e,t){this._splitParts.has(e)||this._splitParts.set(e,[e]);const o=this._splitParts.get(e);this._splitParts.set(t,o),o.push(t)}_getSplitParts(e){let t;return t=this._splitParts.has(e)?this._splitParts.get(e):[e],t}_keepEmptyElement(e){this._emptyElementsToKeep.add(e)}_removeEmptyElements(){const e=new Map;for(const t of this._splitParts.keys())if(t.isEmpty&&!this._emptyElementsToKeep.has(t)){const o=e.get(t.parent)||[];o.push(t),this._splitParts.delete(t),e.set(t.parent,o)}for(const[t,o]of e)t._removeChildrenArray(o);e.size&&this._removeEmptyElements()}}class Bd{getHtml(e){const t=s.document.implementation.createHTMLDocument("").createElement("div");return t.appendChild(e),t.innerHTML}}class Sd{constructor(e){this.skipComments=!0,this.domParser=new DOMParser,this.domConverter=new Ua(e,{renderingMode:"data"}),this.htmlWriter=new Bd}toData(e){const t=this.domConverter.viewToDom(e);return this.htmlWriter.getHtml(t)}toView(e){const t=this._toDom(e);return this.domConverter.domToView(t,{skipComments:this.skipComments})}registerRawContentMatcher(e){this.domConverter.registerRawContentMatcher(e)}useFillerType(e){this.domConverter.blockFillerMode="marked"==e?"markedNbsp":"nbsp"}_toDom(e){/<(?:html|body|head|meta)(?:\s[^>]*)?>/i.test(e.trim().slice(0,1e4))||(e=`${e}`);const t=this.domParser.parseFromString(e,"text/html"),o=t.createDocumentFragment(),n=t.body.childNodes;for(;n.length>0;)o.appendChild(n[0]);return o}}class Td extends(V()){constructor(e,t){super(),this.model=e,this.mapper=new cc,this.downcastDispatcher=new pc({mapper:this.mapper,schema:e.schema}),this.downcastDispatcher.on("insert:$text",((e,t,o)=>{if(!o.consumable.consume(t.item,e.name))return;const n=o.writer,i=o.mapper.toViewPosition(t.range.start),r=n.createText(t.item.data);n.insert(i,r)}),{priority:"lowest"}),this.downcastDispatcher.on("insert",((e,t,o)=>{o.convertAttributes(t.item),t.reconversion||!t.item.is("element")||t.item.isEmpty||o.convertChildren(t.item)}),{priority:"lowest"}),this.upcastDispatcher=new Dd({schema:e.schema}),this.viewDocument=new oa(t),this.stylesProcessor=t,this.htmlProcessor=new Sd(this.viewDocument),this.processor=this.htmlProcessor,this._viewWriter=new ga(this.viewDocument),this.upcastDispatcher.on("text",((e,t,{schema:o,consumable:n,writer:i})=>{let r=t.modelCursor;if(!n.test(t.viewItem))return;if(!o.checkChild(r,"$text")){if(!Qc(r,"$text",o))return;if(0==t.viewItem.data.trim().length)return;r=Xc(r,i)}n.consume(t.viewItem);const s=i.createText(t.viewItem.data);i.insert(s,r),t.modelRange=i.createRange(r,r.getShiftedBy(s.offsetSize)),t.modelCursor=t.modelRange.end}),{priority:"lowest"}),this.upcastDispatcher.on("element",((e,t,o)=>{if(!t.modelRange&&o.consumable.consume(t.viewItem,{name:!0})){const{modelRange:e,modelCursor:n}=o.convertChildren(t.viewItem,t.modelCursor);t.modelRange=e,t.modelCursor=n}}),{priority:"lowest"}),this.upcastDispatcher.on("documentFragment",((e,t,o)=>{if(!t.modelRange&&o.consumable.consume(t.viewItem,{name:!0})){const{modelRange:e,modelCursor:n}=o.convertChildren(t.viewItem,t.modelCursor);t.modelRange=e,t.modelCursor=n}}),{priority:"lowest"}),X().prototype.decorate.call(this,"init"),X().prototype.decorate.call(this,"set"),X().prototype.decorate.call(this,"get"),X().prototype.decorate.call(this,"toView"),X().prototype.decorate.call(this,"toModel"),this.on("init",(()=>{this.fire("ready")}),{priority:"lowest"}),this.on("ready",(()=>{this.model.enqueueChange({isUndoable:!1},Yc)}),{priority:"lowest"})}get(e={}){const{rootName:t="main",trim:o="empty"}=e;if(!this._checkIfRootsExists([t]))throw new S("datacontroller-get-non-existent-root",this);const n=this.model.document.getRoot(t);return n.isAttached()||T("datacontroller-get-detached-root",this),"empty"!==o||this.model.hasContent(n,{ignoreWhitespaces:!0})?this.stringify(n,e):""}stringify(e,t={}){const o=this.toView(e,t);return this.processor.toData(o)}toView(e,t={}){const o=this.viewDocument,n=this._viewWriter;this.mapper.clearBindings();const i=lc._createIn(e),r=new ma(o);this.mapper.bindElements(e,r);const s=e.is("documentFragment")?e.markers:function(e){const t=[],o=e.root.document;if(!o)return new Map;const n=lc._createIn(e);for(const e of o.model.markers){const o=e.getRange(),i=o.isCollapsed,r=o.start.isEqual(n.start)||o.end.isEqual(n.end);if(i&&r)t.push([e.name,o]);else{const i=n.getIntersection(o);i&&t.push([e.name,i])}}return t.sort((([e,t],[o,n])=>{if("after"!==t.end.compareWith(n.start))return 1;if("before"!==t.start.compareWith(n.end))return-1;switch(t.start.compareWith(n.start)){case"before":return 1;case"after":return-1;default:switch(t.end.compareWith(n.end)){case"before":return 1;case"after":return-1;default:return o.localeCompare(e)}}})),new Map(t)}(e);return this.downcastDispatcher.convert(i,s,n,t),r}init(e){if(this.model.document.version)throw new S("datacontroller-init-document-not-empty",this);let t={};if("string"==typeof e?t.main=e:t=e,!this._checkIfRootsExists(Object.keys(t)))throw new S("datacontroller-init-non-existent-root",this);return this.model.enqueueChange({isUndoable:!1},(e=>{for(const o of Object.keys(t)){const n=this.model.document.getRoot(o);e.insert(this.parse(t[o],n),n,0)}})),Promise.resolve()}set(e,t={}){let o={};if("string"==typeof e?o.main=e:o=e,!this._checkIfRootsExists(Object.keys(o)))throw new S("datacontroller-set-non-existent-root",this);this.model.enqueueChange(t.batchType||{},(e=>{e.setSelection(null),e.removeSelectionAttribute(this.model.document.selection.getAttributeKeys());for(const t of Object.keys(o)){const n=this.model.document.getRoot(t);e.remove(e.createRangeIn(n)),e.insert(this.parse(o[t],n),n,0)}}))}parse(e,t="$root"){const o=this.processor.toView(e);return this.toModel(o,t)}toModel(e,t="$root"){return this.model.change((o=>this.upcastDispatcher.convert(e,o,t)))}addStyleProcessorRules(e){e(this.stylesProcessor)}registerRawContentMatcher(e){this.processor&&this.processor!==this.htmlProcessor&&this.processor.registerRawContentMatcher(e),this.htmlProcessor.registerRawContentMatcher(e)}destroy(){this.stopListening()}_checkIfRootsExists(e){for(const t of e)if(!this.model.document.getRoot(t))return!1;return!0}}class Id{constructor(e,t){this._helpers=new Map,this._downcast=Si(e),this._createConversionHelpers({name:"downcast",dispatchers:this._downcast,isDowncast:!0}),this._upcast=Si(t),this._createConversionHelpers({name:"upcast",dispatchers:this._upcast,isDowncast:!1})}addAlias(e,t){const o=this._downcast.includes(t);if(!this._upcast.includes(t)&&!o)throw new S("conversion-add-alias-dispatcher-not-registered",this);this._createConversionHelpers({name:e,dispatchers:[t],isDowncast:o})}for(e){if(!this._helpers.has(e))throw new S("conversion-for-unknown-group",this);return this._helpers.get(e)}elementToElement(e){this.for("downcast").elementToElement(e);for(const{model:t,view:o}of Pd(e))this.for("upcast").elementToElement({model:t,view:o,converterPriority:e.converterPriority})}attributeToElement(e){this.for("downcast").attributeToElement(e);for(const{model:t,view:o}of Pd(e))this.for("upcast").elementToAttribute({view:o,model:t,converterPriority:e.converterPriority})}attributeToAttribute(e){this.for("downcast").attributeToAttribute(e);for(const{model:t,view:o}of Pd(e))this.for("upcast").attributeToAttribute({view:o,model:t})}_createConversionHelpers({name:e,dispatchers:t,isDowncast:o}){if(this._helpers.has(e))throw new S("conversion-group-exists",this);const n=o?new Mc(t):new ed(t);this._helpers.set(e,n)}}function*Pd(e){if(e.model.values)for(const t of e.model.values){const o={key:e.model.key,value:t},n=e.view[t],i=e.upcastAlso?e.upcastAlso[t]:void 0;yield*Fd(o,n,i)}else yield*Fd(e.model,e.view,e.upcastAlso)}function*Fd(e,t,o){if(yield{model:e,view:t},o)for(const t of Si(o))yield{model:e,view:t}}class Rd{constructor(e){this.baseVersion=e,this.isDocumentOperation=null!==this.baseVersion,this.batch=null}_validate(){}toJSON(){const e=Object.assign({},this);return e.__className=this.constructor.className,delete e.batch,delete e.isDocumentOperation,e}static get className(){return"Operation"}static fromJSON(e,t){return new this(e.baseVersion)}}function Md(e,t){const o=Nd(t),n=o.reduce(((e,t)=>e+t.offsetSize),0),i=e.parent;Ld(e);const r=e.index;return i._insertChild(r,o),Vd(i,r+o.length),Vd(i,r),new lc(e,e.getShiftedBy(n))}function zd(e){if(!e.isFlat)throw new S("operation-utils-remove-range-not-flat",this);const t=e.start.parent;Ld(e.start),Ld(e.end);const o=t._removeChildren(e.start.index,e.end.index-e.start.index);return Vd(t,e.start.index),o}function Od(e,t){if(!e.isFlat)throw new S("operation-utils-move-range-not-flat",this);const o=zd(e);return Md(t=t._getTransformedByDeletion(e.start,e.end.offset-e.start.offset),o)}function Nd(e){const t=[];!function e(o){if("string"==typeof o)t.push(new Dc(o));else if(o instanceof Xl)t.push(new Dc(o.data,o.getAttributes()));else if(o instanceof fc)t.push(o);else if(ae(o))for(const t of o)e(t);else{}}(e);for(let e=1;ee.maxOffset)throw new S("move-operation-nodes-do-not-exist",this);if(e===t&&o=o&&this.targetPosition.path[e]e._clone(!0)))),t=new qd(this.position,e,this.baseVersion);return t.shouldReceiveAttributes=this.shouldReceiveAttributes,t}getReversed(){const e=this.position.root.document.graveyard,t=new oc(e,[0]);return new jd(this.position,this.nodes.maxOffset,t,this.baseVersion+1)}_validate(){const e=this.position.parent;if(!e||e.maxOffsete._clone(!0)))),Md(this.position,e)}toJSON(){const e=super.toJSON();return e.position=this.position.toJSON(),e.nodes=this.nodes.toJSON(),e}static get className(){return"InsertOperation"}static fromJSON(e,t){const o=[];for(const t of e.nodes)t.name?o.push(Fc.fromJSON(t)):o.push(Dc.fromJSON(t));const n=new qd(oc.fromJSON(e.position,t),o,e.baseVersion);return n.shouldReceiveAttributes=e.shouldReceiveAttributes,n}}class $d extends Rd{constructor(e,t,o,n,i){super(i),this.splitPosition=e.clone(),this.splitPosition.stickiness="toNext",this.howMany=t,this.insertionPosition=o,this.graveyardPosition=n?n.clone():null,this.graveyardPosition&&(this.graveyardPosition.stickiness="toNext")}get type(){return"split"}get moveTargetPosition(){const e=this.insertionPosition.path.slice();return e.push(0),new oc(this.insertionPosition.root,e)}get movedRange(){const e=this.splitPosition.getShiftedBy(Number.POSITIVE_INFINITY);return new lc(this.splitPosition,e)}get affectedSelectable(){const e=[lc._createFromPositionAndShift(this.splitPosition,0),lc._createFromPositionAndShift(this.insertionPosition,0)];return this.graveyardPosition&&e.push(lc._createFromPositionAndShift(this.graveyardPosition,0)),e}clone(){return new $d(this.splitPosition,this.howMany,this.insertionPosition,this.graveyardPosition,this.baseVersion)}getReversed(){const e=this.splitPosition.root.document.graveyard,t=new oc(e,[0]);return new Ud(this.moveTargetPosition,this.howMany,this.splitPosition,t,this.baseVersion+1)}_validate(){const e=this.splitPosition.parent,t=this.splitPosition.offset;if(!e||e.maxOffset0&&(e.sourcePosition.isEqual(t.sourcePosition.getShiftedBy(t.howMany))&&this._setRelation(e,t,"mergeSourceAffected"),e.targetPosition.isEqual(t.sourcePosition)&&this._setRelation(e,t,"mergeTargetWasBefore"));else if(e instanceof Wd){const o=e.newRange;if(!o)return;if(t instanceof Ud){const n=o.start.isEqual(t.targetPosition),i=o.start.isEqual(t.deletionPosition),r=o.end.isEqual(t.deletionPosition),s=o.end.isEqual(t.sourcePosition);(n||i||r||s)&&this._setRelation(e,t,{wasInLeftElement:n,wasStartBeforeMergedElement:i,wasEndBeforeMergedElement:r,wasInRightElement:s})}}}getContext(e,t,o){return{aIsStrong:o,aWasUndone:this._wasUndone(e),bWasUndone:this._wasUndone(t),abRelation:this._useRelations?this._getRelation(e,t):null,baRelation:this._useRelations?this._getRelation(t,e):null,forceWeakRemove:this._forceWeakRemove}}_wasUndone(e){const t=this.originalOperations.get(e);return t.wasUndone||this._history.isUndoneOperation(t)}_getRelation(e,t){const o=this.originalOperations.get(t),n=this._history.getUndoneOperation(o);if(!n)return null;const i=this.originalOperations.get(e),r=this._relations.get(i);return r&&r.get(n)||null}_setRelation(e,t,o){const n=this.originalOperations.get(e),i=this.originalOperations.get(t);let r=this._relations.get(n);r||(r=new Map,this._relations.set(n,r)),r.set(i,o)}}function au(e,t){for(const o of e)o.baseVersion=t++}function lu(e,t){for(let o=0;o{if(e.key===t.key&&e.range.start.hasSameParentAs(t.range.start)){const n=e.range.getDifference(t.range).map((t=>new Kd(t,e.key,e.oldValue,e.newValue,0))),i=e.range.getIntersection(t.range);return i&&o.aIsStrong&&n.push(new Kd(i,t.key,t.newValue,e.newValue,0)),0==n.length?[new Zd(0)]:n}return[e]})),ou(Kd,qd,((e,t)=>{if(e.range.start.hasSameParentAs(t.position)&&e.range.containsPosition(t.position)){const o=e.range._getTransformedByInsertion(t.position,t.howMany,!t.shouldReceiveAttributes).map((t=>new Kd(t,e.key,e.oldValue,e.newValue,e.baseVersion)));if(t.shouldReceiveAttributes){const n=du(t,e.key,e.oldValue);n&&o.unshift(n)}return o}return e.range=e.range._getTransformedByInsertion(t.position,t.howMany,!1)[0],[e]})),ou(Kd,Ud,((e,t)=>{const o=[];e.range.start.hasSameParentAs(t.deletionPosition)&&(e.range.containsPosition(t.deletionPosition)||e.range.start.isEqual(t.deletionPosition))&&o.push(lc._createFromPositionAndShift(t.graveyardPosition,1));const n=e.range._getTransformedByMergeOperation(t);return n.isCollapsed||o.push(n),o.map((t=>new Kd(t,e.key,e.oldValue,e.newValue,e.baseVersion)))})),ou(Kd,jd,((e,t)=>{const o=function(e,t){const o=lc._createFromPositionAndShift(t.sourcePosition,t.howMany);let n=null,i=[];o.containsRange(e,!0)?n=e:e.start.hasSameParentAs(o.start)?(i=e.getDifference(o),n=e.getIntersection(o)):i=[e];const r=[];for(let e of i){e=e._getTransformedByDeletion(t.sourcePosition,t.howMany);const o=t.getMovedRangeStart(),n=e.start.hasSameParentAs(o),i=e._getTransformedByInsertion(o,t.howMany,n);r.push(...i)}n&&r.push(n._getTransformedByMove(t.sourcePosition,t.targetPosition,t.howMany,!1)[0]);return r}(e.range,t);return o.map((t=>new Kd(t,e.key,e.oldValue,e.newValue,e.baseVersion)))})),ou(Kd,$d,((e,t)=>{if(e.range.end.isEqual(t.insertionPosition))return t.graveyardPosition||e.range.end.offset++,[e];if(e.range.start.hasSameParentAs(t.splitPosition)&&e.range.containsPosition(t.splitPosition)){const o=e.clone();return o.range=new lc(t.moveTargetPosition.clone(),e.range.end._getCombined(t.splitPosition,t.moveTargetPosition)),e.range.end=t.splitPosition.clone(),e.range.end.stickiness="toPrevious",[e,o]}return e.range=e.range._getTransformedBySplitOperation(t),[e]})),ou(qd,Kd,((e,t)=>{const o=[e];if(e.shouldReceiveAttributes&&e.position.hasSameParentAs(t.range.start)&&t.range.containsPosition(e.position)){const n=du(e,t.key,t.newValue);n&&o.push(n)}return o})),ou(qd,qd,((e,t,o)=>(e.position.isEqual(t.position)&&o.aIsStrong||(e.position=e.position._getTransformedByInsertOperation(t)),[e]))),ou(qd,jd,((e,t)=>(e.position=e.position._getTransformedByMoveOperation(t),[e]))),ou(qd,$d,((e,t)=>(e.position=e.position._getTransformedBySplitOperation(t),[e]))),ou(qd,Ud,((e,t)=>(e.position=e.position._getTransformedByMergeOperation(t),[e]))),ou(Wd,qd,((e,t)=>(e.oldRange&&(e.oldRange=e.oldRange._getTransformedByInsertOperation(t)[0]),e.newRange&&(e.newRange=e.newRange._getTransformedByInsertOperation(t)[0]),[e]))),ou(Wd,Wd,((e,t,o)=>{if(e.name==t.name){if(!o.aIsStrong)return[new Zd(0)];e.oldRange=t.newRange?t.newRange.clone():null}return[e]})),ou(Wd,Ud,((e,t)=>(e.oldRange&&(e.oldRange=e.oldRange._getTransformedByMergeOperation(t)),e.newRange&&(e.newRange=e.newRange._getTransformedByMergeOperation(t)),[e]))),ou(Wd,jd,((e,t)=>{const o=[e];if(e.oldRange&&(e.oldRange=lc._createFromRanges(e.oldRange._getTransformedByMoveOperation(t))),e.newRange){const n=e.newRange._getTransformedByMoveOperation(t);e.newRange=n[0];for(let t=1;t{if(e.oldRange&&(e.oldRange=e.oldRange._getTransformedBySplitOperation(t)),e.newRange){if(o.abRelation){const n=e.newRange._getTransformedBySplitOperation(t);return e.newRange.start.isEqual(t.splitPosition)&&o.abRelation.wasStartBeforeMergedElement?e.newRange.start=oc._createAt(t.insertionPosition):e.newRange.start.isEqual(t.splitPosition)&&!o.abRelation.wasInLeftElement?e.newRange.start=oc._createAt(t.moveTargetPosition):e.newRange.start=n.start,e.newRange.end.isEqual(t.splitPosition)&&o.abRelation.wasInRightElement?e.newRange.end=oc._createAt(t.moveTargetPosition):e.newRange.end.isEqual(t.splitPosition)&&o.abRelation.wasEndBeforeMergedElement?e.newRange.end=oc._createAt(t.insertionPosition):e.newRange.end=n.end,[e]}e.newRange=e.newRange._getTransformedBySplitOperation(t)}return[e]})),ou(Ud,qd,((e,t)=>(e.sourcePosition.hasSameParentAs(t.position)&&(e.howMany+=t.howMany),e.sourcePosition=e.sourcePosition._getTransformedByInsertOperation(t),e.targetPosition=e.targetPosition._getTransformedByInsertOperation(t),[e]))),ou(Ud,Ud,((e,t,o)=>{if(e.sourcePosition.isEqual(t.sourcePosition)&&e.targetPosition.isEqual(t.targetPosition)){if(o.bWasUndone){const o=t.graveyardPosition.path.slice();return o.push(0),e.sourcePosition=new oc(t.graveyardPosition.root,o),e.howMany=0,[e]}return[new Zd(0)]}if(e.sourcePosition.isEqual(t.sourcePosition)&&!e.targetPosition.isEqual(t.targetPosition)&&!o.bWasUndone&&"splitAtSource"!=o.abRelation){const n="$graveyard"==e.targetPosition.root.rootName,i="$graveyard"==t.targetPosition.root.rootName;if(i&&!n||!(n&&!i)&&o.aIsStrong){const o=t.targetPosition._getTransformedByMergeOperation(t),n=e.targetPosition._getTransformedByMergeOperation(t);return[new jd(o,e.howMany,n,0)]}return[new Zd(0)]}return e.sourcePosition.hasSameParentAs(t.targetPosition)&&(e.howMany+=t.howMany),e.sourcePosition=e.sourcePosition._getTransformedByMergeOperation(t),e.targetPosition=e.targetPosition._getTransformedByMergeOperation(t),e.graveyardPosition.isEqual(t.graveyardPosition)&&o.aIsStrong||(e.graveyardPosition=e.graveyardPosition._getTransformedByMergeOperation(t)),[e]})),ou(Ud,jd,((e,t,o)=>{const n=lc._createFromPositionAndShift(t.sourcePosition,t.howMany);return"remove"==t.type&&!o.bWasUndone&&e.deletionPosition.hasSameParentAs(t.sourcePosition)&&n.containsPosition(e.sourcePosition)?[new Zd(0)]:(t.sourcePosition.getShiftedBy(t.howMany).isEqual(e.sourcePosition)?e.sourcePosition.stickiness="toNone":t.targetPosition.isEqual(e.sourcePosition)&&"mergeSourceAffected"==o.abRelation?e.sourcePosition.stickiness="toNext":t.sourcePosition.isEqual(e.targetPosition)?(e.targetPosition.stickiness="toNone",e.howMany-=t.howMany):t.targetPosition.isEqual(e.targetPosition)&&"mergeTargetWasBefore"==o.abRelation?(e.targetPosition.stickiness="toPrevious",e.howMany+=t.howMany):(e.sourcePosition.hasSameParentAs(t.targetPosition)&&(e.howMany+=t.howMany),e.sourcePosition.hasSameParentAs(t.sourcePosition)&&(e.howMany-=t.howMany)),e.sourcePosition=e.sourcePosition._getTransformedByMoveOperation(t),e.targetPosition=e.targetPosition._getTransformedByMoveOperation(t),e.sourcePosition.stickiness="toPrevious",e.targetPosition.stickiness="toNext",e.graveyardPosition.isEqual(t.targetPosition)||(e.graveyardPosition=e.graveyardPosition._getTransformedByMoveOperation(t)),[e])})),ou(Ud,$d,((e,t,o)=>{if(t.graveyardPosition&&(e.graveyardPosition=e.graveyardPosition._getTransformedByDeletion(t.graveyardPosition,1),e.deletionPosition.isEqual(t.graveyardPosition)&&(e.howMany=t.howMany)),e.targetPosition.isEqual(t.splitPosition)){if(t.graveyardPosition&&e.deletionPosition.isEqual(t.graveyardPosition)||"mergeTargetNotMoved"==o.abRelation)return e.sourcePosition=e.sourcePosition._getTransformedBySplitOperation(t),[e]}if(e.sourcePosition.isEqual(t.splitPosition)){if("mergeSourceNotMoved"==o.abRelation)return e.howMany=0,e.targetPosition=e.targetPosition._getTransformedBySplitOperation(t),[e];if("mergeSameElement"==o.abRelation||e.sourcePosition.offset>0)return e.sourcePosition=t.moveTargetPosition.clone(),e.targetPosition=e.targetPosition._getTransformedBySplitOperation(t),[e]}return e.sourcePosition.hasSameParentAs(t.splitPosition)&&(e.howMany=t.splitPosition.offset),e.sourcePosition=e.sourcePosition._getTransformedBySplitOperation(t),e.targetPosition=e.targetPosition._getTransformedBySplitOperation(t),[e]})),ou(jd,qd,((e,t)=>{const o=lc._createFromPositionAndShift(e.sourcePosition,e.howMany)._getTransformedByInsertOperation(t,!1)[0];return e.sourcePosition=o.start,e.howMany=o.end.offset-o.start.offset,e.targetPosition.isEqual(t.position)||(e.targetPosition=e.targetPosition._getTransformedByInsertOperation(t)),[e]})),ou(jd,jd,((e,t,o)=>{const n=lc._createFromPositionAndShift(e.sourcePosition,e.howMany),i=lc._createFromPositionAndShift(t.sourcePosition,t.howMany);let r,s=o.aIsStrong,a=!o.aIsStrong;if("insertBefore"==o.abRelation||"insertAfter"==o.baRelation?a=!0:"insertAfter"!=o.abRelation&&"insertBefore"!=o.baRelation||(a=!1),r=e.targetPosition.isEqual(t.targetPosition)&&a?e.targetPosition._getTransformedByDeletion(t.sourcePosition,t.howMany):e.targetPosition._getTransformedByMove(t.sourcePosition,t.targetPosition,t.howMany),uu(e,t)&&uu(t,e))return[t.getReversed()];if(n.containsPosition(t.targetPosition)&&n.containsRange(i,!0))return n.start=n.start._getTransformedByMove(t.sourcePosition,t.targetPosition,t.howMany),n.end=n.end._getTransformedByMove(t.sourcePosition,t.targetPosition,t.howMany),hu([n],r);if(i.containsPosition(e.targetPosition)&&i.containsRange(n,!0))return n.start=n.start._getCombined(t.sourcePosition,t.getMovedRangeStart()),n.end=n.end._getCombined(t.sourcePosition,t.getMovedRangeStart()),hu([n],r);const l=se(e.sourcePosition.getParentPath(),t.sourcePosition.getParentPath());if("prefix"==l||"extension"==l)return n.start=n.start._getTransformedByMove(t.sourcePosition,t.targetPosition,t.howMany),n.end=n.end._getTransformedByMove(t.sourcePosition,t.targetPosition,t.howMany),hu([n],r);"remove"!=e.type||"remove"==t.type||o.aWasUndone||o.forceWeakRemove?"remove"==e.type||"remove"!=t.type||o.bWasUndone||o.forceWeakRemove||(s=!1):s=!0;const c=[],d=n.getDifference(i);for(const e of d){e.start=e.start._getTransformedByDeletion(t.sourcePosition,t.howMany),e.end=e.end._getTransformedByDeletion(t.sourcePosition,t.howMany);const o="same"==se(e.start.getParentPath(),t.getMovedRangeStart().getParentPath()),n=e._getTransformedByInsertion(t.getMovedRangeStart(),t.howMany,o);c.push(...n)}const u=n.getIntersection(i);return null!==u&&s&&(u.start=u.start._getCombined(t.sourcePosition,t.getMovedRangeStart()),u.end=u.end._getCombined(t.sourcePosition,t.getMovedRangeStart()),0===c.length?c.push(u):1==c.length?i.start.isBefore(n.start)||i.start.isEqual(n.start)?c.unshift(u):c.push(u):c.splice(1,0,u)),0===c.length?[new Zd(e.baseVersion)]:hu(c,r)})),ou(jd,$d,((e,t,o)=>{let n=e.targetPosition.clone();e.targetPosition.isEqual(t.insertionPosition)&&t.graveyardPosition&&"moveTargetAfter"!=o.abRelation||(n=e.targetPosition._getTransformedBySplitOperation(t));const i=lc._createFromPositionAndShift(e.sourcePosition,e.howMany);if(i.end.isEqual(t.insertionPosition))return t.graveyardPosition||e.howMany++,e.targetPosition=n,[e];if(i.start.hasSameParentAs(t.splitPosition)&&i.containsPosition(t.splitPosition)){let e=new lc(t.splitPosition,i.end);e=e._getTransformedBySplitOperation(t);return hu([new lc(i.start,t.splitPosition),e],n)}e.targetPosition.isEqual(t.splitPosition)&&"insertAtSource"==o.abRelation&&(n=t.moveTargetPosition),e.targetPosition.isEqual(t.insertionPosition)&&"insertBetween"==o.abRelation&&(n=e.targetPosition);const r=[i._getTransformedBySplitOperation(t)];if(t.graveyardPosition){const n=i.start.isEqual(t.graveyardPosition)||i.containsPosition(t.graveyardPosition);e.howMany>1&&n&&!o.aWasUndone&&r.push(lc._createFromPositionAndShift(t.insertionPosition,1))}return hu(r,n)})),ou(jd,Ud,((e,t,o)=>{const n=lc._createFromPositionAndShift(e.sourcePosition,e.howMany);if(t.deletionPosition.hasSameParentAs(e.sourcePosition)&&n.containsPosition(t.sourcePosition))if("remove"!=e.type||o.forceWeakRemove){if(1==e.howMany)return o.bWasUndone?(e.sourcePosition=t.graveyardPosition.clone(),e.targetPosition=e.targetPosition._getTransformedByMergeOperation(t),[e]):[new Zd(0)]}else if(!o.aWasUndone){const o=[];let n=t.graveyardPosition.clone(),i=t.targetPosition._getTransformedByMergeOperation(t);const r=e.targetPosition.getTransformedByOperation(t);e.howMany>1&&(o.push(new jd(e.sourcePosition,e.howMany-1,r,0)),n=n._getTransformedByMove(e.sourcePosition,r,e.howMany-1),i=i._getTransformedByMove(e.sourcePosition,r,e.howMany-1));const s=t.deletionPosition._getCombined(e.sourcePosition,r),a=new jd(n,1,s,0),l=a.getMovedRangeStart().path.slice();l.push(0);const c=new oc(a.targetPosition.root,l);i=i._getTransformedByMove(n,s,1);const d=new jd(i,t.howMany,c,0);return o.push(a),o.push(d),o}const i=lc._createFromPositionAndShift(e.sourcePosition,e.howMany)._getTransformedByMergeOperation(t);return e.sourcePosition=i.start,e.howMany=i.end.offset-i.start.offset,e.targetPosition=e.targetPosition._getTransformedByMergeOperation(t),[e]})),ou(Jd,qd,((e,t)=>(e.position=e.position._getTransformedByInsertOperation(t),[e]))),ou(Jd,Ud,((e,t)=>e.position.isEqual(t.deletionPosition)?(e.position=t.graveyardPosition.clone(),e.position.stickiness="toNext",[e]):(e.position=e.position._getTransformedByMergeOperation(t),[e]))),ou(Jd,jd,((e,t)=>(e.position=e.position._getTransformedByMoveOperation(t),[e]))),ou(Jd,Jd,((e,t,o)=>{if(e.position.isEqual(t.position)){if(!o.aIsStrong)return[new Zd(0)];e.oldName=t.newName}return[e]})),ou(Jd,$d,((e,t)=>{if("same"==se(e.position.path,t.splitPosition.getParentPath())&&!t.graveyardPosition){const t=new Jd(e.position.getShiftedBy(1),e.oldName,e.newName,0);return[e,t]}return e.position=e.position._getTransformedBySplitOperation(t),[e]})),ou(Yd,Yd,((e,t,o)=>{if(e.root===t.root&&e.key===t.key){if(!o.aIsStrong||e.newValue===t.newValue)return[new Zd(0)];e.oldValue=t.newValue}return[e]})),ou(Qd,Qd,((e,t)=>e.rootName===t.rootName&&e.isAdd===t.isAdd?[new Zd(0)]:[e])),ou($d,qd,((e,t)=>(e.splitPosition.hasSameParentAs(t.position)&&e.splitPosition.offset{if(!e.graveyardPosition&&!o.bWasUndone&&e.splitPosition.hasSameParentAs(t.sourcePosition)){const o=t.graveyardPosition.path.slice();o.push(0);const n=new oc(t.graveyardPosition.root,o),i=$d.getInsertionPosition(new oc(t.graveyardPosition.root,o)),r=new $d(n,0,i,null,0);return e.splitPosition=e.splitPosition._getTransformedByMergeOperation(t),e.insertionPosition=$d.getInsertionPosition(e.splitPosition),e.graveyardPosition=r.insertionPosition.clone(),e.graveyardPosition.stickiness="toNext",[r,e]}return e.splitPosition.hasSameParentAs(t.deletionPosition)&&!e.splitPosition.isAfter(t.deletionPosition)&&e.howMany--,e.splitPosition.hasSameParentAs(t.targetPosition)&&(e.howMany+=t.howMany),e.splitPosition=e.splitPosition._getTransformedByMergeOperation(t),e.insertionPosition=$d.getInsertionPosition(e.splitPosition),e.graveyardPosition&&(e.graveyardPosition=e.graveyardPosition._getTransformedByMergeOperation(t)),[e]})),ou($d,jd,((e,t,o)=>{const n=lc._createFromPositionAndShift(t.sourcePosition,t.howMany);if(e.graveyardPosition){const i=n.start.isEqual(e.graveyardPosition)||n.containsPosition(e.graveyardPosition);if(!o.bWasUndone&&i){const o=e.splitPosition._getTransformedByMoveOperation(t),n=e.graveyardPosition._getTransformedByMoveOperation(t),i=n.path.slice();i.push(0);const r=new oc(n.root,i);return[new jd(o,e.howMany,r,0)]}e.graveyardPosition=e.graveyardPosition._getTransformedByMoveOperation(t)}const i=e.splitPosition.isEqual(t.targetPosition);if(i&&("insertAtSource"==o.baRelation||"splitBefore"==o.abRelation))return e.howMany+=t.howMany,e.splitPosition=e.splitPosition._getTransformedByDeletion(t.sourcePosition,t.howMany),e.insertionPosition=$d.getInsertionPosition(e.splitPosition),[e];if(i&&o.abRelation&&o.abRelation.howMany){const{howMany:t,offset:n}=o.abRelation;return e.howMany+=t,e.splitPosition=e.splitPosition.getShiftedBy(n),[e]}if(e.splitPosition.hasSameParentAs(t.sourcePosition)&&n.containsPosition(e.splitPosition)){const o=t.howMany-(e.splitPosition.offset-t.sourcePosition.offset);return e.howMany-=o,e.splitPosition.hasSameParentAs(t.targetPosition)&&e.splitPosition.offset{if(e.splitPosition.isEqual(t.splitPosition)){if(!e.graveyardPosition&&!t.graveyardPosition)return[new Zd(0)];if(e.graveyardPosition&&t.graveyardPosition&&e.graveyardPosition.isEqual(t.graveyardPosition))return[new Zd(0)];if("splitBefore"==o.abRelation)return e.howMany=0,e.graveyardPosition=e.graveyardPosition._getTransformedBySplitOperation(t),[e]}if(e.graveyardPosition&&t.graveyardPosition&&e.graveyardPosition.isEqual(t.graveyardPosition)){const n="$graveyard"==e.splitPosition.root.rootName,i="$graveyard"==t.splitPosition.root.rootName;if(i&&!n||!(n&&!i)&&o.aIsStrong){const o=[];return t.howMany&&o.push(new jd(t.moveTargetPosition,t.howMany,t.splitPosition,0)),e.howMany&&o.push(new jd(e.splitPosition,e.howMany,e.moveTargetPosition,0)),o}return[new Zd(0)]}if(e.graveyardPosition&&(e.graveyardPosition=e.graveyardPosition._getTransformedBySplitOperation(t)),e.splitPosition.isEqual(t.insertionPosition)&&"splitBefore"==o.abRelation)return e.howMany++,[e];if(t.splitPosition.isEqual(e.insertionPosition)&&"splitBefore"==o.baRelation){const o=t.insertionPosition.path.slice();o.push(0);const n=new oc(t.insertionPosition.root,o);return[e,new jd(e.insertionPosition,1,n,0)]}return e.splitPosition.hasSameParentAs(t.splitPosition)&&e.splitPosition.offset{const o=t[0];o.isDocumentOperation&&gu.call(this,o)}),{priority:"low"})}function gu(e){const t=this.getTransformedByOperation(e);if(!this.isEqual(t)){const e=this.toPosition();this.path=t.path,this.root=t.root,this.fire("change",e)}}pu.prototype.is=function(e){return"livePosition"===e||"model:livePosition"===e||"position"==e||"model:position"===e};class fu{constructor(e={}){"string"==typeof e&&(e="transparent"===e?{isUndoable:!1}:{},T("batch-constructor-deprecated-string-type"));const{isUndoable:t=!0,isLocal:o=!0,isUndo:n=!1,isTyping:i=!1}=e;this.operations=[],this.isUndoable=t,this.isLocal=o,this.isUndo=n,this.isTyping=i}get type(){return T("batch-type-deprecated"),"default"}get baseVersion(){for(const e of this.operations)if(null!==e.baseVersion)return e.baseVersion;return null}addOperation(e){return e.isDocumentOperation&&(e.batch=this,this.operations.push(e)),e}}class bu{constructor(e){this._changesInElement=new Map,this._elementsSnapshots=new Map,this._elementChildrenSnapshots=new Map,this._elementState=new Map,this._changedMarkers=new Map,this._changedRoots=new Map,this._changeCount=0,this._cachedChanges=null,this._cachedChangesWithGraveyard=null,this._refreshedItems=new Set,this._markerCollection=e}get isEmpty(){return 0==this._changesInElement.size&&0==this._changedMarkers.size&&0==this._changedRoots.size}bufferOperation(e){const t=e;switch(t.type){case"insert":if(this._isInInsertedElement(t.position.parent))return;this._markInsert(t.position.parent,t.position.offset,t.nodes.maxOffset);break;case"addAttribute":case"removeAttribute":case"changeAttribute":for(const e of t.range.getItems({shallow:!0}))this._isInInsertedElement(e.parent)||this._markAttribute(e);break;case"remove":case"move":case"reinsert":{if(t.sourcePosition.isEqual(t.targetPosition)||t.sourcePosition.getShiftedBy(t.howMany).isEqual(t.targetPosition))return;const e=this._isInInsertedElement(t.sourcePosition.parent),o=this._isInInsertedElement(t.targetPosition.parent);e||this._markRemove(t.sourcePosition.parent,t.sourcePosition.offset,t.howMany),o||this._markInsert(t.targetPosition.parent,t.getMovedRangeStart().offset,t.howMany);const n=lc._createFromPositionAndShift(t.sourcePosition,t.howMany);for(const e of n.getItems({shallow:!0}))this._setElementState(e,"move");break}case"rename":{if(this._isInInsertedElement(t.position.parent))return;this._markRemove(t.position.parent,t.position.offset,1),this._markInsert(t.position.parent,t.position.offset,1);const e=lc._createFromPositionAndShift(t.position,1);for(const t of this._markerCollection.getMarkersIntersectingRange(e)){const e=t.getData();this.bufferMarkerChange(t.name,e,e)}this._setElementState(t.position.nodeAfter,"rename");break}case"split":{const e=t.splitPosition.parent;if(!this._isInInsertedElement(e)){this._markRemove(e,t.splitPosition.offset,t.howMany);const o=lc._createFromPositionAndShift(t.splitPosition,t.howMany);for(const e of o.getItems({shallow:!0}))this._setElementState(e,"move")}this._isInInsertedElement(t.insertionPosition.parent)||this._markInsert(t.insertionPosition.parent,t.insertionPosition.offset,1),t.graveyardPosition&&(this._markRemove(t.graveyardPosition.parent,t.graveyardPosition.offset,1),this._setElementState(t.graveyardPosition.nodeAfter,"move"));break}case"merge":{const e=t.sourcePosition.parent;this._isInInsertedElement(e.parent)||this._markRemove(e.parent,e.startOffset,1);const o=t.graveyardPosition.parent;this._markInsert(o,t.graveyardPosition.offset,1),this._setElementState(e,"move");const n=t.targetPosition.parent;if(!this._isInInsertedElement(n)){this._markInsert(n,t.targetPosition.offset,e.maxOffset);const o=lc._createFromPositionAndShift(t.sourcePosition,t.howMany);for(const e of o.getItems({shallow:!0}))this._setElementState(e,"move")}break}case"detachRoot":case"addRoot":{const e=t.affectedSelectable;if(!e._isLoaded)return;if(e.isAttached()==t.isAdd)return;this._bufferRootStateChange(t.rootName,t.isAdd);break}case"addRootAttribute":case"removeRootAttribute":case"changeRootAttribute":{if(!t.root._isLoaded)return;const e=t.root.rootName;this._bufferRootAttributeChange(e,t.key,t.oldValue,t.newValue);break}}this._cachedChanges=null}bufferMarkerChange(e,t,o){t.range&&t.range.root.is("rootElement")&&!t.range.root._isLoaded&&(t.range=null),o.range&&o.range.root.is("rootElement")&&!o.range.root._isLoaded&&(o.range=null);let n=this._changedMarkers.get(e);n?n.newMarkerData=o:(n={newMarkerData:o,oldMarkerData:t},this._changedMarkers.set(e,n)),null==n.oldMarkerData.range&&null==o.range&&this._changedMarkers.delete(e)}getMarkersToRemove(){const e=[];for(const[t,o]of this._changedMarkers)null!=o.oldMarkerData.range&&e.push({name:t,range:o.oldMarkerData.range});return e}getMarkersToAdd(){const e=[];for(const[t,o]of this._changedMarkers)null!=o.newMarkerData.range&&e.push({name:t,range:o.newMarkerData.range});return e}getChangedMarkers(){return Array.from(this._changedMarkers).map((([e,t])=>({name:e,data:{oldRange:t.oldMarkerData.range,newRange:t.newMarkerData.range}})))}hasDataChanges(){if(this.getChanges().length)return!0;if(this._changedRoots.size>0)return!0;for(const{newMarkerData:e,oldMarkerData:t}of this._changedMarkers.values()){if(e.affectsData!==t.affectsData)return!0;if(e.affectsData){const o=e.range&&!t.range,n=!e.range&&t.range,i=e.range&&t.range&&!e.range.isEqual(t.range);if(o||n||i)return!0}}return!1}getChanges(e={}){if(this._cachedChanges)return e.includeChangesInGraveyard?this._cachedChangesWithGraveyard.slice():this._cachedChanges.slice();let t=[];for(const e of this._changesInElement.keys()){const o=this._changesInElement.get(e).sort(((e,t)=>e.offset===t.offset?e.type!=t.type?"remove"==e.type?-1:1:0:e.offsete.position.root!=t.position.root?e.position.root.rootNamee));for(const e of t)delete e.changeCount,"attribute"==e.type&&(delete e.position,delete e.length);return this._changeCount=0,this._cachedChangesWithGraveyard=t,this._cachedChanges=t.filter(Au),e.includeChangesInGraveyard?this._cachedChangesWithGraveyard.slice():this._cachedChanges.slice()}getChangedRoots(){return Array.from(this._changedRoots.values()).map((e=>{const t={...e};return void 0!==t.state&&delete t.attributes,t}))}getRefreshedItems(){return new Set(this._refreshedItems)}reset(){this._changesInElement.clear(),this._elementChildrenSnapshots.clear(),this._elementsSnapshots.clear(),this._elementState.clear(),this._changedMarkers.clear(),this._changedRoots.clear(),this._refreshedItems.clear(),this._cachedChanges=null}_refreshItem(e){if(this._isInInsertedElement(e.parent))return;this._markRemove(e.parent,e.startOffset,e.offsetSize),this._markInsert(e.parent,e.startOffset,e.offsetSize),this._refreshedItems.add(e),this._setElementState(e,"refresh");const t=lc._createOn(e);for(const e of this._markerCollection.getMarkersIntersectingRange(t)){const t=e.getData();this.bufferMarkerChange(e.name,t,t)}this._cachedChanges=null}_bufferRootLoad(e){if(e.isAttached()){this._bufferRootStateChange(e.rootName,!0),this._markInsert(e,0,e.maxOffset);for(const t of e.getAttributeKeys())this._bufferRootAttributeChange(e.rootName,t,null,e.getAttribute(t));for(const t of this._markerCollection)if(t.getRange().root==e){const e=t.getData();this.bufferMarkerChange(t.name,{...e,range:null},e)}}}_bufferRootStateChange(e,t){if(!this._changedRoots.has(e))return void this._changedRoots.set(e,{name:e,state:t?"attached":"detached"});const o=this._changedRoots.get(e);void 0!==o.state?(delete o.state,void 0===o.attributes&&this._changedRoots.delete(e)):o.state=t?"attached":"detached"}_bufferRootAttributeChange(e,t,o,n){const i=this._changedRoots.get(e)||{name:e},r=i.attributes||{};if(r[t]){const e=r[t];n===e.oldValue?delete r[t]:e.newValue=n}else r[t]={oldValue:o,newValue:n};0===Object.entries(r).length?(delete i.attributes,void 0===i.state&&this._changedRoots.delete(e)):(i.attributes=r,this._changedRoots.set(e,i))}_markInsert(e,t,o){if(e.root.is("rootElement")&&!e.root._isLoaded)return;const n={type:"insert",offset:t,howMany:o,count:this._changeCount++};this._markChange(e,n)}_markRemove(e,t,o){if(e.root.is("rootElement")&&!e.root._isLoaded)return;const n={type:"remove",offset:t,howMany:o,count:this._changeCount++};this._markChange(e,n),this._removeAllNestedChanges(e,t,o)}_markAttribute(e){if(e.root.is("rootElement")&&!e.root._isLoaded)return;const t={type:"attribute",offset:e.startOffset,howMany:e.offsetSize,count:this._changeCount++};this._markChange(e.parent,t)}_markChange(e,t){this._makeSnapshots(e);const o=this._getChangesForElement(e);this._handleChange(t,o),o.push(t);for(let e=0;eo&&this._elementState.set(e,t)}_getDiffActionForNode(e,t){if(!e.is("element"))return t;if(!this._elementsSnapshots.has(e))return t;const o=this._elementState.get(e);return o&&"move"!=o?o:t}_getChangesForElement(e){let t;return this._changesInElement.has(e)?t=this._changesInElement.get(e):(t=[],this._changesInElement.set(e,t)),t}_makeSnapshots(e){if(this._elementChildrenSnapshots.has(e))return;const t=_u(e.getChildren());this._elementChildrenSnapshots.set(e,t);for(const e of t)this._elementsSnapshots.set(e.node,e)}_handleChange(e,t){e.nodesToHandle=e.howMany;for(const o of t){const n=e.offset+e.howMany,i=o.offset+o.howMany;if("insert"==e.type&&("insert"==o.type&&(e.offset<=o.offset?o.offset+=e.howMany:e.offseto.offset){if(n>i){const e={type:"attribute",offset:i,howMany:n-i,count:this._changeCount++};this._handleChange(e,t),t.push(e)}e.nodesToHandle=o.offset-e.offset,e.howMany=e.nodesToHandle}else e.offset>=o.offset&&e.offseti?(e.nodesToHandle=n-i,e.offset=i):e.nodesToHandle=0);if("remove"==o.type&&e.offseto.offset){const i={type:"attribute",offset:o.offset,howMany:n-o.offset,count:this._changeCount++};this._handleChange(i,t),t.push(i),e.nodesToHandle=o.offset-e.offset,e.howMany=e.nodesToHandle}"attribute"==o.type&&(e.offset>=o.offset&&n<=i?(e.nodesToHandle=0,e.howMany=0,e.offset=0):e.offset<=o.offset&&n>=i&&(o.howMany=0))}}e.howMany=e.nodesToHandle,delete e.nodesToHandle}_getInsertDiff(e,t,o,n,i){const r={type:"insert",position:oc._createAt(e,t),name:n.name,attributes:new Map(n.attributes),length:1,changeCount:this._changeCount++,action:o};return"insert"!=o&&i&&(r.before={name:i.name,attributes:new Map(i.attributes)}),r}_getRemoveDiff(e,t,o,n){return{type:"remove",action:o,position:oc._createAt(e,t),name:n.name,attributes:new Map(n.attributes),length:1,changeCount:this._changeCount++}}_getAttributesDiff(e,t,o){const n=[];o=new Map(o);for(const[i,r]of t){const t=o.has(i)?o.get(i):null;t!==r&&n.push({type:"attribute",position:e.start,range:e.clone(),length:1,attributeKey:i,attributeOldValue:r,attributeNewValue:t,changeCount:this._changeCount++}),o.delete(i)}for(const[t,i]of o)n.push({type:"attribute",position:e.start,range:e.clone(),length:1,attributeKey:t,attributeOldValue:null,attributeNewValue:i,changeCount:this._changeCount++});return n}_isInInsertedElement(e){const t=e.parent;if(!t)return!1;const o=this._changesInElement.get(t),n=e.startOffset;if(o)for(const e of o)if("insert"==e.type&&n>=e.offset&&nn){for(let t=0;t1500)for(let t=0;tthis._version+1&&this._gaps.set(this._version,e),this._version=e}get lastOperation(){return this._operations[this._operations.length-1]}addOperation(e){if(e.baseVersion!==this.version)throw new S("model-document-history-addoperation-incorrect-version",this,{operation:e,historyVersion:this.version});this._operations.push(e),this._version++,this._baseVersionToOperationIndex.set(e.baseVersion,this._operations.length-1)}getOperations(e,t=this.version){if(!this._operations.length)return[];const o=this._operations[0];void 0===e&&(e=o.baseVersion);let n=t-1;for(const[t,o]of this._gaps)e>t&&et&&nthis.lastOperation.baseVersion)return[];let i=this._baseVersionToOperationIndex.get(e);void 0===i&&(i=0);let r=this._baseVersionToOperationIndex.get(n);return void 0===r&&(r=this._operations.length-1),this._operations.slice(i,r+1)}getOperation(e){const t=this._baseVersionToOperationIndex.get(e);if(void 0!==t)return this._operations[t]}setOperationAsUndone(e,t){this._undoPairs.set(t,e),this._undoneOperations.add(e)}isUndoingOperation(e){return this._undoPairs.has(e)}isUndoneOperation(e){return this._undoneOperations.has(e)}getUndoneOperation(e){return this._undoPairs.get(e)}reset(){this._version=0,this._undoPairs=new Map,this._operations=[],this._undoneOperations=new Set,this._gaps=new Map,this._baseVersionToOperationIndex=new Map}}class vu extends Fc{constructor(e,t,o="main"){super(t),this._isAttached=!0,this._isLoaded=!0,this._document=e,this.rootName=o}get document(){return this._document}isAttached(){return this._isAttached}toJSON(){return this.rootName}}vu.prototype.is=function(e,t){return t?t===this.name&&("rootElement"===e||"model:rootElement"===e||"element"===e||"model:element"===e):"rootElement"===e||"model:rootElement"===e||"element"===e||"model:element"===e||"node"===e||"model:node"===e};const xu="$graveyard";class Eu extends(V()){constructor(e){super(),this.model=e,this.history=new Cu,this.selection=new Sc(this),this.roots=new tr({idProperty:"rootName"}),this.differ=new ku(e.markers),this.isReadOnly=!1,this._postFixers=new Set,this._hasSelectionChangedFromTheLastChangeBlock=!1,this.createRoot("$root",xu),this.listenTo(e,"applyOperation",((e,t)=>{const o=t[0];o.isDocumentOperation&&this.differ.bufferOperation(o)}),{priority:"high"}),this.listenTo(e,"applyOperation",((e,t)=>{const o=t[0];o.isDocumentOperation&&this.history.addOperation(o)}),{priority:"low"}),this.listenTo(this.selection,"change",(()=>{this._hasSelectionChangedFromTheLastChangeBlock=!0})),this.listenTo(e.markers,"update",((e,t,o,n,i)=>{const r={...t.getData(),range:n};this.differ.bufferMarkerChange(t.name,i,r),null===o&&t.on("change",((e,o)=>{const n=t.getData();this.differ.bufferMarkerChange(t.name,{...n,range:o},n)}))})),this.registerPostFixer((e=>{let t=!1;for(const o of this.roots)o.isAttached()||o.isEmpty||(e.remove(e.createRangeIn(o)),t=!0);for(const o of this.model.markers)o.getRange().root.isAttached()||(e.removeMarker(o),t=!0);return t}))}get version(){return this.history.version}set version(e){this.history.version=e}get graveyard(){return this.getRoot(xu)}createRoot(e="$root",t="main"){if(this.roots.get(t))throw new S("model-document-createroot-name-exists",this,{name:t});const o=new vu(this,e,t);return this.roots.add(o),o}destroy(){this.selection.destroy(),this.stopListening()}getRoot(e="main"){return this.roots.get(e)}getRootNames(e=!1){return this.getRoots(e).map((e=>e.rootName))}getRoots(e=!1){return this.roots.filter((t=>t!=this.graveyard&&(e||t.isAttached())&&t._isLoaded))}registerPostFixer(e){this._postFixers.add(e)}toJSON(){const e=ms(this);return e.selection="[engine.model.DocumentSelection]",e.model="[engine.model.Model]",e}_handleChangeBlock(e){this._hasDocumentChangedFromTheLastChangeBlock()&&(this._callPostFixers(e),this.selection.refresh(),this.differ.hasDataChanges()?this.fire("change:data",e.batch):this.fire("change",e.batch),this.selection.refresh(),this.differ.reset()),this._hasSelectionChangedFromTheLastChangeBlock=!1}_hasDocumentChangedFromTheLastChangeBlock(){return!this.differ.isEmpty||this._hasSelectionChangedFromTheLastChangeBlock}_getDefaultRoot(){const e=this.getRoots();return e.length?e[0]:this.graveyard}_getDefaultRange(){const e=this._getDefaultRoot(),t=this.model,o=t.schema,n=t.createPositionFromPath(e,[0]);return o.getNearestSelectionRange(n)||t.createRange(n)}_validateSelectionRange(e){return e.start.isValid()&&e.end.isValid()&&Du(e.start)&&Du(e.end)}_callPostFixers(e){let t=!1;do{for(const o of this._postFixers)if(this.selection.refresh(),t=o(e),t)break}while(t)}}function Du(e){const t=e.textNode;if(t){const o=t.data,n=e.offset-t.startOffset;return!hr(o,n)&&!pr(o,n)}return!0}class Bu extends(V()){constructor(){super(...arguments),this._markers=new Map}[Symbol.iterator](){return this._markers.values()}has(e){const t=e instanceof Su?e.name:e;return this._markers.has(t)}get(e){return this._markers.get(e)||null}_set(e,t,o=!1,n=!1){const i=e instanceof Su?e.name:e;if(i.includes(","))throw new S("markercollection-incorrect-marker-name",this);const r=this._markers.get(i);if(r){const e=r.getData(),s=r.getRange();let a=!1;return s.isEqual(t)||(r._attachLiveRange(vc.fromRange(t)),a=!0),o!=r.managedUsingOperations&&(r._managedUsingOperations=o,a=!0),"boolean"==typeof n&&n!=r.affectsData&&(r._affectsData=n,a=!0),a&&this.fire(`update:${i}`,r,s,t,e),r}const s=vc.fromRange(t),a=new Su(i,s,o,n);return this._markers.set(i,a),this.fire(`update:${i}`,a,null,t,{...a.getData(),range:null}),a}_remove(e){const t=e instanceof Su?e.name:e,o=this._markers.get(t);return!!o&&(this._markers.delete(t),this.fire(`update:${t}`,o,o.getRange(),null,o.getData()),this._destroyMarker(o),!0)}_refresh(e){const t=e instanceof Su?e.name:e,o=this._markers.get(t);if(!o)throw new S("markercollection-refresh-marker-not-exists",this);const n=o.getRange();this.fire(`update:${t}`,o,n,n,o.getData())}*getMarkersAtPosition(e){for(const t of this)t.getRange().containsPosition(e)&&(yield t)}*getMarkersIntersectingRange(e){for(const t of this)null!==t.getRange().getIntersection(e)&&(yield t)}destroy(){for(const e of this._markers.values())this._destroyMarker(e);this._markers=null,this.stopListening()}*getMarkersGroup(e){for(const t of this._markers.values())t.name.startsWith(e+":")&&(yield t)}_destroyMarker(e){e.stopListening(),e._detachLiveRange()}}class Su extends(V(Ql)){constructor(e,t,o,n){super(),this.name=e,this._liveRange=this._attachLiveRange(t),this._managedUsingOperations=o,this._affectsData=n}get managedUsingOperations(){if(!this._liveRange)throw new S("marker-destroyed",this);return this._managedUsingOperations}get affectsData(){if(!this._liveRange)throw new S("marker-destroyed",this);return this._affectsData}getData(){return{range:this.getRange(),affectsData:this.affectsData,managedUsingOperations:this.managedUsingOperations}}getStart(){if(!this._liveRange)throw new S("marker-destroyed",this);return this._liveRange.start.clone()}getEnd(){if(!this._liveRange)throw new S("marker-destroyed",this);return this._liveRange.end.clone()}getRange(){if(!this._liveRange)throw new S("marker-destroyed",this);return this._liveRange.toRange()}_attachLiveRange(e){return this._liveRange&&this._detachLiveRange(),e.delegate("change:range").to(this),e.delegate("change:content").to(this),this._liveRange=e,e}_detachLiveRange(){this._liveRange.stopDelegating("change:range",this),this._liveRange.stopDelegating("change:content",this),this._liveRange.detach(),this._liveRange=null}}Su.prototype.is=function(e){return"marker"===e||"model:marker"===e};class Tu extends Rd{constructor(e,t){super(null),this.sourcePosition=e.clone(),this.howMany=t}get type(){return"detach"}get affectedSelectable(){return null}toJSON(){const e=super.toJSON();return e.sourcePosition=this.sourcePosition.toJSON(),e}_validate(){if(this.sourcePosition.root.document)throw new S("detach-operation-on-document-node",this)}_execute(){zd(lc._createFromPositionAndShift(this.sourcePosition,this.howMany))}static get className(){return"DetachOperation"}}class Iu extends Ql{constructor(e){super(),this.markers=new Map,this._children=new Pc,e&&this._insertChild(0,e)}[Symbol.iterator](){return this.getChildren()}get childCount(){return this._children.length}get maxOffset(){return this._children.maxOffset}get isEmpty(){return 0===this.childCount}get nextSibling(){return null}get previousSibling(){return null}get root(){return this}get parent(){return null}get document(){return null}isAttached(){return!1}getAncestors(){return[]}getChild(e){return this._children.getNode(e)}getChildAtOffset(e){return this._children.getNodeAtOffset(e)}getChildren(){return this._children[Symbol.iterator]()}getChildIndex(e){return this._children.getNodeIndex(e)}getChildStartOffset(e){return this._children.getNodeStartOffset(e)}getPath(){return[]}getNodeByPath(e){let t=this;for(const o of e)t=t.getChildAtOffset(o);return t}offsetToIndex(e){return this._children.offsetToIndex(e)}toJSON(){const e=[];for(const t of this._children)e.push(t.toJSON());return e}static fromJSON(e){const t=[];for(const o of e)o.name?t.push(Fc.fromJSON(o)):t.push(Dc.fromJSON(o));return new Iu(t)}_appendChild(e){this._insertChild(this.childCount,e)}_insertChild(e,t){const o=function(e){if("string"==typeof e)return[new Dc(e)];ae(e)||(e=[e]);return Array.from(e).map((e=>"string"==typeof e?new Dc(e):e instanceof Xl?new Dc(e.data,e.getAttributes()):e))}(t);for(const e of o)null!==e.parent&&e._remove(),e.parent=this;this._children._insertNodes(e,o)}_removeChildren(e,t=1){const o=this._children._removeNodes(e,t);for(const e of o)e.parent=null;return o}_removeChildrenArray(e){this._children._removeNodesArray(e);for(const t of e)t.parent=null}}Iu.prototype.is=function(e){return"documentFragment"===e||"model:documentFragment"===e};class Pu{constructor(e,t){this.model=e,this.batch=t}createText(e,t){return new Dc(e,t)}createElement(e,t){return new Fc(e,t)}createDocumentFragment(){return new Iu}cloneElement(e,t=!0){return e._clone(t)}insert(e,t,o=0){if(this._assertWriterUsedCorrectly(),e instanceof Dc&&""==e.data)return;const n=oc._createAt(t,o);if(e.parent){if(Ou(e.root,n.root))return void this.move(lc._createOn(e),n);if(e.root.document)throw new S("model-writer-insert-forbidden-move",this);this.remove(e)}const i=n.root.document?n.root.document.version:null,r=e instanceof Iu?e._removeChildren(0,e.childCount):e,s=new qd(n,r,i);if(e instanceof Dc&&(s.shouldReceiveAttributes=!0),this.batch.addOperation(s),this.model.applyOperation(s),e instanceof Iu)for(const[t,o]of e.markers){const e=oc._createAt(o.root,0),i={range:new lc(o.start._getCombined(e,n),o.end._getCombined(e,n)),usingOperation:!0,affectsData:!0};this.model.markers.has(t)?this.updateMarker(t,i):this.addMarker(t,i)}}insertText(e,t,o,n){t instanceof Iu||t instanceof Fc||t instanceof oc?this.insert(this.createText(e),t,o):this.insert(this.createText(e,t),o,n)}insertElement(e,t,o,n){t instanceof Iu||t instanceof Fc||t instanceof oc?this.insert(this.createElement(e),t,o):this.insert(this.createElement(e,t),o,n)}append(e,t){this.insert(e,t,"end")}appendText(e,t,o){t instanceof Iu||t instanceof Fc?this.insert(this.createText(e),t,"end"):this.insert(this.createText(e,t),o,"end")}appendElement(e,t,o){t instanceof Iu||t instanceof Fc?this.insert(this.createElement(e),t,"end"):this.insert(this.createElement(e,t),o,"end")}setAttribute(e,t,o){if(this._assertWriterUsedCorrectly(),o instanceof lc){const n=o.getMinimalFlatRanges();for(const o of n)Fu(this,e,t,o)}else Ru(this,e,t,o)}setAttributes(e,t){for(const[o,n]of lr(e))this.setAttribute(o,n,t)}removeAttribute(e,t){if(this._assertWriterUsedCorrectly(),t instanceof lc){const o=t.getMinimalFlatRanges();for(const t of o)Fu(this,e,null,t)}else Ru(this,e,null,t)}clearAttributes(e){this._assertWriterUsedCorrectly();const t=e=>{for(const t of e.getAttributeKeys())this.removeAttribute(t,e)};if(e instanceof lc)for(const o of e.getItems())t(o);else t(e)}move(e,t,o){if(this._assertWriterUsedCorrectly(),!(e instanceof lc))throw new S("writer-move-invalid-range",this);if(!e.isFlat)throw new S("writer-move-range-not-flat",this);const n=oc._createAt(t,o);if(n.isEqual(e.start))return;if(this._addOperationForAffectedMarkers("move",e),!Ou(e.root,n.root))throw new S("writer-move-different-document",this);const i=e.root.document?e.root.document.version:null,r=new jd(e.start,e.end.offset-e.start.offset,n,i);this.batch.addOperation(r),this.model.applyOperation(r)}remove(e){this._assertWriterUsedCorrectly();const t=(e instanceof lc?e:lc._createOn(e)).getMinimalFlatRanges().reverse();for(const e of t)this._addOperationForAffectedMarkers("move",e),zu(e.start,e.end.offset-e.start.offset,this.batch,this.model)}merge(e){this._assertWriterUsedCorrectly();const t=e.nodeBefore,o=e.nodeAfter;if(this._addOperationForAffectedMarkers("merge",e),!(t instanceof Fc))throw new S("writer-merge-no-element-before",this);if(!(o instanceof Fc))throw new S("writer-merge-no-element-after",this);e.root.document?this._merge(e):this._mergeDetached(e)}createPositionFromPath(e,t,o){return this.model.createPositionFromPath(e,t,o)}createPositionAt(e,t){return this.model.createPositionAt(e,t)}createPositionAfter(e){return this.model.createPositionAfter(e)}createPositionBefore(e){return this.model.createPositionBefore(e)}createRange(e,t){return this.model.createRange(e,t)}createRangeIn(e){return this.model.createRangeIn(e)}createRangeOn(e){return this.model.createRangeOn(e)}createSelection(...e){return this.model.createSelection(...e)}_mergeDetached(e){const t=e.nodeBefore,o=e.nodeAfter;this.move(lc._createIn(o),oc._createAt(t,"end")),this.remove(o)}_merge(e){const t=oc._createAt(e.nodeBefore,"end"),o=oc._createAt(e.nodeAfter,0),n=e.root.document.graveyard,i=new oc(n,[0]),r=e.root.document.version,s=new Ud(o,e.nodeAfter.maxOffset,t,i,r);this.batch.addOperation(s),this.model.applyOperation(s)}rename(e,t){if(this._assertWriterUsedCorrectly(),!(e instanceof Fc))throw new S("writer-rename-not-element-instance",this);const o=e.root.document?e.root.document.version:null,n=new Jd(oc._createBefore(e),e.name,t,o);this.batch.addOperation(n),this.model.applyOperation(n)}split(e,t){this._assertWriterUsedCorrectly();let o,n,i=e.parent;if(!i.parent)throw new S("writer-split-element-no-parent",this);if(t||(t=i.parent),!e.parent.getAncestors({includeSelf:!0}).includes(t))throw new S("writer-split-invalid-limit-element",this);do{const t=i.root.document?i.root.document.version:null,r=i.maxOffset-e.offset,s=$d.getInsertionPosition(e),a=new $d(e,r,s,null,t);this.batch.addOperation(a),this.model.applyOperation(a),o||n||(o=i,n=e.parent.nextSibling),i=(e=this.createPositionAfter(e.parent)).parent}while(i!==t);return{position:e,range:new lc(oc._createAt(o,"end"),oc._createAt(n,0))}}wrap(e,t){if(this._assertWriterUsedCorrectly(),!e.isFlat)throw new S("writer-wrap-range-not-flat",this);const o=t instanceof Fc?t:new Fc(t);if(o.childCount>0)throw new S("writer-wrap-element-not-empty",this);if(null!==o.parent)throw new S("writer-wrap-element-attached",this);this.insert(o,e.start);const n=new lc(e.start.getShiftedBy(1),e.end.getShiftedBy(1));this.move(n,oc._createAt(o,0))}unwrap(e){if(this._assertWriterUsedCorrectly(),null===e.parent)throw new S("writer-unwrap-element-no-parent",this);this.move(lc._createIn(e),this.createPositionAfter(e)),this.remove(e)}addMarker(e,t){if(this._assertWriterUsedCorrectly(),!t||"boolean"!=typeof t.usingOperation)throw new S("writer-addmarker-no-usingoperation",this);const o=t.usingOperation,n=t.range,i=void 0!==t.affectsData&&t.affectsData;if(this.model.markers.has(e))throw new S("writer-addmarker-marker-exists",this);if(!n)throw new S("writer-addmarker-no-range",this);return o?(Mu(this,e,null,n,i),this.model.markers.get(e)):this.model.markers._set(e,n,o,i)}updateMarker(e,t){this._assertWriterUsedCorrectly();const o="string"==typeof e?e:e.name,n=this.model.markers.get(o);if(!n)throw new S("writer-updatemarker-marker-not-exists",this);if(!t)return T("writer-updatemarker-reconvert-using-editingcontroller",{markerName:o}),void this.model.markers._refresh(n);const i="boolean"==typeof t.usingOperation,r="boolean"==typeof t.affectsData,s=r?t.affectsData:n.affectsData;if(!i&&!t.range&&!r)throw new S("writer-updatemarker-wrong-options",this);const a=n.getRange(),l=t.range?t.range:a;i&&t.usingOperation!==n.managedUsingOperations?t.usingOperation?Mu(this,o,null,l,s):(Mu(this,o,a,null,s),this.model.markers._set(o,l,void 0,s)):n.managedUsingOperations?Mu(this,o,a,l,s):this.model.markers._set(o,l,void 0,s)}removeMarker(e){this._assertWriterUsedCorrectly();const t="string"==typeof e?e:e.name;if(!this.model.markers.has(t))throw new S("writer-removemarker-no-marker",this);const o=this.model.markers.get(t);if(!o.managedUsingOperations)return void this.model.markers._remove(t);Mu(this,t,o.getRange(),null,o.affectsData)}addRoot(e,t="$root"){this._assertWriterUsedCorrectly();const o=this.model.document.getRoot(e);if(o&&o.isAttached())throw new S("writer-addroot-root-exists",this);const n=this.model.document,i=new Qd(e,t,!0,n,n.version);return this.batch.addOperation(i),this.model.applyOperation(i),this.model.document.getRoot(e)}detachRoot(e){this._assertWriterUsedCorrectly();const t="string"==typeof e?this.model.document.getRoot(e):e;if(!t||!t.isAttached())throw new S("writer-detachroot-no-root",this);for(const e of this.model.markers)e.getRange().root===t&&this.removeMarker(e);for(const e of t.getAttributeKeys())this.removeAttribute(e,t);this.remove(this.createRangeIn(t));const o=this.model.document,n=new Qd(t.rootName,t.name,!1,o,o.version);this.batch.addOperation(n),this.model.applyOperation(n)}setSelection(...e){this._assertWriterUsedCorrectly(),this.model.document.selection._setTo(...e)}setSelectionFocus(e,t){this._assertWriterUsedCorrectly(),this.model.document.selection._setFocus(e,t)}setSelectionAttribute(e,t){if(this._assertWriterUsedCorrectly(),"string"==typeof e)this._setSelectionAttribute(e,t);else for(const[t,o]of lr(e))this._setSelectionAttribute(t,o)}removeSelectionAttribute(e){if(this._assertWriterUsedCorrectly(),"string"==typeof e)this._removeSelectionAttribute(e);else for(const t of e)this._removeSelectionAttribute(t)}overrideSelectionGravity(){return this.model.document.selection._overrideGravity()}restoreSelectionGravity(e){this.model.document.selection._restoreGravity(e)}_setSelectionAttribute(e,t){const o=this.model.document.selection;if(o.isCollapsed&&o.anchor.parent.isEmpty){const n=Sc._getStoreAttributeKey(e);this.setAttribute(n,t,o.anchor.parent)}o._setAttribute(e,t)}_removeSelectionAttribute(e){const t=this.model.document.selection;if(t.isCollapsed&&t.anchor.parent.isEmpty){const o=Sc._getStoreAttributeKey(e);this.removeAttribute(o,t.anchor.parent)}t._removeAttribute(e)}_assertWriterUsedCorrectly(){if(this.model._currentWriter!==this)throw new S("writer-incorrect-use",this)}_addOperationForAffectedMarkers(e,t){for(const o of this.model.markers){if(!o.managedUsingOperations)continue;const n=o.getRange();let i=!1;if("move"===e){const e=t;i=e.containsPosition(n.start)||e.start.isEqual(n.start)||e.containsPosition(n.end)||e.end.isEqual(n.end)}else{const e=t,o=e.nodeBefore,r=e.nodeAfter,s=n.start.parent==o&&n.start.isAtEnd,a=n.end.parent==r&&0==n.end.offset,l=n.end.nodeAfter==r,c=n.start.nodeAfter==r;i=s||a||l||c}i&&this.updateMarker(o.name,{range:n})}}}function Fu(e,t,o,n){const i=e.model,r=i.document;let s,a,l,c=n.start;for(const e of n.getWalker({shallow:!0}))l=e.item.getAttribute(t),s&&a!=l&&(a!=o&&d(),c=s),s=e.nextPosition,a=l;function d(){const n=new lc(c,s),l=n.root.document?r.version:null,d=new Kd(n,t,a,o,l);e.batch.addOperation(d),i.applyOperation(d)}s instanceof oc&&s!=c&&a!=o&&d()}function Ru(e,t,o,n){const i=e.model,r=i.document,s=n.getAttribute(t);let a,l;if(s!=o){if(n.root===n){const e=n.document?r.version:null;l=new Yd(n,t,s,o,e)}else{a=new lc(oc._createBefore(n),e.createPositionAfter(n));const i=a.root.document?r.version:null;l=new Kd(a,t,s,o,i)}e.batch.addOperation(l),i.applyOperation(l)}}function Mu(e,t,o,n,i){const r=e.model,s=r.document,a=new Wd(t,o,n,r.markers,!!i,s.version);e.batch.addOperation(a),r.applyOperation(a)}function zu(e,t,o,n){let i;if(e.root.document){const o=n.document,r=new oc(o.graveyard,[0]);i=new jd(e,t,r,o.version)}else i=new Tu(e,t);o.addOperation(i),n.applyOperation(i)}function Ou(e,t){return e===t||e instanceof vu&&t instanceof vu}function Nu(e,t,o={}){if(t.isCollapsed)return;const n=t.getFirstRange();if("$graveyard"==n.root.rootName)return;const i=e.schema;e.change((e=>{if(!o.doNotResetEntireContent&&function(e,t){const o=e.getLimitElement(t);if(!t.containsEntireContent(o))return!1;const n=t.getFirstRange();if(n.start.parent==n.end.parent)return!1;return e.checkChild(o,"paragraph")}(i,t))return void function(e,t){const o=e.model.schema.getLimitElement(t);e.remove(e.createRangeIn(o)),ju(e,e.createPositionAt(o,0),t)}(e,t);const r={};if(!o.doNotAutoparagraph){const e=t.getSelectedElement();e&&Object.assign(r,i.getAttributesWithProperty(e,"copyOnReplace",!0))}const[s,a]=function(e){const t=e.root.document.model,o=e.start;let n=e.end;if(t.hasContent(e,{ignoreMarkers:!0})){const o=function(e){const t=e.parent,o=t.root.document.model.schema,n=t.getAncestors({parentFirst:!0,includeSelf:!0});for(const e of n){if(o.isLimit(e))return null;if(o.isBlock(e))return e}}(n);if(o&&n.isTouching(t.createPositionAt(o,0))){const o=t.createSelection(e);t.modifySelection(o,{direction:"backward"});const i=o.getLastPosition(),r=t.createRange(i,n);t.hasContent(r,{ignoreMarkers:!0})||(n=i)}}return[pu.fromPosition(o,"toPrevious"),pu.fromPosition(n,"toNext")]}(n);s.isTouching(a)||e.remove(e.createRange(s,a)),o.leaveUnmerged||(!function(e,t,o){const n=e.model;if(!Hu(e.model.schema,t,o))return;const[i,r]=function(e,t){const o=e.getAncestors(),n=t.getAncestors();let i=0;for(;o[i]&&o[i]==n[i];)i++;return[o[i],n[i]]}(t,o);if(!i||!r)return;!n.hasContent(i,{ignoreMarkers:!0})&&n.hasContent(r,{ignoreMarkers:!0})?Lu(e,t,o,i.parent):Vu(e,t,o,i.parent)}(e,s,a),i.removeDisallowedAttributes(s.parent.getChildren(),e)),qu(e,t,s),!o.doNotAutoparagraph&&function(e,t){const o=e.checkChild(t,"$text"),n=e.checkChild(t,"paragraph");return!o&&n}(i,s)&&ju(e,s,t,r),s.detach(),a.detach()}))}function Vu(e,t,o,n){const i=t.parent,r=o.parent;if(i!=n&&r!=n){for(t=e.createPositionAfter(i),(o=e.createPositionBefore(r)).isEqual(t)||e.insert(r,t),e.merge(t);o.parent.isEmpty;){const t=o.parent;o=e.createPositionBefore(t),e.remove(t)}Hu(e.model.schema,t,o)&&Vu(e,t,o,n)}}function Lu(e,t,o,n){const i=t.parent,r=o.parent;if(i!=n&&r!=n){for(t=e.createPositionAfter(i),(o=e.createPositionBefore(r)).isEqual(t)||e.insert(i,o);t.parent.isEmpty;){const o=t.parent;t=e.createPositionBefore(o),e.remove(o)}o=e.createPositionBefore(r),function(e,t){const o=t.nodeBefore,n=t.nodeAfter;o.name!=n.name&&e.rename(o,n.name);e.clearAttributes(o),e.setAttributes(Object.fromEntries(n.getAttributes()),o),e.merge(t)}(e,o),Hu(e.model.schema,t,o)&&Lu(e,t,o,n)}}function Hu(e,t,o){const n=t.parent,i=o.parent;return n!=i&&(!e.isLimit(n)&&!e.isLimit(i)&&function(e,t,o){const n=new lc(e,t);for(const e of n.getWalker())if(o.isLimit(e.item))return!1;return!0}(t,o,e))}function ju(e,t,o,n={}){const i=e.createElement("paragraph");e.model.schema.setAllowedAttributes(i,n,e),e.insert(i,t),qu(e,o,e.createPositionAt(i,0))}function qu(e,t,o){t instanceof Sc?e.setSelection(o):t.setTo(o)}function $u(e,t){const o=[];Array.from(e.getItems({direction:"backward"})).map((e=>t.createRangeOn(e))).filter((t=>(t.start.isAfter(e.start)||t.start.isEqual(e.start))&&(t.end.isBefore(e.end)||t.end.isEqual(e.end)))).forEach((e=>{o.push(e.start.parent),t.remove(e)})),o.forEach((e=>{let o=e;for(;o.parent&&o.isEmpty;){const e=t.createRangeOn(o);o=o.parent,t.remove(e)}}))}class Uu{constructor(e,t,o){this._firstNode=null,this._lastNode=null,this._lastAutoParagraph=null,this._filterAttributesOf=[],this._affectedStart=null,this._affectedEnd=null,this._nodeToSelect=null,this.model=e,this.writer=t,this.position=o,this.canMergeWith=new Set([this.position.parent]),this.schema=e.schema,this._documentFragment=t.createDocumentFragment(),this._documentFragmentPosition=t.createPositionAt(this._documentFragment,0)}handleNodes(e){for(const t of Array.from(e))this._handleNode(t);this._insertPartialFragment(),this._lastAutoParagraph&&this._updateLastNodeFromAutoParagraph(this._lastAutoParagraph),this._mergeOnRight(),this.schema.removeDisallowedAttributes(this._filterAttributesOf,this.writer),this._filterAttributesOf=[]}_updateLastNodeFromAutoParagraph(e){const t=this.writer.createPositionAfter(this._lastNode),o=this.writer.createPositionAfter(e);if(o.isAfter(t)){if(this._lastNode=e,this.position.parent!=e||!this.position.isAtEnd)throw new S("insertcontent-invalid-insertion-position",this);this.position=o,this._setAffectedBoundaries(this.position)}}getSelectionRange(){return this._nodeToSelect?lc._createOn(this._nodeToSelect):this.model.schema.getNearestSelectionRange(this.position)}getAffectedRange(){return this._affectedStart?new lc(this._affectedStart,this._affectedEnd):null}destroy(){this._affectedStart&&this._affectedStart.detach(),this._affectedEnd&&this._affectedEnd.detach()}_handleNode(e){this._checkAndSplitToAllowedPosition(e)?(this._appendToFragment(e),this._firstNode||(this._firstNode=e),this._lastNode=e):this.schema.isObject(e)||this._handleDisallowedNode(e)}_insertPartialFragment(){if(this._documentFragment.isEmpty)return;const e=pu.fromPosition(this.position,"toNext");this._setAffectedBoundaries(this.position),this._documentFragment.getChild(0)==this._firstNode&&(this.writer.insert(this._firstNode,this.position),this._mergeOnLeft(),this.position=e.toPosition()),this._documentFragment.isEmpty||this.writer.insert(this._documentFragment,this.position),this._documentFragmentPosition=this.writer.createPositionAt(this._documentFragment,0),this.position=e.toPosition(),e.detach()}_handleDisallowedNode(e){e.is("element")&&this.handleNodes(e.getChildren())}_appendToFragment(e){if(!this.schema.checkChild(this.position,e))throw new S("insertcontent-wrong-position",this,{node:e,position:this.position});this.writer.insert(e,this._documentFragmentPosition),this._documentFragmentPosition=this._documentFragmentPosition.getShiftedBy(e.offsetSize),this.schema.isObject(e)&&!this.schema.checkChild(this.position,"$text")?this._nodeToSelect=e:this._nodeToSelect=null,this._filterAttributesOf.push(e)}_setAffectedBoundaries(e){this._affectedStart||(this._affectedStart=pu.fromPosition(e,"toPrevious")),this._affectedEnd&&!this._affectedEnd.isBefore(e)||(this._affectedEnd&&this._affectedEnd.detach(),this._affectedEnd=pu.fromPosition(e,"toNext"))}_mergeOnLeft(){const e=this._firstNode;if(!(e instanceof Fc))return;if(!this._canMergeLeft(e))return;const t=pu._createBefore(e);t.stickiness="toNext";const o=pu.fromPosition(this.position,"toNext");this._affectedStart.isEqual(t)&&(this._affectedStart.detach(),this._affectedStart=pu._createAt(t.nodeBefore,"end","toPrevious")),this._firstNode===this._lastNode&&(this._firstNode=t.nodeBefore,this._lastNode=t.nodeBefore),this.writer.merge(t),t.isEqual(this._affectedEnd)&&this._firstNode===this._lastNode&&(this._affectedEnd.detach(),this._affectedEnd=pu._createAt(t.nodeBefore,"end","toNext")),this.position=o.toPosition(),o.detach(),this._filterAttributesOf.push(this.position.parent),t.detach()}_mergeOnRight(){const e=this._lastNode;if(!(e instanceof Fc))return;if(!this._canMergeRight(e))return;const t=pu._createAfter(e);if(t.stickiness="toNext",!this.position.isEqual(t))throw new S("insertcontent-invalid-insertion-position",this);this.position=oc._createAt(t.nodeBefore,"end");const o=pu.fromPosition(this.position,"toPrevious");this._affectedEnd.isEqual(t)&&(this._affectedEnd.detach(),this._affectedEnd=pu._createAt(t.nodeBefore,"end","toNext")),this._firstNode===this._lastNode&&(this._firstNode=t.nodeBefore,this._lastNode=t.nodeBefore),this.writer.merge(t),t.getShiftedBy(-1).isEqual(this._affectedStart)&&this._firstNode===this._lastNode&&(this._affectedStart.detach(),this._affectedStart=pu._createAt(t.nodeBefore,0,"toPrevious")),this.position=o.toPosition(),o.detach(),this._filterAttributesOf.push(this.position.parent),t.detach()}_canMergeLeft(e){const t=e.previousSibling;return t instanceof Fc&&this.canMergeWith.has(t)&&this.model.schema.checkMerge(t,e)}_canMergeRight(e){const t=e.nextSibling;return t instanceof Fc&&this.canMergeWith.has(t)&&this.model.schema.checkMerge(e,t)}_insertAutoParagraph(){this._insertPartialFragment();const e=this.writer.createElement("paragraph");this.writer.insert(e,this.position),this._setAffectedBoundaries(this.position),this._lastAutoParagraph=e,this.position=this.writer.createPositionAt(e,0)}_checkAndSplitToAllowedPosition(e){const t=this._getAllowedIn(this.position.parent,e);if(!t)return!1;for(t!=this.position.parent&&this._insertPartialFragment();t!=this.position.parent;)if(this.position.isAtStart){const e=this.position.parent;this.position=this.writer.createPositionBefore(e),e.isEmpty&&e.parent===t&&this.writer.remove(e)}else if(this.position.isAtEnd)this.position=this.writer.createPositionAfter(this.position.parent);else{const e=this.writer.createPositionAfter(this.position.parent);this._setAffectedBoundaries(this.position),this.writer.split(this.position),this.position=e,this.canMergeWith.add(this.position.nodeAfter)}return this.schema.checkChild(this.position.parent,e)||this._insertAutoParagraph(),!0}_getAllowedIn(e,t){return this.schema.checkChild(e,t)||this.schema.checkChild(e,"paragraph")&&this.schema.checkChild("paragraph",t)?e:this.schema.isLimit(e)?null:this._getAllowedIn(e.parent,t)}}function Wu(e,t,o,n={}){if(!e.schema.isObject(t))throw new S("insertobject-element-not-an-object",e,{object:t});const i=o||e.document.selection;let r=i;n.findOptimalPosition&&e.schema.isBlock(t)&&(r=e.createSelection(e.schema.findOptimalInsertionRange(i,n.findOptimalPosition)));const s=or(i.getSelectedBlocks()),a={};return s&&Object.assign(a,e.schema.getAttributesWithProperty(s,"copyOnReplace",!0)),e.change((o=>{r.isCollapsed||e.deleteContent(r,{doNotAutoparagraph:!0});let i=t;const s=r.anchor.parent;!e.schema.checkChild(s,t)&&e.schema.checkChild(s,"paragraph")&&e.schema.checkChild("paragraph",t)&&(i=o.createElement("paragraph"),o.insert(t,i)),e.schema.setAllowedAttributes(i,a,o);const l=e.insertContent(i,r);return l.isCollapsed||n.setSelection&&function(e,t,o,n){const i=e.model;if("on"==o)return void e.setSelection(t,"on");if("after"!=o)throw new S("insertobject-invalid-place-parameter-value",i);let r=t.nextSibling;if(i.schema.isInline(t))return void e.setSelection(t,"after");const s=r&&i.schema.checkChild(r,"$text");!s&&i.schema.checkChild(t.parent,"paragraph")&&(r=e.createElement("paragraph"),i.schema.setAllowedAttributes(r,n,e),i.insertContent(r,e.createPositionAfter(t)));r&&e.setSelection(r,0)}(o,t,n.setSelection,a),l}))}function Gu(e,t){const{isForward:o,walker:n,unit:i,schema:r,treatEmojiAsSingleUnit:s}=e,{type:a,item:l,nextPosition:c}=t;if("text"==a)return"word"===e.unit?function(e,t){let o=e.position.textNode;o||(o=t?e.position.nodeAfter:e.position.nodeBefore);for(;o&&o.is("$text");){const n=e.position.offset-o.startOffset;if(Ju(o,n,t))o=t?e.position.nodeAfter:e.position.nodeBefore;else{if(Zu(o.data,n,t))break;e.next()}}return e.position}(n,o):function(e,t,o){const n=e.position.textNode;if(n){const i=n.data;let r=e.position.offset-n.startOffset;for(;hr(i,r)||"character"==t&&pr(i,r)||o&&gr(i,r);)e.next(),r=e.position.offset-n.startOffset}return e.position}(n,i,s);if(a==(o?"elementStart":"elementEnd")){if(r.isSelectable(l))return oc._createAt(l,o?"after":"before");if(r.checkChild(c,"$text"))return c}else{if(r.isLimit(l))return void n.skip((()=>!0));if(r.checkChild(c,"$text"))return c}}function Ku(e,t){const o=e.root,n=oc._createAt(o,t?"end":0);return t?new lc(e,n):new lc(n,e)}function Zu(e,t,o){const n=t+(o?0:-1);return' ,.?!:;"-()'.includes(e.charAt(n))}function Ju(e,t,o){return t===(o?e.offsetSize:0)}class Yu extends(X()){constructor(){super(),this.markers=new Bu,this.document=new Eu(this),this.schema=new hd,this._pendingChanges=[],this._currentWriter=null,["deleteContent","modifySelection","getSelectedContent","applyOperation"].forEach((e=>this.decorate(e))),this.on("applyOperation",((e,t)=>{t[0]._validate()}),{priority:"highest"}),this.schema.register("$root",{isLimit:!0}),this.schema.register("$container",{allowIn:["$root","$container"]}),this.schema.register("$block",{allowIn:["$root","$container"],isBlock:!0}),this.schema.register("$blockObject",{allowWhere:"$block",isBlock:!0,isObject:!0}),this.schema.register("$inlineObject",{allowWhere:"$text",allowAttributesOf:"$text",isInline:!0,isObject:!0}),this.schema.register("$text",{allowIn:"$block",isInline:!0,isContent:!0}),this.schema.register("$clipboardHolder",{allowContentOf:"$root",allowChildren:"$text",isLimit:!0}),this.schema.register("$documentFragment",{allowContentOf:"$root",allowChildren:"$text",isLimit:!0}),this.schema.register("$marker"),this.schema.addChildCheck((()=>!0),"$marker"),ad(this),this.document.registerPostFixer(Yc),this.on("insertContent",((e,[t,o])=>{e.return=function(e,t,o){return e.change((n=>{const i=o||e.document.selection;i.isCollapsed||e.deleteContent(i,{doNotAutoparagraph:!0});const r=new Uu(e,n,i.anchor),s=[];let a;if(t.is("documentFragment")){if(t.markers.size){const e=[];for(const[o,n]of t.markers){const{start:t,end:i}=n,r=t.isEqual(i);e.push({position:t,name:o,isCollapsed:r},{position:i,name:o,isCollapsed:r})}e.sort((({position:e},{position:t})=>e.isBefore(t)?1:-1));for(const{position:o,name:i,isCollapsed:r}of e){let e=null,a=null;const l=o.parent===t&&o.isAtStart,c=o.parent===t&&o.isAtEnd;l||c?r&&(a=l?"start":"end"):(e=n.createElement("$marker"),n.insert(e,o)),s.push({name:i,element:e,collapsed:a})}}a=t.getChildren()}else a=[t];r.handleNodes(a);let l=r.getSelectionRange();if(t.is("documentFragment")&&s.length){const e=l?vc.fromRange(l):null,t={};for(let e=s.length-1;e>=0;e--){const{name:o,element:i,collapsed:a}=s[e],l=!t[o];if(l&&(t[o]=[]),i){const e=n.createPositionAt(i,"before");t[o].push(e),n.remove(i)}else{const e=r.getAffectedRange();if(!e){a&&t[o].push(r.position);continue}a?t[o].push(e[a]):t[o].push(l?e.start:e.end)}}for(const[e,[o,i]]of Object.entries(t))o&&i&&o.root===i.root&&o.root.document&&!n.model.markers.has(e)&&n.addMarker(e,{usingOperation:!0,affectsData:!0,range:new lc(o,i)});e&&(l=e.toRange(),e.detach())}l&&(i instanceof Sc?n.setSelection(l):i.setTo(l));const c=r.getAffectedRange()||e.createRange(i.anchor);return r.destroy(),c}))}(this,t,o)})),this.on("insertObject",((e,[t,o,n])=>{e.return=Wu(this,t,o,n)})),this.on("canEditAt",(e=>{const t=!this.document.isReadOnly;e.return=t,t||e.stop()}))}change(e){try{return 0===this._pendingChanges.length?(this._pendingChanges.push({batch:new fu,callback:e}),this._runPendingChanges()[0]):e(this._currentWriter)}catch(e){S.rethrowUnexpectedError(e,this)}}enqueueChange(e,t){try{e?"function"==typeof e?(t=e,e=new fu):e instanceof fu||(e=new fu(e)):e=new fu,this._pendingChanges.push({batch:e,callback:t}),1==this._pendingChanges.length&&this._runPendingChanges()}catch(e){S.rethrowUnexpectedError(e,this)}}applyOperation(e){e._execute()}insertContent(e,t,o,...n){const i=Qu(t,o);return this.fire("insertContent",[e,i,o,...n])}insertObject(e,t,o,n,...i){const r=Qu(t,o);return this.fire("insertObject",[e,r,n,n,...i])}deleteContent(e,t){Nu(this,e,t)}modifySelection(e,t){!function(e,t,o={}){const n=e.schema,i="backward"!=o.direction,r=o.unit?o.unit:"character",s=!!o.treatEmojiAsSingleUnit,a=t.focus,l=new ec({boundaries:Ku(a,i),singleCharacters:!0,direction:i?"forward":"backward"}),c={walker:l,schema:n,isForward:i,unit:r,treatEmojiAsSingleUnit:s};let d;for(;d=l.next();){if(d.done)return;const o=Gu(c,d.value);if(o)return void(t instanceof Sc?e.change((e=>{e.setSelectionFocus(o)})):t.setFocus(o))}}(this,e,t)}getSelectedContent(e){return function(e,t){return e.change((e=>{const o=e.createDocumentFragment(),n=t.getFirstRange();if(!n||n.isCollapsed)return o;const i=n.start.root,r=n.start.getCommonPath(n.end),s=i.getNodeByPath(r);let a;a=n.start.parent==n.end.parent?n:e.createRange(e.createPositionAt(s,n.start.path[r.length]),e.createPositionAt(s,n.end.path[r.length]+1));const l=a.end.offset-a.start.offset;for(const t of a.getItems({shallow:!0}))t.is("$textProxy")?e.appendText(t.data,t.getAttributes(),o):e.append(e.cloneElement(t,!0),o);if(a!=n){const t=n._getTransformedByMove(a.start,e.createPositionAt(o,0),l)[0],i=e.createRange(e.createPositionAt(o,0),t.start);$u(e.createRange(t.end,e.createPositionAt(o,"end")),e),$u(i,e)}return o}))}(this,e)}hasContent(e,t={}){const o=e instanceof lc?e:lc._createIn(e);if(o.isCollapsed)return!1;const{ignoreWhitespaces:n=!1,ignoreMarkers:i=!1}=t;if(!i)for(const e of this.markers.getMarkersIntersectingRange(o))if(e.affectsData)return!0;for(const e of o.getItems())if(this.schema.isContent(e)){if(!e.is("$textProxy"))return!0;if(!n)return!0;if(-1!==e.data.search(/\S/))return!0}return!1}canEditAt(e){const t=Qu(e);return this.fire("canEditAt",[t])}createPositionFromPath(e,t,o){return new oc(e,t,o)}createPositionAt(e,t){return oc._createAt(e,t)}createPositionAfter(e){return oc._createAfter(e)}createPositionBefore(e){return oc._createBefore(e)}createRange(e,t){return new lc(e,t)}createRangeIn(e){return lc._createIn(e)}createRangeOn(e){return lc._createOn(e)}createSelection(...e){return new bc(...e)}createBatch(e){return new fu(e)}createOperationFromJSON(e){return eu.fromJSON(e,this.document)}destroy(){this.document.destroy(),this.stopListening()}_runPendingChanges(){const e=[];this.fire("_beforeChanges");try{for(;this._pendingChanges.length;){const t=this._pendingChanges[0].batch;this._currentWriter=new Pu(this,t);const o=this._pendingChanges[0].callback(this._currentWriter);e.push(o),this.document._handleChangeBlock(this._currentWriter),this._pendingChanges.shift(),this._currentWriter=null}}finally{this._pendingChanges.length=0,this._currentWriter=null,this.fire("_afterChanges")}return e}}function Qu(e,t){if(e)return e instanceof bc||e instanceof Sc?e:e instanceof fc?t||0===t?new bc(e,t):e.is("rootElement")?new bc(e,"in"):new bc(e,"on"):new bc(e)}class Xu extends nl{constructor(){super(...arguments),this.domEventType="click"}onDomEvent(e){this.fire(e.type,e)}}class eh extends nl{constructor(){super(...arguments),this.domEventType=["mousedown","mouseup","mouseover","mouseout"]}onDomEvent(e){this.fire(e.type,e)}}class th extends nl{constructor(){super(...arguments),this.domEventType=["touchstart","touchend","touchmove"]}onDomEvent(e){this.fire(e.type,e)}}class oh{constructor(e){this.document=e}createDocumentFragment(e){return new ma(this.document,e)}createElement(e,t,o){return new Ms(this.document,e,t,o)}createText(e){return new fs(this.document,e)}clone(e,t=!1){return e._clone(t)}appendChild(e,t){return t._appendChild(e)}insertChild(e,t,o){return o._insertChild(e,t)}removeChildren(e,t,o){return o._removeChildren(e,t)}remove(e){const t=e.parent;return t?this.removeChildren(t.getChildIndex(e),1,t):[]}replace(e,t){const o=e.parent;if(o){const n=o.getChildIndex(e);return this.removeChildren(n,1,o),this.insertChild(n,t,o),!0}return!1}unwrapElement(e){const t=e.parent;if(t){const o=t.getChildIndex(e);this.remove(e),this.insertChild(o,e.getChildren(),t)}}rename(e,t){const o=new Ms(this.document,e,t.getAttributes(),t.getChildren());return this.replace(t,o)?o:null}setAttribute(e,t,o){o._setAttribute(e,t)}removeAttribute(e,t){t._removeAttribute(e)}addClass(e,t){t._addClass(e)}removeClass(e,t){t._removeClass(e)}setStyle(e,t,o){Pe(e)&&void 0===o?t._setStyle(e):o._setStyle(e,t)}removeStyle(e,t){t._removeStyle(e)}setCustomProperty(e,t,o){o._setCustomProperty(e,t)}removeCustomProperty(e,t){return t._removeCustomProperty(e)}createPositionAt(e,t){return $s._createAt(e,t)}createPositionAfter(e){return $s._createAfter(e)}createPositionBefore(e){return $s._createBefore(e)}createRange(e,t){return new Us(e,t)}createRangeOn(e){return Us._createOn(e)}createRangeIn(e){return Us._createIn(e)}createSelection(...e){return new Gs(...e)}}const nh=/^#([0-9a-f]{3,4}|[0-9a-f]{6}|[0-9a-f]{8})$/i,ih=/^rgb\([ ]?([0-9]{1,3}[ %]?,[ ]?){2,3}[0-9]{1,3}[ %]?\)$/i,rh=/^rgba\([ ]?([0-9]{1,3}[ %]?,[ ]?){3}(1|[0-9]+%|[0]?\.?[0-9]+)\)$/i,sh=/^hsl\([ ]?([0-9]{1,3}[ %]?[,]?[ ]*){3}(1|[0-9]+%|[0]?\.?[0-9]+)?\)$/i,ah=/^hsla\([ ]?([0-9]{1,3}[ %]?,[ ]?){2,3}(1|[0-9]+%|[0]?\.?[0-9]+)\)$/i,lh=/\w+\((?:[^()]|\([^()]*\))*\)|\S+/gi,ch=new Set(["black","silver","gray","white","maroon","red","purple","fuchsia","green","lime","olive","yellow","navy","blue","teal","aqua","orange","aliceblue","antiquewhite","aquamarine","azure","beige","bisque","blanchedalmond","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","gainsboro","ghostwhite","gold","goldenrod","greenyellow","grey","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","limegreen","linen","magenta","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","oldlace","olivedrab","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","tan","thistle","tomato","turquoise","violet","wheat","whitesmoke","yellowgreen","activeborder","activecaption","appworkspace","background","buttonface","buttonhighlight","buttonshadow","buttontext","captiontext","graytext","highlight","highlighttext","inactiveborder","inactivecaption","inactivecaptiontext","infobackground","infotext","menu","menutext","scrollbar","threeddarkshadow","threedface","threedhighlight","threedlightshadow","threedshadow","window","windowframe","windowtext","rebeccapurple","currentcolor","transparent"]);function dh(e){return e.startsWith("#")?nh.test(e):e.startsWith("rgb")?ih.test(e)||rh.test(e):e.startsWith("hsl")?sh.test(e)||ah.test(e):ch.has(e.toLowerCase())}const uh=["none","hidden","dotted","dashed","solid","double","groove","ridge","inset","outset"];function hh(e){return uh.includes(e)}const ph=/^([+-]?[0-9]*([.][0-9]+)?(px|cm|mm|in|pc|pt|ch|em|ex|rem|vh|vw|vmin|vmax)|0)$/;function mh(e){return ph.test(e)}const gh=/^[+-]?[0-9]*([.][0-9]+)?%$/;const fh=["repeat-x","repeat-y","repeat","space","round","no-repeat"];function bh(e){return fh.includes(e)}const kh=["center","top","bottom","left","right"];function wh(e){return kh.includes(e)}const _h=["fixed","scroll","local"];function yh(e){return _h.includes(e)}const Ah=/^url\(/;function Ch(e){return Ah.test(e)}function vh(e=""){if(""===e)return{top:void 0,right:void 0,bottom:void 0,left:void 0};const t=Dh(e),o=t[0],n=t[2]||o,i=t[1]||o;return{top:o,bottom:n,right:i,left:t[3]||i}}function xh(e){return t=>{const{top:o,right:n,bottom:i,left:r}=t,s=[];return[o,n,r,i].every((e=>!!e))?s.push([e,Eh(t)]):(o&&s.push([e+"-top",o]),n&&s.push([e+"-right",n]),i&&s.push([e+"-bottom",i]),r&&s.push([e+"-left",r])),s}}function Eh({top:e,right:t,bottom:o,left:n}){const i=[];return n!==t?i.push(e,t,o,n):o!==e?i.push(e,t,o):t!==e?i.push(e,t):i.push(e),i.join(" ")}function Dh(e){const t=e.trim().slice(0,1500).matchAll(lh);return Array.from(t).map((e=>e[0]))}function Bh(e){e.setNormalizer("background",(e=>{const t={},o=Dh(e);for(const e of o)bh(e)?(t.repeat=t.repeat||[],t.repeat.push(e)):wh(e)?(t.position=t.position||[],t.position.push(e)):yh(e)?t.attachment=e:dh(e)?t.color=e:Ch(e)&&(t.image=e);return{path:"background",value:t}})),e.setNormalizer("background-color",(e=>({path:"background.color",value:e}))),e.setReducer("background",(e=>{const t=[];return t.push(["background-color",e.color]),t})),e.setStyleRelation("background",["background-color"])}function Sh(e){e.setNormalizer("border",(e=>{const{color:t,style:o,width:n}=zh(e);return{path:"border",value:{color:vh(t),style:vh(o),width:vh(n)}}})),e.setNormalizer("border-top",Th("top")),e.setNormalizer("border-right",Th("right")),e.setNormalizer("border-bottom",Th("bottom")),e.setNormalizer("border-left",Th("left")),e.setNormalizer("border-color",Ih("color")),e.setNormalizer("border-width",Ih("width")),e.setNormalizer("border-style",Ih("style")),e.setNormalizer("border-top-color",Fh("color","top")),e.setNormalizer("border-top-style",Fh("style","top")),e.setNormalizer("border-top-width",Fh("width","top")),e.setNormalizer("border-right-color",Fh("color","right")),e.setNormalizer("border-right-style",Fh("style","right")),e.setNormalizer("border-right-width",Fh("width","right")),e.setNormalizer("border-bottom-color",Fh("color","bottom")),e.setNormalizer("border-bottom-style",Fh("style","bottom")),e.setNormalizer("border-bottom-width",Fh("width","bottom")),e.setNormalizer("border-left-color",Fh("color","left")),e.setNormalizer("border-left-style",Fh("style","left")),e.setNormalizer("border-left-width",Fh("width","left")),e.setExtractor("border-top",Rh("top")),e.setExtractor("border-right",Rh("right")),e.setExtractor("border-bottom",Rh("bottom")),e.setExtractor("border-left",Rh("left")),e.setExtractor("border-top-color","border.color.top"),e.setExtractor("border-right-color","border.color.right"),e.setExtractor("border-bottom-color","border.color.bottom"),e.setExtractor("border-left-color","border.color.left"),e.setExtractor("border-top-width","border.width.top"),e.setExtractor("border-right-width","border.width.right"),e.setExtractor("border-bottom-width","border.width.bottom"),e.setExtractor("border-left-width","border.width.left"),e.setExtractor("border-top-style","border.style.top"),e.setExtractor("border-right-style","border.style.right"),e.setExtractor("border-bottom-style","border.style.bottom"),e.setExtractor("border-left-style","border.style.left"),e.setReducer("border-color",xh("border-color")),e.setReducer("border-style",xh("border-style")),e.setReducer("border-width",xh("border-width")),e.setReducer("border-top",Oh("top")),e.setReducer("border-right",Oh("right")),e.setReducer("border-bottom",Oh("bottom")),e.setReducer("border-left",Oh("left")),e.setReducer("border",function(){return t=>{const o=Mh(t,"top"),n=Mh(t,"right"),i=Mh(t,"bottom"),r=Mh(t,"left"),s=[o,n,i,r],a={width:e(s,"width"),style:e(s,"style"),color:e(s,"color")},l=Nh(a,"all");if(l.length)return l;const c=Object.entries(a).reduce(((e,[t,o])=>(o&&(e.push([`border-${t}`,o]),s.forEach((e=>delete e[t]))),e)),[]);return[...c,...Nh(o,"top"),...Nh(n,"right"),...Nh(i,"bottom"),...Nh(r,"left")]};function e(e,t){return e.map((e=>e[t])).reduce(((e,t)=>e==t?e:null))}}()),e.setStyleRelation("border",["border-color","border-style","border-width","border-top","border-right","border-bottom","border-left","border-top-color","border-right-color","border-bottom-color","border-left-color","border-top-style","border-right-style","border-bottom-style","border-left-style","border-top-width","border-right-width","border-bottom-width","border-left-width"]),e.setStyleRelation("border-color",["border-top-color","border-right-color","border-bottom-color","border-left-color"]),e.setStyleRelation("border-style",["border-top-style","border-right-style","border-bottom-style","border-left-style"]),e.setStyleRelation("border-width",["border-top-width","border-right-width","border-bottom-width","border-left-width"]),e.setStyleRelation("border-top",["border-top-color","border-top-style","border-top-width"]),e.setStyleRelation("border-right",["border-right-color","border-right-style","border-right-width"]),e.setStyleRelation("border-bottom",["border-bottom-color","border-bottom-style","border-bottom-width"]),e.setStyleRelation("border-left",["border-left-color","border-left-style","border-left-width"])}function Th(e){return t=>{const{color:o,style:n,width:i}=zh(t),r={};return void 0!==o&&(r.color={[e]:o}),void 0!==n&&(r.style={[e]:n}),void 0!==i&&(r.width={[e]:i}),{path:"border",value:r}}}function Ih(e){return t=>({path:"border",value:Ph(t,e)})}function Ph(e,t){return{[t]:vh(e)}}function Fh(e,t){return o=>({path:"border",value:{[e]:{[t]:o}}})}function Rh(e){return(t,o)=>{if(o.border)return Mh(o.border,e)}}function Mh(e,t){const o={};return e.width&&e.width[t]&&(o.width=e.width[t]),e.style&&e.style[t]&&(o.style=e.style[t]),e.color&&e.color[t]&&(o.color=e.color[t]),o}function zh(e){const t={},o=Dh(e);for(const e of o)mh(e)||/thin|medium|thick/.test(e)?t.width=e:hh(e)?t.style=e:t.color=e;return t}function Oh(e){return t=>Nh(t,e)}function Nh(e,t){const o=[];if(e&&e.width&&o.push("width"),e&&e.style&&o.push("style"),e&&e.color&&o.push("color"),3==o.length){const n=o.map((t=>e[t])).join(" ");return["all"==t?["border",n]:[`border-${t}`,n]]}return"all"==t?[]:o.map((o=>[`border-${t}-${o}`,e[o]]))}function Vh(e){var t;e.setNormalizer("padding",(t="padding",e=>({path:t,value:vh(e)}))),e.setNormalizer("padding-top",(e=>({path:"padding.top",value:e}))),e.setNormalizer("padding-right",(e=>({path:"padding.right",value:e}))),e.setNormalizer("padding-bottom",(e=>({path:"padding.bottom",value:e}))),e.setNormalizer("padding-left",(e=>({path:"padding.left",value:e}))),e.setReducer("padding",xh("padding")),e.setStyleRelation("padding",["padding-top","padding-right","padding-bottom","padding-left"])}class Lh{constructor(e){if(this.crashes=[],this.state="initializing",this._now=Date.now,this.crashes=[],this._crashNumberLimit="number"==typeof e.crashNumberLimit?e.crashNumberLimit:3,this._minimumNonErrorTimePeriod="number"==typeof e.minimumNonErrorTimePeriod?e.minimumNonErrorTimePeriod:5e3,this._boundErrorHandler=e=>{const t="error"in e?e.error:e.reason;t instanceof Error&&this._handleError(t,e)},this._listeners={},!this._restart)throw new Error("The Watchdog class was split into the abstract `Watchdog` class and the `EditorWatchdog` class. Please, use `EditorWatchdog` if you have used the `Watchdog` class previously.")}destroy(){this._stopErrorHandling(),this._listeners={}}on(e,t){this._listeners[e]||(this._listeners[e]=[]),this._listeners[e].push(t)}off(e,t){this._listeners[e]=this._listeners[e].filter((e=>e!==t))}_fire(e,...t){const o=this._listeners[e]||[];for(const e of o)e.apply(this,[null,...t])}_startErrorHandling(){window.addEventListener("error",this._boundErrorHandler),window.addEventListener("unhandledrejection",this._boundErrorHandler)}_stopErrorHandling(){window.removeEventListener("error",this._boundErrorHandler),window.removeEventListener("unhandledrejection",this._boundErrorHandler)}_handleError(e,t){if(this._shouldReactToError(e)){this.crashes.push({message:e.message,stack:e.stack,filename:t instanceof ErrorEvent?t.filename:void 0,lineno:t instanceof ErrorEvent?t.lineno:void 0,colno:t instanceof ErrorEvent?t.colno:void 0,date:this._now()});const o=this._shouldRestart();this.state="crashed",this._fire("stateChange"),this._fire("error",{error:e,causesRestart:o}),o?this._restart():(this.state="crashedPermanently",this._fire("stateChange"))}}_shouldReactToError(e){return e.is&&e.is("CKEditorError")&&void 0!==e.context&&null!==e.context&&"ready"===this.state&&this._isErrorComingFromThisItem(e)}_shouldRestart(){if(this.crashes.length<=this._crashNumberLimit)return!0;return(this.crashes[this.crashes.length-1].date-this.crashes[this.crashes.length-1-this._crashNumberLimit].date)/this._crashNumberLimit>this._minimumNonErrorTimePeriod}}const Hh=function(e,t,o){var n=!0,i=!0;if("function"!=typeof e)throw new TypeError("Expected a function");return W(o)&&(n="leading"in o?!!o.leading:n,i="trailing"in o?!!o.trailing:i),bl(e,t,{leading:n,maxWait:t,trailing:i})};function jh(e,t=new Set){const o=[e],n=new Set;let i=0;for(;o.length>i;){const e=o[i++];if(!n.has(e)&&qh(e)&&!t.has(e))if(n.add(e),Symbol.iterator in e)try{for(const t of e)o.push(t)}catch(e){}else for(const t in e)"defaultValue"!==t&&o.push(e[t])}return n}function qh(e){const t=Object.prototype.toString.call(e),o=typeof e;return!("number"===o||"boolean"===o||"string"===o||"symbol"===o||"function"===o||"[object Date]"===t||"[object RegExp]"===t||"[object Module]"===t||null==e||e._watchdogExcluded||e instanceof EventTarget||e instanceof Event)}function $h(e,t,o=new Set){if(e===t&&("object"==typeof(n=e)&&null!==n))return!0;var n;const i=jh(e,o),r=jh(t,o);for(const e of i)if(r.has(e))return!0;return!1}class Uh extends Lh{constructor(e,t={}){super(t),this._editor=null,this._lifecyclePromise=null,this._initUsingData=!0,this._editables={},this._throttledSave=Hh(this._save.bind(this),"number"==typeof t.saveInterval?t.saveInterval:5e3),e&&(this._creator=(t,o)=>e.create(t,o)),this._destructor=e=>e.destroy()}get editor(){return this._editor}get _item(){return this._editor}setCreator(e){this._creator=e}setDestructor(e){this._destructor=e}_restart(){return Promise.resolve().then((()=>(this.state="initializing",this._fire("stateChange"),this._destroy()))).catch((e=>{console.error("An error happened during the editor destroying.",e)})).then((()=>{const e={},t=[],o=this._config.rootsAttributes||{},n={};for(const[i,r]of Object.entries(this._data.roots))r.isLoaded?(e[i]="",n[i]=o[i]||{}):t.push(i);const i={...this._config,extraPlugins:this._config.extraPlugins||[],lazyRoots:t,rootsAttributes:n,_watchdogInitialData:this._data};return delete i.initialData,i.extraPlugins.push(Wh),this._initUsingData?this.create(e,i,i.context):Tn(this._elementOrData)?this.create(this._elementOrData,i,i.context):this.create(this._editables,i,i.context)})).then((()=>{this._fire("restart")}))}create(e=this._elementOrData,t=this._config,o){return this._lifecyclePromise=Promise.resolve(this._lifecyclePromise).then((()=>(super._startErrorHandling(),this._elementOrData=e,this._initUsingData="string"==typeof e||Object.keys(e).length>0&&"string"==typeof Object.values(e)[0],this._config=this._cloneEditorConfiguration(t)||{},this._config.context=o,this._creator(e,this._config)))).then((e=>{this._editor=e,e.model.document.on("change:data",this._throttledSave),this._lastDocumentVersion=e.model.document.version,this._data=this._getData(),this._initUsingData||(this._editables=this._getEditables()),this.state="ready",this._fire("stateChange")})).finally((()=>{this._lifecyclePromise=null})),this._lifecyclePromise}destroy(){return this._lifecyclePromise=Promise.resolve(this._lifecyclePromise).then((()=>(this.state="destroyed",this._fire("stateChange"),super.destroy(),this._destroy()))).finally((()=>{this._lifecyclePromise=null})),this._lifecyclePromise}_destroy(){return Promise.resolve().then((()=>{this._stopErrorHandling(),this._throttledSave.cancel();const e=this._editor;return this._editor=null,e.model.document.off("change:data",this._throttledSave),this._destructor(e)}))}_save(){const e=this._editor.model.document.version;try{this._data=this._getData(),this._initUsingData||(this._editables=this._getEditables()),this._lastDocumentVersion=e}catch(e){console.error(e,"An error happened during restoring editor data. Editor will be restored from the previously saved data.")}}_setExcludedProperties(e){this._excludedProps=e}_getData(){const e=this._editor,t=e.model.document.roots.filter((e=>e.isAttached()&&"$graveyard"!=e.rootName)),{plugins:o}=e,n=o.has("CommentsRepository")&&o.get("CommentsRepository"),i=o.has("TrackChanges")&&o.get("TrackChanges"),r={roots:{},markers:{},commentThreads:JSON.stringify([]),suggestions:JSON.stringify([])};t.forEach((e=>{r.roots[e.rootName]={content:JSON.stringify(Array.from(e.getChildren())),attributes:JSON.stringify(Array.from(e.getAttributes())),isLoaded:e._isLoaded}}));for(const t of e.model.markers)t._affectsData&&(r.markers[t.name]={rangeJSON:t.getRange().toJSON(),usingOperation:t._managedUsingOperations,affectsData:t._affectsData});return n&&(r.commentThreads=JSON.stringify(n.getCommentThreads({toJSON:!0,skipNotAttached:!0}))),i&&(r.suggestions=JSON.stringify(i.getSuggestions({toJSON:!0,skipNotAttached:!0}))),r}_getEditables(){const e={};for(const t of this.editor.model.document.getRootNames()){const o=this.editor.ui.getEditableElement(t);o&&(e[t]=o)}return e}_isErrorComingFromThisItem(e){return $h(this._editor,e.context,this._excludedProps)}_cloneEditorConfiguration(e){return Sn(e,((e,t)=>Tn(e)||"context"===t?e:void 0))}}class Wh{constructor(e){this.editor=e,this._data=e.config.get("_watchdogInitialData")}init(){this.editor.data.on("init",(e=>{e.stop(),this.editor.model.enqueueChange({isUndoable:!1},(e=>{this._restoreCollaborationData(),this._restoreEditorData(e)})),this.editor.data.fire("ready")}),{priority:999})}_createNode(e,t){if("name"in t){const o=e.createElement(t.name,t.attributes);if(t.children)for(const n of t.children)o._appendChild(this._createNode(e,n));return o}return e.createText(t.data,t.attributes)}_restoreEditorData(e){const t=this.editor;Object.entries(this._data.roots).forEach((([o,{content:n,attributes:i}])=>{const r=JSON.parse(n),s=JSON.parse(i),a=t.model.document.getRoot(o);for(const[t,o]of s)e.setAttribute(t,o,a);for(const t of r){const o=this._createNode(e,t);e.insert(o,a,"end")}})),Object.entries(this._data.markers).forEach((([o,n])=>{const{document:i}=t.model,{rangeJSON:{start:r,end:s},...a}=n,l=i.getRoot(r.root),c=e.createPositionFromPath(l,r.path,r.stickiness),d=e.createPositionFromPath(l,s.path,s.stickiness),u=e.createRange(c,d);e.addMarker(o,{range:u,...a})}))}_restoreCollaborationData(){const e=JSON.parse(this._data.commentThreads),t=JSON.parse(this._data.suggestions);e.forEach((e=>{const t=this.editor.config.get("collaboration.channelId"),o=this.editor.plugins.get("CommentsRepository");if(o.hasCommentThread(e.threadId)){o.getCommentThread(e.threadId).remove()}o.addCommentThread({channelId:t,...e})})),t.forEach((e=>{const t=this.editor.plugins.get("TrackChangesEditing");if(t.hasSuggestion(e.id)){t.getSuggestion(e.id).attributes=e.attributes}else t.addSuggestionData(e)}))}}const Gh=Symbol("MainQueueId");class Kh{constructor(){this._onEmptyCallbacks=[],this._queues=new Map,this._activeActions=0}onEmpty(e){this._onEmptyCallbacks.push(e)}enqueue(e,t){const o=e===Gh;this._activeActions++,this._queues.get(e)||this._queues.set(e,Promise.resolve());const n=(o?Promise.all(this._queues.values()):Promise.all([this._queues.get(Gh),this._queues.get(e)])).then(t),i=n.catch((()=>{}));return this._queues.set(e,i),n.finally((()=>{this._activeActions--,this._queues.get(e)===i&&0===this._activeActions&&this._onEmptyCallbacks.forEach((e=>e()))}))}}function Zh(e){return Array.isArray(e)?e:[e]}class Jh{constructor(){this._commands=new Map}add(e,t){this._commands.set(e,t)}get(e){return this._commands.get(e)}execute(e,...t){const o=this.get(e);if(!o)throw new S("commandcollection-command-not-found",this,{commandName:e});return o.execute(...t)}*names(){yield*this._commands.keys()}*commands(){yield*this._commands.values()}[Symbol.iterator](){return this._commands[Symbol.iterator]()}destroy(){for(const e of this.commands())e.destroy()}}class Yh extends ar{constructor(e){super(),this.editor=e}set(e,t,o={}){if("string"==typeof t){const e=t;t=(t,o)=>{this.editor.execute(e),o()}}super.set(e,t,o)}}const Qh="contentEditing",Xh="common";class ep{constructor(e){this.keystrokeInfos=new Map,this._editor=e;const t=e.config.get("menuBar.isVisible"),o=e.locale.t;this.addKeystrokeInfoCategory({id:Qh,label:o("Content editing keystrokes"),description:o("These keyboard shortcuts allow for quick access to content editing features.")});const n=[{label:o("Close contextual balloons, dropdowns, and dialogs"),keystroke:"Esc"},{label:o("Open the accessibility help dialog"),keystroke:"Alt+0"},{label:o("Move focus between form fields (inputs, buttons, etc.)"),keystroke:[["Tab"],["Shift+Tab"]]},{label:o("Move focus to the toolbar, navigate between toolbars"),keystroke:"Alt+F10",mayRequireFn:!0},{label:o("Navigate through the toolbar or menu bar"),keystroke:[["arrowup"],["arrowright"],["arrowdown"],["arrowleft"]]},{label:o("Execute the currently focused button. Executing buttons that interact with the editor content moves the focus back to the content."),keystroke:[["Enter"],["Space"]]}];t&&n.push({label:o("Move focus to the menu bar, navigate between menu bars"),keystroke:"Alt+F9",mayRequireFn:!0}),this.addKeystrokeInfoCategory({id:"navigation",label:o("User interface and content navigation keystrokes"),description:o("Use the following keystrokes for more efficient navigation in the CKEditor 5 user interface."),groups:[{id:"common",keystrokes:n}]})}addKeystrokeInfoCategory({id:e,label:t,description:o,groups:n}){this.keystrokeInfos.set(e,{id:e,label:t,description:o,groups:new Map}),this.addKeystrokeInfoGroup({categoryId:e,id:Xh}),n&&n.forEach((t=>{this.addKeystrokeInfoGroup({categoryId:e,...t})}))}addKeystrokeInfoGroup({categoryId:e=Qh,id:t,label:o,keystrokes:n}){const i=this.keystrokeInfos.get(e);if(!i)throw new S("accessibility-unknown-keystroke-info-category",this._editor,{groupId:t,categoryId:e});i.groups.set(t,{id:t,label:o,keystrokes:n||[]})}addKeystrokeInfos({categoryId:e=Qh,groupId:t=Xh,keystrokes:o}){if(!this.keystrokeInfos.has(e))throw new S("accessibility-unknown-keystroke-info-category",this._editor,{categoryId:e,keystrokes:o});const n=this.keystrokeInfos.get(e);if(!n.groups.has(t))throw new S("accessibility-unknown-keystroke-info-group",this._editor,{groupId:t,categoryId:e,keystrokes:o});n.groups.get(t).keystrokes.push(...o)}}function tp(e){return Object.getPrototypeOf(e).constructor.editorName}function op(e){if(!e)return;const t=Array.isArray(e)?{items:e}:e,o=function e(t){return t.flatMap((t=>"string"==typeof t?[t]:e(t.items)))}(t.items||[]);return{isMultiline:o.includes("-"),shouldNotGroupWhenFull:!!t.shouldNotGroupWhenFull,items:(n=o,n.filter((e=>"|"!==e&&"-"!==e)))};var n}function np(){let e="unknown",t="unknown";return c.isMac?e="mac":c.isWindows?e="windows":c.isiOS?e="ios":c.isAndroid&&(e="android"),c.isGecko?t="gecko":c.isBlink?t="blink":c.isSafari&&(t="safari"),{os:e,browser:t}}function ip(){return localStorage.getItem("__ckeditor-session-id")||localStorage.setItem("__ckeditor-session-id",E()),localStorage.getItem("__ckeditor-session-id")}function rp(){return s.window.CKEDITOR_PAGE_SESSION_ID=s.window.CKEDITOR_PAGE_SESSION_ID||E(),s.window.CKEDITOR_PAGE_SESSION_ID}class sp extends(X()){static get editorName(){return"Editor"}constructor(e={}){if(super(),"sanitizeHtml"in e)throw new S("editor-config-sanitizehtml-not-supported");const t=this.constructor,{translations:o,...n}=t.defaultConfig||{},{translations:i=o,...r}=e,s=e.language||n.language;this._context=e.context||new Ar({language:s,translations:i}),this._context._addEditor(this,!e.context);const a=Array.from(t.builtinPlugins||[]);this.config=new In(r,n),this.config.define("plugins",a),this.config.define(this._context._getEditorConfig()),function(e){let t=e.get("licenseKey");!t&&window.CKEDITOR_GLOBAL_LICENSE_KEY&&(t=window.CKEDITOR_GLOBAL_LICENSE_KEY,e.set("licenseKey",t));if(!t)throw new S("license-key-missing")}(this.config),this.plugins=new yr(this,a,this._context.plugins),this.locale=this._context.locale,this.t=this.locale.t,this._readOnlyLocks=new Set,this.commands=new Jh,this.set("state","initializing"),this.once("ready",(()=>this.state="ready"),{priority:"high"}),this.once("destroy",(()=>this.state="destroyed"),{priority:"high"}),this.model=new Yu,this.on("change:isReadOnly",(()=>{this.model.document.isReadOnly=this.isReadOnly}));const l=new Is;this.data=new Td(this.model,l),this.editing=new ud(this.model,l),this.editing.view.document.bind("isReadOnly").to(this),this.conversion=new Id([this.editing.downcastDispatcher,this.data.downcastDispatcher],this.data.upcastDispatcher),this.conversion.addAlias("dataDowncast",this.data.downcastDispatcher),this.conversion.addAlias("editingDowncast",this.editing.downcastDispatcher),this.keystrokes=new Yh(this),this.keystrokes.listenTo(this.editing.view.document),this.accessibility=new ep(this),function(e){const t=e.config.get("licenseKey"),o=window[Symbol.for("cke distribution")]||"sh";function n(t){e.enableReadOnlyMode(Symbol("invalidLicense")),e._showLicenseError(t)}if("GPL"==t)return void("cloud"==o&&n("distributionChannel"));const i=function(e){const t=e.split(".");return 3!=t.length?null:t[1]}(t);if(!i)return void n("invalid");const r=ur(i);if(!r)return void n("invalid");if(!function(e){return["exp","jti","vc"].every((t=>t in e))}(r))return void n("invalid");if(r.distributionChannel&&!Si(r.distributionChannel).includes(o))return void n("distributionChannel");if(function(e){const t=Array.isArray(e)?e:[e],o=function(){const e=[];for(let t=0;t<256;t++){let o=t;for(let e=0;e<8;e++)1&o?o=3988292384^o>>>1:o>>>=1;e[t]=o}return e}();let n=-1;const i=t.map((e=>Array.isArray(e)?e.join(""):String(e))).join("");for(let e=0;e>>8^o[255&(n^i.charCodeAt(e))];return n=~n>>>0,n.toString(16).padStart(8,"0")}(function(e){return Object.getOwnPropertyNames(e).sort().filter((t=>"vc"!=t&&null!=e[t])).map((t=>e[t]))}(r))!=r.vc.toLowerCase())return void n("invalid");if(new Date(1e3*r.exp)0&&!function(e){const{hostname:t}=new URL(window.location.href);if(e.includes(t))return!0;const o=t.split(".");return e.filter((e=>e.includes("*"))).map((e=>e.split("."))).filter((e=>e.length<=o.length)).map((e=>Array(o.length-e.length).fill("*"===e[0]?"*":"").concat(e))).some((e=>o.every(((t,o)=>e[o]===t||"*"===e[o]))))}(s))return void n("domainLimit");if(["evaluation","trial"].includes(r.licenseType)&&1e3*r.exp{n(`${t}Limit`)}),6e5);e.on("destroy",(()=>{clearTimeout(o)}))}r.usageEndpoint&&e.once("ready",(()=>{const o={requestId:E(),requestTime:Math.round(Date.now()/1e3),license:t,editor:lp(e)};e._sendUsageRequest(r.usageEndpoint,o).then((e=>{const{status:t,message:o}=e;o&&console.warn(o),"ok"!=t&&n("usageLimit")}),(()=>{var e,t;e="license-key-validation-endpoint-not-reachable",t={url:r.usageEndpoint},console.error(...P(e,t))}))}),{priority:"high"})}(this)}get isReadOnly(){return this._readOnlyLocks.size>0}set isReadOnly(e){throw new S("editor-isreadonly-has-no-setter")}enableReadOnlyMode(e){if("string"!=typeof e&&"symbol"!=typeof e)throw new S("editor-read-only-lock-id-invalid",null,{lockId:e});this._readOnlyLocks.has(e)||(this._readOnlyLocks.add(e),1===this._readOnlyLocks.size&&this.fire("change:isReadOnly","isReadOnly",!0,!1))}disableReadOnlyMode(e){if("string"!=typeof e&&"symbol"!=typeof e)throw new S("editor-read-only-lock-id-invalid",null,{lockId:e});this._readOnlyLocks.has(e)&&(this._readOnlyLocks.delete(e),0===this._readOnlyLocks.size&&this.fire("change:isReadOnly","isReadOnly",!1,!0))}setData(e){this.data.set(e)}getData(e){return this.data.get(e)}initPlugins(){const e=this.config,t=e.get("plugins"),o=e.get("removePlugins")||[],n=e.get("extraPlugins")||[],i=e.get("substitutePlugins")||[];return this.plugins.init(t.concat(n),o,i)}destroy(){let e=Promise.resolve();return"initializing"==this.state&&(e=new Promise((e=>this.once("ready",e)))),e.then((()=>{this.fire("destroy"),this.stopListening(),this.commands.destroy()})).then((()=>this.plugins.destroy())).then((()=>{this.model.destroy(),this.data.destroy(),this.editing.destroy(),this.keystrokes.destroy()})).then((()=>this._context._removeEditor(this)))}execute(e,...t){try{return this.commands.execute(e,...t)}catch(e){S.rethrowUnexpectedError(e,this)}}focus(){this.editing.view.focus()}static create(...e){throw new Error("This is an abstract method.")}_showLicenseError(e,t){setTimeout((()=>{if("invalid"==e)throw new S("invalid-license-key");if("expired"==e)throw new S("license-key-expired");if("domainLimit"==e)throw new S("license-key-domain-limit");if("featureNotAllowed"==e)throw new S("license-key-plugin-not-allowed",null,{pluginName:t});if("evaluationLimit"==e)throw new S("license-key-evaluation-limit");if("trialLimit"==e)throw new S("license-key-trial-limit");if("developmentLimit"==e)throw new S("license-key-development-limit");if("usageLimit"==e)throw new S("license-key-usage-limit");if("distributionChannel"==e)throw new S("license-key-invalid-distribution-channel")}),0),this._showLicenseError=()=>{}}async _sendUsageRequest(e,t){const o=new Headers({"Content-Type":"application/json"}),n=await fetch(new URL(e),{method:"POST",headers:o,body:JSON.stringify(t)});if(!n.ok)throw new Error(`HTTP Response: ${n.status}`);return n.json()}}sp.Context=Ar,sp.EditorWatchdog=Uh,sp.ContextWatchdog=class extends Lh{constructor(e,t={}){super(t),this._watchdogs=new Map,this._context=null,this._contextProps=new Set,this._actionQueues=new Kh,this._watchdogConfig=t,this._creator=t=>e.create(t),this._destructor=e=>e.destroy(),this._actionQueues.onEmpty((()=>{"initializing"===this.state&&(this.state="ready",this._fire("stateChange"))}))}setCreator(e){this._creator=e}setDestructor(e){this._destructor=e}get context(){return this._context}create(e={}){return this._actionQueues.enqueue(Gh,(()=>(this._contextConfig=e,this._create())))}getItem(e){return this._getWatchdog(e)._item}getItemState(e){return this._getWatchdog(e).state}add(e){const t=Zh(e);return Promise.all(t.map((e=>this._actionQueues.enqueue(e.id,(()=>{if("destroyed"===this.state)throw new Error("Cannot add items to destroyed watchdog.");if(!this._context)throw new Error("Context was not created yet. You should call the `ContextWatchdog#create()` method first.");let t;if(this._watchdogs.has(e.id))throw new Error(`Item with the given id is already added: '${e.id}'.`);if("editor"===e.type)return t=new Uh(null,this._watchdogConfig),t.setCreator(e.creator),t._setExcludedProperties(this._contextProps),e.destructor&&t.setDestructor(e.destructor),this._watchdogs.set(e.id,t),t.on("error",((o,{error:n,causesRestart:i})=>{this._fire("itemError",{itemId:e.id,error:n}),i&&this._actionQueues.enqueue(e.id,(()=>new Promise((o=>{const n=()=>{t.off("restart",n),this._fire("itemRestart",{itemId:e.id}),o()};t.on("restart",n)}))))})),t.create(e.sourceElementOrData,e.config,this._context);throw new Error(`Not supported item type: '${e.type}'.`)})))))}remove(e){const t=Zh(e);return Promise.all(t.map((e=>this._actionQueues.enqueue(e,(()=>{const t=this._getWatchdog(e);return this._watchdogs.delete(e),t.destroy()})))))}destroy(){return this._actionQueues.enqueue(Gh,(()=>(this.state="destroyed",this._fire("stateChange"),super.destroy(),this._destroy())))}_restart(){return this._actionQueues.enqueue(Gh,(()=>(this.state="initializing",this._fire("stateChange"),this._destroy().catch((e=>{console.error("An error happened during destroying the context or items.",e)})).then((()=>this._create())).then((()=>this._fire("restart"))))))}_create(){return Promise.resolve().then((()=>(this._startErrorHandling(),this._creator(this._contextConfig)))).then((e=>(this._context=e,this._contextProps=jh(this._context),Promise.all(Array.from(this._watchdogs.values()).map((e=>(e._setExcludedProperties(this._contextProps),e.create(void 0,void 0,this._context))))))))}_destroy(){return Promise.resolve().then((()=>{this._stopErrorHandling();const e=this._context;return this._context=null,this._contextProps=new Set,Promise.all(Array.from(this._watchdogs.values()).map((e=>e.destroy()))).then((()=>this._destructor(e)))}))}_getWatchdog(e){const t=this._watchdogs.get(e);if(!t)throw new Error(`Item with the given id was not registered: ${e}.`);return t}_isErrorComingFromThisItem(e){for(const t of this._watchdogs.values())if(t._isErrorComingFromThisItem(e))return!1;return $h(this._context,e.context)}};const ap=sp;function lp(e){const t=function(e){return{sessionId:ip(),pageSessionId:rp(),hostname:window.location.hostname,version:globalThis.CKEDITOR_VERSION,type:tp(e),plugins:(t=e.plugins,Array.from(t).filter((([e])=>!!e.pluginName)).map((([e])=>{const{pluginName:t,isContextPlugin:o,isOfficialPlugin:n,isPremiumPlugin:i}=e;return{isContext:!!o,isOfficial:!!n,isPremium:!!i,name:t}}))),distribution:{channel:window[Symbol.for("cke distribution")]||"sh"},env:np(),integration:Object.create(null),menuBar:{isVisible:!!e.config.get("menuBar.isVisible")},language:{ui:e.locale.uiLanguage,content:e.locale.contentLanguage},toolbar:{main:op(e.config.get("toolbar")),block:op(e.config.get("blockToolbar")),balloon:op(e.config.get("balloonToolbar"))}};var t}(e);return e.fire("collectUsageData",{setUsageData:function(e,o){if(void 0!==qr(t,e))throw new S("editor-usage-data-path-already-set",{path:e});Ur(t,e,o)}}),t}function cp(e){return class extends e{updateSourceElement(e){if(!this.sourceElement)throw new S("editor-missing-sourceelement",this);const t=this.config.get("updateSourceElementOnDestroy"),o=this.sourceElement instanceof HTMLTextAreaElement;if(!t&&!o)return void ei(this.sourceElement,"");const n="string"==typeof e?e:this.data.get();ei(this.sourceElement,n)}}}cp.updateSourceElement=cp(Object).prototype.updateSourceElement;class dp extends Cr{static get pluginName(){return"PendingActions"}static get isOfficialPlugin(){return!0}init(){this.set("hasAny",!1),this._actions=new tr({idProperty:"_id"}),this._actions.delegate("add","remove").to(this)}add(e){if("string"!=typeof e)throw new S("pendingactions-add-invalid-message",this);const t=new(X());return t.set("message",e),this._actions.add(t),this.hasAny=!0,t}remove(e){this._actions.remove(e),this.hasAny=!!this._actions.length}get first(){return this._actions.get(0)}[Symbol.iterator](){return this._actions[Symbol.iterator]()}}const up={bold:'',cancel:'',caption:'',check:'',cog:'',colorPalette:'',eraser:'',history:'',image:'',imageUpload:'',imageAssetManager:'',imageUrl:'',lowVision:'',textAlternative:'',loupe:'',previousArrow:'',nextArrow:'',importExport:'',paragraph:'',plus:'',text:'',alignBottom:'',alignMiddle:'',alignTop:'',alignLeft:'',alignCenter:'',alignRight:'',alignJustify:'',objectLeft:'',objectCenter:'',objectRight:'',objectFullWidth:'',objectInline:'',objectBlockLeft:'',objectBlockRight:'',objectSizeCustom:'',objectSizeFull:'',objectSizeLarge:'',objectSizeSmall:'',objectSizeMedium:'',pencil:'',pilcrow:'',quote:'',threeVerticalDots:'',dragIndicator:'',redo:'',undo:'',bulletedList:'',numberedList:'',todoList:'',codeBlock:'',browseFiles:'',heading1:'',heading2:'',heading3:'',heading4:'',heading5:'',heading6:'',horizontalLine:'',html:'',indent:'',outdent:'',table:'',source:'\n',remove:'',bookmark:'',bookmarkInline:'',emoji:'\n'};class hp extends tr{constructor(e=[]){super(e,{idProperty:"viewUid"}),this.on("add",((e,t,o)=>{this._renderViewIntoCollectionParent(t,o)})),this.on("remove",((e,t)=>{t.element&&this._parentElement&&t.element.remove()})),this._parentElement=null}destroy(){this.map((e=>e.destroy()))}setParent(e){this._parentElement=e;for(const e of this)this._renderViewIntoCollectionParent(e)}delegate(...e){if(!e.length||!e.every((e=>"string"==typeof e)))throw new S("ui-viewcollection-delegate-wrong-events",this);return{to:t=>{for(const o of this)for(const n of e)o.delegate(n).to(t);this.on("add",((o,n)=>{for(const o of e)n.delegate(o).to(t)})),this.on("remove",((o,n)=>{for(const o of e)n.stopDelegating(o,t)}))}}}_renderViewIntoCollectionParent(e,t){e.isRendered||e.render(),e.element&&this._parentElement&&this._parentElement.insertBefore(e.element,this._parentElement.children[t])}remove(e){return super.remove(e)}}class pp extends(V()){constructor(e){super(),Object.assign(this,Cp(Ap(e))),this._isRendered=!1,this._revertData=null}render(){const e=this._renderNode({intoFragment:!0});return this._isRendered=!0,e}apply(e){return this._revertData={children:[],bindings:[],attributes:{}},this._renderNode({node:e,intoFragment:!1,isApplying:!0,revertData:this._revertData}),e}revert(e){if(!this._revertData)throw new S("ui-template-revert-not-applied",[this,e]);this._revertTemplateFromNode(e,this._revertData)}*getViews(){yield*function*e(t){if(t.children)for(const o of t.children)Sp(o)?yield o:Tp(o)&&(yield*e(o))}(this)}static bind(e,t){return{to:(o,n)=>new gp({eventNameOrFunction:o,attribute:o,observable:e,emitter:t,callback:n}),if:(o,n,i)=>new fp({observable:e,emitter:t,attribute:o,valueIfTrue:n,callback:i})}}static extend(e,t){if(e._isRendered)throw new S("template-extend-render",[this,e]);Dp(e,Cp(Ap(t)))}_renderNode(e){let t;if(t=e.node?this.tag&&this.text:this.tag?this.text:!this.text,t)throw new S("ui-template-wrong-syntax",this);return this.text?this._renderText(e):this._renderElement(e)}_renderElement(e){let t=e.node;return t||(t=e.node=document.createElementNS(this.ns||"http://www.w3.org/1999/xhtml",this.tag)),this._renderAttributes(e),this._renderElementChildren(e),this._setUpListeners(e),t}_renderText(e){let t=e.node;return t?e.revertData.text=t.textContent:t=e.node=document.createTextNode(""),bp(this.text)?this._bindToObservable({schema:this.text,updater:wp(t),data:e}):t.textContent=this.text.join(""),t}_renderAttributes(e){if(!this.attributes)return;const t=e.node,o=e.revertData;for(const n in this.attributes){const i=t.getAttribute(n),r=this.attributes[n];o&&(o.attributes[n]=i);const s=Pp(r)?r[0].ns:null;if(bp(r)){const a=Pp(r)?r[0].value:r;o&&Fp(n)&&a.unshift(i),this._bindToObservable({schema:a,updater:_p(t,n,s),data:e})}else if("style"==n&&"string"!=typeof r[0])this._renderStyleAttribute(r[0],e);else{o&&i&&Fp(n)&&r.unshift(i);const e=r.map((e=>e&&e.value||e)).reduce(((e,t)=>e.concat(t)),[]).reduce(xp,"");Bp(e)||t.setAttributeNS(s,n,e)}}}_renderStyleAttribute(e,t){const o=t.node;for(const n in e){const i=e[n];bp(i)?this._bindToObservable({schema:[i],updater:yp(o,n),data:t}):o.style[n]=i}}_renderElementChildren(e){const t=e.node,o=e.intoFragment?document.createDocumentFragment():t,n=e.isApplying;let i=0;for(const r of this.children)if(Ip(r)){if(!n){r.setParent(t);for(const e of r)o.appendChild(e.element)}}else if(Sp(r))n||(r.isRendered||r.render(),o.appendChild(r.element));else if(Rn(r))o.appendChild(r);else if(n){const t={children:[],bindings:[],attributes:{}};e.revertData.children.push(t),r._renderNode({intoFragment:!1,node:o.childNodes[i++],isApplying:!0,revertData:t})}else o.appendChild(r.render());e.intoFragment&&t.appendChild(o)}_setUpListeners(e){if(this.eventListeners)for(const t in this.eventListeners){const o=this.eventListeners[t].map((o=>{const[n,i]=t.split("@");return o.activateDomEventListener(n,i,e)}));e.revertData&&e.revertData.bindings.push(o)}}_bindToObservable({schema:e,updater:t,data:o}){const n=o.revertData;kp(e,t,o);const i=e.filter((e=>!Bp(e))).filter((e=>e.observable)).map((n=>n.activateAttributeListener(e,t,o)));n&&n.bindings.push(i)}_revertTemplateFromNode(e,t){for(const e of t.bindings)for(const t of e)t();if(t.text)return void(e.textContent=t.text);const o=e;for(const e in t.attributes){const n=t.attributes[e];null===n?o.removeAttribute(e):o.setAttribute(e,n)}for(let e=0;ekp(e,t,o);return this.emitter.listenTo(this.observable,`change:${this.attribute}`,n),()=>{this.emitter.stopListening(this.observable,`change:${this.attribute}`,n)}}}class gp extends mp{constructor(e){super(e),this.eventNameOrFunction=e.eventNameOrFunction}activateDomEventListener(e,t,o){const n=(e,o)=>{t&&!o.target.matches(t)||("function"==typeof this.eventNameOrFunction?this.eventNameOrFunction(o):this.observable.fire(this.eventNameOrFunction,o))};return this.emitter.listenTo(o.node,e,n),()=>{this.emitter.stopListening(o.node,e,n)}}}class fp extends mp{constructor(e){super(e),this.valueIfTrue=e.valueIfTrue}getValue(e){return!Bp(super.getValue(e))&&(this.valueIfTrue||!0)}}function bp(e){return!!e&&(e.value&&(e=e.value),Array.isArray(e)?e.some(bp):e instanceof mp)}function kp(e,t,{node:o}){const n=function(e,t){return e.map((e=>e instanceof mp?e.getValue(t):e))}(e,o);let i;i=1==e.length&&e[0]instanceof fp?n[0]:n.reduce(xp,""),Bp(i)?t.remove():t.set(i)}function wp(e){return{set(t){e.textContent=t},remove(){e.textContent=""}}}function _p(e,t,o){return{set(n){e.setAttributeNS(o,t,n)},remove(){e.removeAttributeNS(o,t)}}}function yp(e,t){return{set(o){e.style[t]=o},remove(){e.style[t]=null}}}function Ap(e){return Sn(e,(e=>{if(e&&(e instanceof mp||Tp(e)||Sp(e)||Ip(e)))return e}))}function Cp(e){if("string"==typeof e?e=function(e){return{text:[e]}}(e):e.text&&function(e){e.text=Si(e.text)}(e),e.on&&(e.eventListeners=function(e){for(const t in e)vp(e,t);return e}(e.on),delete e.on),!e.text){e.attributes&&function(e){for(const t in e)e[t].value&&(e[t].value=Si(e[t].value)),vp(e,t)}(e.attributes);const t=[];if(e.children)if(Ip(e.children))t.push(e.children);else for(const o of e.children)Tp(o)||Sp(o)||Rn(o)?t.push(o):t.push(new pp(o));e.children=t}return e}function vp(e,t){e[t]=Si(e[t])}function xp(e,t){return Bp(t)?e:Bp(e)?t:`${e} ${t}`}function Ep(e,t){for(const o in t)e[o]?e[o].push(...t[o]):e[o]=t[o]}function Dp(e,t){if(t.attributes&&(e.attributes||(e.attributes={}),Ep(e.attributes,t.attributes)),t.eventListeners&&(e.eventListeners||(e.eventListeners={}),Ep(e.eventListeners,t.eventListeners)),t.text&&e.text.push(...t.text),t.children&&t.children.length){if(e.children.length!=t.children.length)throw new S("ui-template-extend-children-mismatch",e);let o=0;for(const n of t.children)Dp(e.children[o++],n)}}function Bp(e){return!e&&0!==e}function Sp(e){return e instanceof zp}function Tp(e){return e instanceof pp}function Ip(e){return e instanceof hp}function Pp(e){return W(e[0])&&e[0].ns}function Fp(e){return"class"==e||"style"==e}var Rp=i(601),Mp={attributes:{"data-cke":!0}};Mp.setAttributes=Xr(),Mp.insert=Yr().bind(null,"head"),Mp.domAPI=Zr(),Mp.insertStyleElement=ts();Gr()(Rp.A,Mp);Rp.A&&Rp.A.locals&&Rp.A.locals;class zp extends(On(X())){constructor(e){super(),this.element=null,this.isRendered=!1,this.locale=e,this.t=e&&e.t,this._viewCollections=new tr,this._unboundChildren=this.createCollection(),this._viewCollections.on("add",((t,o)=>{o.locale=e,o.t=e&&e.t})),this.decorate("render")}get bindTemplate(){return this._bindTemplate?this._bindTemplate:this._bindTemplate=pp.bind(this,this)}createCollection(e){const t=new hp(e);return this._viewCollections.add(t),t}registerChild(e){ae(e)||(e=[e]);for(const t of e)this._unboundChildren.add(t)}deregisterChild(e){ae(e)||(e=[e]);for(const t of e)this._unboundChildren.remove(t)}setTemplate(e){this.template=new pp(e)}extendTemplate(e){pp.extend(this.template,e)}render(){if(this.isRendered)throw new S("ui-view-render-already-rendered",this);this.template&&(this.element=this.template.render(),this.registerChild(this.template.getViews())),this.isRendered=!0}destroy(){this.stopListening(),this._viewCollections.map((e=>e.destroy())),this.template&&this.template._revertData&&this.template.revert(this.element)}}function Op({emitter:e,activator:t,callback:o,contextElements:n,listenerOptions:i}){e.listenTo(document,"mousedown",((e,i)=>{if(!t())return;const r="function"==typeof i.composedPath?i.composedPath():[],s="function"==typeof n?n():n;for(const e of s)if(e.contains(i.target)||r.includes(e))return;o()}),i)}function Np(e){return class extends e{disableCssTransitions(){this._isCssTransitionsDisabled=!0}enableCssTransitions(){this._isCssTransitionsDisabled=!1}constructor(...e){super(...e),this.set("_isCssTransitionsDisabled",!1),this.initializeCssTransitionDisablerMixin()}initializeCssTransitionDisablerMixin(){this.extendTemplate({attributes:{class:[this.bindTemplate.if("_isCssTransitionsDisabled","ck-transitions-disabled")]}})}}}function Vp({view:e}){e.listenTo(e.element,"submit",((t,o)=>{o.preventDefault(),e.fire("submit")}),{useCapture:!0})}function Lp({keystrokeHandler:e,focusTracker:t,gridItems:o,numberOfColumns:n,uiLanguageDirection:i}){const r="number"==typeof n?()=>n:n;function s(e){return n=>{const i=o.find((e=>e.element===t.focusedElement)),r=o.getIndex(i),s=e(r,o);o.get(s).focus(),n.stopPropagation(),n.preventDefault()}}function a(e,t){return e===t-1?0:e+1}function l(e,t){return 0===e?t-1:e-1}e.set("arrowright",s(((e,t)=>"rtl"===i?l(e,t.length):a(e,t.length)))),e.set("arrowleft",s(((e,t)=>"rtl"===i?a(e,t.length):l(e,t.length)))),e.set("arrowup",s(((e,t)=>{let o=e-r();return o<0&&(o=e+r()*Math.floor(t.length/r()),o>t.length-1&&(o-=r())),o}))),e.set("arrowdown",s(((e,t)=>{let o=e+r();return o>t.length-1&&(o=e%r()),o})))}var Hp=i(4106),jp={attributes:{"data-cke":!0}};jp.setAttributes=Xr(),jp.insert=Yr().bind(null,"head"),jp.domAPI=Zr(),jp.insertStyleElement=ts();Gr()(Hp.A,jp);Hp.A&&Hp.A.locals&&Hp.A.locals;class qp extends zp{constructor(){super();const e=this.bindTemplate;this.set("content",""),this.set("viewBox","0 0 20 20"),this.set("fillColor",""),this.set("isColorInherited",!0),this.set("isVisible",!0),this.setTemplate({tag:"svg",ns:"http://www.w3.org/2000/svg",attributes:{class:["ck","ck-icon",e.if("isVisible","ck-hidden",(e=>!e)),"ck-reset_all-excluded",e.if("isColorInherited","ck-icon_inherit-color")],viewBox:e.to("viewBox"),"aria-hidden":!0}})}render(){super.render(),this._updateXMLContent(),this._colorFillPaths(),this.on("change:content",(()=>{this._updateXMLContent(),this._colorFillPaths()})),this.on("change:fillColor",(()=>{this._colorFillPaths()}))}_updateXMLContent(){if(this.content){const e=(new DOMParser).parseFromString(this.content.trim(),"image/svg+xml").querySelector("svg"),t=e.getAttribute("viewBox");t&&(this.viewBox=t);for(const{name:t,value:o}of Array.from(e.attributes))qp.presentationalAttributeNames.includes(t)&&this.element.setAttribute(t,o);for(;this.element.firstChild;)this.element.removeChild(this.element.firstChild);for(;e.childNodes.length>0;)this.element.appendChild(e.childNodes[0])}}_colorFillPaths(){this.fillColor&&this.element.querySelectorAll(".ck-icon__fill").forEach((e=>{e.style.fill=this.fillColor}))}}qp.presentationalAttributeNames=["alignment-baseline","baseline-shift","clip-path","clip-rule","color","color-interpolation","color-interpolation-filters","color-rendering","cursor","direction","display","dominant-baseline","fill","fill-opacity","fill-rule","filter","flood-color","flood-opacity","font-family","font-size","font-size-adjust","font-stretch","font-style","font-variant","font-weight","image-rendering","letter-spacing","lighting-color","marker-end","marker-mid","marker-start","mask","opacity","overflow","paint-order","pointer-events","shape-rendering","stop-color","stop-opacity","stroke","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-width","text-anchor","text-decoration","text-overflow","text-rendering","transform","unicode-bidi","vector-effect","visibility","white-space","word-spacing","writing-mode"];const $p=qp;class Up extends zp{constructor(){super(),this.set({style:void 0,text:void 0,id:void 0});const e=this.bindTemplate;this.setTemplate({tag:"span",attributes:{class:["ck","ck-button__label"],style:e.to("style"),id:e.to("id")},children:[{text:e.to("text")}]})}}var Wp=i(8948),Gp={attributes:{"data-cke":!0}};Gp.setAttributes=Xr(),Gp.insert=Yr().bind(null,"head"),Gp.domAPI=Zr(),Gp.insertStyleElement=ts();Gr()(Wp.A,Gp);Wp.A&&Wp.A.locals&&Wp.A.locals;class Kp extends zp{constructor(e,t=new Up){super(e),this._focusDelayed=null;const o=this.bindTemplate,n=E();this.set("_ariaPressed",!1),this.set("_ariaChecked",!1),this.set("ariaLabel",void 0),this.set("ariaLabelledBy",`ck-editor__aria-label_${n}`),this.set("class",void 0),this.set("labelStyle",void 0),this.set("icon",void 0),this.set("isEnabled",!0),this.set("isOn",!1),this.set("isVisible",!0),this.set("isToggleable",!1),this.set("keystroke",void 0),this.set("label",void 0),this.set("role",void 0),this.set("tabindex",-1),this.set("tooltip",!1),this.set("tooltipPosition","s"),this.set("type","button"),this.set("withText",!1),this.set("withKeystroke",!1),this.children=this.createCollection(),this.labelView=this._setupLabelView(t),this.iconView=new $p,this.iconView.extendTemplate({attributes:{class:"ck-button__icon"}}),this.keystrokeView=this._createKeystrokeView(),this.bind("_tooltipString").to(this,"tooltip",this,"label",this,"keystroke",this._getTooltipString.bind(this));const i={tag:"button",attributes:{class:["ck","ck-button",o.to("class"),o.if("isEnabled","ck-disabled",(e=>!e)),o.if("isVisible","ck-hidden",(e=>!e)),o.to("isOn",(e=>e?"ck-on":"ck-off")),o.if("withText","ck-button_with-text"),o.if("withKeystroke","ck-button_with-keystroke")],role:o.to("role"),type:o.to("type",(e=>e||"button")),tabindex:o.to("tabindex"),"aria-checked":o.to("_ariaChecked"),"aria-pressed":o.to("_ariaPressed"),"aria-label":o.to("ariaLabel"),"aria-labelledby":o.to("ariaLabelledBy"),"aria-disabled":o.if("isEnabled",!0,(e=>!e)),"data-cke-tooltip-text":o.to("_tooltipString"),"data-cke-tooltip-position":o.to("tooltipPosition")},children:this.children,on:{click:o.to((e=>{this.isEnabled?this.fire("execute"):e.preventDefault()}))}};this.bind("_ariaPressed").to(this,"isOn",this,"isToggleable",this,"role",((e,t,o)=>!(!t||Zp(o))&&String(!!e))),this.bind("_ariaChecked").to(this,"isOn",this,"isToggleable",this,"role",((e,t,o)=>!(!t||!Zp(o))&&String(!!e))),c.isSafari&&(this._focusDelayed||(this._focusDelayed=dr((()=>this.focus()),0)),i.on.mousedown=o.to((()=>{this._focusDelayed()})),i.on.mouseup=o.to((()=>{this._focusDelayed.cancel()}))),this.setTemplate(i)}render(){super.render(),this.icon&&(this.iconView.bind("content").to(this,"icon"),this.children.add(this.iconView)),this.children.add(this.labelView),this.withKeystroke&&this.keystroke&&this.children.add(this.keystrokeView)}focus(){this.element.focus()}destroy(){this._focusDelayed&&this._focusDelayed.cancel(),super.destroy()}_setupLabelView(e){return e.bind("text","style","id").to(this,"label","labelStyle","ariaLabelledBy"),e}_createKeystrokeView(){const e=new zp;return e.setTemplate({tag:"span",attributes:{class:["ck","ck-button__keystroke"]},children:[{text:this.bindTemplate.to("keystroke",(e=>Ei(e)))}]}),e}_getTooltipString(e,t,o){return e?"string"==typeof e?e:(o&&(o=Ei(o)),e instanceof Function?e(t,o):`${t}${o?` (${o})`:""}`):""}}function Zp(e){switch(e){case"radio":case"checkbox":case"option":case"switch":case"menuitemcheckbox":case"menuitemradio":return!0;default:return!1}}var Jp=i(4866),Yp={attributes:{"data-cke":!0}};Yp.setAttributes=Xr(),Yp.insert=Yr().bind(null,"head"),Yp.domAPI=Zr(),Yp.insertStyleElement=ts();Gr()(Jp.A,Yp);Jp.A&&Jp.A.locals&&Jp.A.locals;class Qp extends zp{constructor(e,t={}){super(e);const o=this.bindTemplate;this.set("label",t.label||""),this.set("class",t.class||null),this.children=this.createCollection(),this.setTemplate({tag:"div",attributes:{class:["ck","ck-form__header",o.to("class")]},children:this.children}),t.icon&&(this.iconView=new $p,this.iconView.content=t.icon,this.children.add(this.iconView));const n=new zp(e);n.setTemplate({tag:"h2",attributes:{class:["ck","ck-form__header__label"],role:"presentation"},children:[{text:o.to("label")}]}),this.children.add(n)}}class Xp extends(V()){constructor(e){if(super(),this.focusables=e.focusables,this.focusTracker=e.focusTracker,this.keystrokeHandler=e.keystrokeHandler,this.actions=e.actions,e.actions&&e.keystrokeHandler)for(const t in e.actions){let o=e.actions[t];"string"==typeof o&&(o=[o]);for(const n of o)e.keystrokeHandler.set(n,((e,o)=>{this[t](),o()}),e.keystrokeHandlerOptions)}this.on("forwardCycle",(()=>this.focusFirst()),{priority:"low"}),this.on("backwardCycle",(()=>this.focusLast()),{priority:"low"})}get first(){return this.focusables.find(em)||null}get last(){return this.focusables.filter(em).slice(-1)[0]||null}get next(){return this._getDomFocusableItem(1)}get previous(){return this._getDomFocusableItem(-1)}get current(){let e=null;return null===this.focusTracker.focusedElement?null:(this.focusables.find(((t,o)=>{const n=t.element===this.focusTracker.focusedElement;return n&&(e=o),n})),e)}focusFirst(){this._focus(this.first,1)}focusLast(){this._focus(this.last,-1)}focusNext(){const e=this.next;e&&this.focusables.getIndex(e)===this.current||e===this.first?this.fire("forwardCycle"):this._focus(e,1)}focusPrevious(){const e=this.previous;e&&this.focusables.getIndex(e)===this.current||e===this.last?this.fire("backwardCycle"):this._focus(e,-1)}chain(e){const t=()=>null===this.current?null:this.focusables.get(this.current);this.listenTo(e,"forwardCycle",(e=>{const o=t();this.focusNext(),o!==t()&&e.stop()}),{priority:"low"}),this.listenTo(e,"backwardCycle",(e=>{const o=t();this.focusPrevious(),o!==t()&&e.stop()}),{priority:"low"})}unchain(e){this.stopListening(e)}_focus(e,t){e&&this.focusTracker.focusedElement!==e.element&&e.focus(t)}_getDomFocusableItem(e){const t=this.focusables.length;if(!t)return null;const o=this.current;if(null===o)return this[1===e?"first":"last"];let n=this.focusables.get(o),i=(o+t+e)%t;do{const o=this.focusables.get(i);if(em(o)){n=o;break}i=(i+t+e)%t}while(i!==o);return n}}function em(e){return tm(e)&&ri(e.element)}function tm(e){return!(!("focus"in e)||"function"!=typeof e.focus)}function om(e){return class extends e{constructor(...e){super(...e),this._onDragBound=this._onDrag.bind(this),this._onDragEndBound=this._onDragEnd.bind(this),this._lastDraggingCoordinates={x:0,y:0},this.on("render",(()=>{this._attachListeners()})),this.set("isDragging",!1)}_attachListeners(){this.listenTo(this.element,"mousedown",this._onDragStart.bind(this)),this.listenTo(this.element,"touchstart",this._onDragStart.bind(this))}_attachDragListeners(){this.listenTo(s.document,"mouseup",this._onDragEndBound),this.listenTo(s.document,"touchend",this._onDragEndBound),this.listenTo(s.document,"mousemove",this._onDragBound),this.listenTo(s.document,"touchmove",this._onDragBound)}_detachDragListeners(){this.stopListening(s.document,"mouseup",this._onDragEndBound),this.stopListening(s.document,"touchend",this._onDragEndBound),this.stopListening(s.document,"mousemove",this._onDragBound),this.stopListening(s.document,"touchmove",this._onDragBound)}_onDragStart(e,t){if(!this._isHandleElementPressed(t))return;this._attachDragListeners();let o=0,n=0;t instanceof MouseEvent?(o=t.clientX,n=t.clientY):(o=t.touches[0].clientX,n=t.touches[0].clientY),this._lastDraggingCoordinates={x:o,y:n},this.isDragging=!0}_onDrag(e,t){if(!this.isDragging)return void this._detachDragListeners();let o=0,n=0;t instanceof MouseEvent?(o=t.clientX,n=t.clientY):(o=t.touches[0].clientX,n=t.touches[0].clientY),t.preventDefault(),this.fire("drag",{deltaX:Math.round(o-this._lastDraggingCoordinates.x),deltaY:Math.round(n-this._lastDraggingCoordinates.y)}),this._lastDraggingCoordinates={x:o,y:n}}_onDragEnd(){this._detachDragListeners(),this.isDragging=!1}_isHandleElementPressed(e){return!!this.dragHandleElement&&(this.dragHandleElement===e.target||e.target instanceof HTMLElement&&this.dragHandleElement.contains(e.target))}}}var nm=i(8091),im={attributes:{"data-cke":!0}};im.setAttributes=Xr(),im.insert=Yr().bind(null,"head"),im.domAPI=Zr(),im.insertStyleElement=ts();Gr()(nm.A,im);nm.A&&nm.A.locals&&nm.A.locals;class rm extends zp{constructor(e){super(e),this.children=this.createCollection(),this.keystrokes=new ar,this._focusTracker=new nr,this._focusables=new hp,this.focusCycler=new Xp({focusables:this._focusables,focusTracker:this._focusTracker,keystrokeHandler:this.keystrokes,actions:{focusPrevious:"shift + tab",focusNext:"tab"}}),this.setTemplate({tag:"div",attributes:{class:["ck","ck-dialog__actions"]},children:this.children})}render(){super.render(),this.keystrokes.listenTo(this.element)}setButtons(e){for(const t of e){const e=new Kp(this.locale);let o;for(o in e.on("execute",(()=>t.onExecute())),t.onCreate&&t.onCreate(e),t)"onExecute"!=o&&"onCreate"!=o&&e.set(o,t[o]);this.children.add(e)}this._updateFocusCyclableItems()}focus(e){-1===e?this.focusCycler.focusLast():this.focusCycler.focusFirst()}_updateFocusCyclableItems(){Array.from(this.children).forEach((e=>{this._focusables.add(e),this._focusTracker.add(e.element)}))}}class sm extends zp{constructor(e){super(e),this.children=this.createCollection(),this.setTemplate({tag:"div",attributes:{class:["ck","ck-dialog__content"]},children:this.children})}reset(){for(;this.children.length;)this.children.remove(0)}}var am=i(880),lm={attributes:{"data-cke":!0}};lm.setAttributes=Xr(),lm.insert=Yr().bind(null,"head"),lm.domAPI=Zr(),lm.insertStyleElement=ts();Gr()(am.A,lm);am.A&&am.A.locals&&am.A.locals;const cm="screen-center",dm="editor-center",um="editor-top-side",hm="editor-top-center",pm="editor-bottom-center",mm="editor-above-center",gm="editor-below-center",fm=ti("px");class bm extends(om(zp)){constructor(e,{getCurrentDomRoot:t,getViewportOffset:o,keystrokeHandlerOptions:n}){super(e),this.wasMoved=!1;const i=this.bindTemplate,r=e.t;this.set("className",""),this.set("ariaLabel",r("Editor dialog")),this.set("isModal",!1),this.set("position",cm),this.set("_isVisible",!1),this.set("_isTransparent",!1),this.set("_top",0),this.set("_left",0),this._getCurrentDomRoot=t,this._getViewportOffset=o,this.decorate("moveTo"),this.parts=this.createCollection(),this.keystrokes=new ar,this.focusTracker=new nr,this._focusables=new hp,this._focusCycler=new Xp({focusables:this._focusables,focusTracker:this.focusTracker,keystrokeHandler:this.keystrokes,actions:{focusPrevious:"shift + tab",focusNext:"tab"},keystrokeHandlerOptions:n}),this.setTemplate({tag:"div",attributes:{class:["ck","ck-dialog-overlay",i.if("isModal","ck-dialog-overlay__transparent",(e=>!e)),i.if("_isVisible","ck-hidden",(e=>!e))],tabindex:"-1"},children:[{tag:"div",attributes:{tabindex:"-1",class:["ck","ck-dialog",i.if("isModal","ck-dialog_modal"),i.to("className")],role:"dialog","aria-label":i.to("ariaLabel"),style:{top:i.to("_top",(e=>fm(e))),left:i.to("_left",(e=>fm(e))),visibility:i.if("_isTransparent","hidden")}},children:this.parts}]})}render(){super.render(),this.keystrokes.set("Esc",((e,t)=>{e.defaultPrevented||(this.fire("close",{source:"escKeyPress"}),t())})),this.on("drag",((e,{deltaX:t,deltaY:o})=>{this.wasMoved=!0,this.moveBy(t,o)})),this.listenTo(s.window,"resize",(()=>{this._isVisible&&!this.wasMoved&&this.updatePosition()})),this.listenTo(s.document,"scroll",(()=>{this._isVisible&&!this.wasMoved&&this.updatePosition()})),this.on("change:_isVisible",((e,t,o)=>{o&&(this._isTransparent=!0,setTimeout((()=>{this.updatePosition(),this._isTransparent=!1,this.focus()}),10))})),this.keystrokes.listenTo(this.element)}get dragHandleElement(){return this.headerView&&!this.isModal?this.headerView.element:null}setupParts({icon:e,title:t,hasCloseButton:o=!0,content:n,actionButtons:i}){t&&(this.headerView=new Qp(this.locale,{icon:e}),o&&(this.closeButtonView=this._createCloseButton(),this.headerView.children.add(this.closeButtonView)),this.headerView.label=t,this.ariaLabel=t,this.parts.add(this.headerView,0)),n&&(n instanceof zp&&(n=[n]),this.contentView=new sm(this.locale),this.contentView.children.addMany(n),this.parts.add(this.contentView)),i&&(this.actionsView=new rm(this.locale),this.actionsView.setButtons(i),this.parts.add(this.actionsView)),this._updateFocusCyclableItems()}focus(){this._focusCycler.focusFirst()}moveTo(e,t){const o=this._getViewportRect(),n=this._getDialogRect();e+n.width>o.right&&(e=o.right-n.width),e{var t;this._focusables.add(e),this.focusTracker.add(e.element),tm(t=e)&&"focusCycler"in t&&t.focusCycler instanceof Xp&&this._focusCycler.chain(e.focusCycler)}))}_createCloseButton(){const e=new Kp(this.locale),t=this.locale.t;return e.set({label:t("Close"),tooltip:!0,icon:up.cancel}),e.on("execute",(()=>this.fire("close",{source:"closeButton"}))),e}}bm.defaultOffset=15;const km=bm;class wm extends br{static get pluginName(){return"Dialog"}static get isOfficialPlugin(){return!0}constructor(e){super(e);const t=e.t;this._initShowHideListeners(),this._initFocusToggler(),this._initMultiRootIntegration(),this.set({id:null,isOpen:!1}),e.accessibility.addKeystrokeInfos({categoryId:"navigation",keystrokes:[{label:t("Move focus in and out of an active dialog window"),keystroke:"Ctrl+F6",mayRequireFn:!0}]})}destroy(){super.destroy(),wm._visibleDialogPlugin===this&&this._unlockBodyScroll()}_initShowHideListeners(){this.on("show",((e,t)=>{this._show(t)})),this.on("show",((e,t)=>{t.onShow&&t.onShow(this)}),{priority:"low"}),this.on("hide",(()=>{wm._visibleDialogPlugin&&wm._visibleDialogPlugin._hide()})),this.on("hide",(()=>{this._onHide&&(this._onHide(this),this._onHide=void 0)}),{priority:"low"})}_initFocusToggler(){const e=this.editor;e.keystrokes.set("Ctrl+F6",((t,o)=>{this.isOpen&&!this.view.isModal&&(this.view.focusTracker.isFocused?e.editing.view.focus():this.view.focus(),o())}))}_initMultiRootIntegration(){const e=this.editor.model;e.document.on("change:data",(()=>{if(!this.view)return;const t=e.document.differ.getChangedRoots();for(const e of t)e.state&&this.view.updatePosition()}))}show(e){this.hide(),this.fire(`show:${e.id}`,e)}_show({id:e,icon:t,title:o,hasCloseButton:n=!0,content:i,actionButtons:r,className:s,isModal:a,position:l,onHide:c,keystrokeHandlerOptions:d}){const u=this.editor;this.view=new km(u.locale,{getCurrentDomRoot:()=>u.editing.view.getDomRoot(u.model.document.selection.anchor.root.rootName),getViewportOffset:()=>u.ui.viewportOffset,keystrokeHandlerOptions:d});const h=this.view;h.on("close",(()=>{this.hide()})),u.ui.view.body.add(h),u.keystrokes.listenTo(h.element),l||(l=a?cm:dm),a&&this._lockBodyScroll(),h.set({position:l,_isVisible:!0,className:s,isModal:a}),h.setupParts({icon:t,title:o,hasCloseButton:n,content:i,actionButtons:r}),this.id=e,c&&(this._onHide=c),this.isOpen=!0,wm._visibleDialogPlugin=this}hide(){wm._visibleDialogPlugin&&wm._visibleDialogPlugin.fire(`hide:${wm._visibleDialogPlugin.id}`)}_hide(){if(!this.view)return;const e=this.editor,t=this.view;t.isModal&&this._unlockBodyScroll(),t.contentView&&t.contentView.reset(),e.ui.view.body.remove(t),e.ui.focusTracker.remove(t.element),e.keystrokes.stopListening(t.element),t.destroy(),e.editing.view.focus(),this.id=null,this.isOpen=!1,wm._visibleDialogPlugin=null}_lockBodyScroll(){document.documentElement.classList.add("ck-dialog-scroll-locked")}_unlockBodyScroll(){document.documentElement.classList.remove("ck-dialog-scroll-locked")}}var _m=i(3389),ym={attributes:{"data-cke":!0}};ym.setAttributes=Xr(),ym.insert=Yr().bind(null,"head"),ym.domAPI=Zr(),ym.insertStyleElement=ts();Gr()(_m.A,ym);_m.A&&_m.A.locals&&_m.A.locals;class Am extends Kp{constructor(e,t=new Up){super(e,t),this._checkIconHolderView=new Cm,this.set({hasCheckSpace:!1,_hasCheck:this.isToggleable});const o=this.bindTemplate;this.extendTemplate({attributes:{class:["ck-list-item-button",o.if("isToggleable","ck-list-item-button_toggleable")]}}),this.bind("_hasCheck").to(this,"hasCheckSpace",this,"isToggleable",((e,t)=>e||t))}render(){super.render(),this._hasCheck&&this.children.add(this._checkIconHolderView,0),this._watchCheckIconHolderMount()}_watchCheckIconHolderMount(){this._checkIconHolderView.bind("isOn").to(this,"isOn",(e=>this.isToggleable&&e)),this.on("change:_hasCheck",((e,t,o)=>{const{children:n,_checkIconHolderView:i}=this;o?n.add(i,0):n.remove(i)}))}}class Cm extends zp{constructor(){super(),this._checkIconView=this._createCheckIconView();const e=this.bindTemplate;this.children=this.createCollection(),this.set("isOn",!1),this.setTemplate({tag:"span",children:this.children,attributes:{class:["ck","ck-list-item-button__check-holder",e.to("isOn",(e=>e?"ck-on":"ck-off"))]}})}render(){super.render(),this.isOn&&this.children.add(this._checkIconView,0),this._watchCheckIconMount()}_watchCheckIconMount(){this.on("change:isOn",((e,t,o)=>{const{children:n,_checkIconView:i}=this;o&&!n.has(i)?n.add(i):!o&&n.has(i)&&n.remove(i)}))}_createCheckIconView(){const e=new $p;return e.content=up.check,e.extendTemplate({attributes:{class:"ck-list-item-button__check-icon"}}),e}}var vm=i(5078),xm={attributes:{"data-cke":!0}};xm.setAttributes=Xr(),xm.insert=Yr().bind(null,"head"),xm.domAPI=Zr(),xm.insertStyleElement=ts();Gr()(vm.A,xm);vm.A&&vm.A.locals&&vm.A.locals;class Em extends Am{constructor(e){super(e),this.set({withText:!0,withKeystroke:!0,tooltip:!1,role:"menuitem"}),this.extendTemplate({attributes:{class:["ck-menu-bar__menu__item__button"]}})}}var Dm=i(4606),Bm={attributes:{"data-cke":!0}};Bm.setAttributes=Xr(),Bm.insert=Yr().bind(null,"head"),Bm.domAPI=Zr(),Bm.insertStyleElement=ts();Gr()(Dm.A,Bm);Dm.A&&Dm.A.locals&&Dm.A.locals;class Sm extends zp{constructor(e){super(e),this.set("text",void 0),this.set("for",void 0),this.id=`ck-editor__label_${E()}`;const t=this.bindTemplate;this.setTemplate({tag:"label",attributes:{class:["ck","ck-label"],id:this.id,for:t.to("for")},children:[{text:t.to("text")}]})}}class Tm extends zp{constructor(e,t){super(e);const o=e.t,n=new Sm;n.text=o("Help Contents. To close this dialog press ESC."),this.setTemplate({tag:"div",attributes:{class:["ck","ck-accessibility-help-dialog__content"],"aria-labelledby":n.id,role:"document",tabindex:-1},children:[ve(document,"p",{},o("Below, you can find a list of keyboard shortcuts that can be used in the editor.")),...this._createCategories(Array.from(t.values())),n]})}focus(){this.element.focus()}_createCategories(e){return e.map((e=>{const t=[ve(document,"h3",{},e.label),...Array.from(e.groups.values()).map((e=>this._createGroup(e))).flat()];return e.description&&t.splice(1,0,ve(document,"p",{},e.description)),ve(document,"section",{},t)}))}_createGroup(e){const t=e.keystrokes.sort(((e,t)=>e.label.localeCompare(t.label))).map((e=>this._createGroupRow(e))).flat(),o=[ve(document,"dl",{},t)];return e.label&&o.unshift(ve(document,"h4",{},e.label)),o}_createGroupRow(e){const t=this.locale.t,o=ve(document,"dt"),n=ve(document,"dd"),i=function(e){if("string"==typeof e)return[[e]];if("string"==typeof e[0])return[e];return e}(e.keystroke),r=[];for(const e of i)r.push(e.map(Im).join(""));return o.innerHTML=e.label,n.innerHTML=r.join(", ")+(e.mayRequireFn&&c.isMac?` ${t("(may require Fn)")}`:""),[o,n]}}function Im(e){return Ei(e).split("+").map((e=>`${e}`)).join("+")}const Pm='';var Fm=i(9550),Rm={attributes:{"data-cke":!0}};Rm.setAttributes=Xr(),Rm.insert=Yr().bind(null,"head"),Rm.domAPI=Zr(),Rm.insertStyleElement=ts();Gr()(Fm.A,Rm);Fm.A&&Fm.A.locals&&Fm.A.locals;class Mm extends br{constructor(){super(...arguments),this.contentView=null}static get requires(){return[wm]}static get pluginName(){return"AccessibilityHelp"}static get isOfficialPlugin(){return!0}init(){const e=this.editor,t=e.locale.t;e.ui.componentFactory.add("accessibilityHelp",(()=>{const e=this._createButton(Kp);return e.set({tooltip:!0,withText:!1,label:t("Accessibility help")}),e})),e.ui.componentFactory.add("menuBar:accessibilityHelp",(()=>{const e=this._createButton(Em);return e.label=t("Accessibility"),e})),e.keystrokes.set("Alt+0",((e,t)=>{this._toggleDialog(),t()})),this._setupRootLabels()}_createButton(e){const t=this.editor,o=t.plugins.get("Dialog"),n=new e(t.locale);return n.set({keystroke:"Alt+0",icon:Pm,isToggleable:!0}),n.on("execute",(()=>this._toggleDialog())),n.bind("isOn").to(o,"id",(e=>"accessibilityHelp"===e)),n}_setupRootLabels(){const e=this.editor,t=e.editing.view,o=e.t;function n(e,t){const n=[t.getAttribute("aria-label"),o("Press %0 for help.",[Ei("Alt+0")])].filter((e=>e)).join(". ");e.setAttribute("aria-label",n,t)}e.ui.on("ready",(()=>{t.change((e=>{for(const o of t.document.roots)n(e,o)})),e.on("addRoot",((o,i)=>{const r=e.editing.view.document.getRoot(i.rootName);t.change((e=>n(e,r)))}),{priority:"low"})}))}_toggleDialog(){const e=this.editor,t=e.plugins.get("Dialog"),o=e.locale.t;this.contentView||(this.contentView=new Tm(e.locale,e.accessibility.keystrokeInfos)),"accessibilityHelp"===t.id?t.hide():t.show({id:"accessibilityHelp",className:"ck-accessibility-help-dialog",title:o("Accessibility help"),icon:Pm,hasCloseButton:!0,content:this.contentView})}}class zm extends hp{constructor(e,t=[]){super(t),this.locale=e}get bodyCollectionContainer(){return this._bodyCollectionContainer}attachToDom(){this._bodyCollectionContainer=new pp({tag:"div",attributes:{class:["ck","ck-reset_all","ck-body","ck-rounded-corners"],dir:this.locale.uiLanguageDirection,role:"application"},children:this}).render(),zm._bodyWrapper&&zm._bodyWrapper.isConnected||(zm._bodyWrapper=ve(document,"div",{class:"ck-body-wrapper"}),document.body.appendChild(zm._bodyWrapper)),zm._bodyWrapper.appendChild(this._bodyCollectionContainer)}detachFromDom(){super.destroy(),this._bodyCollectionContainer&&this._bodyCollectionContainer.remove(),zm._bodyWrapper&&!zm._bodyWrapper.childElementCount&&(zm._bodyWrapper.remove(),delete zm._bodyWrapper)}}var Om=i(9624),Nm={attributes:{"data-cke":!0}};Nm.setAttributes=Xr(),Nm.insert=Yr().bind(null,"head"),Nm.domAPI=Zr(),Nm.insertStyleElement=ts();Gr()(Om.A,Nm);Om.A&&Om.A.locals&&Om.A.locals;class Vm extends Kp{constructor(e){super(e),this.isToggleable=!0,this.toggleSwitchView=this._createToggleView(),this.extendTemplate({attributes:{class:"ck-switchbutton"}})}render(){super.render(),this.children.add(this.toggleSwitchView)}_createToggleView(){const e=new zp;return e.setTemplate({tag:"span",attributes:{class:["ck","ck-button__toggle"]},children:[{tag:"span",attributes:{class:["ck","ck-button__toggle__inner"]}}]}),e}}class Lm extends(jm(Kp)){}class Hm extends(jm(Am)){}function jm(e){return class extends e{constructor(...e){super(...e),this.buttonView=this,this._fileInputView=new qm(this.locale),this._fileInputView.bind("acceptedType").to(this),this._fileInputView.bind("allowMultipleFiles").to(this),this._fileInputView.delegate("done").to(this),this.on("execute",(()=>{this._fileInputView.open()})),this.extendTemplate({attributes:{class:"ck-file-dialog-button"}})}render(){super.render(),this.children.add(this._fileInputView)}}}class qm extends zp{constructor(e){super(e),this.set("acceptedType",void 0),this.set("allowMultipleFiles",!1);const t=this.bindTemplate;this.setTemplate({tag:"input",attributes:{class:["ck-hidden"],type:"file",tabindex:"-1",accept:t.to("acceptedType"),multiple:t.to("allowMultipleFiles")},on:{change:t.to((()=>{this.element&&this.element.files&&this.element.files.length&&this.fire("done",this.element.files),this.element.value=""}))}})}open(){this.element.click()}}const $m='';var Um=i(1750),Wm={attributes:{"data-cke":!0}};Wm.setAttributes=Xr(),Wm.insert=Yr().bind(null,"head"),Wm.domAPI=Zr(),Wm.insertStyleElement=ts();Gr()(Um.A,Wm);Um.A&&Um.A.locals&&Um.A.locals;class Gm extends zp{constructor(e,t){super(e);const o=this.bindTemplate;this.set("isCollapsed",!1),this.set("label",""),this.buttonView=this._createButtonView(),this.children=this.createCollection(),this.set("_collapsibleAriaLabelUid",void 0),t&&this.children.addMany(t),this.setTemplate({tag:"div",attributes:{class:["ck","ck-collapsible",o.if("isCollapsed","ck-collapsible_collapsed")]},children:[this.buttonView,{tag:"div",attributes:{class:["ck","ck-collapsible__children"],role:"region",hidden:o.if("isCollapsed","hidden"),"aria-labelledby":o.to("_collapsibleAriaLabelUid")},children:this.children}]})}render(){super.render(),this._collapsibleAriaLabelUid=this.buttonView.labelView.element.id}focus(){this.buttonView.focus()}_createButtonView(){const e=new Kp(this.locale),t=e.bindTemplate;return e.set({withText:!0,icon:$m}),e.extendTemplate({attributes:{"aria-expanded":t.to("isOn",(e=>String(e)))}}),e.bind("label").to(this),e.bind("isOn").to(this,"isCollapsed",(e=>!e)),e.on("execute",(()=>{this.isCollapsed=!this.isCollapsed})),e}}function Km(e,t){const o=e.t,n={Black:o("Black"),"Dim grey":o("Dim grey"),Grey:o("Grey"),"Light grey":o("Light grey"),White:o("White"),Red:o("Red"),Orange:o("Orange"),Yellow:o("Yellow"),"Light green":o("Light green"),Green:o("Green"),Aquamarine:o("Aquamarine"),Turquoise:o("Turquoise"),"Light blue":o("Light blue"),Blue:o("Blue"),Purple:o("Purple")};return t.map((e=>{const t=n[e.label];return t&&t!=e.label&&(e.label=t),e}))}function Zm(e){return e.map(Jm).filter((e=>!!e))}function Jm(e){return"string"==typeof e?{model:e,label:e,hasBorder:!1,view:{name:"span",styles:{color:e}}}:{model:e.color,label:e.label||e.color,hasBorder:void 0!==e.hasBorder&&e.hasBorder,view:{name:"span",styles:{color:`${e.color}`}}}}class Ym extends Kp{constructor(e){super(e);const t=this.bindTemplate;this.set("color",void 0),this.set("hasBorder",!1),this.icon='',this.extendTemplate({attributes:{style:{backgroundColor:t.to("color",(e=>c.isMediaForcedColors?null:e))},class:["ck","ck-color-grid__tile",t.if("hasBorder","ck-color-selector__color-tile_bordered")]}})}render(){super.render(),this.iconView.fillColor="hsl(0, 0%, 100%)"}}var Qm=i(7962),Xm={attributes:{"data-cke":!0}};Xm.setAttributes=Xr(),Xm.insert=Yr().bind(null,"head"),Xm.domAPI=Zr(),Xm.insertStyleElement=ts();Gr()(Qm.A,Xm);Qm.A&&Qm.A.locals&&Qm.A.locals;class eg extends zp{constructor(e,t){super(e);const o=t&&t.colorDefinitions?t.colorDefinitions:[];this.columns=t&&t.columns?t.columns:5;const n={gridTemplateColumns:`repeat( ${this.columns}, 1fr)`};this.set("selectedColor",void 0),this.items=this.createCollection(),this.focusTracker=new nr,this.keystrokes=new ar,this.items.on("add",((e,t)=>{t.isOn=t.color===this.selectedColor})),o.forEach((e=>{const t=new Ym;t.set({color:e.color,label:e.label,tooltip:!0,hasBorder:e.options.hasBorder}),t.on("execute",(()=>{this.fire("execute",{value:e.color,hasBorder:e.options.hasBorder,label:e.label})})),this.items.add(t)})),this.setTemplate({tag:"div",children:this.items,attributes:{class:["ck","ck-color-grid"],style:n}}),this.on("change:selectedColor",((e,t,o)=>{for(const e of this.items)e.isOn=e.color===o}))}focus(){this.items.length&&this.items.first.focus()}focusLast(){this.items.length&&this.items.last.focus()}render(){super.render();for(const e of this.items)this.focusTracker.add(e.element);this.items.on("add",((e,t)=>{this.focusTracker.add(t.element)})),this.items.on("remove",((e,t)=>{this.focusTracker.remove(t.element)})),this.keystrokes.listenTo(this.element),Lp({keystrokeHandler:this.keystrokes,focusTracker:this.focusTracker,gridItems:this.items,numberOfColumns:this.columns,uiLanguageDirection:this.locale&&this.locale.uiLanguageDirection})}destroy(){super.destroy(),this.focusTracker.destroy(),this.keystrokes.destroy()}}var tg=i(8156);const og=function(e){var t,o,n=[],i=1;if("string"==typeof e)if(tg[e])n=tg[e].slice(),o="rgb";else if("transparent"===e)i=0,o="rgb",n=[0,0,0];else if(/^#[A-Fa-f0-9]+$/.test(e)){var r=e.slice(1);i=1,(l=r.length)<=4?(n=[parseInt(r[0]+r[0],16),parseInt(r[1]+r[1],16),parseInt(r[2]+r[2],16)],4===l&&(i=parseInt(r[3]+r[3],16)/255)):(n=[parseInt(r[0]+r[1],16),parseInt(r[2]+r[3],16),parseInt(r[4]+r[5],16)],8===l&&(i=parseInt(r[6]+r[7],16)/255)),n[0]||(n[0]=0),n[1]||(n[1]=0),n[2]||(n[2]=0),o="rgb"}else if(t=/^((?:rgb|hs[lvb]|hwb|cmyk?|xy[zy]|gray|lab|lchu?v?|[ly]uv|lms)a?)\s*\(([^\)]*)\)/.exec(e)){var s=t[1],a="rgb"===s;o=r=s.replace(/a$/,"");var l="cmyk"===r?4:"gray"===r?1:3;n=t[2].trim().split(/\s*[,\/]\s*|\s+/).map((function(e,t){if(/%$/.test(e))return t===l?parseFloat(e)/100:"rgb"===r?255*parseFloat(e)/100:parseFloat(e);if("h"===r[t]){if(/deg$/.test(e))return parseFloat(e);if(void 0!==ng[e])return ng[e]}return parseFloat(e)})),s===r&&n.push(1),i=a||void 0===n[l]?1:n[l],n=n.slice(0,l)}else e.length>10&&/[0-9](?:\s|\/)/.test(e)&&(n=e.match(/([0-9]+)/g).map((function(e){return parseFloat(e)})),o=e.match(/([a-z])/gi).join("").toLowerCase());else isNaN(e)?Array.isArray(e)||e.length?(n=[e[0],e[1],e[2]],o="rgb",i=4===e.length?e[3]:1):e instanceof Object&&(null!=e.r||null!=e.red||null!=e.R?(o="rgb",n=[e.r||e.red||e.R||0,e.g||e.green||e.G||0,e.b||e.blue||e.B||0]):(o="hsl",n=[e.h||e.hue||e.H||0,e.s||e.saturation||e.S||0,e.l||e.lightness||e.L||e.b||e.brightness]),i=e.a||e.alpha||e.opacity||1,null!=e.opacity&&(i/=100)):(o="rgb",n=[e>>>16,(65280&e)>>>8,255&e]);return{space:o,values:n,alpha:i}};var ng={red:0,orange:60,yellow:120,green:180,blue:240,purple:300};var ig=i(734),rg=i.t(ig,2);function sg(e,t){if(!e)return"";const o=ag(e);if(!o)return"";if(o.space===t)return e;if(n=o,!Object.keys(rg).includes(n.space))return"";var n;const i=rg[o.space][t];if(!i)return"";return function(e,t){switch(t){case"hex":return`#${e}`;case"rgb":return`rgb(${e[0]}, ${e[1]}, ${e[2]})`;case"hsl":return`hsl(${e[0]}, ${e[1]}%, ${e[2]}%)`;case"hwb":return`hwb(${e[0]}, ${e[1]}, ${e[2]})`;case"lab":return`lab(${e[0]}% ${e[1]} ${e[2]})`;case"lch":return`lch(${e[0]}% ${e[1]} ${e[2]})`;default:return""}}(i("hex"===o.space?o.hexValue:o.values),t)}function ag(e){if(e.startsWith("#")){const t=og(e);return{space:"hex",values:t.values,hexValue:e,alpha:t.alpha}}const t=og(e);return t.space?t:null}var lg=i(6365),cg={attributes:{"data-cke":!0}};cg.setAttributes=Xr(),cg.insert=Yr().bind(null,"head"),cg.domAPI=Zr(),cg.insertStyleElement=ts();Gr()(lg.A,cg);lg.A&&lg.A.locals&&lg.A.locals;class dg extends zp{constructor(e,t){super(e);const o=`ck-labeled-field-view-${E()}`,n=`ck-labeled-field-view-status-${E()}`;this.fieldView=t(this,o,n),this.set("label",void 0),this.set("isEnabled",!0),this.set("isEmpty",!0),this.set("isFocused",!1),this.set("errorText",null),this.set("infoText",null),this.set("class",void 0),this.set("placeholder",void 0),this.labelView=this._createLabelView(o),this.statusView=this._createStatusView(n),this.fieldWrapperChildren=this.createCollection([this.fieldView,this.labelView]),this.bind("_statusText").to(this,"errorText",this,"infoText",((e,t)=>e||t));const i=this.bindTemplate;this.setTemplate({tag:"div",attributes:{class:["ck","ck-labeled-field-view",i.to("class"),i.if("isEnabled","ck-disabled",(e=>!e)),i.if("isEmpty","ck-labeled-field-view_empty"),i.if("isFocused","ck-labeled-field-view_focused"),i.if("placeholder","ck-labeled-field-view_placeholder"),i.if("errorText","ck-error")]},children:[{tag:"div",attributes:{class:["ck","ck-labeled-field-view__input-wrapper"]},children:this.fieldWrapperChildren},this.statusView]})}_createLabelView(e){const t=new Sm(this.locale);return t.for=e,t.bind("text").to(this,"label"),t}_createStatusView(e){const t=new zp(this.locale),o=this.bindTemplate;return t.setTemplate({tag:"div",attributes:{class:["ck","ck-labeled-field-view__status",o.if("errorText","ck-labeled-field-view__status_error"),o.if("_statusText","ck-hidden",(e=>!e))],id:e,role:o.if("errorText","alert")},children:[{text:o.to("_statusText")}]}),t}focus(e){this.fieldView.focus(e)}}class ug extends zp{constructor(e){super(e),this.set("value",void 0),this.set("id",void 0),this.set("placeholder",void 0),this.set("tabIndex",void 0),this.set("isReadOnly",!1),this.set("hasError",!1),this.set("ariaDescribedById",void 0),this.set("ariaLabel",void 0),this.focusTracker=new nr,this.bind("isFocused").to(this.focusTracker),this.set("isEmpty",!0);const t=this.bindTemplate;this.setTemplate({tag:"input",attributes:{class:["ck","ck-input",t.if("isFocused","ck-input_focused"),t.if("isEmpty","ck-input-text_empty"),t.if("hasError","ck-error")],id:t.to("id"),placeholder:t.to("placeholder"),tabindex:t.to("tabIndex"),readonly:t.to("isReadOnly"),"aria-invalid":t.if("hasError",!0),"aria-describedby":t.to("ariaDescribedById"),"aria-label":t.to("ariaLabel")},on:{input:t.to(((...e)=>{this.fire("input",...e),this._updateIsEmpty()})),change:t.to(this._updateIsEmpty.bind(this))}})}render(){super.render(),this.focusTracker.add(this.element),this._setDomElementValue(this.value),this._updateIsEmpty(),this.on("change:value",((e,t,o)=>{this._setDomElementValue(o),this._updateIsEmpty()}))}destroy(){super.destroy(),this.focusTracker.destroy()}select(){this.element.select()}focus(){this.element.focus()}reset(){this.value=this.element.value="",this._updateIsEmpty()}_updateIsEmpty(){this.isEmpty=!this.element.value}_setDomElementValue(e){this.element.value=e||0===e?e:""}}var hg=i(1546),pg={attributes:{"data-cke":!0}};pg.setAttributes=Xr(),pg.insert=Yr().bind(null,"head"),pg.domAPI=Zr(),pg.insertStyleElement=ts();Gr()(hg.A,pg);hg.A&&hg.A.locals&&hg.A.locals;class mg extends ug{constructor(e){super(e),this.set("inputMode","text");const t=this.bindTemplate;this.extendTemplate({attributes:{inputmode:t.to("inputMode")}})}}class gg extends mg{constructor(e){super(e),this.extendTemplate({attributes:{type:"text",class:["ck-input-text"]}})}}class fg extends mg{constructor(e,{min:t,max:o,step:n}={}){super(e);const i=this.bindTemplate;this.set("min",t),this.set("max",o),this.set("step",n),this.extendTemplate({attributes:{type:"number",class:["ck-input-number"],min:i.to("min"),max:i.to("max"),step:i.to("step")}})}}var bg=i(8368),kg={attributes:{"data-cke":!0}};kg.setAttributes=Xr(),kg.insert=Yr().bind(null,"head"),kg.domAPI=Zr(),kg.insertStyleElement=ts();Gr()(bg.A,kg);bg.A&&bg.A.locals&&bg.A.locals;class wg extends zp{constructor(e){super(e);const t=this.bindTemplate;this.set("isVisible",!1),this.set("position","se"),this.children=this.createCollection(),this.setTemplate({tag:"div",attributes:{class:["ck","ck-reset","ck-dropdown__panel",t.to("position",(e=>`ck-dropdown__panel_${e}`)),t.if("isVisible","ck-dropdown__panel-visible")],tabindex:"-1"},children:this.children,on:{selectstart:t.to((e=>{"input"!==e.target.tagName.toLocaleLowerCase()&&e.preventDefault()}))}})}focus(){if(this.children.length){const e=this.children.first;"function"==typeof e.focus?e.focus():T("ui-dropdown-panel-focus-child-missing-focus",{childView:this.children.first,dropdownPanel:this})}}focusLast(){if(this.children.length){const e=this.children.last;"function"==typeof e.focusLast?e.focusLast():e.focus()}}}var _g=i(426),yg={attributes:{"data-cke":!0}};yg.setAttributes=Xr(),yg.insert=Yr().bind(null,"head"),yg.domAPI=Zr(),yg.insertStyleElement=ts();Gr()(_g.A,yg);_g.A&&_g.A.locals&&_g.A.locals;class Ag extends zp{constructor(e,t,o){super(e);const n=this.bindTemplate;this.buttonView=t,this.panelView=o,this.set("isOpen",!1),this.set("isEnabled",!0),this.set("class",void 0),this.set("id",void 0),this.set("panelPosition","auto"),this.panelView.bind("isVisible").to(this,"isOpen"),this.keystrokes=new ar,this.focusTracker=new nr,this.setTemplate({tag:"div",attributes:{class:["ck","ck-dropdown",n.to("class"),n.if("isEnabled","ck-disabled",(e=>!e))],id:n.to("id"),"aria-describedby":n.to("ariaDescribedById")},children:[t,o]}),t.extendTemplate({attributes:{class:["ck-dropdown__button"],"data-cke-tooltip-disabled":n.to("isOpen")}})}render(){super.render(),this.focusTracker.add(this.buttonView.element),this.focusTracker.add(this.panelView.element),this.listenTo(this.buttonView,"open",(()=>{this.isOpen=!this.isOpen})),this.on("change:isOpen",((e,t,o)=>{if(o)if("auto"===this.panelPosition){const e=Ag._getOptimalPosition({element:this.panelView.element,target:this.buttonView.element,fitInViewport:!0,positions:this._panelPositions});this.panelView.position=e?e.name:this._defaultPanelPositionName}else this.panelView.position=this.panelPosition})),this.keystrokes.listenTo(this.element);const e=(e,t)=>{this.isOpen&&(this.isOpen=!1,t())};this.keystrokes.set("arrowdown",((e,t)=>{this.buttonView.isEnabled&&!this.isOpen&&(this.isOpen=!0,t())})),this.keystrokes.set("arrowright",((e,t)=>{this.isOpen&&t()})),this.keystrokes.set("arrowleft",e),this.keystrokes.set("esc",e)}focus(){this.buttonView.focus()}get _panelPositions(){const{south:e,north:t,southEast:o,southWest:n,northEast:i,northWest:r,southMiddleEast:s,southMiddleWest:a,northMiddleEast:l,northMiddleWest:c}=Ag.defaultPanelPositions;return"rtl"!==this.locale.uiLanguageDirection?[o,n,s,a,e,i,r,l,c,t]:[n,o,a,s,e,r,i,c,l,t]}get _defaultPanelPositionName(){return"rtl"===this.locale.uiLanguageDirection?"sw":"se"}}Ag.defaultPanelPositions={south:(e,t)=>({top:e.bottom,left:e.left-(t.width-e.width)/2,name:"s"}),southEast:e=>({top:e.bottom,left:e.left,name:"se"}),southWest:(e,t)=>({top:e.bottom,left:e.left-t.width+e.width,name:"sw"}),southMiddleEast:(e,t)=>({top:e.bottom,left:e.left-(t.width-e.width)/4,name:"sme"}),southMiddleWest:(e,t)=>({top:e.bottom,left:e.left-3*(t.width-e.width)/4,name:"smw"}),north:(e,t)=>({top:e.top-t.height,left:e.left-(t.width-e.width)/2,name:"n"}),northEast:(e,t)=>({top:e.top-t.height,left:e.left,name:"ne"}),northWest:(e,t)=>({top:e.top-t.height,left:e.left-t.width+e.width,name:"nw"}),northMiddleEast:(e,t)=>({top:e.top-t.height,left:e.left-(t.width-e.width)/4,name:"nme"}),northMiddleWest:(e,t)=>({top:e.top-t.height,left:e.left-3*(t.width-e.width)/4,name:"nmw"})},Ag._getOptimalPosition=si;const Cg=Ag;class vg extends Kp{constructor(e){super(e),this.arrowView=this._createArrowView(),this.extendTemplate({attributes:{"aria-haspopup":!0,"aria-expanded":this.bindTemplate.to("isOn",(e=>String(e)))}}),this.delegate("execute").to(this,"open")}render(){super.render(),this.children.add(this.arrowView)}_createArrowView(){const e=new $p;return e.content=$m,e.extendTemplate({attributes:{class:"ck-dropdown__arrow"}}),e}}var xg=i(1102),Eg={attributes:{"data-cke":!0}};Eg.setAttributes=Xr(),Eg.insert=Yr().bind(null,"head"),Eg.domAPI=Zr(),Eg.insertStyleElement=ts();Gr()(xg.A,Eg);xg.A&&xg.A.locals&&xg.A.locals;var Dg=i(5067),Bg={attributes:{"data-cke":!0}};Bg.setAttributes=Xr(),Bg.insert=Yr().bind(null,"head"),Bg.domAPI=Zr(),Bg.insertStyleElement=ts();Gr()(Dg.A,Bg);Dg.A&&Dg.A.locals&&Dg.A.locals;class Sg extends Am{constructor(e){super(e);const t=this.bindTemplate;this.set({withText:!0,role:"menuitem"}),this.arrowView=this._createArrowView(),this.extendTemplate({attributes:{class:["ck-dropdown-menu-list__nested-menu__button"],"aria-haspopup":!0,"aria-expanded":this.bindTemplate.to("isOn",(e=>String(e))),"data-cke-tooltip-disabled":t.to("isOn")},on:{mouseenter:t.to("mouseenter")}})}render(){super.render(),this.children.add(this.arrowView)}_createArrowView(){const e=new $p;return e.content=$m,e.extendTemplate({attributes:{class:"ck-dropdown-menu-list__nested-menu__button__arrow"}}),e}}class Tg extends zp{constructor(e){super(e);const t=this.bindTemplate;this.set("isVisible",!0),this.children=this.createCollection(),this.setTemplate({tag:"li",attributes:{class:["ck","ck-list__item",t.if("isVisible","ck-hidden",(e=>!e))],role:"presentation"},children:this.children})}focus(){this.children.first&&this.children.first.focus()}}class Ig extends zp{constructor(e){super(e),this.setTemplate({tag:"li",attributes:{class:["ck","ck-list__separator"]}})}}class Pg extends zp{constructor(e,t=new Sm){super(e);const o=this.bindTemplate,n=new Mg(e);this.set({label:"",isVisible:!0}),this.labelView=t,this.labelView.bind("text").to(this,"label"),this.children=this.createCollection(),this.children.addMany([this.labelView,n]),n.set({role:"group",ariaLabelledBy:t.id}),n.focusTracker.destroy(),n.keystrokes.destroy(),this.items=n.items,this.setTemplate({tag:"li",attributes:{role:"presentation",class:["ck","ck-list__group",o.if("isVisible","ck-hidden",(e=>!e))]},children:this.children})}focus(){if(this.items){const e=this.items.find((e=>!(e instanceof Ig)));e&&e.focus()}}}var Fg=i(6048),Rg={attributes:{"data-cke":!0}};Rg.setAttributes=Xr(),Rg.insert=Yr().bind(null,"head"),Rg.domAPI=Zr(),Rg.insertStyleElement=ts();Gr()(Fg.A,Rg);Fg.A&&Fg.A.locals&&Fg.A.locals;class Mg extends zp{constructor(e){super(e),this._listItemGroupToChangeListeners=new WeakMap;const t=this.bindTemplate;this.focusables=new hp,this.items=this.createCollection(),this.focusTracker=new nr,this.keystrokes=new ar,this._focusCycler=new Xp({focusables:this.focusables,focusTracker:this.focusTracker,keystrokeHandler:this.keystrokes,actions:{focusPrevious:"arrowup",focusNext:"arrowdown"}}),this.set("ariaLabel",void 0),this.set("ariaLabelledBy",void 0),this.set("role",void 0),this.setTemplate({tag:"ul",attributes:{class:["ck","ck-reset","ck-list"],role:t.to("role"),"aria-label":t.to("ariaLabel"),"aria-labelledby":t.to("ariaLabelledBy")},children:this.items})}render(){super.render();for(const e of this.items)e instanceof Pg?this._registerFocusableItemsGroup(e):e instanceof Tg&&this._registerFocusableListItem(e);this.items.on("change",((e,t)=>{for(const e of t.removed)e instanceof Pg?this._deregisterFocusableItemsGroup(e):e instanceof Tg&&this._deregisterFocusableListItem(e);for(const e of Array.from(t.added).reverse())e instanceof Pg?this._registerFocusableItemsGroup(e,t.index):this._registerFocusableListItem(e,t.index)})),this.keystrokes.listenTo(this.element)}destroy(){super.destroy(),this.focusTracker.destroy(),this.keystrokes.destroy()}focus(){this._focusCycler.focusFirst()}focusFirst(){this._focusCycler.focusFirst()}focusLast(){this._focusCycler.focusLast()}_registerFocusableListItem(e,t){this.focusTracker.add(e.element),this.focusables.add(e,t)}_deregisterFocusableListItem(e){this.focusTracker.remove(e.element),this.focusables.remove(e)}_getOnGroupItemsChangeCallback(e){return(t,o)=>{for(const e of o.removed)this._deregisterFocusableListItem(e);for(const t of Array.from(o.added).reverse())this._registerFocusableListItem(t,this.items.getIndex(e)+o.index)}}_registerFocusableItemsGroup(e,t){Array.from(e.items).forEach(((e,o)=>{const n=void 0!==t?t+o:void 0;this._registerFocusableListItem(e,n)}));const o=this._getOnGroupItemsChangeCallback(e);this._listItemGroupToChangeListeners.set(e,o),e.items.on("change",o)}_deregisterFocusableItemsGroup(e){for(const t of e.items)this._deregisterFocusableListItem(t);e.items.off("change",this._listItemGroupToChangeListeners.get(e)),this._listItemGroupToChangeListeners.delete(e)}}class zg extends Mg{constructor(e){super(e);const t=this.bindTemplate;this.role="menu",this.set("isVisible",!0),this.extendTemplate({attributes:{class:["ck-dropdown-menu-list",t.if("isVisible","ck-hidden",(e=>!e))]}})}}const Og={eastSouth:e=>({top:e.top,left:e.right-5,name:"es"}),eastNorth:(e,t)=>({top:e.top-t.height+e.height,left:e.right-5,name:"en"}),westSouth:(e,t)=>({top:e.top,left:e.left-t.width+5,name:"ws"}),westNorth:(e,t)=>({top:e.top-t.height+e.height,left:e.left-t.width+5,name:"wn"})};var Ng=i(4694),Vg={attributes:{"data-cke":!0}};Vg.setAttributes=Xr(),Vg.insert=Yr().bind(null,"head"),Vg.domAPI=Zr(),Vg.insertStyleElement=ts();Gr()(Ng.A,Vg);Ng.A&&Ng.A.locals&&Ng.A.locals;const Lg={openOnArrowRightKey(e){const t="rtl"===e.locale.uiLanguageDirection?"arrowleft":"arrowright";e.keystrokes.set(t,((t,o)=>{e.focusTracker.focusedElement===e.buttonView.element&&e.isEnabled&&(e.isOpen||(e.isOpen=!0),e.panelView.focus(),o())}))},openOnButtonClick(e){e.buttonView.on("execute",(()=>{e.isEnabled&&(e.isOpen=!0)}))},openAndFocusOnEnterKeyPress(e){e.keystrokes.set("enter",((t,o)=>{e.focusTracker.focusedElement===e.buttonView.element&&(e.isOpen=!0,e.panelView.focus(),o())}))},closeOnArrowLeftKey(e){const t="rtl"===e.locale.uiLanguageDirection?"arrowright":"arrowleft";e.keystrokes.set(t,((t,o)=>{e.isOpen&&(e.focus(),e.isOpen=!1,o())}))},closeOnEscKey(e){e.keystrokes.set("esc",((t,o)=>{e.isOpen&&(e.focus(),e.isOpen=!1,o())}))},closeOnParentClose(e,t){t.on("change:isOpen",((o,n,i)=>{i||o.source!==t||(e.isOpen=!1)}))}};var Hg=i(5615),jg={attributes:{"data-cke":!0}};jg.setAttributes=Xr(),jg.insert=Yr().bind(null,"head"),jg.domAPI=Zr(),jg.insertStyleElement=ts();Gr()(Hg.A,jg);Hg.A&&Hg.A.locals&&Hg.A.locals;const qg=ti("px"),$g={top:-99999,left:-99999,name:"arrowless",config:{withArrow:!1}};class Ug extends zp{constructor(e){super(e);const t=this.bindTemplate;this.set("top",0),this.set("left",0),this.set("position","arrow_nw"),this.set("isVisible",!1),this.set("withArrow",!0),this.set("class",void 0),this._pinWhenIsVisibleCallback=null,this._resizeObserver=null,this.content=this.createCollection(),this.setTemplate({tag:"div",attributes:{class:["ck","ck-balloon-panel",t.to("position",(e=>`ck-balloon-panel_${e}`)),t.if("isVisible","ck-balloon-panel_visible"),t.if("withArrow","ck-balloon-panel_with-arrow"),t.to("class")],style:{top:t.to("top",qg),left:t.to("left",qg)}},children:this.content})}destroy(){this.hide(),super.destroy()}show(){this.isVisible=!0}hide(){this.isVisible=!1}attachTo(e){const t=Gg(e.target);if(t&&!ri(t))return!1;this.show();const o=Ug.defaultPositions,n=Object.assign({},{element:this.element,positions:[o.southArrowNorth,o.southArrowNorthMiddleWest,o.southArrowNorthMiddleEast,o.southArrowNorthWest,o.southArrowNorthEast,o.northArrowSouth,o.northArrowSouthMiddleWest,o.northArrowSouthMiddleEast,o.northArrowSouthWest,o.northArrowSouthEast,o.viewportStickyNorth],limiter:s.document.body,fitInViewport:!0},e),i=Ug._getOptimalPosition(n)||$g,r=parseInt(i.left),a=parseInt(i.top),l=i.name,c=i.config||{},{withArrow:d=!0}=c;return this.top=a,this.left=r,this.position=l,this.withArrow=d,!0}pin(e){this.unpin(),this._startPinning(e)&&(this._pinWhenIsVisibleCallback=()=>{this.isVisible?this._startPinning(e):this._stopPinning()},this.listenTo(this,"change:isVisible",this._pinWhenIsVisibleCallback))}unpin(){this._pinWhenIsVisibleCallback&&(this._stopPinning(),this.stopListening(this,"change:isVisible",this._pinWhenIsVisibleCallback),this._pinWhenIsVisibleCallback=null,this.hide())}_startPinning(e){if(!this.attachTo(e))return!1;let t=Gg(e.target);const o=e.limiter?Gg(e.limiter):s.document.body;if(this.listenTo(s.document,"scroll",((n,i)=>{const r=i.target,s=t&&r.contains(t),a=o&&r.contains(o);!s&&!a&&t&&o||this.attachTo(e)}),{useCapture:!0}),this.listenTo(s.window,"resize",(()=>{this.attachTo(e)})),!this._resizeObserver&&(t&&qn(t)&&(t=t.parentElement),t)){const e=()=>{ri(t)||this.unpin()};this._resizeObserver=new Xn(t,e)}return!0}_stopPinning(){this.stopListening(s.document,"scroll"),this.stopListening(s.window,"resize"),this._resizeObserver&&(this._resizeObserver.destroy(),this._resizeObserver=null)}static generatePositions(e={}){const{sideOffset:t=Ug.arrowSideOffset,heightOffset:o=Ug.arrowHeightOffset,stickyVerticalOffset:n=Ug.stickyVerticalOffset,config:i}=e;return{northWestArrowSouthWest:(e,o)=>({top:r(e,o),left:e.left-t,name:"arrow_sw",...i&&{config:i}}),northWestArrowSouthMiddleWest:(e,o)=>({top:r(e,o),left:e.left-.25*o.width-t,name:"arrow_smw",...i&&{config:i}}),northWestArrowSouth:(e,t)=>({top:r(e,t),left:e.left-t.width/2,name:"arrow_s",...i&&{config:i}}),northWestArrowSouthMiddleEast:(e,o)=>({top:r(e,o),left:e.left-.75*o.width+t,name:"arrow_sme",...i&&{config:i}}),northWestArrowSouthEast:(e,o)=>({top:r(e,o),left:e.left-o.width+t,name:"arrow_se",...i&&{config:i}}),northArrowSouthWest:(e,o)=>({top:r(e,o),left:e.left+e.width/2-t,name:"arrow_sw",...i&&{config:i}}),northArrowSouthMiddleWest:(e,o)=>({top:r(e,o),left:e.left+e.width/2-.25*o.width-t,name:"arrow_smw",...i&&{config:i}}),northArrowSouth:(e,t)=>({top:r(e,t),left:e.left+e.width/2-t.width/2,name:"arrow_s",...i&&{config:i}}),northArrowSouthMiddleEast:(e,o)=>({top:r(e,o),left:e.left+e.width/2-.75*o.width+t,name:"arrow_sme",...i&&{config:i}}),northArrowSouthEast:(e,o)=>({top:r(e,o),left:e.left+e.width/2-o.width+t,name:"arrow_se",...i&&{config:i}}),northEastArrowSouthWest:(e,o)=>({top:r(e,o),left:e.right-t,name:"arrow_sw",...i&&{config:i}}),northEastArrowSouthMiddleWest:(e,o)=>({top:r(e,o),left:e.right-.25*o.width-t,name:"arrow_smw",...i&&{config:i}}),northEastArrowSouth:(e,t)=>({top:r(e,t),left:e.right-t.width/2,name:"arrow_s",...i&&{config:i}}),northEastArrowSouthMiddleEast:(e,o)=>({top:r(e,o),left:e.right-.75*o.width+t,name:"arrow_sme",...i&&{config:i}}),northEastArrowSouthEast:(e,o)=>({top:r(e,o),left:e.right-o.width+t,name:"arrow_se",...i&&{config:i}}),southWestArrowNorthWest:e=>({top:s(e),left:e.left-t,name:"arrow_nw",...i&&{config:i}}),southWestArrowNorthMiddleWest:(e,o)=>({top:s(e),left:e.left-.25*o.width-t,name:"arrow_nmw",...i&&{config:i}}),southWestArrowNorth:(e,t)=>({top:s(e),left:e.left-t.width/2,name:"arrow_n",...i&&{config:i}}),southWestArrowNorthMiddleEast:(e,o)=>({top:s(e),left:e.left-.75*o.width+t,name:"arrow_nme",...i&&{config:i}}),southWestArrowNorthEast:(e,o)=>({top:s(e),left:e.left-o.width+t,name:"arrow_ne",...i&&{config:i}}),southArrowNorthWest:e=>({top:s(e),left:e.left+e.width/2-t,name:"arrow_nw",...i&&{config:i}}),southArrowNorthMiddleWest:(e,o)=>({top:s(e),left:e.left+e.width/2-.25*o.width-t,name:"arrow_nmw",...i&&{config:i}}),southArrowNorth:(e,t)=>({top:s(e),left:e.left+e.width/2-t.width/2,name:"arrow_n",...i&&{config:i}}),southArrowNorthMiddleEast:(e,o)=>({top:s(e),left:e.left+e.width/2-.75*o.width+t,name:"arrow_nme",...i&&{config:i}}),southArrowNorthEast:(e,o)=>({top:s(e),left:e.left+e.width/2-o.width+t,name:"arrow_ne",...i&&{config:i}}),southEastArrowNorthWest:e=>({top:s(e),left:e.right-t,name:"arrow_nw",...i&&{config:i}}),southEastArrowNorthMiddleWest:(e,o)=>({top:s(e),left:e.right-.25*o.width-t,name:"arrow_nmw",...i&&{config:i}}),southEastArrowNorth:(e,t)=>({top:s(e),left:e.right-t.width/2,name:"arrow_n",...i&&{config:i}}),southEastArrowNorthMiddleEast:(e,o)=>({top:s(e),left:e.right-.75*o.width+t,name:"arrow_nme",...i&&{config:i}}),southEastArrowNorthEast:(e,o)=>({top:s(e),left:e.right-o.width+t,name:"arrow_ne",...i&&{config:i}}),westArrowEast:(e,t)=>({top:e.top+e.height/2-t.height/2,left:e.left-t.width-o,name:"arrow_e",...i&&{config:i}}),eastArrowWest:(e,t)=>({top:e.top+e.height/2-t.height/2,left:e.right+o,name:"arrow_w",...i&&{config:i}}),viewportStickyNorth:(e,t,o,r)=>{const s=r||o;return e.getIntersection(s)?s.height-e.height>n?null:{top:s.top+n,left:e.left+e.width/2-t.width/2,name:"arrowless",config:{withArrow:!1,...i}}:null}};function r(e,t){return e.top-t.height-o}function s(e){return e.bottom+o}}}Ug.arrowSideOffset=25,Ug.arrowHeightOffset=10,Ug.stickyVerticalOffset=20,Ug._getOptimalPosition=si,Ug.defaultPositions=Ug.generatePositions();const Wg=Ug;function Gg(e){return Tn(e)?e:$n(e)?e.commonAncestorContainer:"function"==typeof e?Gg(e()):null}var Kg=i(7217),Zg={attributes:{"data-cke":!0}};Zg.setAttributes=Xr(),Zg.insert=Yr().bind(null,"head"),Zg.domAPI=Zr(),Zg.insertStyleElement=ts();Gr()(Kg.A,Zg);Kg.A&&Kg.A.locals&&Kg.A.locals;class Jg extends Wg{constructor(e){super(e);const t=this.bindTemplate;this.set({isVisible:!1,position:"se",class:null,top:0,left:0}),this.extendTemplate({tag:"div",attributes:{class:["ck-reset","ck-dropdown-menu__nested-menu__panel"],tabindex:"-1"},on:{selectstart:t.to((e=>{"input"!==e.target.tagName.toLocaleLowerCase()&&e.preventDefault()}))}})}focus(e=1){const{content:t}=this;t.length&&(1===e?t.first.focus():t.last.focus())}}var Yg=i(6559),Qg={attributes:{"data-cke":!0}};Qg.setAttributes=Xr(),Qg.insert=Yr().bind(null,"head"),Qg.domAPI=Zr(),Qg.insertStyleElement=ts();Gr()(Yg.A,Qg);Yg.A&&Yg.A.locals&&Yg.A.locals;class Xg extends zp{constructor(e,t,o,n,i){super(e),this._bodyCollection=t,this.id=o,this.set({isOpen:!1,isEnabled:!0,panelPosition:"w",class:void 0,parentMenuView:null}),this.keystrokes=new ar,this.focusTracker=new nr,this.buttonView=new Sg(e),this.buttonView.delegate("mouseenter").to(this),this.buttonView.bind("isOn","isEnabled").to(this,"isOpen","isEnabled"),this.buttonView.label=n,this.panelView=new Jg(e),this.panelView.isVisible=!0,this.listView=new zg(e),this.listView.bind("ariaLabel").to(this.buttonView,"label"),this.panelView.content.add(this.listView);const r=this.bindTemplate;this.setTemplate({tag:"div",attributes:{class:["ck","ck-dropdown-menu-list__nested-menu",r.to("class"),r.if("isEnabled","ck-disabled",(e=>!e))],role:"presentation"},children:[this.buttonView]}),this.parentMenuView=i,this.parentMenuView&&this._handleParentMenuView(),this._attachBehaviors()}get _panelPositions(){const{westSouth:e,eastSouth:t,westNorth:o,eastNorth:n}=Og;return"ltr"===this.locale.uiLanguageDirection?[t,n,e,o]:[e,o,t,n]}render(){super.render(),this.panelView.render(),this.focusTracker.add(this.buttonView.element),this.focusTracker.add(this.panelView.element),this.focusTracker.add(this.listView),this.keystrokes.listenTo(this.element),this._mountPanelOnOpen()}destroy(){this._removePanelFromBody(),this.panelView.destroy(),super.destroy()}focus(){this.buttonView.focus()}_handleParentMenuView(){this.delegate(...Xg.DELEGATED_EVENTS).to(this.parentMenuView),Lg.closeOnParentClose(this,this.parentMenuView)}_attachBehaviors(){Lg.openOnButtonClick(this),Lg.openAndFocusOnEnterKeyPress(this),Lg.openOnArrowRightKey(this),Lg.closeOnEscKey(this),Lg.closeOnArrowLeftKey(this)}_mountPanelOnOpen(){const{panelView:e}=this;this.on("change:isOpen",((t,o,n)=>{t.source===this&&(n||!this._bodyCollection.has(e)?n&&!this._bodyCollection.has(e)&&this._addPanelToBody():this._removePanelFromBody())}))}_removePanelFromBody(){const{panelView:e,keystrokes:t}=this;this._bodyCollection.has(e)&&(this._bodyCollection.remove(e),t.stopListening(e.element))}_addPanelToBody(){const{panelView:e,buttonView:t,keystrokes:o}=this;this._bodyCollection.has(e)||(this._bodyCollection.add(e),o.listenTo(e.element),e.pin({positions:this._panelPositions,limiter:s.document.body,element:e.element,target:t.element,fitInViewport:!0}))}}Xg.DELEGATED_EVENTS=["mouseenter","execute","change:isOpen"];class ef extends zp{constructor(e){super(e),this.setTemplate({tag:"span",attributes:{class:["ck","ck-toolbar__separator"]}})}}class tf extends zp{constructor(e){super(e),this.setTemplate({tag:"span",attributes:{class:["ck","ck-toolbar__line-break"]}})}}function of(e){if(Array.isArray(e))return{items:e,removeItems:[]};const t={items:[],removeItems:[]};return e?{...t,...e}:t}var nf=i(66),rf={attributes:{"data-cke":!0}};rf.setAttributes=Xr(),rf.insert=Yr().bind(null,"head"),rf.domAPI=Zr(),rf.insertStyleElement=ts();Gr()(nf.A,rf);nf.A&&nf.A.locals&&nf.A.locals;const sf=(()=>({alignLeft:up.alignLeft,bold:up.bold,importExport:up.importExport,paragraph:up.paragraph,plus:up.plus,text:up.text,threeVerticalDots:up.threeVerticalDots,pilcrow:up.pilcrow,dragIndicator:up.dragIndicator}))();class af extends zp{constructor(e,t){super(e);const o=this.bindTemplate,n=this.t;this.options=t||{},this.set("ariaLabel",n("Editor toolbar")),this.set("maxWidth","auto"),this.set("role","toolbar"),this.items=this.createCollection(),this.focusTracker=new nr,this.keystrokes=new ar,this.set("class",void 0),this.set("isCompact",!1),this.itemsView=new lf(e),this.children=this.createCollection(),this.children.add(this.itemsView),this.focusables=this.createCollection();const i="rtl"===e.uiLanguageDirection;this._focusCycler=new Xp({focusables:this.focusables,focusTracker:this.focusTracker,keystrokeHandler:this.keystrokes,actions:{focusPrevious:[i?"arrowright":"arrowleft","arrowup"],focusNext:[i?"arrowleft":"arrowright","arrowdown"]}});const r=["ck","ck-toolbar",o.to("class"),o.if("isCompact","ck-toolbar_compact")];var s;this.options.shouldGroupWhenFull&&this.options.isFloating&&r.push("ck-toolbar_floating"),this.setTemplate({tag:"div",attributes:{class:r,role:o.to("role"),"aria-label":o.to("ariaLabel"),style:{maxWidth:o.to("maxWidth")},tabindex:-1},children:this.children,on:{mousedown:(s=this,s.bindTemplate.to((e=>{e.target===s.element&&e.preventDefault()})))}}),this._behavior=this.options.shouldGroupWhenFull?new df(this):new cf(this)}render(){super.render(),this.focusTracker.add(this.element);for(const e of this.items)this.focusTracker.add(e);this.items.on("add",((e,t)=>{this.focusTracker.add(t)})),this.items.on("remove",((e,t)=>{this.focusTracker.remove(t)})),this.keystrokes.listenTo(this.element),this._behavior.render(this)}destroy(){return this._behavior.destroy(),this.focusTracker.destroy(),this.keystrokes.destroy(),super.destroy()}focus(){this._focusCycler.focusFirst()}focusLast(){this._focusCycler.focusLast()}fillFromConfig(e,t,o){this.items.addMany(this._buildItemsFromConfig(e,t,o))}_buildItemsFromConfig(e,t,o){const n=of(e),i=o||n.removeItems;return this._cleanItemsConfiguration(n.items,t,i).map((e=>W(e)?this._createNestedToolbarDropdown(e,t,i):"|"===e?new ef:"-"===e?new tf:t.create(e))).filter((e=>!!e))}_cleanItemsConfiguration(e,t,o){const n=e.filter(((e,n,i)=>"|"===e||-1===o.indexOf(e)&&("-"===e?!this.options.shouldGroupWhenFull||(T("toolbarview-line-break-ignored-when-grouping-items",i),!1):!(!W(e)&&!t.has(e))||(T("toolbarview-item-unavailable",{item:e}),!1))));return this._cleanSeparatorsAndLineBreaks(n)}_cleanSeparatorsAndLineBreaks(e){const t=e=>"-"!==e&&"|"!==e,o=e.length,n=e.findIndex(t);if(-1===n)return[];const i=o-e.slice().reverse().findIndex(t);return e.slice(n,i).filter(((e,o,n)=>{if(t(e))return!0;return!(o>0&&n[o-1]===e)}))}_createNestedToolbarDropdown(e,t,o){let{label:n,icon:i,items:r,tooltip:s=!0,withText:a=!1}=e;if(r=this._cleanItemsConfiguration(r,t,o),!r.length)return null;const l=kf(this.locale);return n||T("toolbarview-nested-toolbar-dropdown-missing-label",e),l.class="ck-toolbar__nested-toolbar-dropdown",l.buttonView.set({label:n,tooltip:s,withText:!!a}),!1!==i?l.buttonView.icon=sf[i]||i||up.threeVerticalDots:l.buttonView.withText=!0,wf(l,(()=>l.toolbarView._buildItemsFromConfig(r,t,o))),l}}class lf extends zp{constructor(e){super(e),this.children=this.createCollection(),this.setTemplate({tag:"div",attributes:{class:["ck","ck-toolbar__items"]},children:this.children})}}class cf{constructor(e){const t=e.bindTemplate;e.set("isVertical",!1),e.itemsView.children.bindTo(e.items).using((e=>e)),e.focusables.bindTo(e.items).using((e=>tm(e)?e:null)),e.extendTemplate({attributes:{class:[t.if("isVertical","ck-toolbar_vertical")]}})}render(){}destroy(){}}class df{constructor(e){this.resizeObserver=null,this.cachedPadding=null,this.shouldUpdateGroupingOnNextResize=!1,this.view=e,this.viewChildren=e.children,this.viewFocusables=e.focusables,this.viewItemsView=e.itemsView,this.viewFocusTracker=e.focusTracker,this.viewLocale=e.locale,this.ungroupedItems=e.createCollection(),this.groupedItems=e.createCollection(),this.groupedItemsDropdown=this._createGroupedItemsDropdown(),e.itemsView.children.bindTo(this.ungroupedItems).using((e=>e)),this.ungroupedItems.on("change",this._updateFocusCyclableItems.bind(this)),e.children.on("change",this._updateFocusCyclableItems.bind(this)),e.items.on("change",((e,t)=>{const o=t.index,n=Array.from(t.added);for(const e of t.removed)o>=this.ungroupedItems.length?this.groupedItems.remove(e):this.ungroupedItems.remove(e);for(let e=o;ethis.ungroupedItems.length?this.groupedItems.add(t,e-this.ungroupedItems.length):this.ungroupedItems.add(t,e)}this._updateGrouping()})),e.extendTemplate({attributes:{class:["ck-toolbar_grouping"]}})}render(e){this.viewElement=e.element,this._enableGroupingOnResize(),this._enableGroupingOnMaxWidthChange(e)}destroy(){this.groupedItemsDropdown.destroy(),this.resizeObserver.destroy()}_updateGrouping(){if(!this.viewElement.ownerDocument.body.contains(this.viewElement))return;if(!ri(this.viewElement))return void(this.shouldUpdateGroupingOnNextResize=!0);const e=this.groupedItems.length;let t;for(;this._areItemsOverflowing;)this._groupLastItem(),t=!0;if(!t&&this.groupedItems.length){for(;this.groupedItems.length&&!this._areItemsOverflowing;)this._ungroupFirstItem();this._areItemsOverflowing&&this._groupLastItem()}this.groupedItems.length!==e&&this.view.fire("groupedItemsUpdate")}get _areItemsOverflowing(){if(!this.ungroupedItems.length)return!1;const e=this.viewElement,t=this.viewLocale.uiLanguageDirection,o=new Gn(e.lastChild),n=new Gn(e);if(!this.cachedPadding){const o=s.window.getComputedStyle(e),n="ltr"===t?"paddingRight":"paddingLeft";this.cachedPadding=Number.parseInt(o[n])}return"ltr"===t?o.right>n.right-this.cachedPadding:o.left{e&&e===t.contentRect.width&&!this.shouldUpdateGroupingOnNextResize||(this.shouldUpdateGroupingOnNextResize=!1,this._updateGrouping(),e=t.contentRect.width)})),this._updateGrouping()}_enableGroupingOnMaxWidthChange(e){e.on("change:maxWidth",(()=>{this._updateGrouping()}))}_groupLastItem(){this.groupedItems.length||(this.viewChildren.add(new ef),this.viewChildren.add(this.groupedItemsDropdown),this.viewFocusTracker.add(this.groupedItemsDropdown.element)),this.groupedItems.add(this.ungroupedItems.remove(this.ungroupedItems.last),0)}_ungroupFirstItem(){this.ungroupedItems.add(this.groupedItems.remove(this.groupedItems.first)),this.groupedItems.length||(this.viewChildren.remove(this.groupedItemsDropdown),this.viewChildren.remove(this.viewChildren.last),this.viewFocusTracker.remove(this.groupedItemsDropdown.element))}_createGroupedItemsDropdown(){const e=this.viewLocale,t=e.t,o=kf(e);return o.class="ck-toolbar__grouped-dropdown",o.panelPosition="ltr"===e.uiLanguageDirection?"sw":"se",wf(o,this.groupedItems),o.buttonView.set({label:t("Show more items"),tooltip:!0,tooltipPosition:"rtl"===e.uiLanguageDirection?"se":"sw",icon:up.threeVerticalDots}),o}_updateFocusCyclableItems(){this.viewFocusables.clear(),this.ungroupedItems.map((e=>{tm(e)&&this.viewFocusables.add(e)})),this.groupedItems.length&&this.viewFocusables.add(this.groupedItemsDropdown)}}var uf=i(7133),hf={attributes:{"data-cke":!0}};hf.setAttributes=Xr(),hf.insert=Yr().bind(null,"head"),hf.domAPI=Zr(),hf.insertStyleElement=ts();Gr()(uf.A,hf);uf.A&&uf.A.locals&&uf.A.locals;class pf extends zp{constructor(e,t){super(e);const o=this.bindTemplate;this.set("class",void 0),this.set("labelStyle",void 0),this.set("icon",void 0),this.set("isEnabled",!0),this.set("isOn",!1),this.set("isToggleable",!1),this.set("isVisible",!0),this.set("keystroke",void 0),this.set("withKeystroke",!1),this.set("label",void 0),this.set("tabindex",-1),this.set("tooltip",!1),this.set("tooltipPosition","s"),this.set("type","button"),this.set("withText",!1),this.children=this.createCollection(),this.actionView=this._createActionView(t),this.arrowView=this._createArrowView(),this.keystrokes=new ar,this.focusTracker=new nr,this.setTemplate({tag:"div",attributes:{class:["ck","ck-splitbutton",o.to("class"),o.if("isVisible","ck-hidden",(e=>!e)),this.arrowView.bindTemplate.if("isOn","ck-splitbutton_open")]},children:this.children})}render(){super.render(),this.children.add(this.actionView),this.children.add(this.arrowView),this.focusTracker.add(this.actionView.element),this.focusTracker.add(this.arrowView.element),this.keystrokes.listenTo(this.element),this.keystrokes.set("arrowright",((e,t)=>{this.focusTracker.focusedElement===this.actionView.element&&(this.arrowView.focus(),t())})),this.keystrokes.set("arrowleft",((e,t)=>{this.focusTracker.focusedElement===this.arrowView.element&&(this.actionView.focus(),t())}))}destroy(){super.destroy(),this.focusTracker.destroy(),this.keystrokes.destroy()}focus(){this.actionView.focus()}_createActionView(e){const t=e||new Kp;return e||t.bind("icon","isEnabled","isOn","isToggleable","keystroke","label","tabindex","tooltip","tooltipPosition","type","withText").to(this),t.extendTemplate({attributes:{class:"ck-splitbutton__action"}}),t.delegate("execute").to(this),t}_createArrowView(){const e=new Kp,t=e.bindTemplate;return e.icon=$m,e.extendTemplate({attributes:{class:["ck-splitbutton__arrow"],"data-cke-tooltip-disabled":t.to("isOn"),"aria-haspopup":!0,"aria-expanded":t.to("isOn",(e=>String(e)))}}),e.bind("isEnabled").to(this),e.bind("label").to(this),e.bind("tooltip").to(this),e.delegate("execute").to(this,"open"),e}}var mf=i(7475),gf={attributes:{"data-cke":!0}};gf.setAttributes=Xr(),gf.insert=Yr().bind(null,"head"),gf.domAPI=Zr(),gf.insertStyleElement=ts();Gr()(mf.A,gf);mf.A&&mf.A.locals&&mf.A.locals;var ff=i(2454),bf={attributes:{"data-cke":!0}};bf.setAttributes=Xr(),bf.insert=Yr().bind(null,"head"),bf.domAPI=Zr(),bf.insertStyleElement=ts();Gr()(ff.A,bf);ff.A&&ff.A.locals&&ff.A.locals;function kf(e,t=vg){const o="function"==typeof t?new t(e):t,n=new wg(e),i=new Cg(e,o,n);return o.bind("isEnabled").to(i),o instanceof pf?o.arrowView.bind("isOn").to(i,"isOpen"):o.bind("isOn").to(i,"isOpen"),function(e){(function(e){Op({emitter:e,activator:()=>e.isRendered&&e.isOpen,callback:()=>{e.isOpen=!1},contextElements:()=>[e.element,...vf(e.focusTracker).filter((t=>!e.element.contains(t)))]})})(e),function(e){e.on("execute",(t=>{t.source instanceof Vm||(e.isOpen=!1)}))}(e),function(e){e.focusTracker.on("change:isFocused",((t,o,n)=>{!n&&e.isOpen&&(e.isOpen=!1)}))}(e),function(e){e.keystrokes.set("arrowdown",((t,o)=>{e.isOpen&&(e.panelView.focus(),o())})),e.keystrokes.set("arrowup",((t,o)=>{e.isOpen&&(e.panelView.focusLast(),o())}))}(e),function(e){e.on("change:isOpen",((t,o,n)=>{if(n)return;e.focusTracker.elements.some((e=>e.contains(s.document.activeElement)))&&e.buttonView.focus()}))}(e),function(e){e.on("change:isOpen",((t,o,n)=>{n&&e.panelView.focus()}),{priority:"low"})}(e)}(i),i}function wf(e,t,o={}){e.extendTemplate({attributes:{class:["ck-toolbar-dropdown"]}}),e.isOpen?_f(e,t,o):e.once("change:isOpen",(()=>_f(e,t,o)),{priority:"highest"}),o.enableActiveItemFocusOnDropdownOpen&&Cf(e,(()=>e.toolbarView.items.find((e=>e.isOn))))}function _f(e,t,o){const n=e.locale,i=n.t,r=e.toolbarView=new af(n),s="function"==typeof t?t():t;r.ariaLabel=o.ariaLabel||i("Dropdown toolbar"),o.maxWidth&&(r.maxWidth=o.maxWidth),o.class&&(r.class=o.class),o.isCompact&&(r.isCompact=o.isCompact),o.isVertical&&(r.isVertical=!0),s instanceof hp?r.items.bindTo(s).using((e=>e)):r.items.addMany(s),e.panelView.children.add(r),e.focusTracker.add(r),r.items.delegate("execute").to(e)}function yf(e,t,o={}){e.isOpen?Af(e,t,o):e.once("change:isOpen",(()=>Af(e,t,o)),{priority:"highest"}),Cf(e,(()=>e.listView.items.find((e=>e instanceof Tg&&e.children.first.isOn))))}function Af(e,t,o){const n=e.locale,i=e.listView=new Mg(n),r="function"==typeof t?t():t;i.ariaLabel=o.ariaLabel,i.role=o.role,xf(e,i.items,r,n),e.panelView.children.add(i),i.items.delegate("execute").to(e)}function Cf(e,t){e.on("change:isOpen",(()=>{if(!e.isOpen)return;const o=t();o&&("function"==typeof o.focus?o.focus():T("ui-dropdown-focus-child-on-open-child-missing-focus",{view:o}))}),{priority:D.low-10})}function vf(e){return[...e.elements,...e.externalViews.flatMap((e=>vf(e.focusTracker)))]}function xf(e,t,o,n){t.on("change",(()=>{const e=[...t].reduce(((e,t)=>(t instanceof Tg&&t.children.first instanceof Am&&e.push(t.children.first),e)),[]),o=e.some((e=>e.isToggleable));e.forEach((e=>{e.hasCheckSpace=o}))})),t.bindTo(o).using((t=>{if("separator"===t.type)return new Ig(n);if("group"===t.type){const o=new Pg(n);return o.set({label:t.label}),xf(e,o.items,t.items,n),o.items.delegate("execute").to(e),o}if("button"===t.type||"switchbutton"===t.type){const e="menuitemcheckbox"===t.model.role||"menuitemradio"===t.model.role,o=new Tg(n);let i;return"button"===t.type?(i=new Am(n),i.set({isToggleable:e})):i=new Vm(n),i.bind(...Object.keys(t.model)).to(t.model),i.delegate("execute").to(o),o.children.add(i),o}return null}))}const Ef=(e,t,o)=>{const n=new gg(e.locale);return n.set({id:t,ariaDescribedById:o}),n.bind("isReadOnly").to(e,"isEnabled",(e=>!e)),n.bind("hasError").to(e,"errorText",(e=>!!e)),n.on("input",(()=>{e.errorText=null})),e.bind("isEmpty","isFocused","placeholder").to(n),n},Df=(e,t,o)=>{const n=new fg(e.locale);return n.set({id:t,ariaDescribedById:o,inputMode:"numeric"}),n.bind("isReadOnly").to(e,"isEnabled",(e=>!e)),n.bind("hasError").to(e,"errorText",(e=>!!e)),n.on("input",(()=>{e.errorText=null})),e.bind("isEmpty","isFocused","placeholder").to(n),n},Bf=(e,t,o)=>{const n=kf(e.locale);return n.set({id:t,ariaDescribedById:o}),n.bind("isEnabled").to(e),n},Sf=(e,t=0,o=1)=>e>o?o:eMath.round(o*e)/o,If=(Math.PI,e=>("#"===e[0]&&(e=e.substring(1)),e.length<6?{r:parseInt(e[0]+e[0],16),g:parseInt(e[1]+e[1],16),b:parseInt(e[2]+e[2],16),a:4===e.length?Tf(parseInt(e[3]+e[3],16)/255,2):1}:{r:parseInt(e.substring(0,2),16),g:parseInt(e.substring(2,4),16),b:parseInt(e.substring(4,6),16),a:8===e.length?Tf(parseInt(e.substring(6,8),16)/255,2):1})),Pf=({h:e,s:t,v:o,a:n})=>{const i=(200-t)*o/100;return{h:Tf(e),s:Tf(i>0&&i<200?t*o/100/(i<=100?i:200-i)*100:0),l:Tf(i/2),a:Tf(n,2)}},Ff=e=>{const{h:t,s:o,l:n}=Pf(e);return`hsl(${t}, ${o}%, ${n}%)`},Rf=({h:e,s:t,v:o,a:n})=>{e=e/360*6,t/=100,o/=100;const i=Math.floor(e),r=o*(1-t),s=o*(1-(e-i)*t),a=o*(1-(1-e+i)*t),l=i%6;return{r:Tf(255*[o,s,r,r,a,o][l]),g:Tf(255*[a,o,o,s,r,r][l]),b:Tf(255*[r,r,a,o,o,s][l]),a:Tf(n,2)}},Mf=e=>{const t=e.toString(16);return t.length<2?"0"+t:t},zf=({r:e,g:t,b:o,a:n})=>{const i=n<1?Mf(Tf(255*n)):"";return"#"+Mf(e)+Mf(t)+Mf(o)+i},Of=({r:e,g:t,b:o,a:n})=>{const i=Math.max(e,t,o),r=i-Math.min(e,t,o),s=r?i===e?(t-o)/r:i===t?2+(o-e)/r:4+(e-t)/r:0;return{h:Tf(60*(s<0?s+6:s)),s:Tf(i?r/i*100:0),v:Tf(i/255*100),a:n}},Nf=(e,t)=>{if(e===t)return!0;for(const o in e)if(e[o]!==t[o])return!1;return!0},Vf={},Lf=e=>{let t=Vf[e];return t||(t=document.createElement("template"),t.innerHTML=e,Vf[e]=t),t},Hf=(e,t,o)=>{e.dispatchEvent(new CustomEvent(t,{bubbles:!0,detail:o}))};let jf=!1;const qf=e=>"touches"in e,$f=(e,t)=>{const o=qf(t)?t.touches[0]:t,n=e.el.getBoundingClientRect();Hf(e.el,"move",e.getMove({x:Sf((o.pageX-(n.left+window.pageXOffset))/n.width),y:Sf((o.pageY-(n.top+window.pageYOffset))/n.height)}))};class Uf{constructor(e,t,o,n){const i=Lf(`
    `);e.appendChild(i.content.cloneNode(!0));const r=e.querySelector(`[part=${t}]`);r.addEventListener("mousedown",this),r.addEventListener("touchstart",this),r.addEventListener("keydown",this),this.el=r,this.xy=n,this.nodes=[r.firstChild,r]}set dragging(e){const t=e?document.addEventListener:document.removeEventListener;t(jf?"touchmove":"mousemove",this),t(jf?"touchend":"mouseup",this)}handleEvent(e){switch(e.type){case"mousedown":case"touchstart":if(e.preventDefault(),!(e=>!(jf&&!qf(e)||(jf||(jf=qf(e)),0)))(e)||!jf&&0!=e.button)return;this.el.focus(),$f(this,e),this.dragging=!0;break;case"mousemove":case"touchmove":e.preventDefault(),$f(this,e);break;case"mouseup":case"touchend":this.dragging=!1;break;case"keydown":((e,t)=>{const o=t.keyCode;o>40||e.xy&&o<37||o<33||(t.preventDefault(),Hf(e.el,"move",e.getMove({x:39===o?.01:37===o?-.01:34===o?.05:33===o?-.05:35===o?1:36===o?-1:0,y:40===o?.01:38===o?-.01:0},!0)))})(this,e)}}style(e){e.forEach(((e,t)=>{for(const o in e)this.nodes[t].style.setProperty(o,e[o])}))}}class Wf extends Uf{constructor(e){super(e,"hue",'aria-label="Hue" aria-valuemin="0" aria-valuemax="360"',!1)}update({h:e}){this.h=e,this.style([{left:e/360*100+"%",color:Ff({h:e,s:100,v:100,a:1})}]),this.el.setAttribute("aria-valuenow",`${Tf(e)}`)}getMove(e,t){return{h:t?Sf(this.h+360*e.x,0,360):360*e.x}}}class Gf extends Uf{constructor(e){super(e,"saturation",'aria-label="Color"',!0)}update(e){this.hsva=e,this.style([{top:100-e.v+"%",left:`${e.s}%`,color:Ff(e)},{"background-color":Ff({h:e.h,s:100,v:100,a:1})}]),this.el.setAttribute("aria-valuetext",`Saturation ${Tf(e.s)}%, Brightness ${Tf(e.v)}%`)}getMove(e,t){return{s:t?Sf(this.hsva.s+100*e.x,0,100):100*e.x,v:t?Sf(this.hsva.v-100*e.y,0,100):Math.round(100-100*e.y)}}}const Kf=Symbol("same"),Zf=Symbol("color"),Jf=Symbol("hsva"),Yf=Symbol("update"),Qf=Symbol("parts"),Xf=Symbol("css"),eb=Symbol("sliders");class tb extends HTMLElement{static get observedAttributes(){return["color"]}get[Xf](){return[':host{display:flex;flex-direction:column;position:relative;width:200px;height:200px;user-select:none;-webkit-user-select:none;cursor:default}:host([hidden]){display:none!important}[role=slider]{position:relative;touch-action:none;user-select:none;-webkit-user-select:none;outline:0}[role=slider]:last-child{border-radius:0 0 8px 8px}[part$=pointer]{position:absolute;z-index:1;box-sizing:border-box;width:28px;height:28px;display:flex;place-content:center center;transform:translate(-50%,-50%);background-color:#fff;border:2px solid #fff;border-radius:50%;box-shadow:0 2px 4px rgba(0,0,0,.2)}[part$=pointer]::after{content:"";width:100%;height:100%;border-radius:inherit;background-color:currentColor}[role=slider]:focus [part$=pointer]{transform:translate(-50%,-50%) scale(1.1)}',"[part=hue]{flex:0 0 24px;background:linear-gradient(to right,red 0,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,red 100%)}[part=hue-pointer]{top:50%;z-index:2}","[part=saturation]{flex-grow:1;border-color:transparent;border-bottom:12px solid #000;border-radius:8px 8px 0 0;background-image:linear-gradient(to top,#000,transparent),linear-gradient(to right,#fff,rgba(255,255,255,0));box-shadow:inset 0 0 0 1px rgba(0,0,0,.05)}[part=saturation-pointer]{z-index:3}"]}get[eb](){return[Gf,Wf]}get color(){return this[Zf]}set color(e){if(!this[Kf](e)){const t=this.colorModel.toHsva(e);this[Yf](t),this[Zf]=e}}constructor(){super();const e=Lf(``),t=this.attachShadow({mode:"open"});t.appendChild(e.content.cloneNode(!0)),t.addEventListener("move",this),this[Qf]=this[eb].map((e=>new e(t)))}connectedCallback(){if(this.hasOwnProperty("color")){const e=this.color;delete this.color,this.color=e}else this.color||(this.color=this.colorModel.defaultColor)}attributeChangedCallback(e,t,o){const n=this.colorModel.fromAttr(o);this[Kf](n)||(this.color=n)}handleEvent(e){const t=this[Jf],o={...t,...e.detail};let n;this[Yf](o),Nf(o,t)||this[Kf](n=this.colorModel.fromHsva(o))||(this[Zf]=n,Hf(this,"color-changed",{value:n}))}[Kf](e){return this.color&&this.colorModel.equal(e,this.color)}[Yf](e){this[Jf]=e,this[Qf].forEach((t=>t.update(e)))}}const ob={defaultColor:"#000",toHsva:e=>Of(If(e)),fromHsva:({h:e,s:t,v:o})=>zf(Rf({h:e,s:t,v:o,a:1})),equal:(e,t)=>e.toLowerCase()===t.toLowerCase()||Nf(If(e),If(t)),fromAttr:e=>e};class nb extends tb{get colorModel(){return ob}}var ib=i(3086),rb={attributes:{"data-cke":!0}};rb.setAttributes=Xr(),rb.insert=Yr().bind(null,"head"),rb.domAPI=Zr(),rb.insertStyleElement=ts();Gr()(ib.A,rb);ib.A&&ib.A.locals&&ib.A.locals;class sb extends zp{constructor(e,t={}){super(e),this.set({color:"",_hexColor:""}),this.hexInputRow=this._createInputRow();const o=this.createCollection();t.hideInput||o.add(this.hexInputRow),this.setTemplate({tag:"div",attributes:{class:["ck","ck-color-picker"],tabindex:-1},children:o}),this._config=t,this._debounceColorPickerEvent=bl((e=>{this.set("color",e),this.fire("colorSelected",{color:this.color})}),150,{leading:!0}),this.on("set:color",((e,t,o)=>{e.return=sg(o,this._config.format||"hsl")})),this.on("change:color",(()=>{this._hexColor=ab(this.color)})),this.on("change:_hexColor",(()=>{document.activeElement!==this.picker&&this.picker.setAttribute("color",this._hexColor),ab(this.color)!=ab(this._hexColor)&&(this.color=this._hexColor)}))}render(){var e,t;if(super.render(),e="hex-color-picker",t=nb,void 0===customElements.get(e)&&customElements.define(e,t),this.picker=s.document.createElement("hex-color-picker"),this.picker.setAttribute("class","hex-color-picker"),this.picker.setAttribute("tabindex","-1"),this._createSlidersView(),this.element){this.hexInputRow.element?this.element.insertBefore(this.picker,this.hexInputRow.element):this.element.appendChild(this.picker);const e=document.createElement("style");e.textContent='[role="slider"]:focus [part$="pointer"] {border: 1px solid #fff;outline: 1px solid var(--ck-color-focus-border);box-shadow: 0 0 0 2px #fff;}',this.picker.shadowRoot.appendChild(e)}this.picker.addEventListener("color-changed",(e=>{const t=e.detail.value;this._debounceColorPickerEvent(t)}))}focus(){if(!this._config.hideInput&&(c.isGecko||c.isiOS||c.isSafari||c.isBlink)){this.hexInputRow.children.get(1).focus()}this.slidersView.first.focus()}_createSlidersView(){const e=[...this.picker.shadowRoot.children].filter((e=>"slider"===e.getAttribute("role"))).map((e=>new lb(e)));this.slidersView=this.createCollection(),e.forEach((e=>{this.slidersView.add(e)}))}_createInputRow(){const e=this._createColorInput();return new db(this.locale,e)}_createColorInput(){const e=new dg(this.locale,Ef),{t}=this.locale;return e.set({label:t("HEX"),class:"color-picker-hex-input"}),e.fieldView.bind("value").to(this,"_hexColor",(t=>e.isFocused?e.fieldView.value:t.startsWith("#")?t.substring(1):t)),e.fieldView.on("input",(()=>{const t=e.fieldView.element.value;if(t){const e=ub(t);e&&this._debounceColorPickerEvent(e)}})),e}isValid(){const{t:e}=this.locale;return!!this._config.hideInput||(this.resetValidationStatus(),!!this.hexInputRow.getParsedColor()||(this.hexInputRow.inputView.errorText=e('Please enter a valid color (e.g. "ff0000").'),!1))}resetValidationStatus(){this.hexInputRow.inputView.errorText=null}}function ab(e){let t=function(e){if(!e)return"";const t=ag(e);return t?"hex"===t.space?t.hexValue:sg(e,"hex"):"#000"}(e);return t||(t="#000"),4===t.length&&(t="#"+[t[1],t[1],t[2],t[2],t[3],t[3]].join("")),t.toLowerCase()}class lb extends zp{constructor(e){super(),this.element=e}focus(){this.element.focus()}}class cb extends zp{constructor(e){super(e),this.setTemplate({tag:"div",attributes:{class:["ck","ck-color-picker__hash-view"]},children:"#"})}}class db extends zp{constructor(e,t){super(e),this.inputView=t,this.children=this.createCollection([new cb,this.inputView]),this.setTemplate({tag:"div",attributes:{class:["ck","ck-color-picker__row"]},children:this.children})}getParsedColor(){return ub(this.inputView.fieldView.element.value)}}function ub(e){if(!e)return null;const t=e.trim().replace(/^#/,"");return[3,4,6,8].includes(t.length)&&/^(([0-9a-fA-F]{2}){3,4}|([0-9a-fA-F]){3,4})$/.test(t)?`#${t}`:null}class hb extends(X(tr)){constructor(e){super(e),this.set("isEmpty",!0),this.on("change",(()=>{this.set("isEmpty",0===this.length)}))}add(e,t){return this.find((t=>t.color===e.color))?this:super.add(e,t)}hasColor(e){return!!this.find((t=>t.color===e))}}class pb extends zp{constructor(e,{colors:t,columns:o,removeButtonLabel:n,documentColorsLabel:i,documentColorsCount:r,colorPickerLabel:s,focusTracker:a,focusables:l}){super(e);const c=this.bindTemplate;this.set("isVisible",!0),this.focusTracker=a,this.items=this.createCollection(),this.colorDefinitions=t,this.columns=o,this.documentColors=new hb,this.documentColorsCount=r,this._focusables=l,this._removeButtonLabel=n,this._colorPickerLabel=s,this._documentColorsLabel=i,this.setTemplate({tag:"div",attributes:{class:["ck-color-grids-fragment",c.if("isVisible","ck-hidden",(e=>!e))]},children:this.items}),this.removeColorButtonView=this._createRemoveColorButton(),this.items.add(this.removeColorButtonView)}updateDocumentColors(e,t){const o=e.document,n=this.documentColorsCount;this.documentColors.clear();for(const i of o.getRoots()){const o=e.createRangeIn(i);for(const e of o.getItems())if(e.is("$textProxy")&&e.hasAttribute(t)&&(this._addColorToDocumentColors(e.getAttribute(t)),this.documentColors.length>=n))return}}updateSelectedColors(){const e=this.documentColorsGrid,t=this.staticColorsGrid,o=this.selectedColor;t.selectedColor=o,e&&(e.selectedColor=o)}render(){if(super.render(),this.staticColorsGrid=this._createStaticColorsGrid(),this.items.add(this.staticColorsGrid),this.documentColorsCount){const e=pp.bind(this.documentColors,this.documentColors),t=new zp(this.locale);t.setTemplate({tag:"span",attributes:{class:["ck","ck-color-grid__label",e.if("isEmpty","ck-hidden")]},children:[{text:this._documentColorsLabel}]}),this.items.add(t),this.documentColorsGrid=this._createDocumentColorsGrid(),this.items.add(this.documentColorsGrid)}this._createColorPickerButton(),this._addColorSelectorElementsToFocusTracker()}focus(){this.removeColorButtonView.focus()}destroy(){super.destroy()}addColorPickerButton(){this.colorPickerButtonView&&(this.items.add(this.colorPickerButtonView),this.focusTracker.add(this.colorPickerButtonView.element),this._focusables.add(this.colorPickerButtonView))}_addColorSelectorElementsToFocusTracker(){this.focusTracker.add(this.removeColorButtonView.element),this._focusables.add(this.removeColorButtonView),this.staticColorsGrid&&(this.focusTracker.add(this.staticColorsGrid.element),this._focusables.add(this.staticColorsGrid)),this.documentColorsGrid&&(this.focusTracker.add(this.documentColorsGrid.element),this._focusables.add(this.documentColorsGrid))}_createColorPickerButton(){this.colorPickerButtonView=new Kp,this.colorPickerButtonView.set({label:this._colorPickerLabel,withText:!0,icon:up.colorPalette,class:"ck-color-selector__color-picker"}),this.colorPickerButtonView.on("execute",(()=>{this.fire("colorPicker:show")}))}_createRemoveColorButton(){const e=new Kp;return e.set({withText:!0,icon:up.eraser,label:this._removeButtonLabel}),e.class="ck-color-selector__remove-color",e.on("execute",(()=>{this.fire("execute",{value:null,source:"removeColorButton"})})),e.render(),e}_createStaticColorsGrid(){const e=new eg(this.locale,{colorDefinitions:this.colorDefinitions,columns:this.columns});return e.on("execute",((e,t)=>{this.fire("execute",{value:t.value,source:"staticColorsGrid"})})),e}_createDocumentColorsGrid(){const e=pp.bind(this.documentColors,this.documentColors),t=new eg(this.locale,{columns:this.columns});return t.extendTemplate({attributes:{class:e.if("isEmpty","ck-hidden")}}),t.items.bindTo(this.documentColors).using((e=>{const t=new Ym;return t.set({color:e.color,hasBorder:e.options&&e.options.hasBorder}),e.label&&t.set({label:e.label,tooltip:!0}),t.on("execute",(()=>{this.fire("execute",{value:e.color,source:"documentColorsGrid"})})),t})),this.documentColors.on("change:isEmpty",((e,o,n)=>{n&&(t.selectedColor=null)})),t}_addColorToDocumentColors(e){const t=this.colorDefinitions.find((t=>t.color===e));t?this.documentColors.add(Object.assign({},t)):this.documentColors.add({color:e,label:e,options:{hasBorder:!1}})}}class mb extends zp{constructor(e,{focusTracker:t,focusables:o,keystrokes:n,colorPickerViewConfig:i}){super(e),this.items=this.createCollection(),this.focusTracker=t,this.keystrokes=n,this.set("isVisible",!1),this.set("selectedColor",void 0),this._focusables=o,this._colorPickerViewConfig=i;const r=this.bindTemplate,{saveButtonView:s,cancelButtonView:a}=this._createActionButtons();this.saveButtonView=s,this.cancelButtonView=a,this.actionBarView=this._createActionBarView({saveButtonView:s,cancelButtonView:a}),this.setTemplate({tag:"div",attributes:{class:["ck-color-picker-fragment",r.if("isVisible","ck-hidden",(e=>!e))]},children:this.items})}render(){super.render();const e=new sb(this.locale,{...this._colorPickerViewConfig});this.colorPickerView=e,this.colorPickerView.render(),this.selectedColor&&(e.color=this.selectedColor),this.listenTo(this,"change:selectedColor",((t,o,n)=>{e.color=n})),this.items.add(this.colorPickerView),this.items.add(this.actionBarView),this._addColorPickersElementsToFocusTracker(),this._stopPropagationOnArrowsKeys(),this._executeOnEnterPress(),this._executeUponColorChange()}destroy(){super.destroy()}focus(){this.colorPickerView.focus()}resetValidationStatus(){this.colorPickerView.resetValidationStatus()}_executeOnEnterPress(){this.keystrokes.set("enter",(e=>{this.isVisible&&this.focusTracker.focusedElement!==this.cancelButtonView.element&&this.colorPickerView.isValid()&&(this.fire("execute",{value:this.selectedColor}),e.stopPropagation(),e.preventDefault())}))}_stopPropagationOnArrowsKeys(){const e=e=>e.stopPropagation();this.keystrokes.set("arrowright",e),this.keystrokes.set("arrowleft",e),this.keystrokes.set("arrowup",e),this.keystrokes.set("arrowdown",e)}_addColorPickersElementsToFocusTracker(){for(const e of this.colorPickerView.slidersView)this.focusTracker.add(e.element),this._focusables.add(e);const e=this.colorPickerView.hexInputRow.children.get(1);e.element&&(this.focusTracker.add(e.element),this._focusables.add(e)),this.focusTracker.add(this.saveButtonView.element),this._focusables.add(this.saveButtonView),this.focusTracker.add(this.cancelButtonView.element),this._focusables.add(this.cancelButtonView)}_createActionBarView({saveButtonView:e,cancelButtonView:t}){const o=new zp,n=this.createCollection();return n.add(e),n.add(t),o.setTemplate({tag:"div",attributes:{class:["ck","ck-color-selector_action-bar"]},children:n}),o}_createActionButtons(){const e=this.locale,t=e.t,o=new Kp(e),n=new Kp(e);return o.set({icon:up.check,class:"ck-button-save",type:"button",withText:!1,label:t("Accept")}),n.set({icon:up.cancel,class:"ck-button-cancel",type:"button",withText:!1,label:t("Cancel")}),o.on("execute",(()=>{this.colorPickerView.isValid()&&this.fire("execute",{source:"colorPickerSaveButton",value:this.selectedColor})})),n.on("execute",(()=>{this.fire("colorPicker:cancel")})),{saveButtonView:o,cancelButtonView:n}}_executeUponColorChange(){this.colorPickerView.on("colorSelected",((e,t)=>{this.fire("execute",{value:t.color,source:"colorPicker"}),this.set("selectedColor",t.color)}))}}var gb=i(2922),fb={attributes:{"data-cke":!0}};fb.setAttributes=Xr(),fb.insert=Yr().bind(null,"head"),fb.domAPI=Zr(),fb.insertStyleElement=ts();Gr()(gb.A,fb);gb.A&&gb.A.locals&&gb.A.locals;class bb extends zp{constructor(e,{colors:t,columns:o,removeButtonLabel:n,documentColorsLabel:i,documentColorsCount:r,colorPickerLabel:s,colorPickerViewConfig:a}){super(e),this.items=this.createCollection(),this.focusTracker=new nr,this.keystrokes=new ar,this._focusables=new hp,this._colorPickerViewConfig=a,this._focusCycler=new Xp({focusables:this._focusables,focusTracker:this.focusTracker,keystrokeHandler:this.keystrokes,actions:{focusPrevious:"shift + tab",focusNext:"tab"}}),this.colorGridsFragmentView=new pb(e,{colors:t,columns:o,removeButtonLabel:n,documentColorsLabel:i,documentColorsCount:r,colorPickerLabel:s,focusTracker:this.focusTracker,focusables:this._focusables}),this.colorPickerFragmentView=new mb(e,{focusables:this._focusables,focusTracker:this.focusTracker,keystrokes:this.keystrokes,colorPickerViewConfig:a}),this.set("_isColorGridsFragmentVisible",!0),this.set("_isColorPickerFragmentVisible",!1),this.set("selectedColor",void 0),this.colorGridsFragmentView.bind("isVisible").to(this,"_isColorGridsFragmentVisible"),this.colorPickerFragmentView.bind("isVisible").to(this,"_isColorPickerFragmentVisible"),this.on("change:selectedColor",((e,t,o)=>{this.colorGridsFragmentView.set("selectedColor",o),this.colorPickerFragmentView.set("selectedColor",o)})),this.colorGridsFragmentView.on("change:selectedColor",((e,t,o)=>{this.set("selectedColor",o)})),this.colorPickerFragmentView.on("change:selectedColor",((e,t,o)=>{this.set("selectedColor",o)})),this.setTemplate({tag:"div",attributes:{class:["ck","ck-color-selector"]},children:this.items})}render(){super.render(),this.keystrokes.listenTo(this.element)}destroy(){super.destroy(),this.focusTracker.destroy(),this.keystrokes.destroy()}appendUI(){this._appendColorGridsFragment(),this._colorPickerViewConfig&&this._appendColorPickerFragment()}showColorPickerFragment(){this.colorPickerFragmentView.colorPickerView&&!this._isColorPickerFragmentVisible&&(this._isColorPickerFragmentVisible=!0,this.colorPickerFragmentView.focus(),this.colorPickerFragmentView.resetValidationStatus(),this._isColorGridsFragmentVisible=!1)}showColorGridsFragment(){this._isColorGridsFragmentVisible||(this._isColorGridsFragmentVisible=!0,this.colorGridsFragmentView.focus(),this._isColorPickerFragmentVisible=!1)}focus(){this._focusCycler.focusFirst()}focusLast(){this._focusCycler.focusLast()}updateDocumentColors(e,t){this.colorGridsFragmentView.updateDocumentColors(e,t)}updateSelectedColors(){this.colorGridsFragmentView.updateSelectedColors()}_appendColorGridsFragment(){this.items.length||(this.items.add(this.colorGridsFragmentView),this.colorGridsFragmentView.delegate("execute").to(this),this.colorGridsFragmentView.delegate("colorPicker:show").to(this))}_appendColorPickerFragment(){2!==this.items.length&&(this.items.add(this.colorPickerFragmentView),this.colorGridsFragmentView.colorPickerButtonView&&this.colorGridsFragmentView.colorPickerButtonView.on("execute",(()=>{this.showColorPickerFragment()})),this.colorGridsFragmentView.addColorPickerButton(),this.colorPickerFragmentView.delegate("execute").to(this),this.colorPickerFragmentView.delegate("colorPicker:cancel").to(this))}}class kb{constructor(e){this._components=new Map,this.editor=e}*names(){for(const e of this._components.values())yield e.originalName}add(e,t){this._components.set(wb(e),{callback:t,originalName:e})}create(e){if(!this.has(e))throw new S("componentfactory-item-missing",this,{name:e});return this._components.get(wb(e)).callback(this.editor.locale)}has(e){return this._components.has(wb(e))}}function wb(e){return String(e).toLowerCase()}var _b=i(4650),yb={attributes:{"data-cke":!0}};yb.setAttributes=Xr(),yb.insert=Yr().bind(null,"head"),yb.domAPI=Zr(),yb.insertStyleElement=ts();Gr()(_b.A,yb);_b.A&&_b.A.locals&&_b.A.locals;const Ab="ck-tooltip";class Cb extends(On()){constructor(e){if(super(),this._currentElementWithTooltip=null,this._currentTooltipPosition=null,this._mutationObserver=null,Cb._editors.add(e),Cb._instance)return Cb._instance;Cb._instance=this,this.tooltipTextView=new zp(e.locale),this.tooltipTextView.set("text",""),this.tooltipTextView.setTemplate({tag:"span",attributes:{class:["ck","ck-tooltip__text"]},children:[{text:this.tooltipTextView.bindTemplate.to("text")}]}),this.balloonPanelView=new Wg(e.locale),this.balloonPanelView.class=Ab,this.balloonPanelView.content.add(this.tooltipTextView),this._mutationObserver=function(e){const t=new MutationObserver((()=>{e()}));return{attach(e){t.observe(e,{attributes:!0,attributeFilter:["data-cke-tooltip-text","data-cke-tooltip-position"]})},detach(){t.disconnect()}}}((()=>{this._updateTooltipPosition()})),this._pinTooltipDebounced=bl(this._pinTooltip,600),this._unpinTooltipDebounced=bl(this._unpinTooltip,400),this.listenTo(s.document,"keydown",this._onKeyDown.bind(this),{useCapture:!0}),this.listenTo(s.document,"mouseenter",this._onEnterOrFocus.bind(this),{useCapture:!0}),this.listenTo(s.document,"mouseleave",this._onLeaveOrBlur.bind(this),{useCapture:!0}),this.listenTo(s.document,"focus",this._onEnterOrFocus.bind(this),{useCapture:!0}),this.listenTo(s.document,"blur",this._onLeaveOrBlur.bind(this),{useCapture:!0}),this.listenTo(s.document,"scroll",this._onScroll.bind(this),{useCapture:!0}),this._watchdogExcluded=!0}destroy(e){const t=e.ui.view&&e.ui.view.body;Cb._editors.delete(e),this.stopListening(e.ui),t&&t.has(this.balloonPanelView)&&t.remove(this.balloonPanelView),Cb._editors.size||(this._unpinTooltip(),this.balloonPanelView.destroy(),this.stopListening(),Cb._instance=null)}static getPositioningFunctions(e){const t=Cb.defaultBalloonPositions;return{s:[t.southArrowNorth,t.southArrowNorthEast,t.southArrowNorthWest],n:[t.northArrowSouth],e:[t.eastArrowWest],w:[t.westArrowEast],sw:[t.southArrowNorthEast],se:[t.southArrowNorthWest]}[e]}_onKeyDown(e,t){"Escape"===t.key&&this._currentElementWithTooltip&&(this._unpinTooltip(),t.stopPropagation())}_onEnterOrFocus(e,{target:t}){const o=xb(t);o?o!==this._currentElementWithTooltip?(this._unpinTooltip(),"focus"===e.name&&!o.matches(":hover")||o.matches("[data-cke-tooltip-instant]")?this._pinTooltip(o,Eb(o)):this._pinTooltipDebounced(o,Eb(o))):this._unpinTooltipDebounced.cancel():"focus"===e.name&&this._unpinTooltip()}_onLeaveOrBlur(e,{target:t,relatedTarget:o}){if("mouseleave"===e.name){if(!Tn(t))return;const e=this.balloonPanelView.element,n=e&&(e===o||e.contains(o)),i=!n&&t===e;if(n)return void this._unpinTooltipDebounced.cancel();if(!i&&this._currentElementWithTooltip&&t!==this._currentElementWithTooltip)return;const r=xb(t),s=xb(o);(i||r&&r!==s)&&(this._pinTooltipDebounced.cancel(),this._currentElementWithTooltip&&this._currentElementWithTooltip.matches("[data-cke-tooltip-instant]")||r&&r.matches("[data-cke-tooltip-instant]")?this._unpinTooltip():this._unpinTooltipDebounced())}else{if(this._currentElementWithTooltip&&t!==this._currentElementWithTooltip)return;this._pinTooltipDebounced.cancel(),this._unpinTooltipDebounced()}}_onScroll(e,{target:t}){this._currentElementWithTooltip&&(t.contains(this.balloonPanelView.element)&&t.contains(this._currentElementWithTooltip)||this._unpinTooltip())}_pinTooltip(e,{text:t,position:o,cssClass:n}){this._unpinTooltip();const i=or(Cb._editors.values()).ui.view.body;i.has(this.balloonPanelView)||i.add(this.balloonPanelView),this.tooltipTextView.text=t,this.balloonPanelView.class=[Ab,n].filter((e=>e)).join(" "),this.balloonPanelView.pin({target:e,positions:Cb.getPositioningFunctions(o)}),this._mutationObserver.attach(e);for(const e of Cb._editors)this.listenTo(e.ui,"update",this._updateTooltipPosition.bind(this),{priority:"low"});this._currentElementWithTooltip=e,this._currentTooltipPosition=o}_unpinTooltip(){this._unpinTooltipDebounced.cancel(),this._pinTooltipDebounced.cancel(),this.balloonPanelView.unpin();for(const e of Cb._editors)this.stopListening(e.ui,"update");this._currentElementWithTooltip=null,this._currentTooltipPosition=null,this.tooltipTextView.text="",this._mutationObserver.detach()}_updateTooltipPosition(){if(!this._currentElementWithTooltip)return;const e=Eb(this._currentElementWithTooltip);ri(this._currentElementWithTooltip)&&e.text?this.balloonPanelView.pin({target:this._currentElementWithTooltip,positions:Cb.getPositioningFunctions(e.position)}):this._unpinTooltip()}}Cb.defaultBalloonPositions=Wg.generatePositions({heightOffset:5,sideOffset:13}),Cb._editors=new Set,Cb._instance=null;const vb=Cb;function xb(e){return Tn(e)?e.closest("[data-cke-tooltip-text]:not([data-cke-tooltip-disabled])"):null}function Eb(e){return{text:e.dataset.ckeTooltipText,position:e.dataset.ckeTooltipPosition||"s",cssClass:e.dataset.ckeTooltipClass||""}}class Db extends(On()){constructor(e,t={}){super(),this._balloonView=null,this._showBalloonThrottled=Hh((()=>this._showBalloon()),50,{leading:!0}),this._lastFocusedEditableElement=null,this.editor=e,this._balloonClass=t.balloonClass,e.on("ready",(()=>this._handleEditorReady()))}destroy(){const e=this._balloonView;e&&(e.unpin(),this._balloonView=null),this._showBalloonThrottled.cancel(),this.stopListening()}_handleEditorReady(){const e=this.editor;this._isEnabled()&&e.ui.view&&(e.ui.focusTracker.on("change:isFocused",((e,t,o)=>{this._updateLastFocusedEditableElement(),o?this._showBalloon():this._hideBalloon()})),e.ui.focusTracker.on("change:focusedElement",((e,t,o)=>{this._updateLastFocusedEditableElement(),o&&this._showBalloon()})),e.ui.on("update",(()=>{this._showBalloonThrottled()})))}_getNormalizedConfig(){return{side:"ltr"===this.editor.locale.contentLanguageDirection?"right":"left",position:"border",verticalOffset:0,horizontalOffset:5}}_showBalloon(){const e=this._getBalloonAttachOptions();e&&(this._balloonView||(this._balloonView=this._createBalloonView()),this._balloonView.pin(e))}_hideBalloon(){this._balloonView&&this._balloonView.unpin()}_createBalloonView(){const e=this.editor,t=new Wg,o=this._createBadgeContent();return t.content.add(o),this._balloonClass&&(t.class=this._balloonClass),e.ui.view.body.add(t),t}_getBalloonAttachOptions(){if(!this._lastFocusedEditableElement)return null;const e=this._getNormalizedConfig(),t="right"===e.side?function(e,t){return Bb(e,t,((e,o)=>e.left+e.width-o.width-t.horizontalOffset))}(this._lastFocusedEditableElement,e):function(e,t){return Bb(e,t,(e=>e.left+t.horizontalOffset))}(this._lastFocusedEditableElement,e);return{target:this._lastFocusedEditableElement,positions:[t]}}_updateLastFocusedEditableElement(){const e=this.editor,t=e.ui.focusTracker.isFocused,o=e.ui.focusTracker.focusedElement;if(!t||!o)return void(this._lastFocusedEditableElement=null);const n=Array.from(e.ui.getEditableElementsNames()).map((t=>e.ui.getEditableElement(t)));n.includes(o)?this._lastFocusedEditableElement=o:this._lastFocusedEditableElement=n[0]}}function Bb(e,t,o){return(n,i)=>{const r=new Gn(e);if(r.width<350||r.height<50)return null;let s;s="inside"===t.position?r.bottom-i.height:r.bottom-i.height/2,s-=t.verticalOffset;const a=o(r,i),l=n.clone().moveTo(a,s).getIntersection(i.clone().moveTo(a,s)).getVisible();return!l||l.getArea()\n',isColorInherited:!1}),this.setTemplate({tag:"div",attributes:{class:["ck","ck-powered-by"],"aria-hidden":!0},children:[{tag:"a",attributes:{href:"https://ckeditor.com/powered-by-ckeditor/?utm_source=ckeditor&utm_medium=referral&utm_campaign=701Dn000000hVgmIAE_powered_by_ckeditor_logo",target:"_blank",tabindex:"-1"},children:[...t?[{tag:"span",attributes:{class:["ck","ck-powered-by__label"]},children:[t]}]:[],o],on:{dragstart:n.to((e=>e.preventDefault()))}}]})}}class Ib extends Db{constructor(e){super(e,{balloonClass:"ck-evaluation-badge-balloon"}),this.licenseTypeMessage={evaluation:"For evaluation purposes only",trial:"For evaluation purposes only",development:"For development purposes only"}}_isEnabled(){const e=Fb(this.editor.config.get("licenseKey"));return Boolean(e&&this.licenseTypeMessage[e])}_createBadgeContent(){const e=Fb(this.editor.config.get("licenseKey"));return new Pb(this.editor.locale,this.licenseTypeMessage[e])}_getNormalizedConfig(){const e=super._getNormalizedConfig(),t=this.editor.config.get("ui.poweredBy")||{};return{position:t.position||e.position,side:"left"===(t.side||e.side)?"right":"left",verticalOffset:e.verticalOffset,horizontalOffset:e.horizontalOffset}}}class Pb extends zp{constructor(e,t){super(e),this.setTemplate({tag:"div",attributes:{class:["ck","ck-evaluation-badge"],"aria-hidden":!0},children:[{tag:"span",attributes:{class:["ck","ck-evaluation-badge__label"]},children:[t]}]})}}function Fb(e){if("GPL"==e)return"GPL";const t=ur(e.split(".")[1]);return t?t.licenseType||"production":null}var Rb=i(1710),Mb={attributes:{"data-cke":!0}};Mb.setAttributes=Xr(),Mb.insert=Yr().bind(null,"head"),Mb.domAPI=Zr(),Mb.insertStyleElement=ts();Gr()(Rb.A,Mb);Rb.A&&Rb.A.locals&&Rb.A.locals;const zb={POLITE:"polite",ASSERTIVE:"assertive"};class Ob{constructor(e){this.editor=e,e.once("ready",(()=>{for(const e of Object.values(zb))this.announce("",e)}))}announce(e,t=zb.POLITE){const o=this.editor;if(!o.ui.view)return;this.view||(this.view=new Nb(o.locale),o.ui.view.body.add(this.view));const{politeness:n,isUnsafeHTML:i}="string"==typeof t?{politeness:t}:t;let r=this.view.regionViews.find((e=>e.politeness===n));r||(r=new Vb(o,n),this.view.regionViews.add(r)),r.announce({announcement:e,isUnsafeHTML:i})}}class Nb extends zp{constructor(e){super(e),this.regionViews=this.createCollection(),this.setTemplate({tag:"div",attributes:{class:["ck","ck-aria-live-announcer"]},children:this.regionViews})}}class Vb extends zp{constructor(e,t){super(e.locale),this.setTemplate({tag:"div",attributes:{"aria-live":t,"aria-relevant":"additions"},children:[{tag:"ul",attributes:{class:["ck","ck-aria-live-region-list"]}}]}),e.on("destroy",(()=>{null!==this._pruneAnnouncementsInterval&&(clearInterval(this._pruneAnnouncementsInterval),this._pruneAnnouncementsInterval=null)})),this.politeness=t,this._domConverter=e.data.htmlProcessor.domConverter,this._pruneAnnouncementsInterval=setInterval((()=>{this.element&&this._listElement.firstChild&&this._listElement.firstChild.remove()}),5e3)}announce({announcement:e,isUnsafeHTML:t}){if(!e.trim().length)return;const o=document.createElement("li");t?this._domConverter.setContentOf(o,e):o.innerText=e,this._listElement.appendChild(o)}get _listElement(){return this.element.querySelector("ul")}}var Lb=i(1214),Hb={attributes:{"data-cke":!0}};Hb.setAttributes=Xr(),Hb.insert=Yr().bind(null,"head"),Hb.domAPI=Zr(),Hb.insertStyleElement=ts();Gr()(Lb.A,Hb);Lb.A&&Lb.A.locals&&Lb.A.locals;class jb extends Tg{constructor(e,t){super(e);const o=this.bindTemplate;this.extendTemplate({attributes:{class:["ck-menu-bar__menu__item"]},on:{mouseenter:o.to("mouseenter")}}),this.delegate("mouseenter").to(t)}}const qb={toggleMenusAndFocusItemsOnHover(e){e.on("menu:mouseenter",(t=>{if(e.isFocusBorderEnabled||e.isOpen){if(e.isOpen)for(const o of e.menus){const e=t.path[0],n=e instanceof jb&&e.children.first===o;o.isOpen=(t.path.includes(o)||n)&&o.isEnabled}t.source.focus()}}))},focusCycleMenusOnArrows(e){const t="rtl"===e.locale.uiLanguageDirection;function o(t,o){const n=e.children.getIndex(t),i=t.isOpen,r=e.children.length,s=e.children.get((n+r+o)%r);t.isOpen=!1,i&&(s.isOpen=!0),s.buttonView.focus()}e.on("menu:arrowright",(e=>{o(e.source,t?-1:1)})),e.on("menu:arrowleft",(e=>{o(e.source,t?1:-1)}))},closeMenusWhenTheBarCloses(e){e.on("change:isOpen",(()=>{e.isOpen||e.menus.forEach((e=>{e.isOpen=!1}))}))},closeMenuWhenAnotherOnTheSameLevelOpens(e){e.on("menu:change:isOpen",((t,o,n)=>{n&&e.menus.filter((e=>t.source.parentMenuView===e.parentMenuView&&t.source!==e&&e.isOpen)).forEach((e=>{e.isOpen=!1}))}))},closeOnClickOutside(e){Op({emitter:e,activator:()=>e.isOpen,callback:()=>e.close(),contextElements:()=>e.children.map((e=>e.element))})},enableFocusHighlightOnInteraction(e){let t=!1;e.on("change:isOpen",((o,n,i)=>{i||(t||(e.isFocusBorderEnabled=!1),t=!1)})),e.listenTo(e.element,"keydown",(()=>{t=!0}),{useCapture:!0}),e.listenTo(e.element,"keyup",(()=>{t=!1}),{useCapture:!0}),e.listenTo(e.element,"focus",(()=>{t&&(e.isFocusBorderEnabled=!0)}),{useCapture:!0})}},$b={openAndFocusPanelOnArrowDownKey(e){e.keystrokes.set("arrowdown",((t,o)=>{e.focusTracker.focusedElement===e.buttonView.element&&(e.isOpen||(e.isOpen=!0),e.panelView.focus(),o())}))},openOnArrowRightKey(e){const t="rtl"===e.locale.uiLanguageDirection?"arrowleft":"arrowright";e.keystrokes.set(t,((t,o)=>{e.focusTracker.focusedElement===e.buttonView.element&&e.isEnabled&&(e.isOpen||(e.isOpen=!0),e.panelView.focus(),o())}))},openOnButtonClick(e){e.buttonView.on("execute",(()=>{e.isOpen=!0}))},toggleOnButtonClick(e){e.buttonView.on("execute",(()=>{e.isOpen=!e.isOpen}))},openAndFocusOnEnterKeyPress(e){e.keystrokes.set("enter",((t,o)=>{e.focusTracker.focusedElement===e.buttonView.element&&(e.isOpen=!0,e.panelView.focus(),o())}))},closeOnArrowLeftKey(e){const t="rtl"===e.locale.uiLanguageDirection?"arrowright":"arrowleft";e.keystrokes.set(t,((t,o)=>{e.isOpen&&(e.isOpen=!1,e.focus(),o())}))},closeOnEscKey(e){e.keystrokes.set("esc",((t,o)=>{e.isOpen&&(e.isOpen=!1,e.focus(),o())}))},closeOnParentClose(e){e.parentMenuView.on("change:isOpen",((t,o,n)=>{n||t.source!==e.parentMenuView||(e.isOpen=!1)}))}},Ub={southEast:e=>({top:e.bottom,left:e.left,name:"se"}),southWest:(e,t)=>({top:e.bottom,left:e.left-t.width+e.width,name:"sw"}),northEast:(e,t)=>({top:e.top-t.height,left:e.left,name:"ne"}),northWest:(e,t)=>({top:e.top-t.height,left:e.left-t.width+e.width,name:"nw"}),eastSouth:e=>({top:e.top,left:e.right-5,name:"es"}),eastNorth:(e,t)=>({top:e.top-t.height,left:e.right-5,name:"en"}),westSouth:(e,t)=>({top:e.top,left:e.left-t.width+5,name:"ws"}),westNorth:(e,t)=>({top:e.top-t.height,left:e.left-t.width+5,name:"wn"})},Wb=[{menuId:"file",label:"File",groups:[{groupId:"export",items:["menuBar:exportPdf","menuBar:exportWord"]},{groupId:"import",items:["menuBar:importWord"]},{groupId:"revisionHistory",items:["menuBar:revisionHistory"]}]},{menuId:"edit",label:"Edit",groups:[{groupId:"undo",items:["menuBar:undo","menuBar:redo"]},{groupId:"selectAll",items:["menuBar:selectAll"]},{groupId:"findAndReplace",items:["menuBar:findAndReplace"]}]},{menuId:"view",label:"View",groups:[{groupId:"sourceEditingEnhanced",items:["menuBar:sourceEditingEnhanced"]},{groupId:"sourceEditing",items:["menuBar:sourceEditing"]},{groupId:"showBlocks",items:["menuBar:showBlocks"]},{groupId:"previewMergeFields",items:["menuBar:previewMergeFields"]},{groupId:"restrictedEditing",items:["menuBar:restrictedEditing"]}]},{menuId:"insert",label:"Insert",groups:[{groupId:"insertMainWidgets",items:["menuBar:insertImage","menuBar:ckbox","menuBar:ckfinder","menuBar:insertTable"]},{groupId:"insertInline",items:["menuBar:link","menuBar:bookmark","menuBar:comment","menuBar:insertMergeField","menuBar:emoji"]},{groupId:"insertMinorWidgets",items:["menuBar:mediaEmbed","menuBar:insertTemplate","menuBar:specialCharacters","menuBar:blockQuote","menuBar:codeBlock","menuBar:htmlEmbed"]},{groupId:"insertStructureWidgets",items:["menuBar:horizontalLine","menuBar:pageBreak","menuBar:tableOfContents"]},{groupId:"restrictedEditingException",items:["menuBar:restrictedEditingException"]}]},{menuId:"format",label:"Format",groups:[{groupId:"textAndFont",items:[{menuId:"text",label:"Text",groups:[{groupId:"basicStyles",items:["menuBar:bold","menuBar:italic","menuBar:underline","menuBar:strikethrough","menuBar:superscript","menuBar:subscript","menuBar:code"]},{groupId:"textPartLanguage",items:["menuBar:textPartLanguage"]}]},{menuId:"font",label:"Font",groups:[{groupId:"fontProperties",items:["menuBar:fontSize","menuBar:fontFamily"]},{groupId:"fontColors",items:["menuBar:fontColor","menuBar:fontBackgroundColor"]},{groupId:"highlight",items:["menuBar:highlight"]}]},"menuBar:heading"]},{groupId:"list",items:["menuBar:bulletedList","menuBar:numberedList","menuBar:multiLevelList","menuBar:todoList"]},{groupId:"indent",items:["menuBar:alignment","menuBar:indent","menuBar:outdent"]},{groupId:"caseChange",items:["menuBar:caseChange"]},{groupId:"removeFormat",items:["menuBar:removeFormat"]}]},{menuId:"tools",label:"Tools",groups:[{groupId:"aiTools",items:["menuBar:aiAssistant","menuBar:aiCommands"]},{groupId:"tools",items:["menuBar:trackChanges","menuBar:commentsArchive"]}]},{menuId:"help",label:"Help",groups:[{groupId:"help",items:["menuBar:accessibilityHelp"]}]}];function Gb({normalizedConfig:e,locale:t,componentFactory:o,extraItems:n}){const i=Jl(e);return Kb(e,i,n),function(e,t){const o=t.removeItems,n=[];t.items=t.items.filter((({menuId:e})=>!o.includes(e)||(n.push(e),!1))),Qb(t.items,(e=>{e.groups=e.groups.filter((({groupId:e})=>!o.includes(e)||(n.push(e),!1)));for(const t of e.groups)t.items=t.items.filter((e=>{const t=ok(e);return!o.includes(t)||(n.push(t),!1)}))}));for(const t of o)n.includes(t)||T("menu-bar-item-could-not-be-removed",{menuBarConfig:e,itemName:t})}(e,i),Kb(e,i,i.addItems),function(e,t,o){Qb(t.items,(n=>{for(const i of n.groups)i.items=i.items.filter((i=>{const r="string"==typeof i&&!o.has(i);return r&&!t.isUsingDefaultConfig&&T("menu-bar-item-unavailable",{menuBarConfig:e,parentMenuConfig:Jl(n),componentName:i}),!r}))}))}(e,i,o),Jb(e,i),function(e,t){const o=t.t,n={File:o({string:"File",id:"MENU_BAR_MENU_FILE"}),Edit:o({string:"Edit",id:"MENU_BAR_MENU_EDIT"}),View:o({string:"View",id:"MENU_BAR_MENU_VIEW"}),Insert:o({string:"Insert",id:"MENU_BAR_MENU_INSERT"}),Format:o({string:"Format",id:"MENU_BAR_MENU_FORMAT"}),Tools:o({string:"Tools",id:"MENU_BAR_MENU_TOOLS"}),Help:o({string:"Help",id:"MENU_BAR_MENU_HELP"}),Text:o({string:"Text",id:"MENU_BAR_MENU_TEXT"}),Font:o({string:"Font",id:"MENU_BAR_MENU_FONT"})};Qb(e.items,(e=>{e.label in n&&(e.label=n[e.label])}))}(i,t),i}function Kb(e,t,o){const n=[];if(0!=o.length){for(const e of o){const o=ek(e.position),r=tk(e.position);if("object"==typeof(i=e)&&"menu"in i)if(r){const i=t.items.findIndex((e=>e.menuId===r));if(-1!=i)"before"===o?(t.items.splice(i,0,e.menu),n.push(e)):"after"===o&&(t.items.splice(i+1,0,e.menu),n.push(e));else{Zb(t,e.menu,r,o)&&n.push(e)}}else"start"===o?(t.items.unshift(e.menu),n.push(e)):"end"===o&&(t.items.push(e.menu),n.push(e));else if(Xb(e))Qb(t.items,(t=>{if(t.menuId===r)"start"===o?(t.groups.unshift(e.group),n.push(e)):"end"===o&&(t.groups.push(e.group),n.push(e));else{const i=t.groups.findIndex((e=>e.groupId===r));-1!==i&&("before"===o?(t.groups.splice(i,0,e.group),n.push(e)):"after"===o&&(t.groups.splice(i+1,0,e.group),n.push(e)))}}));else{Zb(t,e.item,r,o)&&n.push(e)}}var i;for(const t of o)n.includes(t)||T("menu-bar-item-could-not-be-added",{menuBarConfig:e,addedItemConfig:t})}}function Zb(e,t,o,n){let i=!1;return Qb(e.items,(e=>{for(const{groupId:r,items:s}of e.groups){if(i)return;if(r===o)"start"===n?(s.unshift(t),i=!0):"end"===n&&(s.push(t),i=!0);else{const e=s.findIndex((e=>ok(e)===o));-1!==e&&("before"===n?(s.splice(e,0,t),i=!0):"after"===n&&(s.splice(e+1,0,t),i=!0))}}})),i}function Jb(e,t){const o=t.isUsingDefaultConfig;let n=!1;t.items=t.items.filter((t=>!!t.groups.length||(Yb(e,t,o),!1))),t.items.length?(Qb(t.items,(t=>{t.groups=t.groups.filter((e=>!!e.items.length||(n=!0,!1)));for(const i of t.groups)i.items=i.items.filter((t=>!(nk(t)&&!t.groups.length)||(Yb(e,t,o),n=!0,!1)))})),n&&Jb(e,t)):Yb(e,e,o)}function Yb(e,t,o){o||T("menu-bar-menu-empty",{menuBarConfig:e,emptyMenuConfig:t})}function Qb(e,t){if(Array.isArray(e))for(const t of e)o(t);function o(e){t(e);for(const t of e.groups)for(const e of t.items)nk(e)&&o(e)}}function Xb(e){return"object"==typeof e&&"group"in e}function ek(e){return e.startsWith("start")?"start":e.startsWith("end")?"end":e.startsWith("after")?"after":"before"}function tk(e){const t=e.match(/^[^:]+:(.+)/);return t?t[1]:null}function ok(e){return"string"==typeof e?e:e.menuId}function nk(e){return"object"==typeof e&&"menuId"in e}class ik extends(X()){constructor(e){super(),this.isReady=!1,this._editableElementsMap=new Map,this._focusableToolbarDefinitions=[],this._extraMenuBarElements=[],this._lastFocusedForeignElement=null;const t=e.editing.view;this.editor=e,this.componentFactory=new kb(e),this.focusTracker=new nr,this.tooltipManager=new vb(e),this.poweredBy=new Sb(e),this.evaluationBadge=new Ib(e),this.ariaLiveAnnouncer=new Ob(e),this.set("viewportOffset",this._readViewportOffsetFromConfig()),this.once("ready",(()=>{this._bindBodyCollectionWithFocusTracker(),this.isReady=!0})),this.listenTo(t.document,"layoutChanged",this.update.bind(this)),this.listenTo(t,"scrollToTheSelection",this._handleScrollToTheSelection.bind(this)),this._initFocusTracking()}get element(){return null}update(){this.fire("update")}destroy(){this.stopListening(),this.focusTracker.destroy(),this.tooltipManager.destroy(this.editor),this.poweredBy.destroy(),this.evaluationBadge.destroy();for(const e of this._editableElementsMap.values())e.ckeditorInstance=null,this.editor.keystrokes.stopListening(e);this._editableElementsMap=new Map,this._focusableToolbarDefinitions=[]}setEditableElement(e,t){this._editableElementsMap.set(e,t),t.ckeditorInstance||(t.ckeditorInstance=this.editor),this.focusTracker.add(t);const o=()=>{this.editor.editing.view.getDomRoot(e)||this.editor.keystrokes.listenTo(t)};this.isReady?o():this.once("ready",o)}removeEditableElement(e){const t=this._editableElementsMap.get(e);t&&(this._editableElementsMap.delete(e),this.editor.keystrokes.stopListening(t),this.focusTracker.remove(t),t.ckeditorInstance=null)}getEditableElement(e="main"){return this._editableElementsMap.get(e)}getEditableElementsNames(){return this._editableElementsMap.keys()}addToolbar(e,t={}){e.isRendered?(this.focusTracker.add(e),this.editor.keystrokes.listenTo(e.element)):e.once("render",(()=>{this.focusTracker.add(e),this.editor.keystrokes.listenTo(e.element)})),this._focusableToolbarDefinitions.push({toolbarView:e,options:t})}extendMenuBar(e){this._extraMenuBarElements.push(e)}get _editableElements(){return console.warn("editor-ui-deprecated-editable-elements: The EditorUI#_editableElements property has been deprecated and will be removed in the near future.",{editorUI:this}),this._editableElementsMap}_initMenuBar(e){const t=e.element;this.focusTracker.add(t),this.editor.keystrokes.listenTo(t);const o=function(e){let t;return t="items"in e&&e.items?{items:e.items,removeItems:[],addItems:[],isVisible:!0,isUsingDefaultConfig:!1,...e}:{items:Jl(Wb),addItems:[],removeItems:[],isVisible:!0,isUsingDefaultConfig:!0,...e},t}(this.editor.config.get("menuBar")||{});e.fillFromConfig(o,this.componentFactory,this._extraMenuBarElements),this.editor.keystrokes.set("Esc",((e,o)=>{t.contains(this.editor.ui.focusTracker.focusedElement)&&(this._lastFocusedForeignElement?(this._lastFocusedForeignElement.focus(),this._lastFocusedForeignElement=null):this.editor.editing.view.focus(),o())})),this.editor.keystrokes.set("Alt+F9",((o,n)=>{t.contains(this.editor.ui.focusTracker.focusedElement)||(this._saveLastFocusedForeignElement(),e.isFocusBorderEnabled=!0,e.focus(),n())}))}_readViewportOffsetFromConfig(){const e=this.editor,t=e.config.get("ui.viewportOffset");if(t)return t;const o=e.config.get("toolbar.viewportTopOffset");return o?(console.warn("editor-ui-deprecated-viewport-offset-config: The `toolbar.vieportTopOffset` configuration option is deprecated. It will be removed from future CKEditor versions. Use `ui.viewportOffset.top` instead."),{top:o}):{top:0}}_initFocusTracking(){const e=this.editor;let t;e.keystrokes.set("Alt+F10",((e,o)=>{this._saveLastFocusedForeignElement();const n=this._getCurrentFocusedToolbarDefinition();n&&t||(t=this._getFocusableCandidateToolbarDefinitions());for(let e=0;e{const n=this._getCurrentFocusedToolbarDefinition();n&&(this._lastFocusedForeignElement?(this._lastFocusedForeignElement.focus(),this._lastFocusedForeignElement=null):e.editing.view.focus(),n.options.afterBlur&&n.options.afterBlur(),o())}))}_saveLastFocusedForeignElement(){const e=this.focusTracker.focusedElement;Array.from(this._editableElementsMap.values()).includes(e)&&!Array.from(this.editor.editing.view.domRoots.values()).includes(e)&&(this._lastFocusedForeignElement=e)}_getFocusableCandidateToolbarDefinitions(){const e=[];for(const t of this._focusableToolbarDefinitions){const{toolbarView:o,options:n}=t;(ri(o.element)||n.beforeFocus)&&e.push(t)}return e.sort(((e,t)=>rk(e)-rk(t))),e}_getCurrentFocusedToolbarDefinition(){for(const e of this._focusableToolbarDefinitions)if(e.toolbarView.element&&e.toolbarView.element.contains(this.focusTracker.focusedElement))return e;return null}_focusFocusableCandidateToolbar(e){const{toolbarView:t,options:{beforeFocus:o}}=e;return o&&o(),!!ri(t.element)&&(t.focus(),!0)}_handleScrollToTheSelection(e,t){const o={top:0,bottom:0,left:0,right:0,...this.viewportOffset};t.viewportOffset.top+=o.top,t.viewportOffset.bottom+=o.bottom,t.viewportOffset.left+=o.left,t.viewportOffset.right+=o.right}_bindBodyCollectionWithFocusTracker(){const e=this.view.body;for(const t of e)this.focusTracker.add(t.element);e.on("add",((e,t)=>{this.focusTracker.add(t.element)})),e.on("remove",((e,t)=>{this.focusTracker.remove(t.element)}))}}function rk(e){const{toolbarView:t,options:o}=e;let n=10;return ri(t.element)&&n--,o.isContextual&&n--,n}var sk=i(178),ak={attributes:{"data-cke":!0}};ak.setAttributes=Xr(),ak.insert=Yr().bind(null,"head"),ak.domAPI=Zr(),ak.insertStyleElement=ts();Gr()(sk.A,ak);sk.A&&sk.A.locals&&sk.A.locals;class lk extends zp{constructor(e){super(e),this.body=new zm(e)}render(){super.render(),this.body.attachToDom()}destroy(){return this.body.detachFromDom(),super.destroy()}}class ck extends zp{constructor(e,t,o){super(e),this.name=null,this.setTemplate({tag:"div",attributes:{class:["ck","ck-content","ck-editor__editable","ck-rounded-corners"],lang:e.contentLanguage,dir:e.contentLanguageDirection}}),this.set("isFocused",!1),this._editableElement=o,this._hasExternalElement=!!this._editableElement,this._editingView=t}render(){super.render(),this._hasExternalElement?this.template.apply(this.element=this._editableElement):this._editableElement=this.element,this.on("change:isFocused",(()=>this._updateIsFocusedClasses())),this._updateIsFocusedClasses()}destroy(){this._hasExternalElement&&this.template.revert(this._editableElement),super.destroy()}get hasExternalElement(){return this._hasExternalElement}_updateIsFocusedClasses(){const e=this._editingView;function t(t){e.change((o=>{const n=e.document.getRoot(t.name);o.addClass(t.isFocused?"ck-focused":"ck-blurred",n),o.removeClass(t.isFocused?"ck-blurred":"ck-focused",n)}))}e.isRenderingInProgress?function o(n){e.once("change:isRenderingInProgress",((e,i,r)=>{r?o(n):t(n)}))}(this):t(this)}}class dk extends ck{constructor(e,t,o,n={}){super(e,t,o),this._options=n,this.extendTemplate({attributes:{role:"textbox",class:"ck-editor__editable_inline"}})}render(){super.render();const e=this._editingView;e.change((t=>{const o=e.document.getRoot(this.name);t.setAttribute("aria-label",this.getEditableAriaLabel(),o)}))}getEditableAriaLabel(){const e=this.locale.t,t=this._options.label,o=this._editableElement,n=this.name;if("string"==typeof t)return t;if("object"==typeof t)return t[n];if("function"==typeof t)return t(this);if(o){const e=o.getAttribute("aria-label");if(e)return e}return e("Rich Text Editor. Editing area: %0",n)}}class uk extends Cr{static get pluginName(){return"Notification"}static get isOfficialPlugin(){return!0}init(){this.on("show:warning",((e,t)=>{window.alert(t.message)}),{priority:"lowest"})}showSuccess(e,t={}){this._showNotification({message:e,type:"success",namespace:t.namespace,title:t.title})}showInfo(e,t={}){this._showNotification({message:e,type:"info",namespace:t.namespace,title:t.title})}showWarning(e,t={}){this._showNotification({message:e,type:"warning",namespace:t.namespace,title:t.title})}_showNotification(e){const t=e.namespace?`show:${e.type}:${e.namespace}`:`show:${e.type}`;this.fire(t,{message:e.message,type:e.type,title:e.title||""})}}class hk extends(X()){constructor(e,t){super(),t&&tl(this,t),e&&this.set(e)}}var pk=i(9938),mk={attributes:{"data-cke":!0}};mk.setAttributes=Xr(),mk.insert=Yr().bind(null,"head"),mk.domAPI=Zr(),mk.insertStyleElement=ts();Gr()(pk.A,mk);pk.A&&pk.A.locals&&pk.A.locals;var gk=i(3579),fk={attributes:{"data-cke":!0}};fk.setAttributes=Xr(),fk.insert=Yr().bind(null,"head"),fk.domAPI=Zr(),fk.insertStyleElement=ts();Gr()(gk.A,fk);gk.A&&gk.A.locals&&gk.A.locals;const bk=ti("px");class kk extends br{static get pluginName(){return"ContextualBalloon"}static get isOfficialPlugin(){return!0}constructor(e){super(e),this._viewToStack=new Map,this._idToStack=new Map,this._view=null,this._rotatorView=null,this._fakePanelsView=null,this.positionLimiter=()=>{const e=this.editor.editing.view,t=e.document.selection.editableElement;return t?e.domConverter.mapViewToDom(t.root):null},this.decorate("getPositionOptions"),this.set("visibleView",null),this.set("_numberOfStacks",0),this.set("_singleViewMode",!1)}destroy(){super.destroy(),this._view&&this._view.destroy(),this._rotatorView&&this._rotatorView.destroy(),this._fakePanelsView&&this._fakePanelsView.destroy()}get view(){return this._view||this._createPanelView(),this._view}hasView(e){return Array.from(this._viewToStack.keys()).includes(e)}add(e){if(this._view||this._createPanelView(),this.hasView(e.view))throw new S("contextualballoon-add-view-exist",[this,e]);const t=e.stackId||"main";if(!this._idToStack.has(t))return this._idToStack.set(t,new Map([[e.view,e]])),this._viewToStack.set(e.view,this._idToStack.get(t)),this._numberOfStacks=this._idToStack.size,void(this._visibleStack&&!e.singleViewMode||this.showStack(t));const o=this._idToStack.get(t);e.singleViewMode&&this.showStack(t),o.set(e.view,e),this._viewToStack.set(e.view,o),o===this._visibleStack&&this._showView(e)}remove(e){if(!this.hasView(e))throw new S("contextualballoon-remove-view-not-exist",[this,e]);const t=this._viewToStack.get(e);this._singleViewMode&&this.visibleView===e&&(this._singleViewMode=!1),this.visibleView===e&&(1===t.size?this._idToStack.size>1?this._showNextStack():(this.view.hide(),this.visibleView=null,this._rotatorView.hideView()):this._showView(Array.from(t.values())[t.size-2])),1===t.size?(this._idToStack.delete(this._getStackId(t)),this._numberOfStacks=this._idToStack.size):t.delete(e),this._viewToStack.delete(e)}updatePosition(e){e&&(this._visibleStack.get(this.visibleView).position=e),this.view.pin(this.getPositionOptions()),this._fakePanelsView.updatePosition()}getPositionOptions(){let e=Array.from(this._visibleStack.values()).pop().position;return e&&(e.limiter||(e=Object.assign({},e,{limiter:this.positionLimiter})),e=Object.assign({},e,{viewportOffsetConfig:this.editor.ui.viewportOffset})),e}showStack(e){this.visibleStack=e;const t=this._idToStack.get(e);if(!t)throw new S("contextualballoon-showstack-stack-not-exist",this);this._visibleStack!==t&&this._showView(Array.from(t.values()).pop())}_createPanelView(){this._view=new Wg(this.editor.locale),this.editor.ui.view.body.add(this._view),this._rotatorView=this._createRotatorView(),this._fakePanelsView=this._createFakePanelsView()}get _visibleStack(){return this._viewToStack.get(this.visibleView)}_getStackId(e){return Array.from(this._idToStack.entries()).find((t=>t[1]===e))[0]}_showNextStack(){const e=Array.from(this._idToStack.values());let t=e.indexOf(this._visibleStack)+1;e[t]||(t=0),this.showStack(this._getStackId(e[t]))}_showPrevStack(){const e=Array.from(this._idToStack.values());let t=e.indexOf(this._visibleStack)-1;e[t]||(t=e.length-1),this.showStack(this._getStackId(e[t]))}_createRotatorView(){const e=new wk(this.editor.locale),t=this.editor.locale.t;return this.view.content.add(e),e.bind("isNavigationVisible").to(this,"_numberOfStacks",this,"_singleViewMode",((e,t)=>!t&&e>1)),e.on("change:isNavigationVisible",(()=>this.updatePosition()),{priority:"low"}),e.bind("counter").to(this,"visibleView",this,"_numberOfStacks",((e,o)=>{if(o<2)return"";const n=Array.from(this._idToStack.values()).indexOf(this._visibleStack)+1;return t("%0 of %1",[n,o])})),e.buttonNextView.on("execute",(()=>{e.focusTracker.isFocused&&this.editor.editing.view.focus(),this._showNextStack()})),e.buttonPrevView.on("execute",(()=>{e.focusTracker.isFocused&&this.editor.editing.view.focus(),this._showPrevStack()})),e}_createFakePanelsView(){const e=new _k(this.editor.locale,this.view);return e.bind("numberOfPanels").to(this,"_numberOfStacks",this,"_singleViewMode",((e,t)=>!t&&e>=2?Math.min(e-1,2):0)),e.listenTo(this.view,"change:top",(()=>e.updatePosition())),e.listenTo(this.view,"change:left",(()=>e.updatePosition())),this.editor.ui.view.body.add(e),e}_showView({view:e,balloonClassName:t="",withArrow:o=!0,singleViewMode:n=!1}){this.view.class=t,this.view.withArrow=o,this._rotatorView.showView(e),this.visibleView=e,this.view.pin(this.getPositionOptions()),this._fakePanelsView.updatePosition(),n&&(this._singleViewMode=!0)}}class wk extends zp{constructor(e){super(e);const t=e.t,o=this.bindTemplate;this.set("isNavigationVisible",!0),this.focusTracker=new nr,this.buttonPrevView=this._createButtonView(t("Previous"),up.previousArrow),this.buttonNextView=this._createButtonView(t("Next"),up.nextArrow),this.content=this.createCollection(),this.setTemplate({tag:"div",attributes:{class:["ck","ck-balloon-rotator"],"z-index":"-1"},children:[{tag:"div",attributes:{class:["ck-balloon-rotator__navigation",o.to("isNavigationVisible",(e=>e?"":"ck-hidden"))]},children:[this.buttonPrevView,{tag:"span",attributes:{class:["ck-balloon-rotator__counter"]},children:[{text:o.to("counter")}]},this.buttonNextView]},{tag:"div",attributes:{class:"ck-balloon-rotator__content"},children:this.content}]})}render(){super.render(),this.focusTracker.add(this.element)}destroy(){super.destroy(),this.focusTracker.destroy()}showView(e){this.hideView(),this.content.add(e)}hideView(){this.content.clear()}_createButtonView(e,t){const o=new Kp(this.locale);return o.set({label:e,icon:t,tooltip:!0}),o}}class _k extends zp{constructor(e,t){super(e);const o=this.bindTemplate;this.set("top",0),this.set("left",0),this.set("height",0),this.set("width",0),this.set("numberOfPanels",0),this.content=this.createCollection(),this._balloonPanelView=t,this.setTemplate({tag:"div",attributes:{class:["ck-fake-panel",o.to("numberOfPanels",(e=>e?"":"ck-hidden"))],style:{top:o.to("top",bk),left:o.to("left",bk),width:o.to("width",bk),height:o.to("height",bk)}},children:this.content}),this.on("change:numberOfPanels",((e,t,o,n)=>{o>n?this._addPanels(o-n):this._removePanels(n-o),this.updatePosition()}))}_addPanels(e){for(;e--;){const e=new zp;e.setTemplate({tag:"div"}),this.content.add(e),this.registerChild(e)}}_removePanels(e){for(;e--;){const e=this.content.last;this.content.remove(e),this.deregisterChild(e),e.destroy()}}updatePosition(){if(this.numberOfPanels){const{top:e,left:t}=this._balloonPanelView,{width:o,height:n}=new Gn(this._balloonPanelView.element);Object.assign(this,{top:e,left:t,width:o,height:n})}}}var yk=i(7289),Ak={attributes:{"data-cke":!0}};Ak.setAttributes=Xr(),Ak.insert=Yr().bind(null,"head"),Ak.domAPI=Zr(),Ak.insertStyleElement=ts();Gr()(yk.A,Ak);yk.A&&yk.A.locals&&yk.A.locals;class Ck extends dg{constructor(e,t){const o=e.t,n=Object.assign({},{showResetButton:!0,showIcon:!0,creator:Ef},t);super(e,n.creator),this.label=t.label,this._viewConfig=n,this._viewConfig.showIcon&&(this.iconView=new $p,this.iconView.content=up.loupe,this.fieldWrapperChildren.add(this.iconView,0),this.extendTemplate({attributes:{class:"ck-search__query_with-icon"}})),this._viewConfig.showResetButton&&(this.resetButtonView=new Kp(e),this.resetButtonView.set({label:o("Clear"),icon:up.cancel,class:"ck-search__reset",isVisible:!1,tooltip:!0}),this.resetButtonView.on("execute",(()=>{this.reset(),this.focus(),this.fire("reset")})),this.resetButtonView.bind("isVisible").to(this.fieldView,"isEmpty",(e=>!e)),this.fieldWrapperChildren.add(this.resetButtonView),this.extendTemplate({attributes:{class:"ck-search__query_with-reset"}}))}reset(){this.fieldView.reset(),this._viewConfig.showResetButton&&(this.resetButtonView.isVisible=!1)}}class vk extends zp{constructor(){super();const e=this.bindTemplate;this.set({isVisible:!1,primaryText:"",secondaryText:""}),this.setTemplate({tag:"div",attributes:{class:["ck","ck-search__info",e.if("isVisible","ck-hidden",(e=>!e))],tabindex:-1},children:[{tag:"span",children:[{text:[e.to("primaryText")]}]},{tag:"span",children:[{text:[e.to("secondaryText")]}]}]})}focus(){this.element.focus()}}class xk extends zp{constructor(e){super(e),this.children=this.createCollection(),this.focusTracker=new nr,this.setTemplate({tag:"div",attributes:{class:["ck","ck-search__results"],tabindex:-1},children:this.children}),this._focusCycler=new Xp({focusables:this.children,focusTracker:this.focusTracker})}render(){super.render();for(const e of this.children)this.focusTracker.add(e.element)}focus(){this._focusCycler.focusFirst()}focusFirst(){this._focusCycler.focusFirst()}focusLast(){this._focusCycler.focusLast()}}var Ek=/[\\^$.*+?()[\]{}|]/g,Dk=RegExp(Ek.source);const Bk=function(e){return(e=Vr(e))&&Dk.test(e)?e.replace(Ek,"\\$&"):e};var Sk=i(5540),Tk={attributes:{"data-cke":!0}};Tk.setAttributes=Xr(),Tk.insert=Yr().bind(null,"head"),Tk.domAPI=Zr(),Tk.insertStyleElement=ts();Gr()(Sk.A,Tk);Sk.A&&Sk.A.locals&&Sk.A.locals;class Ik extends zp{constructor(e,t){super(e),this._config=t,this.filteredView=t.filteredView,this.queryView=this._createSearchTextQueryView(),this.focusTracker=new nr,this.keystrokes=new ar,this.resultsView=new xk(e),this.children=this.createCollection(),this.focusableChildren=this.createCollection([this.queryView,this.resultsView]),this.set("isEnabled",!0),this.set("resultsCount",0),this.set("totalItemsCount",0),t.infoView&&t.infoView.instance?this.infoView=t.infoView.instance:(this.infoView=new vk,this._enableDefaultInfoViewBehavior(),this.on("render",(()=>{this.search("")}))),this.resultsView.children.addMany([this.infoView,this.filteredView]),this.focusCycler=new Xp({focusables:this.focusableChildren,focusTracker:this.focusTracker,keystrokeHandler:this.keystrokes,actions:{focusPrevious:"shift + tab",focusNext:"tab"}}),this.on("search",((e,{resultsCount:t,totalItemsCount:o})=>{this.resultsCount=t,this.totalItemsCount=o})),this.setTemplate({tag:"div",attributes:{class:["ck","ck-search",t.class||null],tabindex:"-1"},children:this.children})}render(){super.render(),this.children.addMany([this.queryView,this.resultsView]);const e=e=>e.stopPropagation();for(const e of this.focusableChildren)this.focusTracker.add(e.element);this.keystrokes.listenTo(this.element),this.keystrokes.set("arrowright",e),this.keystrokes.set("arrowleft",e),this.keystrokes.set("arrowup",e),this.keystrokes.set("arrowdown",e)}focus(){this.queryView.focus()}reset(){this.queryView.reset(),this.search(""),this.filteredView.element.scrollTo(0,0)}search(e){const t=e?new RegExp(Bk(e),"ig"):null,o=this.filteredView.filter(t);this.fire("search",{query:e,...o})}_createSearchTextQueryView(){const e=new Ck(this.locale,this._config.queryView);return this.listenTo(e.fieldView,"input",(()=>{this.search(e.fieldView.element.value)})),e.on("reset",(()=>this.reset())),e.bind("isEnabled").to(this),e}_enableDefaultInfoViewBehavior(){const e=this.locale.t,t=this.infoView;function o(e,{query:t,resultsCount:o,totalItemsCount:n}){return"function"==typeof e?e(t,o,n):e}this.on("search",((n,i)=>{if(i.resultsCount)t.set({isVisible:!1});else{const n=this._config.infoView&&this._config.infoView.text;let r,s;i.totalItemsCount?n&&n.notFound?(r=n.notFound.primary,s=n.notFound.secondary):(r=e("No results found"),s=""):n&&n.noSearchableItems?(r=n.noSearchableItems.primary,s=n.noSearchableItems.secondary):(r=e("No searchable items"),s=""),t.set({primaryText:o(r,i),secondaryText:o(s,i),isVisible:!0})}}))}}var Pk=i(2688),Fk={attributes:{"data-cke":!0}};Fk.setAttributes=Xr(),Fk.insert=Yr().bind(null,"head"),Fk.domAPI=Zr(),Fk.insertStyleElement=ts();Gr()(Pk.A,Fk);Pk.A&&Pk.A.locals&&Pk.A.locals;class Rk extends Ik{constructor(e,t){super(e,t),this._config=t;const o=ti("px");this.extendTemplate({attributes:{class:["ck-autocomplete"]}});const n=this.resultsView.bindTemplate;this.resultsView.set("isVisible",!1),this.resultsView.set("_position","s"),this.resultsView.set("_width",0),this.resultsView.extendTemplate({attributes:{class:[n.if("isVisible","ck-hidden",(e=>!e)),n.to("_position",(e=>`ck-search__results_${e}`))],style:{width:n.to("_width",o)}}}),this.focusTracker.on("change:isFocused",((e,o,n)=>{this._updateResultsVisibility(),n?this.resultsView.element.scrollTop=0:t.resetOnBlur&&this.queryView.reset()})),this.on("search",(()=>{this._updateResultsVisibility(),this._updateResultsViewWidthAndPosition()})),this.keystrokes.set("esc",((e,t)=>{this.resultsView.isVisible&&(this.queryView.focus(),this.resultsView.isVisible=!1,t())})),this.listenTo(s.document,"scroll",(()=>{this._updateResultsViewWidthAndPosition()})),this.on("change:isEnabled",(()=>{this._updateResultsVisibility()})),this.filteredView.on("execute",((e,{value:t})=>{this.focus(),this.reset(),this.queryView.fieldView.value=this.queryView.fieldView.element.value=t,this.resultsView.isVisible=!1})),this.resultsView.on("change:isVisible",(()=>{this._updateResultsViewWidthAndPosition()}))}_updateResultsViewWidthAndPosition(){if(!this.resultsView.isVisible)return;this.resultsView._width=new Gn(this.queryView.fieldView.element).width;const e=Rk._getOptimalPosition({element:this.resultsView.element,target:this.queryView.element,fitInViewport:!0,positions:Rk.defaultResultsPositions});this.resultsView._position=e?e.name:"s"}_updateResultsVisibility(){const e=void 0===this._config.queryMinChars?0:this._config.queryMinChars,t=this.queryView.fieldView.element.value.length;this.resultsView.isVisible=this.focusTracker.isFocused&&this.isEnabled&&t>=e}}Rk.defaultResultsPositions=[e=>({top:e.bottom,left:e.left,name:"s"}),(e,t)=>({top:e.top-t.height,left:e.left,name:"n"})],Rk._getOptimalPosition=si;Mk={"&":"&","<":"<",">":">",'"':""","'":"'"};var Mk;var zk=/[&<>"']/g;RegExp(zk.source);var Ok=i(1998),Nk={attributes:{"data-cke":!0}};Nk.setAttributes=Xr(),Nk.insert=Yr().bind(null,"head"),Nk.domAPI=Zr(),Nk.insertStyleElement=ts();Gr()(Ok.A,Nk);Ok.A&&Ok.A.locals&&Ok.A.locals;var Vk=i(5706),Lk={attributes:{"data-cke":!0}};Lk.setAttributes=Xr(),Lk.insert=Yr().bind(null,"head"),Lk.domAPI=Zr(),Lk.insertStyleElement=ts();Gr()(Vk.A,Lk);Vk.A&&Vk.A.locals&&Vk.A.locals;var Hk=i(9939),jk={attributes:{"data-cke":!0}};jk.setAttributes=Xr(),jk.insert=Yr().bind(null,"head"),jk.domAPI=Zr(),jk.insertStyleElement=ts();Gr()(Hk.A,jk);Hk.A&&Hk.A.locals&&Hk.A.locals;var qk=i(5667),$k={attributes:{"data-cke":!0}};$k.setAttributes=Xr(),$k.insert=Yr().bind(null,"head"),$k.domAPI=Zr(),$k.insertStyleElement=ts();Gr()(qk.A,$k);qk.A&&qk.A.locals&&qk.A.locals;class Uk extends Am{constructor(e){super(e);const t=this.bindTemplate;this.set({withText:!0,role:"menuitem"}),this.arrowView=this._createArrowView(),this.extendTemplate({attributes:{class:["ck-menu-bar__menu__button"],"aria-haspopup":!0,"aria-expanded":this.bindTemplate.to("isOn",(e=>String(e))),"data-cke-tooltip-disabled":t.to("isOn")},on:{mouseenter:t.to("mouseenter")}})}render(){super.render(),this.children.add(this.arrowView)}_createArrowView(){const e=new $p;return e.content=$m,e.extendTemplate({attributes:{class:"ck-menu-bar__menu__button__arrow"}}),e}}var Wk=i(4873),Gk={attributes:{"data-cke":!0}};Gk.setAttributes=Xr(),Gk.insert=Yr().bind(null,"head"),Gk.domAPI=Zr(),Gk.insertStyleElement=ts();Gr()(Wk.A,Gk);Wk.A&&Wk.A.locals&&Wk.A.locals;class Kk extends zp{constructor(e){super(e);const t=this.bindTemplate;this.set("isVisible",!1),this.set("position","se"),this.children=this.createCollection(),this.setTemplate({tag:"div",attributes:{class:["ck","ck-reset","ck-menu-bar__menu__panel",t.to("position",(e=>`ck-menu-bar__menu__panel_position_${e}`)),t.if("isVisible","ck-hidden",(e=>!e))],tabindex:"-1"},children:this.children,on:{selectstart:t.to((e=>{"input"!==e.target.tagName.toLocaleLowerCase()&&e.preventDefault()}))}})}focus(e=1){this.children.length&&(1===e?this.children.first.focus():this.children.last.focus())}}var Zk=i(55),Jk={attributes:{"data-cke":!0}};Jk.setAttributes=Xr(),Jk.insert=Yr().bind(null,"head"),Jk.domAPI=Zr(),Jk.insertStyleElement=ts();Gr()(Zk.A,Jk);Zk.A&&Zk.A.locals&&Zk.A.locals;class Yk extends zp{constructor(e){super(e);const t=this.bindTemplate;this.buttonView=new Uk(e),this.buttonView.delegate("mouseenter").to(this),this.buttonView.bind("isOn","isEnabled").to(this,"isOpen","isEnabled"),this.panelView=new Kk(e),this.panelView.bind("isVisible").to(this,"isOpen"),this.keystrokes=new ar,this.focusTracker=new nr,this.set("isOpen",!1),this.set("isEnabled",!0),this.set("panelPosition","w"),this.set("class",void 0),this.set("parentMenuView",null),this.setTemplate({tag:"div",attributes:{class:["ck","ck-menu-bar__menu",t.to("class"),t.if("isEnabled","ck-disabled",(e=>!e)),t.if("parentMenuView","ck-menu-bar__menu_top-level",(e=>!e))]},children:[this.buttonView,this.panelView]})}render(){super.render(),this.focusTracker.add(this.buttonView.element),this.focusTracker.add(this.panelView.element),this.keystrokes.listenTo(this.element),$b.closeOnEscKey(this),this._repositionPanelOnOpen()}_attachBehaviors(){this.parentMenuView?($b.openOnButtonClick(this),$b.openOnArrowRightKey(this),$b.closeOnArrowLeftKey(this),$b.openAndFocusOnEnterKeyPress(this),$b.closeOnParentClose(this)):(this._propagateArrowKeystrokeEvents(),$b.openAndFocusPanelOnArrowDownKey(this),$b.toggleOnButtonClick(this))}_propagateArrowKeystrokeEvents(){this.keystrokes.set("arrowright",((e,t)=>{this.fire("arrowright"),t()})),this.keystrokes.set("arrowleft",((e,t)=>{this.fire("arrowleft"),t()}))}_repositionPanelOnOpen(){this.on("change:isOpen",((e,t,o)=>{if(!o)return;const n=Yk._getOptimalPosition({element:this.panelView.element,target:this.buttonView.element,fitInViewport:!0,positions:this._panelPositions});this.panelView.position=n?n.name:this._defaultMenuPositionName}))}focus(){this.buttonView.focus()}get _panelPositions(){const{southEast:e,southWest:t,northEast:o,northWest:n,westSouth:i,eastSouth:r,westNorth:s,eastNorth:a}=Ub;return"ltr"===this.locale.uiLanguageDirection?this.parentMenuView?[r,a,i,s]:[e,t,o,n]:this.parentMenuView?[i,s,r,a]:[t,e,n,o]}get _defaultMenuPositionName(){return"ltr"===this.locale.uiLanguageDirection?this.parentMenuView?"es":"se":this.parentMenuView?"ws":"sw"}}Yk._getOptimalPosition=si;const Qk=Yk;class Xk extends Mg{constructor(e){super(e),this.role="menu",this.items.on("change",this._setItemsCheckSpace.bind(this))}_setItemsCheckSpace(){const e=Array.from(this.items).some((e=>{const t=ew(e);return t&&t.isToggleable}));this.items.forEach((t=>{const o=ew(t);o&&(o.hasCheckSpace=e)}))}}function ew(e){return e instanceof Tg?e.children.map((e=>function(e){return"object"==typeof e&&"buttonView"in e&&e.buttonView instanceof Kp}(e)?e.buttonView:e)).find((e=>e instanceof Am)):null}class tw extends Hm{constructor(e){super(e),this.set({withText:!0,withKeystroke:!0,tooltip:!1,role:"menuitem"}),this.extendTemplate({attributes:{class:["ck-menu-bar__menu__item__button"]}})}}var ow=i(4782),nw={attributes:{"data-cke":!0}};nw.setAttributes=Xr(),nw.insert=Yr().bind(null,"head"),nw.domAPI=Zr(),nw.insertStyleElement=ts();Gr()(ow.A,nw);ow.A&&ow.A.locals&&ow.A.locals;const iw=["mouseenter","arrowleft","arrowright","change:isOpen"];class rw extends zp{constructor(e){super(e),this.menus=[];const t=e.t,o=this.bindTemplate;this.set({isOpen:!1,isFocusBorderEnabled:!1}),this._setupIsOpenUpdater(),this.children=this.createCollection(),this.setTemplate({tag:"div",attributes:{class:["ck","ck-menu-bar",o.if("isFocusBorderEnabled","ck-menu-bar_focus-border-enabled")],"aria-label":t("Editor menu bar"),role:"menubar"},children:this.children})}fillFromConfig(e,t,o=[]){const n=Gb({normalizedConfig:e,locale:this.locale,componentFactory:t,extraItems:o}).items.map((e=>this._createMenu({componentFactory:t,menuDefinition:e})));this.children.addMany(n)}render(){super.render(),qb.toggleMenusAndFocusItemsOnHover(this),qb.closeMenusWhenTheBarCloses(this),qb.closeMenuWhenAnotherOnTheSameLevelOpens(this),qb.focusCycleMenusOnArrows(this),qb.closeOnClickOutside(this),qb.enableFocusHighlightOnInteraction(this)}focus(){this.children.first&&this.children.first.focus()}close(){for(const e of this.children)e.isOpen=!1}registerMenu(e,t=null){t?(e.delegate(...iw).to(t),e.parentMenuView=t):e.delegate(...iw).to(this,(e=>"menu:"+e)),e._attachBehaviors(),this.menus.push(e)}_createMenu({componentFactory:e,menuDefinition:t,parentMenuView:o}){const n=this.locale,i=new Qk(n);return this.registerMenu(i,o),i.buttonView.set({label:t.label}),i.once("change:isOpen",(()=>{const o=new Xk(n);o.ariaLabel=t.label,i.panelView.children.add(o),o.items.addMany(this._createMenuItems({menuDefinition:t,parentMenuView:i,componentFactory:e}))})),i}_createMenuItems({menuDefinition:e,parentMenuView:t,componentFactory:o}){const n=this.locale,i=[];for(const r of e.groups){for(const e of r.items){const r=new jb(n,t);if(W(e))r.children.add(this._createMenu({componentFactory:o,menuDefinition:e,parentMenuView:t}));else{const n=this._createMenuItemContentFromFactory({componentName:e,componentFactory:o,parentMenuView:t});if(!n)continue;r.children.add(n)}i.push(r)}r!==e.groups[e.groups.length-1]&&i.push(new Ig(n))}return i}_createMenuItemContentFromFactory({componentName:e,parentMenuView:t,componentFactory:o}){const n=o.create(e);return n instanceof Qk||n instanceof Em||n instanceof tw?(this._registerMenuTree(n,t),n.on("execute",(()=>{this.close()})),n):(T("menu-bar-component-unsupported",{componentName:e,componentView:n}),null)}_registerMenuTree(e,t){if(!(e instanceof Qk))return void e.delegate("mouseenter").to(t);this.registerMenu(e,t);const o=e.panelView.children.filter((e=>e instanceof Xk))[0];if(!o)return void e.delegate("mouseenter").to(t);const n=o.items.filter((e=>e instanceof Tg));for(const t of n)this._registerMenuTree(t.children.get(0),e)}_setupIsOpenUpdater(){let e;this.on("menu:change:isOpen",((t,o,n)=>{clearTimeout(e),n?this.isOpen=!0:e=setTimeout((()=>{this.isOpen=Array.from(this.children).some((e=>e.isOpen))}),0)}))}}class sw extends ik{constructor(e,t){super(e),this.view=t}init(){const e=this.editor,t=this.view,o=e.editing.view,n=t.editable,i=o.document.getRoot();n.name=i.rootName,t.render();const r=n.element;this.setEditableElement(n.name,r),t.editable.bind("isFocused").to(this.focusTracker),o.attachDomRoot(r),this._initPlaceholder(),this._initToolbar(),this._initMenuBar(this.view.menuBarView),this.fire("ready")}destroy(){super.destroy();const e=this.view,t=this.editor.editing.view;t.getDomRoot(e.editable.name)&&t.detachDomRoot(e.editable.name),e.destroy()}_initToolbar(){const e=this.editor,t=this.view;t.toolbar.fillFromConfig(e.config.get("toolbar"),this.componentFactory),this.addToolbar(t.toolbar)}_initPlaceholder(){const e=this.editor,t=e.editing.view,o=t.document.getRoot(),n=e.config.get("placeholder");if(n){const e="string"==typeof n?n:n[o.rootName];e&&(o.placeholder=e)}ss({view:t,element:o,isDirectHost:!1,keepOnFocus:!0})}}class aw extends lk{constructor(e,t,o={}){super(e),this.toolbar=new af(e,{shouldGroupWhenFull:o.shouldToolbarGroupWhenFull}),this.menuBarView=new rw(e),this.editable=new dk(e,t,o.editableElement,{label:o.label}),this.toolbar.extendTemplate({attributes:{class:["ck-reset_all","ck-rounded-corners"],dir:e.uiLanguageDirection}}),this.menuBarView.extendTemplate({attributes:{class:["ck-reset_all","ck-rounded-corners"],dir:e.uiLanguageDirection}})}render(){super.render(),this.registerChild([this.menuBarView,this.toolbar,this.editable])}}class lw extends(cp(ap)){static get editorName(){return"DecoupledEditor"}constructor(e,t={}){if(!cw(e)&&void 0!==t.initialData)throw new S("editor-create-initial-data",null);super(t),void 0===this.config.get("initialData")&&this.config.set("initialData",function(e){return cw(e)?(t=e,t instanceof HTMLTextAreaElement?t.value:t.innerHTML):e;var t}(e)),cw(e)&&(this.sourceElement=e,function(e,t){if(t.ckeditorInstance)throw new S("editor-source-element-already-used",e);t.ckeditorInstance=e,e.once("destroy",(()=>{delete t.ckeditorInstance}))}(this,e)),this.model.document.createRoot();const o=!this.config.get("toolbar.shouldNotGroupWhenFull"),n=new aw(this.locale,this.editing.view,{editableElement:this.sourceElement,shouldToolbarGroupWhenFull:o,label:this.config.get("label")});this.ui=new sw(this,n)}destroy(){const e=this.getData();return this.ui.destroy(),super.destroy().then((()=>{this.sourceElement&&this.updateSourceElement(e)}))}static create(e,t={}){return new Promise((o=>{if(cw(e)&&"TEXTAREA"===e.tagName)throw new S("editor-wrong-element",null);const n=new this(e,t);o(n.initPlugins().then((()=>n.ui.init())).then((()=>n.data.init(n.config.get("initialData")))).then((()=>n.fire("ready"))).then((()=>n)))}))}}function cw(e){return Tn(e)}class dw extends(V()){constructor(){super(...arguments),this._stack=[]}add(e,t){const o=this._stack,n=o[0];this._insertDescriptor(e);const i=o[0];n===i||uw(n,i)||this.fire("change:top",{oldDescriptor:n,newDescriptor:i,writer:t})}remove(e,t){const o=this._stack,n=o[0];this._removeDescriptor(e);const i=o[0];n===i||uw(n,i)||this.fire("change:top",{oldDescriptor:n,newDescriptor:i,writer:t})}_insertDescriptor(e){const t=this._stack,o=t.findIndex((t=>t.id===e.id));if(uw(e,t[o]))return;o>-1&&t.splice(o,1);let n=0;for(;t[n]&&hw(t[n],e);)n++;t.splice(n,0,e)}_removeDescriptor(e){const t=this._stack,o=t.findIndex((t=>t.id===e));o>-1&&t.splice(o,1)}}function uw(e,t){return e&&t&&e.priority==t.priority&&pw(e.classes)==pw(t.classes)}function hw(e,t){return e.priority>t.priority||!(e.prioritypw(t.classes)}function pw(e){return Array.isArray(e)?e.sort().join(","):e}const mw="widget-type-around";function gw(e,t,o){return!!e&&ww(e)&&!o.isInline(t)}function fw(e){return e.getAttribute(mw)}const bw='',kw="ck-widget_selected";function ww(e){return!!e.is("element")&&!!e.getCustomProperty("widget")}function _w(e,t,o={}){if(!e.is("containerElement"))throw new S("widget-to-widget-wrong-element-type",null,{element:e});return t.setAttribute("contenteditable","false",e),t.addClass("ck-widget",e),t.setCustomProperty("widget",!0,e),e.getFillerOffset=Ew,t.setCustomProperty("widgetLabel",[],e),o.label&&function(e,t){const o=e.getCustomProperty("widgetLabel");o.push(t)}(e,o.label),o.hasSelectionHandle&&function(e,t){const o=t.createUIElement("div",{class:"ck ck-widget__selection-handle"},(function(e){const t=this.toDomElement(e),o=new $p;return o.set("content",bw),o.render(),t.appendChild(o.element),t}));t.insert(t.createPositionAt(e,0),o),t.addClass(["ck-widget_with-selection-handle"],e)}(e,t),Cw(e,t),e}function yw(e,t,o){if(t.classes&&o.addClass(Si(t.classes),e),t.attributes)for(const n in t.attributes)o.setAttribute(n,t.attributes[n],e)}function Aw(e,t,o){if(t.classes&&o.removeClass(Si(t.classes),e),t.attributes)for(const n in t.attributes)o.removeAttribute(n,e)}function Cw(e,t,o=yw,n=Aw){const i=new dw;i.on("change:top",((t,i)=>{i.oldDescriptor&&n(e,i.oldDescriptor,i.writer),i.newDescriptor&&o(e,i.newDescriptor,i.writer)}));t.setCustomProperty("addHighlight",((e,t,o)=>i.add(t,o)),e),t.setCustomProperty("removeHighlight",((e,t,o)=>i.remove(t,o)),e)}function vw(e,t,o={}){return t.addClass(["ck-editor__editable","ck-editor__nested-editable"],e),t.setAttribute("role","textbox",e),t.setAttribute("tabindex","-1",e),o.label&&t.setAttribute("aria-label",o.label,e),t.setAttribute("contenteditable",e.isReadOnly?"false":"true",e),e.on("change:isReadOnly",((o,n,i)=>{t.setAttribute("contenteditable",i?"false":"true",e)})),e.on("change:isFocused",((o,n,i)=>{i?t.addClass("ck-editor__nested-editable_focused",e):t.removeClass("ck-editor__nested-editable_focused",e)})),Cw(e,t),e}function xw(e,t){const o=e.getSelectedElement();if(o){const n=fw(e);if(n)return t.createRange(t.createPositionAt(o,n))}return t.schema.findOptimalInsertionRange(e)}function Ew(){return null}function Dw(e){const t=e=>{const{width:t,paddingLeft:o,paddingRight:n}=e.ownerDocument.defaultView.getComputedStyle(e);return parseFloat(t)-(parseFloat(o)||0)-(parseFloat(n)||0)},o=e.parentElement;if(!o)return 0;let n=t(o);let i=0,r=o;for(;isNaN(n);){if(r=r.parentElement,++i>5)return 0;n=t(r)}return n}class Bw extends br{static get pluginName(){return"OPMacroToc"}static get buttonName(){return"insertToc"}init(){const e=this.editor,t=e.model,o=e.conversion;t.schema.register("op-macro-toc",{allowWhere:"$block",isBlock:!0,isLimit:!0}),o.for("upcast").elementToElement({view:{name:"macro",classes:"toc"},model:"op-macro-toc"}),o.for("editingDowncast").elementToElement({model:"op-macro-toc",view:(e,{writer:t})=>_w(this.createTocViewElement(t),t,{label:this.label})}),o.for("dataDowncast").elementToElement({model:"op-macro-toc",view:(e,{writer:t})=>this.createTocDataElement(t)}),e.ui.componentFactory.add(Bw.buttonName,(t=>{const o=new Kp(t);return o.set({label:this.label,withText:!0}),o.on("execute",(()=>{e.model.change((t=>{const o=t.createElement("op-macro-toc",{});e.model.insertContent(o,e.model.document.selection)}))})),o}))}get label(){return window.I18n.t("js.editor.macro.toc")}createTocViewElement(e){const t=e.createText(this.label),o=e.createContainerElement("div");return e.insert(e.createPositionAt(o,0),t),o}createTocDataElement(e){return e.createContainerElement("macro",{class:"toc"})}}const Sw=Symbol("isOPEmbeddedTable");function Tw(e){const t=e.getSelectedElement();return!(!t||!function(e){return!!e.getCustomProperty(Sw)&&ww(e)}(t))}function Iw(e){return _.get(e.config,"_config.openProject.context.resource")}function Pw(e){return _.get(e.config,"_config.openProject.pluginContext")}function Fw(e,t){return Pw(e).services[t]}function Rw(e){return Fw(e,"pathHelperService")}function Mw(e){return Fw(e,"i18n")}class zw extends br{static get pluginName(){return"EmbeddedTableEditing"}static get buttonName(){return"insertEmbeddedTable"}init(){const e=this.editor,t=e.model,o=e.conversion,n=Pw(e);this.text={button:window.I18n.t("js.editor.macro.embedded_table.button"),macro_text:window.I18n.t("js.editor.macro.embedded_table.text")},t.schema.register("op-macro-embedded-table",{allowWhere:"$block",allowAttributes:["opEmbeddedTableQuery"],isBlock:!0,isObject:!0}),o.for("upcast").elementToElement({view:{name:"macro",classes:"embedded-table"},model:(e,{writer:t})=>{const o=e.getAttribute("data-query-props");return t.createElement("op-macro-embedded-table",{opEmbeddedTableQuery:o?JSON.parse(o):{}})}}),o.for("editingDowncast").elementToElement({model:"op-macro-embedded-table",view:(e,{writer:t})=>{return o=this.createEmbeddedTableView(t),n=t,this.label,n.setCustomProperty(Sw,!0,o),_w(o,n,{label:"your label here"});var o,n}}),o.for("dataDowncast").elementToElement({model:"op-macro-embedded-table",view:(e,{writer:t})=>this.createEmbeddedTableDataElement(e,t)}),e.ui.componentFactory.add(zw.buttonName,(t=>{const o=new Kp(t);return o.set({label:this.text.button,withText:!0}),o.on("execute",(()=>n.runInZone((()=>{n.services.externalQueryConfiguration.show({currentQuery:{},callback:t=>e.model.change((o=>{const n=o.createElement("op-macro-embedded-table",{opEmbeddedTableQuery:t});e.model.insertContent(n,e.model.document.selection)}))})})))),o}))}createEmbeddedTableView(e){const t=e.createText(this.text.macro_text),o=e.createContainerElement("div");return e.insert(e.createPositionAt(o,0),t),o}createEmbeddedTableDataElement(e,t){const o=e.getAttribute("opEmbeddedTableQuery")||{};return t.createContainerElement("macro",{class:"embedded-table","data-query-props":JSON.stringify(o)})}}class Ow{constructor(e,t=20){this._batch=null,this.model=e,this._size=0,this.limit=t,this._isLocked=!1,this._changeCallback=(e,t)=>{t.isLocal&&t.isUndoable&&t!==this._batch&&this._reset(!0)},this._selectionChangeCallback=()=>{this._reset()},this.model.document.on("change",this._changeCallback),this.model.document.selection.on("change:range",this._selectionChangeCallback),this.model.document.selection.on("change:attribute",this._selectionChangeCallback)}get batch(){return this._batch||(this._batch=this.model.createBatch({isTyping:!0})),this._batch}get size(){return this._size}input(e){this._size+=e,this._size>=this.limit&&this._reset(!0)}get isLocked(){return this._isLocked}lock(){this._isLocked=!0}unlock(){this._isLocked=!1}destroy(){this.model.document.off("change",this._changeCallback),this.model.document.selection.off("change:range",this._selectionChangeCallback),this.model.document.selection.off("change:attribute",this._selectionChangeCallback)}_reset(e=!1){this.isLocked&&!e||(this._batch=null,this._size=0)}}class Nw extends wr{constructor(e,t){super(e),this._buffer=new Ow(e.model,t),this._isEnabledBasedOnSelection=!1}get buffer(){return this._buffer}destroy(){super.destroy(),this._buffer.destroy()}execute(e={}){const t=this.editor.model,o=t.document,n=e.text||"",i=n.length;let r=o.selection;if(e.selection?r=e.selection:e.range&&(r=t.createSelection(e.range)),!t.canEditAt(r))return;const s=e.resultRange;t.enqueueChange(this._buffer.batch,(e=>{this._buffer.lock();const a=Array.from(o.selection.getAttributes());t.deleteContent(r),n&&t.insertContent(e.createText(n,a),r),s?e.setSelection(s):r.is("documentSelection")||e.setSelection(r),this._buffer.unlock(),this._buffer.input(i)}))}}const Vw=["insertText","insertReplacementText"],Lw=[...Vw,"insertCompositionText"];class Hw extends Xa{constructor(e){super(e),this.focusObserver=e.getObserver(jl);const t=c.isAndroid?Lw:Vw,o=e.document;o.on("beforeinput",((n,i)=>{if(!this.isEnabled)return;const{data:r,targetRanges:s,inputType:a,domEvent:l}=i;if(!t.includes(a))return;this.focusObserver.flush();const c=new v(o,"insertText");o.fire(c,new ol(e,l,{text:r,selection:e.createSelection(s)})),c.stop.called&&n.stop()})),c.isAndroid||o.on("compositionend",((t,{data:n,domEvent:i})=>{this.isEnabled&&n&&o.fire("insertText",new ol(e,i,{text:n}))}),{priority:"lowest"})}observe(){}stopObserving(){}}class jw extends br{static get pluginName(){return"Input"}static get isOfficialPlugin(){return!0}init(){const e=this.editor,t=e.model,o=e.editing.view,n=e.editing.mapper,i=t.document.selection;this._compositionQueue=new qw(e),o.addObserver(Hw);const r=new Nw(e,e.config.get("typing.undoStep")||20);e.commands.add("insertText",r),e.commands.add("input",r),this.listenTo(o.document,"insertText",((r,s)=>{o.document.isComposing||s.preventDefault(),c.isAndroid&&o.document.isComposing&&this._compositionQueue.flush("next beforeinput");const{text:a,selection:l}=s;let d;d=l?Array.from(l.getRanges()).map((e=>n.toModelRange(e))):Array.from(i.getRanges());let u=a;if(c.isAndroid){const e=Array.from(d[0].getItems()).reduce(((e,t)=>e+(t.is("$textProxy")?t.data:"")),"");if(e&&(e.length<=u.length?u.startsWith(e)&&(u=u.substring(e.length),d[0].start=d[0].start.getShiftedBy(e.length)):e.startsWith(u)&&(d[0].start=d[0].start.getShiftedBy(u.length),u="")),0==u.length&&d[0].isCollapsed)return}const h={text:u,selection:t.createSelection(d)};c.isAndroid&&o.document.isComposing?this._compositionQueue.push(h):(e.execute("insertText",h),o.scrollToTheSelection())})),c.isAndroid?this.listenTo(o.document,"keydown",((e,n)=>{!i.isCollapsed&&229==n.keyCode&&o.document.isComposing&&$w(t,r)})):this.listenTo(o.document,"compositionstart",(()=>{i.isCollapsed||$w(t,r)})),c.isAndroid?(this.listenTo(o.document,"mutations",((e,{mutations:t})=>{if(o.document.isComposing)for(const{node:e}of t){const t=Uw(e,n),o=n.toModelElement(t);if(this._compositionQueue.isComposedElement(o))return void this._compositionQueue.flush("mutations")}})),this.listenTo(o.document,"compositionend",(()=>{this._compositionQueue.flush("composition end")})),this.listenTo(o.document,"compositionend",(()=>{const e=[];for(const t of this._compositionQueue.flushComposedElements()){const o=n.toViewElement(t);o&&e.push({type:"children",node:o})}e.length&&o.document.fire("mutations",{mutations:e})}),{priority:"lowest"})):this.listenTo(o.document,"compositionend",(()=>{o.document.fire("mutations",{mutations:[]})}),{priority:"lowest"})}destroy(){super.destroy(),this._compositionQueue.destroy()}}class qw{constructor(e){this.flushDebounced=bl((()=>this.flush("timeout")),50),this._queue=[],this._compositionElements=new Set,this.editor=e}destroy(){for(this.flushDebounced.cancel(),this._compositionElements.clear();this._queue.length;)this.shift()}get length(){return this._queue.length}push(e){const t={text:e.text};if(e.selection){t.selectionRanges=[];for(const o of e.selection.getRanges())t.selectionRanges.push(vc.fromRange(o)),this._compositionElements.add(o.start.parent)}this._queue.push(t),this.flushDebounced()}shift(){const e=this._queue.shift(),t={text:e.text};if(e.selectionRanges){const o=e.selectionRanges.map((e=>function(e){const t=e.toRange();if(e.detach(),"$graveyard"==t.root.rootName)return null;return t}(e))).filter((e=>!!e));o.length&&(t.selection=this.editor.model.createSelection(o))}return t}flush(e){const t=this.editor,o=t.model,n=t.editing.view;if(this.flushDebounced.cancel(),!this._queue.length)return;const i=t.commands.get("insertText").buffer;o.enqueueChange(i.batch,(()=>{for(i.lock();this._queue.length;){const e=this.shift();t.execute("insertText",e)}i.unlock()})),n.scrollToTheSelection()}isComposedElement(e){return this._compositionElements.has(e)}flushComposedElements(){const e=Array.from(this._compositionElements);return this._compositionElements.clear(),e}}function $w(e,t){if(!t.isEnabled)return;const o=t.buffer;o.lock(),e.enqueueChange(o.batch,(()=>{e.deleteContent(e.document.selection)})),o.unlock()}function Uw(e,t){let o=e.is("$text")?e.parent:e;for(;!t.toModelElement(o);)o=o.parent;return o}class Ww extends wr{constructor(e,t){super(e),this.direction=t,this._buffer=new Ow(e.model,e.config.get("typing.undoStep")),this._isEnabledBasedOnSelection=!1}get buffer(){return this._buffer}execute(e={}){const t=this.editor.model,o=t.document;t.enqueueChange(this._buffer.batch,(n=>{this._buffer.lock();const i=n.createSelection(e.selection||o.selection);if(!t.canEditAt(i))return;const r=e.sequence||1,s=i.isCollapsed;if(i.isCollapsed&&t.modifySelection(i,{direction:this.direction,unit:e.unit,treatEmojiAsSingleUnit:!0}),this._shouldEntireContentBeReplacedWithParagraph(r))return void this._replaceEntireContentWithParagraph(n);if(this._shouldReplaceFirstBlockWithParagraph(i,r))return void this.editor.execute("paragraph",{selection:i});if(i.isCollapsed)return;let a=0;i.getFirstRange().getMinimalFlatRanges().forEach((e=>{a+=re(e.getWalker({singleCharacters:!0,ignoreElementEnd:!0,shallow:!0}))})),t.deleteContent(i,{doNotResetEntireContent:s,direction:this.direction}),this._buffer.input(a),n.setSelection(i),this._buffer.unlock()}))}_shouldEntireContentBeReplacedWithParagraph(e){if(e>1)return!1;const t=this.editor.model,o=t.document.selection,n=t.schema.getLimitElement(o);if(!(o.isCollapsed&&o.containsEntireContent(n)))return!1;if(!t.schema.checkChild(n,"paragraph"))return!1;const i=n.getChild(0);return!i||!i.is("element","paragraph")}_replaceEntireContentWithParagraph(e){const t=this.editor.model,o=t.document.selection,n=t.schema.getLimitElement(o),i=e.createElement("paragraph");e.remove(e.createRangeIn(n)),e.insert(i,n),e.setSelection(i,0)}_shouldReplaceFirstBlockWithParagraph(e,t){const o=this.editor.model;if(t>1||"backward"!=this.direction)return!1;if(!e.isCollapsed)return!1;const n=e.getFirstPosition(),i=o.schema.getLimitElement(n),r=i.getChild(0);return n.parent==r&&(!!e.containsEntireContent(r)&&(!!o.schema.checkChild(i,"paragraph")&&"paragraph"!=r.name))}}const Gw="word",Kw="selection",Zw="backward",Jw="forward",Yw={deleteContent:{unit:Kw,direction:Zw},deleteContentBackward:{unit:"codePoint",direction:Zw},deleteWordBackward:{unit:Gw,direction:Zw},deleteHardLineBackward:{unit:Kw,direction:Zw},deleteSoftLineBackward:{unit:Kw,direction:Zw},deleteContentForward:{unit:"character",direction:Jw},deleteWordForward:{unit:Gw,direction:Jw},deleteHardLineForward:{unit:Kw,direction:Jw},deleteSoftLineForward:{unit:Kw,direction:Jw}};class Qw extends Xa{constructor(e){super(e);const t=e.document;let o=0;t.on("keydown",(()=>{o++})),t.on("keyup",(()=>{o=0})),t.on("beforeinput",((n,i)=>{if(!this.isEnabled)return;const{targetRanges:r,domEvent:s,inputType:a}=i,l=Yw[a];if(!l)return;const d={direction:l.direction,unit:l.unit,sequence:o};d.unit==Kw&&(d.selectionToRemove=e.createSelection(r[0])),"deleteContentBackward"===a&&(c.isAndroid&&(d.sequence=1),function(e){if(1!=e.length||e[0].isCollapsed)return!1;const t=e[0].getWalker({direction:"backward",singleCharacters:!0,ignoreElementEnd:!0});let o=0;for(const{nextPosition:e,item:n}of t){if(e.parent.is("$text")){const t=e.parent.data,n=e.offset;if(hr(t,n)||pr(t,n)||gr(t,n))continue;o++}else(n.is("containerElement")||n.is("emptyElement"))&&o++;if(o>1)return!0}return!1}(r)&&(d.unit=Kw,d.selectionToRemove=e.createSelection(r)));const u=new Zs(t,"delete",r[0]);t.fire(u,new ol(e,s,d)),u.stop.called&&n.stop()})),c.isBlink&&function(e){const t=e.view,o=t.document;let n=null,i=!1;function r(e){return e==Ai.backspace||e==Ai.delete}function s(e){return e==Ai.backspace?Zw:Jw}o.on("keydown",((e,{keyCode:t})=>{n=t,i=!1})),o.on("keyup",((a,{keyCode:l,domEvent:c})=>{const d=o.selection,u=e.isEnabled&&l==n&&r(l)&&!d.isCollapsed&&!i;if(n=null,u){const e=d.getFirstRange(),n=new Zs(o,"delete",e),i={unit:Kw,direction:s(l),selectionToRemove:d};o.fire(n,new ol(t,c,i))}})),o.on("beforeinput",((e,{inputType:t})=>{const o=Yw[t];r(n)&&o&&o.direction==s(n)&&(i=!0)}),{priority:"high"}),o.on("beforeinput",((e,{inputType:t,data:o})=>{n==Ai.delete&&"insertText"==t&&""==o&&e.stop()}),{priority:"high"})}(this)}observe(){}stopObserving(){}}class Xw extends br{static get pluginName(){return"Delete"}static get isOfficialPlugin(){return!0}init(){const e=this.editor,t=e.editing.view,o=t.document,n=e.model.document;t.addObserver(Qw),this._undoOnBackspace=!1;const i=new Ww(e,"forward");e.commands.add("deleteForward",i),e.commands.add("forwardDelete",i),e.commands.add("delete",new Ww(e,"backward")),this.listenTo(o,"delete",((n,i)=>{o.isComposing||i.preventDefault();const{direction:r,sequence:s,selectionToRemove:a,unit:l}=i,c="forward"===r?"deleteForward":"delete",d={sequence:s};if("selection"==l){const t=Array.from(a.getRanges()).map((t=>e.editing.mapper.toModelRange(t)));d.selection=e.model.createSelection(t)}else d.unit=l;e.execute(c,d),t.scrollToTheSelection()}),{priority:"low"}),this.listenTo(o,"keydown",((t,i)=>{if(o.isComposing||i.keyCode!=Ai.backspace||!n.selection.isCollapsed)return;const r=e.model.schema.getLimitElement(n.selection);e.model.createPositionAt(r,0).isTouching(n.selection.getFirstPosition())&&i.preventDefault()})),this.editor.plugins.has("UndoEditing")&&(this.listenTo(o,"delete",((t,o)=>{this._undoOnBackspace&&"backward"==o.direction&&1==o.sequence&&"codePoint"==o.unit&&(this._undoOnBackspace=!1,e.execute("undo"),o.preventDefault(),t.stop())}),{context:"$capture"}),this.listenTo(n,"change",(()=>{this._undoOnBackspace=!1})))}requestUndoOnBackspace(){this.editor.plugins.has("UndoEditing")&&(this._undoOnBackspace=!0)}}class e_ extends br{static get requires(){return[jw,Xw]}static get pluginName(){return"Typing"}static get isOfficialPlugin(){return!0}}function t_(e,t){let o=e.start;return{text:Array.from(e.getWalker({ignoreElementEnd:!1})).reduce(((e,{item:n})=>n.is("$text")||n.is("$textProxy")?e+n.data:(o=t.createPositionAfter(n),"")),""),range:t.createRange(o,e.end)}}class o_ extends(X()){constructor(e,t){super(),this.model=e,this.testCallback=t,this._hasMatch=!1,this.set("isEnabled",!0),this.on("change:isEnabled",(()=>{this.isEnabled?this._startListening():(this.stopListening(e.document.selection),this.stopListening(e.document))})),this._startListening()}get hasMatch(){return this._hasMatch}_startListening(){const e=this.model.document;this.listenTo(e.selection,"change:range",((t,{directChange:o})=>{o&&(e.selection.isCollapsed?this._evaluateTextBeforeSelection("selection"):this.hasMatch&&(this.fire("unmatched"),this._hasMatch=!1))})),this.listenTo(e,"change:data",((e,t)=>{!t.isUndo&&t.isLocal&&this._evaluateTextBeforeSelection("data",{batch:t})}))}_evaluateTextBeforeSelection(e,t={}){const o=this.model,n=o.document.selection,i=o.createRange(o.createPositionAt(n.focus.parent,0),n.focus),{text:r,range:s}=t_(i,o),a=this.testCallback(r);if(!a&&this.hasMatch&&this.fire("unmatched"),this._hasMatch=!!a,a){const o=Object.assign(t,{text:r,range:s});"object"==typeof a&&Object.assign(o,a),this.fire(`matched:${e}`,o)}}}class n_ extends br{static get pluginName(){return"TwoStepCaretMovement"}static get isOfficialPlugin(){return!0}constructor(e){super(e),this._isNextGravityRestorationSkipped=!1,this.attributes=new Set,this._overrideUid=null}init(){const e=this.editor,t=e.model,o=e.editing.view,n=e.locale,i=t.document.selection;this.listenTo(o.document,"arrowKey",((e,t)=>{if(!i.isCollapsed)return;if(t.shiftKey||t.altKey||t.ctrlKey)return;const o=t.keyCode==Ai.arrowright,r=t.keyCode==Ai.arrowleft;if(!o&&!r)return;const s=n.contentLanguageDirection;let a=!1;a="ltr"===s&&o||"rtl"===s&&r?this._handleForwardMovement(t):this._handleBackwardMovement(t),!0===a&&e.stop()}),{context:"$text",priority:"highest"}),this.listenTo(i,"change:range",((e,t)=>{this._isNextGravityRestorationSkipped?this._isNextGravityRestorationSkipped=!1:this._isGravityOverridden&&(!t.directChange&&c_(i.getFirstPosition(),this.attributes)||this._restoreGravity())})),this._enableClickingAfterNode(),this._enableInsertContentSelectionAttributesFixer(),this._handleDeleteContentAfterNode()}registerAttribute(e){this.attributes.add(e)}_handleForwardMovement(e){const t=this.attributes,o=this.editor.model,n=o.document.selection,i=n.getFirstPosition();return!this._isGravityOverridden&&((!i.isAtStart||!i_(n,t))&&(!!c_(i,t)&&(a_(e),i_(n,t)&&c_(i,t,!0)?s_(o,t):this._overrideGravity(),!0)))}_handleBackwardMovement(e){const t=this.attributes,o=this.editor.model,n=o.document.selection,i=n.getFirstPosition();return this._isGravityOverridden?(a_(e),this._restoreGravity(),c_(i,t,!0)?s_(o,t):r_(o,t,i),!0):i.isAtStart?!!i_(n,t)&&(a_(e),r_(o,t,i),!0):!i_(n,t)&&c_(i,t,!0)?(a_(e),r_(o,t,i),!0):!!l_(i,t)&&(i.isAtEnd&&!i_(n,t)&&c_(i,t)?(a_(e),r_(o,t,i),!0):(this._isNextGravityRestorationSkipped=!0,this._overrideGravity(),!1))}_enableClickingAfterNode(){const e=this.editor,t=e.model,o=t.document.selection,n=e.editing.view.document;e.editing.view.addObserver(eh),e.editing.view.addObserver(th);let i=!1,r=!1;this.listenTo(n,"touchstart",(()=>{r=!1,i=!0})),this.listenTo(n,"mousedown",(()=>{r=!0})),this.listenTo(n,"selectionChange",(()=>{const e=this.attributes;if(!r&&!i)return;if(r=!1,i=!1,!o.isCollapsed)return;if(!i_(o,e))return;const n=o.getFirstPosition();c_(n,e)&&(n.isAtStart||c_(n,e,!0)?s_(t,e):this._isGravityOverridden||this._overrideGravity())}))}_enableInsertContentSelectionAttributesFixer(){const e=this.editor.model,t=e.document.selection,o=this.attributes;this.listenTo(e,"insertContent",(()=>{const n=t.getFirstPosition();i_(t,o)&&c_(n,o)&&s_(e,o)}),{priority:"low"})}_handleDeleteContentAfterNode(){const e=this.editor,t=e.model,o=t.document.selection,n=e.editing.view;let i=!1,r=!1;this.listenTo(n.document,"delete",((e,t)=>{i="backward"===t.direction}),{priority:"high"}),this.listenTo(t,"deleteContent",(()=>{if(!i)return;const e=o.getFirstPosition();r=i_(o,this.attributes)&&!l_(e,this.attributes)}),{priority:"high"}),this.listenTo(t,"deleteContent",(()=>{i&&(i=!1,r||e.model.enqueueChange((()=>{const e=o.getFirstPosition();i_(o,this.attributes)&&c_(e,this.attributes)&&(e.isAtStart||c_(e,this.attributes,!0)?s_(t,this.attributes):this._isGravityOverridden||this._overrideGravity())})))}),{priority:"low"})}get _isGravityOverridden(){return!!this._overrideUid}_overrideGravity(){this._overrideUid=this.editor.model.change((e=>e.overrideSelectionGravity()))}_restoreGravity(){this.editor.model.change((e=>{e.restoreSelectionGravity(this._overrideUid),this._overrideUid=null}))}}function i_(e,t){for(const o of t)if(e.hasAttribute(o))return!0;return!1}function r_(e,t,o){const n=o.nodeBefore;e.change((o=>{if(n){const t=[],i=e.schema.isObject(n)&&e.schema.isInline(n);for(const[o,r]of n.getAttributes())!e.schema.checkAttribute("$text",o)||i&&!1===e.schema.getAttributeProperties(o).copyFromObject||t.push([o,r]);o.setSelectionAttribute(t)}else o.removeSelectionAttribute(t)}))}function s_(e,t){e.change((e=>{e.removeSelectionAttribute(t)}))}function a_(e){e.preventDefault()}function l_(e,t){return c_(e.getShiftedBy(-1),t)}function c_(e,t,o=!1){const{nodeBefore:n,nodeAfter:i}=e;for(const e of t){const t=n?n.getAttribute(e):void 0,r=i?i.getAttribute(e):void 0;if((!o||void 0!==t&&void 0!==r)&&r!==t)return!0}return!1}d_('"'),d_("'"),d_("'"),d_('"'),d_('"'),d_("'");function d_(e){return new RegExp(`(^|\\s)(${e})([^${e}]*)(${e})$`)}function u_(e,t,o,n){return n.createRange(h_(e,t,o,!0,n),h_(e,t,o,!1,n))}function h_(e,t,o,n,i){let r=e.textNode||(n?e.nodeBefore:e.nodeAfter),s=null;for(;r&&r.getAttribute(t)==o;)s=r,r=n?r.previousSibling:r.nextSibling;return s?i.createPositionAt(s,n?"before":"after"):e}function p_(e,t,o,n){const i=e.editing.view,r=new Set;i.document.registerPostFixer((i=>{const s=e.model.document.selection;let a=!1;if(s.hasAttribute(t)){const l=u_(s.getFirstPosition(),t,s.getAttribute(t),e.model),c=e.editing.mapper.toViewRange(l);for(const e of c.getItems())e.is("element",o)&&!e.hasClass(n)&&(i.addClass(n,e),r.add(e),a=!0)}return a})),e.conversion.for("editingDowncast").add((e=>{function t(){i.change((e=>{for(const t of r.values())e.removeClass(n,t),r.delete(t)}))}e.on("insert",t,{priority:"highest"}),e.on("remove",t,{priority:"highest"}),e.on("attribute",t,{priority:"highest"}),e.on("selection",t,{priority:"highest"})}))}function*m_(e,t){for(const o of t)o&&e.getAttributeProperties(o[0]).copyOnEnter&&(yield o)}class g_ extends wr{execute(){this.editor.model.change((e=>{this.enterBlock(e),this.fire("afterExecute",{writer:e})}))}enterBlock(e){const t=this.editor.model,o=t.document.selection,n=t.schema,i=o.isCollapsed,r=o.getFirstRange(),s=r.start.parent,a=r.end.parent;if(n.isLimit(s)||n.isLimit(a))return i||s!=a||t.deleteContent(o),!1;if(i){const t=m_(e.model.schema,o.getAttributes());return f_(e,r.start),e.setSelectionAttribute(t),!0}{const n=!(r.start.isAtStart&&r.end.isAtEnd),i=s==a;if(t.deleteContent(o,{leaveUnmerged:n}),n){if(i)return f_(e,o.focus),!0;e.setSelection(a,0)}}return!1}}function f_(e,t){e.split(t),e.setSelection(t.parent.nextSibling,0)}const b_={insertParagraph:{isSoft:!1},insertLineBreak:{isSoft:!0}};class k_ extends Xa{constructor(e){super(e);const t=this.document;let o=!1;t.on("keydown",((e,t)=>{o=t.shiftKey})),t.on("beforeinput",((n,i)=>{if(!this.isEnabled)return;let r=i.inputType;c.isSafari&&o&&"insertParagraph"==r&&(r="insertLineBreak");const s=i.domEvent,a=b_[r];if(!a)return;const l=new Zs(t,"enter",i.targetRanges[0]);t.fire(l,new ol(e,s,{isSoft:a.isSoft})),l.stop.called&&n.stop()}))}observe(){}stopObserving(){}}class w_ extends br{static get pluginName(){return"Enter"}static get isOfficialPlugin(){return!0}init(){const e=this.editor,t=e.editing.view,o=t.document,n=this.editor.t;t.addObserver(k_),e.commands.add("enter",new g_(e)),this.listenTo(o,"enter",((n,i)=>{o.isComposing||i.preventDefault(),i.isSoft||(e.execute("enter"),t.scrollToTheSelection())}),{priority:"low"}),e.accessibility.addKeystrokeInfos({keystrokes:[{label:n("Insert a hard break (a new paragraph)"),keystroke:"Enter"}]})}}class __ extends wr{execute(){const e=this.editor.model,t=e.document;e.change((o=>{!function(e,t,o){const n=o.isCollapsed,i=o.getFirstRange(),r=i.start.parent,s=i.end.parent,a=r==s;if(n){const n=m_(e.schema,o.getAttributes());y_(e,t,i.end),t.removeSelectionAttribute(o.getAttributeKeys()),t.setSelectionAttribute(n)}else{const n=!(i.start.isAtStart&&i.end.isAtEnd);e.deleteContent(o,{leaveUnmerged:n}),a?y_(e,t,o.focus):n&&t.setSelection(s,0)}}(e,o,t.selection),this.fire("afterExecute",{writer:o})}))}refresh(){const e=this.editor.model,t=e.document;this.isEnabled=function(e,t){if(t.rangeCount>1)return!1;const o=t.anchor;if(!o||!e.checkChild(o,"softBreak"))return!1;const n=t.getFirstRange(),i=n.start.parent,r=n.end.parent;if((A_(i,e)||A_(r,e))&&i!==r)return!1;return!0}(e.schema,t.selection)}}function y_(e,t,o){const n=t.createElement("softBreak");e.insertContent(n,o),t.setSelection(n,"after")}function A_(e,t){return!e.is("rootElement")&&(t.isLimit(e)||A_(e.parent,t))}class C_ extends br{static get pluginName(){return"ShiftEnter"}static get isOfficialPlugin(){return!0}init(){const e=this.editor,t=e.model.schema,o=e.conversion,n=e.editing.view,i=n.document,r=this.editor.t;t.register("softBreak",{allowWhere:"$text",isInline:!0}),o.for("upcast").elementToElement({model:"softBreak",view:"br"}),o.for("downcast").elementToElement({model:"softBreak",view:(e,{writer:t})=>t.createEmptyElement("br")}),n.addObserver(k_),e.commands.add("shiftEnter",new __(e)),this.listenTo(i,"enter",((t,o)=>{i.isComposing||o.preventDefault(),o.isSoft&&(e.execute("shiftEnter"),n.scrollToTheSelection())}),{priority:"low"}),e.accessibility.addKeystrokeInfos({keystrokes:[{label:r("Insert a soft break (a <br> element)"),keystroke:"Shift+Enter"}]})}}var v_=i(6779),x_={attributes:{"data-cke":!0}};x_.setAttributes=Xr(),x_.insert=Yr().bind(null,"head"),x_.domAPI=Zr(),x_.insertStyleElement=ts();Gr()(v_.A,x_);v_.A&&v_.A.locals&&v_.A.locals;const E_=["before","after"],D_=(new DOMParser).parseFromString('',"image/svg+xml").firstChild,B_="ck-widget__type-around_disabled";class S_ extends br{constructor(){super(...arguments),this._currentFakeCaretModelElement=null}static get pluginName(){return"WidgetTypeAround"}static get isOfficialPlugin(){return!0}static get requires(){return[w_,Xw]}init(){const e=this.editor,t=e.editing.view;this.on("change:isEnabled",((o,n,i)=>{t.change((e=>{for(const o of t.document.roots)i?e.removeClass(B_,o):e.addClass(B_,o)})),i||e.model.change((e=>{e.removeSelectionAttribute(mw)}))})),this._enableTypeAroundUIInjection(),this._enableInsertingParagraphsOnButtonClick(),this._enableInsertingParagraphsOnEnterKeypress(),this._enableInsertingParagraphsOnTypingKeystroke(),this._enableTypeAroundFakeCaretActivationUsingKeyboardArrows(),this._enableDeleteIntegration(),this._enableInsertContentIntegration(),this._enableInsertObjectIntegration(),this._enableDeleteContentIntegration()}destroy(){super.destroy(),this._currentFakeCaretModelElement=null}_insertParagraph(e,t){const o=this.editor,n=o.editing.view,i=o.model.schema.getAttributesWithProperty(e,"copyOnReplace",!0);o.execute("insertParagraph",{position:o.model.createPositionAt(e,t),attributes:i}),n.focus(),n.scrollToTheSelection()}_listenToIfEnabled(e,t,o,n){this.listenTo(e,t,((...e)=>{this.isEnabled&&o(...e)}),n)}_insertParagraphAccordingToFakeCaretPosition(){const e=this.editor.model.document.selection,t=fw(e);if(!t)return!1;const o=e.getSelectedElement();return this._insertParagraph(o,t),!0}_enableTypeAroundUIInjection(){const e=this.editor,t=e.model.schema,o=e.locale.t,n={before:o("Insert paragraph before block"),after:o("Insert paragraph after block")};e.editing.downcastDispatcher.on("insert",((e,i,r)=>{const s=r.mapper.toViewElement(i.item);if(s&&gw(s,i.item,t)){!function(e,t,o){const n=e.createUIElement("div",{class:"ck ck-reset_all ck-widget__type-around"},(function(e){const o=this.toDomElement(e);return function(e,t){for(const o of E_){const n=new pp({tag:"div",attributes:{class:["ck","ck-widget__type-around__button",`ck-widget__type-around__button_${o}`],title:t[o],"aria-hidden":"true"},children:[e.ownerDocument.importNode(D_,!0)]});e.appendChild(n.render())}}(o,t),function(e){const t=new pp({tag:"div",attributes:{class:["ck","ck-widget__type-around__fake-caret"]}});e.appendChild(t.render())}(o),o}));e.insert(e.createPositionAt(o,"end"),n)}(r.writer,n,s);s.getCustomProperty("widgetLabel").push((()=>this.isEnabled?o("Press Enter to type after or press Shift + Enter to type before the widget"):""))}}),{priority:"low"})}_enableTypeAroundFakeCaretActivationUsingKeyboardArrows(){const e=this.editor,t=e.model,o=t.document.selection,n=t.schema,i=e.editing.view;function r(e){return`ck-widget_type-around_show-fake-caret_${e}`}this._listenToIfEnabled(i.document,"arrowKey",((e,t)=>{this._handleArrowKeyPress(e,t)}),{context:[ww,"$text"],priority:"high"}),this._listenToIfEnabled(o,"change:range",((t,o)=>{o.directChange&&e.model.change((e=>{e.removeSelectionAttribute(mw)}))})),this._listenToIfEnabled(t.document,"change:data",(()=>{const t=o.getSelectedElement();if(t){if(gw(e.editing.mapper.toViewElement(t),t,n))return}e.model.change((e=>{e.removeSelectionAttribute(mw)}))})),this._listenToIfEnabled(e.editing.downcastDispatcher,"selection",((e,t,o)=>{const i=o.writer;if(this._currentFakeCaretModelElement){const e=o.mapper.toViewElement(this._currentFakeCaretModelElement);e&&(i.removeClass(E_.map(r),e),this._currentFakeCaretModelElement=null)}const s=t.selection.getSelectedElement();if(!s)return;const a=o.mapper.toViewElement(s);if(!gw(a,s,n))return;const l=fw(t.selection);l&&(i.addClass(r(l),a),this._currentFakeCaretModelElement=s)})),this._listenToIfEnabled(e.ui.focusTracker,"change:isFocused",((t,o,n)=>{n||e.model.change((e=>{e.removeSelectionAttribute(mw)}))}))}_handleArrowKeyPress(e,t){const o=this.editor,n=o.model,i=n.document.selection,r=n.schema,s=o.editing.view,a=function(e,t){const o=Di(e,t);return"down"===o||"right"===o}(t.keyCode,o.locale.contentLanguageDirection),l=s.document.selection.getSelectedElement();let c;gw(l,o.editing.mapper.toModelElement(l),r)?c=this._handleArrowKeyPressOnSelectedWidget(a):i.isCollapsed?c=this._handleArrowKeyPressWhenSelectionNextToAWidget(a):t.shiftKey||(c=this._handleArrowKeyPressWhenNonCollapsedSelection(a)),c&&(t.preventDefault(),e.stop())}_handleArrowKeyPressOnSelectedWidget(e){const t=this.editor.model,o=fw(t.document.selection);return t.change((t=>{if(!o)return t.setSelectionAttribute(mw,e?"after":"before"),!0;if(!(o===(e?"after":"before")))return t.removeSelectionAttribute(mw),!0;return!1}))}_handleArrowKeyPressWhenSelectionNextToAWidget(e){const t=this.editor,o=t.model,n=o.schema,i=t.plugins.get("Widget"),r=i._getObjectElementNextToSelection(e);return!!gw(t.editing.mapper.toViewElement(r),r,n)&&(o.change((t=>{i._setSelectionOverElement(r),t.setSelectionAttribute(mw,e?"before":"after")})),!0)}_handleArrowKeyPressWhenNonCollapsedSelection(e){const t=this.editor,o=t.model,n=o.schema,i=t.editing.mapper,r=o.document.selection,s=e?r.getLastPosition().nodeBefore:r.getFirstPosition().nodeAfter;return!!gw(i.toViewElement(s),s,n)&&(o.change((t=>{t.setSelection(s,"on"),t.setSelectionAttribute(mw,e?"after":"before")})),!0)}_enableInsertingParagraphsOnButtonClick(){const e=this.editor,t=e.editing.view;this._listenToIfEnabled(t.document,"mousedown",((o,n)=>{const i=n.domTarget.closest(".ck-widget__type-around__button");if(!i)return;const r=function(e){return e.classList.contains("ck-widget__type-around__button_before")?"before":"after"}(i),s=function(e,t){const o=e.closest(".ck-widget");return t.mapDomToView(o)}(i,t.domConverter),a=e.editing.mapper.toModelElement(s);this._insertParagraph(a,r),n.preventDefault(),o.stop()}))}_enableInsertingParagraphsOnEnterKeypress(){const e=this.editor,t=e.model.document.selection,o=e.editing.view;this._listenToIfEnabled(o.document,"enter",((o,n)=>{if("atTarget"!=o.eventPhase)return;const i=t.getSelectedElement(),r=e.editing.mapper.toViewElement(i),s=e.model.schema;let a;this._insertParagraphAccordingToFakeCaretPosition()?a=!0:gw(r,i,s)&&(this._insertParagraph(i,n.isSoft?"before":"after"),a=!0),a&&(n.preventDefault(),o.stop())}),{context:ww})}_enableInsertingParagraphsOnTypingKeystroke(){const e=this.editor.editing.view.document;this._listenToIfEnabled(e,"insertText",((t,o)=>{this._insertParagraphAccordingToFakeCaretPosition()&&(o.selection=e.selection)}),{priority:"high"}),c.isAndroid?this._listenToIfEnabled(e,"keydown",((e,t)=>{229==t.keyCode&&this._insertParagraphAccordingToFakeCaretPosition()})):this._listenToIfEnabled(e,"compositionstart",(()=>{this._insertParagraphAccordingToFakeCaretPosition()}),{priority:"high"})}_enableDeleteIntegration(){const e=this.editor,t=e.editing.view,o=e.model,n=o.schema;this._listenToIfEnabled(t.document,"delete",((t,i)=>{if("atTarget"!=t.eventPhase)return;const r=fw(o.document.selection);if(!r)return;const s=i.direction,a=o.document.selection.getSelectedElement(),l="forward"==s;if("before"===r===l)e.execute("delete",{selection:o.createSelection(a,"on")});else{const t=n.getNearestSelectionRange(o.createPositionAt(a,r),s);if(t)if(t.isCollapsed){const i=o.createSelection(t.start);if(o.modifySelection(i,{direction:s}),i.focus.isEqual(t.start)){const e=function(e,t){let o=t;for(const n of t.getAncestors({parentFirst:!0})){if(n.childCount>1||e.isLimit(n))break;o=n}return o}(n,t.start.parent);o.deleteContent(o.createSelection(e,"on"),{doNotAutoparagraph:!0})}else o.change((o=>{o.setSelection(t),e.execute(l?"deleteForward":"delete")}))}else o.change((o=>{o.setSelection(t),e.execute(l?"deleteForward":"delete")}))}i.preventDefault(),t.stop()}),{context:ww})}_enableInsertContentIntegration(){const e=this.editor,t=this.editor.model,o=t.document.selection;this._listenToIfEnabled(e.model,"insertContent",((e,[n,i])=>{if(i&&!i.is("documentSelection"))return;const r=fw(o);return r?(e.stop(),t.change((e=>{const i=o.getSelectedElement(),s=t.createPositionAt(i,r),a=e.createSelection(s),l=t.insertContent(n,a);return e.setSelection(a),l}))):void 0}),{priority:"high"})}_enableInsertObjectIntegration(){const e=this.editor,t=this.editor.model.document.selection;this._listenToIfEnabled(e.model,"insertObject",((e,o)=>{const[,n,i={}]=o;if(n&&!n.is("documentSelection"))return;const r=fw(t);r&&(i.findOptimalPosition=r,o[3]=i)}),{priority:"high"})}_enableDeleteContentIntegration(){const e=this.editor,t=this.editor.model.document.selection;this._listenToIfEnabled(e.model,"deleteContent",((e,[o])=>{if(o&&!o.is("documentSelection"))return;fw(t)&&e.stop()}),{priority:"high"})}}function T_(e){const t=e.model;return(o,n)=>{const i=n.keyCode==Ai.arrowup,r=n.keyCode==Ai.arrowdown,s=n.shiftKey,a=t.document.selection;if(!i&&!r)return;const l=r;if(s&&function(e,t){return!e.isCollapsed&&e.isBackward==t}(a,l))return;const c=function(e,t,o){const n=e.model;if(o){const e=t.isCollapsed?t.focus:t.getLastPosition(),o=I_(n,e,"forward");if(!o)return null;const i=n.createRange(e,o),r=P_(n.schema,i,"backward");return r?n.createRange(e,r):null}{const e=t.isCollapsed?t.focus:t.getFirstPosition(),o=I_(n,e,"backward");if(!o)return null;const i=n.createRange(o,e),r=P_(n.schema,i,"forward");return r?n.createRange(r,e):null}}(e,a,l);if(c){if(c.isCollapsed){if(a.isCollapsed)return;if(s)return}(c.isCollapsed||function(e,t,o){const n=e.model,i=e.view.domConverter;if(o){const e=n.createSelection(t.start);n.modifySelection(e),e.focus.isAtEnd||t.start.isEqual(e.focus)||(t=n.createRange(e.focus,t.end))}const r=e.mapper.toViewRange(t),s=i.viewRangeToDom(r),a=Gn.getDomRangeRects(s);let l;for(const e of a)if(void 0!==l){if(Math.round(e.top)>=l)return!1;l=Math.max(l,Math.round(e.bottom))}else l=Math.round(e.bottom);return!0}(e,c,l))&&(t.change((e=>{const o=l?c.end:c.start;if(s){const n=t.createSelection(a.anchor);n.setFocus(o),e.setSelection(n)}else e.setSelection(o)})),o.stop(),n.preventDefault(),n.stopPropagation())}}}function I_(e,t,o){const n=e.schema,i=e.createRangeIn(t.root),r="forward"==o?"elementStart":"elementEnd";for(const{previousPosition:e,item:s,type:a}of i.getWalker({startPosition:t,direction:o})){if(n.isLimit(s)&&!n.isInline(s))return e;if(a==r&&n.isBlock(s))return null}return null}function P_(e,t,o){const n="backward"==o?t.end:t.start;if(e.checkChild(n,"$text"))return n;for(const{nextPosition:n}of t.getWalker({direction:o}))if(e.checkChild(n,"$text"))return n;return null}var F_=i(1216),R_={attributes:{"data-cke":!0}};R_.setAttributes=Xr(),R_.insert=Yr().bind(null,"head"),R_.domAPI=Zr(),R_.insertStyleElement=ts();Gr()(F_.A,R_);F_.A&&F_.A.locals&&F_.A.locals;class M_ extends br{constructor(){super(...arguments),this._previouslySelected=new Set}static get pluginName(){return"Widget"}static get isOfficialPlugin(){return!0}static get requires(){return[S_,Xw]}init(){const e=this.editor,t=e.editing.view,o=t.document,n=e.t;this.editor.editing.downcastDispatcher.on("selection",((t,o,n)=>{const i=n.writer,r=o.selection;if(r.isCollapsed)return;const s=r.getSelectedElement();if(!s)return;const a=e.editing.mapper.toViewElement(s);var l;ww(a)&&(n.consumable.consume(r,"selection")&&i.setSelection(i.createRangeOn(a),{fake:!0,label:(l=a,l.getCustomProperty("widgetLabel").reduce(((e,t)=>"function"==typeof t?e?e+". "+t():t():e?e+". "+t:t),""))}))})),this.editor.editing.downcastDispatcher.on("selection",((e,t,o)=>{this._clearPreviouslySelectedWidgets(o.writer);const n=o.writer,i=n.document.selection;let r=null;for(const e of i.getRanges())for(const t of e){const e=t.item;ww(e)&&!z_(e,r)&&(n.addClass(kw,e),this._previouslySelected.add(e),r=e)}}),{priority:"low"}),t.addObserver(eh),this.listenTo(o,"mousedown",((...e)=>this._onMousedown(...e))),this.listenTo(o,"arrowKey",((...e)=>{this._handleSelectionChangeOnArrowKeyPress(...e)}),{context:[ww,"$text"]}),this.listenTo(o,"arrowKey",((...e)=>{this._preventDefaultOnArrowKeyPress(...e)}),{context:"$root"}),this.listenTo(o,"arrowKey",T_(this.editor.editing),{context:"$text"}),this.listenTo(o,"delete",((e,t)=>{this._handleDelete("forward"==t.direction)&&(t.preventDefault(),e.stop())}),{context:"$root"}),this.listenTo(o,"tab",((e,t)=>{"atTarget"==e.eventPhase&&(t.shiftKey||this._selectFirstNestedEditable()&&(t.preventDefault(),e.stop()))}),{context:ww,priority:"low"}),this.listenTo(o,"tab",((e,t)=>{t.shiftKey&&this._selectAncestorWidget()&&(t.preventDefault(),e.stop())}),{priority:"low"}),this.listenTo(o,"keydown",((e,t)=>{t.keystroke==Ai.esc&&this._selectAncestorWidget()&&(t.preventDefault(),e.stop())}),{priority:"low"}),e.accessibility.addKeystrokeInfoGroup({id:"widget",label:n("Keystrokes that can be used when a widget is selected (for example: image, table, etc.)"),keystrokes:[{label:n("Move focus from an editable area back to the parent widget"),keystroke:"Esc"},{label:n("Insert a new paragraph directly after a widget"),keystroke:"Enter"},{label:n("Insert a new paragraph directly before a widget"),keystroke:"Shift+Enter"},{label:n("Move the caret to allow typing directly before a widget"),keystroke:[["arrowup"],["arrowleft"]]},{label:n("Move the caret to allow typing directly after a widget"),keystroke:[["arrowdown"],["arrowright"]]}]})}_onMousedown(e,t){const o=this.editor,n=o.editing.view,i=n.document;let r=t.target;if(!r)return;if(t.domEvent.detail>=3)return void(this._selectBlockContent(r)&&t.preventDefault());if(!ww(r)){const e=function(e){let t=e;for(;t;){if(t.is("editableElement")||ww(t))return t;t=t.parent}return null}(r);if(!e)return;if(ww(e))r=e;else{const e=function(e,t){const o=jn(t.domEvent);let n=null;n=o?e.domConverter.domRangeToView(o):e.createRange(e.createPositionAt(t.target,0));if(!n)return null;const i=n.start;if(!i.parent)return null;let r=i.parent;i.parent.is("editableElement")&&(i.isAtEnd&&i.nodeBefore?r=i.nodeBefore:i.isAtStart&&i.nodeAfter&&(r=i.nodeAfter));if(r.is("$text"))return r.parent;return r}(n,t);if(!e||!ww(e))return;r=e}}c.isAndroid&&t.preventDefault(),i.isFocused||n.focus();const s=o.editing.mapper.toModelElement(r);this._setSelectionOverElement(s)}_selectBlockContent(e){const t=this.editor,o=t.model,n=t.editing.mapper,i=o.schema,r=n.findMappedViewAncestor(this.editor.editing.view.createPositionAt(e,0)),s=function(e,t){for(const o of e.getAncestors({includeSelf:!0,parentFirst:!0})){if(t.checkChild(o,"$text"))return o;if(t.isLimit(o)&&!t.isObject(o))break}return null}(n.toModelElement(r),o.schema);return!!s&&(o.change((e=>{const t=i.isLimit(s)?null:function(e,t){const o=new ec({startPosition:e});for(const{item:e}of o){if(t.isLimit(e)||!e.is("element"))return null;if(t.checkChild(e,"$text"))return e}return null}(e.createPositionAfter(s),i),o=e.createPositionAt(s,0),n=t?e.createPositionAt(t,0):e.createPositionAt(s,"end");e.setSelection(e.createRange(o,n))})),!0)}_handleSelectionChangeOnArrowKeyPress(e,t){const o=t.keyCode,n=this.editor.model,i=n.schema,r=n.document.selection,s=r.getSelectedElement(),a=Di(o,this.editor.locale.contentLanguageDirection),l="down"==a||"right"==a,c="up"==a||"down"==a;if(s&&i.isObject(s)){const o=l?r.getLastPosition():r.getFirstPosition(),s=i.getNearestSelectionRange(o,l?"forward":"backward");return void(s&&(n.change((e=>{e.setSelection(s)})),t.preventDefault(),e.stop()))}if(!r.isCollapsed&&!t.shiftKey){const o=r.getFirstPosition(),s=r.getLastPosition(),a=o.nodeAfter,c=s.nodeBefore;return void((a&&i.isObject(a)||c&&i.isObject(c))&&(n.change((e=>{e.setSelection(l?s:o)})),t.preventDefault(),e.stop()))}if(!r.isCollapsed)return;const d=this._getObjectElementNextToSelection(l);if(d&&i.isObject(d)){if(i.isInline(d)&&c)return;this._setSelectionOverElement(d),t.preventDefault(),e.stop()}}_preventDefaultOnArrowKeyPress(e,t){const o=this.editor.model,n=o.schema,i=o.document.selection.getSelectedElement();i&&n.isObject(i)&&(t.preventDefault(),e.stop())}_handleDelete(e){const t=this.editor.model.document.selection;if(!this.editor.model.canEditAt(t))return;if(!t.isCollapsed)return;const o=this._getObjectElementNextToSelection(e);return o?(this.editor.model.change((e=>{let n=t.anchor.parent;for(;n.isEmpty;){const t=n;n=t.parent,e.remove(t)}this._setSelectionOverElement(o)})),!0):void 0}_setSelectionOverElement(e){this.editor.model.change((t=>{t.setSelection(t.createRangeOn(e))}))}_getObjectElementNextToSelection(e){const t=this.editor.model,o=t.schema,n=t.document.selection,i=t.createSelection(n);if(t.modifySelection(i,{direction:e?"forward":"backward"}),i.isEqual(n))return null;const r=e?i.focus.nodeBefore:i.focus.nodeAfter;return r&&o.isObject(r)?r:null}_clearPreviouslySelectedWidgets(e){for(const t of this._previouslySelected)e.removeClass(kw,t);this._previouslySelected.clear()}_selectFirstNestedEditable(){const e=this.editor,t=this.editor.editing.view.document;for(const o of t.selection.getFirstRange().getItems())if(o.is("editableElement")){const t=e.editing.mapper.toModelElement(o);if(!t)continue;const n=e.model.createPositionAt(t,0),i=e.model.schema.getNearestSelectionRange(n,"forward");return e.model.change((e=>{e.setSelection(i)})),!0}return!1}_selectAncestorWidget(){const e=this.editor,t=e.editing.mapper,o=e.editing.view.document.selection.getFirstPosition().parent,n=(o.is("$text")?o.parent:o).findAncestor(ww);if(!n)return!1;const i=t.toModelElement(n);return!!i&&(e.model.change((e=>{e.setSelection(i,"on")})),!0)}}function z_(e,t){return!!t&&Array.from(e.getAncestors()).includes(t)}class O_ extends br{constructor(){super(...arguments),this._toolbarDefinitions=new Map}static get requires(){return[kk]}static get pluginName(){return"WidgetToolbarRepository"}static get isOfficialPlugin(){return!0}init(){const e=this.editor;if(e.plugins.has("BalloonToolbar")){const t=e.plugins.get("BalloonToolbar");this.listenTo(t,"show",(t=>{(function(e){const t=e.getSelectedElement();return!(!t||!ww(t))})(e.editing.view.document.selection)&&t.stop()}),{priority:"high"})}this._balloon=this.editor.plugins.get("ContextualBalloon"),this.on("change:isEnabled",(()=>{this._updateToolbarsVisibility()})),this.listenTo(e.ui,"update",(()=>{this._updateToolbarsVisibility()})),this.listenTo(e.ui.focusTracker,"change:isFocused",(()=>{this._updateToolbarsVisibility()}),{priority:"low"})}destroy(){super.destroy();for(const e of this._toolbarDefinitions.values())e.view.destroy()}register(e,{ariaLabel:t,items:o,getRelatedElement:n,balloonClassName:i="ck-toolbar-container"}){if(!o.length)return void T("widget-toolbar-no-items",{toolbarId:e});const r=this.editor,s=r.t,a=new af(r.locale);if(a.ariaLabel=t||s("Widget toolbar"),this._toolbarDefinitions.has(e))throw new S("widget-toolbar-duplicated",this,{toolbarId:e});const l={view:a,getRelatedElement:n,balloonClassName:i,itemsConfig:o,initialized:!1};r.ui.addToolbar(a,{isContextual:!0,beforeFocus:()=>{const e=n(r.editing.view.document.selection);e&&this._showToolbar(l,e)},afterBlur:()=>{this._hideToolbar(l)}}),this._toolbarDefinitions.set(e,l)}_updateToolbarsVisibility(){let e=0,t=null,o=null;for(const n of this._toolbarDefinitions.values()){const i=n.getRelatedElement(this.editor.editing.view.document.selection);if(this.isEnabled&&i)if(this.editor.ui.focusTracker.isFocused){const r=i.getAncestors().length;r>e&&(e=r,t=i,o=n)}else this._isToolbarVisible(n)&&this._hideToolbar(n);else this._isToolbarInBalloon(n)&&this._hideToolbar(n)}o&&this._showToolbar(o,t)}_hideToolbar(e){this._balloon.remove(e.view),this.stopListening(this._balloon,"change:visibleView")}_showToolbar(e,t){this._isToolbarVisible(e)?N_(this.editor,t):this._isToolbarInBalloon(e)||(e.initialized||(e.initialized=!0,e.view.fillFromConfig(e.itemsConfig,this.editor.ui.componentFactory)),this._balloon.add({view:e.view,position:V_(this.editor,t),balloonClassName:e.balloonClassName}),this.listenTo(this._balloon,"change:visibleView",(()=>{for(const e of this._toolbarDefinitions.values())if(this._isToolbarVisible(e)){const t=e.getRelatedElement(this.editor.editing.view.document.selection);N_(this.editor,t)}})))}_isToolbarVisible(e){return this._balloon.visibleView===e.view}_isToolbarInBalloon(e){return this._balloon.hasView(e.view)}}function N_(e,t){const o=e.plugins.get("ContextualBalloon"),n=V_(e,t);o.updatePosition(n)}function V_(e,t){const o=e.editing.view,n=Wg.defaultPositions;return{target:o.domConverter.mapViewToDom(t),positions:[n.northArrowSouth,n.northArrowSouthWest,n.northArrowSouthEast,n.southArrowNorth,n.southArrowNorthWest,n.southArrowNorthEast,n.viewportStickyNorth]}}class L_ extends(X()){constructor(e){super(),this.set("activeHandlePosition",null),this.set("proposedWidthPercents",null),this.set("proposedWidth",null),this.set("proposedHeight",null),this.set("proposedHandleHostWidth",null),this.set("proposedHandleHostHeight",null),this._options=e,this._referenceCoordinates=null}get originalWidth(){return this._originalWidth}get originalHeight(){return this._originalHeight}get originalWidthPercents(){return this._originalWidthPercents}get aspectRatio(){return this._aspectRatio}begin(e,t,o){const n=new Gn(t);this.activeHandlePosition=function(e){const t=["top-left","top-right","bottom-right","bottom-left"];for(const o of t)if(e.classList.contains(H_(o)))return o}(e),this._referenceCoordinates=function(e,t){const o=new Gn(e),n=t.split("-"),i={x:"right"==n[1]?o.right:o.left,y:"bottom"==n[0]?o.bottom:o.top};return i.x+=e.ownerDocument.defaultView.scrollX,i.y+=e.ownerDocument.defaultView.scrollY,i}(t,function(e){const t=e.split("-"),o={top:"bottom",bottom:"top",left:"right",right:"left"};return`${o[t[0]]}-${o[t[1]]}`}(this.activeHandlePosition)),this._originalWidth=n.width,this._originalHeight=n.height,this._aspectRatio=n.width/n.height;const i=o.style.width;i&&i.match(/^\d+(\.\d*)?%$/)?this._originalWidthPercents=parseFloat(i):this._originalWidthPercents=function(e,t=new Gn(e)){const o=Dw(e);return o?t.width/o*100:0}(o,n)}update(e){this.proposedWidth=e.width,this.proposedHeight=e.height,this.proposedWidthPercents=e.widthPercents,this.proposedHandleHostWidth=e.handleHostWidth,this.proposedHandleHostHeight=e.handleHostHeight}}function H_(e){return`ck-widget__resizer__handle-${e}`}class j_ extends zp{constructor(){super();const e=this.bindTemplate;this.setTemplate({tag:"div",attributes:{class:["ck","ck-size-view",e.to("_viewPosition",(e=>e?`ck-orientation-${e}`:""))],style:{display:e.if("_isVisible","none",(e=>!e))}},children:[{text:e.to("_label")}]})}_bindToState(e,t){this.bind("_isVisible").to(t,"proposedWidth",t,"proposedHeight",((e,t)=>null!==e&&null!==t)),this.bind("_label").to(t,"proposedHandleHostWidth",t,"proposedHandleHostHeight",t,"proposedWidthPercents",((t,o,n)=>"px"===e.unit?`${t}×${o}`:`${n}%`)),this.bind("_viewPosition").to(t,"activeHandlePosition",t,"proposedHandleHostWidth",t,"proposedHandleHostHeight",((e,t,o)=>t<50||o<50?"above-center":e))}_dismiss(){this.unbind(),this._isVisible=!1}}class q_ extends(X()){constructor(e){super(),this._viewResizerWrapper=null,this._options=e,this.set("isEnabled",!0),this.set("isSelected",!1),this.bind("isVisible").to(this,"isEnabled",this,"isSelected",((e,t)=>e&&t)),this.decorate("begin"),this.decorate("cancel"),this.decorate("commit"),this.decorate("updateSize"),this.on("commit",(e=>{this.state.proposedWidth||this.state.proposedWidthPercents||(this._cleanup(),e.stop())}),{priority:"high"})}get state(){return this._state}show(){this._options.editor.editing.view.change((e=>{e.removeClass("ck-hidden",this._viewResizerWrapper)}))}hide(){this._options.editor.editing.view.change((e=>{e.addClass("ck-hidden",this._viewResizerWrapper)}))}attach(){const e=this,t=this._options.viewElement;this._options.editor.editing.view.change((o=>{const n=o.createUIElement("div",{class:"ck ck-reset_all ck-widget__resizer"},(function(t){const o=this.toDomElement(t);return e._appendHandles(o),e._appendSizeUI(o),o}));o.insert(o.createPositionAt(t,"end"),n),o.addClass("ck-widget_with-resizer",t),this._viewResizerWrapper=n,this.isVisible||this.hide()})),this.on("change:isVisible",(()=>{this.isVisible?(this.show(),this.redraw()):this.hide()}))}begin(e){this._state=new L_(this._options),this._sizeView._bindToState(this._options,this.state),this._initialViewWidth=this._options.viewElement.getStyle("width"),this.state.begin(e,this._getHandleHost(),this._getResizeHost())}updateSize(e){const t=this._proposeNewSize(e);this._options.editor.editing.view.change((e=>{const o=this._options.unit||"%",n=("%"===o?t.widthPercents:t.width)+o;e.setStyle("width",n,this._options.viewElement)}));const o=this._getHandleHost(),n=new Gn(o),i=Math.round(n.width),r=Math.round(n.height),s=new Gn(o);t.width=Math.round(s.width),t.height=Math.round(s.height),this.redraw(n),this.state.update({...t,handleHostWidth:i,handleHostHeight:r})}commit(){const e=this._options.unit||"%",t=("%"===e?this.state.proposedWidthPercents:this.state.proposedWidth)+e;this._options.editor.editing.view.change((()=>{this._cleanup(),this._options.onCommit(t)}))}cancel(){this._cleanup()}destroy(){this.cancel()}redraw(e){const t=this._domResizerWrapper;if(!((o=t)&&o.ownerDocument&&o.ownerDocument.contains(o)))return;var o;const n=t.parentElement,i=this._getHandleHost(),r=this._viewResizerWrapper,s=[r.getStyle("width"),r.getStyle("height"),r.getStyle("left"),r.getStyle("top")];let a;if(n.isSameNode(i)){const t=e||new Gn(i);a=[t.width+"px",t.height+"px",void 0,void 0]}else a=[i.offsetWidth+"px",i.offsetHeight+"px",i.offsetLeft+"px",i.offsetTop+"px"];"same"!==se(s,a)&&this._options.editor.editing.view.change((e=>{e.setStyle({width:a[0],height:a[1],left:a[2],top:a[3]},r)}))}containsHandle(e){return this._domResizerWrapper.contains(e)}static isResizeHandle(e){return e.classList.contains("ck-widget__resizer__handle")}_cleanup(){this._sizeView._dismiss();this._options.editor.editing.view.change((e=>{e.setStyle("width",this._initialViewWidth,this._options.viewElement)}))}_proposeNewSize(e){const t=this.state,o={x:(n=e).pageX,y:n.pageY};var n;const i=!this._options.isCentered||this._options.isCentered(this),r={x:t._referenceCoordinates.x-(o.x+t.originalWidth),y:o.y-t.originalHeight-t._referenceCoordinates.y};i&&t.activeHandlePosition.endsWith("-right")&&(r.x=o.x-(t._referenceCoordinates.x+t.originalWidth)),i&&(r.x*=2);let s=Math.abs(t.originalWidth+r.x),a=Math.abs(t.originalHeight+r.y);return"width"==(s/t.aspectRatio>a?"width":"height")?a=s/t.aspectRatio:s=a*t.aspectRatio,{width:Math.round(s),height:Math.round(a),widthPercents:Math.min(Math.round(t.originalWidthPercents/t.originalWidth*s*100)/100,100)}}_getResizeHost(){const e=this._domResizerWrapper.parentElement;return this._options.getResizeHost(e)}_getHandleHost(){const e=this._domResizerWrapper.parentElement;return this._options.getHandleHost(e)}get _domResizerWrapper(){return this._options.editor.editing.view.domConverter.mapViewToDom(this._viewResizerWrapper)}_appendHandles(e){const t=["top-left","top-right","bottom-right","bottom-left"];for(const n of t)e.appendChild(new pp({tag:"div",attributes:{class:"ck-widget__resizer__handle "+(o=n,`ck-widget__resizer__handle-${o}`)}}).render());var o}_appendSizeUI(e){this._sizeView=new j_,this._sizeView.render(),e.appendChild(this._sizeView.element)}}var $_=i(2060),U_={attributes:{"data-cke":!0}};U_.setAttributes=Xr(),U_.insert=Yr().bind(null,"head"),U_.domAPI=Zr(),U_.insertStyleElement=ts();Gr()($_.A,U_);$_.A&&$_.A.locals&&$_.A.locals;class W_ extends br{constructor(){super(...arguments),this._resizers=new Map}static get pluginName(){return"WidgetResize"}static get isOfficialPlugin(){return!0}init(){const e=this.editor.editing,t=s.window.document;this.set("selectedResizer",null),this.set("_activeResizer",null),e.view.addObserver(eh),this._observer=new(On()),this.listenTo(e.view.document,"mousedown",this._mouseDownListener.bind(this),{priority:"high"}),this._observer.listenTo(t,"mousemove",this._mouseMoveListener.bind(this)),this._observer.listenTo(t,"mouseup",this._mouseUpListener.bind(this)),this._redrawSelectedResizerThrottled=Hh((()=>this.redrawSelectedResizer()),200),this.editor.ui.on("update",this._redrawSelectedResizerThrottled),this.editor.model.document.on("change",(()=>{for(const[e,t]of this._resizers)e.isAttached()||(this._resizers.delete(e),t.destroy())}),{priority:"lowest"}),this._observer.listenTo(s.window,"resize",this._redrawSelectedResizerThrottled);const o=this.editor.editing.view.document.selection;o.on("change",(()=>{const e=o.getSelectedElement(),t=this.getResizerByViewElement(e)||null;t?this.select(t):this.deselect()}))}redrawSelectedResizer(){this.selectedResizer&&this.selectedResizer.isVisible&&this.selectedResizer.redraw()}destroy(){super.destroy(),this._observer.stopListening();for(const e of this._resizers.values())e.destroy();this._redrawSelectedResizerThrottled.cancel()}select(e){this.deselect(),this.selectedResizer=e,this.selectedResizer.isSelected=!0}deselect(){this.selectedResizer&&(this.selectedResizer.isSelected=!1),this.selectedResizer=null}attachTo(e){const t=new q_(e),o=this.editor.plugins;if(t.attach(),o.has("WidgetToolbarRepository")){const e=o.get("WidgetToolbarRepository");t.on("begin",(()=>{e.forceDisabled("resize")}),{priority:"lowest"}),t.on("cancel",(()=>{e.clearForceDisabled("resize")}),{priority:"highest"}),t.on("commit",(()=>{e.clearForceDisabled("resize")}),{priority:"highest"})}this._resizers.set(e.viewElement,t);const n=this.editor.editing.view.document.selection.getSelectedElement();return this.getResizerByViewElement(n)==t&&this.select(t),t}getResizerByViewElement(e){return this._resizers.get(e)}_getResizerByHandle(e){for(const t of this._resizers.values())if(t.containsHandle(e))return t}_mouseDownListener(e,t){const o=t.domTarget;q_.isResizeHandle(o)&&(this._activeResizer=this._getResizerByHandle(o)||null,this._activeResizer&&(this._activeResizer.begin(o),e.stop(),t.preventDefault()))}_mouseMoveListener(e,t){this._activeResizer&&this._activeResizer.updateSize(t)}_mouseUpListener(){this._activeResizer&&(this._activeResizer.commit(),this._activeResizer=null)}}function G_(e,t,o){e.ui.componentFactory.add(t,(t=>{const n=new Kp(t);return n.set({label:I18n.t("js.button_edit"),icon:'\n',tooltip:!0}),n.on("execute",(()=>{const t=e.model.document.selection.getSelectedElement();t&&o(t)})),n}))}const K_="ck-toolbar-container";function Z_(e,t,o,n){const i=t.config.get(o+".toolbar");if(!i||!i.length)return;const r=t.plugins.get("ContextualBalloon"),s=new af(t.locale);function a(){t.ui.focusTracker.isFocused&&n(t.editing.view.document.selection)?c()?function(e,t){const o=e.plugins.get("ContextualBalloon");if(t(e.editing.view.document.selection)){const t=J_(e);o.updatePosition(t)}}(t,n):r.hasView(s)||r.add({view:s,position:J_(t),balloonClassName:K_}):l()}function l(){c()&&r.remove(s)}function c(){return r.visibleView==s}s.fillFromConfig(i,t.ui.componentFactory),e.listenTo(t.editing.view,"render",a),e.listenTo(t.ui.focusTracker,"change:isFocused",a,{priority:"low"})}function J_(e){const t=e.editing.view,o=Wg.defaultPositions;return{target:t.domConverter.viewToDom(t.document.selection.getSelectedElement()),positions:[o.northArrowSouth,o.northArrowSouthWest,o.northArrowSouthEast,o.southArrowNorth,o.southArrowNorthWest,o.southArrowNorthEast]}}class Y_ extends br{static get requires(){return[kk]}static get pluginName(){return"EmbeddedTableToolbar"}init(){const e=this.editor,t=this.editor.model,o=Pw(e);G_(e,"opEditEmbeddedTableQuery",(e=>{const n=o.services.externalQueryConfiguration,i=e.getAttribute("opEmbeddedTableQuery")||{};o.runInZone((()=>{n.show({currentQuery:i,callback:o=>t.change((t=>{t.setAttribute("opEmbeddedTableQuery",o,e)}))})}))}))}afterInit(){Z_(this,this.editor,"OPMacroEmbeddedTable",Tw)}}const Q_=Symbol("isWpButtonMacroSymbol");function X_(e){const t=e.getSelectedElement();return!(!t||!function(e){return!!e.getCustomProperty(Q_)&&ww(e)}(t))}class ey extends br{static get pluginName(){return"OPMacroWpButtonEditing"}static get buttonName(){return"insertWorkPackageButton"}init(){const e=this.editor,t=e.model,o=e.conversion,n=Pw(e);t.schema.register("op-macro-wp-button",{allowWhere:["$block"],allowAttributes:["type","classes"],isBlock:!0,isLimit:!0}),o.for("upcast").elementToElement({view:{name:"macro",classes:"create_work_package_link"},model:(e,{writer:t})=>{const o=e.getAttribute("data-type")||"",n=e.getAttribute("data-classes")||"";return t.createElement("op-macro-wp-button",{type:o,classes:n})}}),o.for("editingDowncast").elementToElement({model:"op-macro-wp-button",view:(e,{writer:t})=>this.createMacroViewElement(e,t)}),o.for("dataDowncast").elementToElement({model:"op-macro-wp-button",view:(e,{writer:t})=>t.createContainerElement("macro",{class:"create_work_package_link","data-type":e.getAttribute("type")||"","data-classes":e.getAttribute("classes")||""})}),e.ui.componentFactory.add(ey.buttonName,(t=>{const o=new Kp(t);return o.set({label:window.I18n.t("js.editor.macro.work_package_button.button"),withText:!0}),o.on("execute",(()=>{n.services.macros.configureWorkPackageButton().then((t=>e.model.change((o=>{const n=o.createElement("op-macro-wp-button",{});o.setAttribute("type",t.type,n),o.setAttribute("classes",t.classes,n),e.model.insertContent(n,e.model.document.selection)}))))})),o}))}macroLabel(e){return e?window.I18n.t("js.editor.macro.work_package_button.with_type",{typename:e}):window.I18n.t("js.editor.macro.work_package_button.without_type")}createMacroViewElement(e,t){const o=e.getAttribute("classes")||"",n=this.macroLabel(),i=t.createText(n),r=t.createContainerElement("span",{class:o});return t.insert(t.createPositionAt(r,0),i),function(e,t,o){return t.setCustomProperty(Q_,!0,e),_w(e,t,{label:o})}(r,t,{label:n})}}class ty extends br{static get requires(){return[kk]}static get pluginName(){return"OPMacroWpButtonToolbar"}init(){const e=this.editor,t=Pw(e);G_(e,"opEditWpMacroButton",(o=>{const n=t.services.macros,i=o.getAttribute("type"),r=o.getAttribute("classes");n.configureWorkPackageButton(i,r).then((t=>e.model.change((e=>{e.setAttribute("classes",t.classes,o),e.setAttribute("type",t.type,o)}))))}))}afterInit(){Z_(this,this.editor,"OPMacroWpButton",X_)}}class oy extends(X()){constructor(){super();const e=new window.FileReader;this._reader=e,this._data=void 0,this.set("loaded",0),e.onprogress=e=>{this.loaded=e.loaded}}get error(){return this._reader.error}get data(){return this._data}read(e){const t=this._reader;return this.total=e.size,new Promise(((o,n)=>{t.onload=()=>{const e=t.result;this._data=e,o(e)},t.onerror=()=>{n("error")},t.onabort=()=>{n("aborted")},this._reader.readAsDataURL(e)}))}abort(){this._reader.abort()}}class ny extends br{constructor(){super(...arguments),this.loaders=new tr,this._loadersMap=new Map,this._pendingAction=null}static get pluginName(){return"FileRepository"}static get isOfficialPlugin(){return!0}static get requires(){return[dp]}init(){this.loaders.on("change",(()=>this._updatePendingAction())),this.set("uploaded",0),this.set("uploadTotal",null),this.bind("uploadedPercent").to(this,"uploaded",this,"uploadTotal",((e,t)=>t?e/t*100:0))}getLoader(e){return this._loadersMap.get(e)||null}createLoader(e){if(!this.createUploadAdapter)return T("filerepository-no-upload-adapter"),null;const t=new iy(Promise.resolve(e),this.createUploadAdapter);return this.loaders.add(t),this._loadersMap.set(e,t),e instanceof Promise&&t.file.then((e=>{this._loadersMap.set(e,t)})).catch((()=>{})),t.on("change:uploaded",(()=>{let e=0;for(const t of this.loaders)e+=t.uploaded;this.uploaded=e})),t.on("change:uploadTotal",(()=>{let e=0;for(const t of this.loaders)t.uploadTotal&&(e+=t.uploadTotal);this.uploadTotal=e})),t}destroyLoader(e){const t=e instanceof iy?e:this.getLoader(e);t._destroy(),this.loaders.remove(t),this._loadersMap.forEach(((e,o)=>{e===t&&this._loadersMap.delete(o)}))}_updatePendingAction(){const e=this.editor.plugins.get(dp);if(this.loaders.length){if(!this._pendingAction){const t=this.editor.t,o=e=>`${t("Upload in progress")} ${parseInt(e)}%.`;this._pendingAction=e.add(o(this.uploadedPercent)),this._pendingAction.bind("message").to(this,"uploadedPercent",o)}}else e.remove(this._pendingAction),this._pendingAction=null}}class iy extends(X()){constructor(e,t){super(),this.id=E(),this._filePromiseWrapper=this._createFilePromiseWrapper(e),this._adapter=t(this),this._reader=new oy,this.set("status","idle"),this.set("uploaded",0),this.set("uploadTotal",null),this.bind("uploadedPercent").to(this,"uploaded",this,"uploadTotal",((e,t)=>t?e/t*100:0)),this.set("uploadResponse",null)}get file(){return this._filePromiseWrapper?this._filePromiseWrapper.promise.then((e=>this._filePromiseWrapper?e:null)):Promise.resolve(null)}get data(){return this._reader.data}read(){if("idle"!=this.status)throw new S("filerepository-read-wrong-status",this);return this.status="reading",this.file.then((e=>this._reader.read(e))).then((e=>{if("reading"!==this.status)throw this.status;return this.status="idle",e})).catch((e=>{if("aborted"===e)throw this.status="aborted","aborted";throw this.status="error",this._reader.error?this._reader.error:e}))}upload(){if("idle"!=this.status)throw new S("filerepository-upload-wrong-status",this);return this.status="uploading",this.file.then((()=>this._adapter.upload())).then((e=>(this.uploadResponse=e,this.status="idle",e))).catch((e=>{if("aborted"===this.status)throw"aborted";throw this.status="error",e}))}abort(){const e=this.status;this.status="aborted",this._filePromiseWrapper.isFulfilled?"reading"==e?this._reader.abort():"uploading"==e&&this._adapter.abort&&this._adapter.abort():(this._filePromiseWrapper.promise.catch((()=>{})),this._filePromiseWrapper.rejecter("aborted")),this._destroy()}_destroy(){this._filePromiseWrapper=void 0,this._reader=void 0,this._adapter=void 0,this.uploadResponse=void 0}_createFilePromiseWrapper(e){const t={};return t.promise=new Promise(((o,n)=>{t.rejecter=n,t.isFulfilled=!1,e.then((e=>{t.isFulfilled=!0,o(e)})).catch((e=>{t.isFulfilled=!0,n(e)}))})),t}}class ry{constructor(e,t,o){this.loader=e,this.resource=t,this.editor=o}upload(){const e=this.resource,t=Fw(this.editor,"attachmentsResourceService");return e?this.loader.file.then((o=>t.attachFiles(e,[o]).toPromise().then((e=>(this.editor.model.fire("op:attachment-added",e),this.buildResponse(e[0])))).catch((e=>{console.error("Failed upload %O",e)})))):(console.warn("resource not available in this CKEditor instance"),Promise.reject("Not possible to upload attachments without resource"))}buildResponse(e){return{default:e._links.staticDownloadLocation.href}}abort(){return!1}}class sy extends nl{constructor(e){super(e),this.domEventType=["paste","copy","cut","drop","dragover","dragstart","dragend","dragenter","dragleave"];const t=this.document;function o(e){return(o,n)=>{n.preventDefault();const i=n.dropRange?[n.dropRange]:null,r=new v(t,e);t.fire(r,{dataTransfer:n.dataTransfer,method:o.name,targetRanges:i,target:n.target,domEvent:n.domEvent}),r.stop.called&&n.stopPropagation()}}this.listenTo(t,"paste",o("clipboardInput"),{priority:"low"}),this.listenTo(t,"drop",o("clipboardInput"),{priority:"low"}),this.listenTo(t,"dragover",o("dragging"),{priority:"low"})}onDomEvent(e){const t="clipboardData"in e?e.clipboardData:e.dataTransfer,o="drop"==e.type||"paste"==e.type,n={dataTransfer:new Ul(t,{cacheFiles:o})};if("drop"==e.type||"dragover"==e.type){const t=jn(e);n.dropRange=t&&this.view.domConverter.domRangeToView(t)}this.fire(e.type,e,n)}}const ay=["figcaption","li"],ly=["ol","ul"];function cy(e,t){if(t.is("$text")||t.is("$textProxy"))return t.data;if(t.is("element","img")&&t.hasAttribute("alt"))return t.getAttribute("alt");if(t.is("element","br"))return"\n";let o="",n=null;for(const i of t.getChildren())o+=uy(i,n)+cy(e,i),n=i;if(t.is("rawElement")){const n=document.createElement("div");t.render(n,e),o+=dy(n)}return o}function dy(e){let t="";if(e.nodeType===Node.TEXT_NODE)return e.textContent;if("BR"===e.tagName)return"\n";for(const o of e.childNodes)t+=dy(o);return t}function uy(e,t){return t?e.is("element","li")&&!e.isEmpty&&e.getChild(0).is("containerElement")||ly.includes(e.name)&&ly.includes(t.name)?"\n\n":e.is("containerElement")||t.is("containerElement")?ay.includes(e.name)||ay.includes(t.name)?"\n":e.is("element")&&e.getCustomProperty("dataPipeline:transparentRendering")||t.is("element")&&t.getCustomProperty("dataPipeline:transparentRendering")?"":"\n\n":"":""}const hy=function(e,t){return e&&Ii(e,t,go)};const py=function(e,t,o,n){var i=o.length,r=i,s=!n;if(null==e)return!r;for(e=Object(e);i--;){var a=o[i];if(s&&a[2]?a[1]!==e[a[0]]:!(a[0]in e))return!1}for(;++ie.model.getSelectedContent(e.model.document.selection)){return this.editor.model.change((n=>{const i=n.model.document.selection;n.setSelection(t);const r=this._insertFakeMarkersIntoSelection(n,n.model.document.selection,e),s=o(n),a=this._removeFakeMarkersInsideElement(n,s);for(const[e,t]of Object.entries(r)){a[e]||(a[e]=n.createRangeIn(s));for(const e of t)n.remove(e)}s.markers.clear();for(const[e,t]of Object.entries(a))s.markers.set(e,t);return n.setSelection(i),s}))}_pasteMarkersIntoTransformedElement(e,t){const o=this._getPasteMarkersFromRangeMap(e);return this.editor.model.change((e=>{const n=this._insertFakeMarkersElements(e,o),i=t(e),r=this._removeFakeMarkersInsideElement(e,i);for(const t of Object.values(n).flat())e.remove(t);for(const[t,o]of Object.entries(r))e.model.markers.has(t)||e.addMarker(t,{usingOperation:!0,affectsData:!0,range:o});return i}))}_pasteFragmentWithMarkers(e){const t=this._getPasteMarkersFromRangeMap(e.markers);e.markers.clear();for(const o of t)e.markers.set(o.name,o.range);return this.editor.model.insertContent(e)}_forceMarkersCopy(e,t,o={allowedActions:"all",copyPartiallySelected:!0,duplicateOnPaste:!0}){const n=this._markersToCopy.get(e);this._markersToCopy.set(e,o),t(),n?this._markersToCopy.set(e,n):this._markersToCopy.delete(e)}_isMarkerCopyable(e,t){const o=this._getMarkerClipboardConfig(e);if(!o)return!1;if(!t)return!0;const{allowedActions:n}=o;return"all"===n||n.includes(t)}_hasMarkerConfiguration(e){return!!this._getMarkerClipboardConfig(e)}_getMarkerClipboardConfig(e){const[t]=e.split(":");return this._markersToCopy.get(t)||null}_insertFakeMarkersIntoSelection(e,t,o){const n=this._getCopyableMarkersFromSelection(e,t,o);return this._insertFakeMarkersElements(e,n)}_getCopyableMarkersFromSelection(e,t,o){const n=Array.from(t.getRanges()),i=new Set(n.flatMap((t=>Array.from(e.model.markers.getMarkersIntersectingRange(t)))));return Array.from(i).filter((e=>{if(!this._isMarkerCopyable(e.name,o))return!1;const{copyPartiallySelected:t}=this._getMarkerClipboardConfig(e.name);if(!t){const t=e.getRange();return n.some((e=>e.containsRange(t,!0)))}return!0})).map((e=>({name:"dragstart"===o?this._getUniqueMarkerName(e.name):e.name,range:e.getRange()})))}_getPasteMarkersFromRangeMap(e,t=null){const{model:o}=this.editor;return(e instanceof Map?Array.from(e.entries()):Object.entries(e)).flatMap((([e,n])=>{if(!this._hasMarkerConfiguration(e))return[{name:e,range:n}];if(this._isMarkerCopyable(e,t)){const t=this._getMarkerClipboardConfig(e),i=o.markers.has(e)&&"$graveyard"===o.markers.get(e).getRange().root.rootName;return(t.duplicateOnPaste||i)&&(e=this._getUniqueMarkerName(e)),[{name:e,range:n}]}return[]}))}_insertFakeMarkersElements(e,t){const o={},n=t.flatMap((e=>{const{start:t,end:o}=e.range;return[{position:t,marker:e,type:"start"},{position:o,marker:e,type:"end"}]})).sort((({position:e},{position:t})=>e.isBefore(t)?1:-1));for(const{position:t,marker:i,type:r}of n){const n=e.createElement("$marker",{"data-name":i.name,"data-type":r});o[i.name]||(o[i.name]=[]),o[i.name].push(n),e.insert(n,t)}return o}_removeFakeMarkersInsideElement(e,t){const o=this._getAllFakeMarkersFromElement(e,t).reduce(((t,o)=>{const n=o.markerElement&&e.createPositionBefore(o.markerElement);let i=t[o.name],r=!1;if(i&&i.start&&i.end){this._getMarkerClipboardConfig(o.name).duplicateOnPaste?t[this._getUniqueMarkerName(o.name)]=t[o.name]:r=!0,i=null}return r||(t[o.name]={...i,[o.type]:n}),o.markerElement&&e.remove(o.markerElement),t}),{});return Ey(o,(o=>new lc(o.start||e.createPositionFromPath(t,[0]),o.end||e.createPositionAt(t,"end"))))}_getAllFakeMarkersFromElement(e,t){const o=Array.from(e.createRangeIn(t)).flatMap((({item:e})=>{if(!e.is("element","$marker"))return[];const t=e.getAttribute("data-name"),o=e.getAttribute("data-type");return[{markerElement:e,name:t,type:o}]})),n=[],i=[];for(const e of o){if("end"===e.type){o.some((t=>t.name===e.name&&"start"===t.type))||n.push({markerElement:null,name:e.name,type:"start"})}if("start"===e.type){o.some((t=>t.name===e.name&&"end"===t.type))||i.unshift({markerElement:null,name:e.name,type:"end"})}}return[...n,...o,...i]}_getUniqueMarkerName(e){const t=e.split(":"),o=E().substring(1,6);return 3===t.length?`${t.slice(0,2).join(":")}:${o}`:`${t.join(":")}:${o}`}}class By extends br{static get pluginName(){return"ClipboardPipeline"}static get isOfficialPlugin(){return!0}static get requires(){return[Dy]}init(){this.editor.editing.view.addObserver(sy),this._setupPasteDrop(),this._setupCopyCut()}_fireOutputTransformationEvent(e,t,o){const n=this.editor.plugins.get("ClipboardMarkersUtils");this.editor.model.enqueueChange({isUndoable:"cut"===o},(()=>{const i=n._copySelectedFragmentWithMarkers(o,t);this.fire("outputTransformation",{dataTransfer:e,content:i,method:o})}))}_setupPasteDrop(){const e=this.editor,t=e.model,o=e.editing.view,n=o.document,i=this.editor.plugins.get("ClipboardMarkersUtils");this.listenTo(n,"clipboardInput",((t,o)=>{"paste"!=o.method||e.model.canEditAt(e.model.document.selection)||t.stop()}),{priority:"highest"}),this.listenTo(n,"clipboardInput",((e,t)=>{const n=t.dataTransfer;let i;if(t.content)i=t.content;else{let e="";n.getData("text/html")?e=function(e){return e.replace(/(\s+)<\/span>/g,((e,t)=>1==t.length?" ":t)).replace(//g,"")}(n.getData("text/html")):n.getData("text/plain")&&(((r=(r=n.getData("text/plain")).replace(/&/g,"&").replace(//g,">").replace(/\r?\n\r?\n/g,"

    ").replace(/\r?\n/g,"
    ").replace(/\t/g,"    ").replace(/^\s/," ").replace(/\s$/," ").replace(/\s\s/g,"  ")).includes("

    ")||r.includes("
    "))&&(r=`

    ${r}

    `),e=r),i=this.editor.data.htmlProcessor.toView(e)}var r;const s=new v(this,"inputTransformation"),a=n.getData("application/ckeditor5-editor-id")||null;this.fire(s,{content:i,dataTransfer:n,sourceEditorId:a,targetRanges:t.targetRanges,method:t.method}),s.stop.called&&e.stop(),o.scrollToTheSelection()}),{priority:"low"}),this.listenTo(this,"inputTransformation",((e,o)=>{if(o.content.isEmpty)return;const n=this.editor.data.toModel(o.content,"$clipboardHolder");0!=n.childCount&&(e.stop(),t.change((()=>{this.fire("contentInsertion",{content:n,method:o.method,sourceEditorId:o.sourceEditorId,dataTransfer:o.dataTransfer,targetRanges:o.targetRanges})})))}),{priority:"low"}),this.listenTo(this,"contentInsertion",((e,t)=>{t.resultRange=i._pasteFragmentWithMarkers(t.content)}),{priority:"low"})}_setupCopyCut(){const e=this.editor,t=e.model.document,o=e.editing.view.document,n=(e,o)=>{const n=o.dataTransfer;o.preventDefault(),this._fireOutputTransformationEvent(n,t.selection,e.name)};this.listenTo(o,"copy",n,{priority:"low"}),this.listenTo(o,"cut",((t,o)=>{e.model.canEditAt(e.model.document.selection)?n(t,o):o.preventDefault()}),{priority:"low"}),this.listenTo(this,"outputTransformation",((t,n)=>{const i=e.data.toView(n.content,{isClipboardPipeline:!0});o.fire("clipboardOutput",{dataTransfer:n.dataTransfer,content:i,method:n.method})}),{priority:"low"}),this.listenTo(o,"clipboardOutput",((o,n)=>{n.content.isEmpty||(n.dataTransfer.setData("text/html",this.editor.data.htmlProcessor.toData(n.content)),n.dataTransfer.setData("text/plain",cy(e.data.htmlProcessor.domConverter,n.content)),n.dataTransfer.setData("application/ckeditor5-editor-id",this.editor.id)),"cut"==n.method&&e.model.deleteContent(t.selection)}),{priority:"low"})}}const Sy=ti("px");class Ty extends zp{constructor(){super();const e=this.bindTemplate;this.set({isVisible:!1,left:null,top:null,width:null}),this.setTemplate({tag:"div",attributes:{class:["ck","ck-clipboard-drop-target-line",e.if("isVisible","ck-hidden",(e=>!e))],style:{left:e.to("left",(e=>Sy(e))),top:e.to("top",(e=>Sy(e))),width:e.to("width",(e=>Sy(e)))}}})}}class Iy extends br{constructor(){super(...arguments),this.removeDropMarkerDelayed=dr((()=>this.removeDropMarker()),40),this._updateDropMarkerThrottled=Hh((e=>this._updateDropMarker(e)),40),this._reconvertMarkerThrottled=Hh((()=>{this.editor.model.markers.has("drop-target")&&this.editor.editing.reconvertMarker("drop-target")}),0),this._dropTargetLineView=new Ty,this._domEmitter=new(On()),this._scrollables=new Map}static get pluginName(){return"DragDropTarget"}static get isOfficialPlugin(){return!0}init(){this._setupDropMarker()}destroy(){this._domEmitter.stopListening();for(const{resizeObserver:e}of this._scrollables.values())e.destroy();return this._updateDropMarkerThrottled.cancel(),this.removeDropMarkerDelayed.cancel(),this._reconvertMarkerThrottled.cancel(),super.destroy()}updateDropMarker(e,t,o,n,i,r){this.removeDropMarkerDelayed.cancel();const s=Py(this.editor,e,t,o,n,i,r);if(s)return r&&r.containsRange(s)?this.removeDropMarker():void this._updateDropMarkerThrottled(s)}getFinalDropRange(e,t,o,n,i,r){const s=Py(this.editor,e,t,o,n,i,r);return this.removeDropMarker(),s}removeDropMarker(){const e=this.editor.model;this.removeDropMarkerDelayed.cancel(),this._updateDropMarkerThrottled.cancel(),this._dropTargetLineView.isVisible=!1,e.markers.has("drop-target")&&e.change((e=>{e.removeMarker("drop-target")}))}_setupDropMarker(){const e=this.editor;e.ui.view.body.add(this._dropTargetLineView),e.conversion.for("editingDowncast").markerToHighlight({model:"drop-target",view:{classes:["ck-clipboard-drop-target-range"]}}),e.conversion.for("editingDowncast").markerToElement({model:"drop-target",view:(t,{writer:o})=>{if(e.model.schema.checkChild(t.markerRange.start,"$text"))return this._dropTargetLineView.isVisible=!1,this._createDropTargetPosition(o);t.markerRange.isCollapsed?this._updateDropTargetLine(t.markerRange):this._dropTargetLineView.isVisible=!1}})}_updateDropMarker(e){const t=this.editor,o=t.model.markers;t.model.change((t=>{o.has("drop-target")?o.get("drop-target").getRange().isEqual(e)||t.updateMarker("drop-target",{range:e}):t.addMarker("drop-target",{range:e,usingOperation:!1,affectsData:!1})}))}_createDropTargetPosition(e){return e.createUIElement("span",{class:"ck ck-clipboard-drop-target-position"},(function(e){const t=this.toDomElement(e);return t.append("⁠",e.createElement("span"),"⁠"),t}))}_updateDropTargetLine(e){const t=this.editor.editing,o=e.start.nodeBefore,n=e.start.nodeAfter,i=e.start.parent,r=o?t.mapper.toViewElement(o):null,a=r?t.view.domConverter.mapViewToDom(r):null,l=n?t.mapper.toViewElement(n):null,c=l?t.view.domConverter.mapViewToDom(l):null,d=t.mapper.toViewElement(i);if(!d)return;const u=t.view.domConverter.mapViewToDom(d),h=this._getScrollableRect(d),{scrollX:p,scrollY:m}=s.window,g=a?new Gn(a):null,f=c?new Gn(c):null,b=new Gn(u).excludeScrollbarsAndBorders(),k=g?g.bottom:b.top,w=f?f.top:b.bottom,_=s.window.getComputedStyle(u),y=k<=w?(k+w)/2:w;if(h.topa.schema.checkChild(r,e)))){if(a.schema.checkChild(r,"$text"))return a.createRange(r);if(t)return Ry(e,zy(e,t.parent),n,i)}}}else if(a.schema.isInline(c))return Ry(e,c,n,i);if(a.schema.isBlock(c))return Ry(e,c,n,i);if(a.schema.checkChild(c,"$block")){const t=Array.from(c.getChildren()).filter((t=>t.is("element")&&!Fy(e,t)));let o=0,r=t.length;if(0==r)return a.createRange(a.createPositionAt(c,"end"));for(;o{o?(this.forceDisabled("readOnlyMode"),this._isBlockDragging=!1):this.clearForceDisabled("readOnlyMode")})),c.isAndroid&&this.forceDisabled("noAndroidSupport"),e.plugins.has("BlockToolbar")){const t=e.plugins.get("BlockToolbar").buttonView.element;this._domEmitter.listenTo(t,"dragstart",((e,t)=>this._handleBlockDragStart(t))),this._domEmitter.listenTo(s.document,"dragover",((e,t)=>this._handleBlockDragging(t))),this._domEmitter.listenTo(s.document,"drop",((e,t)=>this._handleBlockDragging(t))),this._domEmitter.listenTo(s.document,"dragend",(()=>this._handleBlockDragEnd()),{useCapture:!0}),this.isEnabled&&t.setAttribute("draggable","true"),this.on("change:isEnabled",((e,o,n)=>{t.setAttribute("draggable",n?"true":"false")}))}}destroy(){return this._domEmitter.stopListening(),super.destroy()}_handleBlockDragStart(e){if(!this.isEnabled)return;const t=this.editor.model,o=t.document.selection,n=this.editor.editing.view,i=Array.from(o.getSelectedBlocks()),r=t.createRange(t.createPositionBefore(i[0]),t.createPositionAfter(i[i.length-1]));t.change((e=>e.setSelection(r))),this._isBlockDragging=!0,n.focus(),n.getObserver(sy).onDomEvent(e)}_handleBlockDragging(e){if(!this.isEnabled||!this._isBlockDragging)return;const t=e.clientX+("ltr"==this.editor.locale.contentLanguageDirection?100:-100),o=e.clientY,n=document.elementFromPoint(t,o),i=this.editor.editing.view;n&&n.closest(".ck-editor__editable")&&i.getObserver(sy).onDomEvent({...e,type:e.type,dataTransfer:e.dataTransfer,target:n,clientX:t,clientY:o,preventDefault:()=>e.preventDefault(),stopPropagation:()=>e.stopPropagation()})}_handleBlockDragEnd(){this._isBlockDragging=!1}}var Ny=i(9262),Vy={attributes:{"data-cke":!0}};Vy.setAttributes=Xr(),Vy.insert=Yr().bind(null,"head"),Vy.domAPI=Zr(),Vy.insertStyleElement=ts();Gr()(Ny.A,Vy);Ny.A&&Ny.A.locals&&Ny.A.locals;class Ly extends br{constructor(){super(...arguments),this._clearDraggableAttributesDelayed=dr((()=>this._clearDraggableAttributes()),40),this._blockMode=!1,this._domEmitter=new(On())}static get pluginName(){return"DragDrop"}static get isOfficialPlugin(){return!0}static get requires(){return[By,M_,Iy,Oy]}init(){const e=this.editor,t=e.editing.view;this._draggedRange=null,this._draggingUid="",this._draggableElement=null,t.addObserver(sy),t.addObserver(eh),this._setupDragging(),this._setupContentInsertionIntegration(),this._setupClipboardInputIntegration(),this._setupDraggableAttributeHandling(),this.listenTo(e,"change:isReadOnly",((e,t,o)=>{o?this.forceDisabled("readOnlyMode"):this.clearForceDisabled("readOnlyMode")})),this.on("change:isEnabled",((e,t,o)=>{o||this._finalizeDragging(!1)})),c.isAndroid&&this.forceDisabled("noAndroidSupport")}destroy(){return this._draggedRange&&(this._draggedRange.detach(),this._draggedRange=null),this._previewContainer&&this._previewContainer.remove(),this._domEmitter.stopListening(),this._clearDraggableAttributesDelayed.cancel(),super.destroy()}_setupDragging(){const e=this.editor,t=e.model,o=e.editing.view,n=o.document,i=e.plugins.get(Iy);this.listenTo(n,"dragstart",((e,o)=>{if(o.target&&o.target.is("editableElement"))return void o.preventDefault();if(this._prepareDraggedRange(o.target),!this._draggedRange)return void o.preventDefault();this._draggingUid=E(),o.dataTransfer.effectAllowed=this.isEnabled?"copyMove":"copy",o.dataTransfer.setData("application/ckeditor5-dragging-uid",this._draggingUid);const n=t.createSelection(this._draggedRange.toRange());this.editor.plugins.get("ClipboardPipeline")._fireOutputTransformationEvent(o.dataTransfer,n,"dragstart");const{dataTransfer:i,domTarget:r,domEvent:s}=o,{clientX:a}=s;this._updatePreview({dataTransfer:i,domTarget:r,clientX:a}),o.stopPropagation(),this.isEnabled||(this._draggedRange.detach(),this._draggedRange=null,this._draggingUid="")}),{priority:"low"}),this.listenTo(n,"dragend",((e,t)=>{this._finalizeDragging(!t.dataTransfer.isCanceled&&"move"==t.dataTransfer.dropEffect)}),{priority:"low"}),this._domEmitter.listenTo(s.document,"dragend",(()=>{this._blockMode=!1}),{useCapture:!0}),this.listenTo(n,"dragenter",(()=>{this.isEnabled&&o.focus()})),this.listenTo(n,"dragleave",(()=>{i.removeDropMarkerDelayed()})),this.listenTo(n,"dragging",((e,t)=>{if(!this.isEnabled)return void(t.dataTransfer.dropEffect="none");const{clientX:o,clientY:n}=t.domEvent;i.updateDropMarker(t.target,t.targetRanges,o,n,this._blockMode,this._draggedRange),this._draggedRange||(t.dataTransfer.dropEffect="copy"),c.isGecko||("copy"==t.dataTransfer.effectAllowed?t.dataTransfer.dropEffect="copy":["all","copyMove"].includes(t.dataTransfer.effectAllowed)&&(t.dataTransfer.dropEffect="move")),e.stop()}),{priority:"low"})}_setupClipboardInputIntegration(){const e=this.editor,t=e.editing.view.document,o=e.plugins.get(Iy);this.listenTo(t,"clipboardInput",((t,n)=>{if("drop"!=n.method)return;const{clientX:i,clientY:r}=n.domEvent,s=o.getFinalDropRange(n.target,n.targetRanges,i,r,this._blockMode,this._draggedRange);if(!s)return this._finalizeDragging(!1),void t.stop();this._draggedRange&&this._draggingUid!=n.dataTransfer.getData("application/ckeditor5-dragging-uid")&&(this._draggedRange.detach(),this._draggedRange=null,this._draggingUid="");if("move"==Hy(n.dataTransfer)&&this._draggedRange&&this._draggedRange.containsRange(s,!0))return this._finalizeDragging(!1),void t.stop();n.targetRanges=[e.editing.mapper.toViewRange(s)]}),{priority:"high"})}_setupContentInsertionIntegration(){const e=this.editor.plugins.get(By);e.on("contentInsertion",((e,t)=>{if(!this.isEnabled||"drop"!==t.method)return;const o=t.targetRanges.map((e=>this.editor.editing.mapper.toModelRange(e)));this.editor.model.change((e=>e.setSelection(o)))}),{priority:"high"}),e.on("contentInsertion",((e,t)=>{if(!this.isEnabled||"drop"!==t.method)return;const o="move"==Hy(t.dataTransfer),n=!t.resultRange||!t.resultRange.isCollapsed;this._finalizeDragging(n&&o)}),{priority:"lowest"})}_setupDraggableAttributeHandling(){const e=this.editor,t=e.editing.view,o=t.document;this.listenTo(o,"mousedown",((n,i)=>{if(c.isAndroid||!i)return;this._clearDraggableAttributesDelayed.cancel();let r=jy(i.target);if(c.isBlink&&!e.isReadOnly&&!r&&!o.selection.isCollapsed){const e=o.selection.getSelectedElement();e&&ww(e)||(r=o.selection.editableElement)}r&&(t.change((e=>{e.setAttribute("draggable","true",r)})),this._draggableElement=e.editing.mapper.toModelElement(r))})),this.listenTo(o,"mouseup",(()=>{c.isAndroid||this._clearDraggableAttributesDelayed()}))}_clearDraggableAttributes(){const e=this.editor.editing;e.view.change((t=>{this._draggableElement&&"$graveyard"!=this._draggableElement.root.rootName&&t.removeAttribute("draggable",e.mapper.toViewElement(this._draggableElement)),this._draggableElement=null}))}_finalizeDragging(e){const t=this.editor,o=t.model;if(t.plugins.get(Iy).removeDropMarker(),this._clearDraggableAttributes(),t.plugins.has("WidgetToolbarRepository")){t.plugins.get("WidgetToolbarRepository").clearForceDisabled("dragDrop")}this._draggingUid="",this._previewContainer&&(this._previewContainer.remove(),this._previewContainer=void 0),this._draggedRange&&(e&&this.isEnabled&&o.change((e=>{const t=o.createSelection(this._draggedRange);o.deleteContent(t,{doNotAutoparagraph:!0});const n=t.getFirstPosition().parent;n.isEmpty&&!o.schema.checkChild(n,"$text")&&o.schema.checkChild(n,"paragraph")&&e.insertElement("paragraph",n,0)})),this._draggedRange.detach(),this._draggedRange=null)}_prepareDraggedRange(e){const t=this.editor,o=t.model,n=o.document.selection,i=e?jy(e):null;if(i){const e=t.editing.mapper.toModelElement(i);if(this._draggedRange=vc.fromRange(o.createRangeOn(e)),this._blockMode=o.schema.isBlock(e),t.plugins.has("WidgetToolbarRepository")){t.plugins.get("WidgetToolbarRepository").forceDisabled("dragDrop")}return}if(n.isCollapsed&&!n.getFirstPosition().parent.isEmpty)return;const r=Array.from(n.getSelectedBlocks()),s=n.getFirstRange();if(0==r.length)return void(this._draggedRange=vc.fromRange(s));const a=qy(o,r);if(r.length>1)this._draggedRange=vc.fromRange(a),this._blockMode=!0;else if(1==r.length){const e=s.start.isTouching(a.start)&&s.end.isTouching(a.end);this._draggedRange=vc.fromRange(e?a:s),this._blockMode=e}o.change((e=>e.setSelection(this._draggedRange.toRange())))}_updatePreview({dataTransfer:e,domTarget:t,clientX:o}){const n=this.editor.editing.view,i=n.document.selection.editableElement,r=n.domConverter.mapViewToDom(i),a=s.window.getComputedStyle(r);this._previewContainer?this._previewContainer.firstElementChild&&this._previewContainer.removeChild(this._previewContainer.firstElementChild):(this._previewContainer=ve(s.document,"div",{style:"position: fixed; left: -999999px;"}),s.document.body.appendChild(this._previewContainer));const l=new Gn(r);if(r.contains(t))return;const d=parseFloat(a.paddingLeft),u=ve(s.document,"div");u.className="ck ck-content",u.style.width=a.width,u.style.paddingLeft=`${l.left-o+d}px`,c.isiOS&&(u.style.backgroundColor="white"),n.domConverter.setContentOf(u,e.getData("text/html")),e.setDragImage(u,0,0),this._previewContainer.appendChild(u)}}function Hy(e){return c.isGecko?e.dropEffect:["all","copyMove"].includes(e.effectAllowed)?"move":"copy"}function jy(e){if(e.is("editableElement"))return null;if(e.hasClass("ck-widget__selection-handle"))return e.findAncestor(ww);if(ww(e))return e;const t=e.findAncestor((e=>ww(e)||e.is("editableElement")));return ww(t)?t:null}function qy(e,t){const o=t[0],n=t[t.length-1],i=o.getCommonAncestor(n),r=e.createPositionBefore(o),s=e.createPositionAfter(n);if(i&&i.is("element")&&!e.schema.isLimit(i)){const t=e.createRangeOn(i),o=r.isTouching(t.start),n=s.isTouching(t.end);if(o&&n)return qy(e,[i])}return e.createRange(r,s)}class $y extends br{static get pluginName(){return"PastePlainText"}static get isOfficialPlugin(){return!0}static get requires(){return[By]}init(){const e=this.editor,t=e.model,o=e.editing.view,n=t.document.selection;o.addObserver(sy),e.plugins.get(By).on("contentInsertion",((e,o)=>{(function(e,t){let o=t.createRangeIn(e);if(1==e.childCount){const n=e.getChild(0);n.is("element")&&t.schema.isBlock(n)&&!t.schema.isObject(n)&&!t.schema.isLimit(n)&&(o=t.createRangeIn(n))}for(const e of o.getItems()){if(!t.schema.isInline(e))return!1;if(Array.from(e.getAttributeKeys()).find((e=>t.schema.getAttributeProperties(e).isFormatting)))return!1}return!0})(o.content,t)&&t.change((e=>{const i=Array.from(n.getAttributes()).filter((([e])=>t.schema.getAttributeProperties(e).isFormatting));n.isCollapsed||t.deleteContent(n,{doNotAutoparagraph:!0}),i.push(...n.getAttributes());const r=e.createRangeIn(o.content);for(const o of r.getItems())for(const n of i)t.schema.checkAttribute(o,n[0])&&e.setAttribute(n[0],n[1],o)}))}))}}class Uy extends br{static get pluginName(){return"Clipboard"}static get isOfficialPlugin(){return!0}static get requires(){return[Dy,By,Ly,$y]}init(){const e=this.editor,t=this.editor.t;e.accessibility.addKeystrokeInfos({keystrokes:[{label:t("Copy selected content"),keystroke:"CTRL+C"},{label:t("Paste content"),keystroke:"CTRL+V"},{label:t("Paste content as plain text"),keystroke:"CTRL+SHIFT+V"}]})}}class Wy extends wr{constructor(e){super(e),this._stack=[],this._createdBatches=new WeakSet,this.refresh(),this._isEnabledBasedOnSelection=!1,this.listenTo(e.data,"set",((e,t)=>{t[1]={...t[1]};const o=t[1];o.batchType||(o.batchType={isUndoable:!1})}),{priority:"high"}),this.listenTo(e.data,"set",((e,t)=>{t[1].batchType.isUndoable||this.clearStack()}))}refresh(){this.isEnabled=this._stack.length>0}get createdBatches(){return this._createdBatches}addBatch(e){const t=this.editor.model.document.selection,o={ranges:t.hasOwnRange?Array.from(t.getRanges()):[],isBackward:t.isBackward};this._stack.push({batch:e,selection:o}),this.refresh()}clearStack(){this._stack=[],this.refresh()}_restoreSelection(e,t,o){const n=this.editor.model,i=n.document,r=[],s=e.map((e=>e.getTransformedByOperations(o))),a=s.flat();for(const e of s){const t=e.filter((e=>e.root!=i.graveyard)).filter((e=>!Ky(e,a)));t.length&&(Gy(t),r.push(t[0]))}r.length&&n.change((e=>{e.setSelection(r,{backward:t})}))}_undo(e,t){const o=this.editor.model,n=o.document;this._createdBatches.add(t);const i=e.operations.slice().filter((e=>e.isDocumentOperation));i.reverse();for(const e of i){const i=e.baseVersion+1,r=Array.from(n.history.getOperations(i)),s=ru([e.getReversed()],r,{useRelations:!0,document:this.editor.model.document,padWithNoOps:!1,forceWeakRemove:!0}).operationsA;for(let i of s){const r=i.affectedSelectable;r&&!o.canEditAt(r)&&(i=new Zd(i.baseVersion)),t.addOperation(i),o.applyOperation(i),n.history.setOperationAsUndone(e,i)}}}}function Gy(e){e.sort(((e,t)=>e.start.isBefore(t.start)?-1:1));for(let t=1;tt!==e&&t.containsRange(e,!0)))}class Zy extends Wy{execute(e=null){const t=e?this._stack.findIndex((t=>t.batch==e)):this._stack.length-1,o=this._stack.splice(t,1)[0],n=this.editor.model.createBatch({isUndo:!0});this.editor.model.enqueueChange(n,(()=>{this._undo(o.batch,n);const e=this.editor.model.document.history.getOperations(o.batch.baseVersion);this._restoreSelection(o.selection.ranges,o.selection.isBackward,e)})),this.fire("revert",o.batch,n),this.refresh()}}class Jy extends Wy{execute(){const e=this._stack.pop(),t=this.editor.model.createBatch({isUndo:!0});this.editor.model.enqueueChange(t,(()=>{const o=e.batch.operations[e.batch.operations.length-1].baseVersion+1,n=this.editor.model.document.history.getOperations(o);this._restoreSelection(e.selection.ranges,e.selection.isBackward,n),this._undo(e.batch,t)})),this.refresh()}}class Yy extends br{constructor(){super(...arguments),this._batchRegistry=new WeakSet}static get pluginName(){return"UndoEditing"}static get isOfficialPlugin(){return!0}init(){const e=this.editor,t=e.t;this._undoCommand=new Zy(e),this._redoCommand=new Jy(e),e.commands.add("undo",this._undoCommand),e.commands.add("redo",this._redoCommand),this.listenTo(e.model,"applyOperation",((e,t)=>{const o=t[0];if(!o.isDocumentOperation)return;const n=o.batch,i=this._redoCommand.createdBatches.has(n),r=this._undoCommand.createdBatches.has(n);this._batchRegistry.has(n)||(this._batchRegistry.add(n),n.isUndoable&&(i?this._undoCommand.addBatch(n):r||(this._undoCommand.addBatch(n),this._redoCommand.clearStack())))}),{priority:"highest"}),this.listenTo(this._undoCommand,"revert",((e,t,o)=>{this._redoCommand.addBatch(o)})),e.keystrokes.set("CTRL+Z","undo"),e.keystrokes.set("CTRL+Y","redo"),e.keystrokes.set("CTRL+SHIFT+Z","redo"),e.accessibility.addKeystrokeInfos({keystrokes:[{label:t("Undo"),keystroke:"CTRL+Z"},{label:t("Redo"),keystroke:[["CTRL+Y"],["CTRL+SHIFT+Z"]]}]})}}class Qy extends br{static get pluginName(){return"UndoUI"}static get isOfficialPlugin(){return!0}init(){const e=this.editor,t=e.locale,o=e.t,n="ltr"==t.uiLanguageDirection?up.undo:up.redo,i="ltr"==t.uiLanguageDirection?up.redo:up.undo;this._addButtonsToFactory("undo",o("Undo"),"CTRL+Z",n),this._addButtonsToFactory("redo",o("Redo"),"CTRL+Y",i)}_addButtonsToFactory(e,t,o,n){const i=this.editor;i.ui.componentFactory.add(e,(()=>{const i=this._createButton(Kp,e,t,o,n);return i.set({tooltip:!0}),i})),i.ui.componentFactory.add("menuBar:"+e,(()=>this._createButton(Em,e,t,o,n)))}_createButton(e,t,o,n,i){const r=this.editor,s=r.locale,a=r.commands.get(t),l=new e(s);return l.set({label:o,icon:i,keystroke:n}),l.bind("isEnabled").to(a,"isEnabled"),this.listenTo(l,"execute",(()=>{r.execute(t),r.editing.view.focus()})),l}}class Xy extends br{static get requires(){return[Yy,Qy]}static get pluginName(){return"Undo"}static get isOfficialPlugin(){return!0}}function eA(e){return e.createContainerElement("figure",{class:"image"},[e.createEmptyElement("img"),e.createSlot("children")])}function tA(e,t){const o=e.plugins.get("ImageUtils"),n=e.plugins.has("ImageInlineEditing")&&e.plugins.has("ImageBlockEditing");return e=>{if(!o.isInlineImageView(e))return null;if(!n)return i(e);return("block"==e.getStyle("display")||e.findAncestor(o.isBlockImageView)?"imageBlock":"imageInline")!==t?null:i(e)};function i(e){const t={name:!0};return e.hasAttribute("src")&&(t.attributes=["src"]),t}}function oA(e,t){const o=or(t.getSelectedBlocks());return!o||e.isObject(o)||o.isEmpty&&"listItem"!=o.name?"imageBlock":"imageInline"}function nA(e){return e&&e.endsWith("px")?parseInt(e):null}function iA(e){const t=nA(e.getStyle("width")),o=nA(e.getStyle("height"));return!(!t||!o)}const rA=/^(image|image-inline)$/;class sA extends br{constructor(){super(...arguments),this._domEmitter=new(On())}static get pluginName(){return"ImageUtils"}static get isOfficialPlugin(){return!0}isImage(e){return this.isInlineImage(e)||this.isBlockImage(e)}isInlineImageView(e){return!!e&&e.is("element","img")}isBlockImageView(e){return!!e&&e.is("element","figure")&&e.hasClass("image")}insertImage(e={},t=null,o=null,n={}){const i=this.editor,r=i.model,s=r.document.selection,a=aA(i,t||s,o);e={...Object.fromEntries(s.getAttributes()),...e};for(const t in e)r.schema.checkAttribute(a,t)||delete e[t];return r.change((o=>{const{setImageSizes:i=!0}=n,s=o.createElement(a,e);return r.insertObject(s,t,null,{setSelection:"on",findOptimalPosition:t||"imageInline"==a?void 0:"auto"}),s.parent?(i&&this.setImageNaturalSizeAttributes(s),s):null}))}setImageNaturalSizeAttributes(e){const t=e.getAttribute("src");t&&(e.getAttribute("width")||e.getAttribute("height")||this.editor.model.change((o=>{const n=new s.window.Image;this._domEmitter.listenTo(n,"load",(()=>{e.getAttribute("width")||e.getAttribute("height")||this.editor.model.enqueueChange(o.batch,(t=>{t.setAttribute("width",n.naturalWidth,e),t.setAttribute("height",n.naturalHeight,e)})),this._domEmitter.stopListening(n,"load")})),n.src=t})))}getClosestSelectedImageWidget(e){const t=e.getFirstPosition();if(!t)return null;const o=e.getSelectedElement();if(o&&this.isImageWidget(o))return o;let n=t.parent;for(;n;){if(n.is("element")&&this.isImageWidget(n))return n;n=n.parent}return null}getClosestSelectedImageElement(e){const t=e.getSelectedElement();return this.isImage(t)?t:e.getFirstPosition().findAncestor("imageBlock")}getImageWidgetFromImageView(e){return e.findAncestor({classes:rA})}isImageAllowed(){const e=this.editor.model.document.selection;return function(e,t){const o=aA(e,t,null);if("imageBlock"==o){const o=function(e,t){const o=xw(e,t),n=o.start.parent;if(n.isEmpty&&!n.is("element","$root"))return n.parent;return n}(t,e.model);if(e.model.schema.checkChild(o,"imageBlock"))return!0}else if(e.model.schema.checkChild(t.focus,"imageInline"))return!0;return!1}(this.editor,e)&&function(e){return[...e.focus.getAncestors()].every((e=>!e.is("element","imageBlock")))}(e)}toImageWidget(e,t,o){t.setCustomProperty("image",!0,e);return _w(e,t,{label:()=>{const t=this.findViewImgElement(e).getAttribute("alt");return t?`${t} ${o}`:o}})}isImageWidget(e){return!!e.getCustomProperty("image")&&ww(e)}isBlockImage(e){return!!e&&e.is("element","imageBlock")}isInlineImage(e){return!!e&&e.is("element","imageInline")}findViewImgElement(e){if(this.isInlineImageView(e))return e;const t=this.editor.editing.view;for(const{item:o}of t.createRangeIn(e))if(this.isInlineImageView(o))return o}destroy(){return this._domEmitter.stopListening(),super.destroy()}}function aA(e,t,o){const n=e.model.schema,i=e.config.get("image.insert.type");return e.plugins.has("ImageBlockEditing")?e.plugins.has("ImageInlineEditing")?o||("inline"===i?"imageInline":"auto"!==i?"imageBlock":t.is("selection")?oA(n,t):n.checkChild(t,"imageInline")?"imageInline":"imageBlock"):"imageBlock":"imageInline"}new RegExp(String(/^(http(s)?:\/\/)?[\w-]+\.[\w.~:/[\]@!$&'()*+,;=%-]+/.source+/\.(jpg|jpeg|png|gif|ico|webp|JPG|JPEG|PNG|GIF|ICO|WEBP)/.source+/(\?[\w.~:/[\]@!$&'()*+,;=%-]*)?/.source+/(#[\w.~:/[\]@!$&'()*+,;=%-]*)?$/.source));class lA extends wr{refresh(){const e=this.editor.plugins.get("ImageUtils").getClosestSelectedImageElement(this.editor.model.document.selection);this.isEnabled=!!e,this.isEnabled&&e.hasAttribute("alt")?this.value=e.getAttribute("alt"):this.value=!1}execute(e){const t=this.editor,o=t.plugins.get("ImageUtils"),n=t.model,i=o.getClosestSelectedImageElement(n.document.selection);n.change((t=>{t.setAttribute("alt",e.newValue,i)}))}}class cA extends br{static get requires(){return[sA]}static get pluginName(){return"ImageTextAlternativeEditing"}static get isOfficialPlugin(){return!0}init(){this.editor.commands.add("imageTextAlternative",new lA(this.editor))}}var dA=i(8429),uA={attributes:{"data-cke":!0}};uA.setAttributes=Xr(),uA.insert=Yr().bind(null,"head"),uA.domAPI=Zr(),uA.insertStyleElement=ts();Gr()(dA.A,uA);dA.A&&dA.A.locals&&dA.A.locals;var hA=i(871),pA={attributes:{"data-cke":!0}};pA.setAttributes=Xr(),pA.insert=Yr().bind(null,"head"),pA.domAPI=Zr(),pA.insertStyleElement=ts();Gr()(hA.A,pA);hA.A&&hA.A.locals&&hA.A.locals;class mA extends zp{constructor(e){super(e);const t=this.locale.t;this.focusTracker=new nr,this.keystrokes=new ar,this.labeledInput=this._createLabeledInputView(),this.saveButtonView=this._createButton(t("Save"),up.check,"ck-button-save"),this.saveButtonView.type="submit",this.cancelButtonView=this._createButton(t("Cancel"),up.cancel,"ck-button-cancel","cancel"),this._focusables=new hp,this._focusCycler=new Xp({focusables:this._focusables,focusTracker:this.focusTracker,keystrokeHandler:this.keystrokes,actions:{focusPrevious:"shift + tab",focusNext:"tab"}}),this.setTemplate({tag:"form",attributes:{class:["ck","ck-text-alternative-form","ck-responsive-form"],tabindex:"-1"},children:[this.labeledInput,this.saveButtonView,this.cancelButtonView]})}render(){super.render(),this.keystrokes.listenTo(this.element),Vp({view:this}),[this.labeledInput,this.saveButtonView,this.cancelButtonView].forEach((e=>{this._focusables.add(e),this.focusTracker.add(e.element)}))}destroy(){super.destroy(),this.focusTracker.destroy(),this.keystrokes.destroy()}_createButton(e,t,o,n){const i=new Kp(this.locale);return i.set({label:e,icon:t,tooltip:!0}),i.extendTemplate({attributes:{class:o}}),n&&i.delegate("execute").to(this,n),i}_createLabeledInputView(){const e=this.locale.t,t=new dg(this.locale,Ef);return t.label=e("Text alternative"),t}}function gA(e){const t=e.editing.view,o=Wg.defaultPositions,n=e.plugins.get("ImageUtils");return{target:t.domConverter.mapViewToDom(n.getClosestSelectedImageWidget(t.document.selection)),positions:[o.northArrowSouth,o.northArrowSouthWest,o.northArrowSouthEast,o.southArrowNorth,o.southArrowNorthWest,o.southArrowNorthEast,o.viewportStickyNorth]}}class fA extends br{static get requires(){return[kk]}static get pluginName(){return"ImageTextAlternativeUI"}static get isOfficialPlugin(){return!0}init(){this._createButton()}destroy(){super.destroy(),this._form&&this._form.destroy()}_createButton(){const e=this.editor,t=e.t;e.ui.componentFactory.add("imageTextAlternative",(o=>{const n=e.commands.get("imageTextAlternative"),i=new Kp(o);return i.set({label:t("Change image text alternative"),icon:up.textAlternative,tooltip:!0}),i.bind("isEnabled").to(n,"isEnabled"),i.bind("isOn").to(n,"value",(e=>!!e)),this.listenTo(i,"execute",(()=>{this._showForm()})),i}))}_createForm(){const e=this.editor,t=e.editing.view.document,o=e.plugins.get("ImageUtils");this._balloon=this.editor.plugins.get("ContextualBalloon"),this._form=new(Np(mA))(e.locale),this._form.render(),this.listenTo(this._form,"submit",(()=>{e.execute("imageTextAlternative",{newValue:this._form.labeledInput.fieldView.element.value}),this._hideForm(!0)})),this.listenTo(this._form,"cancel",(()=>{this._hideForm(!0)})),this._form.keystrokes.set("Esc",((e,t)=>{this._hideForm(!0),t()})),this.listenTo(e.ui,"update",(()=>{o.getClosestSelectedImageWidget(t.selection)?this._isVisible&&function(e){const t=e.plugins.get("ContextualBalloon");if(e.plugins.get("ImageUtils").getClosestSelectedImageWidget(e.editing.view.document.selection)){const o=gA(e);t.updatePosition(o)}}(e):this._hideForm(!0)})),Op({emitter:this._form,activator:()=>this._isVisible,contextElements:()=>[this._balloon.view.element],callback:()=>this._hideForm()})}_showForm(){if(this._isVisible)return;this._form||this._createForm();const e=this.editor,t=e.commands.get("imageTextAlternative"),o=this._form.labeledInput;this._form.disableCssTransitions(),this._isInBalloon||this._balloon.add({view:this._form,position:gA(e)}),o.fieldView.value=o.fieldView.element.value=t.value||"",this._form.labeledInput.fieldView.select(),this._form.enableCssTransitions()}_hideForm(e=!1){this._isInBalloon&&(this._form.focusTracker.isFocused&&this._form.saveButtonView.focus(),this._balloon.remove(this._form),e&&this.editor.editing.view.focus())}get _isVisible(){return!!this._balloon&&this._balloon.visibleView===this._form}get _isInBalloon(){return!!this._balloon&&this._balloon.hasView(this._form)}}class bA extends br{static get requires(){return[cA,fA]}static get pluginName(){return"ImageTextAlternative"}static get isOfficialPlugin(){return!0}}function kA(e,t){const o=(t,o,n)=>{if(!n.consumable.consume(o.item,t.name))return;const i=n.writer,r=n.mapper.toViewElement(o.item),s=e.findViewImgElement(r);null===o.attributeNewValue?(i.removeAttribute("srcset",s),i.removeAttribute("sizes",s)):o.attributeNewValue&&(i.setAttribute("srcset",o.attributeNewValue,s),i.setAttribute("sizes","100vw",s))};return e=>{e.on(`attribute:srcset:${t}`,o)}}function wA(e,t,o){const n=(t,o,n)=>{if(!n.consumable.consume(o.item,t.name))return;const i=n.writer,r=n.mapper.toViewElement(o.item),s=e.findViewImgElement(r);i.setAttribute(o.attributeKey,o.attributeNewValue||"",s)};return e=>{e.on(`attribute:${o}:${t}`,n)}}class _A extends Xa{observe(e){this.listenTo(e,"load",((e,t)=>{const o=t.target;this.checkShouldIgnoreEventFromTarget(o)||"IMG"==o.tagName&&this._fireEvents(t)}),{useCapture:!0})}stopObserving(e){this.stopListening(e)}_fireEvents(e){this.isEnabled&&(this.document.fire("layoutChanged"),this.document.fire("imageLoaded",e))}}class yA extends wr{constructor(e){super(e);const t=e.config.get("image.insert.type");e.plugins.has("ImageBlockEditing")||"block"===t&&T("image-block-plugin-required"),e.plugins.has("ImageInlineEditing")||"inline"===t&&T("image-inline-plugin-required")}refresh(){const e=this.editor.plugins.get("ImageUtils");this.isEnabled=e.isImageAllowed()}execute(e){const t=Si(e.source),o=this.editor.model.document.selection,n=this.editor.plugins.get("ImageUtils"),i=Object.fromEntries(o.getAttributes());t.forEach(((t,r)=>{const s=o.getSelectedElement();if("string"==typeof t&&(t={src:t}),r&&s&&n.isImage(s)){const o=this.editor.model.createPositionAfter(s);n.insertImage({...t,...i},o,e.imageType)}else e.breakBlock?n.insertImage({...t,...i},o.getFirstPosition(),e.imageType):n.insertImage({...t,...i},null,e.imageType)}))}}class AA extends wr{constructor(e){super(e),this.decorate("cleanupImage")}refresh(){const e=this.editor.plugins.get("ImageUtils"),t=this.editor.model.document.selection.getSelectedElement();this.isEnabled=e.isImage(t),this.value=this.isEnabled?t.getAttribute("src"):null}execute(e){const t=this.editor.model.document.selection.getSelectedElement(),o=this.editor.plugins.get("ImageUtils");this.editor.model.change((n=>{n.setAttribute("src",e.source,t),this.cleanupImage(n,t),o.setImageNaturalSizeAttributes(t)}))}cleanupImage(e,t){e.removeAttribute("srcset",t),e.removeAttribute("sizes",t),e.removeAttribute("sources",t),e.removeAttribute("width",t),e.removeAttribute("height",t),e.removeAttribute("alt",t)}}class CA extends br{static get requires(){return[sA]}static get pluginName(){return"ImageEditing"}static get isOfficialPlugin(){return!0}init(){const e=this.editor,t=e.conversion;e.editing.view.addObserver(_A),t.for("upcast").attributeToAttribute({view:{name:"img",key:"alt"},model:"alt"}).attributeToAttribute({view:{name:"img",key:"srcset"},model:"srcset"});const o=new yA(e),n=new AA(e);e.commands.add("insertImage",o),e.commands.add("replaceImageSource",n),e.commands.add("imageInsert",o)}}class vA extends br{static get requires(){return[sA]}static get pluginName(){return"ImageSizeAttributes"}static get isOfficialPlugin(){return!0}afterInit(){this._registerSchema(),this._registerConverters("imageBlock"),this._registerConverters("imageInline")}_registerSchema(){this.editor.plugins.has("ImageBlockEditing")&&this.editor.model.schema.extend("imageBlock",{allowAttributes:["width","height"]}),this.editor.plugins.has("ImageInlineEditing")&&this.editor.model.schema.extend("imageInline",{allowAttributes:["width","height"]})}_registerConverters(e){const t=this.editor,o=t.plugins.get("ImageUtils"),n="imageBlock"===e?"figure":"img";function i(t,n,i,r,s=!1){t.on(`attribute:${n}:${e}`,((t,n,a)=>{if(!a.consumable.consume(n.item,t.name))return;const l=a.writer,c=a.mapper.toViewElement(n.item),d=o.findViewImgElement(c);null!==n.attributeNewValue?l.setAttribute(i,n.attributeNewValue,d):l.removeAttribute(i,d);const u=n.item.getAttribute("width"),h=n.item.getAttribute("height"),p=u&&h;if(p&&s&&l.setAttribute("loading","lazy",d),n.item.hasAttribute("sources"))return;const m=n.item.hasAttribute("resizedWidth");("imageInline"!==e||m||r)&&p&&l.setStyle("aspect-ratio",`${u}/${h}`,d)}))}t.conversion.for("upcast").attributeToAttribute({view:{name:n,styles:{width:/.+/}},model:{key:"width",value:e=>iA(e)?nA(e.getStyle("width")):null}}).attributeToAttribute({view:{name:n,key:"width"},model:"width"}).attributeToAttribute({view:{name:n,styles:{height:/.+/}},model:{key:"height",value:e=>iA(e)?nA(e.getStyle("height")):null}}).attributeToAttribute({view:{name:n,key:"height"},model:"height"}),t.conversion.for("editingDowncast").add((e=>{i(e,"width","width",!0,!0),i(e,"height","height",!0,!0)})),t.conversion.for("dataDowncast").add((e=>{i(e,"width","width",!1),i(e,"height","height",!1)}))}}class xA extends wr{constructor(e,t){super(e),this._modelElementName=t}refresh(){const e=this.editor.plugins.get("ImageUtils"),t=e.getClosestSelectedImageElement(this.editor.model.document.selection);"imageBlock"===this._modelElementName?this.isEnabled=e.isInlineImage(t):this.isEnabled=e.isBlockImage(t)}execute(e={}){const t=this.editor,o=this.editor.model,n=t.plugins.get("ImageUtils"),i=n.getClosestSelectedImageElement(o.document.selection),r=Object.fromEntries(i.getAttributes());return r.src||r.uploadId?o.change((t=>{const{setImageSizes:s=!0}=e,a=Array.from(o.markers).filter((e=>e.getRange().containsItem(i))),l=n.insertImage(r,o.createSelection(i,"on"),this._modelElementName,{setImageSizes:s});if(!l)return null;const c=t.createRangeOn(l);for(const e of a){const o=e.getRange(),n="$graveyard"!=o.root.rootName?o.getJoined(c,!0):c;t.updateMarker(e,{range:n})}return{oldElement:i,newElement:l}})):null}}var EA=i(1091),DA={attributes:{"data-cke":!0}};DA.setAttributes=Xr(),DA.insert=Yr().bind(null,"head"),DA.domAPI=Zr(),DA.insertStyleElement=ts();Gr()(EA.A,DA);EA.A&&EA.A.locals&&EA.A.locals;class BA extends br{static get requires(){return[sA]}static get pluginName(){return"ImagePlaceholder"}static get isOfficialPlugin(){return!0}afterInit(){this._setupSchema(),this._setupConversion(),this._setupLoadListener()}_setupSchema(){const e=this.editor.model.schema;e.isRegistered("imageBlock")&&e.extend("imageBlock",{allowAttributes:["placeholder"]}),e.isRegistered("imageInline")&&e.extend("imageInline",{allowAttributes:["placeholder"]})}_setupConversion(){const e=this.editor,t=e.conversion,o=e.plugins.get("ImageUtils");t.for("editingDowncast").add((e=>{e.on("attribute:placeholder",((e,t,n)=>{if(!n.consumable.test(t.item,e.name))return;if(!t.item.is("element","imageBlock")&&!t.item.is("element","imageInline"))return;n.consumable.consume(t.item,e.name);const i=n.writer,r=n.mapper.toViewElement(t.item),s=o.findViewImgElement(r);t.attributeNewValue?(i.addClass("image_placeholder",s),i.setStyle("background-image",`url(${t.attributeNewValue})`,s),i.setCustomProperty("editingPipeline:doNotReuseOnce",!0,s)):(i.removeClass("image_placeholder",s),i.removeStyle("background-image",s))}))}))}_setupLoadListener(){const e=this.editor,t=e.model,o=e.editing,n=o.view,i=e.plugins.get("ImageUtils");n.addObserver(_A),this.listenTo(n.document,"imageLoaded",((e,r)=>{const s=n.domConverter.mapDomToView(r.target);if(!s)return;const a=i.getImageWidgetFromImageView(s);if(!a)return;const l=o.mapper.toModelElement(a);l&&l.hasAttribute("placeholder")&&t.enqueueChange({isUndoable:!1},(e=>{e.removeAttribute("placeholder",l)}))}))}}class SA extends br{static get requires(){return[CA,vA,sA,BA,By]}static get pluginName(){return"ImageBlockEditing"}static get isOfficialPlugin(){return!0}init(){const e=this.editor;e.model.schema.register("imageBlock",{inheritAllFrom:"$blockObject",allowAttributes:["alt","src","srcset"]}),this._setupConversion(),e.plugins.has("ImageInlineEditing")&&(e.commands.add("imageTypeBlock",new xA(this.editor,"imageBlock")),this._setupClipboardIntegration())}_setupConversion(){const e=this.editor,t=e.t,o=e.conversion,n=e.plugins.get("ImageUtils");o.for("dataDowncast").elementToStructure({model:"imageBlock",view:(e,{writer:t})=>eA(t)}),o.for("editingDowncast").elementToStructure({model:"imageBlock",view:(e,{writer:o})=>n.toImageWidget(eA(o),o,t("image widget"))}),o.for("downcast").add(wA(n,"imageBlock","src")).add(wA(n,"imageBlock","alt")).add(kA(n,"imageBlock")),o.for("upcast").elementToElement({view:tA(e,"imageBlock"),model:(e,{writer:t})=>t.createElement("imageBlock",e.hasAttribute("src")?{src:e.getAttribute("src")}:void 0)}).add(function(e){const t=(t,o,n)=>{if(!n.consumable.test(o.viewItem,{name:!0,classes:"image"}))return;const i=e.findViewImgElement(o.viewItem);if(!i||!n.consumable.test(i,{name:!0}))return;n.consumable.consume(o.viewItem,{name:!0,classes:"image"});const r=or(n.convertItem(i,o.modelCursor).modelRange.getItems());r?(n.convertChildren(o.viewItem,r),n.updateConversionResult(r,o)):n.consumable.revert(o.viewItem,{name:!0,classes:"image"})};return e=>{e.on("element:figure",t)}}(n))}_setupClipboardIntegration(){const e=this.editor,t=e.model,o=e.editing.view,n=e.plugins.get("ImageUtils"),i=e.plugins.get("ClipboardPipeline");this.listenTo(i,"inputTransformation",((i,r)=>{const s=Array.from(r.content.getChildren());let a;if(!s.every(n.isInlineImageView))return;a=r.targetRanges?e.editing.mapper.toModelRange(r.targetRanges[0]):t.document.selection.getFirstRange();const l=t.createSelection(a);if("imageBlock"===oA(t.schema,l)){const e=new oh(o.document),t=s.map((t=>e.createElement("figure",{class:"image"},t)));r.content=e.createDocumentFragment(t)}})),this.listenTo(i,"contentInsertion",((e,o)=>{"paste"===o.method&&t.change((e=>{const t=e.createRangeIn(o.content);for(const e of t.getItems())e.is("element","imageBlock")&&n.setImageNaturalSizeAttributes(e)}))}))}}var TA=i(1545),IA={attributes:{"data-cke":!0}};IA.setAttributes=Xr(),IA.insert=Yr().bind(null,"head"),IA.domAPI=Zr(),IA.insertStyleElement=ts();Gr()(TA.A,IA);TA.A&&TA.A.locals&&TA.A.locals;class PA extends zp{constructor(e,t=[]){super(e),this.focusTracker=new nr,this.keystrokes=new ar,this._focusables=new hp,this.children=this.createCollection(),this._focusCycler=new Xp({focusables:this._focusables,focusTracker:this.focusTracker,keystrokeHandler:this.keystrokes,actions:{focusPrevious:"shift + tab",focusNext:"tab"}});for(const e of t)this.children.add(e),this._focusables.add(e),e instanceof Gm&&this._focusables.addMany(e.children);this.setTemplate({tag:"form",attributes:{class:["ck","ck-image-insert-form"],tabindex:-1},children:this.children})}render(){super.render(),Vp({view:this});for(const e of this._focusables)this.focusTracker.add(e.element);this.keystrokes.listenTo(this.element);const e=e=>e.stopPropagation();this.keystrokes.set("arrowright",e),this.keystrokes.set("arrowleft",e),this.keystrokes.set("arrowup",e),this.keystrokes.set("arrowdown",e)}destroy(){super.destroy(),this.focusTracker.destroy(),this.keystrokes.destroy()}focus(){this._focusCycler.focusFirst()}}class FA extends br{static get pluginName(){return"ImageInsertUI"}static get isOfficialPlugin(){return!0}static get requires(){return[sA]}constructor(e){super(e),this._integrations=new Map,e.config.define("image.insert.integrations",["upload","assetManager","url"])}init(){const e=this.editor,t=e.model.document.selection,o=e.plugins.get("ImageUtils");this.set("isImageSelected",!1),this.listenTo(e.model.document,"change",(()=>{this.isImageSelected=o.isImage(t.getSelectedElement())}));const n=e=>this._createToolbarComponent(e);e.ui.componentFactory.add("insertImage",n),e.ui.componentFactory.add("imageInsert",n),e.ui.componentFactory.add("menuBar:insertImage",(e=>this._createMenuBarComponent(e)))}registerIntegration({name:e,observable:t,buttonViewCreator:o,formViewCreator:n,menuBarButtonViewCreator:i,requiresForm:r=!1,override:s=!1}){this._integrations.has(e)&&!s&&T("image-insert-integration-exists",{name:e}),this._integrations.set(e,{observable:t,buttonViewCreator:o,menuBarButtonViewCreator:i,formViewCreator:n,requiresForm:r})}_createToolbarComponent(e){const t=this.editor,o=e.t,n=this._prepareIntegrations();if(!n.length)return null;let i;const r=n[0];if(1==n.length){if(!r.requiresForm)return r.buttonViewCreator(!0);i=r.buttonViewCreator(!0)}else{const t=r.buttonViewCreator(!1);i=new pf(e,t),i.tooltip=!0,i.bind("label").to(this,"isImageSelected",(e=>o(e?"Replace image":"Insert image")))}const s=this.dropdownView=kf(e,i),a=n.map((({observable:e})=>"function"==typeof e?e():e));return s.bind("isEnabled").toMany(a,"isEnabled",((...e)=>e.some((e=>e)))),s.once("change:isOpen",(()=>{const e=n.flatMap((({formViewCreator:e})=>e(1==n.length))),o=new PA(t.locale,e);s.panelView.children.add(o)})),s}_createMenuBarComponent(e){const t=e.t,o=this._prepareIntegrations();if(!o.length)return null;const n=o.flatMap((({menuBarButtonViewCreator:e})=>e(1==o.length))),i=new Qk(e),r=new Xk(e);i.panelView.children.add(r),i.buttonView.set({icon:up.image,label:t("Image")});for(const t of n){const o=new jb(e,i);o.children.add(t),r.items.add(o),t.delegate("execute").to(i)}return i}_prepareIntegrations(){const e=this.editor.config.get("image.insert.integrations"),t=[];if(!e.length)return T("image-insert-integrations-not-specified"),t;for(const o of e)this._integrations.has(o)?t.push(this._integrations.get(o)):["upload","assetManager","url"].includes(o)||T("image-insert-unknown-integration",{item:o});return t.length||T("image-insert-integrations-not-registered"),t}}var RA=i(8574),MA={attributes:{"data-cke":!0}};MA.setAttributes=Xr(),MA.insert=Yr().bind(null,"head"),MA.domAPI=Zr(),MA.insertStyleElement=ts();Gr()(RA.A,MA);RA.A&&RA.A.locals&&RA.A.locals;class zA extends br{static get requires(){return[CA,vA,sA,BA,By]}static get pluginName(){return"ImageInlineEditing"}static get isOfficialPlugin(){return!0}init(){const e=this.editor;e.model.schema.register("imageInline",{inheritAllFrom:"$inlineObject",allowAttributes:["alt","src","srcset"],disallowIn:["caption"]}),this._setupConversion(),e.plugins.has("ImageBlockEditing")&&(e.commands.add("imageTypeInline",new xA(this.editor,"imageInline")),this._setupClipboardIntegration())}_setupConversion(){const e=this.editor,t=e.t,o=e.conversion,n=e.plugins.get("ImageUtils");o.for("dataDowncast").elementToElement({model:"imageInline",view:(e,{writer:t})=>t.createEmptyElement("img")}),o.for("editingDowncast").elementToStructure({model:"imageInline",view:(e,{writer:o})=>n.toImageWidget(function(e){return e.createContainerElement("span",{class:"image-inline"},e.createEmptyElement("img"))}(o),o,t("image widget"))}),o.for("downcast").add(wA(n,"imageInline","src")).add(wA(n,"imageInline","alt")).add(kA(n,"imageInline")),o.for("upcast").elementToElement({view:tA(e,"imageInline"),model:(e,{writer:t})=>t.createElement("imageInline",e.hasAttribute("src")?{src:e.getAttribute("src")}:void 0)})}_setupClipboardIntegration(){const e=this.editor,t=e.model,o=e.editing.view,n=e.plugins.get("ImageUtils"),i=e.plugins.get("ClipboardPipeline");this.listenTo(i,"inputTransformation",((i,r)=>{const s=Array.from(r.content.getChildren());let a;if(!s.every(n.isBlockImageView))return;a=r.targetRanges?e.editing.mapper.toModelRange(r.targetRanges[0]):t.document.selection.getFirstRange();const l=t.createSelection(a);if("imageInline"===oA(t.schema,l)){const e=new oh(o.document),t=s.map((t=>1===t.childCount?(Array.from(t.getAttributes()).forEach((o=>e.setAttribute(...o,n.findViewImgElement(t)))),t.getChild(0)):t));r.content=e.createDocumentFragment(t)}})),this.listenTo(i,"contentInsertion",((e,o)=>{"paste"===o.method&&t.change((e=>{const t=e.createRangeIn(o.content);for(const e of t.getItems())e.is("element","imageInline")&&n.setImageNaturalSizeAttributes(e)}))}))}}class OA extends br{static get pluginName(){return"ImageCaptionUtils"}static get isOfficialPlugin(){return!0}static get requires(){return[sA]}getCaptionFromImageModelElement(e){for(const t of e.getChildren())if(t&&t.is("element","caption"))return t;return null}getCaptionFromModelSelection(e){const t=this.editor.plugins.get("ImageUtils"),o=e.getFirstPosition().findAncestor("caption");return o&&t.isBlockImage(o.parent)?o:null}matchImageCaptionViewElement(e){const t=this.editor.plugins.get("ImageUtils");return"figcaption"==e.name&&t.isBlockImageView(e.parent)?{name:!0}:null}}class NA extends wr{refresh(){const e=this.editor,t=e.plugins.get("ImageCaptionUtils"),o=e.plugins.get("ImageUtils");if(!e.plugins.has(SA))return this.isEnabled=!1,void(this.value=!1);const n=e.model.document.selection,i=n.getSelectedElement();if(!i){const e=t.getCaptionFromModelSelection(n);return this.isEnabled=!!e,void(this.value=!!e)}this.isEnabled=o.isImage(i),this.isEnabled?this.value=!!t.getCaptionFromImageModelElement(i):this.value=!1}execute(e={}){const{focusCaptionOnShow:t}=e;this.editor.model.change((e=>{this.value?this._hideImageCaption(e):this._showImageCaption(e,t)}))}_showImageCaption(e,t){const o=this.editor.model.document.selection,n=this.editor.plugins.get("ImageCaptionEditing"),i=this.editor.plugins.get("ImageUtils");let r=o.getSelectedElement();const s=n._getSavedCaption(r);i.isInlineImage(r)&&(this.editor.execute("imageTypeBlock"),r=o.getSelectedElement());const a=s||e.createElement("caption");e.append(a,r),t&&e.setSelection(a,"in")}_hideImageCaption(e){const t=this.editor,o=t.model.document.selection,n=t.plugins.get("ImageCaptionEditing"),i=t.plugins.get("ImageCaptionUtils");let r,s=o.getSelectedElement();s?r=i.getCaptionFromImageModelElement(s):(r=i.getCaptionFromModelSelection(o),s=r.parent),n._saveCaption(s,r),e.setSelection(s,"on"),e.remove(r)}}class VA extends br{static get requires(){return[sA,OA]}static get pluginName(){return"ImageCaptionEditing"}static get isOfficialPlugin(){return!0}constructor(e){super(e),this._savedCaptionsMap=new WeakMap}init(){const e=this.editor,t=e.model.schema;t.isRegistered("caption")?t.extend("caption",{allowIn:"imageBlock"}):t.register("caption",{allowIn:"imageBlock",allowContentOf:"$block",isLimit:!0}),e.commands.add("toggleImageCaption",new NA(this.editor)),this._setupConversion(),this._setupImageTypeCommandsIntegration(),this._registerCaptionReconversion()}_setupConversion(){const e=this.editor,t=e.editing.view,o=e.plugins.get("ImageUtils"),n=e.plugins.get("ImageCaptionUtils"),i=e.t;e.conversion.for("upcast").elementToElement({view:e=>n.matchImageCaptionViewElement(e),model:"caption"}),e.conversion.for("dataDowncast").elementToElement({model:"caption",view:(e,{writer:t})=>o.isBlockImage(e.parent)?t.createContainerElement("figcaption"):null}),e.conversion.for("editingDowncast").elementToElement({model:"caption",view:(e,{writer:n})=>{if(!o.isBlockImage(e.parent))return null;const r=n.createEditableElement("figcaption");n.setCustomProperty("imageCaption",!0,r),r.placeholder=i("Enter image caption"),ss({view:t,element:r,keepOnFocus:!0});const s=e.parent.getAttribute("alt");return vw(r,n,{label:s?i("Caption for image: %0",[s]):i("Caption for the image")})}})}_setupImageTypeCommandsIntegration(){const e=this.editor,t=e.plugins.get("ImageUtils"),o=e.plugins.get("ImageCaptionUtils"),n=e.commands.get("imageTypeInline"),i=e.commands.get("imageTypeBlock"),r=e=>{if(!e.return)return;const{oldElement:n,newElement:i}=e.return;if(!n)return;if(t.isBlockImage(n)){const e=o.getCaptionFromImageModelElement(n);if(e)return void this._saveCaption(i,e)}const r=this._getSavedCaption(n);r&&this._saveCaption(i,r)};n&&this.listenTo(n,"execute",r,{priority:"low"}),i&&this.listenTo(i,"execute",r,{priority:"low"})}_getSavedCaption(e){const t=this._savedCaptionsMap.get(e);return t?Fc.fromJSON(t):null}_saveCaption(e,t){this._savedCaptionsMap.set(e,t.toJSON())}_registerCaptionReconversion(){const e=this.editor,t=e.model,o=e.plugins.get("ImageUtils"),n=e.plugins.get("ImageCaptionUtils");t.document.on("change:data",(()=>{const i=t.document.differ.getChanges();for(const t of i){if("alt"!==t.attributeKey)continue;const i=t.range.start.nodeAfter;if(o.isBlockImage(i)){const t=n.getCaptionFromImageModelElement(i);if(!t)return;e.editing.reconvertItem(t)}}}))}}class LA extends br{static get requires(){return[OA]}static get pluginName(){return"ImageCaptionUI"}static get isOfficialPlugin(){return!0}init(){const e=this.editor,t=e.editing.view,o=e.plugins.get("ImageCaptionUtils"),n=e.t;e.ui.componentFactory.add("toggleImageCaption",(i=>{const r=e.commands.get("toggleImageCaption"),s=new Kp(i);return s.set({icon:up.caption,tooltip:!0,isToggleable:!0}),s.bind("isOn","isEnabled").to(r,"value","isEnabled"),s.bind("label").to(r,"value",(e=>n(e?"Toggle caption off":"Toggle caption on"))),this.listenTo(s,"execute",(()=>{e.execute("toggleImageCaption",{focusCaptionOnShow:!0});const n=o.getCaptionFromModelSelection(e.model.document.selection);if(n){const o=e.editing.mapper.toViewElement(n);t.scrollToTheSelection(),t.change((e=>{e.addClass("image__caption_highlighted",o)}))}e.editing.view.focus()})),s}))}}var HA=i(3038),jA={attributes:{"data-cke":!0}};jA.setAttributes=Xr(),jA.insert=Yr().bind(null,"head"),jA.domAPI=Zr(),jA.insertStyleElement=ts();Gr()(HA.A,jA);HA.A&&HA.A.locals&&HA.A.locals;function qA(e){const t=e.map((e=>e.replace("+","\\+")));return new RegExp(`^image\\/(${t.join("|")})$`)}function $A(e){return new Promise(((t,o)=>{const n=e.getAttribute("src");fetch(n).then((e=>e.blob())).then((e=>{const o=UA(e,n),i=o.replace("image/",""),r=new File([e],`image.${i}`,{type:o});t(r)})).catch((e=>e&&"TypeError"===e.name?function(e){return function(e){return new Promise(((t,o)=>{const n=s.document.createElement("img");n.addEventListener("load",(()=>{const e=s.document.createElement("canvas");e.width=n.width,e.height=n.height;e.getContext("2d").drawImage(n,0,0),e.toBlob((e=>e?t(e):o()))})),n.addEventListener("error",(()=>o())),n.src=e}))}(e).then((t=>{const o=UA(t,e),n=o.replace("image/","");return new File([t],`image.${n}`,{type:o})}))}(n).then(t).catch(o):o(e)))}))}function UA(e,t){return e.type?e.type:t.match(/data:(image\/\w+);base64/)?t.match(/data:(image\/\w+);base64/)[1].toLowerCase():"image/jpeg"}class WA extends br{static get pluginName(){return"ImageUploadUI"}static get isOfficialPlugin(){return!0}init(){const e=this.editor;e.ui.componentFactory.add("uploadImage",(()=>this._createToolbarButton())),e.ui.componentFactory.add("imageUpload",(()=>this._createToolbarButton())),e.ui.componentFactory.add("menuBar:uploadImage",(()=>this._createMenuBarButton("standalone"))),e.plugins.has("ImageInsertUI")&&e.plugins.get("ImageInsertUI").registerIntegration({name:"upload",observable:()=>e.commands.get("uploadImage"),buttonViewCreator:()=>this._createToolbarButton(),formViewCreator:()=>this._createDropdownButton(),menuBarButtonViewCreator:e=>this._createMenuBarButton(e?"insertOnly":"insertNested")})}_createButton(e){const t=this.editor,o=t.locale,n=t.commands.get("uploadImage"),i=t.config.get("image.upload.types"),r=qA(i),s=new e(t.locale),a=o.t;return s.set({acceptedType:i.map((e=>`image/${e}`)).join(","),allowMultipleFiles:!0,label:a("Upload from computer"),icon:up.imageUpload}),s.bind("isEnabled").to(n),s.on("done",((e,o)=>{const n=Array.from(o).filter((e=>r.test(e.type)));n.length&&(t.execute("uploadImage",{file:n}),t.editing.view.focus())})),s}_createToolbarButton(){const e=this.editor.locale.t,t=this.editor.plugins.get("ImageInsertUI"),o=this.editor.commands.get("uploadImage"),n=this._createButton(Lm);return n.tooltip=!0,n.bind("label").to(t,"isImageSelected",o,"isAccessAllowed",((t,o)=>e(o?t?"Replace image from computer":"Upload image from computer":"You have no image upload permissions."))),n}_createDropdownButton(){const e=this.editor.locale.t,t=this.editor.plugins.get("ImageInsertUI"),o=this._createButton(Lm);return o.withText=!0,o.bind("label").to(t,"isImageSelected",(t=>e(t?"Replace from computer":"Upload from computer"))),o.on("execute",(()=>{t.dropdownView.isOpen=!1})),o}_createMenuBarButton(e){const t=this.editor.locale.t,o=this._createButton(tw);switch(o.withText=!0,e){case"standalone":o.label=t("Image from computer");break;case"insertOnly":o.label=t("Image");break;case"insertNested":o.label=t("From computer")}return o}}var GA=i(7504),KA={attributes:{"data-cke":!0}};KA.setAttributes=Xr(),KA.insert=Yr().bind(null,"head"),KA.domAPI=Zr(),KA.insertStyleElement=ts();Gr()(GA.A,KA);GA.A&&GA.A.locals&&GA.A.locals;var ZA=i(1230),JA={attributes:{"data-cke":!0}};JA.setAttributes=Xr(),JA.insert=Yr().bind(null,"head"),JA.domAPI=Zr(),JA.insertStyleElement=ts();Gr()(ZA.A,JA);ZA.A&&ZA.A.locals&&ZA.A.locals;var YA=i(1160),QA={attributes:{"data-cke":!0}};QA.setAttributes=Xr(),QA.insert=Yr().bind(null,"head"),QA.domAPI=Zr(),QA.insertStyleElement=ts();Gr()(YA.A,QA);YA.A&&YA.A.locals&&YA.A.locals;class XA extends br{static get pluginName(){return"ImageUploadProgress"}static get isOfficialPlugin(){return!0}constructor(e){super(e),this.uploadStatusChange=(e,t,o)=>{const n=this.editor,i=t.item,r=i.getAttribute("uploadId");if(!o.consumable.consume(t.item,e.name))return;const s=n.plugins.get("ImageUtils"),a=n.plugins.get(ny),l=r?t.attributeNewValue:null,c=this.placeholder,d=n.editing.mapper.toViewElement(i),u=o.writer;if("reading"==l)return eC(d,u),void tC(s,c,d,u);if("uploading"==l){const e=a.loaders.get(r);return eC(d,u),void(e?(oC(d,u),function(e,t,o,n){const i=function(e){const t=e.createUIElement("div",{class:"ck-progress-bar"});return e.setCustomProperty("progressBar",!0,t),t}(t);t.insert(t.createPositionAt(e,"end"),i),o.on("change:uploadedPercent",((e,t,o)=>{n.change((e=>{e.setStyle("width",o+"%",i)}))}))}(d,u,e,n.editing.view),function(e,t,o,n){if(n.data){const i=e.findViewImgElement(t);o.setAttribute("src",n.data,i)}}(s,d,u,e)):tC(s,c,d,u))}"complete"==l&&a.loaders.get(r)&&function(e,t,o){const n=t.createUIElement("div",{class:"ck-image-upload-complete-icon"});t.insert(t.createPositionAt(e,"end"),n),setTimeout((()=>{o.change((e=>e.remove(e.createRangeOn(n))))}),3e3)}(d,u,n.editing.view),function(e,t){iC(e,t,"progressBar")}(d,u),oC(d,u),function(e,t){t.removeClass("ck-appear",e)}(d,u)},this.placeholder="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw=="}init(){const e=this.editor;e.plugins.has("ImageBlockEditing")&&e.editing.downcastDispatcher.on("attribute:uploadStatus:imageBlock",this.uploadStatusChange),e.plugins.has("ImageInlineEditing")&&e.editing.downcastDispatcher.on("attribute:uploadStatus:imageInline",this.uploadStatusChange)}}function eC(e,t){e.hasClass("ck-appear")||t.addClass("ck-appear",e)}function tC(e,t,o,n){o.hasClass("ck-image-upload-placeholder")||n.addClass("ck-image-upload-placeholder",o);const i=e.findViewImgElement(o);i.getAttribute("src")!==t&&n.setAttribute("src",t,i),nC(o,"placeholder")||n.insert(n.createPositionAfter(i),function(e){const t=e.createUIElement("div",{class:"ck-upload-placeholder-loader"});return e.setCustomProperty("placeholder",!0,t),t}(n))}function oC(e,t){e.hasClass("ck-image-upload-placeholder")&&t.removeClass("ck-image-upload-placeholder",e),iC(e,t,"placeholder")}function nC(e,t){for(const o of e.getChildren())if(o.getCustomProperty(t))return o}function iC(e,t,o){const n=nC(e,o);n&&t.remove(t.createRangeOn(n))}class rC extends wr{constructor(e){super(e),this.set("isAccessAllowed",!0)}refresh(){const e=this.editor,t=e.plugins.get("ImageUtils"),o=e.model.document.selection.getSelectedElement();this.isEnabled=t.isImageAllowed()||t.isImage(o)}execute(e){const t=Si(e.file),o=this.editor.model.document.selection,n=this.editor.plugins.get("ImageUtils"),i=Object.fromEntries(o.getAttributes());t.forEach(((e,t)=>{const r=o.getSelectedElement();if(t&&r&&n.isImage(r)){const t=this.editor.model.createPositionAfter(r);this._uploadImage(e,i,t)}else this._uploadImage(e,i)}))}_uploadImage(e,t,o){const n=this.editor,i=n.plugins.get(ny).createLoader(e),r=n.plugins.get("ImageUtils");i&&r.insertImage({...t,uploadId:i.id},o)}}class sC extends br{static get requires(){return[ny,uk,By,sA]}static get pluginName(){return"ImageUploadEditing"}static get isOfficialPlugin(){return!0}constructor(e){super(e),this._uploadedImages=new Map,e.config.define("image",{upload:{types:["jpeg","png","gif","bmp","webp","tiff"]}}),this._uploadImageElements=new Map}init(){const e=this.editor,t=e.model.document,o=e.conversion,n=e.plugins.get(ny),i=e.plugins.get("ImageUtils"),r=e.plugins.get("ClipboardPipeline"),s=qA(e.config.get("image.upload.types")),a=new rC(e);e.commands.add("uploadImage",a),e.commands.add("imageUpload",a),o.for("upcast").attributeToAttribute({view:{name:"img",key:"uploadId"},model:"uploadId"}).add((e=>e.on("element:img",((e,t,o)=>{if(!o.consumable.test(t.viewItem,{attributes:["data-ck-upload-id"]}))return;const i=t.viewItem.getAttribute("data-ck-upload-id");if(!i)return;const[r]=Array.from(t.modelRange.getItems({shallow:!0})),s=n.loaders.get(i);r&&(o.writer.setAttribute("uploadId",i,r),o.consumable.consume(t.viewItem,{attributes:["data-ck-upload-id"]}),s&&s.data&&o.writer.setAttribute("uploadStatus",s.status,r))}),{priority:"low"}))),this.listenTo(e.editing.view.document,"clipboardInput",((t,o)=>{if(n=o.dataTransfer,Array.from(n.types).includes("text/html")&&""!==n.getData("text/html"))return;var n;const i=Array.from(o.dataTransfer.files).filter((e=>!!e&&s.test(e.type)));if(!i.length)return;t.stop(),e.model.change((t=>{o.targetRanges&&t.setSelection(o.targetRanges.map((t=>e.editing.mapper.toModelRange(t)))),e.execute("uploadImage",{file:i})}));if(!e.commands.get("uploadImage").isAccessAllowed){const t=e.plugins.get("Notification"),o=e.locale.t;t.showWarning(o("You have no image upload permissions."),{namespace:"image"})}})),this.listenTo(r,"inputTransformation",((t,o)=>{const r=Array.from(e.editing.view.createRangeIn(o.content)).map((e=>e.item)).filter((e=>function(e,t){return!(!e.isInlineImageView(t)||!t.getAttribute("src")||!t.getAttribute("src").match(/^data:image\/\w+;base64,/g)&&!t.getAttribute("src").match(/^blob:/g))}(i,e)&&!e.getAttribute("uploadProcessed"))).map((e=>({promise:$A(e),imageElement:e})));if(!r.length)return;const s=new oh(e.editing.view.document);for(const e of r){s.setAttribute("uploadProcessed",!0,e.imageElement);const t=n.createLoader(e.promise);t&&(s.setAttribute("src","",e.imageElement),s.setAttribute("uploadId",t.id,e.imageElement))}})),e.editing.view.document.on("dragover",((e,t)=>{t.preventDefault()})),t.on("change",(()=>{const o=t.differ.getChanges({includeChangesInGraveyard:!0}).reverse(),i=new Set;for(const t of o)if("insert"==t.type&&"$text"!=t.name){const o=t.position.nodeAfter,r="$graveyard"==t.position.root.rootName;for(const t of aC(e,o)){const o=t.getAttribute("uploadId");if(!o)continue;const s=n.loaders.get(o);if(s)if(r){if(!i.has(o)){Array.from(this._uploadImageElements.get(o)).every((e=>"$graveyard"==e.root.rootName))&&s.abort()}}else i.add(o),this._uploadImageElements.has(o)?this._uploadImageElements.get(o).add(t):this._uploadImageElements.set(o,new Set([t])),"idle"==s.status&&this._readAndUpload(s);else!r&&this._uploadedImages.has(o)&&e.model.enqueueChange({isUndoable:!1},(e=>{e.setAttribute("uploadStatus","complete",t),this.fire("uploadComplete",{data:this._uploadedImages.get(o),imageElement:t})}))}}})),this.on("uploadComplete",((e,{imageElement:t,data:o})=>{const n=o.urls?o.urls:o;this.editor.model.change((e=>{e.setAttribute("src",n.default,t),this._parseAndSetSrcsetAttributeOnImage(n,t,e),i.setImageNaturalSizeAttributes(t)}))}),{priority:"low"})}afterInit(){const e=this.editor.model.schema;this.editor.plugins.has("ImageBlockEditing")&&(e.extend("imageBlock",{allowAttributes:["uploadId","uploadStatus"]}),this._registerConverters("imageBlock")),this.editor.plugins.has("ImageInlineEditing")&&(e.extend("imageInline",{allowAttributes:["uploadId","uploadStatus"]}),this._registerConverters("imageInline"))}_readAndUpload(e){const t=this.editor,o=t.model,n=t.locale.t,i=t.plugins.get(ny),r=t.plugins.get(uk),s=t.plugins.get("ImageUtils"),a=this._uploadImageElements;return o.enqueueChange({isUndoable:!1},(t=>{const o=a.get(e.id);for(const e of o)t.setAttribute("uploadStatus","reading",e)})),e.read().then((()=>{const i=e.upload();t.ui&&t.ui.ariaLiveAnnouncer.announce(n("Uploading image"));for(const n of a.get(e.id)){if(c.isSafari){const e=t.editing.mapper.toViewElement(n),o=s.findViewImgElement(e);t.editing.view.once("render",(()=>{if(!o.parent)return;const e=t.editing.view.domConverter.mapViewToDom(o.parent);if(!e)return;const n=e.style.display;e.style.display="none",e._ckHack=e.offsetHeight,e.style.display=n}))}o.enqueueChange({isUndoable:!1},(e=>{e.setAttribute("uploadStatus","uploading",n)}))}return i})).then((i=>{o.enqueueChange({isUndoable:!1},(o=>{for(const t of a.get(e.id))o.setAttribute("uploadStatus","complete",t),this.fire("uploadComplete",{data:i,imageElement:t});t.ui&&t.ui.ariaLiveAnnouncer.announce(n("Image upload complete")),this._uploadedImages.set(e.id,i)})),l()})).catch((i=>{if(t.ui&&t.ui.ariaLiveAnnouncer.announce(n("Error during image upload")),"error"!==e.status&&"aborted"!==e.status)throw i;"error"==e.status&&i&&r.showWarning(i,{title:n("Upload failed"),namespace:"upload"}),o.enqueueChange({isUndoable:!1},(t=>{for(const o of a.get(e.id))"$graveyard"!==o.root.rootName&&t.remove(o)})),l()}));function l(){o.enqueueChange({isUndoable:!1},(t=>{for(const o of a.get(e.id))t.removeAttribute("uploadId",o),t.removeAttribute("uploadStatus",o);a.delete(e.id)})),i.destroyLoader(e)}}_parseAndSetSrcsetAttributeOnImage(e,t,o){let n=0;const i=Object.keys(e).filter((e=>{const t=parseInt(e,10);if(!isNaN(t))return n=Math.max(n,t),!0})).map((t=>`${e[t]} ${t}w`)).join(", ");if(""!=i){const e={srcset:i};t.hasAttribute("width")||t.hasAttribute("height")||(e.width=n),o.setAttributes(e,t)}}_registerConverters(e){const{conversion:t,plugins:o}=this.editor,n=o.get(ny),i=o.get(sA);t.for("dataDowncast").add((t=>{t.on(`attribute:uploadId:${e}`,((e,t,o)=>{if(!o.consumable.test(t.item,e.name))return;const r=n.loaders.get(t.attributeNewValue);if(!r||!r.data)return null;const s=o.mapper.toViewElement(t.item),a=i.findViewImgElement(s);a&&(o.consumable.consume(t.item,e.name),o.writer.setAttribute("data-ck-upload-id",r.id,a))}))}))}}function aC(e,t){const o=e.plugins.get("ImageUtils");return Array.from(e.model.createRangeOn(t)).filter((e=>o.isImage(e.item))).map((e=>e.item))}class lC extends br{static get pluginName(){return"ImageUpload"}static get isOfficialPlugin(){return!0}static get requires(){return[sC,WA,XA]}}const cC=function(e,t){return function(o,n){if(null==o)return o;if(!mo(o))return e(o,n);for(var i=o.length,r=t?i:-1,s=Object(o);(t?r--:++r{t.setAttribute("resizedWidth",e.width,i),t.removeAttribute("resizedHeight",i),n.setImageNaturalSizeAttributes(i)}))}}class pC extends br{static get requires(){return[sA]}static get pluginName(){return"ImageResizeEditing"}static get isOfficialPlugin(){return!0}constructor(e){super(e),e.config.define("image",{resizeUnit:"%",resizeOptions:[{name:"resizeImage:original",value:null,icon:"original"},{name:"resizeImage:custom",value:"custom",icon:"custom"},{name:"resizeImage:25",value:"25",icon:"small"},{name:"resizeImage:50",value:"50",icon:"medium"},{name:"resizeImage:75",value:"75",icon:"large"}]})}init(){const e=this.editor,t=new hC(e);this._registerConverters("imageBlock"),this._registerConverters("imageInline"),e.commands.add("resizeImage",t),e.commands.add("imageResize",t)}afterInit(){this._registerSchema()}_registerSchema(){this.editor.plugins.has("ImageBlockEditing")&&this.editor.model.schema.extend("imageBlock",{allowAttributes:["resizedWidth","resizedHeight"]}),this.editor.plugins.has("ImageInlineEditing")&&this.editor.model.schema.extend("imageInline",{allowAttributes:["resizedWidth","resizedHeight"]})}_registerConverters(e){const t=this.editor,o=t.plugins.get("ImageUtils");t.conversion.for("downcast").add((t=>t.on(`attribute:resizedWidth:${e}`,((e,t,o)=>{if(!o.consumable.consume(t.item,e.name))return;const n=o.writer,i=o.mapper.toViewElement(t.item);null!==t.attributeNewValue?(n.setStyle("width",t.attributeNewValue,i),n.addClass("image_resized",i)):(n.removeStyle("width",i),n.removeClass("image_resized",i))})))),t.conversion.for("dataDowncast").attributeToAttribute({model:{name:e,key:"resizedHeight"},view:e=>({key:"style",value:{height:e}})}),t.conversion.for("editingDowncast").add((t=>t.on(`attribute:resizedHeight:${e}`,((t,n,i)=>{if(!i.consumable.consume(n.item,t.name))return;const r=i.writer,s=i.mapper.toViewElement(n.item),a="imageInline"===e?o.findViewImgElement(s):s;null!==n.attributeNewValue?r.setStyle("height",n.attributeNewValue,a):r.removeStyle("height",a)})))),t.conversion.for("upcast").attributeToAttribute({view:{name:"imageBlock"===e?"figure":"img",styles:{width:/.+/}},model:{key:"resizedWidth",value:e=>iA(e)?null:e.getStyle("width")}}),t.conversion.for("upcast").attributeToAttribute({view:{name:"imageBlock"===e?"figure":"img",styles:{height:/.+/}},model:{key:"resizedHeight",value:e=>iA(e)?null:e.getStyle("height")}})}}const mC=(()=>({small:up.objectSizeSmall,medium:up.objectSizeMedium,large:up.objectSizeLarge,custom:up.objectSizeCustom,original:up.objectSizeFull}))();class gC extends br{static get requires(){return[pC]}static get pluginName(){return"ImageResizeButtons"}static get isOfficialPlugin(){return!0}constructor(e){super(e),this._resizeUnit=e.config.get("image.resizeUnit")}init(){const e=this.editor,t=e.config.get("image.resizeOptions"),o=e.commands.get("resizeImage");this.bind("isEnabled").to(o);for(const e of t)this._registerImageResizeButton(e);this._registerImageResizeDropdown(t)}_registerImageResizeButton(e){const t=this.editor,{name:o,value:n,icon:i}=e;t.ui.componentFactory.add(o,(o=>{const r=new Kp(o),s=t.commands.get("resizeImage"),a=this._getOptionLabelValue(e,!0);if(!mC[i])throw new S("imageresizebuttons-missing-icon",t,e);if(r.set({label:a,icon:mC[i],tooltip:a,isToggleable:!0}),r.bind("isEnabled").to(this),t.plugins.has("ImageCustomResizeUI")&&fC(e)){const e=t.plugins.get("ImageCustomResizeUI");this.listenTo(r,"execute",(()=>{e._showForm(this._resizeUnit)}))}else{const e=n?n+this._resizeUnit:null;r.bind("isOn").to(s,"value",bC(e)),this.listenTo(r,"execute",(()=>{t.execute("resizeImage",{width:e})}))}return r}))}_registerImageResizeDropdown(e){const t=this.editor,o=t.t,n=e.find((e=>!e.value)),i=i=>{const r=t.commands.get("resizeImage"),s=kf(i,vg),a=s.buttonView,l=o("Resize image");return a.set({tooltip:l,commandValue:n.value,icon:mC.medium,isToggleable:!0,label:this._getOptionLabelValue(n),withText:!0,class:"ck-resize-image-button",ariaLabel:l,ariaLabelledBy:void 0}),a.bind("label").to(r,"value",(e=>e&&e.width?e.width:this._getOptionLabelValue(n))),s.bind("isEnabled").to(this),yf(s,(()=>this._getResizeDropdownListItemDefinitions(e,r)),{ariaLabel:o("Image resize list"),role:"menu"}),this.listenTo(s,"execute",(e=>{"onClick"in e.source?e.source.onClick():(t.execute(e.source.commandName,{width:e.source.commandValue}),t.editing.view.focus())})),s};t.ui.componentFactory.add("resizeImage",i),t.ui.componentFactory.add("imageResize",i)}_getOptionLabelValue(e,t=!1){const o=this.editor.t;return e.label?e.label:t?fC(e)?o("Custom image size"):e.value?o("Resize image to %0",e.value+this._resizeUnit):o("Resize image to the original size"):fC(e)?o("Custom"):e.value?e.value+this._resizeUnit:o("Original")}_getResizeDropdownListItemDefinitions(e,t){const{editor:o}=this,n=new tr,i=e.map((e=>fC(e)?{...e,valueWithUnits:"custom"}:e.value?{...e,valueWithUnits:`${e.value}${this._resizeUnit}`}:{...e,valueWithUnits:null}));for(const e of i){let r=null;if(o.plugins.has("ImageCustomResizeUI")&&fC(e)){const n=o.plugins.get("ImageCustomResizeUI");r={type:"button",model:new hk({label:this._getOptionLabelValue(e),role:"menuitemradio",withText:!0,icon:null,onClick:()=>{n._showForm(this._resizeUnit)}})};const s=uC(i,"valueWithUnits");r.model.bind("isOn").to(t,"value",kC(s))}else r={type:"button",model:new hk({commandName:"resizeImage",commandValue:e.valueWithUnits,label:this._getOptionLabelValue(e),role:"menuitemradio",withText:!0,icon:null})},r.model.bind("isOn").to(t,"value",bC(e.valueWithUnits));r.model.bind("isEnabled").to(t,"isEnabled"),n.add(r)}return n}}function fC(e){return"custom"===e.value}function bC(e){return t=>null===e&&t===e||null!==t&&t.width===e}function kC(e){return t=>!e.some((e=>bC(e)(t)))}const wC="image_resized";class _C extends br{static get requires(){return[W_,sA]}static get pluginName(){return"ImageResizeHandles"}static get isOfficialPlugin(){return!0}init(){const e=this.editor.commands.get("resizeImage");this.bind("isEnabled").to(e),this._setupResizerCreator()}_setupResizerCreator(){const e=this.editor,t=e.editing.view,o=e.plugins.get("ImageUtils");t.addObserver(_A),this.listenTo(t.document,"imageLoaded",((n,i)=>{if(!i.target.matches("figure.image.ck-widget > img,figure.image.ck-widget > picture > img,figure.image.ck-widget > a > img,figure.image.ck-widget > a > picture > img,span.image-inline.ck-widget > img,span.image-inline.ck-widget > picture > img"))return;const r=e.editing.view.domConverter,s=r.domToView(i.target),a=o.getImageWidgetFromImageView(s);let l=this.editor.plugins.get(W_).getResizerByViewElement(a);if(l)return void l.redraw();const c=e.editing.mapper,d=c.toModelElement(a);l=e.plugins.get(W_).attachTo({unit:e.config.get("image.resizeUnit"),modelElement:d,viewElement:a,editor:e,getHandleHost:e=>e.querySelector("img"),getResizeHost:()=>r.mapViewToDom(c.toViewElement(d)),isCentered:()=>"alignCenter"==d.getAttribute("imageStyle"),onCommit(o){t.change((e=>{e.removeClass(wC,a)})),e.execute("resizeImage",{width:o})}}),l.on("updateSize",(()=>{a.hasClass(wC)||t.change((e=>{e.addClass(wC,a)}));const e="imageInline"===d.name?s:a;e.getStyle("height")&&t.change((t=>{t.removeStyle("height",e)}))})),l.bind("isEnabled").to(this)}))}}function yC(e){if(!e)return null;const[,t,o]=e.trim().match(/([.,\d]+)(%|px)$/)||[],n=Number.parseFloat(t);return Number.isNaN(n)?null:{value:n,unit:o}}function AC(e,t,o){return"px"===o?{value:t.value,unit:"px"}:{value:t.value/e*100,unit:"%"}}function CC(e){const{editing:t}=e,o=e.plugins.get("ImageUtils").getClosestSelectedImageElement(e.model.document.selection);if(!o)return null;const n=t.mapper.toViewElement(o);return{model:o,view:n,dom:t.view.domConverter.mapViewToDom(n)}}var vC=i(1173),xC={attributes:{"data-cke":!0}};xC.setAttributes=Xr(),xC.insert=Yr().bind(null,"head"),xC.domAPI=Zr(),xC.insertStyleElement=ts();Gr()(vC.A,xC);vC.A&&vC.A.locals&&vC.A.locals;class EC extends zp{constructor(e,t,o){super(e);const n=this.locale.t;this.focusTracker=new nr,this.keystrokes=new ar,this.unit=t,this.labeledInput=this._createLabeledInputView(),this.saveButtonView=this._createButton(n("Save"),up.check,"ck-button-save"),this.saveButtonView.type="submit",this.cancelButtonView=this._createButton(n("Cancel"),up.cancel,"ck-button-cancel","cancel"),this._focusables=new hp,this._validators=o,this._focusCycler=new Xp({focusables:this._focusables,focusTracker:this.focusTracker,keystrokeHandler:this.keystrokes,actions:{focusPrevious:"shift + tab",focusNext:"tab"}}),this.setTemplate({tag:"form",attributes:{class:["ck","ck-image-custom-resize-form","ck-responsive-form"],tabindex:"-1"},children:[this.labeledInput,this.saveButtonView,this.cancelButtonView]})}render(){super.render(),this.keystrokes.listenTo(this.element),Vp({view:this}),[this.labeledInput,this.saveButtonView,this.cancelButtonView].forEach((e=>{this._focusables.add(e),this.focusTracker.add(e.element)}))}destroy(){super.destroy(),this.focusTracker.destroy(),this.keystrokes.destroy()}_createButton(e,t,o,n){const i=new Kp(this.locale);return i.set({label:e,icon:t,tooltip:!0}),i.extendTemplate({attributes:{class:o}}),n&&i.delegate("execute").to(this,n),i}_createLabeledInputView(){const e=this.locale.t,t=new dg(this.locale,Df);return t.label=e("Resize image (in %0)",this.unit),t.fieldView.set({step:.1}),t}isValid(){this.resetFormStatus();for(const e of this._validators){const t=e(this);if(t)return this.labeledInput.errorText=t,!1}return!0}resetFormStatus(){this.labeledInput.errorText=null}get rawSize(){const{element:e}=this.labeledInput.fieldView;return e?e.value:null}get parsedSize(){const{rawSize:e}=this;if(null===e)return null;const t=Number.parseFloat(e);return Number.isNaN(t)?null:t}get sizeWithUnits(){const{parsedSize:e,unit:t}=this;return null===e?null:`${e}${t}`}}class DC extends br{static get requires(){return[kk]}static get pluginName(){return"ImageCustomResizeUI"}static get isOfficialPlugin(){return!0}destroy(){super.destroy(),this._form&&this._form.destroy()}_createForm(e){const t=this.editor;this._balloon=this.editor.plugins.get("ContextualBalloon"),this._form=new(Np(EC))(t.locale,e,function(e){const t=e.t;return[e=>""===e.rawSize.trim()?t("The value must not be empty."):null===e.parsedSize?t("The value should be a plain number."):void 0]}(t)),this._form.render(),this.listenTo(this._form,"submit",(()=>{this._form.isValid()&&(t.execute("resizeImage",{width:this._form.sizeWithUnits}),this._hideForm(!0))})),this.listenTo(this._form.labeledInput,"change:errorText",(()=>{t.ui.update()})),this.listenTo(this._form,"cancel",(()=>{this._hideForm(!0)})),this._form.keystrokes.set("Esc",((e,t)=>{this._hideForm(!0),t()})),Op({emitter:this._form,activator:()=>this._isVisible,contextElements:()=>[this._balloon.view.element],callback:()=>this._hideForm()})}_showForm(e){if(this._isVisible)return;this._form||this._createForm(e);const t=this.editor,o=this._form.labeledInput;this._form.disableCssTransitions(),this._form.resetFormStatus(),this._isInBalloon||this._balloon.add({view:this._form,position:gA(t)});const n=function(e,t){const o=CC(e);if(!o)return null;const n=yC(o.model.getAttribute("resizedWidth")||null);return n?n.unit===t?n:AC(Dw(o.dom),{unit:"px",value:new Gn(o.dom).width},t):null}(t,e),i=n?n.value.toFixed(1):"",r=function(e,t){const o=CC(e);if(!o)return null;const n=Dw(o.dom),i=yC(window.getComputedStyle(o.dom).minWidth)||{value:1,unit:"px"};return{unit:t,lower:Math.max(.1,AC(n,i,t).value),upper:"px"===t?n:100}}(t,e);o.fieldView.value=o.fieldView.element.value=i,r&&Object.assign(o.fieldView,{min:r.lower.toFixed(1),max:Math.ceil(r.upper).toFixed(1)}),this._form.labeledInput.fieldView.select(),this._form.enableCssTransitions()}_hideForm(e=!1){this._isInBalloon&&(this._form.focusTracker.isFocused&&this._form.saveButtonView.focus(),this._balloon.remove(this._form),e&&this.editor.editing.view.focus())}get _isVisible(){return!!this._balloon&&this._balloon.visibleView===this._form}get _isInBalloon(){return!!this._balloon&&this._balloon.hasView(this._form)}}var BC=i(4214),SC={attributes:{"data-cke":!0}};SC.setAttributes=Xr(),SC.insert=Yr().bind(null,"head"),SC.domAPI=Zr(),SC.insertStyleElement=ts();Gr()(BC.A,SC);BC.A&&BC.A.locals&&BC.A.locals;class TC extends wr{constructor(e,t){super(e),this._defaultStyles={imageBlock:!1,imageInline:!1},this._styles=new Map(t.map((e=>{if(e.isDefault)for(const t of e.modelElements)this._defaultStyles[t]=e.name;return[e.name,e]})))}refresh(){const e=this.editor.plugins.get("ImageUtils").getClosestSelectedImageElement(this.editor.model.document.selection);this.isEnabled=!!e,this.isEnabled?e.hasAttribute("imageStyle")?this.value=e.getAttribute("imageStyle"):this.value=this._defaultStyles[e.name]:this.value=!1}execute(e={}){const t=this.editor,o=t.model,n=t.plugins.get("ImageUtils");o.change((t=>{const i=e.value,{setImageSizes:r=!0}=e;let s=n.getClosestSelectedImageElement(o.document.selection);i&&this.shouldConvertImageType(i,s)&&(this.editor.execute(n.isBlockImage(s)?"imageTypeInline":"imageTypeBlock",{setImageSizes:r}),s=n.getClosestSelectedImageElement(o.document.selection)),!i||this._styles.get(i).isDefault?t.removeAttribute("imageStyle",s):t.setAttribute("imageStyle",i,s),r&&n.setImageNaturalSizeAttributes(s)}))}shouldConvertImageType(e,t){return!this._styles.get(e).modelElements.includes(t.name)}}const IC={get inline(){return{name:"inline",title:"In line",icon:up.objectInline,modelElements:["imageInline"],isDefault:!0}},get alignLeft(){return{name:"alignLeft",title:"Left aligned image",icon:up.objectLeft,modelElements:["imageBlock","imageInline"],className:"image-style-align-left"}},get alignBlockLeft(){return{name:"alignBlockLeft",title:"Left aligned image",icon:up.objectBlockLeft,modelElements:["imageBlock"],className:"image-style-block-align-left"}},get alignCenter(){return{name:"alignCenter",title:"Centered image",icon:up.objectCenter,modelElements:["imageBlock"],className:"image-style-align-center"}},get alignRight(){return{name:"alignRight",title:"Right aligned image",icon:up.objectRight,modelElements:["imageBlock","imageInline"],className:"image-style-align-right"}},get alignBlockRight(){return{name:"alignBlockRight",title:"Right aligned image",icon:up.objectBlockRight,modelElements:["imageBlock"],className:"image-style-block-align-right"}},get block(){return{name:"block",title:"Centered image",icon:up.objectCenter,modelElements:["imageBlock"],isDefault:!0}},get side(){return{name:"side",title:"Side image",icon:up.objectRight,modelElements:["imageBlock"],className:"image-style-side"}}},PC=(()=>({full:up.objectFullWidth,left:up.objectBlockLeft,right:up.objectBlockRight,center:up.objectCenter,inlineLeft:up.objectLeft,inlineRight:up.objectRight,inline:up.objectInline}))(),FC=[{name:"imageStyle:wrapText",title:"Wrap text",defaultItem:"imageStyle:alignLeft",items:["imageStyle:alignLeft","imageStyle:alignRight"]},{name:"imageStyle:breakText",title:"Break text",defaultItem:"imageStyle:block",items:["imageStyle:alignBlockLeft","imageStyle:block","imageStyle:alignBlockRight"]}];function RC(e){T("image-style-configuration-definition-invalid",e)}const MC={normalizeStyles:function(e){const t=(e.configuredStyles.options||[]).map((e=>function(e){e="string"==typeof e?IC[e]?{...IC[e]}:{name:e}:function(e,t){const o={...t};for(const n in e)Object.prototype.hasOwnProperty.call(t,n)||(o[n]=e[n]);return o}(IC[e.name],e);"string"==typeof e.icon&&(e.icon=PC[e.icon]||e.icon);return e}(e))).filter((t=>function(e,{isBlockPluginLoaded:t,isInlinePluginLoaded:o}){const{modelElements:n,name:i}=e;if(!(n&&n.length&&i))return RC({style:e}),!1;{const i=[t?"imageBlock":null,o?"imageInline":null];if(!n.some((e=>i.includes(e))))return T("image-style-missing-dependency",{style:e,missingPlugins:n.map((e=>"imageBlock"===e?"ImageBlockEditing":"ImageInlineEditing"))}),!1}return!0}(t,e)));return t},getDefaultStylesConfiguration:function(e,t){return e&&t?{options:["inline","alignLeft","alignRight","alignCenter","alignBlockLeft","alignBlockRight","block","side"]}:e?{options:["block","side"]}:t?{options:["inline","alignLeft","alignRight"]}:{}},getDefaultDropdownDefinitions:function(e){return e.has("ImageBlockEditing")&&e.has("ImageInlineEditing")?[...FC]:[]},warnInvalidStyle:RC,DEFAULT_OPTIONS:IC,DEFAULT_ICONS:PC,DEFAULT_DROPDOWN_DEFINITIONS:FC};function zC(e,t){for(const o of t)if(o.name===e)return o}class OC extends br{static get pluginName(){return"ImageStyleEditing"}static get isOfficialPlugin(){return!0}static get requires(){return[sA]}init(){const{normalizeStyles:e,getDefaultStylesConfiguration:t}=MC,o=this.editor,n=o.plugins.has("ImageBlockEditing"),i=o.plugins.has("ImageInlineEditing");o.config.define("image.styles",t(n,i)),this.normalizedStyles=e({configuredStyles:o.config.get("image.styles"),isBlockPluginLoaded:n,isInlinePluginLoaded:i}),this._setupConversion(n,i),this._setupPostFixer(),o.commands.add("imageStyle",new TC(o,this.normalizedStyles))}_setupConversion(e,t){const o=this.editor,n=o.model.schema,i=(r=this.normalizedStyles,(e,t,o)=>{if(!o.consumable.consume(t.item,e.name))return;const n=zC(t.attributeNewValue,r),i=zC(t.attributeOldValue,r),s=o.mapper.toViewElement(t.item),a=o.writer;i&&a.removeClass(i.className,s),n&&a.addClass(n.className,s)});var r;const s=function(e){const t={imageInline:e.filter((e=>!e.isDefault&&e.modelElements.includes("imageInline"))),imageBlock:e.filter((e=>!e.isDefault&&e.modelElements.includes("imageBlock")))};return(e,o,n)=>{if(!o.modelRange)return;const i=o.viewItem,r=or(o.modelRange.getItems());if(r&&n.schema.checkAttribute(r,"imageStyle"))for(const e of t[r.name])n.consumable.consume(i,{classes:e.className})&&n.writer.setAttribute("imageStyle",e.name,r)}}(this.normalizedStyles);o.editing.downcastDispatcher.on("attribute:imageStyle",i),o.data.downcastDispatcher.on("attribute:imageStyle",i),e&&(n.extend("imageBlock",{allowAttributes:"imageStyle"}),o.data.upcastDispatcher.on("element:figure",s,{priority:"low"})),t&&(n.extend("imageInline",{allowAttributes:"imageStyle"}),o.data.upcastDispatcher.on("element:img",s,{priority:"low"}))}_setupPostFixer(){const e=this.editor,t=e.model.document,o=e.plugins.get(sA),n=new Map(this.normalizedStyles.map((e=>[e.name,e])));t.registerPostFixer((e=>{let i=!1;for(const r of t.differ.getChanges())if("insert"==r.type||"attribute"==r.type&&"imageStyle"==r.attributeKey){let t="insert"==r.type?r.position.nodeAfter:r.range.start.nodeAfter;if(t&&t.is("element","paragraph")&&t.childCount>0&&(t=t.getChild(0)),!o.isImage(t))continue;const s=t.getAttribute("imageStyle");if(!s)continue;const a=n.get(s);a&&a.modelElements.includes(t.name)||(e.removeAttribute("imageStyle",t),i=!0)}return i}))}}var NC=i(7879),VC={attributes:{"data-cke":!0}};VC.setAttributes=Xr(),VC.insert=Yr().bind(null,"head"),VC.domAPI=Zr(),VC.insertStyleElement=ts();Gr()(NC.A,VC);NC.A&&NC.A.locals&&NC.A.locals;class LC extends br{static get requires(){return[OC]}static get pluginName(){return"ImageStyleUI"}static get isOfficialPlugin(){return!0}get localizedDefaultStylesTitles(){const e=this.editor.t;return{"Wrap text":e("Wrap text"),"Break text":e("Break text"),"In line":e("In line"),"Full size image":e("Full size image"),"Side image":e("Side image"),"Left aligned image":e("Left aligned image"),"Centered image":e("Centered image"),"Right aligned image":e("Right aligned image")}}init(){const e=this.editor.plugins,t=this.editor.config.get("image.toolbar")||[],o=HC(e.get("ImageStyleEditing").normalizedStyles,this.localizedDefaultStylesTitles);for(const e of o)this._createButton(e);const n=HC([...t.filter(W),...MC.getDefaultDropdownDefinitions(e)],this.localizedDefaultStylesTitles);for(const e of n)this._createDropdown(e,o)}_createDropdown(e,t){const o=this.editor.ui.componentFactory;o.add(e.name,(n=>{let i;const{defaultItem:r,items:s,title:a}=e,l=s.filter((e=>t.find((({name:t})=>jC(t)===e)))).map((e=>{const t=o.create(e);return e===r&&(i=t),t}));s.length!==l.length&&MC.warnInvalidStyle({dropdown:e});const c=kf(n,pf),d=c.buttonView,u=d.arrowView;return wf(c,l,{enableActiveItemFocusOnDropdownOpen:!0}),d.set({label:qC(a,i.label),class:null,tooltip:!0}),u.unbind("label"),u.set({label:a}),d.bind("icon").toMany(l,"isOn",((...e)=>{const t=e.findIndex(Oi);return t<0?i.icon:l[t].icon})),d.bind("label").toMany(l,"isOn",((...e)=>{const t=e.findIndex(Oi);return qC(a,t<0?i.label:l[t].label)})),d.bind("isOn").toMany(l,"isOn",((...e)=>e.some(Oi))),d.bind("class").toMany(l,"isOn",((...e)=>e.some(Oi)?"ck-splitbutton_flatten":void 0)),d.on("execute",(()=>{l.some((({isOn:e})=>e))?c.isOpen=!c.isOpen:i.fire("execute")})),c.bind("isEnabled").toMany(l,"isEnabled",((...e)=>e.some(Oi))),this.listenTo(c,"execute",(()=>{this.editor.editing.view.focus()})),c}))}_createButton(e){const t=e.name;this.editor.ui.componentFactory.add(jC(t),(o=>{const n=this.editor.commands.get("imageStyle"),i=new Kp(o);return i.set({label:e.title,icon:e.icon,tooltip:!0,isToggleable:!0}),i.bind("isEnabled").to(n,"isEnabled"),i.bind("isOn").to(n,"value",(e=>e===t)),i.on("execute",this._executeCommand.bind(this,t)),i}))}_executeCommand(e){this.editor.execute("imageStyle",{value:e}),this.editor.editing.view.focus()}}function HC(e,t){for(const o of e)t[o.title]&&(o.title=t[o.title]);return e}function jC(e){return`imageStyle:${e}`}function qC(e,t){return(e?e+": ":"")+t}function $C(e){return e.map((e=>W(e)?e.name:e))}const UC=Symbol("isWpButtonMacroSymbol");function WC(e){const t=e.getSelectedElement();return!(!t||!function(e){return!!e.getCustomProperty(UC)&&ww(e)}(t))}class GC extends br{static get pluginName(){return"OPChildPagesEditing"}static get buttonName(){return"insertChildPages"}init(){const e=this.editor,t=e.model,o=e.conversion;t.schema.register("op-macro-child-pages",{allowWhere:["$block"],allowAttributes:["page"],isBlock:!0,isLimit:!0}),o.for("upcast").elementToElement({view:{name:"macro",classes:"child_pages"},model:(e,{writer:t})=>{const o=e.getAttribute("data-page")||"",n="true"==e.getAttribute("data-include-parent");return t.createElement("op-macro-child-pages",{page:o,includeParent:n})}}),o.for("editingDowncast").elementToElement({model:"op-macro-child-pages",view:(e,{writer:t})=>this.createMacroViewElement(e,t)}).add((e=>e.on("attribute:page",this.modelAttributeToView.bind(this)))).add((e=>e.on("attribute:includeParent",this.modelAttributeToView.bind(this)))),o.for("dataDowncast").elementToElement({model:"op-macro-child-pages",view:(e,{writer:t})=>t.createContainerElement("macro",{class:"child_pages","data-page":e.getAttribute("page")||"","data-include-parent":e.getAttribute("includeParent")||""})}),e.ui.componentFactory.add(GC.buttonName,(t=>{const o=new Kp(t);return o.set({label:window.I18n.t("js.editor.macro.child_pages.button"),withText:!0}),o.on("execute",(()=>{e.model.change((t=>{const o=t.createElement("op-macro-child-pages",{});e.model.insertContent(o,e.model.document.selection)}))})),o}))}modelAttributeToView(e,t,o){const n=t.item;if(!n.is("element","op-macro-child-pages"))return;o.consumable.consume(t.item,e.name);const i=o.mapper.toViewElement(n);o.writer.remove(o.writer.createRangeIn(i)),this.setPlaceholderContent(o.writer,n,i)}macroLabel(){return window.I18n.t("js.editor.macro.child_pages.text")}pageLabel(e){return e&&e.length>0?e:window.I18n.t("js.editor.macro.child_pages.this_page")}includeParentText(e){return e?` (${window.I18n.t("js.editor.macro.child_pages.include_parent")})`:""}createMacroViewElement(e,t){const o=t.createContainerElement("div");return this.setPlaceholderContent(t,e,o),function(e,t,o){return t.setCustomProperty(UC,!0,e),_w(e,t,{label:o})}(o,t,{label:this.macroLabel()})}setPlaceholderContent(e,t,o){const n=t.getAttribute("page"),i=t.getAttribute("includeParent"),r=this.macroLabel(),s=this.pageLabel(n),a=e.createContainerElement("span",{class:"macro-value"});let l=[e.createText(`${r} `)];e.insert(e.createPositionAt(a,0),e.createText(`${s}`)),l.push(a),l.push(e.createText(this.includeParentText(i))),e.insert(e.createPositionAt(o,0),l)}}class KC extends br{static get requires(){return[kk]}static get pluginName(){return"OPChildPagesToolbar"}init(){const e=this.editor,t=this.editor.model,o=Pw(e);G_(e,"opEditChildPagesMacroButton",(e=>{const n=o.services.macros,i=e.getAttribute("page"),r=e.getAttribute("includeParent"),s=i&&i.length>0?i:"";n.configureChildPages(s,r).then((o=>t.change((t=>{t.setAttribute("page",o.page,e),t.setAttribute("includeParent",o.includeParent,e)}))))}))}afterInit(){Z_(this,this.editor,"OPChildPages",WC)}}class ZC extends wr{constructor(e){super(e),this.affectsData=!1}execute(){const e=this.editor.model,t=e.document.selection;let o=e.schema.getLimitElement(t);if(t.containsEntireContent(o)||!JC(e.schema,o))do{if(o=o.parent,!o)return}while(!JC(e.schema,o));e.change((e=>{e.setSelection(o,"in")}))}}function JC(e,t){return e.isLimit(t)&&(e.checkChild(t,"$text")||e.checkChild(t,"paragraph"))}const YC=xi("Ctrl+A");class QC extends br{static get pluginName(){return"SelectAllEditing"}static get isOfficialPlugin(){return!0}init(){const e=this.editor,t=e.t,o=e.editing.view.document;e.commands.add("selectAll",new ZC(e)),this.listenTo(o,"keydown",((t,o)=>{vi(o)===YC&&(e.execute("selectAll"),o.preventDefault())})),e.accessibility.addKeystrokeInfos({keystrokes:[{label:t("Select all"),keystroke:"CTRL+A"}]})}}class XC extends br{static get pluginName(){return"SelectAllUI"}static get isOfficialPlugin(){return!0}init(){const e=this.editor;e.ui.componentFactory.add("selectAll",(()=>{const e=this._createButton(Kp);return e.set({tooltip:!0}),e})),e.ui.componentFactory.add("menuBar:selectAll",(()=>this._createButton(Em)))}_createButton(e){const t=this.editor,o=t.locale,n=t.commands.get("selectAll"),i=new e(t.locale),r=o.t;return i.set({label:r("Select all"),icon:'',keystroke:"Ctrl+A"}),i.bind("isEnabled").to(n,"isEnabled"),this.listenTo(i,"execute",(()=>{t.execute("selectAll"),t.editing.view.focus()})),i}}class ev extends br{static get requires(){return[QC,XC]}static get pluginName(){return"SelectAll"}static get isOfficialPlugin(){return!0}}const tv="ckCsrfToken",ov="abcdefghijklmnopqrstuvwxyz0123456789";function nv(){let e=function(e){e=e.toLowerCase();const t=document.cookie.split(";");for(const o of t){const t=o.split("=");if(decodeURIComponent(t[0].trim().toLowerCase())===e)return decodeURIComponent(t[1])}return null}(tv);var t,o;return e&&40==e.length||(e=function(e){let t="";const o=new Uint8Array(e);window.crypto.getRandomValues(o);for(let e=0;e.5?n.toUpperCase():n}return t}(40),t=tv,o=e,document.cookie=encodeURIComponent(t)+"="+encodeURIComponent(o)+";path=/"),e}class iv{constructor(e,t,o){this.loader=e,this.url=t,this.t=o}upload(){return this.loader.file.then((e=>new Promise(((t,o)=>{this._initRequest(),this._initListeners(t,o,e),this._sendRequest(e)}))))}abort(){this.xhr&&this.xhr.abort()}_initRequest(){const e=this.xhr=new XMLHttpRequest;e.open("POST",this.url,!0),e.responseType="json"}_initListeners(e,t,o){const n=this.xhr,i=this.loader,r=(0,this.t)("Cannot upload file:")+` ${o.name}.`;n.addEventListener("error",(()=>t(r))),n.addEventListener("abort",(()=>t())),n.addEventListener("load",(()=>{const o=n.response;if(!o||!o.uploaded)return t(o&&o.error&&o.error.message?o.error.message:r);e({default:o.url})})),n.upload&&n.upload.addEventListener("progress",(e=>{e.lengthComputable&&(i.uploadTotal=e.total,i.uploaded=e.loaded)}))}_sendRequest(e){const t=new FormData;t.append("upload",e),t.append("ckCsrfToken",nv()),this.xhr.send(t)}}function rv(e,t,o,n){let i,r=null;"function"==typeof n?i=n:(r=e.commands.get(n),i=()=>{e.execute(n)}),e.model.document.on("change:data",((s,a)=>{if(r&&!r.isEnabled||!t.isEnabled)return;const l=or(e.model.document.selection.getRanges());if(!l.isCollapsed)return;if(a.isUndo||!a.isLocal)return;const c=Array.from(e.model.document.differ.getChanges()),d=c[0];if(1!=c.length||"insert"!==d.type||"$text"!=d.name||1!=d.length)return;const u=d.position.parent;if(u.is("element","codeBlock"))return;if(u.is("element","listItem")&&"function"!=typeof n&&!["numberedList","bulletedList","todoList"].includes(n))return;if(r&&!0===r.value)return;const h=u.getChild(0),p=e.model.createRangeOn(h);if(!p.containsRange(l)&&!l.end.isEqual(p.end))return;const m=o.exec(h.data.substr(0,l.end.offset));m&&e.model.enqueueChange((t=>{const o=t.createPositionAt(u,0),n=t.createPositionAt(u,m[0].length),r=new vc(o,n);if(!1!==i({match:m})){t.remove(r);const o=e.model.document.selection.getFirstRange(),n=t.createRangeIn(u);!u.isEmpty||n.isEqual(o)||n.containsRange(o,!0)||t.remove(u)}r.detach(),e.model.enqueueChange((()=>{e.plugins.get("Delete").requestUndoOnBackspace()}))}))}))}function sv(e,t,o,n){let i,r;o instanceof RegExp?i=o:r=o,r=r||(e=>{let t;const o=[],n=[];for(;null!==(t=i.exec(e))&&!(t&&t.length<4);){let{index:e,1:i,2:r,3:s}=t;const a=i+r+s;e+=t[0].length-a.length;const l=[e,e+i.length],c=[e+i.length+r.length,e+i.length+r.length+s.length];o.push(l),o.push(c),n.push([e+i.length,e+i.length+r.length])}return{remove:o,format:n}}),e.model.document.on("change:data",((o,i)=>{if(i.isUndo||!i.isLocal||!t.isEnabled)return;const s=e.model,a=s.document.selection;if(!a.isCollapsed)return;const l=Array.from(s.document.differ.getChanges()),c=l[0];if(1!=l.length||"insert"!==c.type||"$text"!=c.name||1!=c.length)return;const d=a.focus,u=d.parent,{text:h,range:p}=function(e,t){let o=e.start;const n=Array.from(e.getItems()).reduce(((e,n)=>!n.is("$text")&&!n.is("$textProxy")||n.getAttribute("code")?(o=t.createPositionAfter(n),""):e+n.data),"");return{text:n,range:t.createRange(o,e.end)}}(s.createRange(s.createPositionAt(u,0),d),s),m=r(h),g=av(p.start,m.format,s),f=av(p.start,m.remove,s);g.length&&f.length&&s.enqueueChange((t=>{if(!1!==n(t,g)){for(const e of f.reverse())t.remove(e);s.enqueueChange((()=>{e.plugins.get("Delete").requestUndoOnBackspace()}))}}))}))}function av(e,t,o){return t.filter((e=>void 0!==e[0]&&void 0!==e[1])).map((t=>o.createRange(e.getShiftedBy(t[0]),e.getShiftedBy(t[1]))))}function lv(e,t){return(o,n)=>{if(!e.commands.get(t).isEnabled)return!1;const i=e.model.schema.getValidRanges(n,t);for(const e of i)o.setAttribute(t,!0,e);o.removeSelectionAttribute(t)}}class cv extends wr{constructor(e,t){super(e),this.attributeKey=t}refresh(){const e=this.editor.model,t=e.document;this.value=this._getValueFromFirstAllowedNode(),this.isEnabled=e.schema.checkAttributeInSelection(t.selection,this.attributeKey)}execute(e={}){const t=this.editor.model,o=t.document.selection,n=void 0===e.forceValue?!this.value:e.forceValue;t.change((e=>{if(o.isCollapsed)n?e.setSelectionAttribute(this.attributeKey,!0):e.removeSelectionAttribute(this.attributeKey);else{const i=t.schema.getValidRanges(o.getRanges(),this.attributeKey);for(const t of i)n?e.setAttribute(this.attributeKey,n,t):e.removeAttribute(this.attributeKey,t)}}))}_getValueFromFirstAllowedNode(){const e=this.editor.model,t=e.schema,o=e.document.selection;if(o.isCollapsed)return o.hasAttribute(this.attributeKey);for(const e of o.getRanges())for(const o of e.getItems())if(t.checkAttribute(o,this.attributeKey))return o.hasAttribute(this.attributeKey);return!1}}const dv="bold";class uv extends br{static get pluginName(){return"BoldEditing"}static get isOfficialPlugin(){return!0}init(){const e=this.editor,t=this.editor.t;e.model.schema.extend("$text",{allowAttributes:dv}),e.model.schema.setAttributeProperties(dv,{isFormatting:!0,copyOnEnter:!0}),e.conversion.attributeToElement({model:dv,view:"strong",upcastAlso:["b",e=>{const t=e.getStyle("font-weight");return t&&("bold"==t||Number(t)>=600)?{name:!0,styles:["font-weight"]}:null}]}),e.commands.add(dv,new cv(e,dv)),e.keystrokes.set("CTRL+B",dv),e.accessibility.addKeystrokeInfos({keystrokes:[{label:t("Bold text"),keystroke:"CTRL+B"}]})}}function hv({editor:e,commandName:t,plugin:o,icon:n,label:i,keystroke:r}){return s=>{const a=e.commands.get(t),l=new s(e.locale);return l.set({label:i,icon:n,keystroke:r,isToggleable:!0}),l.bind("isEnabled").to(a,"isEnabled"),l.bind("isOn").to(a,"value"),l instanceof Em?l.set({role:"menuitemcheckbox"}):l.set({tooltip:!0}),o.listenTo(l,"execute",(()=>{e.execute(t),e.editing.view.focus()})),l}}const pv="bold";class mv extends br{static get pluginName(){return"BoldUI"}static get isOfficialPlugin(){return!0}init(){const e=this.editor,t=e.locale.t,o=hv({editor:e,commandName:pv,plugin:this,icon:up.bold,label:t("Bold"),keystroke:"CTRL+B"});e.ui.componentFactory.add(pv,(()=>o(Kp))),e.ui.componentFactory.add("menuBar:"+pv,(()=>o(Em)))}}const gv="code";class fv extends br{static get pluginName(){return"CodeEditing"}static get isOfficialPlugin(){return!0}static get requires(){return[n_]}init(){const e=this.editor,t=this.editor.t;e.model.schema.extend("$text",{allowAttributes:gv}),e.model.schema.setAttributeProperties(gv,{isFormatting:!0,copyOnEnter:!1}),e.conversion.attributeToElement({model:gv,view:"code"}),e.commands.add(gv,new cv(e,gv)),e.plugins.get(n_).registerAttribute(gv),p_(e,gv,"code","ck-code_selected"),e.accessibility.addKeystrokeInfos({keystrokes:[{label:t("Move out of an inline code style"),keystroke:[["arrowleft","arrowleft"],["arrowright","arrowright"]]}]})}}var bv=i(9248),kv={attributes:{"data-cke":!0}};kv.setAttributes=Xr(),kv.insert=Yr().bind(null,"head"),kv.domAPI=Zr(),kv.insertStyleElement=ts();Gr()(bv.A,kv);bv.A&&bv.A.locals&&bv.A.locals;const wv="code";class _v extends br{static get pluginName(){return"CodeUI"}static get isOfficialPlugin(){return!0}init(){const e=this.editor,t=e.locale.t,o=hv({editor:e,commandName:wv,plugin:this,icon:'',label:t("Code")});e.ui.componentFactory.add(wv,(()=>o(Kp))),e.ui.componentFactory.add("menuBar:"+wv,(()=>o(Em)))}}const yv="italic";class Av extends br{static get pluginName(){return"ItalicEditing"}static get isOfficialPlugin(){return!0}init(){const e=this.editor,t=this.editor.t;e.model.schema.extend("$text",{allowAttributes:yv}),e.model.schema.setAttributeProperties(yv,{isFormatting:!0,copyOnEnter:!0}),e.conversion.attributeToElement({model:yv,view:"i",upcastAlso:["em",{styles:{"font-style":"italic"}}]}),e.commands.add(yv,new cv(e,yv)),e.keystrokes.set("CTRL+I",yv),e.accessibility.addKeystrokeInfos({keystrokes:[{label:t("Italic text"),keystroke:"CTRL+I"}]})}}const Cv="italic";class vv extends br{static get pluginName(){return"ItalicUI"}static get isOfficialPlugin(){return!0}init(){const e=this.editor,t=e.locale.t,o=hv({editor:e,commandName:Cv,plugin:this,icon:'',keystroke:"CTRL+I",label:t("Italic")});e.ui.componentFactory.add(Cv,(()=>o(Kp))),e.ui.componentFactory.add("menuBar:"+Cv,(()=>o(Em)))}}const xv="strikethrough";class Ev extends br{static get pluginName(){return"StrikethroughEditing"}static get isOfficialPlugin(){return!0}init(){const e=this.editor,t=this.editor.t;e.model.schema.extend("$text",{allowAttributes:xv}),e.model.schema.setAttributeProperties(xv,{isFormatting:!0,copyOnEnter:!0}),e.conversion.attributeToElement({model:xv,view:"s",upcastAlso:["del","strike",{styles:{"text-decoration":"line-through"}}]}),e.commands.add(xv,new cv(e,xv)),e.keystrokes.set("CTRL+SHIFT+X","strikethrough"),e.accessibility.addKeystrokeInfos({keystrokes:[{label:t("Strikethrough text"),keystroke:"CTRL+SHIFT+X"}]})}}const Dv="strikethrough";class Bv extends br{static get pluginName(){return"StrikethroughUI"}static get isOfficialPlugin(){return!0}init(){const e=this.editor,t=e.locale.t,o=hv({editor:e,commandName:Dv,plugin:this,icon:'',keystroke:"CTRL+SHIFT+X",label:t("Strikethrough")});e.ui.componentFactory.add(Dv,(()=>o(Kp))),e.ui.componentFactory.add("menuBar:"+Dv,(()=>o(Em)))}}class Sv extends wr{refresh(){this.value=this._getValue(),this.isEnabled=this._checkEnabled()}execute(e={}){const t=this.editor.model,o=t.schema,n=t.document.selection,i=Array.from(n.getSelectedBlocks()),r=void 0===e.forceValue?!this.value:e.forceValue;t.change((e=>{if(r){const t=i.filter((e=>Tv(e)||Pv(o,e)));this._applyQuote(e,t)}else this._removeQuote(e,i.filter(Tv))}))}_getValue(){const e=or(this.editor.model.document.selection.getSelectedBlocks());return!(!e||!Tv(e))}_checkEnabled(){if(this.value)return!0;const e=this.editor.model.document.selection,t=this.editor.model.schema,o=or(e.getSelectedBlocks());return!!o&&Pv(t,o)}_removeQuote(e,t){Iv(e,t).reverse().forEach((t=>{if(t.start.isAtStart&&t.end.isAtEnd)return void e.unwrap(t.start.parent);if(t.start.isAtStart){const o=e.createPositionBefore(t.start.parent);return void e.move(t,o)}t.end.isAtEnd||e.split(t.end);const o=e.createPositionAfter(t.end.parent);e.move(t,o)}))}_applyQuote(e,t){const o=[];Iv(e,t).reverse().forEach((t=>{let n=Tv(t.start);n||(n=e.createElement("blockQuote"),e.wrap(t,n)),o.push(n)})),o.reverse().reduce(((t,o)=>t.nextSibling==o?(e.merge(e.createPositionAfter(t)),t):o))}}function Tv(e){return"blockQuote"==e.parent.name?e.parent:null}function Iv(e,t){let o,n=0;const i=[];for(;n{const n=e.model.document.differ.getChanges();for(const e of n)if("insert"==e.type){const n=e.position.nodeAfter;if(!n)continue;if(n.is("element","blockQuote")&&n.isEmpty)return o.remove(n),!0;if(n.is("element","blockQuote")&&!t.checkChild(e.position,n))return o.unwrap(n),!0;if(n.is("element")){const e=o.createRangeIn(n);for(const n of e.getItems())if(n.is("element","blockQuote")&&!t.checkChild(o.createPositionBefore(n),n))return o.unwrap(n),!0}}else if("remove"==e.type){const t=e.position.parent;if(t.is("element","blockQuote")&&t.isEmpty)return o.remove(t),!0}return!1}));const o=this.editor.editing.view.document,n=e.model.document.selection,i=e.commands.get("blockQuote");this.listenTo(o,"enter",((t,o)=>{if(!n.isCollapsed||!i.value)return;n.getLastPosition().parent.isEmpty&&(e.execute("blockQuote"),e.editing.view.scrollToTheSelection(),o.preventDefault(),t.stop())}),{context:"blockquote"}),this.listenTo(o,"delete",((t,o)=>{if("backward"!=o.direction||!n.isCollapsed||!i.value)return;const r=n.getLastPosition().parent;r.isEmpty&&!r.previousSibling&&(e.execute("blockQuote"),e.editing.view.scrollToTheSelection(),o.preventDefault(),t.stop())}),{context:"blockquote"})}}var Rv=i(1501),Mv={attributes:{"data-cke":!0}};Mv.setAttributes=Xr(),Mv.insert=Yr().bind(null,"head"),Mv.domAPI=Zr(),Mv.insertStyleElement=ts();Gr()(Rv.A,Mv);Rv.A&&Rv.A.locals&&Rv.A.locals;class zv extends br{static get pluginName(){return"BlockQuoteUI"}static get isOfficialPlugin(){return!0}init(){const e=this.editor;e.ui.componentFactory.add("blockQuote",(()=>{const e=this._createButton(Kp);return e.set({tooltip:!0}),e})),e.ui.componentFactory.add("menuBar:blockQuote",(()=>{const e=this._createButton(Em);return e.set({role:"menuitemcheckbox"}),e}))}_createButton(e){const t=this.editor,o=t.locale,n=t.commands.get("blockQuote"),i=new e(t.locale),r=o.t;return i.set({label:r("Block quote"),icon:up.quote,isToggleable:!0}),i.bind("isEnabled").to(n,"isEnabled"),i.bind("isOn").to(n,"value"),this.listenTo(i,"execute",(()=>{t.execute("blockQuote"),t.editing.view.focus()})),i}}class Ov extends wr{constructor(e){super(e),this._isEnabledBasedOnSelection=!1}refresh(){const e=this.editor.model,t=or(e.document.selection.getSelectedBlocks());this.value=!!t&&t.is("element","paragraph"),this.isEnabled=!!t&&Nv(t,e.schema)}execute(e={}){const t=this.editor.model,o=t.document,n=e.selection||o.selection;t.canEditAt(n)&&t.change((e=>{const o=n.getSelectedBlocks();for(const n of o)!n.is("element","paragraph")&&Nv(n,t.schema)&&e.rename(n,"paragraph")}))}}function Nv(e,t){return t.checkChild(e.parent,"paragraph")&&!t.isObject(e)}class Vv extends wr{constructor(e){super(e),this._isEnabledBasedOnSelection=!1}execute(e){const t=this.editor.model,o=e.attributes;let n=e.position;return t.canEditAt(n)?t.change((e=>{if(n=this._findPositionToInsertParagraph(n,e),!n)return null;const i=e.createElement("paragraph");return o&&t.schema.setAllowedAttributes(i,o,e),t.insertContent(i,n),e.setSelection(i,"in"),e.createPositionAt(i,0)})):null}_findPositionToInsertParagraph(e,t){const o=this.editor.model;if(o.schema.checkChild(e,"paragraph"))return e;const n=o.schema.findAllowedParent(e,"paragraph");if(!n)return null;const i=e.parent,r=o.schema.checkChild(i,"$text");return i.isEmpty||r&&e.isAtEnd?o.createPositionAfter(i):!i.isEmpty&&r&&e.isAtStart?o.createPositionBefore(i):t.split(e,n).position}}class Lv extends br{static get pluginName(){return"Paragraph"}static get isOfficialPlugin(){return!0}init(){const e=this.editor,t=e.model;e.commands.add("paragraph",new Ov(e)),e.commands.add("insertParagraph",new Vv(e)),t.schema.register("paragraph",{inheritAllFrom:"$block"}),e.conversion.elementToElement({model:"paragraph",view:"p"}),e.conversion.for("upcast").elementToElement({model:(e,{writer:t})=>Lv.paragraphLikeElements.has(e.name)?e.isEmpty?null:t.createElement("paragraph"):null,view:/.+/,converterPriority:"low"})}}Lv.paragraphLikeElements=new Set(["blockquote","dd","div","dt","h1","h2","h3","h4","h5","h6","li","p","td","th"]);const Hv=Lv;class jv extends wr{constructor(e,t){super(e),this.modelElements=t}refresh(){const e=or(this.editor.model.document.selection.getSelectedBlocks());this.value=!!e&&this.modelElements.includes(e.name)&&e.name,this.isEnabled=!!e&&this.modelElements.some((t=>qv(e,t,this.editor.model.schema)))}execute(e){const t=this.editor.model,o=t.document,n=e.value;t.change((e=>{const i=Array.from(o.selection.getSelectedBlocks()).filter((e=>qv(e,n,t.schema)));for(const t of i)t.is("element",n)||e.rename(t,n)}))}}function qv(e,t,o){return o.checkChild(e.parent,t)&&!o.isObject(e)}const $v="paragraph";class Uv extends br{static get pluginName(){return"HeadingEditing"}static get isOfficialPlugin(){return!0}constructor(e){super(e),e.config.define("heading",{options:[{model:"paragraph",title:"Paragraph",class:"ck-heading_paragraph"},{model:"heading1",view:"h2",title:"Heading 1",class:"ck-heading_heading1"},{model:"heading2",view:"h3",title:"Heading 2",class:"ck-heading_heading2"},{model:"heading3",view:"h4",title:"Heading 3",class:"ck-heading_heading3"}]})}static get requires(){return[Hv]}init(){const e=this.editor,t=e.config.get("heading.options"),o=[];for(const n of t)"paragraph"!==n.model&&(e.model.schema.register(n.model,{inheritAllFrom:"$block"}),e.conversion.elementToElement(n),o.push(n.model));this._addDefaultH1Conversion(e),e.commands.add("heading",new jv(e,o))}afterInit(){const e=this.editor,t=e.commands.get("enter"),o=e.config.get("heading.options");t&&this.listenTo(t,"afterExecute",((t,n)=>{const i=e.model.document.selection.getFirstPosition().parent;o.some((e=>i.is("element",e.model)))&&!i.is("element",$v)&&0===i.childCount&&n.writer.rename(i,$v)}))}_addDefaultH1Conversion(e){e.conversion.for("upcast").elementToElement({model:"heading1",view:"h1",converterPriority:D.low+1})}}var Wv=i(6186),Gv={attributes:{"data-cke":!0}};Gv.setAttributes=Xr(),Gv.insert=Yr().bind(null,"head"),Gv.domAPI=Zr(),Gv.insertStyleElement=ts();Gr()(Wv.A,Gv);Wv.A&&Wv.A.locals&&Wv.A.locals;class Kv extends br{static get pluginName(){return"HeadingUI"}static get isOfficialPlugin(){return!0}init(){const e=this.editor,t=e.t,o=function(e){const t=e.t,o={Paragraph:t("Paragraph"),"Heading 1":t("Heading 1"),"Heading 2":t("Heading 2"),"Heading 3":t("Heading 3"),"Heading 4":t("Heading 4"),"Heading 5":t("Heading 5"),"Heading 6":t("Heading 6")};return e.config.get("heading.options").map((e=>{const t=o[e.title];return t&&t!=e.title&&(e.title=t),e}))}(e),n=t("Choose heading"),i=t("Heading");e.ui.componentFactory.add("heading",(t=>{const r={},s=new tr,a=e.commands.get("heading"),l=e.commands.get("paragraph"),c=[a];for(const e of o){const t={type:"button",model:new hk({label:e.title,class:e.class,role:"menuitemradio",withText:!0})};"paragraph"===e.model?(t.model.bind("isOn").to(l,"value"),t.model.set("commandName","paragraph"),c.push(l)):(t.model.bind("isOn").to(a,"value",(t=>t===e.model)),t.model.set({commandName:"heading",commandValue:e.model})),s.add(t),r[e.model]=e.title}const d=kf(t);return yf(d,s,{ariaLabel:i,role:"menu"}),d.buttonView.set({ariaLabel:i,ariaLabelledBy:void 0,isOn:!1,withText:!0,tooltip:i}),d.extendTemplate({attributes:{class:["ck-heading-dropdown"]}}),d.bind("isEnabled").toMany(c,"isEnabled",((...e)=>e.some((e=>e)))),d.buttonView.bind("label").to(a,"value",l,"value",((e,t)=>{const o=t?"paragraph":e;return"boolean"==typeof o?n:r[o]?r[o]:n})),d.buttonView.bind("ariaLabel").to(a,"value",l,"value",((e,t)=>{const o=t?"paragraph":e;return"boolean"==typeof o?i:r[o]?`${r[o]}, ${i}`:i})),this.listenTo(d,"execute",(t=>{const{commandName:o,commandValue:n}=t.source;e.execute(o,n?{value:n}:void 0),e.editing.view.focus()})),d})),e.ui.componentFactory.add("menuBar:heading",(n=>{const i=new Qk(n),r=e.commands.get("heading"),s=e.commands.get("paragraph"),a=[r],l=new Xk(n);i.set({class:"ck-heading-dropdown"}),l.set({ariaLabel:t("Heading"),role:"menu"}),i.buttonView.set({label:t("Heading")}),i.panelView.children.add(l);for(const t of o){const o=new jb(n,i),c=new Em(n);o.children.add(c),l.items.add(o),c.set({isToggleable:!0,label:t.title,role:"menuitemradio",class:t.class}),c.delegate("execute").to(i),c.on("execute",(()=>{const o="paragraph"===t.model?"paragraph":"heading";e.execute(o,{value:t.model}),e.editing.view.focus()})),"paragraph"===t.model?(c.bind("isOn").to(s,"value"),a.push(s)):c.bind("isOn").to(r,"value",(e=>e===t.model))}return i.bind("isEnabled").toMany(a,"isEnabled",((...e)=>e.some((e=>e)))),i}))}}new Set(["paragraph","heading1","heading2","heading3","heading4","heading5","heading6"]);class Zv{constructor(){this._definitions=new Set}get length(){return this._definitions.size}add(e){Array.isArray(e)?e.forEach((e=>this._definitions.add(e))):this._definitions.add(e)}getDispatcher(){return e=>{e.on("attribute:linkHref",((e,t,o)=>{if(!o.consumable.test(t.item,"attribute:linkHref"))return;if(!t.item.is("selection")&&!o.schema.isInline(t.item))return;const n=o.writer,i=n.document.selection;for(const e of this._definitions){const r=n.createAttributeElement("a",e.attributes,{priority:5});e.classes&&n.addClass(e.classes,r);for(const t in e.styles)n.setStyle(t,e.styles[t],r);n.setCustomProperty("link",!0,r),e.callback(t.attributeNewValue)?t.item.is("selection")?n.wrap(i.getFirstRange(),r):n.wrap(o.mapper.toViewRange(t.range),r):n.unwrap(o.mapper.toViewRange(t.range),r)}}),{priority:"high"})}}getDispatcherForLinkedImage(){return e=>{e.on("attribute:linkHref:imageBlock",((e,t,{writer:o,mapper:n})=>{const i=n.toViewElement(t.item),r=Array.from(i.getChildren()).find((e=>e.is("element","a")));if(r)for(const e of this._definitions){const n=lr(e.attributes);if(e.callback(t.attributeNewValue)){for(const[e,t]of n)"class"===e?o.addClass(t,r):o.setAttribute(e,t,r);e.classes&&o.addClass(e.classes,r);for(const t in e.styles)o.setStyle(t,e.styles[t],r)}else{for(const[e,t]of n)"class"===e?o.removeClass(t,r):o.removeAttribute(e,r);e.classes&&o.removeClass(e.classes,r);for(const t in e.styles)o.removeStyle(t,r)}}}))}}}const Jv=function(e,t,o){var n=e.length;return o=void 0===o?n:o,!t&&o>=n?e:Es(e,t,o)};var Yv=RegExp("[\\u200d\\ud800-\\udfff\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff\\ufe0e\\ufe0f]");const Qv=function(e){return Yv.test(e)};const Xv=function(e){return e.split("")};var ex="\\ud800-\\udfff",tx="["+ex+"]",ox="[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]",nx="\\ud83c[\\udffb-\\udfff]",ix="[^"+ex+"]",rx="(?:\\ud83c[\\udde6-\\uddff]){2}",sx="[\\ud800-\\udbff][\\udc00-\\udfff]",ax="(?:"+ox+"|"+nx+")"+"?",lx="[\\ufe0e\\ufe0f]?",cx=lx+ax+("(?:\\u200d(?:"+[ix,rx,sx].join("|")+")"+lx+ax+")*"),dx="(?:"+[ix+ox+"?",ox,rx,sx,tx].join("|")+")",ux=RegExp(nx+"(?="+nx+")|"+dx+cx,"g");const hx=function(e){return e.match(ux)||[]};const px=function(e){return Qv(e)?hx(e):Xv(e)};const mx=function(e){return function(t){t=Vr(t);var o=Qv(t)?px(t):void 0,n=o?o[0]:t.charAt(0),i=o?Jv(o,1).join(""):t.slice(1);return n[e]()+i}}("toUpperCase"),gx=/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205f\u3000]/g,fx=/^[\S]+@((?![-_])(?:[-\w\u00a1-\uffff]{0,63}[^-_]\.))+(?:[a-z\u00a1-\uffff]{2,})$/i,bx=/^((\w+:(\/{2,})?)|(\W))/i,kx=["https?","ftps?","mailto"],wx="Ctrl+K";function _x(e,{writer:t}){const o=t.createAttributeElement("a",{href:e},{priority:5});return t.setCustomProperty("link",!0,o),o}function yx(e,t=kx){const o=String(e),n=t.join("|");return function(e,t){const o=e.replace(gx,"");return!!o.match(t)}(o,new RegExp(`${"^(?:(?:):|[^a-z]|[a-z+.-]+(?:[^a-z+.:-]|$))".replace("",n)}`,"i"))?o:"#"}function Ax(e,t){return!!e&&t.checkAttribute(e.name,"linkHref")}function Cx(e,t){const o=(n=e,fx.test(n)?"mailto:":t);var n;const i=!!o&&!vx(e);return e&&i?o+e:e}function vx(e){return bx.test(e)}function xx(e){window.open(e,"_blank","noopener")}function Ex(e){const t=e.plugins.has("BookmarkEditing")?e.plugins.get("BookmarkEditing"):null;return{isScrollableToTarget:function(e){return!!e&&e.startsWith("#")&&!!t&&!!t.getElementForBookmarkId(e.slice(1))},scrollToTarget:function(o){const n=o.slice(1),i=t.getElementForBookmarkId(n);e.model.change((e=>{e.setSelection(i,"on")})),e.editing.view.scrollToTheSelection({alignToTop:!0,forceScroll:!0})}}}class Dx extends wr{constructor(){super(...arguments),this.manualDecorators=new tr,this.automaticDecorators=new Zv}restoreManualDecoratorStates(){for(const e of this.manualDecorators)e.value=this._getDecoratorStateFromModel(e.id)}refresh(){const e=this.editor.model,t=e.document.selection,o=t.getSelectedElement()||or(t.getSelectedBlocks());Ax(o,e.schema)?(this.value=o.getAttribute("linkHref"),this.isEnabled=e.schema.checkAttribute(o,"linkHref")):(this.value=t.getAttribute("linkHref"),this.isEnabled=e.schema.checkAttributeInSelection(t,"linkHref"));for(const e of this.manualDecorators)e.value=this._getDecoratorStateFromModel(e.id)}execute(e,t={}){const o=this.editor.model,n=o.document.selection,i=[],r=[];for(const e in t)t[e]?i.push(e):r.push(e);o.change((t=>{if(n.isCollapsed){const s=n.getFirstPosition();if(n.hasAttribute("linkHref")){const a=Bx(n);let l=u_(s,"linkHref",n.getAttribute("linkHref"),o);n.getAttribute("linkHref")===a&&(l=this._updateLinkContent(o,t,l,e)),t.setAttribute("linkHref",e,l),i.forEach((e=>{t.setAttribute(e,!0,l)})),r.forEach((e=>{t.removeAttribute(e,l)})),t.setSelection(t.createPositionAfter(l.end.nodeBefore))}else if(""!==e){const r=lr(n.getAttributes());r.set("linkHref",e),i.forEach((e=>{r.set(e,!0)}));const{end:a}=o.insertContent(t.createText(e,r),s);t.setSelection(a)}["linkHref",...i,...r].forEach((e=>{t.removeSelectionAttribute(e)}))}else{const s=o.schema.getValidRanges(n.getRanges(),"linkHref"),a=[];for(const e of n.getSelectedBlocks())o.schema.checkAttribute(e,"linkHref")&&a.push(t.createRangeOn(e));const l=a.slice();for(const e of s)this._isRangeToUpdate(e,a)&&l.push(e);for(const s of l){let a=s;if(1===l.length){const i=Bx(n);n.getAttribute("linkHref")===i&&(a=this._updateLinkContent(o,t,s,e),t.setSelection(t.createSelection(a)))}t.setAttribute("linkHref",e,a),i.forEach((e=>{t.setAttribute(e,!0,a)})),r.forEach((e=>{t.removeAttribute(e,a)}))}}}))}_getDecoratorStateFromModel(e){const t=this.editor.model,o=t.document.selection,n=o.getSelectedElement();return Ax(n,t.schema)?n.getAttribute(e):o.getAttribute(e)}_isRangeToUpdate(e,t){for(const o of t)if(o.containsRange(e))return!1;return!0}_updateLinkContent(e,t,o,n){const i=t.createText(n,{linkHref:n});return e.insertContent(i,o)}}function Bx(e){if(e.isCollapsed){const t=e.getFirstPosition();return t.textNode&&t.textNode.data}{const t=Array.from(e.getFirstRange().getItems());if(t.length>1)return null;const o=t[0];return o.is("$text")||o.is("$textProxy")?o.data:null}}class Sx extends wr{refresh(){const e=this.editor.model,t=e.document.selection,o=t.getSelectedElement();Ax(o,e.schema)?this.isEnabled=e.schema.checkAttribute(o,"linkHref"):this.isEnabled=e.schema.checkAttributeInSelection(t,"linkHref")}execute(){const e=this.editor,t=this.editor.model,o=t.document.selection,n=e.commands.get("link");t.change((e=>{const i=o.isCollapsed?[u_(o.getFirstPosition(),"linkHref",o.getAttribute("linkHref"),t)]:t.schema.getValidRanges(o.getRanges(),"linkHref");for(const t of i)if(e.removeAttribute("linkHref",t),n)for(const o of n.manualDecorators)e.removeAttribute(o.id,t)}))}}class Tx extends(X()){constructor({id:e,label:t,attributes:o,classes:n,styles:i,defaultValue:r}){super(),this.id=e,this.set("value",void 0),this.defaultValue=r,this.label=t,this.attributes=o,this.classes=n,this.styles=i}_createPattern(){return{attributes:this.attributes,classes:this.classes,styles:this.styles}}}var Ix=i(7456),Px={attributes:{"data-cke":!0}};Px.setAttributes=Xr(),Px.insert=Yr().bind(null,"head"),Px.domAPI=Zr(),Px.insertStyleElement=ts();Gr()(Ix.A,Px);Ix.A&&Ix.A.locals&&Ix.A.locals;const Fx="automatic",Rx=/^(https?:)?\/\//;class Mx extends br{static get pluginName(){return"LinkEditing"}static get isOfficialPlugin(){return!0}static get requires(){return[n_,jw,By]}constructor(e){super(e),e.config.define("link",{allowCreatingEmptyLinks:!1,addTargetToExternalLinks:!1})}init(){const e=this.editor,t=this.editor.config.get("link.allowedProtocols");e.model.schema.extend("$text",{allowAttributes:"linkHref"}),e.conversion.for("dataDowncast").attributeToElement({model:"linkHref",view:_x}),e.conversion.for("editingDowncast").attributeToElement({model:"linkHref",view:(e,o)=>_x(yx(e,t),o)}),e.conversion.for("upcast").elementToAttribute({view:{name:"a",attributes:{href:!0}},model:{key:"linkHref",value:e=>e.getAttribute("href")}}),e.commands.add("link",new Dx(e)),e.commands.add("unlink",new Sx(e));const o=function(e,t){const o={"Open in a new tab":e("Open in a new tab"),Downloadable:e("Downloadable")};return t.forEach((e=>("label"in e&&o[e.label]&&(e.label=o[e.label]),e))),t}(e.t,function(e){const t=[];if(e)for(const[o,n]of Object.entries(e)){const e=Object.assign({},n,{id:`link${mx(o)}`});t.push(e)}return t}(e.config.get("link.decorators")));this._enableAutomaticDecorators(o.filter((e=>e.mode===Fx))),this._enableManualDecorators(o.filter((e=>"manual"===e.mode)));e.plugins.get(n_).registerAttribute("linkHref"),p_(e,"linkHref","a","ck-link_selected"),this._enableLinkOpen(),this._enableSelectionAttributesFixer(),this._enableClipboardIntegration()}_enableAutomaticDecorators(e){const t=this.editor,o=t.commands.get("link").automaticDecorators;t.config.get("link.addTargetToExternalLinks")&&o.add({id:"linkIsExternal",mode:Fx,callback:e=>!!e&&Rx.test(e),attributes:{target:"_blank",rel:"noopener noreferrer"}}),o.add(e),o.length&&t.conversion.for("downcast").add(o.getDispatcher())}_enableManualDecorators(e){if(!e.length)return;const t=this.editor,o=t.commands.get("link").manualDecorators;e.forEach((e=>{t.model.schema.extend("$text",{allowAttributes:e.id});const n=new Tx(e);o.add(n),t.conversion.for("downcast").attributeToElement({model:n.id,view:(e,{writer:t,schema:o},{item:i})=>{if((i.is("selection")||o.isInline(i))&&e){const e=t.createAttributeElement("a",n.attributes,{priority:5});n.classes&&t.addClass(n.classes,e);for(const o in n.styles)t.setStyle(o,n.styles[o],e);return t.setCustomProperty("link",!0,e),e}}}),t.conversion.for("upcast").elementToAttribute({view:{name:"a",...n._createPattern()},model:{key:n.id}})}))}_enableLinkOpen(){const e=this.editor,t=e.editing.view.document,o=Ex(e);function n(e){o.isScrollableToTarget(e)?o.scrollToTarget(e):xx(e)}this.listenTo(t,"click",((e,t)=>{if(!(c.isMac?t.domEvent.metaKey:t.domEvent.ctrlKey))return;let o=t.domTarget;if("a"!=o.tagName.toLowerCase()&&(o=o.closest("a")),!o)return;const i=o.getAttribute("href");i&&(e.stop(),t.preventDefault(),n(i))}),{context:"$capture"}),this.listenTo(t,"keydown",((t,o)=>{const i=e.commands.get("link").value;!!i&&o.keyCode===Ai.enter&&o.altKey&&(t.stop(),n(i))}))}_enableSelectionAttributesFixer(){const e=this.editor.model,t=e.document.selection;this.listenTo(t,"change:attribute",((o,{attributeKeys:n})=>{n.includes("linkHref")&&!t.hasAttribute("linkHref")&&e.change((t=>{var o;!function(e,t){e.removeSelectionAttribute("linkHref");for(const o of t)e.removeSelectionAttribute(o)}(t,(o=e.schema,o.getDefinition("$text").allowAttributes.filter((e=>e.startsWith("link")))))}))}))}_enableClipboardIntegration(){const e=this.editor,t=e.model,o=this.editor.config.get("link.defaultProtocol");o&&this.listenTo(e.plugins.get("ClipboardPipeline"),"contentInsertion",((e,n)=>{t.change((e=>{const t=e.createRangeIn(n.content);for(const n of t.getItems())if(n.hasAttribute("linkHref")){const t=Cx(n.getAttribute("linkHref"),o);e.setAttribute("linkHref",t,n)}}))}))}}var zx=i(2350),Ox={attributes:{"data-cke":!0}};Ox.setAttributes=Xr(),Ox.insert=Yr().bind(null,"head"),Ox.domAPI=Zr(),Ox.insertStyleElement=ts();Gr()(zx.A,Ox);zx.A&&zx.A.locals&&zx.A.locals;class Nx extends zp{constructor(e,t,o){super(e),this.focusTracker=new nr,this.keystrokes=new ar,this._focusables=new hp;const n=e.t;this._validators=o,this.urlInputView=this._createUrlInput(),this.saveButtonView=this._createButton(n("Save"),up.check,"ck-button-save"),this.saveButtonView.type="submit",this.cancelButtonView=this._createButton(n("Cancel"),up.cancel,"ck-button-cancel","cancel"),this._manualDecoratorSwitches=this._createManualDecoratorSwitches(t),this.children=this._createFormChildren(t.manualDecorators),this._focusCycler=new Xp({focusables:this._focusables,focusTracker:this.focusTracker,keystrokeHandler:this.keystrokes,actions:{focusPrevious:"shift + tab",focusNext:"tab"}});const i=["ck","ck-link-form","ck-responsive-form"];t.manualDecorators.length&&i.push("ck-link-form_layout-vertical","ck-vertical-form"),this.setTemplate({tag:"form",attributes:{class:i,tabindex:"-1"},children:this.children})}getDecoratorSwitchesState(){return Array.from(this._manualDecoratorSwitches).reduce(((e,t)=>(e[t.name]=t.isOn,e)),{})}render(){super.render(),Vp({view:this});[this.urlInputView,...this._manualDecoratorSwitches,this.saveButtonView,this.cancelButtonView].forEach((e=>{this._focusables.add(e),this.focusTracker.add(e.element)})),this.keystrokes.listenTo(this.element)}destroy(){super.destroy(),this.focusTracker.destroy(),this.keystrokes.destroy()}focus(){this._focusCycler.focusFirst()}isValid(){this.resetFormStatus();for(const e of this._validators){const t=e(this);if(t)return this.urlInputView.errorText=t,!1}return!0}resetFormStatus(){this.urlInputView.errorText=null}_createUrlInput(){const e=this.locale.t,t=new dg(this.locale,Ef);return t.fieldView.inputMode="url",t.label=e("Link URL"),t}_createButton(e,t,o,n){const i=new Kp(this.locale);return i.set({label:e,icon:t,tooltip:!0}),i.extendTemplate({attributes:{class:o}}),n&&i.delegate("execute").to(this,n),i}_createManualDecoratorSwitches(e){const t=this.createCollection();for(const o of e.manualDecorators){const n=new Vm(this.locale);n.set({name:o.id,label:o.label,withText:!0}),n.bind("isOn").toMany([o,e],"value",((e,t)=>void 0===t&&void 0===e?!!o.defaultValue:!!e)),n.on("execute",(()=>{o.set("value",!n.isOn)})),t.add(n)}return t}_createFormChildren(e){const t=this.createCollection();if(t.add(this.urlInputView),e.length){const e=new zp;e.setTemplate({tag:"ul",children:this._manualDecoratorSwitches.map((e=>({tag:"li",children:[e],attributes:{class:["ck","ck-list__item"]}}))),attributes:{class:["ck","ck-reset","ck-list"]}}),t.add(e)}return t.add(this.saveButtonView),t.add(this.cancelButtonView),t}get url(){const{element:e}=this.urlInputView.fieldView;return e?e.value.trim():null}}var Vx=i(8040),Lx={attributes:{"data-cke":!0}};Lx.setAttributes=Xr(),Lx.insert=Yr().bind(null,"head"),Lx.domAPI=Zr(),Lx.insertStyleElement=ts();Gr()(Vx.A,Lx);Vx.A&&Vx.A.locals&&Vx.A.locals;class Hx extends zp{constructor(e,t={},o){super(e),this.focusTracker=new nr,this.keystrokes=new ar,this._focusables=new hp;const n=e.t;this._options=o,this.previewButtonView=this._createPreviewButton(),this.unlinkButtonView=this._createButton(n("Unlink"),'',"unlink"),this.editButtonView=this._createButton(n("Edit link"),up.pencil,"edit"),this.set("href",void 0),this._linkConfig=t,this._focusCycler=new Xp({focusables:this._focusables,focusTracker:this.focusTracker,keystrokeHandler:this.keystrokes,actions:{focusPrevious:"shift + tab",focusNext:"tab"}}),this.setTemplate({tag:"div",attributes:{class:["ck","ck-link-actions","ck-responsive-form"],tabindex:"-1"},children:[this.previewButtonView,this.editButtonView,this.unlinkButtonView]})}render(){super.render();[this.previewButtonView,this.editButtonView,this.unlinkButtonView].forEach((e=>{this._focusables.add(e),this.focusTracker.add(e.element)})),this.keystrokes.listenTo(this.element)}destroy(){super.destroy(),this.focusTracker.destroy(),this.keystrokes.destroy()}focus(){this._focusCycler.focusFirst()}_createButton(e,t,o){const n=new Kp(this.locale);return n.set({label:e,icon:t,tooltip:!0}),n.delegate("execute").to(this,o),n}_createPreviewButton(){const e=new Kp(this.locale),t=this.bindTemplate,o=this.t;return e.set({withText:!0}),e.extendTemplate({attributes:{class:["ck","ck-link-actions__preview"],href:t.to("href",(e=>e&&yx(e,this._linkConfig.allowedProtocols))),target:"_blank",rel:"noopener noreferrer"},on:{click:t.to((e=>{this._options&&this._options.isScrollableToTarget(this.href)?(e.preventDefault(),this._options.scrollToTarget(this.href)):xx(this.href)}))}}),e.bind("tooltip").to(this,"href",(e=>this._options&&this._options.isScrollableToTarget(e)?o("Scroll to target"):o("Open link in new tab"))),e.bind("label").to(this,"href",(e=>e||o("This link has no URL"))),e.bind("isEnabled").to(this,"href",(e=>!!e)),e.template.tag="a",e}}const jx="link-ui";class qx extends br{constructor(){super(...arguments),this.actionsView=null,this.formView=null}static get requires(){return[kk]}static get pluginName(){return"LinkUI"}static get isOfficialPlugin(){return!0}init(){const e=this.editor,t=this.editor.t;e.editing.view.addObserver(Xu),this._balloon=e.plugins.get(kk),this._createToolbarLinkButton(),this._enableBalloonActivators(),e.conversion.for("editingDowncast").markerToHighlight({model:jx,view:{classes:["ck-fake-link-selection"]}}),e.conversion.for("editingDowncast").markerToElement({model:jx,view:(e,{writer:t})=>{if(!e.markerRange.isCollapsed)return null;const o=t.createUIElement("span");return t.addClass(["ck-fake-link-selection","ck-fake-link-selection_collapsed"],o),o}}),e.accessibility.addKeystrokeInfos({keystrokes:[{label:t("Create link"),keystroke:wx},{label:t("Move out of a link"),keystroke:[["arrowleft","arrowleft"],["arrowright","arrowright"]]}]})}destroy(){super.destroy(),this.formView&&this.formView.destroy(),this.actionsView&&this.actionsView.destroy()}_createViews(){this.actionsView=this._createActionsView(),this.formView=this._createFormView(),this._enableUserBalloonInteractions()}_createActionsView(){const e=this.editor,t=new Hx(e.locale,e.config.get("link"),Ex(e)),o=e.commands.get("link"),n=e.commands.get("unlink");return t.bind("href").to(o,"value"),t.editButtonView.bind("isEnabled").to(o),t.unlinkButtonView.bind("isEnabled").to(n),this.listenTo(t,"edit",(()=>{this._addFormView()})),this.listenTo(t,"unlink",(()=>{e.execute("unlink"),this._hideUI()})),t.keystrokes.set("Esc",((e,t)=>{this._hideUI(),t()})),t.keystrokes.set(wx,((e,t)=>{this._addFormView(),t()})),t}_createFormView(){const e=this.editor,t=e.commands.get("link"),o=e.config.get("link.defaultProtocol"),n=new(Np(Nx))(e.locale,t,function(e){const t=e.t,o=e.config.get("link.allowCreatingEmptyLinks");return[e=>{if(!o&&!e.url.length)return t("Link URL must not be empty.")}]}(e));return n.urlInputView.fieldView.bind("value").to(t,"value"),n.urlInputView.bind("isEnabled").to(t,"isEnabled"),n.saveButtonView.bind("isEnabled").to(t,"isEnabled"),this.listenTo(n,"submit",(()=>{if(n.isValid()){const{value:t}=n.urlInputView.fieldView.element,i=Cx(t,o);e.execute("link",i,n.getDecoratorSwitchesState()),this._closeFormView()}})),this.listenTo(n.urlInputView,"change:errorText",(()=>{e.ui.update()})),this.listenTo(n,"cancel",(()=>{this._closeFormView()})),n.keystrokes.set("Esc",((e,t)=>{this._closeFormView(),t()})),n}_createToolbarLinkButton(){const e=this.editor;e.ui.componentFactory.add("link",(()=>{const e=this._createButton(Kp);return e.set({tooltip:!0}),e})),e.ui.componentFactory.add("menuBar:link",(()=>{const e=this._createButton(Em);return e.set({role:"menuitemcheckbox"}),e}))}_createButton(e){const t=this.editor,o=t.locale,n=t.commands.get("link"),i=new e(t.locale),r=o.t;return i.set({label:r("Link"),icon:'',keystroke:wx,isToggleable:!0}),i.bind("isEnabled").to(n,"isEnabled"),i.bind("isOn").to(n,"value",(e=>!!e)),this.listenTo(i,"execute",(()=>this._showUI(!0))),i}_enableBalloonActivators(){const e=this.editor,t=e.editing.view.document;this.listenTo(t,"click",(()=>{this._getSelectedLinkElement()&&this._showUI()})),e.keystrokes.set(wx,((t,o)=>{o(),e.commands.get("link").isEnabled&&this._showUI(!0)}))}_enableUserBalloonInteractions(){this.editor.keystrokes.set("Tab",((e,t)=>{this._areActionsVisible&&!this.actionsView.focusTracker.isFocused&&(this.actionsView.focus(),t())}),{priority:"high"}),this.editor.keystrokes.set("Esc",((e,t)=>{this._isUIVisible&&(this._hideUI(),t())})),Op({emitter:this.formView,activator:()=>this._isUIInPanel,contextElements:()=>[this._balloon.view.element],callback:()=>this._hideUI()})}_addActionsView(){this.actionsView||this._createViews(),this._areActionsInPanel||this._balloon.add({view:this.actionsView,position:this._getBalloonPositionData()})}_addFormView(){if(this.formView||this._createViews(),this._isFormInPanel)return;const e=this.editor.commands.get("link");this.formView.disableCssTransitions(),this.formView.resetFormStatus(),this._balloon.add({view:this.formView,position:this._getBalloonPositionData()}),this.formView.urlInputView.fieldView.value=e.value||"",this._balloon.visibleView===this.formView&&this.formView.urlInputView.fieldView.select(),this.formView.enableCssTransitions()}_closeFormView(){const e=this.editor.commands.get("link");e.restoreManualDecoratorStates(),void 0!==e.value?this._removeFormView():this._hideUI()}_removeFormView(){this._isFormInPanel&&(this.formView.saveButtonView.focus(),this.formView.urlInputView.fieldView.reset(),this._balloon.remove(this.formView),this.editor.editing.view.focus(),this._hideFakeVisualSelection())}_showUI(e=!1){this.formView||this._createViews(),this._getSelectedLinkElement()?(this._areActionsVisible?this._addFormView():this._addActionsView(),e&&this._balloon.showStack("main")):(this._showFakeVisualSelection(),this._addActionsView(),e&&this._balloon.showStack("main"),this._addFormView()),this._startUpdatingUI()}_hideUI(){if(!this._isUIInPanel)return;const e=this.editor;this.stopListening(e.ui,"update"),this.stopListening(this._balloon,"change:visibleView"),e.editing.view.focus(),this._removeFormView(),this._balloon.remove(this.actionsView),this._hideFakeVisualSelection()}_startUpdatingUI(){const e=this.editor,t=e.editing.view.document;let o=this._getSelectedLinkElement(),n=r();const i=()=>{const e=this._getSelectedLinkElement(),t=r();o&&!e||!o&&t!==n?this._hideUI():this._isUIVisible&&this._balloon.updatePosition(this._getBalloonPositionData()),o=e,n=t};function r(){return t.selection.focus.getAncestors().reverse().find((e=>e.is("element")))}this.listenTo(e.ui,"update",i),this.listenTo(this._balloon,"change:visibleView",i)}get _isFormInPanel(){return!!this.formView&&this._balloon.hasView(this.formView)}get _areActionsInPanel(){return!!this.actionsView&&this._balloon.hasView(this.actionsView)}get _areActionsVisible(){return!!this.actionsView&&this._balloon.visibleView===this.actionsView}get _isUIInPanel(){return this._isFormInPanel||this._areActionsInPanel}get _isUIVisible(){const e=this._balloon.visibleView;return!!this.formView&&e==this.formView||this._areActionsVisible}_getBalloonPositionData(){const e=this.editor.editing.view,t=this.editor.model,o=e.document;let n;if(t.markers.has(jx)){const t=Array.from(this.editor.editing.mapper.markerNameToElements(jx)),o=e.createRange(e.createPositionBefore(t[0]),e.createPositionAfter(t[t.length-1]));n=e.domConverter.viewRangeToDom(o)}else n=()=>{const t=this._getSelectedLinkElement();return t?e.domConverter.mapViewToDom(t):e.domConverter.viewRangeToDom(o.selection.getFirstRange())};return{target:n}}_getSelectedLinkElement(){const e=this.editor.editing.view,t=e.document.selection,o=t.getSelectedElement();if(t.isCollapsed||o&&ww(o))return $x(t.getFirstPosition());{const o=t.getFirstRange().getTrimmed(),n=$x(o.start),i=$x(o.end);return n&&n==i&&e.createRangeIn(n).getTrimmed().isEqual(o)?n:null}}_showFakeVisualSelection(){const e=this.editor.model;e.change((t=>{const o=e.document.selection.getFirstRange();if(e.markers.has(jx))t.updateMarker(jx,{range:o});else if(o.start.isAtEnd){const n=o.start.getLastMatchingPosition((({item:t})=>!e.schema.isContent(t)),{boundaries:o});t.addMarker(jx,{usingOperation:!1,affectsData:!1,range:t.createRange(n,o.end)})}else t.addMarker(jx,{usingOperation:!1,affectsData:!1,range:o})}))}_hideFakeVisualSelection(){const e=this.editor.model;e.markers.has(jx)&&e.change((e=>{e.removeMarker(jx)}))}}function $x(e){return e.getAncestors().find((e=>{return(t=e).is("attributeElement")&&!!t.getCustomProperty("link");var t}))||null}const Ux=new RegExp("(^|\\s)(((?:(?:(?:https?|ftp):)?\\/\\/)(?:\\S+(?::\\S*)?@)?(?:(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}(?:\\.(?:[1-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))|(((?!www\\.)|(www\\.))(?![-_])(?:[-_a-z0-9\\u00a1-\\uffff]{1,63}\\.)+(?:[a-z\\u00a1-\\uffff]{2,63})))(?::\\d{2,5})?(?:[/?#]\\S*)?)|((www.|(\\S+@))((?![-_])(?:[-_a-z0-9\\u00a1-\\uffff]{1,63}\\.))+(?:[a-z\\u00a1-\\uffff]{2,63})))$","i");class Wx extends br{static get requires(){return[Xw,Mx]}static get pluginName(){return"AutoLink"}static get isOfficialPlugin(){return!0}init(){const e=this.editor.model.document.selection;e.on("change:range",(()=>{this.isEnabled=!e.anchor.parent.is("element","codeBlock")})),this._enableTypingHandling()}afterInit(){this._enableEnterHandling(),this._enableShiftEnterHandling(),this._enablePasteLinking()}_expandLinkRange(e,t){return t.textNode&&t.textNode.hasAttribute("linkHref")?u_(t,"linkHref",t.textNode.getAttribute("linkHref"),e):null}_selectEntireLinks(e,t){const o=this.editor.model,n=o.document.selection,i=n.getFirstPosition(),r=n.getLastPosition();let s=t.getJoined(this._expandLinkRange(o,i)||t);s&&(s=s.getJoined(this._expandLinkRange(o,r)||t)),s&&(s.start.isBefore(i)||s.end.isAfter(r))&&e.setSelection(s)}_enablePasteLinking(){const e=this.editor,t=e.model,o=t.document.selection,n=e.plugins.get("ClipboardPipeline"),i=e.commands.get("link");n.on("inputTransformation",((e,n)=>{if(!this.isEnabled||!i.isEnabled||o.isCollapsed||"paste"!==n.method)return;if(o.rangeCount>1)return;const r=o.getFirstRange(),s=n.dataTransfer.getData("text/plain");if(!s)return;const a=s.match(Ux);a&&a[2]===s&&(t.change((e=>{this._selectEntireLinks(e,r),i.execute(s)})),e.stop())}),{priority:"high"})}_enableTypingHandling(){const e=this.editor,t=new o_(e.model,(e=>{let t=e;if(!function(e){return e.length>4&&" "===e[e.length-1]&&" "!==e[e.length-2]}(t))return;t=t.slice(0,-1),"!.:,;?".includes(t[t.length-1])&&(t=t.slice(0,-1));const o=Gx(t);return o?{url:o,removedTrailingCharacters:e.length-t.length}:void 0}));t.on("matched:data",((t,o)=>{const{batch:n,range:i,url:r,removedTrailingCharacters:s}=o;if(!n.isTyping)return;const a=i.end.getShiftedBy(-s),l=a.getShiftedBy(-r.length),c=e.model.createRange(l,a);this._applyAutoLink(r,c)})),t.bind("isEnabled").to(this)}_enableEnterHandling(){const e=this.editor,t=e.model,o=e.commands.get("enter");o&&o.on("execute",(()=>{const e=t.document.selection.getFirstPosition();if(!e.parent.previousSibling)return;const o=t.createRangeIn(e.parent.previousSibling);this._checkAndApplyAutoLinkOnRange(o)}))}_enableShiftEnterHandling(){const e=this.editor,t=e.model,o=e.commands.get("shiftEnter");o&&o.on("execute",(()=>{const e=t.document.selection.getFirstPosition(),o=t.createRange(t.createPositionAt(e.parent,0),e.getShiftedBy(-1));this._checkAndApplyAutoLinkOnRange(o)}))}_checkAndApplyAutoLinkOnRange(e){const t=this.editor.model,{text:o,range:n}=t_(e,t),i=Gx(o);if(i){const e=t.createRange(n.end.getShiftedBy(-i.length),n.end);this._applyAutoLink(i,e)}}_applyAutoLink(e,t){const o=this.editor.model,n=Cx(e,this.editor.config.get("link.defaultProtocol"));this.isEnabled&&function(e,t){return t.schema.checkAttributeInSelection(t.createSelection(e),"linkHref")}(t,o)&&vx(n)&&!function(e){const t=e.start.nodeAfter;return!!t&&t.hasAttribute("linkHref")}(t)&&this._persistAutoLink(n,t)}_persistAutoLink(e,t){const o=this.editor.model,n=this.editor.plugins.get("Delete");o.enqueueChange((i=>{i.setAttribute("linkHref",e,t),o.enqueueChange((()=>{n.requestUndoOnBackspace()}))}))}}function Gx(e){const t=Ux.exec(e);return t?t[2]:null}var Kx=i(3669),Zx={attributes:{"data-cke":!0}};Zx.setAttributes=Xr(),Zx.insert=Yr().bind(null,"head"),Zx.domAPI=Zr(),Zx.insertStyleElement=ts();Gr()(Kx.A,Zx);Kx.A&&Kx.A.locals&&Kx.A.locals;class Jx{constructor(e,t){this._startElement=e,this._referenceIndent=e.getAttribute("listIndent"),this._isForward="forward"==t.direction,this._includeSelf=!!t.includeSelf,this._sameAttributes=Si(t.sameAttributes||[]),this._sameIndent=!!t.sameIndent,this._lowerIndent=!!t.lowerIndent,this._higherIndent=!!t.higherIndent}static first(e,t){return or(new this(e,t)[Symbol.iterator]())}*[Symbol.iterator](){const e=[];for(const{node:t}of new Yx(this._getStartNode(),this._isForward?"forward":"backward")){const o=t.getAttribute("listIndent");if(othis._referenceIndent){if(!this._higherIndent)continue;if(!this._isForward){e.push(t);continue}}else{if(!this._sameIndent){if(this._higherIndent){e.length&&(yield*e,e.length=0);break}continue}if(this._sameAttributes.some((e=>t.getAttribute(e)!==this._startElement.getAttribute(e))))break}e.length&&(yield*e,e.length=0),yield t}}_getStartNode(){return this._includeSelf?this._startElement:this._isForward?this._startElement.nextSibling:this._startElement.previousSibling}}class Yx{constructor(e,t="forward"){this._previousNodesByIndent=[],this._previous=null,this._previousNodeIndent=null,this._node=e,this._isForward="forward"===t}[Symbol.iterator](){return this}next(){if(!eE(this._node))return{done:!0,value:void 0};const e=this._node.getAttribute("listIndent");let t=null;if(this._previous){const o=this._previousNodeIndent;e>o?this._previousNodesByIndent[o]=this._previous:ee.getAttribute("listItemId")!=t))}function pE(e){return Array.from(e).filter((e=>"$graveyard"!==e.root.rootName)).sort(((e,t)=>e.index-t.index))}function mE(e){const t=e.document.selection.getSelectedElement();return t&&e.schema.isObject(t)&&e.schema.isBlock(t)?t:null}function gE(e,t){return t.checkChild(e.parent,"listItem")&&t.checkChild(e,"$text")&&!t.isObject(e)}function fE(e){return"numbered"==e||"customNumbered"==e}function bE(e,t,o){return oE(t,{direction:"forward"}).pop().index>e.index?cE(e,t,o):[]}class kE extends wr{constructor(e,t){super(e),this._direction=t}refresh(){this.isEnabled=this._checkEnabled()}execute(){const e=this.editor.model,t=wE(e.document.selection);e.change((e=>{const o=[];hE(t)&&!iE(t[0])?("forward"==this._direction&&o.push(...dE(t,e)),o.push(...lE(t[0],e))):"forward"==this._direction?o.push(...dE(t,e,{expand:!0})):o.push(...function(e,t){const o=sE(e=Si(e)),n=new Set,i=Math.min(...o.map((e=>e.getAttribute("listIndent")))),r=new Map;for(const e of o)r.set(e,Jx.first(e,{lowerIndent:!0}));for(const e of o){if(n.has(e))continue;n.add(e);const o=e.getAttribute("listIndent")-1;if(o<0)uE(e,t);else{if(e.getAttribute("listIndent")==i){const o=bE(e,r.get(e),t);for(const e of o)n.add(e);if(o.length)continue}t.setAttribute("listIndent",o,e)}}return pE(n)}(t,e));for(const t of o){if(!t.hasAttribute("listType"))continue;const o=Jx.first(t,{sameIndent:!0});o&&e.setAttribute("listType",o.getAttribute("listType"),t)}this._fireAfterExecute(o)}))}_fireAfterExecute(e){this.fire("afterExecute",pE(new Set(e)))}_checkEnabled(){let e=wE(this.editor.model.document.selection),t=e[0];if(!t)return!1;if("backward"==this._direction)return!0;if(hE(e)&&!iE(e[0]))return!0;e=sE(e),t=e[0];const o=Jx.first(t,{sameIndent:!0});return!!o&&o.getAttribute("listType")==t.getAttribute("listType")}}function wE(e){const t=Array.from(e.getSelectedBlocks()),o=t.findIndex((e=>!eE(e)));return-1!=o&&(t.length=o),t}class _E extends wr{constructor(e,t,o={}){super(e),this.type=t,this._listWalkerOptions=o.multiLevel?{higherIndent:!0,lowerIndent:!0,sameAttributes:[]}:void 0}refresh(){this.value=this._getValue(),this.isEnabled=this._checkEnabled()}execute(e={}){const t=this.editor.model,o=t.document,n=mE(t),i=Array.from(o.selection.getSelectedBlocks()).filter((e=>t.schema.checkAttribute(e,"listType")||gE(e,t.schema))),r=void 0!==e.forceValue?!e.forceValue:this.value;t.change((s=>{if(r){const e=i[i.length-1],t=oE(e,{direction:"forward"}),o=[];t.length>1&&o.push(...lE(t[1],s)),o.push(...uE(i,s)),o.push(...function(e,t){const o=[];let n=Number.POSITIVE_INFINITY;for(const{node:i}of new Yx(e.nextSibling)){const e=i.getAttribute("listIndent");if(0==e)break;e{const{firstElement:r,lastElement:s}=this._getMergeSubjectElements(o,e),a=r.getAttribute("listIndent")||0,l=s.getAttribute("listIndent"),c=s.getAttribute("listItemId");if(a!=l){const e=(d=s,Array.from(new Jx(d,{direction:"forward",higherIndent:!0})));n.push(...dE([s,...e],i,{indentBy:a-l,expand:a{const t=lE(this._getStartBlock(),e);this._fireAfterExecute(t)}))}_fireAfterExecute(e){this.fire("afterExecute",pE(new Set(e)))}_checkEnabled(){const e=this.editor.model.document.selection,t=this._getStartBlock();return e.isCollapsed&&eE(t)&&!iE(t)}_getStartBlock(){const e=this.editor.model.document.selection.getFirstPosition().parent;return"before"==this._direction?e:e.nextSibling}}class CE extends br{static get pluginName(){return"ListUtils"}static get isOfficialPlugin(){return!0}expandListBlocksToCompleteList(e){return aE(e)}isFirstBlockOfListItem(e){return iE(e)}isListItemBlock(e){return eE(e)}expandListBlocksToCompleteItems(e,t={}){return sE(e,t)}isNumberedListType(e){return fE(e)}}function vE(e){return e.is("element","ol")||e.is("element","ul")}function xE(e){return e.is("element","li")}function EE(e,t,o,n=SE(o,t)){return e.createAttributeElement(BE(o),null,{priority:2*t/100-100,id:n})}function DE(e,t,o){return e.createAttributeElement("li",null,{priority:(2*t+1)/100-100,id:o})}function BE(e){return"numbered"==e||"customNumbered"==e?"ol":"ul"}function SE(e,t){return`list-${e}-${t}`}function TE(e,t,o){const n=e.nodeBefore;if(eE(n)){let e=n;for(const{node:i}of new Yx(e,"backward")){if(e=i,o.has(e))return;if(o.add(e),t.has(n))return}t.add(e)}else{const o=e.nodeAfter;eE(o)&&t.add(o)}}function IE(){return(e,t,o)=>{const{writer:n,schema:i}=o;if(!t.modelRange)return;const r=Array.from(t.modelRange.getItems({shallow:!0})).filter((e=>i.checkAttribute(e,"listItemId")));if(!r.length)return;const s=Xx.next(),a=function(e){let t=0,o=e.parent;for(;o;){if(xE(o))t++;else{const e=o.previousSibling;e&&xE(e)&&t++}o=o.parent}return t}(t.viewItem);let l=t.viewItem.parent&&t.viewItem.parent.is("element","ol")?"numbered":"bulleted";const c=r[0].getAttribute("listType");c&&(l=c);const d={listItemId:s,listIndent:a,listType:l};for(const e of r)e.hasAttribute("listItemId")||n.setAttributes(d,e);r.length>1&&r[1].getAttribute("listItemId")!=d.listItemId&&o.keepEmptyElement(r[0])}}function PE(e,t,o,{dataPipeline:n}={}){const i=function(e){return(t,o)=>{const n=[];for(const o of e)t.hasAttribute(o)&&n.push(`attribute:${o}`);return!!n.every((e=>!1!==o.test(t,e)))&&(n.forEach((e=>o.consume(t,e))),!0)}}(e);return(r,s,a)=>{const{writer:l,mapper:c,consumable:d}=a,u=s.item;if(!e.includes(s.attributeKey))return;if(!i(u,d))return;const h=function(e,t,o){const n=o.createRangeOn(e),i=t.toViewRange(n).getTrimmed();return i.end.nodeBefore}(u,c,o);RE(h,l,c),function(e,t){let o=e.parent;for(;o.is("attributeElement")&&["ul","ol","li"].includes(o.name);){const n=o.parent;t.unwrap(t.createRangeOn(e),o),o=n}}(h,l);const p=function(e,t,o,n,{dataPipeline:i}){let r=n.createRangeOn(t);if(!iE(e))return r;for(const s of o){if("itemMarker"!=s.scope)continue;const o=s.createElement(n,e,{dataPipeline:i});if(!o)continue;if(n.setCustomProperty("listItemMarker",!0,o),s.canInjectMarkerIntoElement&&s.canInjectMarkerIntoElement(e)?n.insert(n.createPositionAt(t,0),o):(n.insert(r.start,o),r=n.createRange(n.createPositionBefore(o),n.createPositionAfter(t))),!s.createWrapperElement||!s.canWrapElement)continue;const a=s.createWrapperElement(n,e,{dataPipeline:i});n.setCustomProperty("listItemWrapper",!0,a),s.canWrapElement(e)?r=n.wrap(r,a):(r=n.wrap(n.createRangeOn(o),a),r=n.createRange(r.start,n.createPositionAfter(t)))}return r}(u,h,t,l,{dataPipeline:n});!function(e,t,o,n){if(!e.hasAttribute("listIndent"))return;const i=e.getAttribute("listIndent");let r=e;for(let e=i;e>=0;e--){const i=DE(n,e,r.getAttribute("listItemId")),s=EE(n,e,r.getAttribute("listType"));for(const e of o)"list"!=e.scope&&"item"!=e.scope||!r.hasAttribute(e.attributeName)||e.setAttributeOnDowncast(n,r.getAttribute(e.attributeName),"list"==e.scope?s:i);if(t=n.wrap(t,i),t=n.wrap(t,s),0==e)break;if(r=Jx.first(r,{lowerIndent:!0}),!r)break}}(u,p,t,l)}}function FE(e,{dataPipeline:t}={}){return(o,{writer:n})=>{if(!ME(o,e))return null;if(!t)return n.createContainerElement("span",{class:"ck-list-bogus-paragraph"});const i=n.createContainerElement("p");return n.setCustomProperty("dataPipeline:transparentRendering",!0,i),i}}function RE(e,t,o){for(;e.parent.is("attributeElement")&&e.parent.getCustomProperty("listItemWrapper");)t.unwrap(t.createRangeOn(e),e.parent);const n=[];i(t.createPositionBefore(e).getWalker({direction:"backward"})),i(t.createRangeIn(e).getWalker());for(const e of n)t.remove(e);function i(e){for(const{item:t}of e){if(t.is("element")&&o.toModelElement(t))break;t.is("element")&&t.getCustomProperty("listItemMarker")&&n.push(t)}}}function ME(e,t,o=tE(e)){if(!eE(e))return!1;for(const o of e.getAttributeKeys())if(!o.startsWith("selection:")&&"htmlEmptyBlock"!=o&&!t.includes(o))return!1;return o.length<2}var zE=i(7875),OE={attributes:{"data-cke":!0}};OE.setAttributes=Xr(),OE.insert=Yr().bind(null,"head"),OE.domAPI=Zr(),OE.insertStyleElement=ts();Gr()(zE.A,OE);zE.A&&zE.A.locals&&zE.A.locals;var NE=i(532),VE={attributes:{"data-cke":!0}};VE.setAttributes=Xr(),VE.insert=Yr().bind(null,"head"),VE.domAPI=Zr(),VE.insertStyleElement=ts();Gr()(NE.A,VE);NE.A&&NE.A.locals&&NE.A.locals;const LE=["listType","listIndent","listItemId"];class HE extends br{static get pluginName(){return"ListEditing"}static get isOfficialPlugin(){return!0}static get requires(){return[w_,Xw,CE,By]}constructor(e){super(e),this._downcastStrategies=[],e.config.define("list.multiBlock",!0)}init(){const e=this.editor,t=e.model,o=e.config.get("list.multiBlock");if(e.plugins.has("LegacyListEditing"))throw new S("list-feature-conflict",this,{conflictPlugin:"LegacyListEditing"});t.schema.register("$listItem",{allowAttributes:LE}),o?(t.schema.extend("$container",{allowAttributesOf:"$listItem"}),t.schema.extend("$block",{allowAttributesOf:"$listItem"}),t.schema.extend("$blockObject",{allowAttributesOf:"$listItem"})):t.schema.register("listItem",{inheritAllFrom:"$block",allowAttributesOf:"$listItem"});for(const e of LE)t.schema.setAttributeProperties(e,{copyOnReplace:!0});e.commands.add("numberedList",new _E(e,"numbered")),e.commands.add("bulletedList",new _E(e,"bulleted")),e.commands.add("customNumberedList",new _E(e,"customNumbered",{multiLevel:!0})),e.commands.add("customBulletedList",new _E(e,"customBulleted",{multiLevel:!0})),e.commands.add("indentList",new kE(e,"forward")),e.commands.add("outdentList",new kE(e,"backward")),e.commands.add("splitListItemBefore",new AE(e,"before")),e.commands.add("splitListItemAfter",new AE(e,"after")),o&&(e.commands.add("mergeListItemBackward",new yE(e,"backward")),e.commands.add("mergeListItemForward",new yE(e,"forward"))),this._setupDeleteIntegration(),this._setupEnterIntegration(),this._setupTabIntegration(),this._setupClipboardIntegration(),this._setupAccessibilityIntegration()}afterInit(){const e=this.editor.commands,t=e.get("indent"),o=e.get("outdent");t&&t.registerChildCommand(e.get("indentList"),{priority:"high"}),o&&o.registerChildCommand(e.get("outdentList"),{priority:"lowest"}),this._setupModelPostFixing(),this._setupConversion()}registerDowncastStrategy(e){this._downcastStrategies.push(e)}getListAttributeNames(){return[...LE,...this._downcastStrategies.map((e=>e.attributeName))]}_setupDeleteIntegration(){const e=this.editor,t=e.commands.get("mergeListItemBackward"),o=e.commands.get("mergeListItemForward");this.listenTo(e.editing.view.document,"delete",((n,i)=>{const r=e.model.document.selection;mE(e.model)||e.model.change((()=>{const s=r.getFirstPosition();if(r.isCollapsed&&"backward"==i.direction){if(!s.isAtStart)return;const o=s.parent;if(!eE(o))return;if(Jx.first(o,{sameAttributes:"listType",sameIndent:!0})||0!==o.getAttribute("listIndent")){if(!t||!t.isEnabled)return;t.execute({shouldMergeOnBlocksContentLevel:jE(e.model,"backward")})}else rE(o)||e.execute("splitListItemAfter"),e.execute("outdentList");i.preventDefault(),n.stop()}else{if(r.isCollapsed&&!r.getLastPosition().isAtEnd)return;if(!o||!o.isEnabled)return;o.execute({shouldMergeOnBlocksContentLevel:jE(e.model,"forward")}),i.preventDefault(),n.stop()}}))}),{context:"li"})}_setupEnterIntegration(){const e=this.editor,t=e.model,o=e.commands,n=o.get("enter");this.listenTo(e.editing.view.document,"enter",((o,n)=>{const i=t.document,r=i.selection.getFirstPosition().parent;if(i.selection.isCollapsed&&eE(r)&&r.isEmpty&&!n.isSoft){const t=iE(r),i=rE(r);t&&i?(e.execute("outdentList"),n.preventDefault(),o.stop()):t&&!i?(e.execute("splitListItemAfter"),n.preventDefault(),o.stop()):i&&(e.execute("splitListItemBefore"),n.preventDefault(),o.stop())}}),{context:"li"}),this.listenTo(n,"afterExecute",(()=>{const t=o.get("splitListItemBefore");if(t.refresh(),!t.isEnabled)return;2===tE(e.model.document.selection.getLastPosition().parent).length&&t.execute()}))}_setupTabIntegration(){const e=this.editor;this.listenTo(e.editing.view.document,"tab",((t,o)=>{const n=o.shiftKey?"outdentList":"indentList";this.editor.commands.get(n).isEnabled&&(e.execute(n),o.stopPropagation(),o.preventDefault(),t.stop())}),{context:"li"})}_setupConversion(){const e=this.editor,t=e.model,o=this.getListAttributeNames(),n=e.config.get("list.multiBlock"),i=n?"paragraph":"listItem";e.conversion.for("upcast").elementToElement({view:"li",model:(e,{writer:t})=>t.createElement(i,{listType:""})}).elementToElement({view:"p",model:(e,{writer:t})=>e.parent&&e.parent.is("element","li")?t.createElement(i,{listType:""}):null,converterPriority:"high"}).add((e=>{e.on("element:li",IE())})),n||e.conversion.for("downcast").elementToElement({model:"listItem",view:"p"}),e.conversion.for("editingDowncast").elementToElement({model:i,view:FE(o),converterPriority:"high"}).add((e=>{var n;e.on("attribute",PE(o,this._downcastStrategies,t)),e.on("remove",(n=t.schema,(e,t,o)=>{const{writer:i,mapper:r}=o,s=e.name.split(":")[1];if(!n.checkAttribute(s,"listItemId"))return;const a=r.toViewPosition(t.position),l=t.position.getShiftedBy(t.length),c=r.toViewPosition(l,{isPhantom:!0}),d=i.createRange(a,c).getTrimmed().end.nodeBefore;d&&RE(d,i,r)}))})),e.conversion.for("dataDowncast").elementToElement({model:i,view:FE(o,{dataPipeline:!0}),converterPriority:"high"}).add((e=>{e.on("attribute",PE(o,this._downcastStrategies,t,{dataPipeline:!0}))}));const r=(s=this._downcastStrategies,a=e.editing.view,(e,t)=>{if(t.modelPosition.offset>0)return;const o=t.modelPosition.parent;if(!eE(o))return;if(!s.some((e=>"itemMarker"==e.scope&&e.canInjectMarkerIntoElement&&e.canInjectMarkerIntoElement(o))))return;const n=t.mapper.toViewElement(o),i=a.createRangeIn(n),r=i.getWalker();let l=i.start;for(const{item:e}of r){if(e.is("element")&&t.mapper.toModelElement(e)||e.is("$textProxy"))break;e.is("element")&&e.getCustomProperty("listItemMarker")&&(l=a.createPositionAfter(e),r.skip((({previousPosition:e})=>!e.isEqual(l))))}t.viewPosition=l});var s,a;e.editing.mapper.on("modelToViewPosition",r),e.data.mapper.on("modelToViewPosition",r),this.listenTo(t.document,"change:data",function(e,t,o,n){return()=>{const n=e.document.differ.getChanges(),s=[],a=new Set,l=new Set,c=new Set;for(const e of n)if("insert"==e.type&&"$text"!=e.name)TE(e.position,a,c),e.attributes.has("listItemId")?l.add(e.position.nodeAfter):TE(e.position.getShiftedBy(e.length),a,c);else if("remove"==e.type&&e.attributes.has("listItemId"))TE(e.position,a,c);else if("attribute"==e.type){const t=e.range.start.nodeAfter;o.includes(e.attributeKey)?(TE(e.range.start,a,c),null===e.attributeNewValue?(TE(e.range.start.getShiftedBy(1),a,c),r(t)&&s.push(t)):l.add(t)):eE(t)&&r(t)&&s.push(t)}for(const e of a.values())s.push(...i(e,l));for(const e of new Set(s))t.reconvertItem(e)};function i(e,t){const n=[],i=new Set,a=[];for(const{node:l,previous:c}of new Yx(e)){if(i.has(l))continue;const e=l.getAttribute("listIndent");c&&eo.includes(e))));const d=oE(l,{direction:"forward"});for(const e of d)i.add(e),(r(e,d)||s(e,a,t))&&n.push(e)}return n}function r(e,i){const r=t.mapper.toViewElement(e);if(!r)return!1;if(n.fire("checkElement",{modelElement:e,viewElement:r}))return!0;if(!e.is("element","paragraph")&&!e.is("element","listItem"))return!1;const s=ME(e,o,i);return!(!s||!r.is("element","p"))||!(s||!r.is("element","span"))}function s(e,o,i){if(i.has(e))return!1;const r=t.mapper.toViewElement(e);let s=o.length-1;for(let e=r.parent;!e.is("editableElement");e=e.parent){const t=xE(e),i=vE(e);if(!i&&!t)continue;const r="checkAttributes:"+(t?"item":"list");if(n.fire(r,{viewElement:e,modelAttributes:o[s]}))break;if(i&&(s--,s<0))return!1}return!0}}(t,e.editing,o,this),{priority:"high"}),this.on("checkAttributes:item",((e,{viewElement:t,modelAttributes:o})=>{t.id!=o.listItemId&&(e.return=!0,e.stop())})),this.on("checkAttributes:list",((e,{viewElement:t,modelAttributes:o})=>{t.name==BE(o.listType)&&t.id==SE(o.listType,o.listIndent)||(e.return=!0,e.stop())}))}_setupModelPostFixing(){const e=this.editor.model,t=this.getListAttributeNames();e.document.registerPostFixer((o=>function(e,t,o,n){const i=e.document.differ.getChanges(),r=new Set,s=new Set,a=n.editor.config.get("list.multiBlock");let l=!1;for(const n of i){if("insert"==n.type&&"$text"!=n.name){const i=n.position.nodeAfter;if(!e.schema.checkAttribute(i,"listItemId"))for(const e of Array.from(i.getAttributeKeys()))o.includes(e)&&(t.removeAttribute(e,i),l=!0);TE(n.position,s,r),n.attributes.has("listItemId")||TE(n.position.getShiftedBy(n.length),s,r);for(const{item:t,previousPosition:o}of e.createRangeIn(i))eE(t)&&TE(o,s,r)}else"remove"==n.type?TE(n.position,s,r):"attribute"==n.type&&o.includes(n.attributeKey)&&(TE(n.range.start,s,r),null===n.attributeNewValue&&TE(n.range.start.getShiftedBy(1),s,r));if(!a&&"attribute"==n.type&&LE.includes(n.attributeKey)){const e=n.range.start.nodeAfter;null===n.attributeNewValue&&e&&e.is("element","listItem")?(t.rename(e,"paragraph"),l=!0):null===n.attributeOldValue&&e&&e.is("element")&&"listItem"!=e.name&&(t.rename(e,"listItem"),l=!0)}}const c=new Set;for(const e of s.values())l=n.fire("postFixer",{listNodes:new Qx(e),listHead:e,writer:t,seenIds:c})||l;return l}(e,o,t,this))),this.on("postFixer",((e,{listNodes:t,writer:o})=>{e.return=function(e,t){let o=0,n=-1,i=null,r=!1;for(const{node:s}of e){const e=s.getAttribute("listIndent");if(e>o){let a;null===i?(i=e-o,a=o):(i>e&&(i=e),a=e-i),a>n+1&&(a=n+1),t.setAttribute("listIndent",a,s),r=!0,n=a}else i=null,o=e+1,n=e}return r}(t,o)||e.return}),{priority:"high"}),this.on("postFixer",((e,{listNodes:t,writer:o,seenIds:n})=>{e.return=function(e,t,o){const n=new Set;let i=!1;for(const{node:r}of e){if(n.has(r))continue;let e=r.getAttribute("listType"),s=r.getAttribute("listItemId");if(t.has(s)&&(s=Xx.next()),t.add(s),r.is("element","listItem"))r.getAttribute("listItemId")!=s&&(o.setAttribute("listItemId",s,r),i=!0);else for(const t of oE(r,{direction:"forward"}))n.add(t),t.getAttribute("listType")!=e&&(s=Xx.next(),e=t.getAttribute("listType")),t.getAttribute("listItemId")!=s&&(o.setAttribute("listItemId",s,t),i=!0)}return i}(t,n,o)||e.return}),{priority:"high"})}_setupClipboardIntegration(){const e=this.editor.model,t=this.editor.plugins.get("ClipboardPipeline");this.listenTo(e,"insertContent",function(e){return(t,[o,n])=>{const i=o.is("documentFragment")?Array.from(o.getChildren()):[o];if(!i.length)return;const r=(n?e.createSelection(n):e.document.selection).getFirstPosition();let s;if(eE(r.parent))s=r.parent;else{if(!eE(r.nodeBefore)||!eE(r.nodeAfter))return;s=r.nodeBefore}e.change((e=>{const t=s.getAttribute("listType"),o=s.getAttribute("listIndent"),n=i[0].getAttribute("listIndent")||0,r=Math.max(o-n,0);for(const o of i){const n=eE(o);s.is("element","listItem")&&o.is("element","paragraph")&&e.rename(o,"listItem"),e.setAttributes({listIndent:(n?o.getAttribute("listIndent"):0)+r,listItemId:n?o.getAttribute("listItemId"):Xx.next(),listType:t},o)}}))}}(e),{priority:"high"}),this.listenTo(t,"outputTransformation",((t,o)=>{e.change((e=>{const t=Array.from(o.content.getChildren()),n=t[t.length-1];if(t.length>1&&n.is("element")&&n.isEmpty){t.slice(0,-1).every(eE)&&e.remove(n)}if("copy"==o.method||"cut"==o.method){const t=Array.from(o.content.getChildren());hE(t)&&uE(t,e)}}))}))}_setupAccessibilityIntegration(){const e=this.editor,t=e.t;e.accessibility.addKeystrokeInfoGroup({id:"list",label:t("Keystrokes that can be used in a list"),keystrokes:[{label:t("Increase list item indent"),keystroke:"Tab"},{label:t("Decrease list item indent"),keystroke:"Shift+Tab"}]})}}function jE(e,t){const o=e.document.selection;if(!o.isCollapsed)return!mE(e);if("forward"===t)return!0;const n=o.getFirstPosition().parent,i=n.previousSibling;return!e.schema.isObject(i)&&(!!i.isEmpty||hE([n,i]))}function qE(e,t,o,n){e.ui.componentFactory.add(t,(()=>{const i=$E(Kp,e,t,o,n);return i.set({tooltip:!0,isToggleable:!0}),i})),e.ui.componentFactory.add(`menuBar:${t}`,(()=>{const i=$E(Em,e,t,o,n);return i.set({role:"menuitemcheckbox",isToggleable:!0}),i}))}function $E(e,t,o,n,i){const r=t.commands.get(o),s=new e(t.locale);return s.set({label:n,icon:i}),s.bind("isOn","isEnabled").to(r,"value","isEnabled"),s.on("execute",(()=>{t.execute(o),t.editing.view.focus()})),s}class UE extends br{static get pluginName(){return"ListUI"}static get isOfficialPlugin(){return!0}init(){const e=this.editor.t;this.editor.ui.componentFactory.has("numberedList")||qE(this.editor,"numberedList",e("Numbered List"),up.numberedList),this.editor.ui.componentFactory.has("bulletedList")||qE(this.editor,"bulletedList",e("Bulleted List"),up.bulletedList)}}class WE extends br{static get requires(){return[HE,UE]}static get pluginName(){return"List"}static get isOfficialPlugin(){return!0}}const GE={},KE={},ZE={},JE=[{listStyle:"disc",typeAttribute:"disc",listType:"bulleted"},{listStyle:"circle",typeAttribute:"circle",listType:"bulleted"},{listStyle:"square",typeAttribute:"square",listType:"bulleted"},{listStyle:"decimal",typeAttribute:"1",listType:"numbered"},{listStyle:"decimal-leading-zero",typeAttribute:null,listType:"numbered"},{listStyle:"lower-roman",typeAttribute:"i",listType:"numbered"},{listStyle:"upper-roman",typeAttribute:"I",listType:"numbered"},{listStyle:"lower-alpha",typeAttribute:"a",listType:"numbered"},{listStyle:"upper-alpha",typeAttribute:"A",listType:"numbered"},{listStyle:"lower-latin",typeAttribute:"a",listType:"numbered"},{listStyle:"upper-latin",typeAttribute:"A",listType:"numbered"}];for(const{listStyle:e,typeAttribute:t,listType:o}of JE)GE[e]=o,KE[e]=t,t&&(ZE[t]=e);var YE=i(1911),QE={attributes:{"data-cke":!0}};QE.setAttributes=Xr(),QE.insert=Yr().bind(null,"head"),QE.domAPI=Zr(),QE.insertStyleElement=ts();Gr()(YE.A,QE);YE.A&&YE.A.locals&&YE.A.locals;var XE=i(1330),eD={attributes:{"data-cke":!0}};eD.setAttributes=Xr(),eD.insert=Yr().bind(null,"head"),eD.domAPI=Zr(),eD.insertStyleElement=ts();Gr()(XE.A,eD);XE.A&&XE.A.locals&&XE.A.locals;class tD extends wr{constructor(e){super(e),this.on("execute",(()=>{this.refresh()}),{priority:"highest"})}refresh(){const e=this._getSelectedItems();this.value=this._getValue(e),this.isEnabled=!!e.length}execute(e={}){this.editor.model.change((t=>{const o=this._getSelectedItems(),n=void 0===e.forceValue?!this._getValue(o):e.forceValue;for(const e of o)n?t.setAttribute("todoListChecked",!0,e):t.removeAttribute("todoListChecked",e)}))}_getValue(e){return e.every((e=>e.getAttribute("todoListChecked")))}_getSelectedItems(){const e=this.editor.model,t=e.schema,o=e.document.selection.getFirstRange(),n=o.start.parent,i=[];t.checkAttribute(n,"todoListChecked")&&i.push(...tE(n));for(const e of o.getItems({shallow:!0}))t.checkAttribute(e,"todoListChecked")&&!i.includes(e)&&i.push(...tE(e));return i}}class oD extends nl{constructor(){super(...arguments),this.domEventType=["change"]}onDomEvent(e){if(e.target){const t=this.view.domConverter.mapDomToView(e.target);t&&t.is("element","input")&&"checkbox"==t.getAttribute("type")&&t.findAncestor({classes:"todo-list__label"})&&this.fire("todoCheckboxChange",e)}}}const nD=xi("Ctrl+Enter");class iD extends br{static get pluginName(){return"TodoListEditing"}static get isOfficialPlugin(){return!0}static get requires(){return[HE]}init(){const e=this.editor,t=e.model,o=e.editing,n=e.plugins.get(HE),i=e.config.get("list.multiBlock")?"paragraph":"listItem";e.commands.add("todoList",new _E(e,"todo")),e.commands.add("checkTodoList",new tD(e)),o.view.addObserver(oD),t.schema.extend("$listItem",{allowAttributes:"todoListChecked"}),t.schema.addAttributeCheck((e=>{const t=e.last;if(!t.getAttribute("listItemId")||"todo"!=t.getAttribute("listType"))return!1}),"todoListChecked"),e.conversion.for("upcast").add((e=>{e.on("element:input",((e,t,o)=>{const n=t.modelCursor,i=n.parent,r=t.viewItem;if(!o.consumable.test(r,{name:!0}))return;if("checkbox"!=r.getAttribute("type")||!n.isAtStart||!i.hasAttribute("listType"))return;o.consumable.consume(r,{name:!0});const s=o.writer;s.setAttribute("listType","todo",i),t.viewItem.hasAttribute("checked")&&s.setAttribute("todoListChecked",!0,i),t.modelRange=s.createRange(n)})),e.on("element:li",((e,t,o)=>{const{writer:n,schema:i}=o;if(!t.modelRange)return;const r=Array.from(t.modelRange.getItems({shallow:!0})).filter((e=>"todo"===e.getAttribute("listType")&&i.checkAttribute(e,"listItemId"))).reduce(((e,t)=>{const o=t.getAttribute("listItemId");return e.has(o)||e.set(o,tE(t)),e}),new Map);for(const[,e]of r.entries())if(e.some((e=>e.getAttribute("todoListChecked"))))for(const t of e)n.setAttribute("todoListChecked",!0,t)}),{priority:"low"}),e.on("element:label",rD({name:"label",classes:"todo-list__label"})),e.on("element:label",rD({name:"label",classes:["todo-list__label","todo-list__label_without-description"]})),e.on("element:span",rD({name:"span",classes:"todo-list__label__description"})),e.on("element:ul",function(e){const t=new As(e);return(e,o,n)=>{const i=t.match(o.viewItem);if(!i)return;const r=i.match;r.name=!1,n.consumable.consume(o.viewItem,r)}}({name:"ul",classes:"todo-list"}))})),e.conversion.for("downcast").elementToElement({model:i,view:(e,{writer:t})=>{if(sD(e,n.getListAttributeNames()))return t.createContainerElement("span",{class:"todo-list__label__description"})},converterPriority:"highest"}),n.registerDowncastStrategy({scope:"list",attributeName:"listType",setAttributeOnDowncast(e,t,o){"todo"==t?e.addClass("todo-list",o):e.removeClass("todo-list",o)}}),n.registerDowncastStrategy({scope:"itemMarker",attributeName:"todoListChecked",createElement(e,t,{dataPipeline:o}){if("todo"!=t.getAttribute("listType"))return null;const n=e.createUIElement("input",{type:"checkbox",...t.getAttribute("todoListChecked")?{checked:"checked"}:null,...o?{disabled:"disabled"}:{tabindex:"-1"}});if(o)return n;const i=e.createContainerElement("span",{contenteditable:"false"},n);return i.getFillerOffset=()=>null,i},canWrapElement:e=>sD(e,n.getListAttributeNames()),createWrapperElement(e,t,{dataPipeline:o}){const i=["todo-list__label"];return sD(t,n.getListAttributeNames())||i.push("todo-list__label_without-description"),e.createAttributeElement(o?"label":"span",{class:i.join(" ")})}}),n.on("checkElement",((e,{modelElement:t,viewElement:o})=>{const i=sD(t,n.getListAttributeNames());o.hasClass("todo-list__label__description")!=i&&(e.return=!0,e.stop())})),n.on("checkElement",((t,{modelElement:o,viewElement:n})=>{const i="todo"==o.getAttribute("listType")&&iE(o);let r=!1;const s=e.editing.view.createPositionBefore(n).getWalker({direction:"backward"});for(const{item:t}of s){if(t.is("element")&&e.editing.mapper.toModelElement(t))break;t.is("element","input")&&"checkbox"==t.getAttribute("type")&&(r=!0)}r!=i&&(t.return=!0,t.stop())})),n.on("postFixer",((e,{listNodes:t,writer:o})=>{for(const{node:n,previousNodeInList:i}of t){if(!i)continue;if(i.getAttribute("listItemId")!=n.getAttribute("listItemId"))continue;const t=i.hasAttribute("todoListChecked"),r=n.hasAttribute("todoListChecked");r&&!t?(o.removeAttribute("todoListChecked",n),e.return=!0):!r&&t&&(o.setAttribute("todoListChecked",!0,n),e.return=!0)}})),t.document.registerPostFixer((e=>{const o=t.document.differ.getChanges();let n=!1;for(const t of o)if("attribute"==t.type&&"listType"==t.attributeKey){const o=t.range.start.nodeAfter;"todo"==t.attributeOldValue&&o.hasAttribute("todoListChecked")&&(e.removeAttribute("todoListChecked",o),n=!0)}else if("insert"==t.type&&"$text"!=t.name)for(const{item:o}of e.createRangeOn(t.position.nodeAfter))o.is("element")&&"todo"!=o.getAttribute("listType")&&o.hasAttribute("todoListChecked")&&(e.removeAttribute("todoListChecked",o),n=!0);return n})),this.listenTo(o.view.document,"keydown",((t,o)=>{vi(o)===nD&&(e.execute("checkTodoList"),t.stop())}),{priority:"high"}),this.listenTo(o.view.document,"todoCheckboxChange",((e,t)=>{const n=t.target;if(!n||!n.is("element","input"))return;const i=o.view.createPositionAfter(n),r=o.mapper.toModelPosition(i).parent;r&&eE(r)&&"todo"==r.getAttribute("listType")&&this._handleCheckmarkChange(r)})),this.listenTo(o.view.document,"arrowKey",function(e,t){return(o,n)=>{const i=Di(n.keyCode,t.contentLanguageDirection),r=e.schema,s=e.document.selection;if(!s.isCollapsed)return;const a=s.getFirstPosition(),l=a.parent;if("right"==i&&a.isAtEnd){const t=r.getNearestSelectionRange(e.createPositionAfter(l),"forward");if(!t)return;const i=t.start.parent;i&&eE(i)&&"todo"==i.getAttribute("listType")&&(e.change((e=>e.setSelection(t))),n.preventDefault(),n.stopPropagation(),o.stop())}else if("left"==i&&a.isAtStart&&eE(l)&&"todo"==l.getAttribute("listType")){const t=r.getNearestSelectionRange(e.createPositionBefore(l),"backward");if(!t)return;e.change((e=>e.setSelection(t))),n.preventDefault(),n.stopPropagation(),o.stop()}}}(t,e.locale),{context:"$text"}),this.listenTo(o.mapper,"viewToModelPosition",((e,o)=>{const n=o.viewPosition.parent,i=n.is("attributeElement","li")&&0==o.viewPosition.offset,r=aD(n)&&o.viewPosition.offset<=1,s=n.is("element","span")&&"false"==n.getAttribute("contenteditable")&&aD(n.parent);if(!i&&!r&&!s)return;const a=o.modelPosition.nodeAfter;a&&"todo"==a.getAttribute("listType")&&(o.modelPosition=t.createPositionAt(a,0))}),{priority:"low"}),this._initAriaAnnouncements()}_handleCheckmarkChange(e){const t=this.editor,o=t.model,n=Array.from(o.document.selection.getRanges());o.change((o=>{o.setSelection(e,"end"),t.execute("checkTodoList"),o.setSelection(n)}))}_initAriaAnnouncements(){const{model:e,ui:t,t:o}=this.editor;let n=null;t&&e.document.selection.on("change:range",(()=>{const i=e.document.selection.focus.parent,r=lD(n),s=lD(i);r&&!s?t.ariaLiveAnnouncer.announce(o("Leaving a to-do list")):!r&&s&&t.ariaLiveAnnouncer.announce(o("Entering a to-do list")),n=i}))}}function rD(e){const t=new As(e);return(e,o,n)=>{const i=t.match(o.viewItem);i&&n.consumable.consume(o.viewItem,i.match)&&Object.assign(o,n.convertChildren(o.viewItem,o.modelCursor))}}function sD(e,t){return(e.is("element","paragraph")||e.is("element","listItem"))&&"todo"==e.getAttribute("listType")&&iE(e)&&function(e,t){for(const o of e.getAttributeKeys())if(!o.startsWith("selection:")&&!t.includes(o))return!1;return!0}(e,t)}function aD(e){return!!e&&e.is("attributeElement")&&e.hasClass("todo-list__label")}function lD(e){return!!e&&(!(!e.is("element","paragraph")&&!e.is("element","listItem"))&&"todo"==e.getAttribute("listType"))}class cD extends br{static get pluginName(){return"TodoListUI"}static get isOfficialPlugin(){return!0}init(){const e=this.editor.t;qE(this.editor,"todoList",e("To-do List"),up.todoList)}}var dD=i(5484),uD={attributes:{"data-cke":!0}};uD.setAttributes=Xr(),uD.insert=Yr().bind(null,"head"),uD.domAPI=Zr(),uD.insertStyleElement=ts();Gr()(dD.A,uD);dD.A&&dD.A.locals&&dD.A.locals;class hD extends br{static get requires(){return[iD,cD]}static get pluginName(){return"TodoList"}static get isOfficialPlugin(){return!0}}const pD=Symbol("isOPCodeBlock");function mD(e){return!!e.getCustomProperty(pD)&&ww(e)}function gD(e){const t=e.getSelectedElement();return!(!t||!mD(t))}function fD(e,t,o){const n=t.createContainerElement("pre",{title:window.I18n.t("js.editor.macro.toolbar_help")});return bD(t,e,n),function(e,t,o){return t.setCustomProperty(pD,!0,e),_w(e,t,{label:o})}(n,t,o)}function bD(e,t,o){const n=(t.getAttribute("opCodeblockLanguage")||"language-text").replace(/^language-/,""),i=e.createContainerElement("div",{class:"op-uc-code-block--language"});kD(e,n,i,"text"),e.insert(e.createPositionAt(o,0),i);kD(e,t.getAttribute("opCodeblockContent"),o,"(empty)")}function kD(e,t,o,n){const i=e.createText(t||n);e.insert(e.createPositionAt(o,0),i)}class wD extends nl{constructor(e){super(e),this.domEventType="dblclick"}onDomEvent(e){this.fire(e.type,e)}}class _D extends br{static get pluginName(){return"CodeBlockEditing"}init(){const e=this.editor,t=e.model.schema,o=e.conversion,n=e.editing.view,i=n.document,r=Pw(e);var s,a;t.register("codeblock",{isObject:!0,isBlock:!0,allowContentOf:"$block",allowWhere:["$root","$block"],allowIn:["$root"],allowAttributes:["opCodeblockLanguage","opCodeblockContent"]}),o.for("upcast").add(function(){return t=>{t.on("element:pre",e,{priority:"high"})};function e(e,t,o){if(!o.consumable.test(t.viewItem,{name:!0}))return;const n=Array.from(t.viewItem.getChildren()).find((e=>e.is("element","code")));if(!n||!o.consumable.consume(n,{name:!0}))return;const i=o.writer.createElement("codeblock");o.writer.setAttribute("opCodeblockLanguage",n.getAttribute("class"),i);const r=o.splitToAllowedParent(i,t.modelCursor);if(r){o.writer.insert(i,r.position);const e=n.getChild(0);if(e){o.consumable.consume(e,{name:!0});const t=e.data.replace(/\n$/,"");o.writer.setAttribute("opCodeblockContent",t,i)}t.modelRange=new lc(o.writer.createPositionBefore(i),o.writer.createPositionAfter(i)),t.modelCursor=t.modelRange.end}}}()),o.for("editingDowncast").elementToElement({model:"codeblock",view:(e,{writer:t})=>fD(e,t,"Code block")}).add(function(){return t=>{t.on("attribute:opCodeblockContent",e),t.on("attribute:opCodeblockLanguage",e)};function e(e,t,o){const n=t.item;o.consumable.consume(t.item,e.name);const i=o.mapper.toViewElement(n);o.writer.remove(o.writer.createRangeOn(i.getChild(1))),o.writer.remove(o.writer.createRangeOn(i.getChild(0))),bD(o.writer,n,i)}}()),o.for("dataDowncast").add(function(){return t=>{t.on("insert:codeblock",e,{priority:"high"})};function e(e,t,o){const n=t.item,i=n.getAttribute("opCodeblockLanguage")||"language-text",r=n.getAttribute("opCodeblockContent");o.consumable.consume(n,"insert");const s=o.writer,a=s.createContainerElement("pre"),l=s.createContainerElement("div",{class:"op-uc-code-block--language"}),c=s.createContainerElement("code",{class:i}),d=s.createText(i),u=s.createText(r);s.insert(s.createPositionAt(c,0),u),s.insert(s.createPositionAt(l,0),d),s.insert(s.createPositionAt(a,0),l),s.insert(s.createPositionAt(a,0),c),o.mapper.bindElements(n,c),o.mapper.bindElements(n,a),o.mapper.bindElements(n,l);const h=o.mapper.toViewPosition(t.range.start);s.insert(h,a),e.stop()}}()),this.editor.editing.mapper.on("viewToModelPosition",(s=this.editor.model,a=e=>e.hasClass("op-uc-code-block"),(e,t)=>{const{mapper:o,viewPosition:n}=t,i=o.findMappedViewAncestor(n);if(!a(i))return;const r=o.toModelElement(i);t.modelPosition=s.createPositionAt(r,n.isAtStart?"before":"after")})),n.addObserver(wD),this.listenTo(i,"dblclick",((t,o)=>{let n=o.target,i=o.domEvent;if(i.shiftKey||i.altKey||i.metaKey)return;if(!mD(n)&&(n=n.findAncestor(mD),!n))return;o.preventDefault(),o.stopPropagation();const s=e.editing.mapper.toModelElement(n),a=r.services.macros,l=s.getAttribute("opCodeblockLanguage"),c=s.getAttribute("opCodeblockContent");a.editCodeBlock(c,l).then((t=>e.model.change((e=>{e.setAttribute("opCodeblockLanguage",t.languageClass,s),e.setAttribute("opCodeblockContent",t.content,s)}))))})),e.ui.componentFactory.add("insertCodeBlock",(t=>{const o=new Kp(t);return o.set({label:window.I18n.t("js.editor.macro.code_block.button"),icon:'\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n image/svg+xml\n \n \n \n \n\n',tooltip:!0}),o.on("execute",(()=>{r.services.macros.editCodeBlock().then((t=>e.model.change((o=>{const n=o.createElement("codeblock");o.setAttribute("opCodeblockLanguage",t.languageClass,n),o.setAttribute("opCodeblockContent",t.content,n),e.model.insertContent(n,e.model.document.selection)}))))})),o}))}}class yD extends br{static get requires(){return[kk]}static get pluginName(){return"CodeBlockToolbar"}init(){const e=this.editor,t=this.editor.model,o=Pw(e);G_(e,"opEditCodeBlock",(e=>{const n=o.services.macros,i=e.getAttribute("opCodeblockLanguage"),r=e.getAttribute("opCodeblockContent");n.editCodeBlock(r,i).then((o=>t.change((t=>{t.setAttribute("opCodeblockLanguage",o.languageClass,e),t.setAttribute("opCodeblockContent",o.content,e)}))))}))}afterInit(){Z_(this,this.editor,"OPCodeBlock",gD)}}function AD(e){return e.__currentlyDisabled=e.__currentlyDisabled||[],e.ui.view.toolbar?e.ui.view.toolbar.items._items:[]}function CD(e,t){AD(e).forEach((o=>{let n=o;o instanceof Lm?n=o.buttonView:o!==t&&Object.prototype.hasOwnProperty.call(o,"isEnabled")||(n=null),n&&(n.isEnabled?n.isEnabled=!1:e.__currentlyDisabled.push(n))}))}function vD(e){AD(e).forEach((t=>{let o=t;t instanceof Lm&&(o=t.buttonView),e.__currentlyDisabled.indexOf(o)<0&&(o.isEnabled=!0)})),e.__currentlyDisabled=[]}class xD{constructor(e){this.response=e}get statusCode(){return this.response.status}get redirected(){return this.response.redirected}get ok(){return this.response.ok}get unauthenticated(){return 401===this.statusCode}get unprocessableEntity(){return 422===this.statusCode}get authenticationURL(){return this.response.headers.get("WWW-Authenticate")}get contentType(){return(this.response.headers.get("Content-Type")||"").replace(/;.*$/,"")}get headers(){return this.response.headers}get html(){return this.contentType.match(/^(application|text)\/(html|xhtml\+xml)$/)?this.text:Promise.reject(new Error(`Expected an HTML response but got "${this.contentType}" instead`))}get json(){return this.contentType.match(/^application\/.*json$/)?this.responseJson||(this.responseJson=this.response.json()):Promise.reject(new Error(`Expected a JSON response but got "${this.contentType}" instead`))}get text(){return this.responseText||(this.responseText=this.response.text())}get isTurboStream(){return this.contentType.match(/^text\/vnd\.turbo-stream\.html/)}get isScript(){return this.contentType.match(/\b(?:java|ecma)script\b/)}async renderTurboStream(){if(!this.isTurboStream)return Promise.reject(new Error(`Expected a Turbo Stream response but got "${this.contentType}" instead`));window.Turbo?await window.Turbo.renderStreamMessage(await this.text):console.warn("You must set `window.Turbo = Turbo` to automatically process Turbo Stream events with request.js")}async activeScript(){if(!this.isScript)return Promise.reject(new Error(`Expected a Script response but got "${this.contentType}" instead`));{const e=document.createElement("script"),t=document.querySelector("meta[name=csp-nonce]");if(t){const o=""===t.nonce?t.content:t.nonce;o&&e.setAttribute("nonce",o)}e.innerHTML=await this.text,document.body.appendChild(e)}}}class ED{static register(e){this.interceptor=e}static get(){return this.interceptor}static reset(){this.interceptor=void 0}}function DD(e){const t=document.head.querySelector(`meta[name="${e}"]`);return t&&t.content}class BD{constructor(e,t,o={}){this.method=e,this.options=o,this.originalUrl=t.toString()}async perform(){try{const e=ED.get();e&&await e(this)}catch(e){console.error(e)}const e=window.Turbo?window.Turbo.fetch:window.fetch,t=new xD(await e(this.url,this.fetchOptions));if(t.unauthenticated&&t.authenticationURL)return Promise.reject(window.location.href=t.authenticationURL);t.isScript&&await t.activeScript();return(t.ok||t.unprocessableEntity)&&t.isTurboStream&&await t.renderTurboStream(),t}addHeader(e,t){const o=this.additionalHeaders;o[e]=t,this.options.headers=o}sameHostname(){if(!this.originalUrl.startsWith("http:")&&!this.originalUrl.startsWith("https:"))return!0;try{return new URL(this.originalUrl).hostname===window.location.hostname}catch(e){return!0}}get fetchOptions(){return{method:this.method.toUpperCase(),headers:this.headers,body:this.formattedBody,signal:this.signal,credentials:this.credentials,redirect:this.redirect,keepalive:this.keepalive}}get headers(){const e={"X-Requested-With":"XMLHttpRequest","Content-Type":this.contentType,Accept:this.accept};return this.sameHostname()&&(e["X-CSRF-Token"]=this.csrfToken),function(e){const t={};for(const o in e){const n=e[o];void 0!==n&&(t[o]=n)}return t}(Object.assign(e,this.additionalHeaders))}get csrfToken(){return function(e){const t=document.cookie?document.cookie.split("; "):[],o=`${encodeURIComponent(e)}=`,n=t.find((e=>e.startsWith(o)));if(n){const e=n.split("=").slice(1).join("=");if(e)return decodeURIComponent(e)}}(DD("csrf-param"))||DD("csrf-token")}get contentType(){return this.options.contentType?this.options.contentType:null==this.body||this.body instanceof window.FormData?void 0:this.body instanceof window.File?this.body.type:"application/json"}get accept(){switch(this.responseKind){case"html":return"text/html, application/xhtml+xml";case"turbo-stream":return"text/vnd.turbo-stream.html, text/html, application/xhtml+xml";case"json":return"application/json, application/vnd.api+json";case"script":return"text/javascript, application/javascript";default:return"*/*"}}get body(){return this.options.body}get query(){const e=(this.originalUrl.split("?")[1]||"").split("#")[0],t=new URLSearchParams(e);let o=this.options.query;var n;o instanceof window.FormData?(n=o,o=[...n].reduce(((e,[t,o])=>e.concat("string"==typeof o?[[t,o]]:[])),[])):o=o instanceof window.URLSearchParams?o.entries():Object.entries(o||{}),function(e,t){for(const[o,n]of t)n instanceof window.File||(e.has(o)&&!o.includes("[]")?(e.delete(o),e.set(o,n)):e.append(o,n))}(t,o);const i=t.toString();return i.length>0?`?${i}`:""}get url(){return this.originalUrl.split("?")[0].split("#")[0]+this.query}get responseKind(){return this.options.responseKind||"html"}get signal(){return this.options.signal}get redirect(){return this.options.redirect||"follow"}get credentials(){return this.options.credentials||"same-origin"}get keepalive(){return this.options.keepalive||!1}get additionalHeaders(){return this.options.headers||{}}get formattedBody(){const e="[object String]"===Object.prototype.toString.call(this.body);return"application/json"===this.headers["Content-Type"]&&!e?JSON.stringify(this.body):this.body}}async function SD(e,t){return new BD("get",e,t).perform()}function TD(e,t){const{modelAttribute:o,styleName:n,viewElement:i,defaultValue:r,reduceBoxSides:s=!1,shouldUpcast:a=()=>!0}=t;e.for("upcast").attributeToAttribute({view:{name:i,styles:{[n]:/[\s\S]+/}},model:{key:o,value:e=>{if(!a(e))return;const t=e.getNormalizedStyle(n),o=s?RD(t):t;return r!==o?o:void 0}}})}function ID(e,t,o,n){e.for("upcast").add((e=>e.on("element:"+t,((e,t,i)=>{if(!t.modelRange)return;const r=["border-top-width","border-top-color","border-top-style","border-bottom-width","border-bottom-color","border-bottom-style","border-right-width","border-right-color","border-right-style","border-left-width","border-left-color","border-left-style"].filter((e=>t.viewItem.hasStyle(e)));if(!r.length)return;const s={styles:r};if(!i.consumable.test(t.viewItem,s))return;const a=[...t.modelRange.getItems({shallow:!0})].pop();i.consumable.consume(t.viewItem,s);const l={style:t.viewItem.getNormalizedStyle("border-style"),color:t.viewItem.getNormalizedStyle("border-color"),width:t.viewItem.getNormalizedStyle("border-width")},c={style:RD(l.style),color:RD(l.color),width:RD(l.width)};c.style!==n.style&&i.writer.setAttribute(o.style,c.style,a),c.color!==n.color&&i.writer.setAttribute(o.color,c.color,a),c.width!==n.width&&i.writer.setAttribute(o.width,c.width,a)}))))}function PD(e,t){const{modelElement:o,modelAttribute:n,styleName:i}=t;e.for("downcast").attributeToAttribute({model:{name:o,key:n},view:e=>({key:"style",value:{[i]:e}})})}function FD(e,t){const{modelAttribute:o,styleName:n}=t;e.for("downcast").add((e=>e.on(`attribute:${o}:table`,((e,t,o)=>{const{item:i,attributeNewValue:r}=t,{mapper:s,writer:a}=o;if(!o.consumable.consume(t.item,e.name))return;const l=[...s.toViewElement(i).getChildren()].find((e=>e.is("element","table")));r?a.setStyle(n,r,l):a.removeStyle(n,l)}))))}function RD(e){if(!e)return;const t=["top","right","bottom","left"];if(!t.every((t=>e[t])))return e;const o=e.top;return t.every((t=>e[t]===o))?o:e}function MD(e,t,o,n,i=1){null!=t&&null!=i&&t>i?n.setAttribute(e,t,o):n.removeAttribute(e,o)}function zD(e,t,o={}){const n=e.createElement("tableCell",o);return e.insertElement("paragraph",n),e.insert(n,t),n}function OD(e,t){const o=t.parent.parent,n=parseInt(o.getAttribute("headingColumns")||"0"),{column:i}=e.getCellLocation(t);return!!n&&i{e.on("element:table",((e,t,o)=>{const n=t.viewItem;if(!o.consumable.test(n,{name:!0}))return;const{rows:i,headingRows:r,headingColumns:s}=function(e){let t,o=0;const n=[],i=[];let r;for(const s of Array.from(e.getChildren())){if("tbody"!==s.name&&"thead"!==s.name&&"tfoot"!==s.name)continue;"thead"!==s.name||r||(r=s);const e=Array.from(s.getChildren()).filter((e=>e.is("element","tr")));let a=null;for(const l of e){const e=Array.from(l.getChildren()).filter((e=>e.is("element","td")||e.is("element","th")));if(r&&s===r||"tbody"===s.name&&e.length>0&&(null===a||e.length===a)&&e.every((e=>e.is("element","th"))))o++,n.push(l);else{i.push(l);const e=jD(l);(!t||eo.convertItem(e,o.writer.createPositionAt(l,"end")))),o.convertChildren(n,o.writer.createPositionAt(l,"end")),l.isEmpty){const e=o.writer.createElement("tableRow");o.writer.insert(e,o.writer.createPositionAt(l,"end")),zD(o.writer,o.writer.createPositionAt(e,"end"))}o.updateConversionResult(l,t)}}))}}function HD(e){return t=>{t.on(`element:${e}`,((e,t,{writer:o})=>{if(!t.modelRange)return;const n=t.modelRange.start.nodeAfter,i=o.createPositionAt(n,0);if(t.viewItem.isEmpty)return void o.insertElement("paragraph",i);const r=Array.from(n.getChildren());if(r.every((e=>e.is("element","$marker")))){const e=o.createElement("paragraph");o.insert(e,o.createPositionAt(n,0));for(const t of r)o.move(o.createRangeOn(t),o.createPositionAt(e,"end"))}}),{priority:"low"})}}function jD(e){let t=0,o=0;const n=Array.from(e.getChildren()).filter((e=>"th"===e.name||"td"===e.name));for(;o1||i>1)&&this._recordSpans(o,i,n),this._shouldSkipSlot()||(t=this._formatOutValue(o)),this._nextCellAtColumn=this._column+n}return this._column++,this._column==this._nextCellAtColumn&&this._cellIndex++,t||this.next()}skipRow(e){this._skipRows.add(e)}_advanceToNextRow(){return this._row++,this._rowIndex++,this._column=0,this._cellIndex=0,this._nextCellAtColumn=-1,this.next()}_isOverEndRow(){return void 0!==this._endRow&&this._row>this._endRow}_isOverEndColumn(){return void 0!==this._endColumn&&this._column>this._endColumn}_formatOutValue(e,t=this._row,o=this._column){return{done:!1,value:new $D(this,e,t,o)}}_shouldSkipSlot(){const e=this._skipRows.has(this._row),t=this._rowthis._endColumn;return e||t||o||n}_getSpanned(){const e=this._spannedCells.get(this._row);return e&&e.get(this._column)||null}_recordSpans(e,t,o){const n={cell:e,row:this._row,column:this._column};for(let e=this._row;e0&&!this._jumpedToStartRow}_jumpToNonSpannedRowClosestToStartRow(){const e=this._getRowLength(0);for(let t=this._startRow;!this._jumpedToStartRow;t--)e===this._getRowLength(t)&&(this._row=t,this._rowIndex=t,this._jumpedToStartRow=!0)}_getRowLength(e){return[...this._table.getChild(e).getChildren()].reduce(((e,t)=>e+parseInt(t.getAttribute("colspan")||"1")),0)}}class $D{constructor(e,t,o,n){this.cell=t,this.row=e._row,this.column=e._column,this.cellAnchorRow=o,this.cellAnchorColumn=n,this._cellIndex=e._cellIndex,this._rowIndex=e._rowIndex,this._table=e._table}get isAnchor(){return this.row===this.cellAnchorRow&&this.column===this.cellAnchorColumn}get cellWidth(){return parseInt(this.cell.getAttribute("colspan")||"1")}get cellHeight(){return parseInt(this.cell.getAttribute("rowspan")||"1")}get rowIndex(){return this._rowIndex}getPositionBefore(){return this._table.root.document.model.createPositionAt(this._table.getChild(this.row),this._cellIndex)}}function UD(e,t){return(o,{writer:n})=>{const i=o.getAttribute("headingRows")||0,r=n.createContainerElement("table",null,[]),s=n.createContainerElement("figure",{class:"table"},r);i>0&&n.insert(n.createPositionAt(r,"end"),n.createContainerElement("thead",null,n.createSlot((e=>e.is("element","tableRow")&&e.indexe.is("element","tableRow")&&e.index>=i))));for(const{positionOffset:e,filter:o}of t.additionalSlots)n.insert(n.createPositionAt(r,e),n.createSlot(o));return n.insert(n.createPositionAt(r,"after"),n.createSlot((e=>!e.is("element","tableRow")&&!t.additionalSlots.some((({filter:t})=>t(e)))))),t.asWidget?function(e,t){return t.setCustomProperty("table",!0,e),_w(e,t,{hasSelectionHandle:!0})}(s,n):s}}function WD(e={}){return(t,{writer:o})=>{const n=t.parent,i=n.parent,r=i.getChildIndex(n),s=new qD(i,{row:r}),a=i.getAttribute("headingRows")||0,l=i.getAttribute("headingColumns")||0;let c=null;for(const n of s)if(n.cell==t){const t=n.row{if(!t.parent.is("element","tableCell"))return null;if(!KD(t))return null;if(e.asWidget)return o.createContainerElement("span",{class:"ck-table-bogus-paragraph"});{const e=o.createContainerElement("p");return o.setCustomProperty("dataPipeline:transparentRendering",!0,e),e}}}function KD(e){return 1==e.parent.childCount&&!function(e){for(const t of e.getAttributeKeys())if(!t.startsWith("selection:")&&"htmlEmptyBlock"!=t)return!0;return!1}(e)}class ZD extends wr{refresh(){const e=this.editor.model,t=e.document.selection,o=e.schema;this.isEnabled=function(e,t){const o=e.getFirstPosition().parent,n=o===o.root?o:o.parent;return t.checkChild(n,"table")}(t,o)}execute(e={}){const t=this.editor,o=t.model,n=t.plugins.get("TableUtils"),i=t.config.get("table.defaultHeadings.rows"),r=t.config.get("table.defaultHeadings.columns");void 0===e.headingRows&&i&&(e.headingRows=i),void 0===e.headingColumns&&r&&(e.headingColumns=r),o.change((t=>{const i=n.createTable(t,e);o.insertObject(i,null,null,{findOptimalPosition:"auto"}),t.setSelection(t.createPositionAt(i.getNodeByPath([0,0,0]),0))}))}}class JD extends wr{constructor(e,t={}){super(e),this.order=t.order||"below"}refresh(){const e=this.editor.model.document.selection,t=!!this.editor.plugins.get("TableUtils").getSelectionAffectedTableCells(e).length;this.isEnabled=t}execute(){const e=this.editor,t=e.model.document.selection,o=e.plugins.get("TableUtils"),n="above"===this.order,i=o.getSelectionAffectedTableCells(t),r=o.getRowIndexes(i),s=n?r.first:r.last,a=i[0].findAncestor("table");o.insertRows(a,{at:n?s:s+1,copyStructureFromAbove:!n})}}class YD extends wr{constructor(e,t={}){super(e),this.order=t.order||"right"}refresh(){const e=this.editor.model.document.selection,t=!!this.editor.plugins.get("TableUtils").getSelectionAffectedTableCells(e).length;this.isEnabled=t}execute(){const e=this.editor,t=e.model.document.selection,o=e.plugins.get("TableUtils"),n="left"===this.order,i=o.getSelectionAffectedTableCells(t),r=o.getColumnIndexes(i),s=n?r.first:r.last,a=i[0].findAncestor("table");o.insertColumns(a,{columns:1,at:n?s:s+1})}}class QD extends wr{constructor(e,t={}){super(e),this.direction=t.direction||"horizontally"}refresh(){const e=this.editor.plugins.get("TableUtils").getSelectionAffectedTableCells(this.editor.model.document.selection);this.isEnabled=1===e.length}execute(){const e=this.editor.plugins.get("TableUtils"),t=e.getSelectionAffectedTableCells(this.editor.model.document.selection)[0];"horizontally"===this.direction?e.splitCellHorizontally(t,2):e.splitCellVertically(t,2)}}function XD(e,t,o){const{startRow:n,startColumn:i,endRow:r,endColumn:s}=t,a=o.createElement("table"),l=r-n+1;for(let e=0;e0){MD("headingRows",r-o,e,i,0)}const s=parseInt(t.getAttribute("headingColumns")||"0");if(s>0){MD("headingColumns",s-n,e,i,0)}}(a,e,n,i,o),a}function eB(e,t,o=0){const n=[],i=new qD(e,{startRow:o,endRow:t-1});for(const e of i){const{row:o,cellHeight:i}=e;o1&&(a.rowspan=l);const c=parseInt(e.getAttribute("colspan")||"1");c>1&&(a.colspan=c);const d=r+s,u=[...new qD(i,{startRow:r,endRow:d,includeAllSlots:!0})];let h,p=null;for(const t of u){const{row:n,column:i,cell:r}=t;r===e&&void 0===h&&(h=i),void 0!==h&&h===i&&n===d&&(p=zD(o,t.getPositionBefore(),a))}return MD("rowspan",s,e,o),p}function oB(e,t){const o=[],n=new qD(e);for(const e of n){const{column:n,cellWidth:i}=e;n1&&(r.colspan=s);const a=parseInt(e.getAttribute("rowspan")||"1");a>1&&(r.rowspan=a);const l=zD(n,n.createPositionAfter(e),r);return MD("colspan",i,e,n),l}function iB(e,t,o,n,i,r){const s=parseInt(e.getAttribute("colspan")||"1"),a=parseInt(e.getAttribute("rowspan")||"1");if(o+s-1>i){MD("colspan",i-o+1,e,r,1)}if(t+a-1>n){MD("rowspan",n-t+1,e,r,1)}}function rB(e,t){const o=t.getColumns(e),n=new Array(o).fill(0);for(const{column:t}of new qD(e))n[t]++;const i=n.reduce(((e,t,o)=>t?e:[...e,o]),[]);if(i.length>0){const o=i[i.length-1];return t.removeColumns(e,{at:o}),!0}return!1}function sB(e,t){const o=[],n=t.getRows(e);for(let t=0;t0){const n=o[o.length-1];return t.removeRows(e,{at:n}),!0}return!1}function aB(e,t){rB(e,t)||sB(e,t)}function lB(e,t){const o=Array.from(new qD(e,{startColumn:t.firstColumn,endColumn:t.lastColumn,row:t.lastRow}));if(o.every((({cellHeight:e})=>1===e)))return t.lastRow;const n=o[0].cellHeight-1;return t.lastRow+n}function cB(e,t){const o=Array.from(new qD(e,{startRow:t.firstRow,endRow:t.lastRow,column:t.lastColumn}));if(o.every((({cellWidth:e})=>1===e)))return t.lastColumn;const n=o[0].cellWidth-1;return t.lastColumn+n}class dB extends wr{constructor(e,t){super(e),this.direction=t.direction,this.isHorizontal="right"==this.direction||"left"==this.direction}refresh(){const e=this._getMergeableCell();this.value=e,this.isEnabled=!!e}execute(){const e=this.editor.model,t=e.document,o=this.editor.plugins.get("TableUtils").getTableCellsContainingSelection(t.selection)[0],n=this.value,i=this.direction;e.change((e=>{const t="right"==i||"down"==i,r=t?o:n,s=t?n:o,a=s.parent;!function(e,t,o){uB(e)||(uB(t)&&o.remove(o.createRangeIn(t)),o.move(o.createRangeIn(e),o.createPositionAt(t,"end")));o.remove(e)}(s,r,e);const l=this.isHorizontal?"colspan":"rowspan",c=parseInt(o.getAttribute(l)||"1"),d=parseInt(n.getAttribute(l)||"1");e.setAttribute(l,c+d,r),e.setSelection(e.createRangeIn(r));const u=this.editor.plugins.get("TableUtils");aB(a.findAncestor("table"),u)}))}_getMergeableCell(){const e=this.editor.model.document,t=this.editor.plugins.get("TableUtils"),o=t.getTableCellsContainingSelection(e.selection)[0];if(!o)return;const n=this.isHorizontal?function(e,t,o){const n=e.parent,i=n.parent,r="right"==t?e.nextSibling:e.previousSibling,s=(i.getAttribute("headingColumns")||0)>0;if(!r)return;const a="right"==t?e:r,l="right"==t?r:e,{column:c}=o.getCellLocation(a),{column:d}=o.getCellLocation(l),u=parseInt(a.getAttribute("colspan")||"1"),h=OD(o,a),p=OD(o,l);if(s&&h!=p)return;return c+u===d?r:void 0}(o,this.direction,t):function(e,t,o){const n=e.parent,i=n.parent,r=i.getChildIndex(n);if("down"==t&&r===o.getRows(i)-1||"up"==t&&0===r)return null;const s=parseInt(e.getAttribute("rowspan")||"1"),a=i.getAttribute("headingRows")||0,l="down"==t&&r+s===a,c="up"==t&&r===a;if(a&&(l||c))return null;const d=parseInt(e.getAttribute("rowspan")||"1"),u="down"==t?r+d:r,h=[...new qD(i,{endRow:u})],p=h.find((t=>t.cell===e)),m=p.column,g=h.find((({row:e,cellHeight:o,column:n})=>n===m&&("down"==t?e===u:u===e+o)));return g&&g.cell?g.cell:null}(o,this.direction,t);if(!n)return;const i=this.isHorizontal?"rowspan":"colspan",r=parseInt(o.getAttribute(i)||"1");return parseInt(n.getAttribute(i)||"1")===r?n:void 0}}function uB(e){const t=e.getChild(0);return 1==e.childCount&&t.is("element","paragraph")&&t.isEmpty}class hB extends wr{refresh(){const e=this.editor.plugins.get("TableUtils"),t=e.getSelectionAffectedTableCells(this.editor.model.document.selection),o=t[0];if(o){const n=o.findAncestor("table"),i=e.getRows(n)-1,r=e.getRowIndexes(t),s=0===r.first&&r.last===i;this.isEnabled=!s}else this.isEnabled=!1}execute(){const e=this.editor.model,t=this.editor.plugins.get("TableUtils"),o=t.getSelectionAffectedTableCells(e.document.selection),n=t.getRowIndexes(o),i=o[0],r=i.findAncestor("table"),s=t.getCellLocation(i).column;e.change((e=>{const o=n.last-n.first+1;t.removeRows(r,{at:n.first,rows:o});const i=function(e,t,o,n){const i=e.getChild(Math.min(t,n-1));let r=i.getChild(0),s=0;for(const e of i.getChildren()){if(s>o)return r;r=e,s+=parseInt(e.getAttribute("colspan")||"1")}return r}(r,n.first,s,t.getRows(r));e.setSelection(e.createPositionAt(i,0))}))}}class pB extends wr{refresh(){const e=this.editor.plugins.get("TableUtils"),t=e.getSelectionAffectedTableCells(this.editor.model.document.selection),o=t[0];if(o){const n=o.findAncestor("table"),i=e.getColumns(n),{first:r,last:s}=e.getColumnIndexes(t);this.isEnabled=s-re.cell===t)).column,last:i.find((e=>e.cell===o)).column},s=function(e,t,o,n){const i=parseInt(o.getAttribute("colspan")||"1");return i>1?o:t.previousSibling||o.nextSibling?o.nextSibling||t.previousSibling:n.first?e.reverse().find((({column:e})=>ee>n.last)).cell}(i,t,o,r);this.editor.model.change((t=>{const o=r.last-r.first+1;e.removeColumns(n,{at:r.first,columns:o}),t.setSelection(t.createPositionAt(s,0))}))}}class mB extends wr{refresh(){const e=this.editor.plugins.get("TableUtils"),t=this.editor.model,o=e.getSelectionAffectedTableCells(t.document.selection),n=o.length>0;this.isEnabled=n,this.value=n&&o.every((e=>this._isInHeading(e,e.parent.parent)))}execute(e={}){if(e.forceValue===this.value)return;const t=this.editor.plugins.get("TableUtils"),o=this.editor.model,n=t.getSelectionAffectedTableCells(o.document.selection),i=n[0].findAncestor("table"),{first:r,last:s}=t.getRowIndexes(n),a=this.value?r:s+1,l=i.getAttribute("headingRows")||0;o.change((e=>{if(a){const t=eB(i,a,a>l?l:0);for(const{cell:o}of t)tB(o,a,e)}MD("headingRows",a,i,e,0)}))}_isInHeading(e,t){const o=parseInt(t.getAttribute("headingRows")||"0");return!!o&&e.parent.index0;this.isEnabled=n,this.value=n&&o.every((e=>OD(t,e)))}execute(e={}){if(e.forceValue===this.value)return;const t=this.editor.plugins.get("TableUtils"),o=this.editor.model,n=t.getSelectionAffectedTableCells(o.document.selection),i=n[0].findAncestor("table"),{first:r,last:s}=t.getColumnIndexes(n),a=this.value?r:s+1;o.change((e=>{if(a){const t=oB(i,a);for(const{cell:o,column:n}of t)nB(o,n,a,e)}MD("headingColumns",a,i,e,0)}))}}function fB(e){if(e.is("element","tableColumnGroup"))return e;const t=e.getChildren();return Array.from(t).find((e=>e.is("element","tableColumnGroup")))}function bB(e){const t=fB(e);return t?Array.from(t.getChildren()):[]}class kB extends br{static get pluginName(){return"TableUtils"}static get isOfficialPlugin(){return!0}init(){this.decorate("insertColumns"),this.decorate("insertRows")}getCellLocation(e){const t=e.parent,o=t.parent,n=o.getChildIndex(t),i=new qD(o,{row:n});for(const{cell:t,row:o,column:n}of i)if(t===e)return{row:o,column:n}}createTable(e,t){const o=e.createElement("table"),n=t.rows||2,i=t.columns||2;return wB(e,o,0,n,i),t.headingRows&&MD("headingRows",Math.min(t.headingRows,n),o,e,0),t.headingColumns&&MD("headingColumns",Math.min(t.headingColumns,i),o,e,0),o}insertRows(e,t={}){const o=this.editor.model,n=t.at||0,i=t.rows||1,r=void 0!==t.copyStructureFromAbove,s=t.copyStructureFromAbove?n-1:n,a=this.getRows(e),l=this.getColumns(e);if(n>a)throw new S("tableutils-insertrows-insert-out-of-range",this,{options:t});o.change((t=>{const o=e.getAttribute("headingRows")||0;if(o>n&&MD("headingRows",o+i,e,t,0),!r&&(0===n||n===a))return void wB(t,e,n,i,l);const c=r?Math.max(n,s):n,d=new qD(e,{endRow:c}),u=new Array(l).fill(1);for(const{row:e,column:o,cellHeight:a,cellWidth:l,cell:c}of d){const d=e+a-1,h=e<=s&&s<=d;e0&&zD(t,i,n>1?{colspan:n}:void 0),e+=Math.abs(n)-1}}}))}insertColumns(e,t={}){const o=this.editor.model,n=t.at||0,i=t.columns||1;o.change((t=>{const o=e.getAttribute("headingColumns");ni-1)throw new S("tableutils-removerows-row-index-out-of-range",this,{table:e,options:t});o.change((t=>{const o={first:r,last:s},{cellsToMove:n,cellsToTrim:i}=function(e,{first:t,last:o}){const n=new Map,i=[];for(const{row:r,column:s,cellHeight:a,cell:l}of new qD(e,{endRow:o})){const e=r+a-1;if(r>=t&&r<=o&&e>o){const e=a-(o-r+1);n.set(s,{cell:l,rowspan:e})}if(r=t){let n;n=e>=o?o-t+1:e-t+1,i.push({cell:l,rowspan:a-n})}}return{cellsToMove:n,cellsToTrim:i}}(e,o);if(n.size){!function(e,t,o,n){const i=new qD(e,{includeAllSlots:!0,row:t}),r=[...i],s=e.getChild(t);let a;for(const{column:e,cell:t,isAnchor:i}of r)if(o.has(e)){const{cell:t,rowspan:i}=o.get(e),r=a?n.createPositionAfter(a):n.createPositionAt(s,0);n.move(n.createRangeOn(t),r),MD("rowspan",i,t,n),a=t}else i&&(a=t)}(e,s+1,n,t)}for(let o=s;o>=r;o--)t.remove(e.getChild(o));for(const{rowspan:e,cell:o}of i)MD("rowspan",e,o,t);!function(e,{first:t,last:o},n){const i=e.getAttribute("headingRows")||0;if(t{!function(e,t,o){const n=e.getAttribute("headingColumns")||0;if(n&&t.first=n;i--){for(const{cell:o,column:n,cellWidth:r}of[...new qD(e)])n<=i&&r>1&&n+r>i?MD("colspan",r-1,o,t):n===i&&t.remove(o);if(o[i]){const e=0===i?o[1]:o[i-1],n=parseFloat(o[i].getAttribute("columnWidth")),r=parseFloat(e.getAttribute("columnWidth"));t.remove(o[i]),t.setAttribute("columnWidth",n+r+"%",e)}}sB(e,this)||rB(e,this)}))}splitCellVertically(e,t=2){const o=this.editor.model,n=e.parent.parent,i=parseInt(e.getAttribute("rowspan")||"1"),r=parseInt(e.getAttribute("colspan")||"1");o.change((o=>{if(r>1){const{newCellsSpan:n,updatedSpan:s}=yB(r,t);MD("colspan",s,e,o);const a={};n>1&&(a.colspan=n),i>1&&(a.rowspan=i);_B(r>t?t-1:r-1,o,o.createPositionAfter(e),a)}if(rt===e)),c=a.filter((({cell:t,cellWidth:o,column:n})=>t!==e&&n===l||nl));for(const{cell:e,cellWidth:t}of c)o.setAttribute("colspan",t+s,e);const d={};i>1&&(d.rowspan=i),_B(s,o,o.createPositionAfter(e),d);const u=n.getAttribute("headingColumns")||0;u>l&&MD("headingColumns",u+s,n,o)}}))}splitCellHorizontally(e,t=2){const o=this.editor.model,n=e.parent,i=n.parent,r=i.getChildIndex(n),s=parseInt(e.getAttribute("rowspan")||"1"),a=parseInt(e.getAttribute("colspan")||"1");o.change((o=>{if(s>1){const n=[...new qD(i,{startRow:r,endRow:r+s-1,includeAllSlots:!0})],{newCellsSpan:l,updatedSpan:c}=yB(s,t);MD("rowspan",c,e,o);const{column:d}=n.find((({cell:t})=>t===e)),u={};l>1&&(u.rowspan=l),a>1&&(u.colspan=a);let h=0;for(const e of n){const{column:t,row:n}=e,i=t===d;h>=l&&i&&(h=0),n>=r+c&&i&&(h||_B(1,o,e.getPositionBefore(),u),h++)}}if(sr){const e=i+n;o.setAttribute("rowspan",e,t)}const c={};a>1&&(c.colspan=a),wB(o,i,r+1,n,1,c);const d=i.getAttribute("headingRows")||0;d>r&&MD("headingRows",d+n,i,o)}}))}getColumns(e){return[...e.getChild(0).getChildren()].filter((e=>e.is("element","tableCell"))).reduce(((e,t)=>e+parseInt(t.getAttribute("colspan")||"1")),0)}getRows(e){return Array.from(e.getChildren()).reduce(((e,t)=>t.is("element","tableRow")?e+1:e),0)}createTableWalker(e,t={}){return new qD(e,t)}getSelectedTableCells(e){const t=[];for(const o of this.sortRanges(e.getRanges())){const e=o.getContainedElement();e&&e.is("element","tableCell")&&t.push(e)}return t}getTableCellsContainingSelection(e){const t=[];for(const o of e.getRanges()){const e=o.start.findAncestor("tableCell");e&&t.push(e)}return t}getSelectionAffectedTableCells(e){const t=this.getSelectedTableCells(e);return t.length?t:this.getTableCellsContainingSelection(e)}getRowIndexes(e){const t=e.map((e=>e.parent.index));return this._getFirstLastIndexesObject(t)}getColumnIndexes(e){const t=e[0].findAncestor("table"),o=[...new qD(t)].filter((t=>e.includes(t.cell))).map((e=>e.column));return this._getFirstLastIndexesObject(o)}isSelectionRectangular(e){if(e.length<2||!this._areCellInTheSameTableSection(e))return!1;const t=new Set,o=new Set;let n=0;for(const i of e){const{row:e,column:r}=this.getCellLocation(i),s=parseInt(i.getAttribute("rowspan"))||1,a=parseInt(i.getAttribute("colspan"))||1;t.add(e),o.add(r),s>1&&t.add(e+s-1),a>1&&o.add(r+a-1),n+=s*a}const i=function(e,t){const o=Array.from(e.values()),n=Array.from(t.values()),i=Math.max(...o),r=Math.min(...o),s=Math.max(...n),a=Math.min(...n);return(i-r+1)*(s-a+1)}(t,o);return i==n}sortRanges(e){return Array.from(e).sort(AB)}_getFirstLastIndexesObject(e){const t=e.sort(((e,t)=>e-t));return{first:t[0],last:t[t.length-1]}}_areCellInTheSameTableSection(e){const t=e[0].findAncestor("table"),o=this.getRowIndexes(e),n=parseInt(t.getAttribute("headingRows"))||0;if(!this._areIndexesInSameSection(o,n))return!1;const i=this.getColumnIndexes(e),r=parseInt(t.getAttribute("headingColumns"))||0;return this._areIndexesInSameSection(i,r)}_areIndexesInSameSection({first:e,last:t},o){return e{const n=t.getSelectedTableCells(e.document.selection),i=n.shift(),{mergeWidth:r,mergeHeight:s}=function(e,t,o){let n=0,i=0;for(const e of t){const{row:t,column:r}=o.getCellLocation(e);n=EB(e,r,n,"colspan"),i=EB(e,t,i,"rowspan")}const{row:r,column:s}=o.getCellLocation(e),a=n-s,l=i-r;return{mergeWidth:a,mergeHeight:l}}(i,n,t);MD("colspan",r,i,o),MD("rowspan",s,i,o);for(const e of n)vB(e,i,o);aB(i.findAncestor("table"),t),o.setSelection(i,"in")}))}}function vB(e,t,o){xB(e)||(xB(t)&&o.remove(o.createRangeIn(t)),o.move(o.createRangeIn(e),o.createPositionAt(t,"end"))),o.remove(e)}function xB(e){const t=e.getChild(0);return 1==e.childCount&&t.is("element","paragraph")&&t.isEmpty}function EB(e,t,o,n){const i=parseInt(e.getAttribute(n)||"1");return Math.max(o,t+i)}class DB extends wr{constructor(e){super(e),this.affectsData=!1}refresh(){const e=this.editor.plugins.get("TableUtils").getSelectionAffectedTableCells(this.editor.model.document.selection);this.isEnabled=e.length>0}execute(){const e=this.editor.model,t=this.editor.plugins.get("TableUtils"),o=t.getSelectionAffectedTableCells(e.document.selection),n=t.getRowIndexes(o),i=o[0].findAncestor("table"),r=[];for(let t=n.first;t<=n.last;t++)for(const o of i.getChild(t).getChildren())r.push(e.createRangeOn(o));e.change((e=>{e.setSelection(r)}))}}class BB extends wr{constructor(e){super(e),this.affectsData=!1}refresh(){const e=this.editor.plugins.get("TableUtils").getSelectionAffectedTableCells(this.editor.model.document.selection);this.isEnabled=e.length>0}execute(){const e=this.editor.plugins.get("TableUtils"),t=this.editor.model,o=e.getSelectionAffectedTableCells(t.document.selection),n=o[0],i=o.pop(),r=n.findAncestor("table"),s=e.getCellLocation(n),a=e.getCellLocation(i),l=Math.min(s.column,a.column),c=Math.max(s.column,a.column),d=[];for(const e of new qD(r,{startColumn:l,endColumn:c}))d.push(t.createRangeOn(e.cell));t.change((e=>{e.setSelection(d)}))}}function SB(e){e.document.registerPostFixer((t=>function(e,t){const o=t.document.differ.getChanges();let n=!1;const i=new Set;for(const t of o){let o=null;"insert"==t.type&&"table"==t.name&&(o=t.position.nodeAfter),"insert"!=t.type&&"remove"!=t.type||"tableRow"!=t.name&&"tableCell"!=t.name||(o=t.position.findAncestor("table")),PB(t)&&(o=t.range.start.findAncestor("table")),o&&!i.has(o)&&(n=TB(o,e)||n,n=IB(o,e)||n,i.add(o))}return n}(t,e)))}function TB(e,t){let o=!1;const n=function(e){const t=parseInt(e.getAttribute("headingRows")||"0"),o=Array.from(e.getChildren()).reduce(((e,t)=>t.is("element","tableRow")?e+1:e),0),n=[];for(const{row:i,cell:r,cellHeight:s}of new qD(e)){if(s<2)continue;const e=ie){const t=e-i;n.push({cell:r,rowspan:t})}}return n}(e);if(n.length){o=!0;for(const e of n)MD("rowspan",e.rowspan,e.cell,t,1)}return o}function IB(e,t){let o=!1;const n=function(e){const t=new Array(e.childCount).fill(0);for(const{rowIndex:o}of new qD(e,{includeAllSlots:!0}))t[o]++;return t}(e),i=[];for(const[t,o]of n.entries())!o&&e.getChild(t).is("element","tableRow")&&i.push(t);if(i.length){o=!0;for(const o of i.reverse())t.remove(e.getChild(o)),n.splice(o,1)}const r=n.filter(((t,o)=>e.getChild(o).is("element","tableRow"))),s=r[0];if(!r.every((e=>e===s))){const n=r.reduce(((e,t)=>t>e?t:e),0);for(const[i,s]of r.entries()){const r=n-s;if(r){for(let o=0;ofunction(e,t){const o=t.document.differ.getChanges();let n=!1;for(const t of o)"insert"==t.type&&"table"==t.name&&(n=RB(t.position.nodeAfter,e)||n),"insert"==t.type&&"tableRow"==t.name&&(n=MB(t.position.nodeAfter,e)||n),"insert"==t.type&&"tableCell"==t.name&&(n=zB(t.position.nodeAfter,e)||n),"remove"!=t.type&&"insert"!=t.type||!OB(t)||(n=zB(t.position.parent,e)||n);return n}(t,e)))}function RB(e,t){let o=!1;for(const n of e.getChildren())n.is("element","tableRow")&&(o=MB(n,t)||o);return o}function MB(e,t){let o=!1;for(const n of e.getChildren())o=zB(n,t)||o;return o}function zB(e,t){if(0==e.childCount)return t.insertElement("paragraph",e),!0;const o=Array.from(e.getChildren()).filter((e=>e.is("$text")));for(const e of o)t.wrap(t.createRangeOn(e),"paragraph");return!!o.length}function OB(e){return!!e.position.parent.is("element","tableCell")&&("insert"==e.type&&"$text"==e.name||"remove"==e.type)}function NB(e,t){if(!e.is("element","paragraph"))return!1;const o=t.toViewElement(e);return!!o&&KD(e)!==o.is("element","span")}var VB=i(8864),LB={attributes:{"data-cke":!0}};LB.setAttributes=Xr(),LB.insert=Yr().bind(null,"head"),LB.domAPI=Zr(),LB.insertStyleElement=ts();Gr()(VB.A,LB);VB.A&&VB.A.locals&&VB.A.locals;class HB extends br{static get pluginName(){return"TableEditing"}static get isOfficialPlugin(){return!0}static get requires(){return[kB]}constructor(e){super(e),this._additionalSlots=[]}init(){const e=this.editor,t=e.model,o=t.schema,n=e.conversion,i=e.plugins.get(kB);o.register("table",{inheritAllFrom:"$blockObject",allowAttributes:["headingRows","headingColumns"]}),o.register("tableRow",{allowIn:"table",isLimit:!0}),o.register("tableCell",{allowContentOf:"$container",allowIn:"tableRow",allowAttributes:["colspan","rowspan"],isLimit:!0,isSelectable:!0}),n.for("upcast").add((e=>{e.on("element:figure",((e,t,o)=>{if(!o.consumable.test(t.viewItem,{name:!0,classes:"table"}))return;const n=function(e){for(const t of e.getChildren())if(t.is("element","table"))return t}(t.viewItem);if(!n||!o.consumable.test(n,{name:!0}))return;o.consumable.consume(t.viewItem,{name:!0,classes:"table"});const i=or(o.convertItem(n,t.modelCursor).modelRange.getItems());i?(o.convertChildren(t.viewItem,o.writer.createPositionAt(i,"end")),o.updateConversionResult(i,t)):o.consumable.revert(t.viewItem,{name:!0,classes:"table"})}))})),n.for("upcast").add(LD()),n.for("editingDowncast").elementToStructure({model:{name:"table",attributes:["headingRows"]},view:UD(i,{asWidget:!0,additionalSlots:this._additionalSlots})}),n.for("dataDowncast").elementToStructure({model:{name:"table",attributes:["headingRows"]},view:UD(i,{additionalSlots:this._additionalSlots})}),n.for("upcast").elementToElement({model:"tableRow",view:"tr"}),n.for("upcast").add((e=>{e.on("element:tr",((e,t)=>{t.viewItem.isEmpty&&0==t.modelCursor.index&&e.stop()}),{priority:"high"})})),n.for("downcast").elementToElement({model:"tableRow",view:(e,{writer:t})=>e.isEmpty?t.createEmptyElement("tr"):t.createContainerElement("tr")}),n.for("upcast").elementToElement({model:"tableCell",view:"td"}),n.for("upcast").elementToElement({model:"tableCell",view:"th"}),n.for("upcast").add(HD("td")),n.for("upcast").add(HD("th")),n.for("editingDowncast").elementToElement({model:"tableCell",view:WD({asWidget:!0})}),n.for("dataDowncast").elementToElement({model:"tableCell",view:WD()}),n.for("editingDowncast").elementToElement({model:"paragraph",view:GD({asWidget:!0}),converterPriority:"high"}),n.for("dataDowncast").elementToElement({model:"paragraph",view:GD(),converterPriority:"high"}),n.for("downcast").attributeToAttribute({model:"colspan",view:"colspan"}),n.for("upcast").attributeToAttribute({model:{key:"colspan",value:jB("colspan")},view:"colspan"}),n.for("downcast").attributeToAttribute({model:"rowspan",view:"rowspan"}),n.for("upcast").attributeToAttribute({model:{key:"rowspan",value:jB("rowspan")},view:"rowspan"}),e.config.define("table.defaultHeadings.rows",0),e.config.define("table.defaultHeadings.columns",0),e.commands.add("insertTable",new ZD(e)),e.commands.add("insertTableRowAbove",new JD(e,{order:"above"})),e.commands.add("insertTableRowBelow",new JD(e,{order:"below"})),e.commands.add("insertTableColumnLeft",new YD(e,{order:"left"})),e.commands.add("insertTableColumnRight",new YD(e,{order:"right"})),e.commands.add("removeTableRow",new hB(e)),e.commands.add("removeTableColumn",new pB(e)),e.commands.add("splitTableCellVertically",new QD(e,{direction:"vertically"})),e.commands.add("splitTableCellHorizontally",new QD(e,{direction:"horizontally"})),e.commands.add("mergeTableCells",new CB(e)),e.commands.add("mergeTableCellRight",new dB(e,{direction:"right"})),e.commands.add("mergeTableCellLeft",new dB(e,{direction:"left"})),e.commands.add("mergeTableCellDown",new dB(e,{direction:"down"})),e.commands.add("mergeTableCellUp",new dB(e,{direction:"up"})),e.commands.add("setTableColumnHeader",new gB(e)),e.commands.add("setTableRowHeader",new mB(e)),e.commands.add("selectTableRow",new DB(e)),e.commands.add("selectTableColumn",new BB(e)),SB(t),FB(t),this.listenTo(t.document,"change:data",(()=>{!function(e,t){const o=e.document.differ;for(const e of o.getChanges()){let o,n=!1;if("attribute"==e.type){const t=e.range.start.nodeAfter;if(!t||!t.is("element","table"))continue;if("headingRows"!=e.attributeKey&&"headingColumns"!=e.attributeKey)continue;o=t,n="headingRows"==e.attributeKey}else"tableRow"!=e.name&&"tableCell"!=e.name||(o=e.position.findAncestor("table"),n="tableRow"==e.name);if(!o)continue;const i=o.getAttribute("headingRows")||0,r=o.getAttribute("headingColumns")||0,s=new qD(o);for(const e of s){const o=e.rowNB(e,t.mapper)));for(const e of o)t.reconvertItem(e)}}(t,e.editing)}))}registerAdditionalSlot(e){this._additionalSlots.push(e)}}function jB(e){return t=>{const o=parseInt(t.getAttribute(e));return Number.isNaN(o)||o<=0?null:o}}var qB=i(8603),$B={attributes:{"data-cke":!0}};$B.setAttributes=Xr(),$B.insert=Yr().bind(null,"head"),$B.domAPI=Zr(),$B.insertStyleElement=ts();Gr()(qB.A,$B);qB.A&&qB.A.locals&&qB.A.locals;class UB extends zp{constructor(e){super(e);const t=this.bindTemplate;this.items=this._createGridCollection(),this.keystrokes=new ar,this.focusTracker=new nr,this.set("rows",0),this.set("columns",0),this.bind("label").to(this,"columns",this,"rows",((e,t)=>`${t} × ${e}`)),this.setTemplate({tag:"div",attributes:{class:["ck"]},children:[{tag:"div",attributes:{class:["ck-insert-table-dropdown__grid"]},on:{"mouseover@.ck-insert-table-dropdown-grid-box":t.to("boxover")},children:this.items},{tag:"div",attributes:{class:["ck","ck-insert-table-dropdown__label"],"aria-hidden":!0},children:[{text:t.to("label")}]}],on:{mousedown:t.to((e=>{e.preventDefault()})),click:t.to((()=>{this.fire("execute")}))}}),this.on("boxover",((e,t)=>{const{row:o,column:n}=t.target.dataset;this.items.get(10*(parseInt(o,10)-1)+(parseInt(n,10)-1)).focus()})),this.focusTracker.on("change:focusedElement",((e,t,o)=>{if(!o)return;const{row:n,column:i}=o.dataset;this.set({rows:parseInt(n),columns:parseInt(i)})})),this.on("change:columns",(()=>this._highlightGridBoxes())),this.on("change:rows",(()=>this._highlightGridBoxes()))}render(){super.render(),Lp({keystrokeHandler:this.keystrokes,focusTracker:this.focusTracker,gridItems:this.items,numberOfColumns:10,uiLanguageDirection:this.locale&&this.locale.uiLanguageDirection});for(const e of this.items)this.focusTracker.add(e.element);this.keystrokes.listenTo(this.element)}reset(){this.set({rows:1,columns:1})}focus(){this.items.get(0).focus()}focusLast(){this.items.get(0).focus()}_highlightGridBoxes(){const e=this.rows,t=this.columns;this.items.map(((o,n)=>{const i=Math.floor(n/10){const n=e.commands.get("insertTable"),i=kf(o);let r;return i.bind("isEnabled").to(n),i.buttonView.set({icon:up.table,label:t("Insert table"),tooltip:!0}),i.on("change:isOpen",(()=>{r||(r=new UB(o),i.panelView.children.add(r),r.delegate("execute").to(i),i.on("execute",(()=>{e.execute("insertTable",{rows:r.rows,columns:r.columns}),e.editing.view.focus()})))})),i})),e.ui.componentFactory.add("menuBar:insertTable",(o=>{const n=e.commands.get("insertTable"),i=new Qk(o),r=new UB(o);return r.delegate("execute").to(i),i.on("change:isOpen",((e,t,o)=>{o||r.reset()})),r.on("execute",(()=>{e.execute("insertTable",{rows:r.rows,columns:r.columns}),e.editing.view.focus()})),i.buttonView.set({label:t("Table"),icon:up.table}),i.panelView.children.add(r),i.bind("isEnabled").to(n),i})),e.ui.componentFactory.add("tableColumn",(e=>{const n=[{type:"switchbutton",model:{commandName:"setTableColumnHeader",label:t("Header column"),bindIsOn:!0}},{type:"separator"},{type:"button",model:{commandName:o?"insertTableColumnLeft":"insertTableColumnRight",label:t("Insert column left")}},{type:"button",model:{commandName:o?"insertTableColumnRight":"insertTableColumnLeft",label:t("Insert column right")}},{type:"button",model:{commandName:"removeTableColumn",label:t("Delete column")}},{type:"button",model:{commandName:"selectTableColumn",label:t("Select column")}}];return this._prepareDropdown(t("Column"),'',n,e)})),e.ui.componentFactory.add("tableRow",(e=>{const o=[{type:"switchbutton",model:{commandName:"setTableRowHeader",label:t("Header row"),bindIsOn:!0}},{type:"separator"},{type:"button",model:{commandName:"insertTableRowAbove",label:t("Insert row above")}},{type:"button",model:{commandName:"insertTableRowBelow",label:t("Insert row below")}},{type:"button",model:{commandName:"removeTableRow",label:t("Delete row")}},{type:"button",model:{commandName:"selectTableRow",label:t("Select row")}}];return this._prepareDropdown(t("Row"),'',o,e)})),e.ui.componentFactory.add("mergeTableCells",(e=>{const n=[{type:"button",model:{commandName:"mergeTableCellUp",label:t("Merge cell up")}},{type:"button",model:{commandName:o?"mergeTableCellRight":"mergeTableCellLeft",label:t("Merge cell right")}},{type:"button",model:{commandName:"mergeTableCellDown",label:t("Merge cell down")}},{type:"button",model:{commandName:o?"mergeTableCellLeft":"mergeTableCellRight",label:t("Merge cell left")}},{type:"separator"},{type:"button",model:{commandName:"splitTableCellVertically",label:t("Split cell vertically")}},{type:"button",model:{commandName:"splitTableCellHorizontally",label:t("Split cell horizontally")}}];return this._prepareMergeSplitButtonDropdown(t("Merge cells"),'',n,e)}))}_prepareDropdown(e,t,o,n){const i=this.editor,r=kf(n),s=this._fillDropdownWithListOptions(r,o);return r.buttonView.set({label:e,icon:t,tooltip:!0}),r.bind("isEnabled").toMany(s,"isEnabled",((...e)=>e.some((e=>e)))),this.listenTo(r,"execute",(e=>{i.execute(e.source.commandName),e.source instanceof Vm||i.editing.view.focus()})),r}_prepareMergeSplitButtonDropdown(e,t,o,n){const i=this.editor,r=kf(n,pf),s="mergeTableCells",a=i.commands.get(s),l=this._fillDropdownWithListOptions(r,o);return r.buttonView.set({label:e,icon:t,tooltip:!0,isEnabled:!0}),r.bind("isEnabled").toMany([a,...l],"isEnabled",((...e)=>e.some((e=>e)))),this.listenTo(r.buttonView,"execute",(()=>{i.execute(s),i.editing.view.focus()})),this.listenTo(r,"execute",(e=>{i.execute(e.source.commandName),i.editing.view.focus()})),r}_fillDropdownWithListOptions(e,t){const o=this.editor,n=[],i=new tr;for(const e of t)GB(e,o,n,i);return yf(e,i),n}}function GB(e,t,o,n){if("button"===e.type||"switchbutton"===e.type){const n=e.model=new hk(e.model),{commandName:i,bindIsOn:r}=e.model,s=t.commands.get(i);o.push(s),n.set({commandName:i}),n.bind("isEnabled").to(s),r&&n.bind("isOn").to(s,"value"),n.set({withText:!0})}n.add(e)}var KB=i(2850),ZB={attributes:{"data-cke":!0}};ZB.setAttributes=Xr(),ZB.insert=Yr().bind(null,"head"),ZB.domAPI=Zr(),ZB.insertStyleElement=ts();Gr()(KB.A,ZB);KB.A&&KB.A.locals&&KB.A.locals;class JB extends br{static get pluginName(){return"TableSelection"}static get isOfficialPlugin(){return!0}static get requires(){return[kB,kB]}init(){const e=this.editor,t=e.model,o=e.editing.view;this.listenTo(t,"deleteContent",((e,t)=>this._handleDeleteContent(e,t)),{priority:"high"}),this.listenTo(o.document,"insertText",((e,t)=>this._handleInsertTextEvent(e,t)),{priority:"high"}),this._defineSelectionConverter(),this._enablePluginDisabling()}getSelectedTableCells(){const e=this.editor.plugins.get(kB),t=this.editor.model.document.selection,o=e.getSelectedTableCells(t);return 0==o.length?null:o}getSelectionAsFragment(){const e=this.editor.plugins.get(kB),t=this.getSelectedTableCells();return t?this.editor.model.change((o=>{const n=o.createDocumentFragment(),{first:i,last:r}=e.getColumnIndexes(t),{first:s,last:a}=e.getRowIndexes(t),l=t[0].findAncestor("table");let c=a,d=r;if(e.isSelectionRectangular(t)){const e={firstColumn:i,lastColumn:r,firstRow:s,lastRow:a};c=lB(l,e),d=cB(l,e)}const u=XD(l,{startRow:s,startColumn:i,endRow:c,endColumn:d},o);return o.insert(u,n,0),n})):null}setCellSelection(e,t){const o=this._getCellsToSelect(e,t);this.editor.model.change((e=>{e.setSelection(o.cells.map((t=>e.createRangeOn(t))),{backward:o.backward})}))}getFocusCell(){const e=[...this.editor.model.document.selection.getRanges()].pop().getContainedElement();return e&&e.is("element","tableCell")?e:null}getAnchorCell(){const e=or(this.editor.model.document.selection.getRanges()).getContainedElement();return e&&e.is("element","tableCell")?e:null}_defineSelectionConverter(){const e=this.editor,t=new Set;e.conversion.for("editingDowncast").add((e=>e.on("selection",((e,o,n)=>{const i=n.writer;!function(e){for(const o of t)e.removeClass("ck-editor__editable_selected",o);t.clear()}(i);const r=this.getSelectedTableCells();if(!r)return;for(const e of r){const o=n.mapper.toViewElement(e);i.addClass("ck-editor__editable_selected",o),t.add(o)}const s=n.mapper.toViewElement(r[r.length-1]);i.setSelection(s,0)}),{priority:"lowest"})))}_enablePluginDisabling(){const e=this.editor;this.on("change:isEnabled",(()=>{if(!this.isEnabled){const t=this.getSelectedTableCells();if(!t)return;e.model.change((o=>{const n=o.createPositionAt(t[0],0),i=e.model.schema.getNearestSelectionRange(n);o.setSelection(i)}))}}))}_handleDeleteContent(e,t){const o=this.editor.plugins.get(kB),n=t[0],i=t[1],r=this.editor.model,s=!i||"backward"==i.direction,a=o.getSelectedTableCells(n);a.length&&(e.stop(),r.change((e=>{const t=a[s?a.length-1:0];r.change((e=>{for(const t of a)r.deleteContent(e.createSelection(t,"in"))}));const o=r.schema.getNearestSelectionRange(e.createPositionAt(t,0));n.is("documentSelection")?e.setSelection(o):n.setTo(o)})))}_handleInsertTextEvent(e,t){const o=this.editor,n=this.getSelectedTableCells();if(!n)return;const i=o.editing.view,r=o.editing.mapper,s=n.map((e=>i.createRangeOn(r.toViewElement(e))));t.selection=i.createSelection(s)}_getCellsToSelect(e,t){const o=this.editor.plugins.get("TableUtils"),n=o.getCellLocation(e),i=o.getCellLocation(t),r=Math.min(n.row,i.row),s=Math.max(n.row,i.row),a=Math.min(n.column,i.column),l=Math.max(n.column,i.column),c=new Array(s-r+1).fill(null).map((()=>[])),d={startRow:r,endRow:s,startColumn:a,endColumn:l};for(const{row:t,cell:o}of new qD(e.findAncestor("table"),d))c[t-r].push(o);const u=i.rowe.reverse())),{cells:c.flat(),backward:u||h}}}class YB extends br{static get pluginName(){return"TableClipboard"}static get isOfficialPlugin(){return!0}static get requires(){return[Dy,By,JB,kB]}init(){const e=this.editor,t=e.editing.view.document;this.listenTo(t,"copy",((e,t)=>this._onCopyCut(e,t))),this.listenTo(t,"cut",((e,t)=>this._onCopyCut(e,t))),this.listenTo(e.model,"insertContent",((e,[t,o])=>this._onInsertContent(e,t,o)),{priority:"high"}),this.decorate("_replaceTableSlotCell")}_onCopyCut(e,t){const o=this.editor.editing.view,n=this.editor.plugins.get(JB),i=this.editor.plugins.get(Dy);n.getSelectedTableCells()&&("cut"!=e.name||this.editor.model.canEditAt(this.editor.model.document.selection))&&(t.preventDefault(),e.stop(),this.editor.model.enqueueChange({isUndoable:"cut"===e.name},(()=>{const r=i._copySelectedFragmentWithMarkers(e.name,this.editor.model.document.selection,(()=>n.getSelectionAsFragment()));o.document.fire("clipboardOutput",{dataTransfer:t.dataTransfer,content:this.editor.data.toView(r),method:e.name})})))}_onInsertContent(e,t,o){if(o&&!o.is("documentSelection"))return;const n=this.editor.model,i=this.editor.plugins.get(kB),r=this.editor.plugins.get(Dy),s=this.getTableIfOnlyTableInContent(t,n);if(!s)return;const a=i.getSelectionAffectedTableCells(n.document.selection);a.length?(e.stop(),t.is("documentFragment")?r._pasteMarkersIntoTransformedElement(t.markers,(e=>this._replaceSelectedCells(s,a,e))):this.editor.model.change((e=>{this._replaceSelectedCells(s,a,e)}))):aB(s,i)}_replaceSelectedCells(e,t,o){const n=this.editor.plugins.get(kB),i={width:n.getColumns(e),height:n.getRows(e)},r=function(e,t,o,n){const i=e[0].findAncestor("table"),r=n.getColumnIndexes(e),s=n.getRowIndexes(e),a={firstColumn:r.first,lastColumn:r.last,firstRow:s.first,lastRow:s.last},l=1===e.length;l&&(a.lastRow+=t.height-1,a.lastColumn+=t.width-1,function(e,t,o,n){const i=n.getColumns(e),r=n.getRows(e);o>i&&n.insertColumns(e,{at:i,columns:o-i});t>r&&n.insertRows(e,{at:r,rows:t-r})}(i,a.lastRow+1,a.lastColumn+1,n));l||!n.isSelectionRectangular(e)?function(e,t,o){const{firstRow:n,lastRow:i,firstColumn:r,lastColumn:s}=t,a={first:n,last:i},l={first:r,last:s};XB(e,r,a,o),XB(e,s+1,a,o),QB(e,n,l,o),QB(e,i+1,l,o,n)}(i,a,o):(a.lastRow=lB(i,a),a.lastColumn=cB(i,a));return a}(t,i,o,n),s=r.lastRow-r.firstRow+1,a=r.lastColumn-r.firstColumn+1;e=XD(e,{startRow:0,startColumn:0,endRow:Math.min(s,i.height)-1,endColumn:Math.min(a,i.width)-1},o);const l=t[0].findAncestor("table"),c=this._replaceSelectedCellsWithPasted(e,i,l,r,o);if(this.editor.plugins.get("TableSelection").isEnabled){const e=n.sortRanges(c.map((e=>o.createRangeOn(e))));o.setSelection(e)}else o.setSelection(c[0],0);return l}_replaceSelectedCellsWithPasted(e,t,o,n,i){const{width:r,height:s}=t,a=function(e,t,o){const n=new Array(o).fill(null).map((()=>new Array(t).fill(null)));for(const{column:t,row:o,cell:i}of new qD(e))n[o][t]=i;return n}(e,r,s),l=[...new qD(o,{startRow:n.firstRow,endRow:n.lastRow,startColumn:n.firstColumn,endColumn:n.lastColumn,includeAllSlots:!0})],c=[];let d;for(const e of l){const{row:t,column:o}=e;o===n.firstColumn&&(d=e.getPositionBefore());const l=t-n.firstRow,u=o-n.firstColumn,h=a[l%s][u%r],p=h?i.cloneElement(h):null,m=this._replaceTableSlotCell(e,p,d,i);m&&(iB(m,t,o,n.lastRow,n.lastColumn,i),c.push(m),d=i.createPositionAfter(m))}const u=parseInt(o.getAttribute("headingRows")||"0"),h=parseInt(o.getAttribute("headingColumns")||"0"),p=n.firstRoweS(e,t,o))).map((({cell:e})=>tB(e,t,n)))}function XB(e,t,o,n){if(t<1)return;return oB(e,t).filter((({row:e,cellHeight:t})=>eS(e,t,o))).map((({cell:e,column:o})=>nB(e,o,t,n)))}function eS(e,t,o){const n=e+t-1,{first:i,last:r}=o;return e>=i&&e<=r||e=i}class tS extends br{static get pluginName(){return"TableKeyboard"}static get isOfficialPlugin(){return!0}static get requires(){return[JB,kB]}init(){const e=this.editor,t=e.editing.view.document,o=e.t;this.listenTo(t,"arrowKey",((...e)=>this._onArrowKey(...e)),{context:"table"}),this.listenTo(t,"tab",((...e)=>this._handleTabOnSelectedTable(...e)),{context:"figure"}),this.listenTo(t,"tab",((...e)=>this._handleTab(...e)),{context:["th","td"]}),e.accessibility.addKeystrokeInfoGroup({id:"table",label:o("Keystrokes that can be used in a table cell"),keystrokes:[{label:o("Move the selection to the next cell"),keystroke:"Tab"},{label:o("Move the selection to the previous cell"),keystroke:"Shift+Tab"},{label:o("Insert a new table row (when in the last cell of a table)"),keystroke:"Tab"},{label:o("Navigate through the table"),keystroke:[["arrowup"],["arrowright"],["arrowdown"],["arrowleft"]]}]})}_handleTabOnSelectedTable(e,t){const o=this.editor,n=o.model.document.selection.getSelectedElement();n&&n.is("element","table")&&(t.preventDefault(),t.stopPropagation(),e.stop(),o.model.change((e=>{e.setSelection(e.createRangeIn(n.getChild(0).getChild(0)))})))}_handleTab(e,t){const o=this.editor,n=this.editor.plugins.get(kB),i=this.editor.plugins.get("TableSelection"),r=o.model.document.selection,s=!t.shiftKey;let a=n.getTableCellsContainingSelection(r)[0];if(a||(a=i.getFocusCell()),!a)return;t.preventDefault(),t.stopPropagation(),e.stop();const l=a.parent,c=l.parent,d=c.getChildIndex(l),u=l.getChildIndex(a),h=0===u;if(!s&&h&&0===d)return void o.model.change((e=>{e.setSelection(e.createRangeOn(c))}));const p=u===l.childCount-1,m=d===n.getRows(c)-1;if(s&&m&&p&&(o.execute("insertTableRowBelow"),d===n.getRows(c)-1))return void o.model.change((e=>{e.setSelection(e.createRangeOn(c))}));let g;if(s&&p){const e=c.getChild(d+1);g=e.getChild(0)}else if(!s&&h){const e=c.getChild(d-1);g=e.getChild(e.childCount-1)}else g=l.getChild(u+(s?1:-1));o.model.change((e=>{e.setSelection(e.createRangeIn(g))}))}_onArrowKey(e,t){const o=this.editor,n=Di(t.keyCode,o.locale.contentLanguageDirection);this._handleArrowKeys(n,t.shiftKey)&&(t.preventDefault(),t.stopPropagation(),e.stop())}_handleArrowKeys(e,t){const o=this.editor.plugins.get(kB),n=this.editor.plugins.get("TableSelection"),i=this.editor.model,r=i.document.selection,s=["right","down"].includes(e),a=o.getSelectedTableCells(r);if(a.length){let o;return o=t?n.getFocusCell():s?a[a.length-1]:a[0],this._navigateFromCellInDirection(o,e,t),!0}const l=r.focus.findAncestor("tableCell");if(!l)return!1;if(!r.isCollapsed)if(t){if(r.isBackward==s&&!r.containsEntireContent(l))return!1}else{const e=r.getSelectedElement();if(!e||!i.schema.isObject(e))return!1}return!!this._isSelectionAtCellEdge(r,l,s)&&(this._navigateFromCellInDirection(l,e,t),!0)}_isSelectionAtCellEdge(e,t,o){const n=this.editor.model,i=this.editor.model.schema,r=o?e.getLastPosition():e.getFirstPosition();if(!i.getLimitElement(r).is("element","tableCell")){return n.createPositionAt(t,o?"end":0).isTouching(r)}const s=n.createSelection(r);return n.modifySelection(s,{direction:o?"forward":"backward"}),r.isEqual(s.focus)}_navigateFromCellInDirection(e,t,o=!1){const n=this.editor.model,i=e.findAncestor("table"),r=[...new qD(i,{includeAllSlots:!0})],{row:s,column:a}=r[r.length-1],l=r.find((({cell:t})=>t==e));let{row:c,column:d}=l;switch(t){case"left":d--;break;case"up":c--;break;case"right":d+=l.cellWidth;break;case"down":c+=l.cellHeight}if(c<0||c>s||d<0&&c<=0||d>a&&c>=s)return void n.change((e=>{e.setSelection(e.createRangeOn(i))}));d<0?(d=o?0:a,c--):d>a&&(d=o?a:0,c++);const u=r.find((e=>e.row==c&&e.column==d)).cell,h=["right","down"].includes(t),p=this.editor.plugins.get("TableSelection");if(o&&p.isEnabled){const t=p.getAnchorCell()||e;p.setCellSelection(t,u)}else{const e=n.createPositionAt(u,h?0:"end");n.change((t=>{t.setSelection(e)}))}}}class oS extends nl{constructor(){super(...arguments),this.domEventType=["mousemove","mouseleave"]}onDomEvent(e){this.fire(e.type,e)}}class nS extends br{static get pluginName(){return"TableMouse"}static get isOfficialPlugin(){return!0}static get requires(){return[JB,kB]}init(){this.editor.editing.view.addObserver(oS),this._enableShiftClickSelection(),this._enableMouseDragSelection()}_enableShiftClickSelection(){const e=this.editor,t=e.plugins.get(kB);let o=!1;const n=e.plugins.get(JB);this.listenTo(e.editing.view.document,"mousedown",((i,r)=>{const s=e.model.document.selection;if(!this.isEnabled||!n.isEnabled)return;if(!r.domEvent.shiftKey)return;const a=n.getAnchorCell()||t.getTableCellsContainingSelection(s)[0];if(!a)return;const l=this._getModelTableCellFromDomEvent(r);l&&iS(a,l)&&(o=!0,n.setCellSelection(a,l),r.preventDefault())})),this.listenTo(e.editing.view.document,"mouseup",(()=>{o=!1})),this.listenTo(e.editing.view.document,"selectionChange",(e=>{o&&e.stop()}),{priority:"highest"})}_enableMouseDragSelection(){const e=this.editor;let t,o,n=!1,i=!1;const r=e.plugins.get(JB);this.listenTo(e.editing.view.document,"mousedown",((e,o)=>{this.isEnabled&&r.isEnabled&&(o.domEvent.shiftKey||o.domEvent.ctrlKey||o.domEvent.altKey||(t=this._getModelTableCellFromDomEvent(o)))})),this.listenTo(e.editing.view.document,"mousemove",((e,s)=>{if(!s.domEvent.buttons)return;if(!t)return;const a=this._getModelTableCellFromDomEvent(s);a&&iS(t,a)&&(o=a,n||o==t||(n=!0)),n&&(i=!0,r.setCellSelection(t,o),s.preventDefault())})),this.listenTo(e.editing.view.document,"mouseup",(()=>{n=!1,i=!1,t=null,o=null})),this.listenTo(e.editing.view.document,"selectionChange",(e=>{i&&e.stop()}),{priority:"highest"})}_getModelTableCellFromDomEvent(e){const t=e.target,o=this.editor.editing.view.createPositionAt(t,0);return this.editor.editing.mapper.toModelPosition(o).parent.findAncestor("tableCell",{includeSelf:!0})}}function iS(e,t){return e.parent.parent==t.parent.parent}var rS=i(9969),sS={attributes:{"data-cke":!0}};sS.setAttributes=Xr(),sS.insert=Yr().bind(null,"head"),sS.domAPI=Zr(),sS.insertStyleElement=ts();Gr()(rS.A,sS);rS.A&&rS.A.locals&&rS.A.locals;function aS(e){const t=lS(e);return t||cS(e)}function lS(e){const t=e.getSelectedElement();return t&&dS(t)?t:null}function cS(e){const t=e.getFirstPosition();if(!t)return null;let o=t.parent;for(;o;){if(o.is("element")&&dS(o))return o;o=o.parent}return null}function dS(e){return!!e.getCustomProperty("table")&&ww(e)}var uS=i(4307),hS={attributes:{"data-cke":!0}};hS.setAttributes=Xr(),hS.insert=Yr().bind(null,"head"),hS.domAPI=Zr(),hS.insertStyleElement=ts();Gr()(uS.A,hS);uS.A&&uS.A.locals&&uS.A.locals;class pS extends zp{constructor(e,t){super(e),this.set("value",""),this.set("isReadOnly",!1),this.set("isFocused",!1),this.set("isEmpty",!0),this.options=t,this.focusTracker=new nr,this._focusables=new hp,this.dropdownView=this._createDropdownView(),this.inputView=this._createInputTextView(),this.keystrokes=new ar,this._stillTyping=!1,this.focusCycler=new Xp({focusables:this._focusables,focusTracker:this.focusTracker,keystrokeHandler:this.keystrokes,actions:{focusPrevious:"shift + tab",focusNext:"tab"}}),this.setTemplate({tag:"div",attributes:{class:["ck","ck-input-color"]},children:[this.dropdownView,this.inputView]}),this.on("change:value",((e,t,o)=>this._setInputValue(o)))}render(){super.render(),[this.inputView,this.dropdownView.buttonView].forEach((e=>{this.focusTracker.add(e.element),this._focusables.add(e)})),this.keystrokes.listenTo(this.element)}focus(e){-1===e?this.focusCycler.focusLast():this.focusCycler.focusFirst()}destroy(){super.destroy(),this.focusTracker.destroy(),this.keystrokes.destroy()}_createDropdownView(){const e=this.locale,t=e.t,o=this.bindTemplate,n=this._createColorSelector(e),i=kf(e),r=new zp;return r.setTemplate({tag:"span",attributes:{class:["ck","ck-input-color__button__preview"],style:{backgroundColor:o.to("value")}},children:[{tag:"span",attributes:{class:["ck","ck-input-color__button__preview__no-color-indicator",o.if("value","ck-hidden",(e=>""!=e))]}}]}),i.buttonView.extendTemplate({attributes:{class:"ck-input-color__button"}}),i.buttonView.children.add(r),i.buttonView.label=t("Color picker"),i.buttonView.tooltip=!0,i.panelPosition="rtl"===e.uiLanguageDirection?"se":"sw",i.panelView.children.add(n),i.bind("isEnabled").to(this,"isReadOnly",(e=>!e)),i.on("change:isOpen",((e,t,o)=>{o&&(n.updateSelectedColors(),n.showColorGridsFragment())})),i}_createInputTextView(){const e=this.locale,t=new gg(e);return t.extendTemplate({on:{blur:t.bindTemplate.to("blur")}}),t.value=this.value,t.bind("isReadOnly","hasError").to(this),this.bind("isFocused","isEmpty").to(t),t.on("input",(()=>{const e=t.element.value,o=this.options.colorDefinitions.find((t=>e===t.label));this._stillTyping=!0,this.value=o&&o.color||e})),t.on("blur",(()=>{this._stillTyping=!1,this._setInputValue(t.element.value)})),t.delegate("input").to(this),t}_createColorSelector(e){const t=e.t,o=this.options.defaultColorValue||"",n=t(o?"Restore default":"Remove color"),i=new bb(e,{colors:this.options.colorDefinitions,columns:this.options.columns,removeButtonLabel:n,colorPickerLabel:t("Color picker"),colorPickerViewConfig:!1!==this.options.colorPickerConfig&&{...this.options.colorPickerConfig,hideInput:!0}});i.appendUI(),i.on("execute",((e,t)=>{"colorPickerSaveButton"!==t.source?(this.value=t.value||o,this.fire("input"),"colorPicker"!==t.source&&(this.dropdownView.isOpen=!1)):this.dropdownView.isOpen=!1}));let r=this.value;return i.on("colorPicker:cancel",(()=>{this.value=r,this.fire("input"),this.dropdownView.isOpen=!1})),i.colorGridsFragmentView.colorPickerButtonView.on("execute",(()=>{r=this.value})),i.bind("selectedColor").to(this,"value"),i}_setInputValue(e){if(!this._stillTyping){const t=mS(e),o=this.options.colorDefinitions.find((e=>t===mS(e.color)));this.inputView.value=o?o.label:e||""}}}function mS(e){return e.replace(/([(,])\s+/g,"$1").replace(/^\s+|\s+(?=[),\s]|$)/g,"").replace(/,|\s/g," ")}const gS=e=>""===e;function fS(e){return{none:e("None"),solid:e("Solid"),dotted:e("Dotted"),dashed:e("Dashed"),double:e("Double"),groove:e("Groove"),ridge:e("Ridge"),inset:e("Inset"),outset:e("Outset")}}function bS(e){return e('The color is invalid. Try "#FF0000" or "rgb(255,0,0)" or "red".')}function kS(e){return e('The value is invalid. Try "10px" or "2em" or simply "2".')}function wS(e){return e=e.trim().toLowerCase(),gS(e)||dh(e)}function _S(e){return e=e.trim(),gS(e)||ES(e)||mh(e)||(t=e,gh.test(t));var t}function yS(e){return e=e.trim(),gS(e)||ES(e)||mh(e)}function AS(e,t){const o=new tr,n=fS(e.t);for(const i in n){const r={type:"button",model:new hk({_borderStyleValue:i,label:n[i],role:"menuitemradio",withText:!0})};"none"===i?r.model.bind("isOn").to(e,"borderStyle",(e=>"none"===t?!e:e===i)):r.model.bind("isOn").to(e,"borderStyle",(e=>e===i)),o.add(r)}return o}function CS(e){const{view:t,icons:o,toolbar:n,labels:i,propertyName:r,nameToValue:s,defaultValue:a}=e;for(const e in i){const l=new Kp(t.locale);l.set({role:"radio",isToggleable:!0,label:i[e],icon:o[e],tooltip:i[e]});const c=s?s(e):e;l.bind("isOn").to(t,r,(e=>{let t=e;return""===e&&a&&(t=a),c===t})),l.on("execute",(()=>{t[r]=c})),n.items.add(l)}}const vS=[{color:"hsl(0, 0%, 0%)",label:"Black"},{color:"hsl(0, 0%, 30%)",label:"Dim grey"},{color:"hsl(0, 0%, 60%)",label:"Grey"},{color:"hsl(0, 0%, 90%)",label:"Light grey"},{color:"hsl(0, 0%, 100%)",label:"White",hasBorder:!0},{color:"hsl(0, 75%, 60%)",label:"Red"},{color:"hsl(30, 75%, 60%)",label:"Orange"},{color:"hsl(60, 75%, 60%)",label:"Yellow"},{color:"hsl(90, 75%, 60%)",label:"Light green"},{color:"hsl(120, 75%, 60%)",label:"Green"},{color:"hsl(150, 75%, 60%)",label:"Aquamarine"},{color:"hsl(180, 75%, 60%)",label:"Turquoise"},{color:"hsl(210, 75%, 60%)",label:"Light blue"},{color:"hsl(240, 75%, 60%)",label:"Blue"},{color:"hsl(270, 75%, 60%)",label:"Purple"}];function xS(e){return(t,o,n)=>{const i=new pS(t.locale,{colorDefinitions:(r=e.colorConfig,r.map((e=>({color:e.model,label:e.label,options:{hasBorder:e.hasBorder}})))),columns:e.columns,defaultColorValue:e.defaultColorValue,colorPickerConfig:e.colorPickerConfig});var r;return i.inputView.set({id:o,ariaDescribedById:n}),i.bind("isReadOnly").to(t,"isEnabled",(e=>!e)),i.bind("hasError").to(t,"errorText",(e=>!!e)),i.on("input",(()=>{t.errorText=null})),t.bind("isEmpty","isFocused").to(i),i}}function ES(e){const t=parseFloat(e);return!Number.isNaN(t)&&e===String(t)}var DS=i(6016),BS={attributes:{"data-cke":!0}};BS.setAttributes=Xr(),BS.insert=Yr().bind(null,"head"),BS.domAPI=Zr(),BS.insertStyleElement=ts();Gr()(DS.A,BS);DS.A&&DS.A.locals&&DS.A.locals;class SS extends zp{constructor(e,t={}){super(e);const o=this.bindTemplate;this.set("class",t.class||null),this.children=this.createCollection(),t.children&&t.children.forEach((e=>this.children.add(e))),this.set("_role",null),this.set("_ariaLabelledBy",null),t.labelView&&this.set({_role:"group",_ariaLabelledBy:t.labelView.id}),this.setTemplate({tag:"div",attributes:{class:["ck","ck-form__row",o.to("class")],role:o.to("_role"),"aria-labelledby":o.to("_ariaLabelledBy")},children:this.children})}}var TS=i(1806),IS={attributes:{"data-cke":!0}};IS.setAttributes=Xr(),IS.insert=Yr().bind(null,"head"),IS.domAPI=Zr(),IS.insertStyleElement=ts();Gr()(TS.A,IS);TS.A&&TS.A.locals&&TS.A.locals;var PS=i(5704),FS={attributes:{"data-cke":!0}};FS.setAttributes=Xr(),FS.insert=Yr().bind(null,"head"),FS.domAPI=Zr(),FS.insertStyleElement=ts();Gr()(PS.A,FS);PS.A&&PS.A.locals&&PS.A.locals;var RS=i(6701),MS={attributes:{"data-cke":!0}};MS.setAttributes=Xr(),MS.insert=Yr().bind(null,"head"),MS.domAPI=Zr(),MS.insertStyleElement=ts();Gr()(RS.A,MS);RS.A&&RS.A.locals&&RS.A.locals;class zS extends zp{constructor(e,t){super(e),this.set({borderStyle:"",borderWidth:"",borderColor:"",padding:"",backgroundColor:"",width:"",height:"",horizontalAlignment:"",verticalAlignment:""}),this.options=t;const{borderStyleDropdown:o,borderWidthInput:n,borderColorInput:i,borderRowLabel:r}=this._createBorderFields(),{backgroundRowLabel:s,backgroundInput:a}=this._createBackgroundFields(),{widthInput:l,operatorLabel:c,heightInput:d,dimensionsLabel:u}=this._createDimensionFields(),{horizontalAlignmentToolbar:h,verticalAlignmentToolbar:p,alignmentLabel:m}=this._createAlignmentFields();this.focusTracker=new nr,this.keystrokes=new ar,this.children=this.createCollection(),this.borderStyleDropdown=o,this.borderWidthInput=n,this.borderColorInput=i,this.backgroundInput=a,this.paddingInput=this._createPaddingField(),this.widthInput=l,this.heightInput=d,this.horizontalAlignmentToolbar=h,this.verticalAlignmentToolbar=p;const{saveButtonView:g,cancelButtonView:f}=this._createActionButtons();this.saveButtonView=g,this.cancelButtonView=f,this._focusables=new hp,this._focusCycler=new Xp({focusables:this._focusables,focusTracker:this.focusTracker,keystrokeHandler:this.keystrokes,actions:{focusPrevious:"shift + tab",focusNext:"tab"}}),this.children.add(new Qp(e,{label:this.t("Cell properties")})),this.children.add(new SS(e,{labelView:r,children:[r,o,i,n],class:"ck-table-form__border-row"})),this.children.add(new SS(e,{labelView:s,children:[s,a],class:"ck-table-form__background-row"})),this.children.add(new SS(e,{children:[new SS(e,{labelView:u,children:[u,l,c,d],class:"ck-table-form__dimensions-row"}),new SS(e,{children:[this.paddingInput],class:"ck-table-cell-properties-form__padding-row"})]})),this.children.add(new SS(e,{labelView:m,children:[m,h,p],class:"ck-table-cell-properties-form__alignment-row"})),this.children.add(new SS(e,{children:[this.saveButtonView,this.cancelButtonView],class:"ck-table-form__action-row"})),this.setTemplate({tag:"form",attributes:{class:["ck","ck-form","ck-table-form","ck-table-cell-properties-form"],tabindex:"-1"},children:this.children})}render(){super.render(),Vp({view:this}),[this.borderColorInput,this.backgroundInput].forEach((e=>{this._focusCycler.chain(e.fieldView.focusCycler)})),[this.borderStyleDropdown,this.borderColorInput,this.borderWidthInput,this.backgroundInput,this.widthInput,this.heightInput,this.paddingInput,this.horizontalAlignmentToolbar,this.verticalAlignmentToolbar,this.saveButtonView,this.cancelButtonView].forEach((e=>{this._focusables.add(e),this.focusTracker.add(e.element)})),this.keystrokes.listenTo(this.element)}destroy(){super.destroy(),this.focusTracker.destroy(),this.keystrokes.destroy()}focus(){this._focusCycler.focusFirst()}_createBorderFields(){const e=this.options.defaultTableCellProperties,t={style:e.borderStyle,width:e.borderWidth,color:e.borderColor},o=xS({colorConfig:this.options.borderColors,columns:5,defaultColorValue:t.color,colorPickerConfig:this.options.colorPickerConfig}),n=this.locale,i=this.t,r=i("Style"),s=new Sm(n);s.text=i("Border");const a=fS(i),l=new dg(n,Bf);l.set({label:r,class:"ck-table-form__border-style"}),l.fieldView.buttonView.set({ariaLabel:r,ariaLabelledBy:void 0,isOn:!1,withText:!0,tooltip:r}),l.fieldView.buttonView.bind("label").to(this,"borderStyle",(e=>a[e||"none"])),l.fieldView.on("execute",(e=>{this.borderStyle=e.source._borderStyleValue})),l.bind("isEmpty").to(this,"borderStyle",(e=>!e)),yf(l.fieldView,AS(this,t.style),{role:"menu",ariaLabel:r});const c=new dg(n,Ef);c.set({label:i("Width"),class:"ck-table-form__border-width"}),c.fieldView.bind("value").to(this,"borderWidth"),c.bind("isEnabled").to(this,"borderStyle",OS),c.fieldView.on("input",(()=>{this.borderWidth=c.fieldView.element.value}));const d=new dg(n,o);return d.set({label:i("Color"),class:"ck-table-form__border-color"}),d.fieldView.bind("value").to(this,"borderColor"),d.bind("isEnabled").to(this,"borderStyle",OS),d.fieldView.on("input",(()=>{this.borderColor=d.fieldView.value})),this.on("change:borderStyle",((e,o,n,i)=>{OS(n)||(this.borderColor="",this.borderWidth=""),OS(i)||(this.borderColor=t.color,this.borderWidth=t.width)})),{borderRowLabel:s,borderStyleDropdown:l,borderColorInput:d,borderWidthInput:c}}_createBackgroundFields(){const e=this.locale,t=this.t,o=new Sm(e);o.text=t("Background");const n=xS({colorConfig:this.options.backgroundColors,columns:5,defaultColorValue:this.options.defaultTableCellProperties.backgroundColor,colorPickerConfig:this.options.colorPickerConfig}),i=new dg(e,n);return i.set({label:t("Color"),class:"ck-table-cell-properties-form__background"}),i.fieldView.bind("value").to(this,"backgroundColor"),i.fieldView.on("input",(()=>{this.backgroundColor=i.fieldView.value})),{backgroundRowLabel:o,backgroundInput:i}}_createDimensionFields(){const e=this.locale,t=this.t,o=new Sm(e);o.text=t("Dimensions");const n=new dg(e,Ef);n.set({label:t("Width"),class:"ck-table-form__dimensions-row__width"}),n.fieldView.bind("value").to(this,"width"),n.fieldView.on("input",(()=>{this.width=n.fieldView.element.value}));const i=new zp(e);i.setTemplate({tag:"span",attributes:{class:["ck-table-form__dimension-operator"]},children:[{text:"×"}]});const r=new dg(e,Ef);return r.set({label:t("Height"),class:"ck-table-form__dimensions-row__height"}),r.fieldView.bind("value").to(this,"height"),r.fieldView.on("input",(()=>{this.height=r.fieldView.element.value})),{dimensionsLabel:o,widthInput:n,operatorLabel:i,heightInput:r}}_createPaddingField(){const e=this.locale,t=this.t,o=new dg(e,Ef);return o.set({label:t("Padding"),class:"ck-table-cell-properties-form__padding"}),o.fieldView.bind("value").to(this,"padding"),o.fieldView.on("input",(()=>{this.padding=o.fieldView.element.value})),o}_createAlignmentFields(){const e=this.locale,t=this.t,o=new Sm(e),n={left:up.alignLeft,center:up.alignCenter,right:up.alignRight,justify:up.alignJustify,top:up.alignTop,middle:up.alignMiddle,bottom:up.alignBottom};o.text=t("Table cell text alignment");const i=new af(e),r="rtl"===e.contentLanguageDirection;i.set({isCompact:!0,role:"radiogroup",ariaLabel:t("Horizontal text alignment toolbar")}),CS({view:this,icons:n,toolbar:i,labels:this._horizontalAlignmentLabels,propertyName:"horizontalAlignment",nameToValue:e=>{if(r){if("left"===e)return"right";if("right"===e)return"left"}return e},defaultValue:this.options.defaultTableCellProperties.horizontalAlignment});const s=new af(e);return s.set({isCompact:!0,role:"radiogroup",ariaLabel:t("Vertical text alignment toolbar")}),CS({view:this,icons:n,toolbar:s,labels:this._verticalAlignmentLabels,propertyName:"verticalAlignment",defaultValue:this.options.defaultTableCellProperties.verticalAlignment}),{horizontalAlignmentToolbar:i,verticalAlignmentToolbar:s,alignmentLabel:o}}_createActionButtons(){const e=this.locale,t=this.t,o=new Kp(e),n=new Kp(e),i=[this.borderWidthInput,this.borderColorInput,this.backgroundInput,this.paddingInput];return o.set({label:t("Save"),icon:up.check,class:"ck-button-save",type:"submit",withText:!0}),o.bind("isEnabled").toMany(i,"errorText",((...e)=>e.every((e=>!e)))),n.set({label:t("Cancel"),icon:up.cancel,class:"ck-button-cancel",withText:!0}),n.delegate("execute").to(this,"cancel"),{saveButtonView:o,cancelButtonView:n}}get _horizontalAlignmentLabels(){const e=this.locale,t=this.t,o=t("Align cell text to the left"),n=t("Align cell text to the center"),i=t("Align cell text to the right"),r=t("Justify cell text");return"rtl"===e.uiLanguageDirection?{right:i,center:n,left:o,justify:r}:{left:o,center:n,right:i,justify:r}}get _verticalAlignmentLabels(){const e=this.t;return{top:e("Align cell text to the top"),middle:e("Align cell text to the middle"),bottom:e("Align cell text to the bottom")}}}function OS(e){return"none"!==e}const NS=(()=>[Wg.defaultPositions.northArrowSouth,Wg.defaultPositions.northArrowSouthWest,Wg.defaultPositions.northArrowSouthEast,Wg.defaultPositions.southArrowNorth,Wg.defaultPositions.southArrowNorthWest,Wg.defaultPositions.southArrowNorthEast,Wg.defaultPositions.viewportStickyNorth])();function VS(e,t){const o=e.plugins.get("ContextualBalloon"),n=e.editing.view.document.selection;let i;"cell"===t?cS(n)&&(i=HS(e)):aS(n)&&(i=LS(e)),i&&o.updatePosition(i)}function LS(e){const t=VD(e.model.document.selection),o=e.editing.mapper.toViewElement(t);return{target:e.editing.view.domConverter.mapViewToDom(o),positions:NS}}function HS(e){const t=e.editing.mapper,o=e.editing.view.domConverter,n=e.model.document.selection;if(n.rangeCount>1)return{target:()=>function(e,t){const o=t.editing.mapper,n=t.editing.view.domConverter,i=Array.from(e).map((e=>{const t=jS(e.start),i=o.toViewElement(t);return new Gn(n.mapViewToDom(i))}));return Gn.getBoundingRect(i)}(n.getRanges(),e),positions:NS};const i=jS(n.getFirstPosition()),r=t.toViewElement(i);return{target:o.mapViewToDom(r),positions:NS}}function jS(e){return e.nodeAfter&&e.nodeAfter.is("element","tableCell")?e.nodeAfter:e.findAncestor("tableCell")}function qS(e){if(!e||!W(e))return e;const{top:t,right:o,bottom:n,left:i}=e;return t==o&&o==n&&n==i?t:void 0}function $S(e,t){const o=parseFloat(e);return Number.isNaN(o)||String(o)!==String(e)?e:`${o}${t}`}function US(e,t={}){const o={borderStyle:"none",borderWidth:"",borderColor:"",backgroundColor:"",width:"",height:"",...e};return t.includeAlignmentProperty&&!o.alignment&&(o.alignment="center"),t.includePaddingProperty&&!o.padding&&(o.padding=""),t.includeVerticalAlignmentProperty&&!o.verticalAlignment&&(o.verticalAlignment="middle"),t.includeHorizontalAlignmentProperty&&!o.horizontalAlignment&&(o.horizontalAlignment=t.isRightToLeftContent?"right":"left"),o}function WS(e,t){return US({borderStyle:"double",borderColor:"hsl(0, 0%, 70%)",borderWidth:"1px",...e},t)}function GS(e,t){return US({borderStyle:"solid",borderColor:"hsl(0, 0%, 75%)",borderWidth:"1px",...e},t)}const KS={borderStyle:"tableCellBorderStyle",borderColor:"tableCellBorderColor",borderWidth:"tableCellBorderWidth",height:"tableCellHeight",width:"tableCellWidth",padding:"tableCellPadding",backgroundColor:"tableCellBackgroundColor",horizontalAlignment:"tableCellHorizontalAlignment",verticalAlignment:"tableCellVerticalAlignment"};class ZS extends br{static get requires(){return[kk]}static get pluginName(){return"TableCellPropertiesUI"}static get isOfficialPlugin(){return!0}constructor(e){super(e),e.config.define("table.tableCellProperties",{borderColors:vS,backgroundColors:vS})}init(){const e=this.editor,t=e.t;this._defaultTableCellProperties=GS(e.config.get("table.tableCellProperties.defaultProperties"),{includeVerticalAlignmentProperty:!0,includeHorizontalAlignmentProperty:!0,includePaddingProperty:!0,isRightToLeftContent:"rtl"===e.locale.contentLanguageDirection}),this._balloon=e.plugins.get(kk),this.view=null,this._isReady=!1,e.ui.componentFactory.add("tableCellProperties",(o=>{const n=new Kp(o);n.set({label:t("Cell properties"),icon:'',tooltip:!0}),this.listenTo(n,"execute",(()=>this._showView()));const i=Object.values(KS).map((t=>e.commands.get(t)));return n.bind("isEnabled").toMany(i,"isEnabled",((...e)=>e.some((e=>e)))),n}))}destroy(){super.destroy(),this.view&&this.view.destroy()}_createPropertiesView(){const e=this.editor,t=e.config.get("table.tableCellProperties"),o=Zm(t.borderColors),n=Km(e.locale,o),i=Zm(t.backgroundColors),r=Km(e.locale,i),s=!1!==t.colorPicker,a=new zS(e.locale,{borderColors:n,backgroundColors:r,defaultTableCellProperties:this._defaultTableCellProperties,colorPickerConfig:!!s&&(t.colorPicker||{})}),l=e.t;a.render(),this.listenTo(a,"submit",(()=>{this._hideView()})),this.listenTo(a,"cancel",(()=>{this._undoStepBatch.operations.length&&e.execute("undo",this._undoStepBatch),this._hideView()})),a.keystrokes.set("Esc",((e,t)=>{this._hideView(),t()})),Op({emitter:a,activator:()=>this._isViewInBalloon,contextElements:[this._balloon.view.element],callback:()=>this._hideView()});const c=bS(l),d=kS(l);return a.on("change:borderStyle",this._getPropertyChangeCallback("tableCellBorderStyle")),a.on("change:borderColor",this._getValidatedPropertyChangeCallback({viewField:a.borderColorInput,commandName:"tableCellBorderColor",errorText:c,validator:wS})),a.on("change:borderWidth",this._getValidatedPropertyChangeCallback({viewField:a.borderWidthInput,commandName:"tableCellBorderWidth",errorText:d,validator:yS})),a.on("change:padding",this._getValidatedPropertyChangeCallback({viewField:a.paddingInput,commandName:"tableCellPadding",errorText:d,validator:_S})),a.on("change:width",this._getValidatedPropertyChangeCallback({viewField:a.widthInput,commandName:"tableCellWidth",errorText:d,validator:_S})),a.on("change:height",this._getValidatedPropertyChangeCallback({viewField:a.heightInput,commandName:"tableCellHeight",errorText:d,validator:_S})),a.on("change:backgroundColor",this._getValidatedPropertyChangeCallback({viewField:a.backgroundInput,commandName:"tableCellBackgroundColor",errorText:c,validator:wS})),a.on("change:horizontalAlignment",this._getPropertyChangeCallback("tableCellHorizontalAlignment")),a.on("change:verticalAlignment",this._getPropertyChangeCallback("tableCellVerticalAlignment")),a}_fillViewFormFromCommandValues(){const e=this.editor.commands,t=e.get("tableCellBorderStyle");Object.entries(KS).map((([t,o])=>{const n=this._defaultTableCellProperties[t]||"";return[t,e.get(o).value||n]})).forEach((([e,o])=>{("borderColor"!==e&&"borderWidth"!==e||"none"!==t.value)&&this.view.set(e,o)})),this._isReady=!0}_showView(){const e=this.editor;this.view||(this.view=this._createPropertiesView()),this.listenTo(e.ui,"update",(()=>{this._updateView()})),this._fillViewFormFromCommandValues(),this._balloon.add({view:this.view,position:HS(e)}),this._undoStepBatch=e.model.createBatch(),this.view.focus()}_hideView(){const e=this.editor;this.stopListening(e.ui,"update"),this._isReady=!1,this.view.saveButtonView.focus(),this._balloon.remove(this.view),this.editor.editing.view.focus()}_updateView(){const e=this.editor;cS(e.editing.view.document.selection)?this._isViewVisible&&VS(e,"cell"):this._hideView()}get _isViewVisible(){return!!this.view&&this._balloon.visibleView===this.view}get _isViewInBalloon(){return!!this.view&&this._balloon.hasView(this.view)}_getPropertyChangeCallback(e){return(t,o,n)=>{this._isReady&&this.editor.execute(e,{value:n,batch:this._undoStepBatch})}}_getValidatedPropertyChangeCallback(e){const{commandName:t,viewField:o,validator:n,errorText:i}=e,r=bl((()=>{o.errorText=i}),500);return(e,i,s)=>{r.cancel(),this._isReady&&(n(s)?(this.editor.execute(t,{value:s,batch:this._undoStepBatch}),o.errorText=null):r())}}}class JS extends wr{constructor(e,t,o){super(e),this.attributeName=t,this._defaultValue=o}refresh(){const e=this.editor,t=this.editor.plugins.get("TableUtils").getSelectionAffectedTableCells(e.model.document.selection);this.isEnabled=!!t.length,this.value=this._getSingleValue(t)}execute(e={}){const{value:t,batch:o}=e,n=this.editor.model,i=this.editor.plugins.get("TableUtils").getSelectionAffectedTableCells(n.document.selection),r=this._getValueToSet(t);n.enqueueChange(o,(e=>{r?i.forEach((t=>e.setAttribute(this.attributeName,r,t))):i.forEach((t=>e.removeAttribute(this.attributeName,t)))}))}_getAttribute(e){if(!e)return;const t=e.getAttribute(this.attributeName);return t!==this._defaultValue?t:void 0}_getValueToSet(e){if(e!==this._defaultValue)return e}_getSingleValue(e){const t=this._getAttribute(e[0]);return e.every((e=>this._getAttribute(e)===t))?t:void 0}}class YS extends JS{constructor(e,t){super(e,"tableCellWidth",t)}_getValueToSet(e){if((e=$S(e,"px"))!==this._defaultValue)return e}}class QS extends br{static get pluginName(){return"TableCellWidthEditing"}static get isOfficialPlugin(){return!0}static get requires(){return[HB]}init(){const e=this.editor,t=GS(e.config.get("table.tableCellProperties.defaultProperties"));ND(e.model.schema,e.conversion,{modelAttribute:"tableCellWidth",styleName:"width",defaultValue:t.width}),e.commands.add("tableCellWidth",new YS(e,t.width))}}class XS extends JS{constructor(e,t){super(e,"tableCellPadding",t)}_getAttribute(e){if(!e)return;const t=qS(e.getAttribute(this.attributeName));return t!==this._defaultValue?t:void 0}_getValueToSet(e){const t=$S(e,"px");if(t!==this._defaultValue)return t}}class eT extends JS{constructor(e,t){super(e,"tableCellHeight",t)}_getValueToSet(e){const t=$S(e,"px");if(t!==this._defaultValue)return t}}class tT extends JS{constructor(e,t){super(e,"tableCellBackgroundColor",t)}}class oT extends JS{constructor(e,t){super(e,"tableCellVerticalAlignment",t)}}class nT extends JS{constructor(e,t){super(e,"tableCellHorizontalAlignment",t)}}class iT extends JS{constructor(e,t){super(e,"tableCellBorderStyle",t)}_getAttribute(e){if(!e)return;const t=qS(e.getAttribute(this.attributeName));return t!==this._defaultValue?t:void 0}}class rT extends JS{constructor(e,t){super(e,"tableCellBorderColor",t)}_getAttribute(e){if(!e)return;const t=qS(e.getAttribute(this.attributeName));return t!==this._defaultValue?t:void 0}}class sT extends JS{constructor(e,t){super(e,"tableCellBorderWidth",t)}_getAttribute(e){if(!e)return;const t=qS(e.getAttribute(this.attributeName));return t!==this._defaultValue?t:void 0}_getValueToSet(e){const t=$S(e,"px");if(t!==this._defaultValue)return t}}const aT=/^(top|middle|bottom)$/,lT=/^(left|center|right|justify)$/;class cT extends br{static get pluginName(){return"TableCellPropertiesEditing"}static get isOfficialPlugin(){return!0}static get requires(){return[HB,QS]}init(){const e=this.editor,t=e.model.schema,o=e.conversion;e.config.define("table.tableCellProperties.defaultProperties",{});const n=GS(e.config.get("table.tableCellProperties.defaultProperties"),{includeVerticalAlignmentProperty:!0,includeHorizontalAlignmentProperty:!0,includePaddingProperty:!0,isRightToLeftContent:"rtl"===e.locale.contentLanguageDirection});e.data.addStyleProcessorRules(Sh),function(e,t,o){const n={width:"tableCellBorderWidth",color:"tableCellBorderColor",style:"tableCellBorderStyle"};e.extend("tableCell",{allowAttributes:Object.values(n)}),ID(t,"td",n,o),ID(t,"th",n,o),PD(t,{modelElement:"tableCell",modelAttribute:n.style,styleName:"border-style"}),PD(t,{modelElement:"tableCell",modelAttribute:n.color,styleName:"border-color"}),PD(t,{modelElement:"tableCell",modelAttribute:n.width,styleName:"border-width"})}(t,o,{color:n.borderColor,style:n.borderStyle,width:n.borderWidth}),e.commands.add("tableCellBorderStyle",new iT(e,n.borderStyle)),e.commands.add("tableCellBorderColor",new rT(e,n.borderColor)),e.commands.add("tableCellBorderWidth",new sT(e,n.borderWidth)),ND(t,o,{modelAttribute:"tableCellHeight",styleName:"height",defaultValue:n.height}),e.commands.add("tableCellHeight",new eT(e,n.height)),e.data.addStyleProcessorRules(Vh),ND(t,o,{modelAttribute:"tableCellPadding",styleName:"padding",reduceBoxSides:!0,defaultValue:n.padding}),e.commands.add("tableCellPadding",new XS(e,n.padding)),e.data.addStyleProcessorRules(Bh),ND(t,o,{modelAttribute:"tableCellBackgroundColor",styleName:"background-color",defaultValue:n.backgroundColor}),e.commands.add("tableCellBackgroundColor",new tT(e,n.backgroundColor)),function(e,t,o){e.extend("tableCell",{allowAttributes:["tableCellHorizontalAlignment"]}),t.for("downcast").attributeToAttribute({model:{name:"tableCell",key:"tableCellHorizontalAlignment"},view:e=>({key:"style",value:{"text-align":e}})}),t.for("upcast").attributeToAttribute({view:{name:/^(td|th)$/,styles:{"text-align":lT}},model:{key:"tableCellHorizontalAlignment",value:e=>{const t=e.getStyle("text-align");return t===o?null:t}}}).attributeToAttribute({view:{name:/^(td|th)$/,attributes:{align:lT}},model:{key:"tableCellHorizontalAlignment",value:e=>{const t=e.getAttribute("align");return t===o?null:t}}})}(t,o,n.horizontalAlignment),e.commands.add("tableCellHorizontalAlignment",new nT(e,n.horizontalAlignment)),function(e,t,o){e.extend("tableCell",{allowAttributes:["tableCellVerticalAlignment"]}),t.for("downcast").attributeToAttribute({model:{name:"tableCell",key:"tableCellVerticalAlignment"},view:e=>({key:"style",value:{"vertical-align":e}})}),t.for("upcast").attributeToAttribute({view:{name:/^(td|th)$/,styles:{"vertical-align":aT}},model:{key:"tableCellVerticalAlignment",value:e=>{const t=e.getStyle("vertical-align");return t===o?null:t}}}).attributeToAttribute({view:{name:/^(td|th)$/,attributes:{valign:aT}},model:{key:"tableCellVerticalAlignment",value:e=>{const t=e.getAttribute("valign");return t===o?null:t}}})}(t,o,n.verticalAlignment),e.commands.add("tableCellVerticalAlignment",new oT(e,n.verticalAlignment))}}class dT extends wr{constructor(e,t,o){super(e),this.attributeName=t,this._defaultValue=o}refresh(){const e=VD(this.editor.model.document.selection);this.isEnabled=!!e,this.value=this._getValue(e)}execute(e={}){const t=this.editor.model,o=t.document.selection,{value:n,batch:i}=e,r=VD(o),s=this._getValueToSet(n);t.enqueueChange(i,(e=>{s?e.setAttribute(this.attributeName,s,r):e.removeAttribute(this.attributeName,r)}))}_getValue(e){if(!e)return;const t=e.getAttribute(this.attributeName);return t!==this._defaultValue?t:void 0}_getValueToSet(e){if(e!==this._defaultValue)return e}}class uT extends dT{constructor(e,t){super(e,"tableBackgroundColor",t)}}class hT extends dT{constructor(e,t){super(e,"tableBorderColor",t)}_getValue(e){if(!e)return;const t=qS(e.getAttribute(this.attributeName));return t!==this._defaultValue?t:void 0}}class pT extends dT{constructor(e,t){super(e,"tableBorderStyle",t)}_getValue(e){if(!e)return;const t=qS(e.getAttribute(this.attributeName));return t!==this._defaultValue?t:void 0}}class mT extends dT{constructor(e,t){super(e,"tableBorderWidth",t)}_getValue(e){if(!e)return;const t=qS(e.getAttribute(this.attributeName));return t!==this._defaultValue?t:void 0}_getValueToSet(e){const t=$S(e,"px");if(t!==this._defaultValue)return t}}class gT extends dT{constructor(e,t){super(e,"tableWidth",t)}_getValueToSet(e){if((e=$S(e,"px"))!==this._defaultValue)return e}}class fT extends dT{constructor(e,t){super(e,"tableHeight",t)}_getValueToSet(e){if((e=$S(e,"px"))!==this._defaultValue)return e}}class bT extends dT{constructor(e,t){super(e,"tableAlignment",t)}}const kT=/^(left|center|right)$/,wT=/^(left|none|right)$/;class _T extends br{static get pluginName(){return"TablePropertiesEditing"}static get isOfficialPlugin(){return!0}static get requires(){return[HB]}init(){const e=this.editor,t=e.model.schema,o=e.conversion;e.config.define("table.tableProperties.defaultProperties",{});const n=WS(e.config.get("table.tableProperties.defaultProperties"),{includeAlignmentProperty:!0});e.data.addStyleProcessorRules(Sh),function(e,t,o){const n={width:"tableBorderWidth",color:"tableBorderColor",style:"tableBorderStyle"};e.extend("table",{allowAttributes:Object.values(n)}),ID(t,"table",n,o),FD(t,{modelAttribute:n.color,styleName:"border-color"}),FD(t,{modelAttribute:n.style,styleName:"border-style"}),FD(t,{modelAttribute:n.width,styleName:"border-width"})}(t,o,{color:n.borderColor,style:n.borderStyle,width:n.borderWidth}),e.commands.add("tableBorderColor",new hT(e,n.borderColor)),e.commands.add("tableBorderStyle",new pT(e,n.borderStyle)),e.commands.add("tableBorderWidth",new mT(e,n.borderWidth)),function(e,t,o){e.extend("table",{allowAttributes:["tableAlignment"]}),t.for("downcast").attributeToAttribute({model:{name:"table",key:"tableAlignment"},view:e=>({key:"style",value:{float:"center"===e?"none":e}}),converterPriority:"high"}),t.for("upcast").attributeToAttribute({view:{name:/^(table|figure)$/,styles:{float:wT}},model:{key:"tableAlignment",value:e=>{let t=e.getStyle("float");return"none"===t&&(t="center"),t===o?null:t}}}).attributeToAttribute({view:{attributes:{align:kT}},model:{name:"table",key:"tableAlignment",value:e=>{const t=e.getAttribute("align");return t===o?null:t}}})}(t,o,n.alignment),e.commands.add("tableAlignment",new bT(e,n.alignment)),yT(t,o,{modelAttribute:"tableWidth",styleName:"width",defaultValue:n.width}),e.commands.add("tableWidth",new gT(e,n.width)),yT(t,o,{modelAttribute:"tableHeight",styleName:"height",defaultValue:n.height}),e.commands.add("tableHeight",new fT(e,n.height)),e.data.addStyleProcessorRules(Bh),function(e,t,o){const{modelAttribute:n}=o;e.extend("table",{allowAttributes:[n]}),TD(t,{viewElement:"table",...o}),FD(t,o)}(t,o,{modelAttribute:"tableBackgroundColor",styleName:"background-color",defaultValue:n.backgroundColor}),e.commands.add("tableBackgroundColor",new uT(e,n.backgroundColor))}}function yT(e,t,o){const{modelAttribute:n}=o;e.extend("table",{allowAttributes:[n]}),TD(t,{viewElement:/^(table|figure)$/,shouldUpcast:e=>!("table"==e.name&&"figure"==e.parent.name),...o}),PD(t,{modelElement:"table",...o})}var AT=i(4001),CT={attributes:{"data-cke":!0}};CT.setAttributes=Xr(),CT.insert=Yr().bind(null,"head"),CT.domAPI=Zr(),CT.insertStyleElement=ts();Gr()(AT.A,CT);AT.A&&AT.A.locals&&AT.A.locals;class vT extends zp{constructor(e,t){super(e),this.set({borderStyle:"",borderWidth:"",borderColor:"",backgroundColor:"",width:"",height:"",alignment:""}),this.options=t;const{borderStyleDropdown:o,borderWidthInput:n,borderColorInput:i,borderRowLabel:r}=this._createBorderFields(),{backgroundRowLabel:s,backgroundInput:a}=this._createBackgroundFields(),{widthInput:l,operatorLabel:c,heightInput:d,dimensionsLabel:u}=this._createDimensionFields(),{alignmentToolbar:h,alignmentLabel:p}=this._createAlignmentFields();this.focusTracker=new nr,this.keystrokes=new ar,this.children=this.createCollection(),this.borderStyleDropdown=o,this.borderWidthInput=n,this.borderColorInput=i,this.backgroundInput=a,this.widthInput=l,this.heightInput=d,this.alignmentToolbar=h;const{saveButtonView:m,cancelButtonView:g}=this._createActionButtons();this.saveButtonView=m,this.cancelButtonView=g,this._focusables=new hp,this._focusCycler=new Xp({focusables:this._focusables,focusTracker:this.focusTracker,keystrokeHandler:this.keystrokes,actions:{focusPrevious:"shift + tab",focusNext:"tab"}}),this.children.add(new Qp(e,{label:this.t("Table properties")})),this.children.add(new SS(e,{labelView:r,children:[r,o,i,n],class:"ck-table-form__border-row"})),this.children.add(new SS(e,{labelView:s,children:[s,a],class:"ck-table-form__background-row"})),this.children.add(new SS(e,{children:[new SS(e,{labelView:u,children:[u,l,c,d],class:"ck-table-form__dimensions-row"}),new SS(e,{labelView:p,children:[p,h],class:"ck-table-properties-form__alignment-row"})]})),this.children.add(new SS(e,{children:[this.saveButtonView,this.cancelButtonView],class:"ck-table-form__action-row"})),this.setTemplate({tag:"form",attributes:{class:["ck","ck-form","ck-table-form","ck-table-properties-form"],tabindex:"-1"},children:this.children})}render(){super.render(),Vp({view:this}),[this.borderColorInput,this.backgroundInput].forEach((e=>{this._focusCycler.chain(e.fieldView.focusCycler)})),[this.borderStyleDropdown,this.borderColorInput,this.borderWidthInput,this.backgroundInput,this.widthInput,this.heightInput,this.alignmentToolbar,this.saveButtonView,this.cancelButtonView].forEach((e=>{this._focusables.add(e),this.focusTracker.add(e.element)})),this.keystrokes.listenTo(this.element)}destroy(){super.destroy(),this.focusTracker.destroy(),this.keystrokes.destroy()}focus(){this._focusCycler.focusFirst()}_createBorderFields(){const e=this.options.defaultTableProperties,t={style:e.borderStyle,width:e.borderWidth,color:e.borderColor},o=xS({colorConfig:this.options.borderColors,columns:5,defaultColorValue:t.color,colorPickerConfig:this.options.colorPickerConfig}),n=this.locale,i=this.t,r=i("Style"),s=new Sm(n);s.text=i("Border");const a=fS(i),l=new dg(n,Bf);l.set({label:r,class:"ck-table-form__border-style"}),l.fieldView.buttonView.set({ariaLabel:r,ariaLabelledBy:void 0,isOn:!1,withText:!0,tooltip:r}),l.fieldView.buttonView.bind("label").to(this,"borderStyle",(e=>a[e||"none"])),l.fieldView.on("execute",(e=>{this.borderStyle=e.source._borderStyleValue})),l.bind("isEmpty").to(this,"borderStyle",(e=>!e)),yf(l.fieldView,AS(this,t.style),{role:"menu",ariaLabel:r});const c=new dg(n,Ef);c.set({label:i("Width"),class:"ck-table-form__border-width"}),c.fieldView.bind("value").to(this,"borderWidth"),c.bind("isEnabled").to(this,"borderStyle",xT),c.fieldView.on("input",(()=>{this.borderWidth=c.fieldView.element.value}));const d=new dg(n,o);return d.set({label:i("Color"),class:"ck-table-form__border-color"}),d.fieldView.bind("value").to(this,"borderColor"),d.bind("isEnabled").to(this,"borderStyle",xT),d.fieldView.on("input",(()=>{this.borderColor=d.fieldView.value})),this.on("change:borderStyle",((e,o,n,i)=>{xT(n)||(this.borderColor="",this.borderWidth=""),xT(i)||(this.borderColor=t.color,this.borderWidth=t.width)})),{borderRowLabel:s,borderStyleDropdown:l,borderColorInput:d,borderWidthInput:c}}_createBackgroundFields(){const e=this.locale,t=this.t,o=new Sm(e);o.text=t("Background");const n=xS({colorConfig:this.options.backgroundColors,columns:5,defaultColorValue:this.options.defaultTableProperties.backgroundColor,colorPickerConfig:this.options.colorPickerConfig}),i=new dg(e,n);return i.set({label:t("Color"),class:"ck-table-properties-form__background"}),i.fieldView.bind("value").to(this,"backgroundColor"),i.fieldView.on("input",(()=>{this.backgroundColor=i.fieldView.value})),{backgroundRowLabel:o,backgroundInput:i}}_createDimensionFields(){const e=this.locale,t=this.t,o=new Sm(e);o.text=t("Dimensions");const n=new dg(e,Ef);n.set({label:t("Width"),class:"ck-table-form__dimensions-row__width"}),n.fieldView.bind("value").to(this,"width"),n.fieldView.on("input",(()=>{this.width=n.fieldView.element.value}));const i=new zp(e);i.setTemplate({tag:"span",attributes:{class:["ck-table-form__dimension-operator"]},children:[{text:"×"}]});const r=new dg(e,Ef);return r.set({label:t("Height"),class:"ck-table-form__dimensions-row__height"}),r.fieldView.bind("value").to(this,"height"),r.fieldView.on("input",(()=>{this.height=r.fieldView.element.value})),{dimensionsLabel:o,widthInput:n,operatorLabel:i,heightInput:r}}_createAlignmentFields(){const e=this.locale,t=this.t,o=new Sm(e);o.text=t("Alignment");const n=new af(e);return n.set({role:"radiogroup",isCompact:!0,ariaLabel:t("Table alignment toolbar")}),CS({view:this,icons:{left:up.objectLeft,center:up.objectCenter,right:up.objectRight},toolbar:n,labels:this._alignmentLabels,propertyName:"alignment",defaultValue:this.options.defaultTableProperties.alignment}),{alignmentLabel:o,alignmentToolbar:n}}_createActionButtons(){const e=this.locale,t=this.t,o=new Kp(e),n=new Kp(e),i=[this.borderWidthInput,this.borderColorInput,this.backgroundInput,this.widthInput,this.heightInput];return o.set({label:t("Save"),icon:up.check,class:"ck-button-save",type:"submit",withText:!0}),o.bind("isEnabled").toMany(i,"errorText",((...e)=>e.every((e=>!e)))),n.set({label:t("Cancel"),icon:up.cancel,class:"ck-button-cancel",withText:!0}),n.delegate("execute").to(this,"cancel"),{saveButtonView:o,cancelButtonView:n}}get _alignmentLabels(){const e=this.locale,t=this.t,o=t("Align table to the left"),n=t("Center table"),i=t("Align table to the right");return"rtl"===e.uiLanguageDirection?{right:i,center:n,left:o}:{left:o,center:n,right:i}}}function xT(e){return"none"!==e}const ET={borderStyle:"tableBorderStyle",borderColor:"tableBorderColor",borderWidth:"tableBorderWidth",backgroundColor:"tableBackgroundColor",width:"tableWidth",height:"tableHeight",alignment:"tableAlignment"};class DT extends br{static get requires(){return[kk]}static get pluginName(){return"TablePropertiesUI"}static get isOfficialPlugin(){return!0}constructor(e){super(e),this.view=null,e.config.define("table.tableProperties",{borderColors:vS,backgroundColors:vS})}init(){const e=this.editor,t=e.t;this._defaultTableProperties=WS(e.config.get("table.tableProperties.defaultProperties"),{includeAlignmentProperty:!0}),this._balloon=e.plugins.get(kk),e.ui.componentFactory.add("tableProperties",(o=>{const n=new Kp(o);n.set({label:t("Table properties"),icon:'',tooltip:!0}),this.listenTo(n,"execute",(()=>this._showView()));const i=Object.values(ET).map((t=>e.commands.get(t)));return n.bind("isEnabled").toMany(i,"isEnabled",((...e)=>e.some((e=>e)))),n}))}destroy(){super.destroy(),this.view&&this.view.destroy()}_createPropertiesView(){const e=this.editor,t=e.config.get("table.tableProperties"),o=Zm(t.borderColors),n=Km(e.locale,o),i=Zm(t.backgroundColors),r=Km(e.locale,i),s=!1!==t.colorPicker,a=new vT(e.locale,{borderColors:n,backgroundColors:r,defaultTableProperties:this._defaultTableProperties,colorPickerConfig:!!s&&(t.colorPicker||{})}),l=e.t;a.render(),this.listenTo(a,"submit",(()=>{this._hideView()})),this.listenTo(a,"cancel",(()=>{this._undoStepBatch.operations.length&&e.execute("undo",this._undoStepBatch),this._hideView()})),a.keystrokes.set("Esc",((e,t)=>{this._hideView(),t()})),Op({emitter:a,activator:()=>this._isViewInBalloon,contextElements:[this._balloon.view.element],callback:()=>this._hideView()});const c=bS(l),d=kS(l);return a.on("change:borderStyle",this._getPropertyChangeCallback("tableBorderStyle")),a.on("change:borderColor",this._getValidatedPropertyChangeCallback({viewField:a.borderColorInput,commandName:"tableBorderColor",errorText:c,validator:wS})),a.on("change:borderWidth",this._getValidatedPropertyChangeCallback({viewField:a.borderWidthInput,commandName:"tableBorderWidth",errorText:d,validator:yS})),a.on("change:backgroundColor",this._getValidatedPropertyChangeCallback({viewField:a.backgroundInput,commandName:"tableBackgroundColor",errorText:c,validator:wS})),a.on("change:width",this._getValidatedPropertyChangeCallback({viewField:a.widthInput,commandName:"tableWidth",errorText:d,validator:_S})),a.on("change:height",this._getValidatedPropertyChangeCallback({viewField:a.heightInput,commandName:"tableHeight",errorText:d,validator:_S})),a.on("change:alignment",this._getPropertyChangeCallback("tableAlignment")),a}_fillViewFormFromCommandValues(){const e=this.editor.commands,t=e.get("tableBorderStyle");Object.entries(ET).map((([t,o])=>{const n=t,i=this._defaultTableProperties[n]||"";return[n,e.get(o).value||i]})).forEach((([e,o])=>{("borderColor"!==e&&"borderWidth"!==e||"none"!==t.value)&&this.view.set(e,o)})),this._isReady=!0}_showView(){const e=this.editor;this.view||(this.view=this._createPropertiesView()),this.listenTo(e.ui,"update",(()=>{this._updateView()})),this._fillViewFormFromCommandValues(),this._balloon.add({view:this.view,position:LS(e)}),this._undoStepBatch=e.model.createBatch(),this.view.focus()}_hideView(){const e=this.editor;this.stopListening(e.ui,"update"),this._isReady=!1,this.view.saveButtonView.focus(),this._balloon.remove(this.view),this.editor.editing.view.focus()}_updateView(){const e=this.editor;aS(e.editing.view.document.selection)?this._isViewVisible&&VS(e,"table"):this._hideView()}get _isViewVisible(){return!!this.view&&this._balloon.visibleView===this.view}get _isViewInBalloon(){return!!this.view&&this._balloon.hasView(this.view)}_getPropertyChangeCallback(e){return(t,o,n)=>{this._isReady&&this.editor.execute(e,{value:n,batch:this._undoStepBatch})}}_getValidatedPropertyChangeCallback(e){const{commandName:t,viewField:o,validator:n,errorText:i}=e,r=bl((()=>{o.errorText=i}),500);return(e,i,s)=>{r.cancel(),this._isReady&&(n(s)?(this.editor.execute(t,{value:s,batch:this._undoStepBatch}),o.errorText=null):r())}}}var BT=i(7406),ST={attributes:{"data-cke":!0}};ST.setAttributes=Xr(),ST.insert=Yr().bind(null,"head"),ST.domAPI=Zr(),ST.insertStyleElement=ts();Gr()(BT.A,ST);BT.A&&BT.A.locals&&BT.A.locals;var TT=i(4204),IT={attributes:{"data-cke":!0}};IT.setAttributes=Xr(),IT.insert=Yr().bind(null,"head"),IT.domAPI=Zr(),IT.insertStyleElement=ts();Gr()(TT.A,IT);TT.A&&TT.A.locals&&TT.A.locals;function PT(e){return void 0!==e&&e.endsWith("px")}function FT(e){return e.toFixed(2).replace(/\.?0+$/,"")+"px"}function RT(e,t,o){if(!e.childCount)return;const n=new oh(e.document),i=function(e,t){const o=t.createRangeIn(e),n=[],i=new Set;for(const e of o.getItems()){if(!e.is("element")||!e.name.match(/^(p|h\d+|li|div)$/))continue;let t=jT(e);if(void 0===t||0!=parseFloat(t)||Array.from(e.getClassNames()).find((e=>e.startsWith("MsoList")))||(t=void 0),e.hasStyle("mso-list")||void 0!==t&&i.has(t)){const o=LT(e);n.push({element:e,id:o.id,order:o.order,indent:o.indent,marginLeft:t}),void 0!==t&&i.add(t)}else i.clear()}return n}(e,n);if(!i.length)return;const r={},s=[];for(const e of i)if(void 0!==e.indent){MT(e)||(s.length=0);const i=`${e.id}:${e.indent}`,a=Math.min(e.indent-1,s.length);if(as.length-1||s[a].listElement.name!=l.type){0==a&&"ol"==l.type&&void 0!==e.id&&r[i]&&(l.startIndex=r[i]);const t=VT(l,n,o);if(PT(e.marginLeft)&&(0==a||PT(s[a-1].marginLeft))){let o=e.marginLeft;a>0&&(o=FT(parseFloat(o)-parseFloat(s[a-1].marginLeft))),n.setStyle("padding-left",o,t)}if(0==s.length){const o=e.element.parent,i=o.getChildIndex(e.element)+1;n.insertChild(i,t,o)}else{const e=s[a-1].listItemElements;n.appendChild(t,e[e.length-1])}s[a]={...e,listElement:t,listItemElements:[]},0==a&&void 0!==e.id&&(r[i]=l.startIndex||1)}}const l="li"==e.element.name?e.element:n.createElement("li");n.appendChild(l,s[a].listElement),s[a].listItemElements.push(l),0==a&&void 0!==e.id&&r[i]++,e.element!=l&&n.appendChild(e.element,l),HT(e.element,n),n.removeStyle("text-indent",e.element),n.removeStyle("margin-left",e.element)}else{const t=s.find((t=>t.marginLeft==e.marginLeft));if(t){const o=t.listItemElements;n.appendChild(e.element,o[o.length-1]),n.removeStyle("margin-left",e.element)}else s.length=0}}function MT(e){const t=e.element.previousSibling;return zT(t||e.element.parent)}function zT(e){return e.is("element","ol")||e.is("element","ul")}function OT(e,t){const o=new RegExp(`@list l${e.id}:level${e.indent}\\s*({[^}]*)`,"gi"),n=/mso-level-number-format:([^;]{0,100});/gi,i=/mso-level-start-at:\s{0,100}([0-9]{0,10})\s{0,100};/gi,r=new RegExp(`@list\\s+l${e.id}:level\\d\\s*{[^{]*mso-level-text:"%\\d\\\\.`,"gi"),s=new RegExp(`@list l${e.id}:level\\d\\s*{[^{]*mso-level-number-format:`,"gi"),a=r.exec(t),l=s.exec(t),c=a&&!l,d=o.exec(t);let u="decimal",h="ol",p=null;if(d&&d[1]){const t=n.exec(d[1]);if(t&&t[1]&&(u=t[1].trim(),h="bullet"!==u&&"image"!==u?"ol":"ul"),"bullet"===u){const t=function(e){if("li"==e.name&&"ul"==e.parent.name&&e.parent.hasAttribute("type"))return e.parent.getAttribute("type");const t=function(e){if(e.getChild(0).is("$text"))return null;for(const t of e.getChildren()){if(!t.is("element","span"))continue;const e=t.getChild(0);if(e)return e.is("$text")?e:e.getChild(0)}return null}(e);if(!t)return null;const o=t._data;if("o"===o)return"circle";if("·"===o)return"disc";if("§"===o)return"square";return null}(e.element);t&&(u=t)}else{const e=i.exec(d[1]);e&&e[1]&&(p=parseInt(e[1]))}c&&(h="ol")}return{type:h,startIndex:p,style:NT(u),isLegalStyleList:c}}function NT(e){if(e.startsWith("arabic-leading-zero"))return"decimal-leading-zero";switch(e){case"alpha-upper":return"upper-alpha";case"alpha-lower":return"lower-alpha";case"roman-upper":return"upper-roman";case"roman-lower":return"lower-roman";case"circle":case"disc":case"square":return e;default:return null}}function VT(e,t,o){const n=t.createElement(e.type);return e.style&&t.setStyle("list-style-type",e.style,n),e.startIndex&&e.startIndex>1&&t.setAttribute("start",e.startIndex,n),e.isLegalStyleList&&o&&t.addClass("legal-list",n),n}function LT(e){const t=e.getStyle("mso-list");if(void 0===t)return{};const o=t.match(/(^|\s{1,100})l(\d+)/i),n=t.match(/\s{0,100}lfo(\d+)/i),i=t.match(/\s{0,100}level(\d+)/i);return o&&n&&i?{id:o[2],order:n[1],indent:parseInt(i[1])}:{indent:1}}function HT(e,t){const o=new As({name:"span",styles:{"mso-list":"Ignore"}}),n=t.createRangeIn(e);for(const e of n)"elementStart"===e.type&&o.match(e.item)&&t.remove(e.item)}function jT(e){const t=e.getStyle("margin-left");return void 0===t||t.endsWith("px")?t:function(e){const t=parseFloat(e);return e.endsWith("pt")?FT(96*t/72):e.endsWith("pc")?FT(12*t*96/72):e.endsWith("in")?FT(96*t):e.endsWith("cm")?FT(96*t/2.54):e.endsWith("mm")?FT(t/10*96/2.54):e}(t)}function qT(e,t){if(!e.childCount)return;const o=new oh(e.document),n=function(e,t){const o=t.createRangeIn(e),n=new As({name:/v:(.+)/}),i=[];for(const e of o){if("elementStart"!=e.type)continue;const t=e.item,o=t.previousSibling,r=o&&o.is("element")?o.name:null,s=["Chart"],a=n.match(t),l=t.getAttribute("o:gfxdata"),c="v:shapetype"===r,d=l&&s.some((e=>t.getAttribute("id").includes(e)));a&&l&&!c&&!d&&i.push(e.item.getAttribute("id"))}return i}(e,o);!function(e,t,o){const n=o.createRangeIn(t),i=new As({name:"img"}),r=[];for(const t of n)if(t.item.is("element")&&i.match(t.item)){const o=t.item,n=o.getAttribute("v:shapes")?o.getAttribute("v:shapes").split(" "):[];n.length&&n.every((t=>e.indexOf(t)>-1))?r.push(o):o.getAttribute("src")||r.push(o)}for(const e of r)o.remove(e)}(n,e,o),function(e,t,o){const n=o.createRangeIn(t),i=[];for(const t of n)if("elementStart"==t.type&&t.item.is("element","v:shape")){const o=t.item.getAttribute("id");if(e.includes(o))continue;r(t.item.parent.getChildren(),o)||i.push(t.item)}for(const e of i){const t={src:s(e)};e.hasAttribute("alt")&&(t.alt=e.getAttribute("alt"));const n=o.createElement("img",t);o.insertChild(e.index+1,n,e.parent)}function r(e,t){for(const o of e)if(o.is("element")){if("img"==o.name&&o.getAttribute("v:shapes")==t)return!0;if(r(o.getChildren(),t))return!0}return!1}function s(e){for(const t of e.getChildren())if(t.is("element")&&t.getAttribute("src"))return t.getAttribute("src")}}(n,e,o),function(e,t){const o=t.createRangeIn(e),n=new As({name:/v:(.+)/}),i=[];for(const e of o)"elementStart"==e.type&&n.match(e.item)&&i.push(e.item);for(const e of i)t.remove(e)}(e,o);const i=function(e,t){const o=t.createRangeIn(e),n=new As({name:"img"}),i=[];for(const e of o)e.item.is("element")&&n.match(e.item)&&e.item.getAttribute("src").startsWith("file://")&&i.push(e.item);return i}(e,o);i.length&&function(e,t,o){if(e.length===t.length)for(let n=0;nString.fromCharCode(parseInt(e,16)))).join(""))}const UT=//i,WT=/xmlns:o="urn:schemas-microsoft-com/i;class GT{constructor(e,t=!1){this.document=e,this.hasMultiLevelListPlugin=t}isActive(e){return UT.test(e)||WT.test(e)}execute(e){const t=new oh(this.document),{body:o,stylesString:n}=e._parsedData;!function(e,t){const o=[];for(const n of t.createRangeIn(e)){const e=n.item;e.is("element","a")&&!e.hasAttribute("href")&&(e.hasAttribute("id")||e.hasAttribute("name"))&&o.push(e)}for(const e of o){const o=e.parent.getChildIndex(e)+1,n=e.getChildren();t.insertChild(o,n,e.parent)}}(o,t),RT(o,n,this.hasMultiLevelListPlugin),qT(o,e.dataTransfer.getData("text/rtf")),function(e){const t=[],o=new oh(e.document);for(const{item:n}of o.createRangeIn(e))if(n.is("element")){for(const e of n.getClassNames())/\bmso/gi.exec(e)&&o.removeClass(e,n);for(const e of n.getStyleNames())/\bmso/gi.exec(e)&&o.removeStyle(e,n);(n.is("element","w:sdt")||n.is("element","w:sdtpr")&&n.isEmpty||n.is("element","o:p")&&n.isEmpty)&&t.push(n)}for(const e of t){const t=e.parent,n=t.getChildIndex(e);o.insertChild(n,e.getChildren(),t),o.remove(e)}}(o),e.content=o}}function KT(e,t,o,{blockElements:n,inlineObjectElements:i}){let r=o.createPositionAt(e,"forward"==t?"after":"before");return r=r.getLastMatchingPosition((({item:e})=>e.is("element")&&!n.includes(e.name)&&!i.includes(e.name)),{direction:t}),"forward"==t?r.nodeAfter:r.nodeBefore}function ZT(e,t){return!!e&&e.is("element")&&t.includes(e.name)}const JT=/id=("|')docs-internal-guid-[-0-9a-f]+("|')/i;class YT{constructor(e){this.document=e}isActive(e){return JT.test(e)}execute(e){const t=new oh(this.document),{body:o}=e._parsedData;!function(e,t){for(const o of e.getChildren())if(o.is("element","b")&&"normal"===o.getStyle("font-weight")){const n=e.getChildIndex(o);t.remove(o),t.insertChild(n,o.getChildren(),e)}}(o,t),function(e,t){for(const o of t.createRangeIn(e)){const e=o.item;if(e.is("element","li")){const o=e.getChild(0);o&&o.is("element","p")&&t.unwrapElement(o)}}}(o,t),function(e,t){const o=new oa(t.document.stylesProcessor),n=new Ua(o,{renderingMode:"data"}),i=n.blockElements,r=n.inlineObjectElements,s=[];for(const o of t.createRangeIn(e)){const e=o.item;if(e.is("element","br")){const o=KT(e,"forward",t,{blockElements:i,inlineObjectElements:r}),n=KT(e,"backward",t,{blockElements:i,inlineObjectElements:r}),a=ZT(o,i);(ZT(n,i)||a)&&s.push(e)}}for(const e of s)e.hasClass("Apple-interchange-newline")?t.remove(e):t.replace(e,t.createElement("p"))}(o,t),e.content=o}}const QT=/(\s+)<\/span>/g,((e,t)=>1===t.length?" ":Array(t.length+1).join("  ").substr(0,t.length)))}function tI(e,t){const o=new DOMParser,n=function(e){return eI(eI(e)).replace(/([^\S\r\n]*?)[\r\n]+([^\S\r\n]*<\/span>)/g,"$1$2").replace(/<\/span>/g,"").replace(/()[\r\n]+(<\/span>)/g,"$1 $2").replace(/ <\//g," <\/o:p>/g," ").replace(/( |\u00A0)<\/o:p>/g,"").replace(/>([^\S\r\n]*[\r\n]\s*)<")}(function(e){const t="",o="",n=e.indexOf(t);if(n<0)return e;const i=e.indexOf(o,n+t.length);return e.substring(0,n+t.length)+(i>=0?e.substring(i):"")}(e=(e=e.replace(//,!0],[/^<\?/,/\?>/,!0],[/^/,!0],[/^/,!0],[new RegExp("^|$))","i"),/^$/,!0],[new RegExp(GF.source+"\\s*$"),/^$/,!1]];const ZF=[["table",function(e,t,o,n){if(t+2>o)return!1;let i=t+1;if(e.sCount[i]=4)return!1;let r=e.bMarks[i]+e.tShift[i];if(r>=e.eMarks[i])return!1;const s=e.src.charCodeAt(r++);if(124!==s&&45!==s&&58!==s)return!1;if(r>=e.eMarks[i])return!1;const a=e.src.charCodeAt(r++);if(124!==a&&45!==a&&58!==a&&!nF(a))return!1;if(45===s&&nF(a))return!1;for(;r=4)return!1;c=HF(l),c.length&&""===c[0]&&c.shift(),c.length&&""===c[c.length-1]&&c.pop();const u=c.length;if(0===u||u!==d.length)return!1;if(n)return!0;const h=e.parentType;e.parentType="table";const p=e.md.block.ruler.getRules("blockquote"),m=[t,0];e.push("table_open","table",1).map=m,e.push("thead_open","thead",1).map=[t,t+1],e.push("tr_open","tr",1).map=[t,t+1];for(let t=0;t=4)break;if(c=HF(l),c.length&&""===c[0]&&c.shift(),c.length&&""===c[c.length-1]&&c.pop(),f+=u-c.length,f>65536)break;if(i===t+2){e.push("tbody_open","tbody",1).map=g=[t+2,0]}e.push("tr_open","tr",1).map=[i,i+1];for(let t=0;t=4))break;n++,i=n}e.line=i;const r=e.push("code_block","code",0);return r.content=e.getLines(t,i,4+e.blkIndent,!1)+"\n",r.map=[t,e.line],!0}],["fence",function(e,t,o,n){let i=e.bMarks[t]+e.tShift[t],r=e.eMarks[t];if(e.sCount[t]-e.blkIndent>=4)return!1;if(i+3>r)return!1;const s=e.src.charCodeAt(i);if(126!==s&&96!==s)return!1;let a=i;i=e.skipChars(i,s);let l=i-a;if(l<3)return!1;const c=e.src.slice(a,i),d=e.src.slice(i,r);if(96===s&&d.indexOf(String.fromCharCode(s))>=0)return!1;if(n)return!0;let u=t,h=!1;for(;(u++,!(u>=o))&&(i=a=e.bMarks[u]+e.tShift[u],r=e.eMarks[u],!(i=4||(i=e.skipChars(i,s),i-a=4)return!1;if(62!==e.src.charCodeAt(i))return!1;if(n)return!0;const a=[],l=[],c=[],d=[],u=e.md.block.ruler.getRules("blockquote"),h=e.parentType;e.parentType="blockquote";let p,m=!1;for(p=t;p=r)break;if(62===e.src.charCodeAt(i++)&&!t){let t,o,n=e.sCount[p]+1;32===e.src.charCodeAt(i)?(i++,n++,o=!1,t=!0):9===e.src.charCodeAt(i)?(t=!0,(e.bsCount[p]+n)%4==3?(i++,n++,o=!1):o=!0):t=!1;let s=n;for(a.push(e.bMarks[p]),e.bMarks[p]=i;i=r,l.push(e.bsCount[p]),e.bsCount[p]=e.sCount[p]+1+(t?1:0),c.push(e.sCount[p]),e.sCount[p]=s-n,d.push(e.tShift[p]),e.tShift[p]=i-e.bMarks[p];continue}if(m)break;let n=!1;for(let t=0,i=u.length;t";const b=[t,0];f.map=b,e.md.block.tokenize(e,t,p),e.push("blockquote_close","blockquote",-1).markup=">",e.lineMax=s,e.parentType=h,b[1]=e.line;for(let o=0;o=4)return!1;let r=e.bMarks[t]+e.tShift[t];const s=e.src.charCodeAt(r++);if(42!==s&&45!==s&&95!==s)return!1;let a=1;for(;r=4)return!1;if(e.listIndent>=0&&e.sCount[l]-e.listIndent>=4&&e.sCount[l]=e.blkIndent&&(p=!0),(h=qF(e,l))>=0){if(d=!0,s=e.bMarks[l]+e.tShift[l],u=Number(e.src.slice(s,h-1)),p&&1!==u)return!1}else{if(!((h=jF(e,l))>=0))return!1;d=!1}if(p&&e.skipSpaces(h)>=e.eMarks[l])return!1;if(n)return!0;const m=e.src.charCodeAt(h-1),g=e.tokens.length;d?(a=e.push("ordered_list_open","ol",1),1!==u&&(a.attrs=[["start",u]])):a=e.push("bullet_list_open","ul",1);const f=[l,0];a.map=f,a.markup=String.fromCharCode(m);let b=!1;const k=e.md.block.ruler.getRules("list"),w=e.parentType;for(e.parentType="list";l=i?1:n-t,p>4&&(p=1);const g=t+p;a=e.push("list_item_open","li",1),a.markup=String.fromCharCode(m);const f=[l,0];a.map=f,d&&(a.info=e.src.slice(s,h-1));const w=e.tight,_=e.tShift[l],y=e.sCount[l],A=e.listIndent;if(e.listIndent=e.blkIndent,e.blkIndent=g,e.tight=!0,e.tShift[l]=u-e.bMarks[l],e.sCount[l]=n,u>=i&&e.isEmpty(l+1)?e.line=Math.min(e.line+2,o):e.md.block.tokenize(e,l,o,!0),e.tight&&!b||(c=!1),b=e.line-l>1&&e.isEmpty(e.line-1),e.blkIndent=e.listIndent,e.listIndent=A,e.tShift[l]=_,e.sCount[l]=y,e.tight=w,a=e.push("list_item_close","li",-1),a.markup=String.fromCharCode(m),l=e.line,f[1]=l,l>=o)break;if(e.sCount[l]=4)break;let C=!1;for(let t=0,n=k.length;t=4)return!1;if(91!==e.src.charCodeAt(i))return!1;function a(t){const o=e.lineMax;if(t>=o||e.isEmpty(t))return null;let n=!1;if(e.sCount[t]-e.blkIndent>3&&(n=!0),e.sCount[t]<0&&(n=!0),!n){const n=e.md.block.ruler.getRules("reference"),i=e.parentType;e.parentType="reference";let r=!1;for(let i=0,s=n.length;i=4)return!1;if(!e.md.options.html)return!1;if(60!==e.src.charCodeAt(i))return!1;let s=e.src.slice(i,r),a=0;for(;a=4)return!1;let s=e.src.charCodeAt(i);if(35!==s||i>=r)return!1;let a=1;for(s=e.src.charCodeAt(++i);35===s&&i6||ii&&nF(e.src.charCodeAt(l-1))&&(r=l),e.line=t+1;const c=e.push("heading_open","h"+String(a),1);c.markup="########".slice(0,a),c.map=[t,e.line];const d=e.push("inline","",0);return d.content=e.src.slice(i,r).trim(),d.map=[t,e.line],d.children=[],e.push("heading_close","h"+String(a),-1).markup="########".slice(0,a),!0},["paragraph","reference","blockquote"]],["lheading",function(e,t,o){const n=e.md.block.ruler.getRules("paragraph");if(e.sCount[t]-e.blkIndent>=4)return!1;const i=e.parentType;e.parentType="paragraph";let r,s=0,a=t+1;for(;a3)continue;if(e.sCount[a]>=e.blkIndent){let t=e.bMarks[a]+e.tShift[a];const o=e.eMarks[a];if(t=o))){s=61===r?1:2;break}}if(e.sCount[a]<0)continue;let t=!1;for(let i=0,r=n.length;i3)continue;if(e.sCount[r]<0)continue;let t=!1;for(let i=0,s=n.length;i=o))&&!(e.sCount[s]=r){e.line=o;break}const t=e.line;let l=!1;for(let r=0;r=e.line)throw new Error("block rule didn't increment state.line");break}if(!l)throw new Error("none of the block rules matched");e.tight=!a,e.isEmpty(e.line-1)&&(a=!0),s=e.line,s0&&(this.level++,this._prev_delimiters.push(this.delimiters),this.delimiters=[],i={delimiters:this.delimiters}),this.pendingLevel=this.level,this.tokens.push(n),this.tokens_meta.push(i),n},QF.prototype.scanDelims=function(e,t){const o=this.posMax,n=this.src.charCodeAt(e),i=e>0?this.src.charCodeAt(e-1):32;let r=e;for(;r?@[]^_`{|}~-".split("").forEach((function(e){oR[e.charCodeAt(0)]=1}));const iR={tokenize:function(e,t){const o=e.pos,n=e.src.charCodeAt(o);if(t)return!1;if(126!==n)return!1;const i=e.scanDelims(e.pos,!0);let r=i.length;const s=String.fromCharCode(n);if(r<2)return!1;let a;r%2&&(a=e.push("text","",0),a.content=s,r--);for(let t=0;t=0;o--){const n=t[o];if(95!==n.marker&&42!==n.marker)continue;if(-1===n.end)continue;const i=t[n.end],r=o>0&&t[o-1].end===n.end+1&&t[o-1].marker===n.marker&&t[o-1].token===n.token-1&&t[n.end+1].token===i.token+1,s=String.fromCharCode(n.marker),a=e.tokens[n.token];a.type=r?"strong_open":"em_open",a.tag=r?"strong":"em",a.nesting=1,a.markup=r?s+s:s,a.content="";const l=e.tokens[i.token];l.type=r?"strong_close":"em_close",l.tag=r?"strong":"em",l.nesting=-1,l.markup=r?s+s:s,l.content="",r&&(e.tokens[t[o-1].token].content="",e.tokens[t[n.end+1].token].content="",o--)}}const sR={tokenize:function(e,t){const o=e.pos,n=e.src.charCodeAt(o);if(t)return!1;if(95!==n&&42!==n)return!1;const i=e.scanDelims(e.pos,42===n);for(let t=0;t\x00-\x20]*)$/;const cR=/^&#((?:x[a-f0-9]{1,6}|[0-9]{1,7}));/i,dR=/^&([a-z][a-z0-9]{1,31});/i;function uR(e){const t={},o=e.length;if(!o)return;let n=0,i=-2;const r=[];for(let s=0;sa;l-=r[l]+1){const t=e[l];if(t.marker===o.marker&&(t.open&&t.end<0)){let n=!1;if((t.close||o.open)&&(t.length+o.length)%3==0&&(t.length%3==0&&o.length%3==0||(n=!0)),!n){const n=l>0&&!e[l-1].open?r[l-1]+1:0;r[s]=s-l+n,r[l]=n,o.open=!1,t.end=s,t.close=!1,c=-1,i=-2;break}}}-1!==c&&(t[o.marker][(o.open?3:0)+(o.length||0)%3]=c)}}const hR=[["text",function(e,t){let o=e.pos;for(;o0)return!1;const o=e.pos;if(o+3>e.posMax)return!1;if(58!==e.src.charCodeAt(o))return!1;if(47!==e.src.charCodeAt(o+1))return!1;if(47!==e.src.charCodeAt(o+2))return!1;const n=e.pending.match(tR);if(!n)return!1;const i=n[1],r=e.md.linkify.matchAtStart(e.src.slice(o-i.length));if(!r)return!1;let s=r.url;if(s.length<=i.length)return!1;s=s.replace(/\*+$/,"");const a=e.md.normalizeLink(s);if(!e.md.validateLink(a))return!1;if(!t){e.pending=e.pending.slice(0,-i.length);const t=e.push("link_open","a",1);t.attrs=[["href",a]],t.markup="linkify",t.info="auto";e.push("text","",0).content=e.md.normalizeLinkText(s);const o=e.push("link_close","a",-1);o.markup="linkify",o.info="auto"}return e.pos+=s.length-i.length,!0}],["newline",function(e,t){let o=e.pos;if(10!==e.src.charCodeAt(o))return!1;const n=e.pending.length-1,i=e.posMax;if(!t)if(n>=0&&32===e.pending.charCodeAt(n))if(n>=1&&32===e.pending.charCodeAt(n-1)){let t=n-1;for(;t>=1&&32===e.pending.charCodeAt(t-1);)t--;e.pending=e.pending.slice(0,t),e.push("hardbreak","br",0)}else e.pending=e.pending.slice(0,-1),e.push("softbreak","br",0);else e.push("softbreak","br",0);for(o++;o=n)return!1;let i=e.src.charCodeAt(o);if(10===i){for(t||e.push("hardbreak","br",0),o++;o=55296&&i<=56319&&o+1=56320&&t<=57343&&(r+=e.src[o+1],o++)}const s="\\"+r;if(!t){const t=e.push("text_special","",0);i<256&&0!==oR[i]?t.content=r:t.content=s,t.markup=s,t.info="escape"}return e.pos=o+1,!0}],["backticks",function(e,t){let o=e.pos;if(96!==e.src.charCodeAt(o))return!1;const n=o;o++;const i=e.posMax;for(;o=u)return!1;if(l=m,i=e.md.helpers.parseLinkDestination(e.src,m,e.posMax),i.ok){for(s=e.md.normalizeLink(i.str),e.md.validateLink(s)?m=i.pos:s="",l=m;m=u||41!==e.src.charCodeAt(m))&&(c=!0),m++}if(c){if(void 0===e.env.references)return!1;if(m=0?n=e.src.slice(l,m++):m=p+1):m=p+1,n||(n=e.src.slice(h,p)),r=e.env.references[aF(n)],!r)return e.pos=d,!1;s=r.href,a=r.title}if(!t){e.pos=h,e.posMax=p;const t=[["href",s]];e.push("link_open","a",1).attrs=t,a&&t.push(["title",a]),e.linkLevel++,e.md.inline.tokenize(e),e.linkLevel--,e.push("link_close","a",-1)}return e.pos=m,e.posMax=u,!0}],["image",function(e,t){let o,n,i,r,s,a,l,c,d="";const u=e.pos,h=e.posMax;if(33!==e.src.charCodeAt(e.pos))return!1;if(91!==e.src.charCodeAt(e.pos+1))return!1;const p=e.pos+2,m=e.md.helpers.parseLinkLabel(e,e.pos+1,!1);if(m<0)return!1;if(r=m+1,r=h)return!1;for(c=r,a=e.md.helpers.parseLinkDestination(e.src,r,e.posMax),a.ok&&(d=e.md.normalizeLink(a.str),e.md.validateLink(d)?r=a.pos:d=""),c=r;r=h||41!==e.src.charCodeAt(r))return e.pos=u,!1;r++}else{if(void 0===e.env.references)return!1;if(r=0?i=e.src.slice(c,r++):r=m+1):r=m+1,i||(i=e.src.slice(p,m)),s=e.env.references[aF(i)],!s)return e.pos=u,!1;d=s.href,l=s.title}if(!t){n=e.src.slice(p,m);const t=[];e.md.inline.parse(n,e.md,e.env,t);const o=e.push("image","img",0),i=[["src",d],["alt",""]];o.attrs=i,o.children=t,o.content=n,l&&i.push(["title",l])}return e.pos=r,e.posMax=h,!0}],["autolink",function(e,t){let o=e.pos;if(60!==e.src.charCodeAt(o))return!1;const n=e.pos,i=e.posMax;for(;;){if(++o>=i)return!1;const t=e.src.charCodeAt(o);if(60===t)return!1;if(62===t)break}const r=e.src.slice(n+1,o);if(lR.test(r)){const o=e.md.normalizeLink(r);if(!e.md.validateLink(o))return!1;if(!t){const t=e.push("link_open","a",1);t.attrs=[["href",o]],t.markup="autolink",t.info="auto";e.push("text","",0).content=e.md.normalizeLinkText(r);const n=e.push("link_close","a",-1);n.markup="autolink",n.info="auto"}return e.pos+=r.length+2,!0}if(aR.test(r)){const o=e.md.normalizeLink("mailto:"+r);if(!e.md.validateLink(o))return!1;if(!t){const t=e.push("link_open","a",1);t.attrs=[["href",o]],t.markup="autolink",t.info="auto";e.push("text","",0).content=e.md.normalizeLinkText(r);const n=e.push("link_close","a",-1);n.markup="autolink",n.info="auto"}return e.pos+=r.length+2,!0}return!1}],["html_inline",function(e,t){if(!e.md.options.html)return!1;const o=e.posMax,n=e.pos;if(60!==e.src.charCodeAt(n)||n+2>=o)return!1;const i=e.src.charCodeAt(n+1);if(33!==i&&63!==i&&47!==i&&!function(e){const t=32|e;return t>=97&&t<=122}(i))return!1;const r=e.src.slice(n).match(WF);if(!r)return!1;if(!t){const t=e.push("html_inline","",0);t.content=r[0],s=t.content,/^\s]/i.test(s)&&e.linkLevel++,function(e){return/^<\/a\s*>/i.test(e)}(t.content)&&e.linkLevel--}var s;return e.pos+=r[0].length,!0}],["entity",function(e,t){const o=e.pos,n=e.posMax;if(38!==e.src.charCodeAt(o))return!1;if(o+1>=n)return!1;if(35===e.src.charCodeAt(o+1)){const n=e.src.slice(o).match(cR);if(n){if(!t){const t="x"===n[1][0].toLowerCase()?parseInt(n[1].slice(1),16):parseInt(n[1],10),o=e.push("text_special","",0);o.content=qP(t)?$P(t):$P(65533),o.markup=n[0],o.info="entity"}return e.pos+=n[0].length,!0}}else{const n=e.src.slice(o).match(dR);if(n){const o=PP(n[0]);if(o!==n[0]){if(!t){const t=e.push("text_special","",0);t.content=o,t.markup=n[0],t.info="entity"}return e.pos+=n[0].length,!0}}}return!1}]],pR=[["balance_pairs",function(e){const t=e.tokens_meta,o=e.tokens_meta.length;uR(e.delimiters);for(let e=0;e0&&n++,"text"===i[t].type&&t+1=e.pos)throw new Error("inline rule didn't increment state.pos");break}}else e.pos=e.posMax;s||e.pos++,r[t]=e.pos},mR.prototype.tokenize=function(e){const t=this.ruler.getRules(""),o=t.length,n=e.posMax,i=e.md.options.maxNesting;for(;e.pos=e.pos)throw new Error("inline rule didn't increment state.pos");break}if(s){if(e.pos>=n)break}else e.pending+=e.src[e.pos++]}e.pending&&e.pushPending()},mR.prototype.parse=function(e,t,o,n){const i=new this.State(e,t,o,n);this.tokenize(i);const r=this.ruler2.getRules(""),s=r.length;for(let e=0;e=3&&":"===e[t-3]||t>=3&&"/"===e[t-3]?0:n.match(o.re.no_http)[0].length:0}},"mailto:":{validate:function(e,t,o){const n=e.slice(t);return o.re.mailto||(o.re.mailto=new RegExp("^"+o.re.src_email_name+"@"+o.re.src_host_strict,"i")),o.re.mailto.test(n)?n.match(o.re.mailto)[0].length:0}}},AR="biz|com|edu|gov|net|org|pro|web|xxx|aero|asia|coop|info|museum|name|shop|рф".split("|");function CR(e){const t=e.re=function(e){const t={};e=e||{},t.src_Any=uP.source,t.src_Cc=hP.source,t.src_Z=mP.source,t.src_P=cP.source,t.src_ZPCc=[t.src_Z,t.src_P,t.src_Cc].join("|"),t.src_ZCc=[t.src_Z,t.src_Cc].join("|");const o="[><|]";return t.src_pseudo_letter="(?:(?![><|]|"+t.src_ZPCc+")"+t.src_Any+")",t.src_ip4="(?:(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)",t.src_auth="(?:(?:(?!"+t.src_ZCc+"|[@/\\[\\]()]).)+@)?",t.src_port="(?::(?:6(?:[0-4]\\d{3}|5(?:[0-4]\\d{2}|5(?:[0-2]\\d|3[0-5])))|[1-5]?\\d{1,4}))?",t.src_host_terminator="(?=$|[><|]|"+t.src_ZPCc+")(?!"+(e["---"]?"-(?!--)|":"-|")+"_|:\\d|\\.-|\\.(?!$|"+t.src_ZPCc+"))",t.src_path="(?:[/?#](?:(?!"+t.src_ZCc+"|"+o+"|[()[\\]{}.,\"'?!\\-;]).|\\[(?:(?!"+t.src_ZCc+"|\\]).)*\\]|\\((?:(?!"+t.src_ZCc+"|[)]).)*\\)|\\{(?:(?!"+t.src_ZCc+'|[}]).)*\\}|\\"(?:(?!'+t.src_ZCc+'|["]).)+\\"|\\\'(?:(?!'+t.src_ZCc+"|[']).)+\\'|\\'(?="+t.src_pseudo_letter+"|[-])|\\.{2,}[a-zA-Z0-9%/&]|\\.(?!"+t.src_ZCc+"|[.]|$)|"+(e["---"]?"\\-(?!--(?:[^-]|$))(?:-*)|":"\\-+|")+",(?!"+t.src_ZCc+"|$)|;(?!"+t.src_ZCc+"|$)|\\!+(?!"+t.src_ZCc+"|[!]|$)|\\?(?!"+t.src_ZCc+"|[?]|$))+|\\/)?",t.src_email_name='[\\-;:&=\\+\\$,\\.a-zA-Z0-9_][\\-;:&=\\+\\$,\\"\\.a-zA-Z0-9_]*',t.src_xn="xn--[a-z0-9\\-]{1,59}",t.src_domain_root="(?:"+t.src_xn+"|"+t.src_pseudo_letter+"{1,63})",t.src_domain="(?:"+t.src_xn+"|(?:"+t.src_pseudo_letter+")|(?:"+t.src_pseudo_letter+"(?:-|"+t.src_pseudo_letter+"){0,61}"+t.src_pseudo_letter+"))",t.src_host="(?:(?:(?:(?:"+t.src_domain+")\\.)*"+t.src_domain+"))",t.tpl_host_fuzzy="(?:"+t.src_ip4+"|(?:(?:(?:"+t.src_domain+")\\.)+(?:%TLDS%)))",t.tpl_host_no_ip_fuzzy="(?:(?:(?:"+t.src_domain+")\\.)+(?:%TLDS%))",t.src_host_strict=t.src_host+t.src_host_terminator,t.tpl_host_fuzzy_strict=t.tpl_host_fuzzy+t.src_host_terminator,t.src_host_port_strict=t.src_host+t.src_port+t.src_host_terminator,t.tpl_host_port_fuzzy_strict=t.tpl_host_fuzzy+t.src_port+t.src_host_terminator,t.tpl_host_port_no_ip_fuzzy_strict=t.tpl_host_no_ip_fuzzy+t.src_port+t.src_host_terminator,t.tpl_host_fuzzy_test="localhost|www\\.|\\.\\d{1,3}\\.|(?:\\.(?:%TLDS%)(?:"+t.src_ZPCc+"|>|$))",t.tpl_email_fuzzy='(^|[><|]|"|\\(|'+t.src_ZCc+")("+t.src_email_name+"@"+t.tpl_host_fuzzy_strict+")",t.tpl_link_fuzzy="(^|(?![.:/\\-_@])(?:[$+<=>^`||]|"+t.src_ZPCc+"))((?![$+<=>^`||])"+t.tpl_host_port_fuzzy_strict+t.src_path+")",t.tpl_link_no_ip_fuzzy="(^|(?![.:/\\-_@])(?:[$+<=>^`||]|"+t.src_ZPCc+"))((?![$+<=>^`||])"+t.tpl_host_port_no_ip_fuzzy_strict+t.src_path+")",t}(e.__opts__),o=e.__tlds__.slice();function n(e){return e.replace("%TLDS%",t.src_tlds)}e.onCompile(),e.__tlds_replaced__||o.push("a[cdefgilmnoqrstuwxz]|b[abdefghijmnorstvwyz]|c[acdfghiklmnoruvwxyz]|d[ejkmoz]|e[cegrstu]|f[ijkmor]|g[abdefghilmnpqrstuwy]|h[kmnrtu]|i[delmnoqrst]|j[emop]|k[eghimnprwyz]|l[abcikrstuvy]|m[acdeghklmnopqrstuvwxyz]|n[acefgilopruz]|om|p[aefghklmnrstwy]|qa|r[eosuw]|s[abcdeghijklmnortuvxyz]|t[cdfghjklmnortvwz]|u[agksyz]|v[aceginu]|w[fs]|y[et]|z[amw]"),o.push(t.src_xn),t.src_tlds=o.join("|"),t.email_fuzzy=RegExp(n(t.tpl_email_fuzzy),"i"),t.link_fuzzy=RegExp(n(t.tpl_link_fuzzy),"i"),t.link_no_ip_fuzzy=RegExp(n(t.tpl_link_no_ip_fuzzy),"i"),t.host_fuzzy_test=RegExp(n(t.tpl_host_fuzzy_test),"i");const i=[];function r(e,t){throw new Error('(LinkifyIt) Invalid schema "'+e+'": '+t)}e.__compiled__={},Object.keys(e.__schemas__).forEach((function(t){const o=e.__schemas__[t];if(null===o)return;const n={validate:null,link:null};if(e.__compiled__[t]=n,"[object Object]"===bR(o))return!function(e){return"[object RegExp]"===bR(e)}(o.validate)?kR(o.validate)?n.validate=o.validate:r(t,o):n.validate=function(e){return function(t,o){const n=t.slice(o);return e.test(n)?n.match(e)[0].length:0}}(o.validate),void(kR(o.normalize)?n.normalize=o.normalize:o.normalize?r(t,o):n.normalize=function(e,t){t.normalize(e)});!function(e){return"[object String]"===bR(e)}(o)?r(t,o):i.push(t)})),i.forEach((function(t){e.__compiled__[e.__schemas__[t]]&&(e.__compiled__[t].validate=e.__compiled__[e.__schemas__[t]].validate,e.__compiled__[t].normalize=e.__compiled__[e.__schemas__[t]].normalize)})),e.__compiled__[""]={validate:null,normalize:function(e,t){t.normalize(e)}};const s=Object.keys(e.__compiled__).filter((function(t){return t.length>0&&e.__compiled__[t]})).map(wR).join("|");e.re.schema_test=RegExp("(^|(?!_)(?:[><|]|"+t.src_ZPCc+"))("+s+")","i"),e.re.schema_search=RegExp("(^|(?!_)(?:[><|]|"+t.src_ZPCc+"))("+s+")","ig"),e.re.schema_at_start=RegExp("^"+e.re.schema_search.source,"i"),e.re.pretest=RegExp("("+e.re.schema_test.source+")|("+e.re.host_fuzzy_test.source+")|@","i"),function(e){e.__index__=-1,e.__text_cache__=""}(e)}function vR(e,t){const o=e.__index__,n=e.__last_index__,i=e.__text_cache__.slice(o,n);this.schema=e.__schema__.toLowerCase(),this.index=o+t,this.lastIndex=n+t,this.raw=i,this.text=i,this.url=i}function xR(e,t){const o=new vR(e,t);return e.__compiled__[o.schema].normalize(o,e),o}function ER(e,t){if(!(this instanceof ER))return new ER(e,t);var o;t||(o=e,Object.keys(o||{}).reduce((function(e,t){return e||_R.hasOwnProperty(t)}),!1)&&(t=e,e={})),this.__opts__=fR({},_R,t),this.__index__=-1,this.__last_index__=-1,this.__schema__="",this.__text_cache__="",this.__schemas__=fR({},yR,e),this.__compiled__={},this.__tlds__=AR,this.__tlds_replaced__=!1,this.re={},CR(this)}ER.prototype.add=function(e,t){return this.__schemas__[e]=t,CR(this),this},ER.prototype.set=function(e){return this.__opts__=fR(this.__opts__,e),this},ER.prototype.test=function(e){if(this.__text_cache__=e,this.__index__=-1,!e.length)return!1;let t,o,n,i,r,s,a,l,c;if(this.re.schema_test.test(e))for(a=this.re.schema_search,a.lastIndex=0;null!==(t=a.exec(e));)if(i=this.testSchemaAt(e,t[2],a.lastIndex),i){this.__schema__=t[2],this.__index__=t.index+t[1].length,this.__last_index__=t.index+t[0].length+i;break}return this.__opts__.fuzzyLink&&this.__compiled__["http:"]&&(l=e.search(this.re.host_fuzzy_test),l>=0&&(this.__index__<0||l=0&&null!==(n=e.match(this.re.email_fuzzy))&&(r=n.index+n[1].length,s=n.index+n[0].length,(this.__index__<0||rthis.__last_index__)&&(this.__schema__="mailto:",this.__index__=r,this.__last_index__=s))),this.__index__>=0},ER.prototype.pretest=function(e){return this.re.pretest.test(e)},ER.prototype.testSchemaAt=function(e,t,o){return this.__compiled__[t.toLowerCase()]?this.__compiled__[t.toLowerCase()].validate(e,o,this):0},ER.prototype.match=function(e){const t=[];let o=0;this.__index__>=0&&this.__text_cache__===e&&(t.push(xR(this,o)),o=this.__last_index__);let n=o?e.slice(o):e;for(;this.test(n);)t.push(xR(this,o)),n=n.slice(this.__last_index__),o+=this.__last_index__;return t.length?t:null},ER.prototype.matchAtStart=function(e){if(this.__text_cache__=e,this.__index__=-1,!e.length)return null;const t=this.re.schema_at_start.exec(e);if(!t)return null;const o=this.testSchemaAt(e,t[2],t[0].length);return o?(this.__schema__=t[2],this.__index__=t.index+t[1].length,this.__last_index__=t.index+t[0].length+o,xR(this,0)):null},ER.prototype.tlds=function(e,t){return e=Array.isArray(e)?e:[e],t?(this.__tlds__=this.__tlds__.concat(e).sort().filter((function(e,t,o){return e!==o[t-1]})).reverse(),CR(this),this):(this.__tlds__=e.slice(),this.__tlds_replaced__=!0,CR(this),this)},ER.prototype.normalize=function(e){e.schema||(e.url="http://"+e.url),"mailto:"!==e.schema||/^mailto:/i.test(e.url)||(e.url="mailto:"+e.url)},ER.prototype.onCompile=function(){};const DR=ER,BR=2147483647,SR=36,TR=/^xn--/,IR=/[^\0-\x7F]/,PR=/[\x2E\u3002\uFF0E\uFF61]/g,FR={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},RR=Math.floor,MR=String.fromCharCode;function zR(e){throw new RangeError(FR[e])}function OR(e,t){const o=e.split("@");let n="";o.length>1&&(n=o[0]+"@",e=o[1]);const i=function(e,t){const o=[];let n=e.length;for(;n--;)o[n]=t(e[n]);return o}((e=e.replace(PR,".")).split("."),t).join(".");return n+i}function NR(e){const t=[];let o=0;const n=e.length;for(;o=55296&&i<=56319&&o>1,e+=RR(e/t);e>455;n+=SR)e=RR(e/35);return RR(n+36*e/(e+38))},HR=function(e){const t=[],o=e.length;let n=0,i=128,r=72,s=e.lastIndexOf("-");s<0&&(s=0);for(let o=0;o=128&&zR("not-basic"),t.push(e.charCodeAt(o));for(let l=s>0?s+1:0;l=o&&zR("invalid-input");const s=(a=e.charCodeAt(l++))>=48&&a<58?a-48+26:a>=65&&a<91?a-65:a>=97&&a<123?a-97:SR;s>=SR&&zR("invalid-input"),s>RR((BR-n)/t)&&zR("overflow"),n+=s*t;const c=i<=r?1:i>=r+26?26:i-r;if(sRR(BR/d)&&zR("overflow"),t*=d}const c=t.length+1;r=LR(n-s,c,0==s),RR(n/c)>BR-i&&zR("overflow"),i+=RR(n/c),n%=c,t.splice(n++,0,i)}var a;return String.fromCodePoint(...t)},jR=function(e){const t=[],o=(e=NR(e)).length;let n=128,i=0,r=72;for(const o of e)o<128&&t.push(MR(o));const s=t.length;let a=s;for(s&&t.push("-");a=n&&tRR((BR-i)/l)&&zR("overflow"),i+=(o-n)*l,n=o;for(const o of e)if(oBR&&zR("overflow"),o===n){let e=i;for(let o=SR;;o+=SR){const n=o<=r?1:o>=r+26?26:o-r;if(eString.fromCodePoint(...e)},decode:HR,encode:jR,toASCII:function(e){return OR(e,(function(e){return IR.test(e)?"xn--"+jR(e):e}))},toUnicode:function(e){return OR(e,(function(e){return TR.test(e)?HR(e.slice(4).toLowerCase()):e}))}},$R=qR,UR={default:{options:{html:!1,xhtmlOut:!1,breaks:!1,langPrefix:"language-",linkify:!1,typographer:!1,quotes:"“”‘’",highlight:null,maxNesting:100},components:{core:{},block:{},inline:{}}},zero:{options:{html:!1,xhtmlOut:!1,breaks:!1,langPrefix:"language-",linkify:!1,typographer:!1,quotes:"“”‘’",highlight:null,maxNesting:20},components:{core:{rules:["normalize","block","inline","text_join"]},block:{rules:["paragraph"]},inline:{rules:["text"],rules2:["balance_pairs","fragments_join"]}}},commonmark:{options:{html:!0,xhtmlOut:!0,breaks:!1,langPrefix:"language-",linkify:!1,typographer:!1,quotes:"“”‘’",highlight:null,maxNesting:20},components:{core:{rules:["normalize","block","inline","text_join"]},block:{rules:["blockquote","code","fence","heading","hr","html_block","lheading","list","reference","paragraph"]},inline:{rules:["autolink","backticks","emphasis","entity","escape","html_inline","image","link","newline","text"],rules2:["balance_pairs","emphasis","fragments_join"]}}}},WR=/^(vbscript|javascript|file|data):/,GR=/^data:image\/(gif|png|jpeg|webp);/;function KR(e){const t=e.trim().toLowerCase();return!WR.test(t)||GR.test(t)}const ZR=["http:","https:","mailto:"];function JR(e){const t=lP(e,!0);if(t.hostname&&(!t.protocol||ZR.indexOf(t.protocol)>=0))try{t.hostname=$R.toASCII(t.hostname)}catch(e){}return KI(ZI(t))}function YR(e){const t=lP(e,!0);if(t.hostname&&(!t.protocol||ZR.indexOf(t.protocol)>=0))try{t.hostname=$R.toUnicode(t.hostname)}catch(e){}return UI(ZI(t),UI.defaultChars+"%")}function QR(e,t){if(!(this instanceof QR))return new QR(e,t);t||NP(e)||(t=e||{},e="default"),this.inline=new gR,this.block=new YF,this.core=new OF,this.renderer=new mF,this.linkify=new DR,this.validateLink=KR,this.normalizeLink=JR,this.normalizeLinkText=YR,this.utils=o,this.helpers=HP({},n),this.options={},this.configure(e),t&&this.set(t)}QR.prototype.set=function(e){return HP(this.options,e),this},QR.prototype.configure=function(e){const t=this;if(NP(e)){const t=e;if(!(e=UR[t]))throw new Error('Wrong `markdown-it` preset "'+t+'", check name')}if(!e)throw new Error("Wrong `markdown-it` preset, can't be empty");return e.options&&t.set(e.options),e.components&&Object.keys(e.components).forEach((function(o){e.components[o].rules&&t[o].ruler.enableOnly(e.components[o].rules),e.components[o].rules2&&t[o].ruler2.enableOnly(e.components[o].rules2)})),this},QR.prototype.enable=function(e,t){let o=[];Array.isArray(e)||(e=[e]),["core","block","inline"].forEach((function(t){o=o.concat(this[t].ruler.enable(e,!0))}),this),o=o.concat(this.inline.ruler2.enable(e,!0));const n=e.filter((function(e){return o.indexOf(e)<0}));if(n.length&&!t)throw new Error("MarkdownIt. Failed to enable unknown rule(s): "+n);return this},QR.prototype.disable=function(e,t){let o=[];Array.isArray(e)||(e=[e]),["core","block","inline"].forEach((function(t){o=o.concat(this[t].ruler.disable(e,!0))}),this),o=o.concat(this.inline.ruler2.disable(e,!0));const n=e.filter((function(e){return o.indexOf(e)<0}));if(n.length&&!t)throw new Error("MarkdownIt. Failed to disable unknown rule(s): "+n);return this},QR.prototype.use=function(e){const t=[this].concat(Array.prototype.slice.call(arguments,1));return e.apply(e,t),this},QR.prototype.parse=function(e,t){if("string"!=typeof e)throw new Error("Input data should be a String");const o=new this.core.State(e,this,t);return this.core.process(o),o.tokens},QR.prototype.render=function(e,t){return t=t||{},this.renderer.render(this.parse(e,t),this.options,t)},QR.prototype.parseInline=function(e,t){const o=new this.core.State(e,this,t);return o.inlineMode=!0,this.core.process(o),o.tokens},QR.prototype.renderInline=function(e,t){return t=t||{},this.renderer.render(this.parseInline(e,t),this.options,t)};const XR=QR;var eM=i(9428),tM=i.n(eM);class oM{constructor(e){this._htmlDP=new Sd(e),this._domConverter=new Ua(e)}toView(e){const t=XR({html:!0,breaks:!0,langPrefix:"language-"});let o=t.use(tM(),{label:!0});const n=o.renderer.rules.code_block;t.renderer.rules.code_block=function(e,t,o,i,r){return e[t].content=e[t].content.replace(/\n$/,""),n(e,t,o,i,r)};const i=o.render(e),r=this._htmlDP._toDom(i);!function(e){let t,o=document.createNodeIterator(e,NodeFilter.SHOW_TEXT);for(;t=o.nextNode();)t.previousElementSibling&&t.previousElementSibling.classList.contains("task-list-item-checkbox")&&(t.textContent=t.textContent.replace(/^\s+/,""))}(r),function(e){let t,o=document.createNodeIterator(e,NodeFilter.SHOW_ELEMENT,{acceptNode:function(e){if("BR"===e.tagName&&!e.parentElement)return NodeFilter.FILTER_ACCEPT}}),n=[];for(;t=o.nextNode();)n.push(t);for(const t of n){const o=document.createElement("p");e.insertBefore(o,t),jI(t)?o.appendChild(t):t.remove()}}(r),function(e){const t=document.createNodeIterator(e,NodeFilter.SHOW_ELEMENT,{acceptNode:function(e){if("P"===e.tagName&&e.parentElement&&"TD"===e.parentElement.tagName&&1===e.childNodes.length&&"BR"===e.childNodes[0].nodeName)return NodeFilter.FILTER_ACCEPT}});let o;for(;o=t.nextNode();)o.childNodes[0].remove()}(r),function(e){const t=document.createNodeIterator(e,NodeFilter.SHOW_ELEMENT,{acceptNode:function(e){if("BR"===e.tagName&&e.parentElement&&"LI"===e.parentElement.tagName)return NodeFilter.FILTER_ACCEPT}});let o,n=[];for(;o=t.nextNode();)n.push(o);for(const e of n)e.parentElement.insertBefore(document.createElement("p"),e),e.remove()}(r),r.querySelectorAll("input.task-list-item-checkbox").forEach((e=>{const t=e.closest("li.task-list-item");t&&e.parentElement!==t&&(e.parentElement&&e.parentElement.removeChild(e),t.insertBefore(e,t.firstChild))}));return this._domConverter.domToView(r)}toData(e){const t=this._domConverter.viewToDom(e,document);!function(e,t,o){t=t.map((e=>e.toUpperCase())),o=o.map((e=>e.toUpperCase()));let n,i=document.createNodeIterator(e,NodeFilter.SHOW_TEXT);for(;n=i.nextNode();)n.parentElement&&t.indexOf(n.parentElement.nodeName)>=0&&(n.nodeValue=n.nodeValue.replace(/^[\u00a0]+/g," ").replace(/[\u00a0]+$/g," ")),LI(n,o)||(n.nodeValue=_.escape(n.nodeValue))}(t,["strong","em"],["pre","code","table"]),function(e){let t,o=document.createNodeIterator(e,NodeFilter.SHOW_ELEMENT,(function(e){return"a"===e.nodeName.toLowerCase()?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_REJECT}));for(;t=o.nextNode();)t.setAttribute("href",t.href)}(t),function(e){let t,o=document.createNodeIterator(e,NodeFilter.SHOW_ELEMENT,{acceptNode:function(e){if("P"===e.tagName&&0===e.childNodes.length&&(!e.parentElement||"LI"===e.parentElement.tagName))return NodeFilter.FILTER_ACCEPT}});for(;t=o.nextNode();)t.appendChild(document.createElement("br"))}(t);const o=new VI({headingStyle:"atx",codeBlockStyle:"fenced",blankReplacement:function(e,t){if("CODE"===t.tagName){const e=(t.getAttribute("class")||"").replace("language-",""),o=t.textContent||"";return"```"+e+"\n"+(o.length?o:"\n")+"```\n"}return"PRE"===t.tagName?e:t.isBlock?"\n\n":""}});return o.use([nI]),o.addRule("taskListItems",{filter:function(e){const t="checkbox"===e.type,o=e.parentNode&&"LI"===e.parentNode.nodeName,n=e.parentNode&&e.parentNode.parentNode&&"LI"===e.parentNode.parentNode.nodeName;return t&&(o||n)},replacement:function(e,t){return(t.checked?"[x]":"[ ]")+" "}}),o.addRule("orderedListItems",{filter:function(e){return"LI"===e.nodeName&&!!e.closest("ol")},replacement:function(e,t,o){e=e.replace(/^\n+/,"").replace(/\n+$/,"\n");var n=t.parentNode,i=o.bulletListMarker+" ";if("OL"===n.nodeName){var r=n.getAttribute("start"),s=Array.prototype.indexOf.call(n.children,t);i=(r?Number(r)+s:s+1)+". "}var a=i.length,l=" ".repeat(a);return i+(e=e.replace(/\n/gm,"\n"+l))+(t.nextSibling&&!/\n$/.test(e)?"\n":"")}}),o.addRule("imageFigure",{filter:"img",replacement:function(e,t){const o=t.parentElement;return o&&o.classList.contains("op-uc-figure--content")?o.parentElement.outerHTML:t.outerHTML}}),o.addRule("figcaption",{filter:"figcaption",replacement:function(e,t){return""}}),o.addRule("markdownTables",{filter:function(e){return"TABLE"===e.nodeName&&(!e.parentElement||"FIGURE"!==e.parentElement.nodeName)},replacement:function(e,t){return t.outerHTML}}),o.addRule("htmlTables",{filter:function(e){const t=e.getElementsByTagName("table");return"FIGURE"===e.nodeName&&t.length},replacement:function(e,t){return t.querySelectorAll("td br[data-cke-filler]").forEach((e=>{e.nextElementSibling&&e.removeAttribute("data-cke-filler")})),t.outerHTML}}),o.addRule("strikethrough",{filter:["del","s","strike"],replacement:function(e){return"~~"+e+"~~"}}),o.addRule("openProjectMacros",{filter:["macro"],replacement:(e,t)=>{t.innerHTML="";return t.outerHTML.replace("","\n")}}),o.addRule("mentions",{filter:e=>"MENTION"===e.nodeName&&e.classList.contains("mention"),replacement:(e,t)=>t.outerHTML}),o.addRule("emptyParagraphs",{filter:e=>"P"===e.nodeName&&(0===e.childNodes.length||1===e.childNodes.length&&"BR"===e.childNodes[0].nodeName),replacement:(e,t)=>t.parentElement||t.nextSibling||t.previousSibling?1===t.childNodes.length&&jI(t.childNodes[0])?HI+"\n\n":"
    \n\n":""}),o.addRule("openProjectPageBreak",{filter:e=>"DIV"===e.nodeName&&e.classList.contains("page-break"),replacement:(e,t)=>HI}),o.turndown(t).replace(/\u00A0/," ").replace("###turndown-ignore###\n","")}}const nM='\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n image/svg+xml\n \n \n \n \n \n\n';const iM={"(":")","[":"]","{":"}"};class rM extends wr{constructor(e){super(e),this._isEnabledBasedOnSelection=!1}refresh(){const e=this.editor.model,t=e.document;this.isEnabled=e.schema.checkAttributeInSelection(t.selection,"mention")}execute(e){const t=this.editor.model,o=t.document.selection,n="string"==typeof e.mention?{id:e.mention}:e.mention,i=n.id,r=e.range||o.getFirstRange();if(!t.canEditAt(r))return;const s=e.text||i,a=aM({_text:s,id:i},n);if(!i.startsWith(e.marker))throw new S("mentioncommand-incorrect-id",this);t.change((e=>{const n=lr(o.getAttributes()),i=new Map(n.entries());i.set("mention",a);const l=t.insertContent(e.createText(s,i),r),c=l.start.nodeBefore,d=l.end.nodeAfter,u=d&&d.is("$text")&&d.data.startsWith(" ");let h=!1;if(c&&d&&c.is("$text")&&d.is("$text")){const e=c.data.slice(-1),t=e in iM,o=t&&d.data.startsWith(iM[e]);h=t&&o}h||u||t.insertContent(e.createText(" ",n),r.start.getShiftedBy(s.length))}))}}class sM extends br{static get pluginName(){return"MentionEditing"}static get isOfficialPlugin(){return!0}init(){const e=this.editor,t=e.model,o=t.document;t.schema.extend("$text",{allowAttributes:"mention"}),e.conversion.for("upcast").elementToAttribute({view:{name:"span",attributes:"data-mention",classes:"mention"},model:{key:"mention",value:e=>lM(e)}}),e.conversion.for("downcast").attributeToElement({model:"mention",view:dM}),e.conversion.for("downcast").add(cM),o.registerPostFixer((e=>function(e,t,o){const n=t.differ.getChanges();let i=!1;for(const t of n){if("attribute"==t.type)continue;const n=t.position;if("$text"==t.name){const t=n.textNode&&n.textNode.nextSibling;i=hM(n.textNode,e)||i,i=hM(t,e)||i,i=hM(n.nodeBefore,e)||i,i=hM(n.nodeAfter,e)||i}if("$text"!=t.name&&"insert"==t.type){const t=n.nodeAfter;for(const o of e.createRangeIn(t).getItems())i=hM(o,e)||i}if("insert"==t.type&&o.isInline(t.name)){const t=n.nodeAfter&&n.nodeAfter.nextSibling;i=hM(n.nodeBefore,e)||i,i=hM(t,e)||i}}return i}(e,o,t.schema))),o.registerPostFixer((e=>function(e,t){const o=t.differ.getChanges();let n=!1;for(const t of o)if("attribute"===t.type&&"mention"!=t.attributeKey){const o=t.range.start.nodeBefore,i=t.range.end.nodeAfter;for(const r of[o,i])uM(r)&&r.getAttribute(t.attributeKey)!=t.attributeNewValue&&(e.setAttribute(t.attributeKey,t.attributeNewValue,r),n=!0)}return n}(e,o))),o.registerPostFixer((e=>function(e,t){const o=t.selection,n=o.focus;if(o.isCollapsed&&o.hasAttribute("mention")&&function(e){const t=e.isAtStart;return e.nodeBefore&&e.nodeBefore.is("$text")||t}(n))return e.removeSelectionAttribute("mention"),!0;return!1}(e,o))),e.commands.add("mention",new rM(e))}}function aM(e,t){return Object.assign({uid:E()},e,t||{})}function lM(e,t){const o=e.getAttribute("data-mention"),n=e.getChild(0);if(!n)return;return aM({id:o,_text:n.data},t)}function cM(e){e.on("attribute:mention",((e,t,o)=>{const n=t.attributeNewValue;if(!t.item.is("$textProxy")||!n)return;const i=t.range.start;(i.textNode||i.nodeAfter).data!=n._text&&o.consumable.consume(t.item,e.name)}),{priority:"highest"})}function dM(e,{writer:t}){if(!e)return;const o={class:"mention","data-mention":e.id},n={id:e.uid,priority:20};return t.createAttributeElement("span",o,n)}function uM(e){if(!e||!e.is("$text")&&!e.is("$textProxy")||!e.hasAttribute("mention"))return!1;return e.data!=e.getAttribute("mention")._text}function hM(e,t){return!!uM(e)&&(t.removeAttribute("mention",e),!0)}var pM=i(7216),mM={attributes:{"data-cke":!0}};mM.setAttributes=Xr(),mM.insert=Yr().bind(null,"head"),mM.domAPI=Zr(),mM.insertStyleElement=ts();Gr()(pM.A,mM);pM.A&&pM.A.locals&&pM.A.locals;class gM extends Mg{constructor(e){super(e),this.extendTemplate({attributes:{class:["ck-mentions"],tabindex:"-1"}})}selectFirst(){this.select(0)}selectNext(){const e=this.selected,t=this.items.getIndex(e);this.select(t+1)}selectPrevious(){const e=this.selected,t=this.items.getIndex(e);this.select(t-1)}select(e){let t=0;e>0&&e{o?(this.domElement.classList.add("ck-on"),this.domElement.classList.remove("ck-off")):(this.domElement.classList.add("ck-off"),this.domElement.classList.remove("ck-on"))})),this.listenTo(this.domElement,"click",(()=>{this.fire("execute")}))}render(){super.render(),this.element=this.domElement}focus(){this.domElement.focus()}}class bM extends Tg{highlight(){this.children.first.isOn=!0}removeHighlight(){this.children.first.isOn=!1}}const kM=[Ai.arrowup,Ai.arrowdown,Ai.esc],wM=[Ai.enter,Ai.tab];class _M extends br{static get pluginName(){return"MentionUI"}static get isOfficialPlugin(){return!0}static get requires(){return[kk]}constructor(e){super(e),this._items=new tr,this._mentionsView=this._createMentionView(),this._mentionsConfigurations=new Map,this._requestFeedDebounced=bl(this._requestFeed,100),e.config.define("mention",{feeds:[]})}init(){const e=this.editor,t=e.config.get("mention.commitKeys")||wM,o=kM.concat(t);this._balloon=e.plugins.get(kk),e.editing.view.document.on("keydown",((e,n)=>{var i;i=n.keyCode,o.includes(i)&&this._isUIVisible&&(n.preventDefault(),e.stop(),n.keyCode==Ai.arrowdown&&this._mentionsView.selectNext(),n.keyCode==Ai.arrowup&&this._mentionsView.selectPrevious(),t.includes(n.keyCode)&&this._mentionsView.executeSelected(),n.keyCode==Ai.esc&&this._hideUIAndRemoveMarker())}),{priority:"highest"}),Op({emitter:this._mentionsView,activator:()=>this._isUIVisible,contextElements:()=>[this._balloon.view.element],callback:()=>this._hideUIAndRemoveMarker()});const n=e.config.get("mention.feeds");for(const e of n){const{feed:t,marker:o,dropdownLimit:n}=e;if(!xM(o))throw new S("mentionconfig-incorrect-marker",null,{marker:o});const i={marker:o,feedCallback:"function"==typeof t?t.bind(this.editor):vM(t),itemRenderer:e.itemRenderer,dropdownLimit:n};this._mentionsConfigurations.set(o,i)}this._setupTextWatcher(n),this.listenTo(e,"change:isReadOnly",(()=>{this._hideUIAndRemoveMarker()})),this.on("requestFeed:response",((e,t)=>this._handleFeedResponse(t))),this.on("requestFeed:error",(()=>this._hideUIAndRemoveMarker()))}destroy(){super.destroy(),this._mentionsView.destroy()}get _isUIVisible(){return this._balloon.visibleView===this._mentionsView}_createMentionView(){const e=this.editor.locale,t=new gM(e);return t.items.bindTo(this._items).using((o=>{const{item:n,marker:i}=o,{dropdownLimit:r}=this._mentionsConfigurations.get(i),s=r||this.editor.config.get("mention.dropdownLimit")||10;if(t.items.length>=s)return null;const a=new bM(e),l=this._renderItem(n,i);return l.delegate("execute").to(a),a.children.add(l),a.item=n,a.marker=i,a.on("execute",(()=>{t.fire("execute",{item:n,marker:i})})),a})),t.on("execute",((e,t)=>{const o=this.editor,n=o.model,i=t.item,r=t.marker,s=o.model.markers.get("mention"),a=n.createPositionAt(n.document.selection.focus),l=n.createPositionAt(s.getStart()),c=n.createRange(l,a);this._hideUIAndRemoveMarker(),o.execute("mention",{mention:i,text:i.text,marker:r,range:c}),o.editing.view.focus()})),t}_getItemRenderer(e){const{itemRenderer:t}=this._mentionsConfigurations.get(e);return t}_requestFeed(e,t){this._lastRequested=t;const{feedCallback:o}=this._mentionsConfigurations.get(e),n=o(t);n instanceof Promise?n.then((o=>{this._lastRequested==t?this.fire("requestFeed:response",{feed:o,marker:e,feedText:t}):this.fire("requestFeed:discarded",{feed:o,marker:e,feedText:t})})).catch((t=>{this.fire("requestFeed:error",{error:t}),T("mention-feed-callback-error",{marker:e})})):this.fire("requestFeed:response",{feed:n,marker:e,feedText:t})}_setupTextWatcher(e){const t=this.editor,o=e.map((e=>({...e,pattern:CM(e.marker,e.minimumCharacters||0)}))),n=new o_(t.model,function(e){const t=t=>{const o=AM(e,t);if(!o)return!1;let n=0;0!==o.position&&(n=o.position-1);const i=t.substring(n);return o.pattern.test(i)};return t}(o));n.on("matched",((e,n)=>{const i=AM(o,n.text),r=t.model.document.selection.focus,s=t.model.createPositionAt(r.parent,i.position);if(function(e){const t=e.textNode&&e.textNode.hasAttribute("mention"),o=e.nodeBefore;return t||o&&o.is("$text")&&o.hasAttribute("mention")}(r)||function(e){const t=e.nodeAfter;return t&&t.is("$text")&&t.hasAttribute("mention")}(s))return void this._hideUIAndRemoveMarker();const a=function(e,t){let o=0;0!==e.position&&(o=e.position-1);const n=CM(e.marker,0),i=t.substring(o);return i.match(n)[2]}(i,n.text),l=i.marker.length+a.length,c=r.getShiftedBy(-l),d=r.getShiftedBy(-a.length),u=t.model.createRange(c,d);if(EM(t)){const e=t.model.markers.get("mention");t.model.change((t=>{t.updateMarker(e,{range:u})}))}else t.model.change((e=>{e.addMarker("mention",{range:u,usingOperation:!1,affectsData:!1})}));this._requestFeedDebounced(i.marker,a)})),n.on("unmatched",(()=>{this._hideUIAndRemoveMarker()}));const i=t.commands.get("mention");return n.bind("isEnabled").to(i),n}_handleFeedResponse(e){const{feed:t,marker:o}=e;if(!EM(this.editor))return;this._items.clear();for(const e of t){const t="object"!=typeof e?{id:e,text:e}:e;this._items.add({item:t,marker:o})}const n=this.editor.model.markers.get("mention");this._items.length?this._showOrUpdateUI(n):this._hideUIAndRemoveMarker()}_showOrUpdateUI(e){this._isUIVisible?this._balloon.updatePosition(this._getBalloonPanelPositionData(e,this._mentionsView.position)):this._balloon.add({view:this._mentionsView,position:this._getBalloonPanelPositionData(e,this._mentionsView.position),singleViewMode:!0}),this._mentionsView.position=this._balloon.view.position,this._mentionsView.selectFirst()}_hideUIAndRemoveMarker(){this._balloon.hasView(this._mentionsView)&&this._balloon.remove(this._mentionsView),EM(this.editor)&&this.editor.model.change((e=>e.removeMarker("mention"))),this._mentionsView.position=void 0}_renderItem(e,t){const o=this.editor;let n,i=e.id;const r=this._getItemRenderer(t);if(r){const t=r(e);"string"!=typeof t?n=new fM(o.locale,t):i=t}if(!n){const e=new Kp(o.locale);e.label=i,e.withText=!0,n=e}return n}_getBalloonPanelPositionData(e,t){const o=this.editor,n=o.editing,i=n.view.domConverter,r=n.mapper;return{target:()=>{let t=e.getRange();"$graveyard"==t.start.root.rootName&&(t=o.model.document.selection.getFirstRange());const n=r.toViewRange(t);return Gn.getDomRangeRects(i.viewRangeToDom(n)).pop()},limiter:()=>{const e=this.editor.editing.view,t=e.document.selection.editableElement;return t?e.domConverter.mapViewToDom(t.root):null},positions:yM(t,o.locale.uiLanguageDirection)}}}function yM(e,t){const o={caret_se:e=>({top:e.bottom+3,left:e.right,name:"caret_se",config:{withArrow:!1}}),caret_ne:(e,t)=>({top:e.top-t.height-3,left:e.right,name:"caret_ne",config:{withArrow:!1}}),caret_sw:(e,t)=>({top:e.bottom+3,left:e.right-t.width,name:"caret_sw",config:{withArrow:!1}}),caret_nw:(e,t)=>({top:e.top-t.height-3,left:e.right-t.width,name:"caret_nw",config:{withArrow:!1}})};return Object.prototype.hasOwnProperty.call(o,e)?[o[e]]:"rtl"!==t?[o.caret_se,o.caret_sw,o.caret_ne,o.caret_nw]:[o.caret_sw,o.caret_se,o.caret_nw,o.caret_ne]}function AM(e,t){let o;for(const n of e){const e=t.lastIndexOf(n.marker);e>0&&!t.substring(e-1).match(n.pattern)||(!o||e>=o.position)&&(o={marker:n.marker,position:e,minimumCharacters:n.minimumCharacters,pattern:n.pattern})}return o}function CM(e,t){const o=0==t?"*":`{${t},}`,n=c.features.isRegExpUnicodePropertySupported?"\\p{Ps}\\p{Pi}\"'":"\\(\\[{\"'";e=e.replace(/[.*+?^${}()\-|[\]\\]/g,"\\$&");return new RegExp(`(?:^|[ ${n}])(${e})([^#@]${o})$`,"u")}function vM(e){return t=>e.filter((e=>("string"==typeof e?e:String(e.id)).toLowerCase().includes(t.toLowerCase())))}function xM(e){return!!e}function EM(e){return e.model.markers.has("mention")}var DM=i(1478),BM={attributes:{"data-cke":!0}};BM.setAttributes=Xr(),BM.insert=Yr().bind(null,"head"),BM.domAPI=Zr(),BM.insertStyleElement=ts();Gr()(DM.A,BM);DM.A&&DM.A.locals&&DM.A.locals;class SM extends wr{refresh(){const e=this.editor.model,t=e.schema,o=e.document.selection;this.isEnabled=function(e,t,o){const n=function(e,t){const o=xw(e,t),n=o.start.parent;if(n.isEmpty&&!n.is("element","$root"))return n.parent;return n}(e,o);return t.checkChild(n,"pageBreak")}(o,t,e)}execute(){const e=this.editor.model;e.change((t=>{const o=t.createElement("pageBreak");e.insertObject(o,null,null,{setSelection:"after"})}))}}var TM=i(5079),IM={attributes:{"data-cke":!0}};IM.setAttributes=Xr(),IM.insert=Yr().bind(null,"head"),IM.domAPI=Zr(),IM.insertStyleElement=ts();Gr()(TM.A,IM);TM.A&&TM.A.locals&&TM.A.locals;class PM extends br{static get pluginName(){return"PageBreakEditing"}static get isOfficialPlugin(){return!0}init(){const e=this.editor,t=e.model.schema,o=e.t,n=e.conversion;t.register("pageBreak",{inheritAllFrom:"$blockObject"}),n.for("dataDowncast").elementToStructure({model:"pageBreak",view:(e,{writer:t})=>t.createContainerElement("div",{class:"page-break",style:"page-break-after: always"},t.createContainerElement("span",{style:"display: none"}))}),n.for("editingDowncast").elementToStructure({model:"pageBreak",view:(e,{writer:t})=>{const n=o("Page break"),i=t.createContainerElement("div"),r=t.createRawElement("span",{class:"page-break__label"},(function(e){e.innerText=o("Page break")}));return t.addClass("page-break",i),t.insert(t.createPositionAt(i,0),r),function(e,t,o){return t.setCustomProperty("pageBreak",!0,e),_w(e,t,{label:o})}(i,t,n)}}),n.for("upcast").elementToElement({view:e=>{const t="always"==e.getStyle("page-break-before"),o="always"==e.getStyle("page-break-after");if(!t&&!o)return null;if(1==e.childCount){const t=e.getChild(0);if(!t.is("element","span")||"none"!=t.getStyle("display"))return null}else if(e.childCount>1)return null;return{name:!0}},model:"pageBreak",converterPriority:"high"}),e.commands.add("pageBreak",new SM(e))}}class FM extends br{static get pluginName(){return"PageBreakUI"}static get isOfficialPlugin(){return!0}init(){const e=this.editor;e.ui.componentFactory.add("pageBreak",(()=>{const e=this._createButton(Kp);return e.set({tooltip:!0}),e})),e.ui.componentFactory.add("menuBar:pageBreak",(()=>this._createButton(Em)))}_createButton(e){const t=this.editor,o=t.locale,n=t.commands.get("pageBreak"),i=new e(t.locale),r=o.t;return i.set({label:r("Page break"),icon:''}),i.bind("isEnabled").to(n,"isEnabled"),this.listenTo(i,"execute",(()=>{t.execute("pageBreak"),t.editing.view.focus()})),i}}class RM extends br{static get pluginName(){return"Autosave"}static get isOfficialPlugin(){return!0}static get requires(){return[dp]}constructor(e){super(e),this._action=null;const t=e.config.get("autosave")||{},o=t.waitingTime||1e3;this.set("state","synchronized"),this._debouncedSave=bl(this._save.bind(this),o),this._lastDocumentVersion=e.model.document.version,this._savePromise=null,this._domEmitter=new(On()),this._config=t,this._pendingActions=e.plugins.get(dp),this._makeImmediateSave=!1}init(){const e=this.editor,t=e.model.document;this.listenTo(e,"ready",(()=>{this.listenTo(t,"change:data",((e,t)=>{this._saveCallbacks.length&&t.isLocal&&("synchronized"===this.state&&(this.state="waiting",this._setPendingAction()),"waiting"===this.state&&this._debouncedSave())}))})),this.listenTo(e,"destroy",(()=>this._flush()),{priority:"highest"}),this._domEmitter.listenTo(window,"beforeunload",((e,t)=>{this._pendingActions.hasAny&&(t.returnValue=this._pendingActions.first.message)}))}destroy(){this._domEmitter.stopListening(),super.destroy()}save(){return this._debouncedSave.cancel(),this._save()}_flush(){this._debouncedSave.flush()}_save(){return this._savePromise?(this._makeImmediateSave=this.editor.model.document.version>this._lastDocumentVersion,this._savePromise):(this._setPendingAction(),this.state="saving",this._lastDocumentVersion=this.editor.model.document.version,this._savePromise=Promise.resolve().then((()=>Promise.all(this._saveCallbacks.map((e=>e(this.editor)))))).finally((()=>{this._savePromise=null})).then((()=>{if(this._makeImmediateSave)return this._makeImmediateSave=!1,this._save();this.editor.model.document.version>this._lastDocumentVersion?(this.state="waiting",this._debouncedSave()):(this.state="synchronized",this._pendingActions.remove(this._action),this._action=null)})).catch((e=>{throw this.state="error",this.state="saving",this._debouncedSave(),e})),this._savePromise)}_setPendingAction(){const e=this.editor.t;this._action||(this._action=this._pendingActions.add(e("Saving changes")))}get _saveCallbacks(){const e=[];return this.adapter&&this.adapter.save&&e.push(this.adapter.save),this._config.save&&e.push(this._config.save),e}}var MM=i(2992);function zM(e){return e.trim().split(/\s+/).length}function OM(e){const t=e.length;let o=5381;for(let n=0;n>>0}function NM(e){const t=localStorage.getItem(e);if(!t)return null;try{return JSON.parse(MM.decompress(t))}catch(e){return console.error("Failed to load CKEditor revisions from localStorage: "+e.toString()),null}}class VM extends br{init(){const e=this.editor,t=Mw(e);e.ui.componentFactory.add("opContentRevisions",(o=>{const n=kf(o),i=new tr;return yf(n,i,{role:"menu",ariaLabel:t.t("js.editor.revisions")}),n.buttonView.set({label:t.t("js.editor.revisions"),icon:'\n\n\n',tooltip:!0}),this.listenTo(n.buttonView,"execute",(async()=>{i.clear(),function(e,t){const o=e.config.get(HM),n=NM(o),i=Mw(e),r=Fw(e,"timezone");if(!n?.items||n.items.count<=0){const e={type:"button",model:{label:i.t("js.editor.no_revisions"),withText:!0}};return void t.add(e)}const s=e.getData(),a=OM(s);for(let e=n.items.length;e>0;){e--;const o=n.items[e],s=r.formattedRelativeDateTime(o.timestamp),l=i.t("js.units.word",{count:zM(o.content)}),c=`${o.hash===a?`${i.t("js.label_current")} - `:""}${s} (${l})`,d={type:"button",model:{timestamp:o.timestamp,label:c,withText:!0}};t.add(d)}}(e,i)})),n.on("execute",(t=>{const{timestamp:o}=t.source;o&&e.execute("opContentRevisionApply",o)})),n}))}}class LM extends wr{async execute(e){const t=this.editor,o=t.config.get(HM),n=await NM(o);if(!n)return void console.error(`Trying to load revision ${e} but no record present.`);const i=n.items.find((t=>t.timestamp===e));i&&(t.setData(i.content),setTimeout((()=>{t.editing.view.focus()})))}}const HM="opContentRevisionKey",jM="op_ckeditor_rev";const qM=[Bw,class extends br{static get requires(){return[zw,M_,Y_]}static get pluginName(){return"OPMacroEmbeddedTable"}static get buttonName(){return zw.buttonName}},class extends br{static get requires(){return[ey,M_,ty]}static get pluginName(){return"OPMacroWpButton"}static get buttonName(){return ey.buttonName}},class extends br{static get requires(){return[GC,M_,KC]}static get pluginName(){return"OPChildPages"}static get buttonName(){return GC.buttonName}}],$M=[class extends br{static get requires(){return[ny,lC]}static get pluginName(){return"OpUploadPlugin"}init(){this.editor.plugins.get("FileRepository").createUploadAdapter=e=>{const t=Iw(this.editor);return new ry(e,t,this.editor)}}},class extends br{static get pluginName(){return"OPAttachmentListener"}init(){this.editor.model.on("op:attachment-removed",((e,t)=>{this.removeDeletedImage(t)}))}removeDeletedImage(e){let t=this.editor.model.document.getRoot();for(const o of Array.from(t.getChildren()))if("image"===o.name&&e.indexOf(o.getAttribute("src"))>-1){const e=new bc(o,"on");this.editor.model.deleteContent(e)}}}],UM=[class extends br{static get requires(){return[Mm,Uy,w_,ev,C_,e_,Xy]}static get pluginName(){return"Essentials"}static get isOfficialPlugin(){return!0}},class extends br{static get requires(){return[ny]}static get pluginName(){return"CKFinderUploadAdapter"}static get isOfficialPlugin(){return!0}init(){const e=this.editor.config.get("ckfinder.uploadUrl");e&&(this.editor.plugins.get(ny).createUploadAdapter=t=>new iv(t,e,this.editor.t))}},class extends br{static get requires(){return[Xw]}static get pluginName(){return"Autoformat"}static get isOfficialPlugin(){return!0}afterInit(){const e=this.editor,t=this.editor.t;this._addListAutoformats(),this._addBasicStylesAutoformats(),this._addHeadingAutoformats(),this._addBlockQuoteAutoformats(),this._addCodeBlockAutoformats(),this._addHorizontalLineAutoformats(),e.accessibility.addKeystrokeInfos({keystrokes:[{label:t("Revert autoformatting action"),keystroke:"Backspace"}]})}_addListAutoformats(){const e=this.editor.commands;e.get("bulletedList")&&rv(this.editor,this,/^[*-]\s$/,"bulletedList"),e.get("numberedList")&&rv(this.editor,this,/^1[.|)]\s$/,"numberedList"),e.get("todoList")&&rv(this.editor,this,/^\[\s?\]\s$/,"todoList"),e.get("checkTodoList")&&rv(this.editor,this,/^\[\s?x\s?\]\s$/,(()=>{this.editor.execute("todoList"),this.editor.execute("checkTodoList")}))}_addBasicStylesAutoformats(){const e=this.editor.commands;if(e.get("bold")){const e=lv(this.editor,"bold");sv(this.editor,this,/(?:^|\s)(\*\*)([^*]+)(\*\*)$/g,e),sv(this.editor,this,/(?:^|\s)(__)([^_]+)(__)$/g,e)}if(e.get("italic")){const e=lv(this.editor,"italic");sv(this.editor,this,/(?:^|\s)(\*)([^*_]+)(\*)$/g,e),sv(this.editor,this,/(?:^|\s)(_)([^_]+)(_)$/g,e)}if(e.get("code")){const e=lv(this.editor,"code");sv(this.editor,this,/(`)([^`]+)(`)$/g,e)}if(e.get("strikethrough")){const e=lv(this.editor,"strikethrough");sv(this.editor,this,/(~~)([^~]+)(~~)$/g,e)}}_addHeadingAutoformats(){const e=this.editor.commands.get("heading");e&&e.modelElements.filter((e=>e.match(/^heading[1-6]$/))).forEach((t=>{const o=t[7],n=new RegExp(`^(#{${o}})\\s$`);rv(this.editor,this,n,(()=>{if(!e.isEnabled||e.value===t)return!1;this.editor.execute("heading",{value:t})}))}))}_addBlockQuoteAutoformats(){this.editor.commands.get("blockQuote")&&rv(this.editor,this,/^>\s$/,"blockQuote")}_addCodeBlockAutoformats(){const e=this.editor,t=e.model.document.selection;e.commands.get("codeBlock")&&rv(e,this,/^```$/,(()=>{if(t.getFirstPosition().parent.is("element","listItem"))return!1;this.editor.execute("codeBlock",{usePreviousLanguageChoice:!0})}))}_addHorizontalLineAutoformats(){this.editor.commands.get("horizontalLine")&&rv(this.editor,this,/^---$/,"horizontalLine")}},RM,class extends br{static get requires(){return[uv,mv]}static get pluginName(){return"Bold"}static get isOfficialPlugin(){return!0}},class extends br{static get requires(){return[fv,_v]}static get pluginName(){return"Code"}static get isOfficialPlugin(){return!0}},class extends br{static get requires(){return[Av,vv]}static get pluginName(){return"Italic"}static get isOfficialPlugin(){return!0}},class extends br{static get requires(){return[Ev,Bv]}static get pluginName(){return"Strikethrough"}static get isOfficialPlugin(){return!0}},class extends br{static get requires(){return[Fv,zv]}static get pluginName(){return"BlockQuote"}static get isOfficialPlugin(){return!0}},class extends br{static get requires(){return[Uv,Kv]}static get pluginName(){return"Heading"}static get isOfficialPlugin(){return!0}},class extends br{static get requires(){return[SA,M_,bA,FA]}static get pluginName(){return"ImageBlock"}static get isOfficialPlugin(){return!0}},class extends br{static get requires(){return[zA,M_,bA,FA]}static get pluginName(){return"ImageInline"}static get isOfficialPlugin(){return!0}},class extends br{static get requires(){return[VA,LA]}static get pluginName(){return"ImageCaption"}static get isOfficialPlugin(){return!0}},class extends br{static get requires(){return[OC,LC]}static get pluginName(){return"ImageStyle"}static get isOfficialPlugin(){return!0}},class extends br{static get requires(){return[pC,_C,DC,gC]}static get pluginName(){return"ImageResize"}static get isOfficialPlugin(){return!0}},class extends br{static get requires(){return[O_,sA]}static get pluginName(){return"ImageToolbar"}static get isOfficialPlugin(){return!0}afterInit(){const e=this.editor,t=e.t,o=e.plugins.get(O_),n=e.plugins.get("ImageUtils");o.register("image",{ariaLabel:t("Image toolbar"),items:$C(e.config.get("image.toolbar")||[]),getRelatedElement:e=>n.getClosestSelectedImageWidget(e)})}},class extends br{static get pluginName(){return"OpImageAttachmentLookup"}init(){const e=this.editor,t=e.conversion,o=Iw(e);t.for("editingDowncast").add(function(e){return e=>{e.on("attribute:src:imageBlock",t,{priority:"highest"}),e.on("attribute:src:imageInline",t,{priority:"highest"})};function t(t,o,n){let i=o.attributeNewValue;if(!i||!e.lookupDownloadLocationByName)return;const r=e.lookupDownloadLocationByName(i);o.attributeNewValue=r||i}}(o)),t.for("dataDowncast").add(function(e){return e=>{e.on("attribute:src:imageBlock",t,{priority:"highest"}),e.on("attribute:src:imageInline",t,{priority:"highest"})};function t(t,o,n){let i=o.attributeNewValue;if(!i||!e.lookupDownloadLocationByName)return;const r=e.lookupDownloadLocationByName(i);o.attributeNewValue=r||i;const s=n.writer,a=n.mapper.toViewElement(o.item);let l;l="imageInline"===o.item.name?a:a.getChild(0),r&&s.setAttribute("data-original-src",i,l)}}(o));const n=e.plugins.get("ImageUtils");n.decorate("setImageNaturalSizeAttributes"),n.on("setImageNaturalSizeAttributes",((e,[t])=>{console.log("model image element:",{element:t}),e.stop()}),{priority:"highest"})}},class extends br{static get requires(){return[Mx,qx,Wx]}static get pluginName(){return"Link"}static get isOfficialPlugin(){return!0}},WE,hD,class extends br{static get requires(){return[PM,FM,M_]}static get pluginName(){return"PageBreak"}static get isOfficialPlugin(){return!0}},Hv,e_,class extends br{toMentionAttribute(e,t){return lM(e,t)}static get pluginName(){return"Mention"}static get isOfficialPlugin(){return!0}static get requires(){return[sM,_M]}},function(e){const t=Pw(e),o=e.editing.view,n=o.document;o.addObserver(Xu),e.listenTo(n,"click",((e,t)=>{if("A"===t.domTarget.nodeName&&t.domTarget.classList.contains("mention")){const e=document.createElement("a");e.target="_blank",e.href=t.domTarget.attributes.href.value,e.click()}})),e.conversion.for("upcast").elementToAttribute({view:{name:"mention",key:"data-mention",classes:"mention"},model:{key:"mention",value:o=>{const n=o.getAttribute("data-id"),i=o.getAttribute("data-type"),r=o.getAttribute("data-text"),s=function(e,o){const n=t.services.apiV3Service[`${o}s`].segment,i=window.OpenProject.urlRoot;return`${i}/${n}/${e}`}(n,i);return e.plugins.get("Mention").toMentionAttribute(o,{idNumber:n,link:s,text:r,type:i})}},converterPriority:"high"}),e.conversion.for("upcast").elementToAttribute({view:{name:"span",key:"data-mention",classes:"mention"},model:{key:"mention",value:e=>{const t=[...e.getChildren()][0],o=t&&t.data;if(o){const e=`[Invalid mention: ${o}]`;t._data=e}}},converterPriority:"high"}),e.conversion.for("editingDowncast").attributeToElement({model:"mention",converterPriority:"high",view:(e,{writer:t})=>{if(!e)return;if("emoji"===e.type)return t.createAttributeElement("span");return t.createAttributeElement("a",{class:"mention",href:e.link,"data-mention":e.text,title:e.text})}}),e.conversion.for("dataDowncast").attributeToElement({model:"mention",converterPriority:"high",view:(e,{writer:t})=>{if(!e)return;if("emoji"===e.type)return t.createAttributeElement("span");return t.createAttributeElement("mention",{class:"mention","data-id":e.idNumber,"data-type":e.type,"data-text":e.text})}})},class extends br{static get pluginName(){return"PasteFromOffice"}static get isOfficialPlugin(){return!0}static get requires(){return[By]}init(){const e=this.editor,t=e.plugins.get("ClipboardPipeline"),o=e.editing.view.document,n=[],i=this.editor.plugins.has("MultiLevelList");n.push(new GT(o,i)),n.push(new YT(o)),n.push(new XT(o)),t.on("inputTransformation",((t,i)=>{if(i._isTransformedWithPasteFromOffice)return;if(e.model.document.selection.getFirstPosition().parent.is("element","codeBlock"))return;const r=i.dataTransfer.getData("text/html"),s=n.find((e=>e.isActive(r)));s&&(i._parsedData||(i._parsedData=tI(r,o.stylesProcessor)),s.execute(i),i._isTransformedWithPasteFromOffice=!0)}),{priority:"high"})}},class extends br{static get pluginName(){return"OPHelpLinkPlugin"}init(){const e=this.editor,t=e.config.get("openProject.helpURL");e.ui.componentFactory.add("openProjectShowFormattingHelp",(e=>{const o=new Kp(e);return o.set({label:window.I18n.t("js.inplace.link_formatting_help"),icon:'',tooltip:!0}),o.on("execute",(()=>{window.open(t,"_blank")})),o}))}},class extends br{static get pluginName(){return"OPPreview"}init(){const e=this.editor;let t=!1,o=null;e.ui.componentFactory.add("preview",(n=>{const i=new Kp(n);i.set({label:this.label,icon:'\n',tooltip:!0});let r=function(t){const n=e.ui.getEditableElement(),r=n?.parentElement;if(!r?.parentElement)return void console.error("Cannot show preview: invalid editor structure");const s=document.createElement("div");s.className="ck-editor__preview op-uc-container";Array.from(r.parentElement.children).filter((e=>e!==r&&e.classList.contains("ck-editor__preview"))).forEach((e=>e.remove()));const a=Fw(e,"ckEditorPreview");o=a.render(s,t),r.style.display="none",r.parentElement.insertBefore(s,r.nextSibling),CD(e,i)},s=function(){let o=function(e){return _.get(e.config,"_config.openProject.context.previewContext")}(e);(async function(e,t){return new BD("post",e,t).perform()})(Rw(e).api.v3.previewMarkup(o),{contentType:"text/plain; charset=UTF-8",responseKind:"html",body:e.getData()}).then((e=>e.html)).then(r).catch((o=>{console.error("Error fetching preview:",o),t=!1,vD(e)}))};return i.on("execute",(()=>{t?(t=!1,function(){const t=e.ui.getEditableElement(),n=t?.parentElement;if(!n?.parentElement)return void console.error("Cannot disable preview: invalid editor structure");o&&o(),Array.from(n.parentElement.children).filter((e=>e!==n&&e.classList.contains("ck-editor__preview"))).forEach((e=>e.remove())),n.style.display="",vD(e)}()):(t=!0,s())})),i}))}get label(){return window.I18n.t("js.editor.preview")}},class extends br{static get pluginName(){return"OPSourceCode"}init(){const e=this.editor;let t=!1,o={source:window.I18n.t("js.editor.mode.manual"),wysiwyg:window.I18n.t("js.editor.mode.wysiwyg")};e.ui.componentFactory.add("opShowSource",(n=>{const i=new Kp(n);i.set({label:o.source,class:"",icon:nM,tooltip:!0});return i.on("execute",(()=>{t?(t=!1,function(){const t=e.ui.getEditableElement(),n=t?.parentElement;if(!n?.parentElement)return void console.error("Cannot hide source: invalid editor structure");e.fire("op:source-code-disabled"),Array.from(n.parentElement.children).filter((e=>e!==n&&e.classList.contains("ck-editor__source"))).forEach((e=>e.remove())),n.style.display="",vD(e),i.set({label:o.source,class:"",icon:nM,tooltip:!0})}()):(t=!0,function(){const t=e.ui.getEditableElement(),n=t?.parentElement;if(!n?.parentElement)return void console.error("Cannot show source: invalid editor structure");const r=document.createElement("div");r.className="ck-editor__source",Array.from(n.parentElement.children).filter((e=>e!==n&&e.classList.contains("ck-editor__source"))).forEach((e=>e.remove())),n.style.display="none",n.parentElement.insertBefore(r,n.nextSibling),CD(e,i),e.fire("op:source-code-enabled"),i.set({label:o.wysiwyg,class:"-source-enabled",icon:'\n\n \n \n \n image/svg+xml\n \n \n \n \n \n \n \n \n\n',tooltip:!0})}())})),i}))}},class extends br{static get requires(){return[RM,VM]}static get pluginName(){return"OpContentRevisions"}constructor(e){super(e);const t=this.getStorageKey(e);e.config.define(HM,t)}init(){const e=this.editor;e.commands.add("opContentRevisionApply",new LM(e)),e.once("ready",(()=>{const t=Date.now();e.plugins.get("Autosave")._domEmitter.stopListening(window,"beforeunload"),Object.keys(localStorage).forEach((e=>{if(e.startsWith(jM)){const o=NM(e);o?.updatedAt&&t-o.updatedAt>=288e5&&localStorage.removeItem(e)}}))}))}getStorageKey(e){const t=e.config.get("storageKey");return t||this.createLocalStorageKey(e)}createLocalStorageKey(e){const t=Iw(e),o=function(e){return _.get(e.config,"_config.openProject.context.field")}(e);let n="";return n=t?.href?t.href:location.pathname,o&&(n+=`_${o}`),`${jM}_${n}`}},class extends br{static get pluginName(){return"CodeBlock"}static get requires(){return[_D,yD]}},function(e){e.data.processor=new oM(e.editing.view.document)},class extends br{static get requires(){return[HB,WB,JB,nS,tS,YB,M_]}static get pluginName(){return"Table"}static get isOfficialPlugin(){return!0}},class extends br{static get requires(){return[O_]}static get pluginName(){return"TableToolbar"}static get isOfficialPlugin(){return!0}afterInit(){const e=this.editor,t=e.t,o=e.plugins.get(O_),n=e.config.get("table.contentToolbar"),i=e.config.get("table.tableToolbar");n&&o.register("tableContent",{ariaLabel:t("Table toolbar"),items:n,getRelatedElement:cS}),i&&o.register("table",{ariaLabel:t("Table toolbar"),items:i,getRelatedElement:lS})}},class extends br{static get pluginName(){return"TableProperties"}static get isOfficialPlugin(){return!0}static get requires(){return[_T,DT]}},class extends br{static get pluginName(){return"TableCellProperties"}static get isOfficialPlugin(){return!0}static get requires(){return[cT,ZS]}},class extends br{init(){const e=this.editor,t=(e.config.get("removePlugins")||[]).map((e=>e.pluginName)),o=window.I18n.t("js.editor.macro.dropdown.chose_macro");!0!==e.config.get("openProject.disableAllMacros")&&e.ui.componentFactory.add("macroList",(n=>{const i=[];for(const o of qM){if(-1!==t.indexOf(o.pluginName))continue;const n=e.ui.componentFactory.create(o.buttonName);i.push(n)}const r=kf(n);return wf(r,i,{isVertical:!0,class:"op-macro-list-button"}),r.buttonView.set({isOn:!1,withText:!0,tooltip:o,label:window.I18n.t("js.editor.macro.dropdown.macros")}),r}))}},class extends br{get config(){const e="op-uc-";return{preFix:e,editorClasses:[`${e}container`,`${e}container_editing`],elementsWithCustomClassesMap:{paragraph:`${e}p`,heading1:`${e}h1`,heading2:`${e}h2`,heading3:`${e}h3`,heading4:`${e}h4`,heading5:`${e}h5`,heading6:`${e}h6`,blockQuote:`${e}blockquote`,figure:`${e}figure`,table:`${e}table`,thead:`${e}table--head`,tr:`${e}table--row`,td:`${e}table--cell`,th:[`${e}table--cell`,`${e}table--cell_head`],tableCell:`${e}table--cell`,tableRow:`${e}table--row`,ol:`${e}list`,ul:`${e}list`,list:`${e}list`,todo:`${e}list ${e}list_task-list`,listItem:`${e}list--item`,li:`${e}list--item`,imageInline:`${e}image ${e}image_inline`,imageBlock:`${e}image`,img:`${e}image`,codeblock:`${e}code-block`,caption:`${e}figure--description`,"op-macro-embedded-table":[`${e}placeholder`,`${e}embedded-table`],"op-macro-wp-button":[`${e}placeholder`,`${e}wp-button`],"op-macro-child-pages":[`${e}placeholder`,`${e}child-pages`],"op-macro-toc":[`${e}placeholder`,`${e}toc`],content:`${e}figure--content`},attributesWithCustomClassesMap:{code:`${e}code`,linkHref:`${e}link`,alignment:`${e}figure_align-`,tableAlignment:`${e}figure_align-`,todo:`${e}list_task-list`,numbered:`${e}list`,bulleted:`${e}list`,listType:null,headingColumns:null,width:null,uploadStatus:null},alignmentValuesMap:{left:"start",right:"end",center:"center",default:"center"}}}init(){this._addCustomCSSClassesToTheEditorContainer(this.editor),this._addCustomCSSClassesToElements(this.config),this._addCustomCSSClassesToAttributes(this.config)}_addCustomCSSClassesToTheEditorContainer(e){e.sourceElement.classList.add(...this.config.editorClasses)}_addCustomCSSClassesToElements(e){this.editor.model.schema.extend("table",{allowAttributes:["figureClasses"]}),this.editor.conversion.for("upcast").add((t=>t.on("element:table",this._manageTableUpcast(e))),{priority:"high"}),this.editor.conversion.for("downcast").add((t=>t.on("insert",this._manageElementsInsertion(e),{priority:"low"})))}_addCustomCSSClassesToAttributes(e){this.editor.conversion.for("downcast").add((t=>t.on("attribute",this._manageAttributesInsertion(e),{priority:"low"})))}_manageTableUpcast(e){return(t,o,n)=>{const i=n.writer,r=o.viewItem,s=o.modelRange,a=s&&s.start.nodeAfter;if(!a)return;let l=a.getAttribute("figureClasses")||[],c=r.parent.getClassNames&&r.parent.getClassNames();const d=c?[...c].filter((e=>!!e)):[];l=[...l,...d];const u=d.filter((t=>t.startsWith(e.attributesWithCustomClassesMap.alignment)))[0],h=u&&u.replace(e.attributesWithCustomClassesMap.alignment,"")||e.alignmentValuesMap.default,p=Object.keys(e.alignmentValuesMap).find((t=>e.alignmentValuesMap[t]===h));if(!u){const t=`${e.attributesWithCustomClassesMap.alignment}${h}`;l=[...l,t]}i.setAttribute("figureClasses",l,a),"center"===p?i.setAttribute("alignment",null,a):i.setAttribute("alignment",p,a)}}_manageElementsInsertion(e){return(t,o,n)=>{const i=Object.keys(e.elementsWithCustomClassesMap),r=n.writer,s=o.item.name,a=o.item,l=n.mapper.toViewElement(a);let c=[l];const d=["imageBlock","table","tableCell","tableRow","listItem"].includes(s);if(i.includes(s)&&l){if(d)if("listItem"===s)c=this._manageListItems(r,a,l,c,e);else{const t=l,o=Array.from(r.createRangeIn(l).getItems());if("imageBlock"===s){const n=o.find((e=>e.is("element","img")));this._wrapInFigureContentContainer(n,t,e,r),c=[...c,n]}else if("table"===s||"tableRow"===s){const n=o.filter((e=>i.includes(e.name)));if(c=[...c,...n],"table"===s){if(!a.getAttribute("tableAlignment")){const o=`${e.attributesWithCustomClassesMap.alignment}${e.alignmentValuesMap.default}`;r.addClass(o,t)}}}}c.forEach((t=>{const o=d?t.name:s,n=e.elementsWithCustomClassesMap[o];r.addClass(n,t)}))}}}_manageAttributesInsertion(e){return(t,o,n)=>{const i=Object.keys(e.attributesWithCustomClassesMap),r=o.attributeKey,s=n.writer,a=o.item,l=n.mapper.toViewElement(a);if(i.includes(r))if("linkHref"===r||"code"===r){const t="linkHref"===r?"a":r,i="linkHref"===r?5:10,l=s.document.selection,c=s.createAttributeElement(t,{class:e.attributesWithCustomClassesMap[r]},{priority:i});a.is("selection")?s.wrap(l.getFirstRange(),c):s.wrap(n.mapper.toViewRange(o.range),c)}else if("tableAlignment"===r){const t=l,n=e.alignmentValuesMap[o.attributeNewValue||e.alignmentValuesMap.default];Object.values(e.alignmentValuesMap).map((t=>`${e.attributesWithCustomClassesMap[r]}${t}`)).filter((e=>t.hasClass(e))).forEach((e=>s.removeClass(e,t))),t.hasStyle("float")&&s.removeStyle("float",t),s.addClass(`${e.attributesWithCustomClassesMap[r]}${n}`,t)}else if("listType"===r){this._manageListItems(s,a,l,[l],e).forEach((t=>{const o=t.name,n=e.elementsWithCustomClassesMap[o];s.addClass(n,t)}))}else if("headingColumns"===r){const t=o.attributeNewValue,n=Array.from(s.createRangeIn(l).getItems()).filter((t=>Object.keys(e.elementsWithCustomClassesMap).includes(t.name)));t?n.forEach((t=>{const o=t.name,n=e.elementsWithCustomClassesMap[o];s.addClass(n,t)})):n.filter((t=>t.hasClass(e.elementsWithCustomClassesMap.th[1]))).forEach((t=>{const o=t.nextSibling;o&&"th"!==o.name&&s.removeClass(e.elementsWithCustomClassesMap.th[1],t)}))}else if("width"===r)l.hasClass("image_resized")&&s.removeClass("image_resized",l);else if("uploadStatus"===r&&"complete"===o.attributeNewValue){let e=Array.from(s.createRangeIn(l).getItems()).find((e=>e.hasClass("ck-upload-placeholder-loader")));e&&s.remove(s.createRangeOn(e))}}}_manageListItems(e,t,o,n,i){const r=o.findAncestor("li"),s=o.findAncestor(/^(ul|ol)$/);if(!s)return n;const a=t.getAttribute("listType"),l=i.attributesWithCustomClassesMap[a];if("todo"===a)e.addClass(l,s);else{const t=i.attributesWithCustomClassesMap.todo;s.hasClass(t)&&e.removeClass(t,s)}return[...n,s,r]}_wrapInFigureContentContainer(e,t,o,n){const i=n.createContainerElement("div",{class:o.elementsWithCustomClassesMap.content});n.insert(n.createPositionAt(i,0),e),n.insert(n.createPositionAt(t,0),i)}}].concat(qM,$M);function WM(e){return function(t){const o=window.OpenProject.urlRoot+"/work_packages/auto_complete.json";let n=window.OpenProject.urlRoot+"/work_packages/";return this.config.get("disabledMentions").includes("work_package")?[]:new Promise(((i,r)=>{SD(o,{responseKind:"json",query:{q:t,scope:"all"}}).then((e=>e.json)).then((t=>{i(t.map((t=>{const o=`${e}${t.id}`;return{id:o,idNumber:t.id,type:"work_package",text:o,name:t.to_s,link:n+t.id}})))})).catch((e=>{console.error("Error fetching work package mentions:",e),r(e)}))}))}}function GM(e){const t=document.createElement("span");return"user"!==e.type&&"work_package"!==e.type||(t.setAttribute("data-hover-card-trigger-target","trigger"),t.setAttribute("data-hover-card-url",`${e.link}/hover_card`)),t.classList.add("mention-list-item"),t.textContent=e.name,t}const KM=JSON.parse('[{"id":":grinning_face:","symbol":"😀","group":"people","keywords":["face","grin","grinning face"]},{"id":":beaming_face_with_smiling_eyes:","symbol":"😁","group":"people","keywords":["beaming face with smiling eyes","eye","face","grin","smile"]},{"id":":face_with_tears_of_joy:","symbol":"😂","group":"people","keywords":["face","face with tears of joy","joy","laugh","tear"]},{"id":":rolling_on_the_floor_laughing:","symbol":"🤣","group":"people","keywords":["face","floor","laugh","rolling","rolling on the floor laughing"]},{"id":":grinning_face_with_big_eyes:","symbol":"😃","group":"people","keywords":["face","grinning face with big eyes","mouth","open","smile"]},{"id":":grinning_face_with_smiling_eyes:","symbol":"😄","group":"people","keywords":["eye","face","grinning face with smiling eyes","mouth","open","smile"]},{"id":":grinning_face_with_sweat:","symbol":"😅","group":"people","keywords":["cold","face","grinning face with sweat","open","smile","sweat"]},{"id":":grinning_squinting_face:","symbol":"😆","group":"people","keywords":["face","grinning squinting face","laugh","mouth","satisfied","smile"]},{"id":":winking_face:","symbol":"😉","group":"people","keywords":["face","wink","winking face"]},{"id":":smiling_face_with_smiling_eyes:","symbol":"😊","group":"people","keywords":["blush","eye","face","smile","smiling face with smiling eyes"]},{"id":":face_savoring_food:","symbol":"😋","group":"people","keywords":["delicious","face","face savoring food","savouring","smile","yum"]},{"id":":smiling_face_with_sunglasses:","symbol":"😎","group":"people","keywords":["bright","cool","face","smiling face with sunglasses","sun","sunglasses"]},{"id":":smiling_face_with_heart-eyes:","symbol":"😍","group":"people","keywords":["eye","face","love","smile","smiling face with heart-eyes"]},{"id":":face_blowing_a_kiss:","symbol":"😘","group":"people","keywords":["face","face blowing a kiss","kiss"]},{"id":":kissing_face:","symbol":"😗","group":"people","keywords":["face","kiss","kissing face"]},{"id":":kissing_face_with_smiling_eyes:","symbol":"😙","group":"people","keywords":["eye","face","kiss","kissing face with smiling eyes","smile"]},{"id":":kissing_face_with_closed_eyes:","symbol":"😚","group":"people","keywords":["closed","eye","face","kiss","kissing face with closed eyes"]},{"id":":smiling_face:","symbol":"☺","group":"people","keywords":["face","outlined","relaxed","smile","smiling face"]},{"id":":slightly_smiling_face:","symbol":"🙂","group":"people","keywords":["face","slightly smiling face","smile"]},{"id":":hugging_face:","symbol":"🤗","group":"people","keywords":["face","hug","hugging"]},{"id":":star-struck:","symbol":"🤩","group":"people","keywords":["eyes","face","grinning","star","star-struck",""]},{"id":":thinking_face:","symbol":"🤔","group":"people","keywords":["face","thinking"]},{"id":":face_with_raised_eyebrow:","symbol":"🤨","group":"people","keywords":["distrust","face with raised eyebrow","skeptic",""]},{"id":":neutral_face:","symbol":"😐","group":"people","keywords":["deadpan","face","neutral"]},{"id":":expressionless_face:","symbol":"😑","group":"people","keywords":["expressionless","face","inexpressive","unexpressive"]},{"id":":face_without_mouth:","symbol":"😶","group":"people","keywords":["face","face without mouth","mouth","quiet","silent"]},{"id":":face_with_rolling_eyes:","symbol":"🙄","group":"people","keywords":["eyes","face","face with rolling eyes","rolling"]},{"id":":smirking_face:","symbol":"😏","group":"people","keywords":["face","smirk","smirking face"]},{"id":":persevering_face:","symbol":"😣","group":"people","keywords":["face","persevere","persevering face"]},{"id":":sad_but_relieved_face:","symbol":"😥","group":"people","keywords":["disappointed","face","relieved","sad but relieved face","whew"]},{"id":":face_with_open_mouth:","symbol":"😮","group":"people","keywords":["face","face with open mouth","mouth","open","sympathy"]},{"id":":zipper-mouth_face:","symbol":"🤐","group":"people","keywords":["face","mouth","zipper","zipper-mouth face"]},{"id":":hushed_face:","symbol":"😯","group":"people","keywords":["face","hushed","stunned","surprised"]},{"id":":sleepy_face:","symbol":"😪","group":"people","keywords":["face","sleep","sleepy face"]},{"id":":tired_face:","symbol":"😫","group":"people","keywords":["face","tired"]},{"id":":sleeping_face:","symbol":"😴","group":"people","keywords":["face","sleep","sleeping face","zzz"]},{"id":":relieved_face:","symbol":"😌","group":"people","keywords":["face","relieved"]},{"id":":face_with_tongue:","symbol":"😛","group":"people","keywords":["face","face with tongue","tongue"]},{"id":":winking_face_with_tongue:","symbol":"😜","group":"people","keywords":["eye","face","joke","tongue","wink","winking face with tongue"]},{"id":":squinting_face_with_tongue:","symbol":"😝","group":"people","keywords":["eye","face","horrible","squinting face with tongue","taste","tongue"]},{"id":":drooling_face:","symbol":"🤤","group":"people","keywords":["drooling","face"]},{"id":":unamused_face:","symbol":"😒","group":"people","keywords":["face","unamused","unhappy"]},{"id":":downcast_face_with_sweat:","symbol":"😓","group":"people","keywords":["cold","downcast face with sweat","face","sweat"]},{"id":":pensive_face:","symbol":"😔","group":"people","keywords":["dejected","face","pensive"]},{"id":":confused_face:","symbol":"😕","group":"people","keywords":["confused","face"]},{"id":":upside-down_face:","symbol":"🙃","group":"people","keywords":["face","upside-down"]},{"id":":money-mouth_face:","symbol":"🤑","group":"people","keywords":["face","money","money-mouth face","mouth"]},{"id":":astonished_face:","symbol":"😲","group":"people","keywords":["astonished","face","shocked","totally"]},{"id":":frowning_face:","symbol":"☹","group":"people","keywords":["face","frown","frowning face"]},{"id":":slightly_frowning_face:","symbol":"🙁","group":"people","keywords":["face","frown","slightly frowning face"]},{"id":":confounded_face:","symbol":"😖","group":"people","keywords":["confounded","face"]},{"id":":disappointed_face:","symbol":"😞","group":"people","keywords":["disappointed","face"]},{"id":":worried_face:","symbol":"😟","group":"people","keywords":["face","worried"]},{"id":":face_with_steam_from_nose:","symbol":"😤","group":"people","keywords":["face","face with steam from nose","triumph","won"]},{"id":":crying_face:","symbol":"😢","group":"people","keywords":["cry","crying face","face","sad","tear"]},{"id":":loudly_crying_face:","symbol":"😭","group":"people","keywords":["cry","face","loudly crying face","sad","sob","tear"]},{"id":":frowning_face_with_open_mouth:","symbol":"😦","group":"people","keywords":["face","frown","frowning face with open mouth","mouth","open"]},{"id":":anguished_face:","symbol":"😧","group":"people","keywords":["anguished","face"]},{"id":":fearful_face:","symbol":"😨","group":"people","keywords":["face","fear","fearful","scared"]},{"id":":weary_face:","symbol":"😩","group":"people","keywords":["face","tired","weary"]},{"id":":exploding_head:","symbol":"🤯","group":"people","keywords":["exploding head","shocked"]},{"id":":grimacing_face:","symbol":"😬","group":"people","keywords":["face","grimace","grimacing face"]},{"id":":anxious_face_with_sweat:","symbol":"😰","group":"people","keywords":["anxious face with sweat","blue","cold","face","rushed","sweat"]},{"id":":face_screaming_in_fear:","symbol":"😱","group":"people","keywords":["face","face screaming in fear","fear","munch","scared","scream"]},{"id":":flushed_face:","symbol":"😳","group":"people","keywords":["dazed","face","flushed"]},{"id":":zany_face:","symbol":"🤪","group":"people","keywords":["eye","goofy","large","small","zany face"]},{"id":":dizzy_face:","symbol":"😵","group":"people","keywords":["dizzy","face"]},{"id":":pouting_face:","symbol":"😡","group":"people","keywords":["angry","face","mad","pouting","rage","red"]},{"id":":angry_face:","symbol":"😠","group":"people","keywords":["angry","face","mad"]},{"id":":face_with_symbols_on_mouth:","symbol":"🤬","group":"people","keywords":["face with symbols on mouth","swearing",""]},{"id":":face_with_medical_mask:","symbol":"😷","group":"people","keywords":["cold","doctor","face","face with medical mask","mask","sick"]},{"id":":face_with_thermometer:","symbol":"🤒","group":"people","keywords":["face","face with thermometer","ill","sick","thermometer"]},{"id":":face_with_head-bandage:","symbol":"🤕","group":"people","keywords":["bandage","face","face with head-bandage","hurt","injury"]},{"id":":nauseated_face:","symbol":"🤢","group":"people","keywords":["face","nauseated","vomit"]},{"id":":face_vomiting:","symbol":"🤮","group":"people","keywords":["face vomiting","sick","vomit"]},{"id":":sneezing_face:","symbol":"🤧","group":"people","keywords":["face","gesundheit","sneeze","sneezing face"]},{"id":":smiling_face_with_halo:","symbol":"😇","group":"people","keywords":["angel","face","fantasy","halo","innocent","smiling face with halo"]},{"id":":cowboy_hat_face:","symbol":"🤠","group":"people","keywords":["cowboy","cowgirl","face","hat"]},{"id":":lying_face:","symbol":"🤥","group":"people","keywords":["face","lie","lying face","pinocchio"]},{"id":":shushing_face:","symbol":"🤫","group":"people","keywords":["quiet","shush","shushing face"]},{"id":":face_with_hand_over_mouth:","symbol":"🤭","group":"people","keywords":["face with hand over mouth","whoops",""]},{"id":":face_with_monocle:","symbol":"🧐","group":"people","keywords":["face with monocle","stuffy",""]},{"id":":nerd_face:","symbol":"🤓","group":"people","keywords":["face","geek","nerd"]},{"id":":smiling_face_with_horns:","symbol":"😈","group":"people","keywords":["face","fairy tale","fantasy","horns","smile","smiling face with horns"]},{"id":":angry_face_with_horns:","symbol":"👿","group":"people","keywords":["angry face with horns","demon","devil","face","fantasy","imp"]},{"id":":clown_face:","symbol":"🤡","group":"people","keywords":["clown","face"]},{"id":":ogre:","symbol":"👹","group":"people","keywords":["creature","face","fairy tale","fantasy","monster","ogre",""]},{"id":":goblin:","symbol":"👺","group":"people","keywords":["creature","face","fairy tale","fantasy","goblin","monster"]},{"id":":skull:","symbol":"💀","group":"people","keywords":["death","face","fairy tale","monster","skull"]},{"id":":skull_and_crossbones:","symbol":"☠","group":"people","keywords":["crossbones","death","face","monster","skull","skull and crossbones"]},{"id":":ghost:","symbol":"👻","group":"people","keywords":["creature","face","fairy tale","fantasy","ghost","monster"]},{"id":":alien:","symbol":"👽","group":"people","keywords":["alien","creature","extraterrestrial","face","fantasy","ufo"]},{"id":":alien_monster:","symbol":"👾","group":"people","keywords":["alien","creature","extraterrestrial","face","monster","ufo"]},{"id":":robot_face:","symbol":"🤖","group":"people","keywords":["face","monster","robot"]},{"id":":pile_of_poo:","symbol":"💩","group":"people","keywords":["dung","face","monster","pile of poo","poo","poop"]},{"id":":grinning_cat_face:","symbol":"😺","group":"people","keywords":["cat","face","grinning cat face","mouth","open","smile"]},{"id":":grinning_cat_face_with_smiling_eyes:","symbol":"😸","group":"people","keywords":["cat","eye","face","grin","grinning cat face with smiling eyes","smile"]},{"id":":cat_face_with_tears_of_joy:","symbol":"😹","group":"people","keywords":["cat","cat face with tears of joy","face","joy","tear"]},{"id":":smiling_cat_face_with_heart-eyes:","symbol":"😻","group":"people","keywords":["cat","eye","face","love","smile","smiling cat face with heart-eyes"]},{"id":":cat_face_with_wry_smile:","symbol":"😼","group":"people","keywords":["cat","cat face with wry smile","face","ironic","smile","wry"]},{"id":":kissing_cat_face:","symbol":"😽","group":"people","keywords":["cat","eye","face","kiss","kissing cat face"]},{"id":":weary_cat_face:","symbol":"🙀","group":"people","keywords":["cat","face","oh","surprised","weary"]},{"id":":crying_cat_face:","symbol":"😿","group":"people","keywords":["cat","cry","crying cat face","face","sad","tear"]},{"id":":pouting_cat_face:","symbol":"😾","group":"people","keywords":["cat","face","pouting"]},{"id":":see-no-evil_monkey:","symbol":"🙈","group":"people","keywords":["evil","face","forbidden","monkey","see","see-no-evil monkey"]},{"id":":hear-no-evil_monkey:","symbol":"🙉","group":"people","keywords":["evil","face","forbidden","hear","hear-no-evil monkey","monkey"]},{"id":":speak-no-evil_monkey:","symbol":"🙊","group":"people","keywords":["evil","face","forbidden","monkey","speak","speak-no-evil monkey"]},{"id":":baby:","symbol":"👶","group":"people","keywords":["baby","young"]},{"id":":child:","symbol":"🧒","group":"people","keywords":["child","gender-neutral","unspecified gender","young"]},{"id":":boy:","symbol":"👦","group":"people","keywords":["boy","young"]},{"id":":girl:","symbol":"👧","group":"people","keywords":["girl","Virgo","young","zodiac"]},{"id":":person:","symbol":"🧑","group":"people","keywords":["adult","gender-neutral","person","unspecified gender"]},{"id":":person_blond_hair:","symbol":"👱","group":"people","keywords":["blond","blond-haired person","person: blond hair"]},{"id":":man:","symbol":"👨","group":"people","keywords":["adult","man"]},{"id":":man_blond_hair:","symbol":"👱‍♂️","group":"people","keywords":["blond","blond-haired man","man","man: blond hair"]},{"id":":man_beard:","symbol":"🧔","group":"people","keywords":["beard","man: beard","person",""]},{"id":":woman:","symbol":"👩","group":"people","keywords":["adult","woman"]},{"id":":woman_blond_hair:","symbol":"👱‍♀️","group":"people","keywords":["blond-haired woman","blonde","woman","woman: blond hair"]},{"id":":older_person:","symbol":"🧓","group":"people","keywords":["adult","gender-neutral","old","older person","unspecified gender"]},{"id":":old_man:","symbol":"👴","group":"people","keywords":["adult","man","old"]},{"id":":old_woman:","symbol":"👵","group":"people","keywords":["adult","old","woman"]},{"id":":man_health_worker:","symbol":"👨‍⚕️","group":"people","keywords":["doctor","healthcare","man","man health worker","nurse","therapist"]},{"id":":woman_health_worker:","symbol":"👩‍⚕️","group":"people","keywords":["doctor","healthcare","nurse","therapist","woman","woman health worker"]},{"id":":man_student:","symbol":"👨‍🎓","group":"people","keywords":["graduate","man","student"]},{"id":":woman_student:","symbol":"👩‍🎓","group":"people","keywords":["graduate","student","woman"]},{"id":":man_teacher:","symbol":"👨‍🏫","group":"people","keywords":["instructor","man","professor","teacher"]},{"id":":woman_teacher:","symbol":"👩‍🏫","group":"people","keywords":["instructor","professor","teacher","woman"]},{"id":":man_judge:","symbol":"👨‍⚖️","group":"people","keywords":["justice","man","man judge","scales"]},{"id":":woman_judge:","symbol":"👩‍⚖️","group":"people","keywords":["judge","scales","woman"]},{"id":":man_farmer:","symbol":"👨‍🌾","group":"people","keywords":["farmer","gardener","man","rancher"]},{"id":":woman_farmer:","symbol":"👩‍🌾","group":"people","keywords":["farmer","gardener","rancher","woman"]},{"id":":man_cook:","symbol":"👨‍🍳","group":"people","keywords":["chef","cook","man"]},{"id":":woman_cook:","symbol":"👩‍🍳","group":"people","keywords":["chef","cook","woman"]},{"id":":man_mechanic:","symbol":"👨‍🔧","group":"people","keywords":["electrician","man","mechanic","plumber","tradesperson"]},{"id":":woman_mechanic:","symbol":"👩‍🔧","group":"people","keywords":["electrician","mechanic","plumber","tradesperson","woman"]},{"id":":man_factory_worker:","symbol":"👨‍🏭","group":"people","keywords":["assembly","factory","industrial","man","worker"]},{"id":":woman_factory_worker:","symbol":"👩‍🏭","group":"people","keywords":["assembly","factory","industrial","woman","worker"]},{"id":":man_office_worker:","symbol":"👨‍💼","group":"people","keywords":["architect","business","man","man office worker","manager","white-collar"]},{"id":":woman_office_worker:","symbol":"👩‍💼","group":"people","keywords":["architect","business","manager","white-collar","woman","woman office worker"]},{"id":":man_scientist:","symbol":"👨‍🔬","group":"people","keywords":["biologist","chemist","engineer","man","physicist","scientist"]},{"id":":woman_scientist:","symbol":"👩‍🔬","group":"people","keywords":["biologist","chemist","engineer","physicist","scientist","woman"]},{"id":":man_technologist:","symbol":"👨‍💻","group":"people","keywords":["coder","developer","inventor","man","software","technologist"]},{"id":":woman_technologist:","symbol":"👩‍💻","group":"people","keywords":["coder","developer","inventor","software","technologist","woman"]},{"id":":man_singer:","symbol":"👨‍🎤","group":"people","keywords":["actor","entertainer","man","rock","singer","star"]},{"id":":woman_singer:","symbol":"👩‍🎤","group":"people","keywords":["actor","entertainer","rock","singer","star","woman"]},{"id":":man_artist:","symbol":"👨‍🎨","group":"people","keywords":["artist","man","palette"]},{"id":":woman_artist:","symbol":"👩‍🎨","group":"people","keywords":["artist","palette","woman"]},{"id":":man_pilot:","symbol":"👨‍✈️","group":"people","keywords":["man","pilot","plane"]},{"id":":woman_pilot:","symbol":"👩‍✈️","group":"people","keywords":["pilot","plane","woman"]},{"id":":man_astronaut:","symbol":"👨‍🚀","group":"people","keywords":["astronaut","man","rocket"]},{"id":":woman_astronaut:","symbol":"👩‍🚀","group":"people","keywords":["astronaut","rocket","woman"]},{"id":":man_firefighter:","symbol":"👨‍🚒","group":"people","keywords":["firefighter","firetruck","man"]},{"id":":woman_firefighter:","symbol":"👩‍🚒","group":"people","keywords":["firefighter","firetruck","woman"]},{"id":":police_officer:","symbol":"👮","group":"people","keywords":["cop","officer","police"]},{"id":":man_police_officer:","symbol":"👮‍♂️","group":"people","keywords":["cop","man","officer","police"]},{"id":":woman_police_officer:","symbol":"👮‍♀️","group":"people","keywords":["cop","officer","police","woman"]},{"id":":detective:","symbol":"🕵","group":"people","keywords":["detective","sleuth","spy"]},{"id":":man_detective:","symbol":"🕵️‍♂️","group":"people","keywords":["detective","man","sleuth","spy"]},{"id":":woman_detective:","symbol":"🕵️‍♀️","group":"people","keywords":["detective","sleuth","spy","woman"]},{"id":":guard:","symbol":"💂","group":"people","keywords":["guard"]},{"id":":man_guard:","symbol":"💂‍♂️","group":"people","keywords":["guard","man"]},{"id":":woman_guard:","symbol":"💂‍♀️","group":"people","keywords":["guard","woman"]},{"id":":construction_worker:","symbol":"👷","group":"people","keywords":["construction","hat","worker"]},{"id":":man_construction_worker:","symbol":"👷‍♂️","group":"people","keywords":["construction","man","worker"]},{"id":":woman_construction_worker:","symbol":"👷‍♀️","group":"people","keywords":["construction","woman","worker"]},{"id":":prince:","symbol":"🤴","group":"people","keywords":["prince"]},{"id":":princess:","symbol":"👸","group":"people","keywords":["fairy tale","fantasy","princess"]},{"id":":person_wearing_turban:","symbol":"👳","group":"people","keywords":["person wearing turban","turban"]},{"id":":man_wearing_turban:","symbol":"👳‍♂️","group":"people","keywords":["man","man wearing turban","turban"]},{"id":":woman_wearing_turban:","symbol":"👳‍♀️","group":"people","keywords":["turban","woman","woman wearing turban"]},{"id":":man_with_chinese_cap:","symbol":"👲","group":"people","keywords":["gua pi mao","hat","man","man with Chinese cap"]},{"id":":woman_with_headscarf:","symbol":"🧕","group":"people","keywords":["headscarf","hijab","mantilla","tichel","woman with headscarf",""]},{"id":":man_in_tuxedo:","symbol":"🤵","group":"people","keywords":["groom","man","man in tuxedo","tuxedo"]},{"id":":bride_with_veil:","symbol":"👰","group":"people","keywords":["bride","bride with veil","veil","wedding"]},{"id":":pregnant_woman:","symbol":"🤰","group":"people","keywords":["pregnant","woman"]},{"id":":breast-feeding:","symbol":"🤱","group":"people","keywords":["baby","breast","breast-feeding","nursing"]},{"id":":baby_angel:","symbol":"👼","group":"people","keywords":["angel","baby","face","fairy tale","fantasy"]},{"id":":santa_claus:","symbol":"🎅","group":"people","keywords":["celebration","Christmas","claus","father","santa","Santa Claus"]},{"id":":mrs._claus:","symbol":"🤶","group":"people","keywords":["celebration","Christmas","claus","mother","Mrs.","Mrs. Claus"]},{"id":":mage:","symbol":"🧙","group":"people","keywords":["mage","sorcerer","sorceress","witch","wizard"]},{"id":":man_mage:","symbol":"🧙‍♂️","group":"people","keywords":["man mage","sorcerer","wizard"]},{"id":":woman_mage:","symbol":"🧙‍♀️","group":"people","keywords":["sorceress","witch","woman mage"]},{"id":":fairy:","symbol":"🧚","group":"people","keywords":["fairy","Oberon","Puck","Titania"]},{"id":":man_fairy:","symbol":"🧚‍♂️","group":"people","keywords":["man fairy","Oberon","Puck"]},{"id":":woman_fairy:","symbol":"🧚‍♀️","group":"people","keywords":["Titania","woman fairy"]},{"id":":vampire:","symbol":"🧛","group":"people","keywords":["Dracula","undead","vampire"]},{"id":":man_vampire:","symbol":"🧛‍♂️","group":"people","keywords":["Dracula","man vampire","undead"]},{"id":":woman_vampire:","symbol":"🧛‍♀️","group":"people","keywords":["undead","woman vampire"]},{"id":":merperson:","symbol":"🧜","group":"people","keywords":["mermaid","merman","merperson","merwoman"]},{"id":":merman:","symbol":"🧜‍♂️","group":"people","keywords":["merman","Triton"]},{"id":":mermaid:","symbol":"🧜‍♀️","group":"people","keywords":["mermaid","merwoman"]},{"id":":elf:","symbol":"🧝","group":"people","keywords":["elf","magical",""]},{"id":":man_elf:","symbol":"🧝‍♂️","group":"people","keywords":["magical","man elf"]},{"id":":woman_elf:","symbol":"🧝‍♀️","group":"people","keywords":["magical","woman elf"]},{"id":":genie:","symbol":"🧞","group":"people","keywords":["djinn","genie",""]},{"id":":man_genie:","symbol":"🧞‍♂️","group":"people","keywords":["djinn","man genie"]},{"id":":woman_genie:","symbol":"🧞‍♀️","group":"people","keywords":["djinn","woman genie"]},{"id":":zombie:","symbol":"🧟","group":"people","keywords":["undead","walking dead","zombie",""]},{"id":":man_zombie:","symbol":"🧟‍♂️","group":"people","keywords":["man zombie","undead","walking dead"]},{"id":":woman_zombie:","symbol":"🧟‍♀️","group":"people","keywords":["undead","walking dead","woman zombie"]},{"id":":person_frowning:","symbol":"🙍","group":"people","keywords":["frown","gesture","person frowning"]},{"id":":man_frowning:","symbol":"🙍‍♂️","group":"people","keywords":["frowning","gesture","man"]},{"id":":woman_frowning:","symbol":"🙍‍♀️","group":"people","keywords":["frowning","gesture","woman"]},{"id":":person_pouting:","symbol":"🙎","group":"people","keywords":["gesture","person pouting","pouting"]},{"id":":man_pouting:","symbol":"🙎‍♂️","group":"people","keywords":["gesture","man","pouting"]},{"id":":woman_pouting:","symbol":"🙎‍♀️","group":"people","keywords":["gesture","pouting","woman"]},{"id":":person_gesturing_no:","symbol":"🙅","group":"people","keywords":["forbidden","gesture","hand","person gesturing NO","prohibited"]},{"id":":man_gesturing_no:","symbol":"🙅‍♂️","group":"people","keywords":["forbidden","gesture","hand","man","man gesturing NO","prohibited"]},{"id":":woman_gesturing_no:","symbol":"🙅‍♀️","group":"people","keywords":["forbidden","gesture","hand","prohibited","woman","woman gesturing NO"]},{"id":":person_gesturing_ok:","symbol":"🙆","group":"people","keywords":["gesture","hand","OK","person gesturing OK"]},{"id":":man_gesturing_ok:","symbol":"🙆‍♂️","group":"people","keywords":["gesture","hand","man","man gesturing OK","OK"]},{"id":":woman_gesturing_ok:","symbol":"🙆‍♀️","group":"people","keywords":["gesture","hand","OK","woman","woman gesturing OK"]},{"id":":person_tipping_hand:","symbol":"💁","group":"people","keywords":["hand","help","information","person tipping hand","sassy","tipping"]},{"id":":man_tipping_hand:","symbol":"💁‍♂️","group":"people","keywords":["man","man tipping hand","sassy","tipping hand"]},{"id":":woman_tipping_hand:","symbol":"💁‍♀️","group":"people","keywords":["sassy","tipping hand","woman","woman tipping hand"]},{"id":":person_raising_hand:","symbol":"🙋","group":"people","keywords":["gesture","hand","happy","person raising hand","raised"]},{"id":":man_raising_hand:","symbol":"🙋‍♂️","group":"people","keywords":["gesture","man","man raising hand","raising hand"]},{"id":":woman_raising_hand:","symbol":"🙋‍♀️","group":"people","keywords":["gesture","raising hand","woman","woman raising hand"]},{"id":":person_bowing:","symbol":"🙇","group":"people","keywords":["apology","bow","gesture","person bowing","sorry"]},{"id":":man_bowing:","symbol":"🙇‍♂️","group":"people","keywords":["apology","bowing","favor","gesture","man","sorry"]},{"id":":woman_bowing:","symbol":"🙇‍♀️","group":"people","keywords":["apology","bowing","favor","gesture","sorry","woman"]},{"id":":person_facepalming:","symbol":"🤦","group":"people","keywords":["disbelief","exasperation","face","palm","person facepalming"]},{"id":":man_facepalming:","symbol":"🤦‍♂️","group":"people","keywords":["disbelief","exasperation","facepalm","man","man facepalming"]},{"id":":woman_facepalming:","symbol":"🤦‍♀️","group":"people","keywords":["disbelief","exasperation","facepalm","woman","woman facepalming"]},{"id":":person_shrugging:","symbol":"🤷","group":"people","keywords":["doubt","ignorance","indifference","person shrugging","shrug"]},{"id":":man_shrugging:","symbol":"🤷‍♂️","group":"people","keywords":["doubt","ignorance","indifference","man","man shrugging","shrug"]},{"id":":woman_shrugging:","symbol":"🤷‍♀️","group":"people","keywords":["doubt","ignorance","indifference","shrug","woman","woman shrugging"]},{"id":":person_getting_massage:","symbol":"💆","group":"people","keywords":["face","massage","person getting massage","salon"]},{"id":":man_getting_massage:","symbol":"💆‍♂️","group":"people","keywords":["face","man","man getting massage","massage"]},{"id":":woman_getting_massage:","symbol":"💆‍♀️","group":"people","keywords":["face","massage","woman","woman getting massage"]},{"id":":person_getting_haircut:","symbol":"💇","group":"people","keywords":["barber","beauty","haircut","parlor","person getting haircut"]},{"id":":man_getting_haircut:","symbol":"💇‍♂️","group":"people","keywords":["haircut","man","man getting haircut"]},{"id":":woman_getting_haircut:","symbol":"💇‍♀️","group":"people","keywords":["haircut","woman","woman getting haircut"]},{"id":":person_walking:","symbol":"🚶","group":"people","keywords":["hike","person walking","walk","walking"]},{"id":":man_walking:","symbol":"🚶‍♂️","group":"people","keywords":["hike","man","man walking","walk"]},{"id":":woman_walking:","symbol":"🚶‍♀️","group":"people","keywords":["hike","walk","woman","woman walking"]},{"id":":person_running:","symbol":"🏃","group":"people","keywords":["marathon","person running","running"]},{"id":":man_running:","symbol":"🏃‍♂️","group":"people","keywords":["man","marathon","racing","running"]},{"id":":woman_running:","symbol":"🏃‍♀️","group":"people","keywords":["marathon","racing","running","woman"]},{"id":":woman_dancing:","symbol":"💃","group":"people","keywords":["dancing","woman"]},{"id":":man_dancing:","symbol":"🕺","group":"people","keywords":["dance","man","man dancing"]},{"id":":people_with_bunny_ears:","symbol":"👯","group":"people","keywords":["bunny ear","dancer","partying","people with bunny ears"]},{"id":":men_with_bunny_ears:","symbol":"👯‍♂️","group":"people","keywords":["bunny ear","dancer","men","men with bunny ears","partying"]},{"id":":women_with_bunny_ears:","symbol":"👯‍♀️","group":"people","keywords":["bunny ear","dancer","partying","women","women with bunny ears"]},{"id":":person_in_steamy_room:","symbol":"🧖","group":"people","keywords":["person in steamy room","sauna","steam room",""]},{"id":":man_in_steamy_room:","symbol":"🧖‍♂️","group":"people","keywords":["man in steamy room","sauna","steam room"]},{"id":":woman_in_steamy_room:","symbol":"🧖‍♀️","group":"people","keywords":["sauna","steam room","woman in steamy room"]},{"id":":person_climbing:","symbol":"🧗","group":"people","keywords":["climber","person climbing"]},{"id":":man_climbing:","symbol":"🧗‍♂️","group":"people","keywords":["climber","man climbing"]},{"id":":woman_climbing:","symbol":"🧗‍♀️","group":"people","keywords":["climber","woman climbing"]},{"id":":person_in_lotus_position:","symbol":"🧘","group":"people","keywords":["meditation","person in lotus position","yoga",""]},{"id":":man_in_lotus_position:","symbol":"🧘‍♂️","group":"people","keywords":["man in lotus position","meditation","yoga"]},{"id":":woman_in_lotus_position:","symbol":"🧘‍♀️","group":"people","keywords":["meditation","woman in lotus position","yoga"]},{"id":":person_taking_bath:","symbol":"🛀","group":"people","keywords":["bath","bathtub","person taking bath"]},{"id":":person_in_bed:","symbol":"🛌","group":"people","keywords":["hotel","person in bed","sleep"]},{"id":":man_in_suit_levitating:","symbol":"🕴","group":"people","keywords":["business","man","man in suit levitating","suit"]},{"id":":speaking_head:","symbol":"🗣","group":"people","keywords":["face","head","silhouette","speak","speaking"]},{"id":":bust_in_silhouette:","symbol":"👤","group":"people","keywords":["bust","bust in silhouette","silhouette"]},{"id":":busts_in_silhouette:","symbol":"👥","group":"people","keywords":["bust","busts in silhouette","silhouette"]},{"id":":person_fencing:","symbol":"🤺","group":"people","keywords":["fencer","fencing","person fencing","sword"]},{"id":":horse_racing:","symbol":"🏇","group":"people","keywords":["horse","jockey","racehorse","racing"]},{"id":":skier:","symbol":"⛷","group":"people","keywords":["ski","skier","snow"]},{"id":":snowboarder:","symbol":"🏂","group":"people","keywords":["ski","snow","snowboard","snowboarder"]},{"id":":person_golfing:","symbol":"🏌","group":"people","keywords":["ball","golf","person golfing"]},{"id":":man_golfing:","symbol":"🏌️‍♂️","group":"people","keywords":["golf","man","man golfing"]},{"id":":woman_golfing:","symbol":"🏌️‍♀️","group":"people","keywords":["golf","woman","woman golfing"]},{"id":":person_surfing:","symbol":"🏄","group":"people","keywords":["person surfing","surfing"]},{"id":":man_surfing:","symbol":"🏄‍♂️","group":"people","keywords":["man","surfing"]},{"id":":woman_surfing:","symbol":"🏄‍♀️","group":"people","keywords":["surfing","woman"]},{"id":":person_rowing_boat:","symbol":"🚣","group":"people","keywords":["boat","person rowing boat","rowboat"]},{"id":":man_rowing_boat:","symbol":"🚣‍♂️","group":"people","keywords":["boat","man","man rowing boat","rowboat"]},{"id":":woman_rowing_boat:","symbol":"🚣‍♀️","group":"people","keywords":["boat","rowboat","woman","woman rowing boat"]},{"id":":person_swimming:","symbol":"🏊","group":"people","keywords":["person swimming","swim"]},{"id":":man_swimming:","symbol":"🏊‍♂️","group":"people","keywords":["man","man swimming","swim"]},{"id":":woman_swimming:","symbol":"🏊‍♀️","group":"people","keywords":["swim","woman","woman swimming"]},{"id":":person_bouncing_ball:","symbol":"⛹","group":"people","keywords":["ball","person bouncing ball"]},{"id":":man_bouncing_ball:","symbol":"⛹️‍♂️","group":"people","keywords":["ball","man","man bouncing ball"]},{"id":":woman_bouncing_ball:","symbol":"⛹️‍♀️","group":"people","keywords":["ball","woman","woman bouncing ball"]},{"id":":person_lifting_weights:","symbol":"🏋","group":"people","keywords":["lifter","person lifting weights","weight"]},{"id":":man_lifting_weights:","symbol":"🏋️‍♂️","group":"people","keywords":["man","man lifting weights","weight lifter"]},{"id":":woman_lifting_weights:","symbol":"🏋️‍♀️","group":"people","keywords":["weight lifter","woman","woman lifting weights"]},{"id":":person_biking:","symbol":"🚴","group":"people","keywords":["bicycle","biking","cyclist","person biking"]},{"id":":man_biking:","symbol":"🚴‍♂️","group":"people","keywords":["bicycle","biking","cyclist","man"]},{"id":":woman_biking:","symbol":"🚴‍♀️","group":"people","keywords":["bicycle","biking","cyclist","woman"]},{"id":":person_mountain_biking:","symbol":"🚵","group":"people","keywords":["bicycle","bicyclist","bike","cyclist","mountain","person mountain biking"]},{"id":":man_mountain_biking:","symbol":"🚵‍♂️","group":"people","keywords":["bicycle","bike","cyclist","man","man mountain biking","mountain"]},{"id":":woman_mountain_biking:","symbol":"🚵‍♀️","group":"people","keywords":["bicycle","bike","biking","cyclist","mountain","woman"]},{"id":":racing_car:","symbol":"🏎","group":"people","keywords":["car","racing"]},{"id":":motorcycle:","symbol":"🏍","group":"people","keywords":["motorcycle","racing"]},{"id":":person_cartwheeling:","symbol":"🤸","group":"people","keywords":["cartwheel","gymnastics","person cartwheeling"]},{"id":":man_cartwheeling:","symbol":"🤸‍♂️","group":"people","keywords":["cartwheel","gymnastics","man","man cartwheeling"]},{"id":":woman_cartwheeling:","symbol":"🤸‍♀️","group":"people","keywords":["cartwheel","gymnastics","woman","woman cartwheeling"]},{"id":":people_wrestling:","symbol":"🤼","group":"people","keywords":["people wrestling","wrestle","wrestler"]},{"id":":men_wrestling:","symbol":"🤼‍♂️","group":"people","keywords":["men","men wrestling","wrestle"]},{"id":":women_wrestling:","symbol":"🤼‍♀️","group":"people","keywords":["women","women wrestling","wrestle"]},{"id":":person_playing_water_polo:","symbol":"🤽","group":"people","keywords":["person playing water polo","polo","water"]},{"id":":man_playing_water_polo:","symbol":"🤽‍♂️","group":"people","keywords":["man","man playing water polo","water polo"]},{"id":":woman_playing_water_polo:","symbol":"🤽‍♀️","group":"people","keywords":["water polo","woman","woman playing water polo"]},{"id":":person_playing_handball:","symbol":"🤾","group":"people","keywords":["ball","handball","person playing handball"]},{"id":":man_playing_handball:","symbol":"🤾‍♂️","group":"people","keywords":["handball","man","man playing handball"]},{"id":":woman_playing_handball:","symbol":"🤾‍♀️","group":"people","keywords":["handball","woman","woman playing handball"]},{"id":":person_juggling:","symbol":"🤹","group":"people","keywords":["balance","juggle","multitask","person juggling","skill"]},{"id":":man_juggling:","symbol":"🤹‍♂️","group":"people","keywords":["juggling","man","multitask"]},{"id":":woman_juggling:","symbol":"🤹‍♀️","group":"people","keywords":["juggling","multitask","woman"]},{"id":":man_and_woman_holding_hands:","symbol":"👫","group":"people","keywords":["couple","hand","hold","man","man and woman holding hands","woman"]},{"id":":two_men_holding_hands:","symbol":"👬","group":"people","keywords":["couple","Gemini","man","twins","two men holding hands","zodiac"]},{"id":":two_women_holding_hands:","symbol":"👭","group":"people","keywords":["couple","hand","two women holding hands","woman"]},{"id":":kiss:","symbol":"💏","group":"people","keywords":["couple","kiss"]},{"id":":kiss_woman_man:","symbol":"👩‍❤️‍💋‍👨","group":"people","keywords":["couple","kiss","man","woman"]},{"id":":kiss_man_man:","symbol":"👨‍❤️‍💋‍👨","group":"people","keywords":["couple","kiss","man"]},{"id":":kiss_woman_woman:","symbol":"👩‍❤️‍💋‍👩","group":"people","keywords":["couple","kiss","woman"]},{"id":":couple_with_heart:","symbol":"💑","group":"people","keywords":["couple","couple with heart","love"]},{"id":":couple_with_heart_woman_man:","symbol":"👩‍❤️‍👨","group":"people","keywords":["couple","couple with heart","love","man","woman"]},{"id":":couple_with_heart_man_man:","symbol":"👨‍❤️‍👨","group":"people","keywords":["couple","couple with heart","love","man"]},{"id":":couple_with_heart_woman_woman:","symbol":"👩‍❤️‍👩","group":"people","keywords":["couple","couple with heart","love","woman"]},{"id":":family:","symbol":"👪","group":"people","keywords":["family"]},{"id":":family_man_woman_boy:","symbol":"👨‍👩‍👦","group":"people","keywords":["boy","family","man","woman"]},{"id":":family_man_woman_girl:","symbol":"👨‍👩‍👧","group":"people","keywords":["family","girl","man","woman"]},{"id":":family_man_woman_girl_boy:","symbol":"👨‍👩‍👧‍👦","group":"people","keywords":["boy","family","girl","man","woman"]},{"id":":family_man_woman_boy_boy:","symbol":"👨‍👩‍👦‍👦","group":"people","keywords":["boy","family","man","woman"]},{"id":":family_man_woman_girl_girl:","symbol":"👨‍👩‍👧‍👧","group":"people","keywords":["family","girl","man","woman"]},{"id":":family_man_man_boy:","symbol":"👨‍👨‍👦","group":"people","keywords":["boy","family","man"]},{"id":":family_man_man_girl:","symbol":"👨‍👨‍👧","group":"people","keywords":["family","girl","man"]},{"id":":family_man_man_girl_boy:","symbol":"👨‍👨‍👧‍👦","group":"people","keywords":["boy","family","girl","man"]},{"id":":family_man_man_boy_boy:","symbol":"👨‍👨‍👦‍👦","group":"people","keywords":["boy","family","man"]},{"id":":family_man_man_girl_girl:","symbol":"👨‍👨‍👧‍👧","group":"people","keywords":["family","girl","man"]},{"id":":family_woman_woman_boy:","symbol":"👩‍👩‍👦","group":"people","keywords":["boy","family","woman"]},{"id":":family_woman_woman_girl:","symbol":"👩‍👩‍👧","group":"people","keywords":["family","girl","woman"]},{"id":":family_woman_woman_girl_boy:","symbol":"👩‍👩‍👧‍👦","group":"people","keywords":["boy","family","girl","woman"]},{"id":":family_woman_woman_boy_boy:","symbol":"👩‍👩‍👦‍👦","group":"people","keywords":["boy","family","woman"]},{"id":":family_woman_woman_girl_girl:","symbol":"👩‍👩‍👧‍👧","group":"people","keywords":["family","girl","woman"]},{"id":":family_man_boy:","symbol":"👨‍👦","group":"people","keywords":["boy","family","man"]},{"id":":family_man_boy_boy:","symbol":"👨‍👦‍👦","group":"people","keywords":["boy","family","man"]},{"id":":family_man_girl:","symbol":"👨‍👧","group":"people","keywords":["family","girl","man"]},{"id":":family_man_girl_boy:","symbol":"👨‍👧‍👦","group":"people","keywords":["boy","family","girl","man"]},{"id":":family_man_girl_girl:","symbol":"👨‍👧‍👧","group":"people","keywords":["family","girl","man"]},{"id":":family_woman_boy:","symbol":"👩‍👦","group":"people","keywords":["boy","family","woman"]},{"id":":family_woman_boy_boy:","symbol":"👩‍👦‍👦","group":"people","keywords":["boy","family","woman"]},{"id":":family_woman_girl:","symbol":"👩‍👧","group":"people","keywords":["family","girl","woman"]},{"id":":family_woman_girl_boy:","symbol":"👩‍👧‍👦","group":"people","keywords":["boy","family","girl","woman"]},{"id":":family_woman_girl_girl:","symbol":"👩‍👧‍👧","group":"people","keywords":["family","girl","woman"]},{"id":":selfie:","symbol":"🤳","group":"people","keywords":["camera","phone","selfie"]},{"id":":flexed_biceps:","symbol":"💪","group":"people","keywords":["biceps","comic","flex","flexed biceps","muscle"]},{"id":":backhand_index_pointing_left:","symbol":"👈","group":"people","keywords":["backhand","backhand index pointing left","finger","hand","index","point"]},{"id":":backhand_index_pointing_right:","symbol":"👉","group":"people","keywords":["backhand","backhand index pointing right","finger","hand","index","point"]},{"id":":index_pointing_up:","symbol":"☝","group":"people","keywords":["finger","hand","index","index pointing up","point","up"]},{"id":":backhand_index_pointing_up:","symbol":"👆","group":"people","keywords":["backhand","backhand index pointing up","finger","hand","point","up"]},{"id":":middle_finger:","symbol":"🖕","group":"people","keywords":["finger","hand","middle finger"]},{"id":":backhand_index_pointing_down:","symbol":"👇","group":"people","keywords":["backhand","backhand index pointing down","down","finger","hand","point"]},{"id":":victory_hand:","symbol":"✌","group":"people","keywords":["hand","v","victory"]},{"id":":crossed_fingers:","symbol":"🤞","group":"people","keywords":["cross","crossed fingers","finger","hand","luck"]},{"id":":vulcan_salute:","symbol":"🖖","group":"people","keywords":["finger","hand","spock","vulcan","vulcan salute"]},{"id":":sign_of_the_horns:","symbol":"🤘","group":"people","keywords":["finger","hand","horns","rock-on","sign of the horns"]},{"id":":call_me_hand:","symbol":"🤙","group":"people","keywords":["call","call me hand","hand"]},{"id":":hand_with_fingers_splayed:","symbol":"🖐","group":"people","keywords":["finger","hand","hand with fingers splayed","splayed"]},{"id":":raised_hand:","symbol":"✋","group":"people","keywords":["hand","raised hand"]},{"id":":ok_hand:","symbol":"👌","group":"people","keywords":["hand","OK"]},{"id":":thumbs_up:","symbol":"👍","group":"people","keywords":["+1","hand","thumb","thumbs up","up"]},{"id":":thumbs_down:","symbol":"👎","group":"people","keywords":["-1","down","hand","thumb","thumbs down"]},{"id":":raised_fist:","symbol":"✊","group":"people","keywords":["clenched","fist","hand","punch","raised fist"]},{"id":":oncoming_fist:","symbol":"👊","group":"people","keywords":["clenched","fist","hand","oncoming fist","punch"]},{"id":":left-facing_fist:","symbol":"🤛","group":"people","keywords":["fist","left-facing fist","leftwards"]},{"id":":right-facing_fist:","symbol":"🤜","group":"people","keywords":["fist","right-facing fist","rightwards"]},{"id":":raised_back_of_hand:","symbol":"🤚","group":"people","keywords":["backhand","raised","raised back of hand"]},{"id":":waving_hand:","symbol":"👋","group":"people","keywords":["hand","wave","waving"]},{"id":":love-you_gesture:","symbol":"🤟","group":"people","keywords":["hand","ILY","love-you gesture"]},{"id":":writing_hand:","symbol":"✍","group":"people","keywords":["hand","write","writing hand"]},{"id":":clapping_hands:","symbol":"👏","group":"people","keywords":["clap","clapping hands","hand"]},{"id":":open_hands:","symbol":"👐","group":"people","keywords":["hand","open","open hands"]},{"id":":raising_hands:","symbol":"🙌","group":"people","keywords":["celebration","gesture","hand","hooray","raised","raising hands"]},{"id":":palms_up_together:","symbol":"🤲","group":"people","keywords":["palms up together","prayer",""]},{"id":":folded_hands:","symbol":"🙏","group":"people","keywords":["ask","folded hands","hand","please","pray","thanks"]},{"id":":handshake:","symbol":"🤝","group":"people","keywords":["agreement","hand","handshake","meeting","shake"]},{"id":":nail_polish:","symbol":"💅","group":"people","keywords":["care","cosmetics","manicure","nail","polish"]},{"id":":ear:","symbol":"👂","group":"people","keywords":["body","ear"]},{"id":":nose:","symbol":"👃","group":"people","keywords":["body","nose"]},{"id":":footprints:","symbol":"👣","group":"people","keywords":["clothing","footprint","footprints","print"]},{"id":":eyes:","symbol":"👀","group":"people","keywords":["eye","eyes","face"]},{"id":":eye:","symbol":"👁","group":"people","keywords":["body","eye"]},{"id":":eye_in_speech_bubble:","symbol":"👁️‍🗨️","group":"people","keywords":["eye","eye in speech bubble","speech bubble","witness"]},{"id":":brain:","symbol":"🧠","group":"people","keywords":["brain","intelligent"]},{"id":":tongue:","symbol":"👅","group":"people","keywords":["body","tongue"]},{"id":":mouth:","symbol":"👄","group":"people","keywords":["lips","mouth"]},{"id":":kiss_mark:","symbol":"💋","group":"people","keywords":["kiss","kiss mark","lips"]},{"id":":heart_with_arrow:","symbol":"💘","group":"people","keywords":["arrow","cupid","heart with arrow"]},{"id":":heart_with_ribbon:","symbol":"💝","group":"people","keywords":["heart with ribbon","ribbon","valentine"]},{"id":":sparkling_heart:","symbol":"💖","group":"people","keywords":["excited","sparkle","sparkling heart"]},{"id":":growing_heart:","symbol":"💗","group":"people","keywords":["excited","growing","growing heart","nervous","pulse"]},{"id":":beating_heart:","symbol":"💓","group":"people","keywords":["beating","beating heart","heartbeat","pulsating"]},{"id":":revolving_hearts:","symbol":"💞","group":"people","keywords":["revolving","revolving hearts"]},{"id":":two_hearts:","symbol":"💕","group":"people","keywords":["love","two hearts"]},{"id":":love_letter:","symbol":"💌","group":"people","keywords":["heart","letter","love","mail"]},{"id":":heavy_heart_exclamation:","symbol":"❣","group":"people","keywords":["exclamation","heavy heart exclamation","mark","punctuation"]},{"id":":broken_heart:","symbol":"💔","group":"people","keywords":["break","broken","broken heart"]},{"id":":red_heart:","symbol":"❤","group":"people","keywords":["heart","red heart"]},{"id":":orange_heart:","symbol":"🧡","group":"people","keywords":["orange","orange heart"]},{"id":":yellow_heart:","symbol":"💛","group":"people","keywords":["yellow","yellow heart"]},{"id":":green_heart:","symbol":"💚","group":"people","keywords":["green","green heart"]},{"id":":blue_heart:","symbol":"💙","group":"people","keywords":["blue","blue heart"]},{"id":":purple_heart:","symbol":"💜","group":"people","keywords":["purple","purple heart"]},{"id":":black_heart:","symbol":"🖤","group":"people","keywords":["black","black heart","evil","wicked"]},{"id":":heart_decoration:","symbol":"💟","group":"people","keywords":["heart","heart decoration"]},{"id":":zzz:","symbol":"💤","group":"people","keywords":["comic","sleep","zzz"]},{"id":":anger_symbol:","symbol":"💢","group":"people","keywords":["anger symbol","angry","comic","mad"]},{"id":":bomb:","symbol":"💣","group":"people","keywords":["bomb","comic"]},{"id":":collision:","symbol":"💥","group":"people","keywords":["boom","collision","comic"]},{"id":":sweat_droplets:","symbol":"💦","group":"people","keywords":["comic","splashing","sweat","sweat droplets"]},{"id":":dashing_away:","symbol":"💨","group":"people","keywords":["comic","dash","dashing away","running"]},{"id":":dizzy:","symbol":"💫","group":"people","keywords":["comic","dizzy","star"]},{"id":":speech_balloon:","symbol":"💬","group":"people","keywords":["balloon","bubble","comic","dialog","speech"]},{"id":":left_speech_bubble:","symbol":"🗨","group":"people","keywords":["dialog","left speech bubble","speech"]},{"id":":right_anger_bubble:","symbol":"🗯","group":"people","keywords":["angry","balloon","bubble","mad","right anger bubble"]},{"id":":thought_balloon:","symbol":"💭","group":"people","keywords":["balloon","bubble","comic","thought"]},{"id":":hole:","symbol":"🕳","group":"people","keywords":["hole"]},{"id":":glasses:","symbol":"👓","group":"people","keywords":["clothing","eye","eyeglasses","eyewear","glasses"]},{"id":":sunglasses:","symbol":"🕶","group":"people","keywords":["dark","eye","eyewear","glasses","sunglasses"]},{"id":":necktie:","symbol":"👔","group":"people","keywords":["clothing","necktie","tie"]},{"id":":t-shirt:","symbol":"👕","group":"people","keywords":["clothing","shirt","t-shirt","tshirt"]},{"id":":jeans:","symbol":"👖","group":"people","keywords":["clothing","jeans","pants","trousers"]},{"id":":scarf:","symbol":"🧣","group":"people","keywords":["neck","scarf"]},{"id":":gloves:","symbol":"🧤","group":"people","keywords":["gloves","hand"]},{"id":":coat:","symbol":"🧥","group":"people","keywords":["coat","jacket"]},{"id":":socks:","symbol":"🧦","group":"people","keywords":["socks","stocking"]},{"id":":dress:","symbol":"👗","group":"people","keywords":["clothing","dress"]},{"id":":kimono:","symbol":"👘","group":"people","keywords":["clothing","kimono"]},{"id":":bikini:","symbol":"👙","group":"people","keywords":["bikini","clothing","swim"]},{"id":":woman’s_clothes:","symbol":"👚","group":"people","keywords":["clothing","woman","woman’s clothes"]},{"id":":purse:","symbol":"👛","group":"people","keywords":["clothing","coin","purse"]},{"id":":handbag:","symbol":"👜","group":"people","keywords":["bag","clothing","handbag","purse"]},{"id":":clutch_bag:","symbol":"👝","group":"people","keywords":["bag","clothing","clutch bag","pouch"]},{"id":":shopping_bags:","symbol":"🛍","group":"people","keywords":["bag","hotel","shopping","shopping bags"]},{"id":":backpack:","symbol":"🎒","group":"people","keywords":["backpack","bag","rucksack","satchel","school"]},{"id":":man’s_shoe:","symbol":"👞","group":"people","keywords":["clothing","man","man’s shoe","shoe"]},{"id":":running_shoe:","symbol":"👟","group":"people","keywords":["athletic","clothing","running shoe","shoe","sneaker"]},{"id":":high-heeled_shoe:","symbol":"👠","group":"people","keywords":["clothing","heel","high-heeled shoe","shoe","woman"]},{"id":":woman’s_sandal:","symbol":"👡","group":"people","keywords":["clothing","sandal","shoe","woman","woman’s sandal"]},{"id":":woman’s_boot:","symbol":"👢","group":"people","keywords":["boot","clothing","shoe","woman","woman’s boot"]},{"id":":crown:","symbol":"👑","group":"people","keywords":["clothing","crown","king","queen"]},{"id":":woman’s_hat:","symbol":"👒","group":"people","keywords":["clothing","hat","woman","woman’s hat"]},{"id":":top_hat:","symbol":"🎩","group":"people","keywords":["clothing","hat","top","tophat"]},{"id":":graduation_cap:","symbol":"🎓","group":"people","keywords":["cap","celebration","clothing","graduation","hat"]},{"id":":billed_cap:","symbol":"🧢","group":"people","keywords":["baseball cap","billed cap"]},{"id":":rescue_worker’s_helmet:","symbol":"⛑","group":"people","keywords":["aid","cross","face","hat","helmet","rescue worker’s helmet"]},{"id":":prayer_beads:","symbol":"📿","group":"people","keywords":["beads","clothing","necklace","prayer","religion"]},{"id":":lipstick:","symbol":"💄","group":"people","keywords":["cosmetics","lipstick","makeup"]},{"id":":ring:","symbol":"💍","group":"people","keywords":["diamond","ring"]},{"id":":gem_stone:","symbol":"💎","group":"people","keywords":["diamond","gem","gem stone","jewel"]},{"id":":monkey_face:","symbol":"🐵","group":"nature","keywords":["face","monkey"]},{"id":":monkey:","symbol":"🐒","group":"nature","keywords":["monkey"]},{"id":":gorilla:","symbol":"🦍","group":"nature","keywords":["gorilla"]},{"id":":dog_face:","symbol":"🐶","group":"nature","keywords":["dog","face","pet"]},{"id":":dog:","symbol":"🐕","group":"nature","keywords":["dog","pet"]},{"id":":poodle:","symbol":"🐩","group":"nature","keywords":["dog","poodle"]},{"id":":wolf_face:","symbol":"🐺","group":"nature","keywords":["face","wolf"]},{"id":":fox_face:","symbol":"🦊","group":"nature","keywords":["face","fox"]},{"id":":cat_face:","symbol":"🐱","group":"nature","keywords":["cat","face","pet"]},{"id":":cat:","symbol":"🐈","group":"nature","keywords":["cat","pet"]},{"id":":lion_face:","symbol":"🦁","group":"nature","keywords":["face","Leo","lion","zodiac"]},{"id":":tiger_face:","symbol":"🐯","group":"nature","keywords":["face","tiger"]},{"id":":tiger:","symbol":"🐅","group":"nature","keywords":["tiger"]},{"id":":leopard:","symbol":"🐆","group":"nature","keywords":["leopard"]},{"id":":horse_face:","symbol":"🐴","group":"nature","keywords":["face","horse"]},{"id":":horse:","symbol":"🐎","group":"nature","keywords":["equestrian","horse","racehorse","racing"]},{"id":":unicorn_face:","symbol":"🦄","group":"nature","keywords":["face","unicorn"]},{"id":":zebra:","symbol":"🦓","group":"nature","keywords":["stripe","zebra"]},{"id":":deer:","symbol":"🦌","group":"nature","keywords":["deer"]},{"id":":cow_face:","symbol":"🐮","group":"nature","keywords":["cow","face"]},{"id":":ox:","symbol":"🐂","group":"nature","keywords":["bull","ox","Taurus","zodiac"]},{"id":":water_buffalo:","symbol":"🐃","group":"nature","keywords":["buffalo","water"]},{"id":":cow:","symbol":"🐄","group":"nature","keywords":["cow"]},{"id":":pig_face:","symbol":"🐷","group":"nature","keywords":["face","pig"]},{"id":":pig:","symbol":"🐖","group":"nature","keywords":["pig","sow"]},{"id":":boar:","symbol":"🐗","group":"nature","keywords":["boar","pig"]},{"id":":pig_nose:","symbol":"🐽","group":"nature","keywords":["face","nose","pig"]},{"id":":ram:","symbol":"🐏","group":"nature","keywords":["Aries","male","ram","sheep","zodiac"]},{"id":":ewe:","symbol":"🐑","group":"nature","keywords":["ewe","female","sheep"]},{"id":":goat:","symbol":"🐐","group":"nature","keywords":["Capricorn","goat","zodiac"]},{"id":":camel:","symbol":"🐪","group":"nature","keywords":["camel","dromedary","hump"]},{"id":":two-hump_camel:","symbol":"🐫","group":"nature","keywords":["bactrian","camel","hump","two-hump camel"]},{"id":":giraffe:","symbol":"🦒","group":"nature","keywords":["giraffe","spots"]},{"id":":elephant:","symbol":"🐘","group":"nature","keywords":["elephant"]},{"id":":rhinoceros:","symbol":"🦏","group":"nature","keywords":["rhinoceros"]},{"id":":mouse_face:","symbol":"🐭","group":"nature","keywords":["face","mouse"]},{"id":":mouse:","symbol":"🐁","group":"nature","keywords":["mouse"]},{"id":":rat:","symbol":"🐀","group":"nature","keywords":["rat"]},{"id":":hamster_face:","symbol":"🐹","group":"nature","keywords":["face","hamster","pet"]},{"id":":rabbit_face:","symbol":"🐰","group":"nature","keywords":["bunny","face","pet","rabbit"]},{"id":":rabbit:","symbol":"🐇","group":"nature","keywords":["bunny","pet","rabbit"]},{"id":":chipmunk:","symbol":"🐿","group":"nature","keywords":["chipmunk","squirrel"]},{"id":":hedgehog:","symbol":"🦔","group":"nature","keywords":["hedgehog","spiny"]},{"id":":bat:","symbol":"🦇","group":"nature","keywords":["bat","vampire"]},{"id":":bear_face:","symbol":"🐻","group":"nature","keywords":["bear","face"]},{"id":":koala:","symbol":"🐨","group":"nature","keywords":["bear","koala"]},{"id":":panda_face:","symbol":"🐼","group":"nature","keywords":["face","panda"]},{"id":":paw_prints:","symbol":"🐾","group":"nature","keywords":["feet","paw","paw prints","print"]},{"id":":turkey:","symbol":"🦃","group":"nature","keywords":["bird","turkey"]},{"id":":chicken:","symbol":"🐔","group":"nature","keywords":["bird","chicken"]},{"id":":rooster:","symbol":"🐓","group":"nature","keywords":["bird","rooster"]},{"id":":hatching_chick:","symbol":"🐣","group":"nature","keywords":["baby","bird","chick","hatching"]},{"id":":baby_chick:","symbol":"🐤","group":"nature","keywords":["baby","bird","chick"]},{"id":":front-facing_baby_chick:","symbol":"🐥","group":"nature","keywords":["baby","bird","chick","front-facing baby chick"]},{"id":":bird:","symbol":"🐦","group":"nature","keywords":["bird"]},{"id":":penguin:","symbol":"🐧","group":"nature","keywords":["bird","penguin"]},{"id":":dove:","symbol":"🕊","group":"nature","keywords":["bird","dove","fly","peace"]},{"id":":eagle:","symbol":"🦅","group":"nature","keywords":["bird","eagle"]},{"id":":duck:","symbol":"🦆","group":"nature","keywords":["bird","duck"]},{"id":":owl:","symbol":"🦉","group":"nature","keywords":["bird","owl","wise"]},{"id":":frog_face:","symbol":"🐸","group":"nature","keywords":["face","frog"]},{"id":":crocodile:","symbol":"🐊","group":"nature","keywords":["crocodile"]},{"id":":turtle:","symbol":"🐢","group":"nature","keywords":["terrapin","tortoise","turtle"]},{"id":":lizard:","symbol":"🦎","group":"nature","keywords":["lizard","reptile"]},{"id":":snake:","symbol":"🐍","group":"nature","keywords":["bearer","Ophiuchus","serpent","snake","zodiac"]},{"id":":dragon_face:","symbol":"🐲","group":"nature","keywords":["dragon","face","fairy tale"]},{"id":":dragon:","symbol":"🐉","group":"nature","keywords":["dragon","fairy tale"]},{"id":":sauropod:","symbol":"🦕","group":"nature","keywords":["brachiosaurus","brontosaurus","diplodocus","sauropod"]},{"id":":t-rex:","symbol":"🦖","group":"nature","keywords":["T-Rex","Tyrannosaurus Rex"]},{"id":":spouting_whale:","symbol":"🐳","group":"nature","keywords":["face","spouting","whale"]},{"id":":whale:","symbol":"🐋","group":"nature","keywords":["whale"]},{"id":":dolphin:","symbol":"🐬","group":"nature","keywords":["dolphin","flipper"]},{"id":":fish:","symbol":"🐟","group":"nature","keywords":["fish","Pisces","zodiac"]},{"id":":tropical_fish:","symbol":"🐠","group":"nature","keywords":["fish","tropical"]},{"id":":blowfish:","symbol":"🐡","group":"nature","keywords":["blowfish","fish"]},{"id":":shark:","symbol":"🦈","group":"nature","keywords":["fish","shark"]},{"id":":octopus:","symbol":"🐙","group":"nature","keywords":["octopus"]},{"id":":spiral_shell:","symbol":"🐚","group":"nature","keywords":["shell","spiral"]},{"id":":crab:","symbol":"🦀","group":"nature","keywords":["Cancer","crab","zodiac"]},{"id":":shrimp:","symbol":"🦐","group":"nature","keywords":["food","shellfish","shrimp","small"]},{"id":":squid:","symbol":"🦑","group":"nature","keywords":["food","molusc","squid"]},{"id":":snail:","symbol":"🐌","group":"nature","keywords":["snail"]},{"id":":butterfly:","symbol":"🦋","group":"nature","keywords":["butterfly","insect","pretty"]},{"id":":bug:","symbol":"🐛","group":"nature","keywords":["bug","insect"]},{"id":":ant:","symbol":"🐜","group":"nature","keywords":["ant","insect"]},{"id":":honeybee:","symbol":"🐝","group":"nature","keywords":["bee","honeybee","insect"]},{"id":":lady_beetle:","symbol":"🐞","group":"nature","keywords":["beetle","insect","lady beetle","ladybird","ladybug"]},{"id":":cricket:","symbol":"🦗","group":"nature","keywords":["cricket","grasshopper",""]},{"id":":spider:","symbol":"🕷","group":"nature","keywords":["insect","spider"]},{"id":":spider_web:","symbol":"🕸","group":"nature","keywords":["spider","web"]},{"id":":scorpion:","symbol":"🦂","group":"nature","keywords":["scorpio","Scorpio","scorpion","zodiac"]},{"id":":bouquet:","symbol":"💐","group":"nature","keywords":["bouquet","flower"]},{"id":":cherry_blossom:","symbol":"🌸","group":"nature","keywords":["blossom","cherry","flower"]},{"id":":white_flower:","symbol":"💮","group":"nature","keywords":["flower","white flower"]},{"id":":rosette:","symbol":"🏵","group":"nature","keywords":["plant","rosette"]},{"id":":rose:","symbol":"🌹","group":"nature","keywords":["flower","rose"]},{"id":":wilted_flower:","symbol":"🥀","group":"nature","keywords":["flower","wilted"]},{"id":":hibiscus:","symbol":"🌺","group":"nature","keywords":["flower","hibiscus"]},{"id":":sunflower:","symbol":"🌻","group":"nature","keywords":["flower","sun","sunflower"]},{"id":":blossom:","symbol":"🌼","group":"nature","keywords":["blossom","flower"]},{"id":":tulip:","symbol":"🌷","group":"nature","keywords":["flower","tulip"]},{"id":":seedling:","symbol":"🌱","group":"nature","keywords":["seedling","young"]},{"id":":evergreen_tree:","symbol":"🌲","group":"nature","keywords":["evergreen tree","tree"]},{"id":":deciduous_tree:","symbol":"🌳","group":"nature","keywords":["deciduous","shedding","tree"]},{"id":":palm_tree:","symbol":"🌴","group":"nature","keywords":["palm","tree"]},{"id":":cactus:","symbol":"🌵","group":"nature","keywords":["cactus","plant"]},{"id":":sheaf_of_rice:","symbol":"🌾","group":"nature","keywords":["ear","grain","rice","sheaf of rice"]},{"id":":herb:","symbol":"🌿","group":"nature","keywords":["herb","leaf"]},{"id":":shamrock:","symbol":"☘","group":"nature","keywords":["plant","shamrock"]},{"id":":four_leaf_clover:","symbol":"🍀","group":"nature","keywords":["4","clover","four","four-leaf clover","leaf"]},{"id":":maple_leaf:","symbol":"🍁","group":"nature","keywords":["falling","leaf","maple"]},{"id":":fallen_leaf:","symbol":"🍂","group":"nature","keywords":["fallen leaf","falling","leaf"]},{"id":":leaf_fluttering_in_wind:","symbol":"🍃","group":"nature","keywords":["blow","flutter","leaf","leaf fluttering in wind","wind"]},{"id":":grapes:","symbol":"🍇","group":"food","keywords":["fruit","grape","grapes"]},{"id":":melon:","symbol":"🍈","group":"food","keywords":["fruit","melon"]},{"id":":watermelon:","symbol":"🍉","group":"food","keywords":["fruit","watermelon"]},{"id":":tangerine:","symbol":"🍊","group":"food","keywords":["fruit","orange","tangerine"]},{"id":":lemon:","symbol":"🍋","group":"food","keywords":["citrus","fruit","lemon"]},{"id":":banana:","symbol":"🍌","group":"food","keywords":["banana","fruit"]},{"id":":pineapple:","symbol":"🍍","group":"food","keywords":["fruit","pineapple"]},{"id":":red_apple:","symbol":"🍎","group":"food","keywords":["apple","fruit","red"]},{"id":":green_apple:","symbol":"🍏","group":"food","keywords":["apple","fruit","green"]},{"id":":pear:","symbol":"🍐","group":"food","keywords":["fruit","pear"]},{"id":":peach:","symbol":"🍑","group":"food","keywords":["fruit","peach"]},{"id":":cherries:","symbol":"🍒","group":"food","keywords":["berries","cherries","cherry","fruit","red"]},{"id":":strawberry:","symbol":"🍓","group":"food","keywords":["berry","fruit","strawberry"]},{"id":":kiwi_fruit:","symbol":"🥝","group":"food","keywords":["food","fruit","kiwi"]},{"id":":tomato:","symbol":"🍅","group":"food","keywords":["fruit","tomato","vegetable"]},{"id":":coconut:","symbol":"🥥","group":"food","keywords":["coconut","palm","piña colada"]},{"id":":avocado:","symbol":"🥑","group":"food","keywords":["avocado","food","fruit"]},{"id":":eggplant:","symbol":"🍆","group":"food","keywords":["aubergine","eggplant","vegetable"]},{"id":":potato:","symbol":"🥔","group":"food","keywords":["food","potato","vegetable"]},{"id":":carrot:","symbol":"🥕","group":"food","keywords":["carrot","food","vegetable"]},{"id":":ear_of_corn:","symbol":"🌽","group":"food","keywords":["corn","ear","ear of corn","maize","maze"]},{"id":":hot_pepper:","symbol":"🌶","group":"food","keywords":["hot","pepper"]},{"id":":cucumber:","symbol":"🥒","group":"food","keywords":["cucumber","food","pickle","vegetable"]},{"id":":broccoli:","symbol":"🥦","group":"food","keywords":["broccoli","wild cabbage"]},{"id":":mushroom:","symbol":"🍄","group":"food","keywords":["mushroom","toadstool"]},{"id":":peanuts:","symbol":"🥜","group":"food","keywords":["food","nut","peanut","peanuts","vegetable"]},{"id":":chestnut:","symbol":"🌰","group":"food","keywords":["chestnut","plant"]},{"id":":bread:","symbol":"🍞","group":"food","keywords":["bread","loaf"]},{"id":":croissant:","symbol":"🥐","group":"food","keywords":["bread","crescent roll","croissant","food","french"]},{"id":":baguette_bread:","symbol":"🥖","group":"food","keywords":["baguette","bread","food","french"]},{"id":":pretzel:","symbol":"🥨","group":"food","keywords":["pretzel","twisted",""]},{"id":":pancakes:","symbol":"🥞","group":"food","keywords":["crêpe","food","hotcake","pancake","pancakes"]},{"id":":cheese_wedge:","symbol":"🧀","group":"food","keywords":["cheese","cheese wedge"]},{"id":":meat_on_bone:","symbol":"🍖","group":"food","keywords":["bone","meat","meat on bone"]},{"id":":poultry_leg:","symbol":"🍗","group":"food","keywords":["bone","chicken","drumstick","leg","poultry"]},{"id":":cut_of_meat:","symbol":"🥩","group":"food","keywords":["chop","cut of meat","lambchop","porkchop","steak"]},{"id":":bacon:","symbol":"🥓","group":"food","keywords":["bacon","food","meat"]},{"id":":hamburger:","symbol":"🍔","group":"food","keywords":["burger","hamburger"]},{"id":":french_fries:","symbol":"🍟","group":"food","keywords":["french","fries"]},{"id":":pizza:","symbol":"🍕","group":"food","keywords":["cheese","pizza","slice"]},{"id":":hot_dog:","symbol":"🌭","group":"food","keywords":["frankfurter","hot dog","hotdog","sausage"]},{"id":":sandwich:","symbol":"🥪","group":"food","keywords":["bread","sandwich"]},{"id":":taco:","symbol":"🌮","group":"food","keywords":["mexican","taco"]},{"id":":burrito:","symbol":"🌯","group":"food","keywords":["burrito","mexican","wrap"]},{"id":":stuffed_flatbread:","symbol":"🥙","group":"food","keywords":["falafel","flatbread","food","gyro","kebab","stuffed"]},{"id":":egg:","symbol":"🥚","group":"food","keywords":["egg","food"]},{"id":":cooking:","symbol":"🍳","group":"food","keywords":["cooking","egg","frying","pan"]},{"id":":shallow_pan_of_food:","symbol":"🥘","group":"food","keywords":["casserole","food","paella","pan","shallow","shallow pan of food"]},{"id":":pot_of_food:","symbol":"🍲","group":"food","keywords":["pot","pot of food","stew"]},{"id":":bowl_with_spoon:","symbol":"🥣","group":"food","keywords":["bowl with spoon","breakfast","cereal","congee",""]},{"id":":green_salad:","symbol":"🥗","group":"food","keywords":["food","green","salad"]},{"id":":popcorn:","symbol":"🍿","group":"food","keywords":["popcorn"]},{"id":":canned_food:","symbol":"🥫","group":"food","keywords":["can","canned food"]},{"id":":bento_box:","symbol":"🍱","group":"food","keywords":["bento","box"]},{"id":":rice_cracker:","symbol":"🍘","group":"food","keywords":["cracker","rice"]},{"id":":rice_ball:","symbol":"🍙","group":"food","keywords":["ball","Japanese","rice"]},{"id":":cooked_rice:","symbol":"🍚","group":"food","keywords":["cooked","rice"]},{"id":":curry_rice:","symbol":"🍛","group":"food","keywords":["curry","rice"]},{"id":":steaming_bowl:","symbol":"🍜","group":"food","keywords":["bowl","noodle","ramen","steaming"]},{"id":":spaghetti:","symbol":"🍝","group":"food","keywords":["pasta","spaghetti"]},{"id":":roasted_sweet_potato:","symbol":"🍠","group":"food","keywords":["potato","roasted","sweet"]},{"id":":oden:","symbol":"🍢","group":"food","keywords":["kebab","oden","seafood","skewer","stick"]},{"id":":sushi:","symbol":"🍣","group":"food","keywords":["sushi"]},{"id":":fried_shrimp:","symbol":"🍤","group":"food","keywords":["fried","prawn","shrimp","tempura"]},{"id":":fish_cake_with_swirl:","symbol":"🍥","group":"food","keywords":["cake","fish","fish cake with swirl","pastry","swirl"]},{"id":":dango:","symbol":"🍡","group":"food","keywords":["dango","dessert","Japanese","skewer","stick","sweet"]},{"id":":dumpling:","symbol":"🥟","group":"food","keywords":["dumpling","empanada","gyōza","jiaozi","pierogi","potsticker"]},{"id":":fortune_cookie:","symbol":"🥠","group":"food","keywords":["fortune cookie","prophecy"]},{"id":":takeout_box:","symbol":"🥡","group":"food","keywords":["oyster pail","takeout box"]},{"id":":soft_ice_cream:","symbol":"🍦","group":"food","keywords":["cream","dessert","ice","icecream","soft","sweet"]},{"id":":shaved_ice:","symbol":"🍧","group":"food","keywords":["dessert","ice","shaved","sweet"]},{"id":":ice_cream:","symbol":"🍨","group":"food","keywords":["cream","dessert","ice","sweet"]},{"id":":doughnut:","symbol":"🍩","group":"food","keywords":["dessert","donut","doughnut","sweet"]},{"id":":cookie:","symbol":"🍪","group":"food","keywords":["cookie","dessert","sweet"]},{"id":":birthday_cake:","symbol":"🎂","group":"food","keywords":["birthday","cake","celebration","dessert","pastry","sweet"]},{"id":":shortcake:","symbol":"🍰","group":"food","keywords":["cake","dessert","pastry","shortcake","slice","sweet"]},{"id":":pie:","symbol":"🥧","group":"food","keywords":["filling","pastry","pie",""]},{"id":":chocolate_bar:","symbol":"🍫","group":"food","keywords":["bar","chocolate","dessert","sweet"]},{"id":":candy:","symbol":"🍬","group":"food","keywords":["candy","dessert","sweet"]},{"id":":lollipop:","symbol":"🍭","group":"food","keywords":["candy","dessert","lollipop","sweet"]},{"id":":custard:","symbol":"🍮","group":"food","keywords":["custard","dessert","pudding","sweet"]},{"id":":honey_pot:","symbol":"🍯","group":"food","keywords":["honey","honeypot","pot","sweet"]},{"id":":baby_bottle:","symbol":"🍼","group":"food","keywords":["baby","bottle","drink","milk"]},{"id":":glass_of_milk:","symbol":"🥛","group":"food","keywords":["drink","glass","glass of milk","milk"]},{"id":":hot_beverage:","symbol":"☕","group":"food","keywords":["beverage","coffee","drink","hot","steaming","tea"]},{"id":":teacup_without_handle:","symbol":"🍵","group":"food","keywords":["beverage","cup","drink","tea","teacup","teacup without handle"]},{"id":":sake:","symbol":"🍶","group":"food","keywords":["bar","beverage","bottle","cup","drink","sake"]},{"id":":bottle_with_popping_cork:","symbol":"🍾","group":"food","keywords":["bar","bottle","bottle with popping cork","cork","drink","popping"]},{"id":":wine_glass:","symbol":"🍷","group":"food","keywords":["bar","beverage","drink","glass","wine"]},{"id":":cocktail_glass:","symbol":"🍸","group":"food","keywords":["bar","cocktail","drink","glass"]},{"id":":tropical_drink:","symbol":"🍹","group":"food","keywords":["bar","drink","tropical"]},{"id":":beer_mug:","symbol":"🍺","group":"food","keywords":["bar","beer","drink","mug"]},{"id":":clinking_beer_mugs:","symbol":"🍻","group":"food","keywords":["bar","beer","clink","clinking beer mugs","drink","mug"]},{"id":":clinking_glasses:","symbol":"🥂","group":"food","keywords":["celebrate","clink","clinking glasses","drink","glass"]},{"id":":tumbler_glass:","symbol":"🥃","group":"food","keywords":["glass","liquor","shot","tumbler","whisky"]},{"id":":cup_with_straw:","symbol":"🥤","group":"food","keywords":["cup with straw","juice","soda",""]},{"id":":chopsticks:","symbol":"🥢","group":"food","keywords":["chopsticks","hashi",""]},{"id":":fork_and_knife_with_plate:","symbol":"🍽","group":"food","keywords":["cooking","fork","fork and knife with plate","knife","plate"]},{"id":":fork_and_knife:","symbol":"🍴","group":"food","keywords":["cooking","cutlery","fork","fork and knife","knife"]},{"id":":spoon:","symbol":"🥄","group":"food","keywords":["spoon","tableware"]},{"id":":kitchen_knife:","symbol":"🔪","group":"food","keywords":["cooking","hocho","kitchen knife","knife","tool","weapon"]},{"id":":amphora:","symbol":"🏺","group":"food","keywords":["amphora","Aquarius","cooking","drink","jug","zodiac"]},{"id":":globe_showing_europe-africa:","symbol":"🌍","group":"travel","keywords":["Africa","earth","Europe","globe","globe showing Europe-Africa","world"]},{"id":":globe_showing_americas:","symbol":"🌎","group":"travel","keywords":["Americas","earth","globe","globe showing Americas","world"]},{"id":":globe_showing_asia-australia:","symbol":"🌏","group":"travel","keywords":["Asia","Australia","earth","globe","globe showing Asia-Australia","world"]},{"id":":globe_with_meridians:","symbol":"🌐","group":"travel","keywords":["earth","globe","globe with meridians","meridians","world"]},{"id":":world_map:","symbol":"🗺","group":"travel","keywords":["map","world"]},{"id":":map_of_japan:","symbol":"🗾","group":"travel","keywords":["Japan","map","map of Japan"]},{"id":":snow-capped_mountain:","symbol":"🏔","group":"travel","keywords":["cold","mountain","snow","snow-capped mountain"]},{"id":":mountain:","symbol":"⛰","group":"travel","keywords":["mountain"]},{"id":":volcano:","symbol":"🌋","group":"travel","keywords":["eruption","mountain","volcano"]},{"id":":mount_fuji:","symbol":"🗻","group":"travel","keywords":["fuji","mount fuji","mountain"]},{"id":":camping:","symbol":"🏕","group":"travel","keywords":["camping"]},{"id":":beach_with_umbrella:","symbol":"🏖","group":"travel","keywords":["beach","beach with umbrella","umbrella"]},{"id":":desert:","symbol":"🏜","group":"travel","keywords":["desert"]},{"id":":desert_island:","symbol":"🏝","group":"travel","keywords":["desert","island"]},{"id":":national_park:","symbol":"🏞","group":"travel","keywords":["national park","park"]},{"id":":stadium:","symbol":"🏟","group":"travel","keywords":["stadium"]},{"id":":classical_building:","symbol":"🏛","group":"travel","keywords":["classical","classical building"]},{"id":":building_construction:","symbol":"🏗","group":"travel","keywords":["building construction","construction"]},{"id":":houses:","symbol":"🏘","group":"travel","keywords":["houses"]},{"id":":derelict_house:","symbol":"🏚","group":"travel","keywords":["derelict","house"]},{"id":":house:","symbol":"🏠","group":"travel","keywords":["home","house"]},{"id":":house_with_garden:","symbol":"🏡","group":"travel","keywords":["garden","home","house","house with garden"]},{"id":":office_building:","symbol":"🏢","group":"travel","keywords":["building","office building"]},{"id":":japanese_post_office:","symbol":"🏣","group":"travel","keywords":["Japanese","Japanese post office","post"]},{"id":":post_office:","symbol":"🏤","group":"travel","keywords":["European","post","post office"]},{"id":":hospital:","symbol":"🏥","group":"travel","keywords":["doctor","hospital","medicine"]},{"id":":bank:","symbol":"🏦","group":"travel","keywords":["bank","building"]},{"id":":hotel:","symbol":"🏨","group":"travel","keywords":["building","hotel"]},{"id":":love_hotel:","symbol":"🏩","group":"travel","keywords":["hotel","love"]},{"id":":convenience_store:","symbol":"🏪","group":"travel","keywords":["convenience","store"]},{"id":":school:","symbol":"🏫","group":"travel","keywords":["building","school"]},{"id":":department_store:","symbol":"🏬","group":"travel","keywords":["department","store"]},{"id":":factory:","symbol":"🏭","group":"travel","keywords":["building","factory"]},{"id":":japanese_castle:","symbol":"🏯","group":"travel","keywords":["castle","Japanese"]},{"id":":castle:","symbol":"🏰","group":"travel","keywords":["castle","European"]},{"id":":wedding:","symbol":"💒","group":"travel","keywords":["chapel","romance","wedding"]},{"id":":tokyo_tower:","symbol":"🗼","group":"travel","keywords":["Tokyo","tower"]},{"id":":statue_of_liberty:","symbol":"🗽","group":"travel","keywords":["liberty","statue","Statue of Liberty"]},{"id":":church:","symbol":"⛪","group":"travel","keywords":["Christian","church","cross","religion"]},{"id":":mosque:","symbol":"🕌","group":"travel","keywords":["islam","mosque","Muslim","religion"]},{"id":":synagogue:","symbol":"🕍","group":"travel","keywords":["Jew","Jewish","religion","synagogue","temple"]},{"id":":shinto_shrine:","symbol":"⛩","group":"travel","keywords":["religion","shinto","shrine"]},{"id":":kaaba:","symbol":"🕋","group":"travel","keywords":["islam","kaaba","Muslim","religion"]},{"id":":fountain:","symbol":"⛲","group":"travel","keywords":["fountain"]},{"id":":tent:","symbol":"⛺","group":"travel","keywords":["camping","tent"]},{"id":":foggy:","symbol":"🌁","group":"travel","keywords":["fog","foggy"]},{"id":":night_with_stars:","symbol":"🌃","group":"travel","keywords":["night","night with stars","star"]},{"id":":cityscape:","symbol":"🏙","group":"travel","keywords":["city","cityscape"]},{"id":":sunrise_over_mountains:","symbol":"🌄","group":"travel","keywords":["morning","mountain","sun","sunrise","sunrise over mountains"]},{"id":":sunrise:","symbol":"🌅","group":"travel","keywords":["morning","sun","sunrise"]},{"id":":cityscape_at_dusk:","symbol":"🌆","group":"travel","keywords":["city","cityscape at dusk","dusk","evening","landscape","sunset"]},{"id":":sunset:","symbol":"🌇","group":"travel","keywords":["dusk","sun","sunset"]},{"id":":bridge_at_night:","symbol":"🌉","group":"travel","keywords":["bridge","bridge at night","night"]},{"id":":hot_springs:","symbol":"♨","group":"travel","keywords":["hot","hotsprings","springs","steaming"]},{"id":":milky_way:","symbol":"🌌","group":"travel","keywords":["milky way","space"]},{"id":":carousel_horse:","symbol":"🎠","group":"travel","keywords":["carousel","horse"]},{"id":":ferris_wheel:","symbol":"🎡","group":"travel","keywords":["amusement park","ferris","wheel"]},{"id":":roller_coaster:","symbol":"🎢","group":"travel","keywords":["amusement park","coaster","roller"]},{"id":":barber_pole:","symbol":"💈","group":"travel","keywords":["barber","haircut","pole"]},{"id":":circus_tent:","symbol":"🎪","group":"travel","keywords":["circus","tent"]},{"id":":locomotive:","symbol":"🚂","group":"travel","keywords":["engine","locomotive","railway","steam","train"]},{"id":":railway_car:","symbol":"🚃","group":"travel","keywords":["car","electric","railway","train","tram","trolleybus"]},{"id":":high-speed_train:","symbol":"🚄","group":"travel","keywords":["high-speed train","railway","shinkansen","speed","train"]},{"id":":bullet_train:","symbol":"🚅","group":"travel","keywords":["bullet","railway","shinkansen","speed","train"]},{"id":":train:","symbol":"🚆","group":"travel","keywords":["railway","train"]},{"id":":metro:","symbol":"🚇","group":"travel","keywords":["metro","subway"]},{"id":":light_rail:","symbol":"🚈","group":"travel","keywords":["light rail","railway"]},{"id":":station:","symbol":"🚉","group":"travel","keywords":["railway","station","train"]},{"id":":tram:","symbol":"🚊","group":"travel","keywords":["tram","trolleybus"]},{"id":":monorail:","symbol":"🚝","group":"travel","keywords":["monorail","vehicle"]},{"id":":mountain_railway:","symbol":"🚞","group":"travel","keywords":["car","mountain","railway"]},{"id":":tram_car:","symbol":"🚋","group":"travel","keywords":["car","tram","trolleybus"]},{"id":":bus:","symbol":"🚌","group":"travel","keywords":["bus","vehicle"]},{"id":":oncoming_bus:","symbol":"🚍","group":"travel","keywords":["bus","oncoming"]},{"id":":trolleybus:","symbol":"🚎","group":"travel","keywords":["bus","tram","trolley","trolleybus"]},{"id":":minibus:","symbol":"🚐","group":"travel","keywords":["bus","minibus"]},{"id":":ambulance:","symbol":"🚑","group":"travel","keywords":["ambulance","vehicle"]},{"id":":fire_engine:","symbol":"🚒","group":"travel","keywords":["engine","fire","truck"]},{"id":":police_car:","symbol":"🚓","group":"travel","keywords":["car","patrol","police"]},{"id":":oncoming_police_car:","symbol":"🚔","group":"travel","keywords":["car","oncoming","police"]},{"id":":taxi:","symbol":"🚕","group":"travel","keywords":["taxi","vehicle"]},{"id":":oncoming_taxi:","symbol":"🚖","group":"travel","keywords":["oncoming","taxi"]},{"id":":automobile:","symbol":"🚗","group":"travel","keywords":["automobile","car"]},{"id":":oncoming_automobile:","symbol":"🚘","group":"travel","keywords":["automobile","car","oncoming"]},{"id":":sport_utility_vehicle:","symbol":"🚙","group":"travel","keywords":["recreational","sport utility","sport utility vehicle"]},{"id":":delivery_truck:","symbol":"🚚","group":"travel","keywords":["delivery","truck"]},{"id":":articulated_lorry:","symbol":"🚛","group":"travel","keywords":["articulated lorry","lorry","semi","truck"]},{"id":":tractor:","symbol":"🚜","group":"travel","keywords":["tractor","vehicle"]},{"id":":bicycle:","symbol":"🚲","group":"travel","keywords":["bicycle","bike"]},{"id":":kick_scooter:","symbol":"🛴","group":"travel","keywords":["kick","scooter"]},{"id":":motor_scooter:","symbol":"🛵","group":"travel","keywords":["motor","scooter"]},{"id":":bus_stop:","symbol":"🚏","group":"travel","keywords":["bus","busstop","stop"]},{"id":":motorway:","symbol":"🛣","group":"travel","keywords":["highway","motorway","road"]},{"id":":railway_track:","symbol":"🛤","group":"travel","keywords":["railway","railway track","train"]},{"id":":oil_drum:","symbol":"🛢","group":"travel","keywords":["drum","oil"]},{"id":":fuel_pump:","symbol":"⛽","group":"travel","keywords":["diesel","fuel","fuelpump","gas","pump","station"]},{"id":":police_car_light:","symbol":"🚨","group":"travel","keywords":["beacon","car","light","police","revolving"]},{"id":":horizontal_traffic_light:","symbol":"🚥","group":"travel","keywords":["horizontal traffic light","light","signal","traffic"]},{"id":":vertical_traffic_light:","symbol":"🚦","group":"travel","keywords":["light","signal","traffic","vertical traffic light"]},{"id":":stop_sign:","symbol":"🛑","group":"travel","keywords":["octagonal","sign","stop"]},{"id":":construction:","symbol":"🚧","group":"travel","keywords":["barrier","construction"]},{"id":":anchor:","symbol":"⚓","group":"travel","keywords":["anchor","ship","tool"]},{"id":":sailboat:","symbol":"⛵","group":"travel","keywords":["boat","resort","sailboat","sea","yacht"]},{"id":":canoe:","symbol":"🛶","group":"travel","keywords":["boat","canoe"]},{"id":":speedboat:","symbol":"🚤","group":"travel","keywords":["boat","speedboat"]},{"id":":passenger_ship:","symbol":"🛳","group":"travel","keywords":["passenger","ship"]},{"id":":ferry:","symbol":"⛴","group":"travel","keywords":["boat","ferry","passenger"]},{"id":":motor_boat:","symbol":"🛥","group":"travel","keywords":["boat","motor boat","motorboat"]},{"id":":ship:","symbol":"🚢","group":"travel","keywords":["boat","passenger","ship"]},{"id":":airplane:","symbol":"✈","group":"travel","keywords":["aeroplane","airplane"]},{"id":":small_airplane:","symbol":"🛩","group":"travel","keywords":["aeroplane","airplane","small airplane"]},{"id":":airplane_departure:","symbol":"🛫","group":"travel","keywords":["aeroplane","airplane","check-in","departure","departures"]},{"id":":airplane_arrival:","symbol":"🛬","group":"travel","keywords":["aeroplane","airplane","airplane arrival","arrivals","arriving","landing"]},{"id":":seat:","symbol":"💺","group":"travel","keywords":["chair","seat"]},{"id":":helicopter:","symbol":"🚁","group":"travel","keywords":["helicopter","vehicle"]},{"id":":suspension_railway:","symbol":"🚟","group":"travel","keywords":["railway","suspension"]},{"id":":mountain_cableway:","symbol":"🚠","group":"travel","keywords":["cable","gondola","mountain","mountain cableway"]},{"id":":aerial_tramway:","symbol":"🚡","group":"travel","keywords":["aerial","cable","car","gondola","tramway"]},{"id":":satellite:","symbol":"🛰","group":"travel","keywords":["satellite","space"]},{"id":":rocket:","symbol":"🚀","group":"travel","keywords":["rocket","space"]},{"id":":flying_saucer:","symbol":"🛸","group":"travel","keywords":["flying saucer","UFO"]},{"id":":bellhop_bell:","symbol":"🛎","group":"travel","keywords":["bell","bellhop","hotel"]},{"id":":hourglass_done:","symbol":"⌛","group":"travel","keywords":["hourglass done","sand","timer"]},{"id":":hourglass_not_done:","symbol":"⏳","group":"travel","keywords":["hourglass","hourglass not done","sand","timer"]},{"id":":watch:","symbol":"⌚","group":"travel","keywords":["clock","watch"]},{"id":":alarm_clock:","symbol":"⏰","group":"travel","keywords":["alarm","clock"]},{"id":":stopwatch:","symbol":"⏱","group":"travel","keywords":["clock","stopwatch"]},{"id":":timer_clock:","symbol":"⏲","group":"travel","keywords":["clock","timer"]},{"id":":mantelpiece_clock:","symbol":"🕰","group":"travel","keywords":["clock","mantelpiece clock"]},{"id":":twelve_o’clock:","symbol":"🕛","group":"travel","keywords":["00","12","12:00","clock","o’clock","twelve"]},{"id":":twelve-thirty:","symbol":"🕧","group":"travel","keywords":["12","12:30","clock","thirty","twelve","twelve-thirty"]},{"id":":one_o’clock:","symbol":"🕐","group":"travel","keywords":["00","1","1:00","clock","o’clock","one"]},{"id":":one-thirty:","symbol":"🕜","group":"travel","keywords":["1","1:30","clock","one","one-thirty","thirty"]},{"id":":two_o’clock:","symbol":"🕑","group":"travel","keywords":["00","2","2:00","clock","o’clock","two"]},{"id":":two-thirty:","symbol":"🕝","group":"travel","keywords":["2","2:30","clock","thirty","two","two-thirty"]},{"id":":three_o’clock:","symbol":"🕒","group":"travel","keywords":["00","3","3:00","clock","o’clock","three"]},{"id":":three-thirty:","symbol":"🕞","group":"travel","keywords":["3","3:30","clock","thirty","three","three-thirty"]},{"id":":four_o’clock:","symbol":"🕓","group":"travel","keywords":["00","4","4:00","clock","four","o’clock"]},{"id":":four-thirty:","symbol":"🕟","group":"travel","keywords":["4","4:30","clock","four","four-thirty","thirty"]},{"id":":five_o’clock:","symbol":"🕔","group":"travel","keywords":["00","5","5:00","clock","five","o’clock"]},{"id":":five-thirty:","symbol":"🕠","group":"travel","keywords":["5","5:30","clock","five","five-thirty","thirty"]},{"id":":six_o’clock:","symbol":"🕕","group":"travel","keywords":["00","6","6:00","clock","o’clock","six"]},{"id":":six-thirty:","symbol":"🕡","group":"travel","keywords":["6","6:30","clock","six","six-thirty","thirty"]},{"id":":seven_o’clock:","symbol":"🕖","group":"travel","keywords":["00","7","7:00","clock","o’clock","seven"]},{"id":":seven-thirty:","symbol":"🕢","group":"travel","keywords":["7","7:30","clock","seven","seven-thirty","thirty"]},{"id":":eight_o’clock:","symbol":"🕗","group":"travel","keywords":["00","8","8:00","clock","eight","o’clock"]},{"id":":eight-thirty:","symbol":"🕣","group":"travel","keywords":["8","8:30","clock","eight","eight-thirty","thirty"]},{"id":":nine_o’clock:","symbol":"🕘","group":"travel","keywords":["00","9","9:00","clock","nine","o’clock"]},{"id":":nine-thirty:","symbol":"🕤","group":"travel","keywords":["9","9:30","clock","nine","nine-thirty","thirty"]},{"id":":ten_o’clock:","symbol":"🕙","group":"travel","keywords":["00","10","10:00","clock","o’clock","ten"]},{"id":":ten-thirty:","symbol":"🕥","group":"travel","keywords":["10","10:30","clock","ten","ten-thirty","thirty"]},{"id":":eleven_o’clock:","symbol":"🕚","group":"travel","keywords":["00","11","11:00","clock","eleven","o’clock"]},{"id":":eleven-thirty:","symbol":"🕦","group":"travel","keywords":["11","11:30","clock","eleven","eleven-thirty","thirty"]},{"id":":new_moon:","symbol":"🌑","group":"travel","keywords":["dark","moon","new moon"]},{"id":":waxing_crescent_moon:","symbol":"🌒","group":"travel","keywords":["crescent","moon","waxing"]},{"id":":first_quarter_moon:","symbol":"🌓","group":"travel","keywords":["first quarter moon","moon","quarter"]},{"id":":waxing_gibbous_moon:","symbol":"🌔","group":"travel","keywords":["gibbous","moon","waxing"]},{"id":":full_moon:","symbol":"🌕","group":"travel","keywords":["full","moon"]},{"id":":waning_gibbous_moon:","symbol":"🌖","group":"travel","keywords":["gibbous","moon","waning"]},{"id":":last_quarter_moon:","symbol":"🌗","group":"travel","keywords":["last quarter moon","moon","quarter"]},{"id":":waning_crescent_moon:","symbol":"🌘","group":"travel","keywords":["crescent","moon","waning"]},{"id":":crescent_moon:","symbol":"🌙","group":"travel","keywords":["crescent","moon"]},{"id":":new_moon_face:","symbol":"🌚","group":"travel","keywords":["face","moon","new moon face"]},{"id":":first_quarter_moon_face:","symbol":"🌛","group":"travel","keywords":["face","first quarter moon face","moon","quarter"]},{"id":":last_quarter_moon_face:","symbol":"🌜","group":"travel","keywords":["face","last quarter moon face","moon","quarter"]},{"id":":thermometer:","symbol":"🌡","group":"travel","keywords":["thermometer","weather"]},{"id":":sun:","symbol":"☀","group":"travel","keywords":["bright","rays","sun","sunny"]},{"id":":full_moon_face:","symbol":"🌝","group":"travel","keywords":["bright","face","full","moon"]},{"id":":sun_with_face:","symbol":"🌞","group":"travel","keywords":["bright","face","sun","sun with face"]},{"id":":star:","symbol":"⭐","group":"travel","keywords":["star"]},{"id":":glowing_star:","symbol":"🌟","group":"travel","keywords":["glittery","glow","glowing star","shining","sparkle","star"]},{"id":":shooting_star:","symbol":"🌠","group":"travel","keywords":["falling","shooting","star"]},{"id":":cloud:","symbol":"☁️","group":"travel","keywords":["cloud","weather"]},{"id":":sun_behind_cloud:","symbol":"⛅","group":"travel","keywords":["cloud","sun","sun behind cloud"]},{"id":":cloud_with_lightning_and_rain:","symbol":"⛈️","group":"travel","keywords":["cloud","cloud with lightning and rain","rain","thunder"]},{"id":":sun_behind_small_cloud:","symbol":"🌤","group":"travel","keywords":["cloud","sun","sun behind small cloud"]},{"id":":sun_behind_large_cloud:","symbol":"🌥","group":"travel","keywords":["cloud","sun","sun behind large cloud"]},{"id":":sun_behind_rain_cloud:","symbol":"🌦","group":"travel","keywords":["cloud","rain","sun","sun behind rain cloud"]},{"id":":cloud_with_rain:","symbol":"🌧","group":"travel","keywords":["cloud","cloud with rain","rain"]},{"id":":cloud_with_snow:","symbol":"🌨","group":"travel","keywords":["cloud","cloud with snow","cold","snow"]},{"id":":cloud_with_lightning:","symbol":"🌩","group":"travel","keywords":["cloud","cloud with lightning","lightning"]},{"id":":tornado:","symbol":"🌪","group":"travel","keywords":["cloud","tornado","whirlwind"]},{"id":":fog:","symbol":"🌫","group":"travel","keywords":["cloud","fog"]},{"id":":wind_face:","symbol":"🌬","group":"travel","keywords":["blow","cloud","face","wind"]},{"id":":cyclone:","symbol":"🌀","group":"travel","keywords":["cyclone","dizzy","hurricane","twister","typhoon"]},{"id":":rainbow:","symbol":"🌈","group":"travel","keywords":["rain","rainbow"]},{"id":":closed_umbrella:","symbol":"🌂","group":"travel","keywords":["closed umbrella","clothing","rain","umbrella"]},{"id":":umbrella:","symbol":"☂","group":"travel","keywords":["clothing","rain","umbrella"]},{"id":":umbrella_with_rain_drops:","symbol":"☔","group":"travel","keywords":["clothing","drop","rain","umbrella","umbrella with rain drops"]},{"id":":umbrella_on_ground:","symbol":"⛱","group":"travel","keywords":["rain","sun","umbrella","umbrella on ground"]},{"id":":high_voltage:","symbol":"⚡","group":"travel","keywords":["danger","electric","high voltage","lightning","voltage","zap"]},{"id":":snowflake:","symbol":"❄","group":"travel","keywords":["cold","snow","snowflake"]},{"id":":snowman:","symbol":"☃","group":"travel","keywords":["cold","snow","snowman"]},{"id":":snowman_without_snow:","symbol":"⛄","group":"travel","keywords":["cold","snow","snowman","snowman without snow"]},{"id":":comet:","symbol":"☄","group":"travel","keywords":["comet","space"]},{"id":":fire:","symbol":"🔥","group":"travel","keywords":["fire","flame","tool"]},{"id":":droplet:","symbol":"💧","group":"travel","keywords":["cold","comic","drop","droplet","sweat"]},{"id":":water_wave:","symbol":"🌊","group":"travel","keywords":["ocean","water","wave"]},{"id":":jack-o-lantern:","symbol":"🎃","group":"activities","keywords":["celebration","halloween","jack","jack-o-lantern","lantern"]},{"id":":christmas_tree:","symbol":"🎄","group":"activities","keywords":["celebration","Christmas","tree"]},{"id":":fireworks:","symbol":"🎆","group":"activities","keywords":["celebration","fireworks"]},{"id":":sparkler:","symbol":"🎇","group":"activities","keywords":["celebration","fireworks","sparkle","sparkler"]},{"id":":sparkles:","symbol":"✨","group":"activities","keywords":["sparkle","sparkles","star"]},{"id":":balloon:","symbol":"🎈","group":"activities","keywords":["balloon","celebration"]},{"id":":party_popper:","symbol":"🎉","group":"activities","keywords":["celebration","party","popper","tada"]},{"id":":confetti_ball:","symbol":"🎊","group":"activities","keywords":["ball","celebration","confetti"]},{"id":":tanabata_tree:","symbol":"🎋","group":"activities","keywords":["banner","celebration","Japanese","tanabata tree","tree"]},{"id":":pine_decoration:","symbol":"🎍","group":"activities","keywords":["bamboo","celebration","Japanese","pine","pine decoration"]},{"id":":japanese_dolls:","symbol":"🎎","group":"activities","keywords":["celebration","doll","festival","Japanese","Japanese dolls"]},{"id":":carp_streamer:","symbol":"🎏","group":"activities","keywords":["carp","celebration","streamer"]},{"id":":wind_chime:","symbol":"🎐","group":"activities","keywords":["bell","celebration","chime","wind"]},{"id":":moon_viewing_ceremony:","symbol":"🎑","group":"activities","keywords":["celebration","ceremony","moon","moon viewing ceremony"]},{"id":":ribbon:","symbol":"🎀","group":"activities","keywords":["celebration","ribbon"]},{"id":":wrapped_gift:","symbol":"🎁","group":"activities","keywords":["box","celebration","gift","present","wrapped"]},{"id":":reminder_ribbon:","symbol":"🎗","group":"activities","keywords":["celebration","reminder","ribbon"]},{"id":":admission_tickets:","symbol":"🎟","group":"activities","keywords":["admission","admission tickets","ticket"]},{"id":":ticket:","symbol":"🎫","group":"activities","keywords":["admission","ticket"]},{"id":":military_medal:","symbol":"🎖","group":"activities","keywords":["celebration","medal","military"]},{"id":":trophy:","symbol":"🏆","group":"activities","keywords":["prize","trophy"]},{"id":":sports_medal:","symbol":"🏅","group":"activities","keywords":["medal","sports medal"]},{"id":":1st_place_medal:","symbol":"🥇","group":"activities","keywords":["1st place medal","first","gold","medal"]},{"id":":2nd_place_medal:","symbol":"🥈","group":"activities","keywords":["2nd place medal","medal","second","silver"]},{"id":":3rd_place_medal:","symbol":"🥉","group":"activities","keywords":["3rd place medal","bronze","medal","third"]},{"id":":soccer_ball:","symbol":"⚽","group":"activities","keywords":["ball","football","soccer"]},{"id":":baseball:","symbol":"⚾","group":"activities","keywords":["ball","baseball"]},{"id":":basketball:","symbol":"🏀","group":"activities","keywords":["ball","basketball","hoop"]},{"id":":volleyball:","symbol":"🏐","group":"activities","keywords":["ball","game","volleyball"]},{"id":":american_football:","symbol":"🏈","group":"activities","keywords":["american","ball","football"]},{"id":":rugby_football:","symbol":"🏉","group":"activities","keywords":["ball","football","rugby"]},{"id":":tennis:","symbol":"🎾","group":"activities","keywords":["ball","racquet","tennis"]},{"id":":bowling:","symbol":"🎳","group":"activities","keywords":["ball","bowling","game"]},{"id":":cricket_game:","symbol":"🏏","group":"activities","keywords":["ball","bat","cricket game","game"]},{"id":":field_hockey:","symbol":"🏑","group":"activities","keywords":["ball","field","game","hockey","stick"]},{"id":":ice_hockey:","symbol":"🏒","group":"activities","keywords":["game","hockey","ice","puck","stick"]},{"id":":ping_pong:","symbol":"🏓","group":"activities","keywords":["ball","bat","game","paddle","ping pong","table tennis"]},{"id":":badminton:","symbol":"🏸","group":"activities","keywords":["badminton","birdie","game","racquet","shuttlecock"]},{"id":":boxing_glove:","symbol":"🥊","group":"activities","keywords":["boxing","glove"]},{"id":":martial_arts_uniform:","symbol":"🥋","group":"activities","keywords":["judo","karate","martial arts","martial arts uniform","taekwondo","uniform"]},{"id":":goal_net:","symbol":"🥅","group":"activities","keywords":["goal","net"]},{"id":":flag_in_hole:","symbol":"⛳","group":"activities","keywords":["flag in hole","golf","hole"]},{"id":":ice_skate:","symbol":"⛸","group":"activities","keywords":["ice","skate"]},{"id":":fishing_pole:","symbol":"🎣","group":"activities","keywords":["fish","fishing pole","pole"]},{"id":":running_shirt:","symbol":"🎽","group":"activities","keywords":["athletics","running","sash","shirt"]},{"id":":skis:","symbol":"🎿","group":"activities","keywords":["ski","skis","snow"]},{"id":":sled:","symbol":"🛷","group":"activities","keywords":["sled","sledge","sleigh",""]},{"id":":curling_stone:","symbol":"🥌","group":"activities","keywords":["curling stone","game","rock"]},{"id":":direct_hit:","symbol":"🎯","group":"activities","keywords":["bullseye","dart","direct hit","game","hit","target"]},{"id":":pool_8_ball:","symbol":"🎱","group":"activities","keywords":["8","ball","billiard","eight","game","pool 8 ball"]},{"id":":crystal_ball:","symbol":"🔮","group":"activities","keywords":["ball","crystal","fairy tale","fantasy","fortune","tool"]},{"id":":video_game:","symbol":"🎮","group":"activities","keywords":["controller","game","video game"]},{"id":":joystick:","symbol":"🕹","group":"activities","keywords":["game","joystick","video game"]},{"id":":slot_machine:","symbol":"🎰","group":"activities","keywords":["game","slot","slot machine"]},{"id":":game_die:","symbol":"🎲","group":"activities","keywords":["dice","die","game"]},{"id":":spade_suit:","symbol":"♠","group":"activities","keywords":["card","game","spade suit"]},{"id":":heart_suit:","symbol":"♥","group":"activities","keywords":["card","game","heart suit"]},{"id":":diamond_suit:","symbol":"♦","group":"activities","keywords":["card","diamond suit","game"]},{"id":":club_suit:","symbol":"♣","group":"activities","keywords":["card","club suit","game"]},{"id":":joker:","symbol":"🃏","group":"activities","keywords":["card","game","joker","wildcard"]},{"id":":mahjong_red_dragon:","symbol":"🀄","group":"activities","keywords":["game","mahjong","mahjong red dragon","red"]},{"id":":flower_playing_cards:","symbol":"🎴","group":"activities","keywords":["card","flower","flower playing cards","game","Japanese","playing"]},{"id":":performing_arts:","symbol":"🎭","group":"activities","keywords":["art","mask","performing","performing arts","theater","theatre"]},{"id":":framed_picture:","symbol":"🖼","group":"activities","keywords":["art","frame","framed picture","museum","painting","picture"]},{"id":":artist_palette:","symbol":"🎨","group":"activities","keywords":["art","artist palette","museum","painting","palette"]},{"id":":muted_speaker:","symbol":"🔇","group":"objects","keywords":["mute","muted speaker","quiet","silent","speaker"]},{"id":":speaker_low_volume:","symbol":"🔈","group":"objects","keywords":["soft","speaker low volume"]},{"id":":speaker_medium_volume:","symbol":"🔉","group":"objects","keywords":["medium","speaker medium volume"]},{"id":":speaker_high_volume:","symbol":"🔊","group":"objects","keywords":["loud","speaker high volume"]},{"id":":loudspeaker:","symbol":"📢","group":"objects","keywords":["loud","loudspeaker","public address"]},{"id":":megaphone:","symbol":"📣","group":"objects","keywords":["cheering","megaphone"]},{"id":":postal_horn:","symbol":"📯","group":"objects","keywords":["horn","post","postal"]},{"id":":bell:","symbol":"🔔","group":"objects","keywords":["bell"]},{"id":":bell_with_slash:","symbol":"🔕","group":"objects","keywords":["bell","bell with slash","forbidden","mute","quiet","silent"]},{"id":":musical_score:","symbol":"🎼","group":"objects","keywords":["music","musical score","score"]},{"id":":musical_note:","symbol":"🎵","group":"objects","keywords":["music","musical note","note"]},{"id":":musical_notes:","symbol":"🎶","group":"objects","keywords":["music","musical notes","note","notes"]},{"id":":studio_microphone:","symbol":"🎙","group":"objects","keywords":["mic","microphone","music","studio"]},{"id":":level_slider:","symbol":"🎚","group":"objects","keywords":["level","music","slider"]},{"id":":control_knobs:","symbol":"🎛","group":"objects","keywords":["control","knobs","music"]},{"id":":microphone:","symbol":"🎤","group":"objects","keywords":["karaoke","mic","microphone"]},{"id":":headphone:","symbol":"🎧","group":"objects","keywords":["earbud","headphone"]},{"id":":radio:","symbol":"📻","group":"objects","keywords":["radio","video"]},{"id":":saxophone:","symbol":"🎷","group":"objects","keywords":["instrument","music","sax","saxophone"]},{"id":":guitar:","symbol":"🎸","group":"objects","keywords":["guitar","instrument","music"]},{"id":":musical_keyboard:","symbol":"🎹","group":"objects","keywords":["instrument","keyboard","music","musical keyboard","piano"]},{"id":":trumpet:","symbol":"🎺","group":"objects","keywords":["instrument","music","trumpet"]},{"id":":violin:","symbol":"🎻","group":"objects","keywords":["instrument","music","violin"]},{"id":":drum:","symbol":"🥁","group":"objects","keywords":["drum","drumsticks","music"]},{"id":":mobile_phone:","symbol":"📱","group":"objects","keywords":["cell","mobile","phone","telephone"]},{"id":":mobile_phone_with_arrow:","symbol":"📲","group":"objects","keywords":["arrow","cell","mobile","mobile phone with arrow","phone","receive"]},{"id":":telephone:","symbol":"☎","group":"objects","keywords":["phone","telephone"]},{"id":":telephone_receiver:","symbol":"📞","group":"objects","keywords":["phone","receiver","telephone"]},{"id":":pager:","symbol":"📟","group":"objects","keywords":["pager"]},{"id":":fax_machine:","symbol":"📠","group":"objects","keywords":["fax","fax machine"]},{"id":":battery:","symbol":"🔋","group":"objects","keywords":["battery"]},{"id":":electric_plug:","symbol":"🔌","group":"objects","keywords":["electric","electricity","plug"]},{"id":":laptop_computer:","symbol":"💻","group":"objects","keywords":["computer","laptop computer","pc","personal"]},{"id":":desktop_computer:","symbol":"🖥","group":"objects","keywords":["computer","desktop"]},{"id":":printer:","symbol":"🖨","group":"objects","keywords":["computer","printer"]},{"id":":keyboard:","symbol":"⌨","group":"objects","keywords":["computer","keyboard"]},{"id":":computer_mouse:","symbol":"🖱","group":"objects","keywords":["computer","computer mouse"]},{"id":":trackball:","symbol":"🖲","group":"objects","keywords":["computer","trackball"]},{"id":":computer_disk:","symbol":"💽","group":"objects","keywords":["computer","disk","minidisk","optical"]},{"id":":floppy_disk:","symbol":"💾","group":"objects","keywords":["computer","disk","floppy"]},{"id":":optical_disk:","symbol":"💿","group":"objects","keywords":["cd","computer","disk","optical"]},{"id":":dvd:","symbol":"📀","group":"objects","keywords":["blu-ray","computer","disk","dvd","optical"]},{"id":":movie_camera:","symbol":"🎥","group":"objects","keywords":["camera","cinema","movie"]},{"id":":film_frames:","symbol":"🎞","group":"objects","keywords":["cinema","film","frames","movie"]},{"id":":film_projector:","symbol":"📽","group":"objects","keywords":["cinema","film","movie","projector","video"]},{"id":":clapper_board:","symbol":"🎬","group":"objects","keywords":["clapper","clapper board","movie"]},{"id":":television:","symbol":"📺","group":"objects","keywords":["television","tv","video"]},{"id":":camera:","symbol":"📷","group":"objects","keywords":["camera","video"]},{"id":":camera_with_flash:","symbol":"📸","group":"objects","keywords":["camera","camera with flash","flash","video"]},{"id":":video_camera:","symbol":"📹","group":"objects","keywords":["camera","video"]},{"id":":videocassette:","symbol":"📼","group":"objects","keywords":["tape","vhs","video","videocassette"]},{"id":":magnifying_glass_tilted_left:","symbol":"🔍","group":"objects","keywords":["glass","magnifying","magnifying glass tilted left","search","tool"]},{"id":":magnifying_glass_tilted_right:","symbol":"🔎","group":"objects","keywords":["glass","magnifying","magnifying glass tilted right","search","tool"]},{"id":":candle:","symbol":"🕯","group":"objects","keywords":["candle","light"]},{"id":":light_bulb:","symbol":"💡","group":"objects","keywords":["bulb","comic","electric","idea","light"]},{"id":":flashlight:","symbol":"🔦","group":"objects","keywords":["electric","flashlight","light","tool","torch"]},{"id":":red_paper_lantern:","symbol":"🏮","group":"objects","keywords":["bar","lantern","light","red","red paper lantern"]},{"id":":notebook_with_decorative_cover:","symbol":"📔","group":"objects","keywords":["book","cover","decorated","notebook","notebook with decorative cover"]},{"id":":closed_book:","symbol":"📕","group":"objects","keywords":["book","closed"]},{"id":":open_book:","symbol":"📖","group":"objects","keywords":["book","open"]},{"id":":green_book:","symbol":"📗","group":"objects","keywords":["book","green"]},{"id":":blue_book:","symbol":"📘","group":"objects","keywords":["blue","book"]},{"id":":orange_book:","symbol":"📙","group":"objects","keywords":["book","orange"]},{"id":":books:","symbol":"📚","group":"objects","keywords":["book","books"]},{"id":":notebook:","symbol":"📓","group":"objects","keywords":["notebook"]},{"id":":ledger:","symbol":"📒","group":"objects","keywords":["ledger","notebook"]},{"id":":page_with_curl:","symbol":"📃","group":"objects","keywords":["curl","document","page","page with curl"]},{"id":":scroll:","symbol":"📜","group":"objects","keywords":["paper","scroll"]},{"id":":page_facing_up:","symbol":"📄","group":"objects","keywords":["document","page","page facing up"]},{"id":":newspaper:","symbol":"📰","group":"objects","keywords":["news","newspaper","paper"]},{"id":":rolled-up_newspaper:","symbol":"🗞","group":"objects","keywords":["news","newspaper","paper","rolled","rolled-up newspaper"]},{"id":":bookmark_tabs:","symbol":"📑","group":"objects","keywords":["bookmark","mark","marker","tabs"]},{"id":":bookmark:","symbol":"🔖","group":"objects","keywords":["bookmark","mark"]},{"id":":label:","symbol":"🏷","group":"objects","keywords":["label"]},{"id":":money_bag:","symbol":"💰","group":"objects","keywords":["bag","dollar","money","moneybag"]},{"id":":yen_banknote:","symbol":"💴","group":"objects","keywords":["banknote","bill","currency","money","note","yen"]},{"id":":dollar_banknote:","symbol":"💵","group":"objects","keywords":["banknote","bill","currency","dollar","money","note"]},{"id":":euro_banknote:","symbol":"💶","group":"objects","keywords":["banknote","bill","currency","euro","money","note"]},{"id":":pound_banknote:","symbol":"💷","group":"objects","keywords":["banknote","bill","currency","money","note","pound"]},{"id":":money_with_wings:","symbol":"💸","group":"objects","keywords":["banknote","bill","fly","money","money with wings","wings"]},{"id":":credit_card:","symbol":"💳","group":"objects","keywords":["card","credit","money"]},{"id":":chart_increasing_with_yen:","symbol":"💹","group":"objects","keywords":["chart","chart increasing with yen","graph","growth","money","yen"]},{"id":":currency_exchange:","symbol":"💱","group":"objects","keywords":["bank","currency","exchange","money"]},{"id":":heavy_dollar_sign:","symbol":"💲","group":"objects","keywords":["currency","dollar","heavy dollar sign","money"]},{"id":":envelope:","symbol":"✉","group":"objects","keywords":["email","envelope","letter"]},{"id":":e-mail:","symbol":"📧","group":"objects","keywords":["e-mail","email","letter","mail"]},{"id":":incoming_envelope:","symbol":"📨","group":"objects","keywords":["e-mail","email","envelope","incoming","letter","receive"]},{"id":":envelope_with_arrow:","symbol":"📩","group":"objects","keywords":["arrow","e-mail","email","envelope","envelope with arrow","outgoing"]},{"id":":outbox_tray:","symbol":"📤","group":"objects","keywords":["box","letter","mail","outbox","sent","tray"]},{"id":":inbox_tray:","symbol":"📥","group":"objects","keywords":["box","inbox","letter","mail","receive","tray"]},{"id":":package:","symbol":"📦","group":"objects","keywords":["box","package","parcel"]},{"id":":closed_mailbox_with_raised_flag:","symbol":"📫","group":"objects","keywords":["closed","closed mailbox with raised flag","mail","mailbox","postbox"]},{"id":":closed_mailbox_with_lowered_flag:","symbol":"📪","group":"objects","keywords":["closed","closed mailbox with lowered flag","lowered","mail","mailbox","postbox"]},{"id":":open_mailbox_with_raised_flag:","symbol":"📬","group":"objects","keywords":["mail","mailbox","open","open mailbox with raised flag","postbox"]},{"id":":open_mailbox_with_lowered_flag:","symbol":"📭","group":"objects","keywords":["lowered","mail","mailbox","open","open mailbox with lowered flag","postbox"]},{"id":":postbox:","symbol":"📮","group":"objects","keywords":["mail","mailbox","postbox"]},{"id":":ballot_box_with_ballot:","symbol":"🗳","group":"objects","keywords":["ballot","ballot box with ballot","box"]},{"id":":pencil:","symbol":"✏","group":"objects","keywords":["pencil"]},{"id":":black_nib:","symbol":"✒","group":"objects","keywords":["black nib","nib","pen"]},{"id":":fountain_pen:","symbol":"🖋","group":"objects","keywords":["fountain","pen"]},{"id":":pen:","symbol":"🖊","group":"objects","keywords":["ballpoint","pen"]},{"id":":paintbrush:","symbol":"🖌","group":"objects","keywords":["paintbrush","painting"]},{"id":":crayon:","symbol":"🖍","group":"objects","keywords":["crayon"]},{"id":":memo:","symbol":"📝","group":"objects","keywords":["memo","pencil"]},{"id":":briefcase:","symbol":"💼","group":"objects","keywords":["briefcase"]},{"id":":file_folder:","symbol":"📁","group":"objects","keywords":["file","folder"]},{"id":":open_file_folder:","symbol":"📂","group":"objects","keywords":["file","folder","open"]},{"id":":card_index_dividers:","symbol":"🗂","group":"objects","keywords":["card","dividers","index"]},{"id":":calendar:","symbol":"📅","group":"objects","keywords":["calendar","date"]},{"id":":tear-off_calendar:","symbol":"📆","group":"objects","keywords":["calendar","tear-off calendar"]},{"id":":spiral_notepad:","symbol":"🗒","group":"objects","keywords":["note","pad","spiral","spiral notepad"]},{"id":":spiral_calendar:","symbol":"🗓","group":"objects","keywords":["calendar","pad","spiral"]},{"id":":card_index:","symbol":"📇","group":"objects","keywords":["card","index","rolodex"]},{"id":":chart_increasing:","symbol":"📈","group":"objects","keywords":["chart","chart increasing","graph","growth","trend","upward"]},{"id":":chart_decreasing:","symbol":"📉","group":"objects","keywords":["chart","chart decreasing","down","graph","trend"]},{"id":":bar_chart:","symbol":"📊","group":"objects","keywords":["bar","chart","graph"]},{"id":":clipboard:","symbol":"📋","group":"objects","keywords":["clipboard"]},{"id":":pushpin:","symbol":"📌","group":"objects","keywords":["pin","pushpin"]},{"id":":round_pushpin:","symbol":"📍","group":"objects","keywords":["pin","pushpin","round pushpin"]},{"id":":paperclip:","symbol":"📎","group":"objects","keywords":["paperclip"]},{"id":":linked_paperclips:","symbol":"🖇","group":"objects","keywords":["link","linked paperclips","paperclip"]},{"id":":straight_ruler:","symbol":"📏","group":"objects","keywords":["ruler","straight edge","straight ruler"]},{"id":":triangular_ruler:","symbol":"📐","group":"objects","keywords":["ruler","set","triangle","triangular ruler"]},{"id":":scissors:","symbol":"✂","group":"objects","keywords":["cutting","scissors","tool"]},{"id":":card_file_box:","symbol":"🗃","group":"objects","keywords":["box","card","file"]},{"id":":file_cabinet:","symbol":"🗄","group":"objects","keywords":["cabinet","file","filing"]},{"id":":wastebasket:","symbol":"🗑","group":"objects","keywords":["wastebasket"]},{"id":":locked:","symbol":"🔒","group":"objects","keywords":["closed","locked"]},{"id":":unlocked:","symbol":"🔓","group":"objects","keywords":["lock","open","unlock","unlocked"]},{"id":":locked_with_pen:","symbol":"🔏","group":"objects","keywords":["ink","lock","locked with pen","nib","pen","privacy"]},{"id":":locked_with_key:","symbol":"🔐","group":"objects","keywords":["closed","key","lock","locked with key","secure"]},{"id":":key:","symbol":"🔑","group":"objects","keywords":["key","lock","password"]},{"id":":old_key:","symbol":"🗝","group":"objects","keywords":["clue","key","lock","old"]},{"id":":hammer:","symbol":"🔨","group":"objects","keywords":["hammer","tool"]},{"id":":pick:","symbol":"⛏","group":"objects","keywords":["mining","pick","tool"]},{"id":":hammer_and_pick:","symbol":"⚒","group":"objects","keywords":["hammer","hammer and pick","pick","tool"]},{"id":":hammer_and_wrench:","symbol":"🛠","group":"objects","keywords":["hammer","hammer and wrench","spanner","tool","wrench"]},{"id":":dagger:","symbol":"🗡","group":"objects","keywords":["dagger","knife","weapon"]},{"id":":crossed_swords:","symbol":"⚔","group":"objects","keywords":["crossed","swords","weapon"]},{"id":":pistol:","symbol":"🔫","group":"objects","keywords":["gun","handgun","pistol","revolver","tool","weapon"]},{"id":":bow_and_arrow:","symbol":"🏹","group":"objects","keywords":["archer","arrow","bow","bow and arrow","Sagittarius","zodiac"]},{"id":":shield:","symbol":"🛡","group":"objects","keywords":["shield","weapon"]},{"id":":wrench:","symbol":"🔧","group":"objects","keywords":["spanner","tool","wrench"]},{"id":":nut_and_bolt:","symbol":"🔩","group":"objects","keywords":["bolt","nut","nut and bolt","tool"]},{"id":":gear:","symbol":"⚙","group":"objects","keywords":["cog","cogwheel","gear","tool"]},{"id":":clamp:","symbol":"🗜","group":"objects","keywords":["clamp","compress","tool","vice"]},{"id":":balance_scale:","symbol":"⚖","group":"objects","keywords":["balance","justice","Libra","scale","zodiac"]},{"id":":link:","symbol":"🔗","group":"objects","keywords":["link"]},{"id":":chains:","symbol":"⛓","group":"objects","keywords":["chain","chains"]},{"id":":alembic:","symbol":"⚗","group":"objects","keywords":["alembic","chemistry","tool"]},{"id":":microscope:","symbol":"🔬","group":"objects","keywords":["microscope","science","tool"]},{"id":":telescope:","symbol":"🔭","group":"objects","keywords":["science","telescope","tool"]},{"id":":satellite_antenna:","symbol":"📡","group":"objects","keywords":["antenna","dish","satellite"]},{"id":":syringe:","symbol":"💉","group":"objects","keywords":["medicine","needle","shot","sick","syringe"]},{"id":":pill:","symbol":"💊","group":"objects","keywords":["doctor","medicine","pill","sick"]},{"id":":door:","symbol":"🚪","group":"objects","keywords":["door"]},{"id":":bed:","symbol":"🛏","group":"objects","keywords":["bed","hotel","sleep"]},{"id":":couch_and_lamp:","symbol":"🛋","group":"objects","keywords":["couch","couch and lamp","hotel","lamp"]},{"id":":toilet:","symbol":"🚽","group":"objects","keywords":["toilet"]},{"id":":shower:","symbol":"🚿","group":"objects","keywords":["shower","water"]},{"id":":bathtub:","symbol":"🛁","group":"objects","keywords":["bath","bathtub"]},{"id":":shopping_cart:","symbol":"🛒","group":"objects","keywords":["cart","shopping","trolley"]},{"id":":cigarette:","symbol":"🚬","group":"objects","keywords":["cigarette","smoking"]},{"id":":coffin:","symbol":"⚰","group":"objects","keywords":["coffin","death"]},{"id":":funeral_urn:","symbol":"⚱","group":"objects","keywords":["ashes","death","funeral","urn"]},{"id":":moai:","symbol":"🗿","group":"objects","keywords":["face","moai","moyai","statue"]},{"id":":atm_sign:","symbol":"🏧","group":"symbols","keywords":["atm","ATM sign","automated","bank","teller"]},{"id":":litter_in_bin_sign:","symbol":"🚮","group":"symbols","keywords":["litter","litter bin","litter in bin sign"]},{"id":":potable_water:","symbol":"🚰","group":"symbols","keywords":["drinking","potable","water"]},{"id":":wheelchair_symbol:","symbol":"♿","group":"symbols","keywords":["access","wheelchair symbol"]},{"id":":men’s_room:","symbol":"🚹","group":"symbols","keywords":["lavatory","man","men’s room","restroom","wc"]},{"id":":women’s_room:","symbol":"🚺","group":"symbols","keywords":["lavatory","restroom","wc","woman","women’s room"]},{"id":":restroom:","symbol":"🚻","group":"symbols","keywords":["lavatory","restroom","WC"]},{"id":":baby_symbol:","symbol":"🚼","group":"symbols","keywords":["baby","baby symbol","changing"]},{"id":":water_closet:","symbol":"🚾","group":"symbols","keywords":["closet","lavatory","restroom","water","wc"]},{"id":":passport_control:","symbol":"🛂","group":"symbols","keywords":["control","passport"]},{"id":":customs:","symbol":"🛃","group":"symbols","keywords":["customs"]},{"id":":baggage_claim:","symbol":"🛄","group":"symbols","keywords":["baggage","claim"]},{"id":":left_luggage:","symbol":"🛅","group":"symbols","keywords":["baggage","left luggage","locker","luggage"]},{"id":":warning:","symbol":"⚠","group":"symbols","keywords":["warning"]},{"id":":children_crossing:","symbol":"🚸","group":"symbols","keywords":["child","children crossing","crossing","pedestrian","traffic"]},{"id":":no_entry:","symbol":"⛔","group":"symbols","keywords":["entry","forbidden","no","not","prohibited","traffic"]},{"id":":prohibited:","symbol":"🚫","group":"symbols","keywords":["entry","forbidden","no","not","prohibited"]},{"id":":no_bicycles:","symbol":"🚳","group":"symbols","keywords":["bicycle","bike","forbidden","no","no bicycles","prohibited"]},{"id":":no_smoking:","symbol":"🚭","group":"symbols","keywords":["forbidden","no","not","prohibited","smoking"]},{"id":":no_littering:","symbol":"🚯","group":"symbols","keywords":["forbidden","litter","no","no littering","not","prohibited"]},{"id":":non-potable_water:","symbol":"🚱","group":"symbols","keywords":["non-drinking","non-potable","water"]},{"id":":no_pedestrians:","symbol":"🚷","group":"symbols","keywords":["forbidden","no","no pedestrians","not","pedestrian","prohibited"]},{"id":":no_mobile_phones:","symbol":"📵","group":"symbols","keywords":["cell","forbidden","mobile","no","no mobile phones","phone"]},{"id":":no_one_under_eighteen:","symbol":"🔞","group":"symbols","keywords":["18","age restriction","eighteen","no one under eighteen","prohibited","underage"]},{"id":":radioactive:","symbol":"☢","group":"symbols","keywords":["radioactive","sign"]},{"id":":biohazard:","symbol":"☣","group":"symbols","keywords":["biohazard","sign"]},{"id":":up_arrow:","symbol":"⬆","group":"symbols","keywords":["arrow","cardinal","direction","north","up arrow"]},{"id":":up-right_arrow:","symbol":"↗","group":"symbols","keywords":["arrow","direction","intercardinal","northeast","up-right arrow"]},{"id":":right_arrow:","symbol":"➡","group":"symbols","keywords":["arrow","cardinal","direction","east","right arrow"]},{"id":":down-right_arrow:","symbol":"↘","group":"symbols","keywords":["arrow","direction","down-right arrow","intercardinal","southeast"]},{"id":":down_arrow:","symbol":"⬇","group":"symbols","keywords":["arrow","cardinal","direction","down","south"]},{"id":":down-left_arrow:","symbol":"↙","group":"symbols","keywords":["arrow","direction","down-left arrow","intercardinal","southwest"]},{"id":":left_arrow:","symbol":"⬅","group":"symbols","keywords":["arrow","cardinal","direction","left arrow","west"]},{"id":":up-left_arrow:","symbol":"↖","group":"symbols","keywords":["arrow","direction","intercardinal","northwest","up-left arrow"]},{"id":":up-down_arrow:","symbol":"↕","group":"symbols","keywords":["arrow","up-down arrow"]},{"id":":left-right_arrow:","symbol":"↔","group":"symbols","keywords":["arrow","left-right arrow"]},{"id":":right_arrow_curving_left:","symbol":"↩","group":"symbols","keywords":["arrow","right arrow curving left"]},{"id":":left_arrow_curving_right:","symbol":"↪","group":"symbols","keywords":["arrow","left arrow curving right"]},{"id":":right_arrow_curving_up:","symbol":"⤴","group":"symbols","keywords":["arrow","right arrow curving up"]},{"id":":right_arrow_curving_down:","symbol":"⤵","group":"symbols","keywords":["arrow","down","right arrow curving down"]},{"id":":clockwise_vertical_arrows:","symbol":"🔃","group":"symbols","keywords":["arrow","clockwise","clockwise vertical arrows","reload"]},{"id":":counterclockwise_arrows_button:","symbol":"🔄","group":"symbols","keywords":["anticlockwise","arrow","counterclockwise","counterclockwise arrows button","withershins"]},{"id":":back_arrow:","symbol":"🔙","group":"symbols","keywords":["arrow","back","BACK arrow"]},{"id":":end_arrow:","symbol":"🔚","group":"symbols","keywords":["arrow","end","END arrow"]},{"id":":on!_arrow:","symbol":"🔛","group":"symbols","keywords":["arrow","mark","on","ON! arrow"]},{"id":":soon_arrow:","symbol":"🔜","group":"symbols","keywords":["arrow","soon","SOON arrow"]},{"id":":top_arrow:","symbol":"🔝","group":"symbols","keywords":["arrow","top","TOP arrow","up"]},{"id":":place_of_worship:","symbol":"🛐","group":"symbols","keywords":["place of worship","religion","worship"]},{"id":":atom_symbol:","symbol":"⚛","group":"symbols","keywords":["atheist","atom","atom symbol"]},{"id":":om:","symbol":"🕉","group":"symbols","keywords":["Hindu","om","religion"]},{"id":":star_of_david:","symbol":"✡","group":"symbols","keywords":["David","Jew","Jewish","religion","star","star of David"]},{"id":":wheel_of_dharma:","symbol":"☸","group":"symbols","keywords":["Buddhist","dharma","religion","wheel","wheel of dharma"]},{"id":":yin_yang:","symbol":"☯","group":"symbols","keywords":["religion","tao","taoist","yang","yin"]},{"id":":latin_cross:","symbol":"✝","group":"symbols","keywords":["Christian","cross","latin cross","religion"]},{"id":":orthodox_cross:","symbol":"☦","group":"symbols","keywords":["Christian","cross","orthodox cross","religion"]},{"id":":star_and_crescent:","symbol":"☪","group":"symbols","keywords":["islam","Muslim","religion","star and crescent"]},{"id":":peace_symbol:","symbol":"☮","group":"symbols","keywords":["peace","peace symbol"]},{"id":":menorah:","symbol":"🕎","group":"symbols","keywords":["candelabrum","candlestick","menorah","religion"]},{"id":":dotted_six-pointed_star:","symbol":"🔯","group":"symbols","keywords":["dotted six-pointed star","fortune","star"]},{"id":":aries:","symbol":"♈","group":"symbols","keywords":["Aries","ram","zodiac"]},{"id":":taurus:","symbol":"♉","group":"symbols","keywords":["bull","ox","Taurus","zodiac"]},{"id":":gemini:","symbol":"♊","group":"symbols","keywords":["Gemini","twins","zodiac"]},{"id":":cancer:","symbol":"♋","group":"symbols","keywords":["Cancer","crab","zodiac"]},{"id":":leo:","symbol":"♌","group":"symbols","keywords":["Leo","lion","zodiac"]},{"id":":virgo:","symbol":"♍","group":"symbols","keywords":["Virgo","zodiac"]},{"id":":libra:","symbol":"♎","group":"symbols","keywords":["balance","justice","Libra","scales","zodiac"]},{"id":":scorpio:","symbol":"♏","group":"symbols","keywords":["Scorpio","scorpion","scorpius","zodiac"]},{"id":":sagittarius:","symbol":"♐","group":"symbols","keywords":["archer","Sagittarius","zodiac"]},{"id":":capricorn:","symbol":"♑","group":"symbols","keywords":["Capricorn","goat","zodiac"]},{"id":":aquarius:","symbol":"♒","group":"symbols","keywords":["Aquarius","bearer","water","zodiac"]},{"id":":pisces:","symbol":"♓","group":"symbols","keywords":["fish","Pisces","zodiac"]},{"id":":ophiuchus:","symbol":"⛎","group":"symbols","keywords":["bearer","Ophiuchus","serpent","snake","zodiac"]},{"id":":shuffle_tracks_button:","symbol":"🔀","group":"symbols","keywords":["arrow","crossed","shuffle tracks button"]},{"id":":repeat_button:","symbol":"🔁","group":"symbols","keywords":["arrow","clockwise","repeat","repeat button"]},{"id":":repeat_single_button:","symbol":"🔂","group":"symbols","keywords":["arrow","clockwise","once","repeat single button"]},{"id":":play_button:","symbol":"▶","group":"symbols","keywords":["arrow","play","play button","right","triangle"]},{"id":":fast-forward_button:","symbol":"⏩","group":"symbols","keywords":["arrow","double","fast","fast-forward button","forward"]},{"id":":next_track_button:","symbol":"⏭","group":"symbols","keywords":["arrow","next scene","next track","next track button","triangle"]},{"id":":play_or_pause_button:","symbol":"⏯","group":"symbols","keywords":["arrow","pause","play","play or pause button","right","triangle"]},{"id":":reverse_button:","symbol":"◀","group":"symbols","keywords":["arrow","left","reverse","reverse button","triangle"]},{"id":":fast_reverse_button:","symbol":"⏪","group":"symbols","keywords":["arrow","double","fast reverse button","rewind"]},{"id":":last_track_button:","symbol":"⏮","group":"symbols","keywords":["arrow","last track button","previous scene","previous track","triangle"]},{"id":":upwards_button:","symbol":"🔼","group":"symbols","keywords":["arrow","button","red","upwards button"]},{"id":":fast_up_button:","symbol":"⏫","group":"symbols","keywords":["arrow","double","fast up button"]},{"id":":downwards_button:","symbol":"🔽","group":"symbols","keywords":["arrow","button","down","downwards button","red"]},{"id":":fast_down_button:","symbol":"⏬","group":"symbols","keywords":["arrow","double","down","fast down button"]},{"id":":pause_button:","symbol":"⏸","group":"symbols","keywords":["bar","double","pause","pause button","vertical"]},{"id":":stop_button:","symbol":"⏹","group":"symbols","keywords":["square","stop","stop button"]},{"id":":record_button:","symbol":"⏺","group":"symbols","keywords":["circle","record","record button"]},{"id":":eject_button:","symbol":"⏏","group":"symbols","keywords":["eject","eject button"]},{"id":":cinema:","symbol":"🎦","group":"symbols","keywords":["camera","cinema","film","movie"]},{"id":":dim_button:","symbol":"🔅","group":"symbols","keywords":["brightness","dim","dim button","low"]},{"id":":bright_button:","symbol":"🔆","group":"symbols","keywords":["bright","bright button","brightness"]},{"id":":antenna_bars:","symbol":"📶","group":"symbols","keywords":["antenna","antenna bars","bar","cell","mobile","phone"]},{"id":":vibration_mode:","symbol":"📳","group":"symbols","keywords":["cell","mobile","mode","phone","telephone","vibration"]},{"id":":mobile_phone_off:","symbol":"📴","group":"symbols","keywords":["cell","mobile","off","phone","telephone"]},{"id":":female_sign:","symbol":"♀","group":"symbols","keywords":["female sign","woman"]},{"id":":male_sign:","symbol":"♂","group":"symbols","keywords":["male sign","man"]},{"id":":medical_symbol:","symbol":"⚕","group":"symbols","keywords":["aesculapius","medical symbol","medicine","staff"]},{"id":":recycling_symbol:","symbol":"♻","group":"symbols","keywords":["recycle","recycling symbol"]},{"id":":fleur-de-lis:","symbol":"⚜","group":"symbols","keywords":["fleur-de-lis"]},{"id":":trident_emblem:","symbol":"🔱","group":"symbols","keywords":["anchor","emblem","ship","tool","trident"]},{"id":":name_badge:","symbol":"📛","group":"symbols","keywords":["badge","name"]},{"id":":japanese_symbol_for_beginner:","symbol":"🔰","group":"symbols","keywords":["beginner","chevron","Japanese","Japanese symbol for beginner","leaf"]},{"id":":heavy_large_circle:","symbol":"⭕","group":"symbols","keywords":["circle","heavy large circle","o"]},{"id":":white_heavy_check_mark:","symbol":"✅","group":"symbols","keywords":["check","mark","white heavy check mark"]},{"id":":ballot_box_with_check:","symbol":"☑","group":"symbols","keywords":["ballot","ballot box with check","box","check"]},{"id":":heavy_check_mark:","symbol":"✔","group":"symbols","keywords":["check","heavy check mark","mark"]},{"id":":heavy_multiplication_x:","symbol":"✖","group":"symbols","keywords":["cancel","heavy multiplication x","multiplication","multiply","x"]},{"id":":cross_mark:","symbol":"❌","group":"symbols","keywords":["cancel","cross mark","mark","multiplication","multiply","x"]},{"id":":cross_mark_button:","symbol":"❎","group":"symbols","keywords":["cross mark button","mark","square"]},{"id":":heavy_plus_sign:","symbol":"➕","group":"symbols","keywords":["heavy plus sign","math","plus"]},{"id":":heavy_minus_sign:","symbol":"➖","group":"symbols","keywords":["heavy minus sign","math","minus"]},{"id":":heavy_division_sign:","symbol":"➗","group":"symbols","keywords":["division","heavy division sign","math"]},{"id":":curly_loop:","symbol":"➰","group":"symbols","keywords":["curl","curly loop","loop"]},{"id":":double_curly_loop:","symbol":"➿","group":"symbols","keywords":["curl","double","double curly loop","loop"]},{"id":":part_alternation_mark:","symbol":"〽","group":"symbols","keywords":["mark","part","part alternation mark"]},{"id":":eight-spoked_asterisk:","symbol":"✳","group":"symbols","keywords":["asterisk","eight-spoked asterisk"]},{"id":":eight-pointed_star:","symbol":"✴","group":"symbols","keywords":["eight-pointed star","star"]},{"id":":sparkle:","symbol":"❇","group":"symbols","keywords":["sparkle"]},{"id":":double_exclamation_mark:","symbol":"‼","group":"symbols","keywords":["bangbang","double exclamation mark","exclamation","mark","punctuation"]},{"id":":exclamation_question_mark:","symbol":"⁉","group":"symbols","keywords":["exclamation","interrobang","mark","punctuation","question"]},{"id":":question_mark:","symbol":"❓","group":"symbols","keywords":["mark","punctuation","question"]},{"id":":white_question_mark:","symbol":"❔","group":"symbols","keywords":["mark","outlined","punctuation","question","white question mark"]},{"id":":white_exclamation_mark:","symbol":"❕","group":"symbols","keywords":["exclamation","mark","outlined","punctuation","white exclamation mark"]},{"id":":exclamation_mark:","symbol":"❗","group":"symbols","keywords":["exclamation","mark","punctuation"]},{"id":":wavy_dash:","symbol":"〰","group":"symbols","keywords":["dash","punctuation","wavy"]},{"id":":copyright:","symbol":"©","group":"symbols","keywords":["copyright"]},{"id":":registered:","symbol":"®","group":"symbols","keywords":["registered"]},{"id":":trade_mark:","symbol":"™","group":"symbols","keywords":["mark","tm","trade mark","trademark"]},{"id":":keycap_#:","symbol":"#️⃣","group":"symbols","keywords":["keycap"]},{"id":":keycap_*:","symbol":"*️⃣","group":"symbols","keywords":["keycap"]},{"id":":keycap_0:","symbol":"0️⃣","group":"symbols","keywords":["keycap"]},{"id":":keycap_1:","symbol":"1️⃣","group":"symbols","keywords":["keycap"]},{"id":":keycap_2:","symbol":"2️⃣","group":"symbols","keywords":["keycap"]},{"id":":keycap_3:","symbol":"3️⃣","group":"symbols","keywords":["keycap"]},{"id":":keycap_4:","symbol":"4️⃣","group":"symbols","keywords":["keycap"]},{"id":":keycap_5:","symbol":"5️⃣","group":"symbols","keywords":["keycap"]},{"id":":keycap_6:","symbol":"6️⃣","group":"symbols","keywords":["keycap"]},{"id":":keycap_7:","symbol":"7️⃣","group":"symbols","keywords":["keycap"]},{"id":":keycap_8:","symbol":"8️⃣","group":"symbols","keywords":["keycap"]},{"id":":keycap_9:","symbol":"9️⃣","group":"symbols","keywords":["keycap"]},{"id":":keycap_10:","symbol":"🔟","group":"symbols","keywords":["keycap"]},{"id":":hundred_points:","symbol":"💯","group":"symbols","keywords":["100","full","hundred","hundred points","score"]},{"id":":input_latin_uppercase:","symbol":"🔠","group":"symbols","keywords":["ABCD","input","latin","letters","uppercase"]},{"id":":input_latin_lowercase:","symbol":"🔡","group":"symbols","keywords":["abcd","input","latin","letters","lowercase"]},{"id":":input_numbers:","symbol":"🔢","group":"symbols","keywords":["1234","input","numbers"]},{"id":":input_symbols:","symbol":"🔣","group":"symbols","keywords":["〒♪&%","input","input symbols"]},{"id":":input_latin_letters:","symbol":"🔤","group":"symbols","keywords":["abc","alphabet","input","latin","letters"]},{"id":":a_button_(blood_type):","symbol":"🅰","group":"symbols","keywords":["a","A button (blood type)","blood type"]},{"id":":ab_button_(blood_type):","symbol":"🆎","group":"symbols","keywords":["ab","AB button (blood type)","blood type"]},{"id":":b_button_(blood_type):","symbol":"🅱","group":"symbols","keywords":["b","B button (blood type)","blood type"]},{"id":":cl_button:","symbol":"🆑","group":"symbols","keywords":["cl","CL button"]},{"id":":cool_button:","symbol":"🆒","group":"symbols","keywords":["cool","COOL button"]},{"id":":free_button:","symbol":"🆓","group":"symbols","keywords":["free","FREE button"]},{"id":":information:","symbol":"ℹ","group":"symbols","keywords":["i","information"]},{"id":":id_button:","symbol":"🆔","group":"symbols","keywords":["id","ID button","identity"]},{"id":":circled_m:","symbol":"Ⓜ","group":"symbols","keywords":["circle","circled M","m"]},{"id":":new_button:","symbol":"🆕","group":"symbols","keywords":["new","NEW button"]},{"id":":ng_button:","symbol":"🆖","group":"symbols","keywords":["ng","NG button"]},{"id":":o_button_(blood_type):","symbol":"🅾","group":"symbols","keywords":["blood type","o","O button (blood type)"]},{"id":":ok_button:","symbol":"🆗","group":"symbols","keywords":["OK","OK button"]},{"id":":p_button:","symbol":"🅿","group":"symbols","keywords":["P button","parking"]},{"id":":sos_button:","symbol":"🆘","group":"symbols","keywords":["help","sos","SOS button"]},{"id":":up!_button:","symbol":"🆙","group":"symbols","keywords":["mark","up","UP! button"]},{"id":":vs_button:","symbol":"🆚","group":"symbols","keywords":["versus","vs","VS button"]},{"id":":japanese_“here”_button:","symbol":"🈁","group":"symbols","keywords":["“here”","Japanese","Japanese “here” button","katakana","ココ"]},{"id":":japanese_“service_charge”_button:","symbol":"🈂","group":"symbols","keywords":["“service charge”","Japanese","Japanese “service charge” button","katakana","サ"]},{"id":":japanese_“monthly_amount”_button:","symbol":"🈷","group":"symbols","keywords":["“monthly amount”","ideograph","Japanese","Japanese “monthly amount” button","月"]},{"id":":japanese_“not_free_of_charge”_button:","symbol":"🈶","group":"symbols","keywords":["“not free of charge”","ideograph","Japanese","Japanese “not free of charge” button","有"]},{"id":":japanese_“reserved”_button:","symbol":"🈯","group":"symbols","keywords":["“reserved”","ideograph","Japanese","Japanese “reserved” button","指"]},{"id":":japanese_“bargain”_button:","symbol":"🉐","group":"symbols","keywords":["“bargain”","ideograph","Japanese","Japanese “bargain” button","得"]},{"id":":japanese_“discount”_button:","symbol":"🈹","group":"symbols","keywords":["“discount”","ideograph","Japanese","Japanese “discount” button","割"]},{"id":":japanese_“free_of_charge”_button:","symbol":"🈚","group":"symbols","keywords":["“free of charge”","ideograph","Japanese","Japanese “free of charge” button","無"]},{"id":":japanese_“prohibited”_button:","symbol":"🈲","group":"symbols","keywords":["“prohibited”","ideograph","Japanese","Japanese “prohibited” button","禁"]},{"id":":japanese_“acceptable”_button:","symbol":"🉑","group":"symbols","keywords":["“acceptable”","ideograph","Japanese","Japanese “acceptable” button","可"]},{"id":":japanese_“application”_button:","symbol":"🈸","group":"symbols","keywords":["“application”","ideograph","Japanese","Japanese “application” button","申"]},{"id":":japanese_“passing_grade”_button:","symbol":"🈴","group":"symbols","keywords":["“passing grade”","ideograph","Japanese","Japanese “passing grade” button","合"]},{"id":":japanese_“vacancy”_button:","symbol":"🈳","group":"symbols","keywords":["“vacancy”","ideograph","Japanese","Japanese “vacancy” button","空"]},{"id":":japanese_“congratulations”_button:","symbol":"㊗","group":"symbols","keywords":["“congratulations”","ideograph","Japanese","Japanese “congratulations” button","祝"]},{"id":":japanese_“secret”_button:","symbol":"㊙","group":"symbols","keywords":["“secret”","ideograph","Japanese","Japanese “secret” button","秘"]},{"id":":japanese_“open_for_business”_button:","symbol":"🈺","group":"symbols","keywords":["“open for business”","ideograph","Japanese","Japanese “open for business” button","営"]},{"id":":japanese_“no_vacancy”_button:","symbol":"🈵","group":"symbols","keywords":["“no vacancy”","ideograph","Japanese","Japanese “no vacancy” button","満"]},{"id":":red_circle:","symbol":"🔴","group":"symbols","keywords":["circle","geometric","red"]},{"id":":blue_circle:","symbol":"🔵","group":"symbols","keywords":["blue","circle","geometric"]},{"id":":white_circle:","symbol":"⚪","group":"symbols","keywords":["circle","geometric","white circle"]},{"id":":black_circle:","symbol":"⚫","group":"symbols","keywords":["black circle","circle","geometric"]},{"id":":white_large_square:","symbol":"⬜","group":"symbols","keywords":["geometric","square","white large square"]},{"id":":black_large_square:","symbol":"⬛","group":"symbols","keywords":["black large square","geometric","square"]},{"id":":black_medium_square:","symbol":"◼","group":"symbols","keywords":["black medium square","geometric","square"]},{"id":":white_medium_square:","symbol":"◻","group":"symbols","keywords":["geometric","square","white medium square"]},{"id":":white_medium-small_square:","symbol":"◽","group":"symbols","keywords":["geometric","square","white medium-small square"]},{"id":":black_medium-small_square:","symbol":"◾","group":"symbols","keywords":["black medium-small square","geometric","square"]},{"id":":white_small_square:","symbol":"▫","group":"symbols","keywords":["geometric","square","white small square"]},{"id":":black_small_square:","symbol":"▪","group":"symbols","keywords":["black small square","geometric","square"]},{"id":":large_orange_diamond:","symbol":"🔶","group":"symbols","keywords":["diamond","geometric","large orange diamond","orange"]},{"id":":large_blue_diamond:","symbol":"🔷","group":"symbols","keywords":["blue","diamond","geometric","large blue diamond"]},{"id":":small_orange_diamond:","symbol":"🔸","group":"symbols","keywords":["diamond","geometric","orange","small orange diamond"]},{"id":":small_blue_diamond:","symbol":"🔹","group":"symbols","keywords":["blue","diamond","geometric","small blue diamond"]},{"id":":red_triangle_pointed_up:","symbol":"🔺","group":"symbols","keywords":["geometric","red","red triangle pointed up"]},{"id":":red_triangle_pointed_down:","symbol":"🔻","group":"symbols","keywords":["down","geometric","red","red triangle pointed down"]},{"id":":diamond_with_a_dot:","symbol":"💠","group":"symbols","keywords":["comic","diamond","diamond with a dot","geometric","inside"]},{"id":":radio_button:","symbol":"🔘","group":"symbols","keywords":["button","geometric","radio"]},{"id":":black_square_button:","symbol":"🔲","group":"symbols","keywords":["black square button","button","geometric","square"]},{"id":":white_square_button:","symbol":"🔳","group":"symbols","keywords":["button","geometric","outlined","square","white square button"]},{"id":":chequered_flag:","symbol":"🏁","group":"flags","keywords":["checkered","chequered","chequered flag","racing"]},{"id":":triangular_flag:","symbol":"🚩","group":"flags","keywords":["post","triangular flag"]},{"id":":crossed_flags:","symbol":"🎌","group":"flags","keywords":["celebration","cross","crossed","crossed flags","Japanese"]},{"id":":black_flag:","symbol":"🏴","group":"flags","keywords":["black flag","waving"]},{"id":":white_flag:","symbol":"🏳","group":"flags","keywords":["waving","white flag"]},{"id":":rainbow_flag:","symbol":"🏳️‍🌈","group":"flags","keywords":["rainbow","rainbow flag"]},{"id":":flag_ascension_island:","symbol":"🇦🇨","group":"flags","keywords":["flag"]},{"id":":flag_andorra:","symbol":"🇦🇩","group":"flags","keywords":["flag"]},{"id":":flag_united_arab_emirates:","symbol":"🇦🇪","group":"flags","keywords":["flag"]},{"id":":flag_afghanistan:","symbol":"🇦🇫","group":"flags","keywords":["flag"]},{"id":":flag_antigua_&_barbuda:","symbol":"🇦🇬","group":"flags","keywords":["flag"]},{"id":":flag_anguilla:","symbol":"🇦🇮","group":"flags","keywords":["flag"]},{"id":":flag_albania:","symbol":"🇦🇱","group":"flags","keywords":["flag"]},{"id":":flag_armenia:","symbol":"🇦🇲","group":"flags","keywords":["flag"]},{"id":":flag_angola:","symbol":"🇦🇴","group":"flags","keywords":["flag"]},{"id":":flag_antarctica:","symbol":"🇦🇶","group":"flags","keywords":["flag"]},{"id":":flag_argentina:","symbol":"🇦🇷","group":"flags","keywords":["flag"]},{"id":":flag_american_samoa:","symbol":"🇦🇸","group":"flags","keywords":["flag"]},{"id":":flag_austria:","symbol":"🇦🇹","group":"flags","keywords":["flag"]},{"id":":flag_australia:","symbol":"🇦🇺","group":"flags","keywords":["flag"]},{"id":":flag_aruba:","symbol":"🇦🇼","group":"flags","keywords":["flag"]},{"id":":flag_åland_islands:","symbol":"🇦🇽","group":"flags","keywords":["flag"]},{"id":":flag_azerbaijan:","symbol":"🇦🇿","group":"flags","keywords":["flag"]},{"id":":flag_bosnia_&_herzegovina:","symbol":"🇧🇦","group":"flags","keywords":["flag"]},{"id":":flag_barbados:","symbol":"🇧🇧","group":"flags","keywords":["flag"]},{"id":":flag_bangladesh:","symbol":"🇧🇩","group":"flags","keywords":["flag"]},{"id":":flag_belgium:","symbol":"🇧🇪","group":"flags","keywords":["flag"]},{"id":":flag_burkina_faso:","symbol":"🇧🇫","group":"flags","keywords":["flag"]},{"id":":flag_bulgaria:","symbol":"🇧🇬","group":"flags","keywords":["flag"]},{"id":":flag_bahrain:","symbol":"🇧🇭","group":"flags","keywords":["flag"]},{"id":":flag_burundi:","symbol":"🇧🇮","group":"flags","keywords":["flag"]},{"id":":flag_benin:","symbol":"🇧🇯","group":"flags","keywords":["flag"]},{"id":":flag_st._barthélemy:","symbol":"🇧🇱","group":"flags","keywords":["flag"]},{"id":":flag_bermuda:","symbol":"🇧🇲","group":"flags","keywords":["flag"]},{"id":":flag_brunei:","symbol":"🇧🇳","group":"flags","keywords":["flag"]},{"id":":flag_bolivia:","symbol":"🇧🇴","group":"flags","keywords":["flag"]},{"id":":flag_caribbean_netherlands:","symbol":"🇧🇶","group":"flags","keywords":["flag"]},{"id":":flag_brazil:","symbol":"🇧🇷","group":"flags","keywords":["flag"]},{"id":":flag_bahamas:","symbol":"🇧🇸","group":"flags","keywords":["flag"]},{"id":":flag_bhutan:","symbol":"🇧🇹","group":"flags","keywords":["flag"]},{"id":":flag_bouvet_island:","symbol":"🇧🇻","group":"flags","keywords":["flag"]},{"id":":flag_botswana:","symbol":"🇧🇼","group":"flags","keywords":["flag"]},{"id":":flag_belarus:","symbol":"🇧🇾","group":"flags","keywords":["flag"]},{"id":":flag_belize:","symbol":"🇧🇿","group":"flags","keywords":["flag"]},{"id":":flag_canada:","symbol":"🇨🇦","group":"flags","keywords":["flag"]},{"id":":flag_cocos_(keeling)_islands:","symbol":"🇨🇨","group":"flags","keywords":["flag"]},{"id":":flag_congo_-_kinshasa:","symbol":"🇨🇩","group":"flags","keywords":["flag"]},{"id":":flag_central_african_republic:","symbol":"🇨🇫","group":"flags","keywords":["flag"]},{"id":":flag_congo_-_brazzaville:","symbol":"🇨🇬","group":"flags","keywords":["flag"]},{"id":":flag_switzerland:","symbol":"🇨🇭","group":"flags","keywords":["flag"]},{"id":":flag_côte_d’ivoire:","symbol":"🇨🇮","group":"flags","keywords":["flag"]},{"id":":flag_cook_islands:","symbol":"🇨🇰","group":"flags","keywords":["flag"]},{"id":":flag_chile:","symbol":"🇨🇱","group":"flags","keywords":["flag"]},{"id":":flag_cameroon:","symbol":"🇨🇲","group":"flags","keywords":["flag"]},{"id":":flag_china:","symbol":"🇨🇳","group":"flags","keywords":["flag"]},{"id":":flag_colombia:","symbol":"🇨🇴","group":"flags","keywords":["flag"]},{"id":":flag_clipperton_island:","symbol":"🇨🇵","group":"flags","keywords":["flag"]},{"id":":flag_costa_rica:","symbol":"🇨🇷","group":"flags","keywords":["flag"]},{"id":":flag_cuba:","symbol":"🇨🇺","group":"flags","keywords":["flag"]},{"id":":flag_cape_verde:","symbol":"🇨🇻","group":"flags","keywords":["flag"]},{"id":":flag_curaçao:","symbol":"🇨🇼","group":"flags","keywords":["flag"]},{"id":":flag_christmas_island:","symbol":"🇨🇽","group":"flags","keywords":["flag"]},{"id":":flag_cyprus:","symbol":"🇨🇾","group":"flags","keywords":["flag"]},{"id":":flag_czechia:","symbol":"🇨🇿","group":"flags","keywords":["flag"]},{"id":":flag_germany:","symbol":"🇩🇪","group":"flags","keywords":["flag"]},{"id":":flag_diego_garcia:","symbol":"🇩🇬","group":"flags","keywords":["flag"]},{"id":":flag_djibouti:","symbol":"🇩🇯","group":"flags","keywords":["flag"]},{"id":":flag_denmark:","symbol":"🇩🇰","group":"flags","keywords":["flag"]},{"id":":flag_dominica:","symbol":"🇩🇲","group":"flags","keywords":["flag"]},{"id":":flag_dominican_republic:","symbol":"🇩🇴","group":"flags","keywords":["flag"]},{"id":":flag_algeria:","symbol":"🇩🇿","group":"flags","keywords":["flag"]},{"id":":flag_ceuta_&_melilla:","symbol":"🇪🇦","group":"flags","keywords":["flag"]},{"id":":flag_ecuador:","symbol":"🇪🇨","group":"flags","keywords":["flag"]},{"id":":flag_estonia:","symbol":"🇪🇪","group":"flags","keywords":["flag"]},{"id":":flag_egypt:","symbol":"🇪🇬","group":"flags","keywords":["flag"]},{"id":":flag_western_sahara:","symbol":"🇪🇭","group":"flags","keywords":["flag"]},{"id":":flag_eritrea:","symbol":"🇪🇷","group":"flags","keywords":["flag"]},{"id":":flag_spain:","symbol":"🇪🇸","group":"flags","keywords":["flag"]},{"id":":flag_ethiopia:","symbol":"🇪🇹","group":"flags","keywords":["flag"]},{"id":":flag_european_union:","symbol":"🇪🇺","group":"flags","keywords":["flag"]},{"id":":flag_finland:","symbol":"🇫🇮","group":"flags","keywords":["flag"]},{"id":":flag_fiji:","symbol":"🇫🇯","group":"flags","keywords":["flag"]},{"id":":flag_falkland_islands:","symbol":"🇫🇰","group":"flags","keywords":["flag"]},{"id":":flag_micronesia:","symbol":"🇫🇲","group":"flags","keywords":["flag"]},{"id":":flag_faroe_islands:","symbol":"🇫🇴","group":"flags","keywords":["flag"]},{"id":":flag_france:","symbol":"🇫🇷","group":"flags","keywords":["flag"]},{"id":":flag_gabon:","symbol":"🇬🇦","group":"flags","keywords":["flag"]},{"id":":flag_united_kingdom:","symbol":"🇬🇧","group":"flags","keywords":["flag"]},{"id":":flag_grenada:","symbol":"🇬🇩","group":"flags","keywords":["flag"]},{"id":":flag_georgia:","symbol":"🇬🇪","group":"flags","keywords":["flag"]},{"id":":flag_french_guiana:","symbol":"🇬🇫","group":"flags","keywords":["flag"]},{"id":":flag_guernsey:","symbol":"🇬🇬","group":"flags","keywords":["flag"]},{"id":":flag_ghana:","symbol":"🇬🇭","group":"flags","keywords":["flag"]},{"id":":flag_gibraltar:","symbol":"🇬🇮","group":"flags","keywords":["flag"]},{"id":":flag_greenland:","symbol":"🇬🇱","group":"flags","keywords":["flag"]},{"id":":flag_gambia:","symbol":"🇬🇲","group":"flags","keywords":["flag"]},{"id":":flag_guinea:","symbol":"🇬🇳","group":"flags","keywords":["flag"]},{"id":":flag_guadeloupe:","symbol":"🇬🇵","group":"flags","keywords":["flag"]},{"id":":flag_equatorial_guinea:","symbol":"🇬🇶","group":"flags","keywords":["flag"]},{"id":":flag_greece:","symbol":"🇬🇷","group":"flags","keywords":["flag"]},{"id":":flag_south_georgia_&_south_sandwich_islands:","symbol":"🇬🇸","group":"flags","keywords":["flag"]},{"id":":flag_guatemala:","symbol":"🇬🇹","group":"flags","keywords":["flag"]},{"id":":flag_guam:","symbol":"🇬🇺","group":"flags","keywords":["flag"]},{"id":":flag_guinea-bissau:","symbol":"🇬🇼","group":"flags","keywords":["flag"]},{"id":":flag_guyana:","symbol":"🇬🇾","group":"flags","keywords":["flag"]},{"id":":flag_hong_kong_sar_china:","symbol":"🇭🇰","group":"flags","keywords":["flag"]},{"id":":flag_heard_&_mcdonald_islands:","symbol":"🇭🇲","group":"flags","keywords":["flag"]},{"id":":flag_honduras:","symbol":"🇭🇳","group":"flags","keywords":["flag"]},{"id":":flag_croatia:","symbol":"🇭🇷","group":"flags","keywords":["flag"]},{"id":":flag_haiti:","symbol":"🇭🇹","group":"flags","keywords":["flag"]},{"id":":flag_hungary:","symbol":"🇭🇺","group":"flags","keywords":["flag"]},{"id":":flag_canary_islands:","symbol":"🇮🇨","group":"flags","keywords":["flag"]},{"id":":flag_indonesia:","symbol":"🇮🇩","group":"flags","keywords":["flag"]},{"id":":flag_ireland:","symbol":"🇮🇪","group":"flags","keywords":["flag"]},{"id":":flag_israel:","symbol":"🇮🇱","group":"flags","keywords":["flag"]},{"id":":flag_isle_of_man:","symbol":"🇮🇲","group":"flags","keywords":["flag"]},{"id":":flag_india:","symbol":"🇮🇳","group":"flags","keywords":["flag"]},{"id":":flag_british_indian_ocean_territory:","symbol":"🇮🇴","group":"flags","keywords":["flag"]},{"id":":flag_iraq:","symbol":"🇮🇶","group":"flags","keywords":["flag"]},{"id":":flag_iran:","symbol":"🇮🇷","group":"flags","keywords":["flag"]},{"id":":flag_iceland:","symbol":"🇮🇸","group":"flags","keywords":["flag"]},{"id":":flag_italy:","symbol":"🇮🇹","group":"flags","keywords":["flag"]},{"id":":flag_jersey:","symbol":"🇯🇪","group":"flags","keywords":["flag"]},{"id":":flag_jamaica:","symbol":"🇯🇲","group":"flags","keywords":["flag"]},{"id":":flag_jordan:","symbol":"🇯🇴","group":"flags","keywords":["flag"]},{"id":":flag_japan:","symbol":"🇯🇵","group":"flags","keywords":["flag"]},{"id":":flag_kenya:","symbol":"🇰🇪","group":"flags","keywords":["flag"]},{"id":":flag_kyrgyzstan:","symbol":"🇰🇬","group":"flags","keywords":["flag"]},{"id":":flag_cambodia:","symbol":"🇰🇭","group":"flags","keywords":["flag"]},{"id":":flag_kiribati:","symbol":"🇰🇮","group":"flags","keywords":["flag"]},{"id":":flag_comoros:","symbol":"🇰🇲","group":"flags","keywords":["flag"]},{"id":":flag_st._kitts_&_nevis:","symbol":"🇰🇳","group":"flags","keywords":["flag"]},{"id":":flag_north_korea:","symbol":"🇰🇵","group":"flags","keywords":["flag"]},{"id":":flag_south_korea:","symbol":"🇰🇷","group":"flags","keywords":["flag"]},{"id":":flag_kuwait:","symbol":"🇰🇼","group":"flags","keywords":["flag"]},{"id":":flag_cayman_islands:","symbol":"🇰🇾","group":"flags","keywords":["flag"]},{"id":":flag_kazakhstan:","symbol":"🇰🇿","group":"flags","keywords":["flag"]},{"id":":flag_laos:","symbol":"🇱🇦","group":"flags","keywords":["flag"]},{"id":":flag_lebanon:","symbol":"🇱🇧","group":"flags","keywords":["flag"]},{"id":":flag_st._lucia:","symbol":"🇱🇨","group":"flags","keywords":["flag"]},{"id":":flag_liechtenstein:","symbol":"🇱🇮","group":"flags","keywords":["flag"]},{"id":":flag_sri_lanka:","symbol":"🇱🇰","group":"flags","keywords":["flag"]},{"id":":flag_liberia:","symbol":"🇱🇷","group":"flags","keywords":["flag"]},{"id":":flag_lesotho:","symbol":"🇱🇸","group":"flags","keywords":["flag"]},{"id":":flag_lithuania:","symbol":"🇱🇹","group":"flags","keywords":["flag"]},{"id":":flag_luxembourg:","symbol":"🇱🇺","group":"flags","keywords":["flag"]},{"id":":flag_latvia:","symbol":"🇱🇻","group":"flags","keywords":["flag"]},{"id":":flag_libya:","symbol":"🇱🇾","group":"flags","keywords":["flag"]},{"id":":flag_morocco:","symbol":"🇲🇦","group":"flags","keywords":["flag"]},{"id":":flag_monaco:","symbol":"🇲🇨","group":"flags","keywords":["flag"]},{"id":":flag_moldova:","symbol":"🇲🇩","group":"flags","keywords":["flag"]},{"id":":flag_montenegro:","symbol":"🇲🇪","group":"flags","keywords":["flag"]},{"id":":flag_st._martin:","symbol":"🇲🇫","group":"flags","keywords":["flag"]},{"id":":flag_madagascar:","symbol":"🇲🇬","group":"flags","keywords":["flag"]},{"id":":flag_marshall_islands:","symbol":"🇲🇭","group":"flags","keywords":["flag"]},{"id":":flag_macedonia:","symbol":"🇲🇰","group":"flags","keywords":["flag"]},{"id":":flag_mali:","symbol":"🇲🇱","group":"flags","keywords":["flag"]},{"id":":flag_myanmar_(burma):","symbol":"🇲🇲","group":"flags","keywords":["flag"]},{"id":":flag_mongolia:","symbol":"🇲🇳","group":"flags","keywords":["flag"]},{"id":":flag_macau_sar_china:","symbol":"🇲🇴","group":"flags","keywords":["flag"]},{"id":":flag_northern_mariana_islands:","symbol":"🇲🇵","group":"flags","keywords":["flag"]},{"id":":flag_martinique:","symbol":"🇲🇶","group":"flags","keywords":["flag"]},{"id":":flag_mauritania:","symbol":"🇲🇷","group":"flags","keywords":["flag"]},{"id":":flag_montserrat:","symbol":"🇲🇸","group":"flags","keywords":["flag"]},{"id":":flag_malta:","symbol":"🇲🇹","group":"flags","keywords":["flag"]},{"id":":flag_mauritius:","symbol":"🇲🇺","group":"flags","keywords":["flag"]},{"id":":flag_maldives:","symbol":"🇲🇻","group":"flags","keywords":["flag"]},{"id":":flag_malawi:","symbol":"🇲🇼","group":"flags","keywords":["flag"]},{"id":":flag_mexico:","symbol":"🇲🇽","group":"flags","keywords":["flag"]},{"id":":flag_malaysia:","symbol":"🇲🇾","group":"flags","keywords":["flag"]},{"id":":flag_mozambique:","symbol":"🇲🇿","group":"flags","keywords":["flag"]},{"id":":flag_namibia:","symbol":"🇳🇦","group":"flags","keywords":["flag"]},{"id":":flag_new_caledonia:","symbol":"🇳🇨","group":"flags","keywords":["flag"]},{"id":":flag_niger:","symbol":"🇳🇪","group":"flags","keywords":["flag"]},{"id":":flag_norfolk_island:","symbol":"🇳🇫","group":"flags","keywords":["flag"]},{"id":":flag_nigeria:","symbol":"🇳🇬","group":"flags","keywords":["flag"]},{"id":":flag_nicaragua:","symbol":"🇳🇮","group":"flags","keywords":["flag"]},{"id":":flag_netherlands:","symbol":"🇳🇱","group":"flags","keywords":["flag"]},{"id":":flag_norway:","symbol":"🇳🇴","group":"flags","keywords":["flag"]},{"id":":flag_nepal:","symbol":"🇳🇵","group":"flags","keywords":["flag"]},{"id":":flag_nauru:","symbol":"🇳🇷","group":"flags","keywords":["flag"]},{"id":":flag_niue:","symbol":"🇳🇺","group":"flags","keywords":["flag"]},{"id":":flag_new_zealand:","symbol":"🇳🇿","group":"flags","keywords":["flag"]},{"id":":flag_oman:","symbol":"🇴🇲","group":"flags","keywords":["flag"]},{"id":":flag_panama:","symbol":"🇵🇦","group":"flags","keywords":["flag"]},{"id":":flag_peru:","symbol":"🇵🇪","group":"flags","keywords":["flag"]},{"id":":flag_french_polynesia:","symbol":"🇵🇫","group":"flags","keywords":["flag"]},{"id":":flag_papua_new_guinea:","symbol":"🇵🇬","group":"flags","keywords":["flag"]},{"id":":flag_philippines:","symbol":"🇵🇭","group":"flags","keywords":["flag"]},{"id":":flag_pakistan:","symbol":"🇵🇰","group":"flags","keywords":["flag"]},{"id":":flag_poland:","symbol":"🇵🇱","group":"flags","keywords":["flag"]},{"id":":flag_st._pierre_&_miquelon:","symbol":"🇵🇲","group":"flags","keywords":["flag"]},{"id":":flag_pitcairn_islands:","symbol":"🇵🇳","group":"flags","keywords":["flag"]},{"id":":flag_puerto_rico:","symbol":"🇵🇷","group":"flags","keywords":["flag"]},{"id":":flag_palestinian_territories:","symbol":"🇵🇸","group":"flags","keywords":["flag"]},{"id":":flag_portugal:","symbol":"🇵🇹","group":"flags","keywords":["flag"]},{"id":":flag_palau:","symbol":"🇵🇼","group":"flags","keywords":["flag"]},{"id":":flag_paraguay:","symbol":"🇵🇾","group":"flags","keywords":["flag"]},{"id":":flag_qatar:","symbol":"🇶🇦","group":"flags","keywords":["flag"]},{"id":":flag_réunion:","symbol":"🇷🇪","group":"flags","keywords":["flag"]},{"id":":flag_romania:","symbol":"🇷🇴","group":"flags","keywords":["flag"]},{"id":":flag_serbia:","symbol":"🇷🇸","group":"flags","keywords":["flag"]},{"id":":flag_russia:","symbol":"🇷🇺","group":"flags","keywords":["flag"]},{"id":":flag_rwanda:","symbol":"🇷🇼","group":"flags","keywords":["flag"]},{"id":":flag_saudi_arabia:","symbol":"🇸🇦","group":"flags","keywords":["flag"]},{"id":":flag_solomon_islands:","symbol":"🇸🇧","group":"flags","keywords":["flag"]},{"id":":flag_seychelles:","symbol":"🇸🇨","group":"flags","keywords":["flag"]},{"id":":flag_sudan:","symbol":"🇸🇩","group":"flags","keywords":["flag"]},{"id":":flag_sweden:","symbol":"🇸🇪","group":"flags","keywords":["flag"]},{"id":":flag_singapore:","symbol":"🇸🇬","group":"flags","keywords":["flag"]},{"id":":flag_st._helena:","symbol":"🇸🇭","group":"flags","keywords":["flag"]},{"id":":flag_slovenia:","symbol":"🇸🇮","group":"flags","keywords":["flag"]},{"id":":flag_svalbard_&_jan_mayen:","symbol":"🇸🇯","group":"flags","keywords":["flag"]},{"id":":flag_slovakia:","symbol":"🇸🇰","group":"flags","keywords":["flag"]},{"id":":flag_sierra_leone:","symbol":"🇸🇱","group":"flags","keywords":["flag"]},{"id":":flag_san_marino:","symbol":"🇸🇲","group":"flags","keywords":["flag"]},{"id":":flag_senegal:","symbol":"🇸🇳","group":"flags","keywords":["flag"]},{"id":":flag_somalia:","symbol":"🇸🇴","group":"flags","keywords":["flag"]},{"id":":flag_suriname:","symbol":"🇸🇷","group":"flags","keywords":["flag"]},{"id":":flag_south_sudan:","symbol":"🇸🇸","group":"flags","keywords":["flag"]},{"id":":flag_são_tomé_&_príncipe:","symbol":"🇸🇹","group":"flags","keywords":["flag"]},{"id":":flag_el_salvador:","symbol":"🇸🇻","group":"flags","keywords":["flag"]},{"id":":flag_sint_maarten:","symbol":"🇸🇽","group":"flags","keywords":["flag"]},{"id":":flag_syria:","symbol":"🇸🇾","group":"flags","keywords":["flag"]},{"id":":flag_swaziland:","symbol":"🇸🇿","group":"flags","keywords":["flag"]},{"id":":flag_tristan_da_cunha:","symbol":"🇹🇦","group":"flags","keywords":["flag"]},{"id":":flag_turks_&_caicos_islands:","symbol":"🇹🇨","group":"flags","keywords":["flag"]},{"id":":flag_chad:","symbol":"🇹🇩","group":"flags","keywords":["flag"]},{"id":":flag_french_southern_territories:","symbol":"🇹🇫","group":"flags","keywords":["flag"]},{"id":":flag_togo:","symbol":"🇹🇬","group":"flags","keywords":["flag"]},{"id":":flag_thailand:","symbol":"🇹🇭","group":"flags","keywords":["flag"]},{"id":":flag_tajikistan:","symbol":"🇹🇯","group":"flags","keywords":["flag"]},{"id":":flag_tokelau:","symbol":"🇹🇰","group":"flags","keywords":["flag"]},{"id":":flag_timor-leste:","symbol":"🇹🇱","group":"flags","keywords":["flag"]},{"id":":flag_turkmenistan:","symbol":"🇹🇲","group":"flags","keywords":["flag"]},{"id":":flag_tunisia:","symbol":"🇹🇳","group":"flags","keywords":["flag"]},{"id":":flag_tonga:","symbol":"🇹🇴","group":"flags","keywords":["flag"]},{"id":":flag_turkey:","symbol":"🇹🇷","group":"flags","keywords":["flag"]},{"id":":flag_trinidad_&_tobago:","symbol":"🇹🇹","group":"flags","keywords":["flag"]},{"id":":flag_tuvalu:","symbol":"🇹🇻","group":"flags","keywords":["flag"]},{"id":":flag_taiwan:","symbol":"🇹🇼","group":"flags","keywords":["flag"]},{"id":":flag_tanzania:","symbol":"🇹🇿","group":"flags","keywords":["flag"]},{"id":":flag_ukraine:","symbol":"🇺🇦","group":"flags","keywords":["flag"]},{"id":":flag_uganda:","symbol":"🇺🇬","group":"flags","keywords":["flag"]},{"id":":flag_u.s._outlying_islands:","symbol":"🇺🇲","group":"flags","keywords":["flag"]},{"id":":flag_united_nations:","symbol":"🇺🇳","group":"flags","keywords":["flag"]},{"id":":flag_united_states:","symbol":"🇺🇸","group":"flags","keywords":["flag"]},{"id":":flag_uruguay:","symbol":"🇺🇾","group":"flags","keywords":["flag"]},{"id":":flag_uzbekistan:","symbol":"🇺🇿","group":"flags","keywords":["flag"]},{"id":":flag_vatican_city:","symbol":"🇻🇦","group":"flags","keywords":["flag"]},{"id":":flag_st._vincent_&_grenadines:","symbol":"🇻🇨","group":"flags","keywords":["flag"]},{"id":":flag_venezuela:","symbol":"🇻🇪","group":"flags","keywords":["flag"]},{"id":":flag_british_virgin_islands:","symbol":"🇻🇬","group":"flags","keywords":["flag"]},{"id":":flag_u.s._virgin_islands:","symbol":"🇻🇮","group":"flags","keywords":["flag"]},{"id":":flag_vietnam:","symbol":"🇻🇳","group":"flags","keywords":["flag"]},{"id":":flag_vanuatu:","symbol":"🇻🇺","group":"flags","keywords":["flag"]},{"id":":flag_wallis_&_futuna:","symbol":"🇼🇫","group":"flags","keywords":["flag"]},{"id":":flag_samoa:","symbol":"🇼🇸","group":"flags","keywords":["flag"]},{"id":":flag_kosovo:","symbol":"🇽🇰","group":"flags","keywords":["flag"]},{"id":":flag_yemen:","symbol":"🇾🇪","group":"flags","keywords":["flag"]},{"id":":flag_mayotte:","symbol":"🇾🇹","group":"flags","keywords":["flag"]},{"id":":flag_south_africa:","symbol":"🇿🇦","group":"flags","keywords":["flag"]},{"id":":flag_zambia:","symbol":"🇿🇲","group":"flags","keywords":["flag"]},{"id":":flag_zimbabwe:","symbol":"🇿🇼","group":"flags","keywords":["flag"]},{"id":":flag_england:","symbol":"🏴󠁧󠁢󠁥󠁮󠁧󠁿","group":"flags","keywords":["flag"]},{"id":":flag_scotland:","symbol":"🏴󠁧󠁢󠁳󠁣󠁴󠁿","group":"flags","keywords":["flag"]},{"id":":flag_wales:","symbol":"🏴󠁧󠁢󠁷󠁬󠁳󠁿","group":"flags","keywords":["flag"]}]');const ZM={autosave:{waitingTime:5e3,save:e=>async function(e){const t=Date.now(),o=e.config.get(HM),n=await e.getData();n||console.warn("Trying to save snapshot but data is not defined.");const i={timestamp:t,hash:OM(n),content:n},r=NM(o),s=r?.items||[];s.find((e=>i.hash===e.hash))||s.push(i);try{const e=MM.compress(JSON.stringify({items:s,updatedAt:t}));localStorage.setItem(o,e)}catch(t){Fw(e,"notifications").addError("Failed to save CKEditor data to localStorage: "+t.toString())}return!0}(e)},heading:{options:[{model:"paragraph",title:"Paragraph",class:"ck-heading_paragraph"},{model:"heading1",view:"h1",title:"Heading 1",class:"ck-heading_heading1"},{model:"heading2",view:"h2",title:"Heading 2",class:"ck-heading_heading2"},{model:"heading3",view:"h3",title:"Heading 3",class:"ck-heading_heading3"},{model:"heading4",view:"h4",title:"Heading 4",class:"ck-heading_heading4"},{model:"heading5",view:"h5",title:"Heading 5",class:"ck-heading_heading5"}]},toolbar:{},OPMacroEmbeddedTable:{toolbar:["opEditEmbeddedTableQuery"]},OPMacroWpButton:{toolbar:["opEditWpMacroButton"]},OPWikiIncludePage:{toolbar:["opEditWikiIncludeMacroButton"]},OPCodeBlock:{toolbar:["opEditCodeBlock"]},OPChildPages:{toolbar:["opEditChildPagesMacroButton"]},image:{insert:{type:"inline"},resizeUnit:"px",resizeOptions:[{name:"imageResize:original",value:null,icon:"original"},{name:"imageResize:50",value:"50",icon:"medium"},{name:"imageResize:75",value:"75",icon:"large"}],toolbar:["toggleImageCaption","imageTextAlternative","|","imageStyle:inline","imageStyle:block","|","imageResize:original"]},table:{contentToolbar:["tableColumn","tableRow","mergeTableCells","tableProperties","tableCellProperties"]},mention:{feeds:[{marker:"@",feed:function(e){const t=this;let o=Iw(t);if(o&&"Activity::Comment"===o._type){const e=o.$embedded.workPackage;e&&(o=e)}if(!o||"WorkPackage"!==o._type)return[];if(t.config.get("disabledMentions").includes("user"))return[];const n=Rw(t).api.v3.principals(o,e),i=Pw(t),r=window.OpenProject.urlRoot;return new Promise(((e,t)=>{SD(n,{responseKind:"json",query:{select:"elements/_type,elements/id,elements/name"}}).then((e=>e.json)).then((t=>{e(_.uniqBy(t._embedded.elements,(e=>e.id)).map((e=>{const t=e._type.toLowerCase(),o=`@${e.name}`,n=`@${e.id}`,s=e.id,a=i.services.apiV3Service[`${t}s`].segment;return{type:t,id:n,text:o,link:`${r}/${a}/${s}`,idNumber:s,name:e.name}})))})).catch((e=>{console.error("Error fetching user mentions:",e),t(e)}))}))},itemRenderer:GM,minimumCharacters:0},{marker:"###",feed:WM("###"),itemRenderer:GM,minimumCharacters:1},{marker:"##",feed:WM("##"),itemRenderer:GM,minimumCharacters:1},{marker:"#",feed:WM("#"),itemRenderer:GM,minimumCharacters:1},{marker:":",feed:function(e){return new Promise(((t,o)=>{const n=KM.filter((t=>function(e,t,o){if(t.includes(e))return!0;if(0!==o.length)for(let t=0;t({id:e.id,name:e.id.replace(/:/g,""),text:e.symbol,type:"emoji"})));t(n)}))},itemRenderer:function(e){const t=document.createElement("span");return t.classList.add("mention-list-item"),t.textContent=`${e.text} ${e.name}`,t},minimumCharacters:1}]},language:"en",licenseKey:"GPL"};function JM(e){return(t,o)=>{const n=o.openProject.context;o.removePlugins=o.removePlugins||[];const i=n.resource;if(i&&i.canAddAttachments||o.removePlugins.push(...$M.map((e=>e.pluginName))),!1===n.macros&&(o.openProject.disableAllMacros=!0,o.removePlugins.push(...qM.map((e=>e.pluginName)))),Array.isArray(n.macros)){const e=qM.filter((e=>-1===n.macros.indexOf(e.pluginName)));o.removePlugins.push(...e)}o.disabledMentions=[];const r=n.disabledMentions;return Array.isArray(r)&&(o.disabledMentions=r),e.create(t,o).then((e=>e))}}class YM extends lw{}class QM extends lw{}window.OPConstrainedEditor=YM,window.OPClassicEditor=QM,window.OPEditorWatchdog=Uh,QM.createCustomized=JM(QM),QM.builtinPlugins=UM,QM.defaultConfig=Object.assign({},ZM),QM.defaultConfig.toolbar={items:["heading","|","bold","italic","strikethrough","code","insertCodeBlock","link","bulletedList","numberedList","todoList","imageUpload","blockQuote","|","insertTable","macroList","|","opContentRevisions","undo","redo","openProjectShowFormattingHelp","|","pageBreak","|","preview","opShowSource"]},YM.createCustomized=JM(YM),YM.builtinPlugins=UM,YM.defaultConfig=Object.assign({},ZM),YM.defaultConfig.toolbar={items:["bold","italic","strikethrough","code","insertCodeBlock","link","bulletedList","numberedList","todoList","imageUpload","blockQuote","|","opContentRevisions","undo","redo","openProjectShowFormattingHelp","preview","opShowSource"]}})(),r=r.default})())); +!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.OPEditor=t():e.OPEditor=t()}(self,(()=>(()=>{var e={428:e=>{var t=!0,o=!1,i=!1;function n(e,t,o){var i=e.attrIndex(t),n=[t,o];i<0?e.attrPush(n):e.attrs[i]=n}function s(e,t){for(var o=e[t].level-1,i=t-1;i>=0;i--)if(e[i].level===o)return i;return-1}function r(e,t){return"inline"===e[t].type&&function(e){return"paragraph_open"===e.type}(e[t-1])&&function(e){return"list_item_open"===e.type}(e[t-2])&&function(e){return 0===e.content.indexOf("[ ] ")||0===e.content.indexOf("[x] ")||0===e.content.indexOf("[X] ")}(e[t])}function a(e,n){if(e.children.unshift(function(e,o){var i=new o("html_inline","",0),n=t?' disabled="" ':"";0===e.content.indexOf("[ ] ")?i.content='':0!==e.content.indexOf("[x] ")&&0!==e.content.indexOf("[X] ")||(i.content='');return i}(e,n)),e.children[1].content=e.children[1].content.slice(3),e.content=e.content.slice(3),o)if(i){e.children.pop();var s="task-item-"+Math.ceil(1e7*Math.random()-1e3);e.children[0].content=e.children[0].content.slice(0,-1)+' id="'+s+'">',e.children.push(function(e,t,o){var i=new o("html_inline","",0);return i.content='",i.attrs=[{for:t}],i}(e.content,s,n))}else e.children.unshift(function(e){var t=new e("html_inline","",0);return t.content="",t}(n))}e.exports=function(e,l){l&&(t=!l.enabled,o=!!l.label,i=!!l.labelAfter),e.core.ruler.after("inline","github-task-lists",(function(e){for(var o=e.tokens,i=2;i{var i,n=function(){var e=String.fromCharCode,t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",o="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+-$",i={};function n(e,t){if(!i[e]){i[e]={};for(var o=0;o>>8,o[2*i+1]=r%256}return o},decompressFromUint8Array:function(t){if(null==t)return s.decompress(t);for(var o=new Array(t.length/2),i=0,n=o.length;i>=1}else{for(n=1,i=0;i>=1}0==--u&&(u=Math.pow(2,m),m++),delete a[d]}else for(n=r[d],i=0;i>=1;0==--u&&(u=Math.pow(2,m),m++),r[c]=h++,d=String(l)}if(""!==d){if(Object.prototype.hasOwnProperty.call(a,d)){if(d.charCodeAt(0)<256){for(i=0;i>=1}else{for(n=1,i=0;i>=1}0==--u&&(u=Math.pow(2,m),m++),delete a[d]}else for(n=r[d],i=0;i>=1;0==--u&&(u=Math.pow(2,m),m++)}for(n=2,i=0;i>=1;for(;;){if(p<<=1,f==t-1){g.push(o(p));break}f++}return g.join("")},decompress:function(e){return null==e?"":""==e?null:s._decompress(e.length,32768,(function(t){return e.charCodeAt(t)}))},_decompress:function(t,o,i){var n,s,r,a,l,c,d,u=[],h=4,m=4,g=3,p="",f=[],b={val:i(0),position:o,index:1};for(n=0;n<3;n+=1)u[n]=n;for(r=0,l=Math.pow(2,2),c=1;c!=l;)a=b.val&b.position,b.position>>=1,0==b.position&&(b.position=o,b.val=i(b.index++)),r|=(a>0?1:0)*c,c<<=1;switch(r){case 0:for(r=0,l=Math.pow(2,8),c=1;c!=l;)a=b.val&b.position,b.position>>=1,0==b.position&&(b.position=o,b.val=i(b.index++)),r|=(a>0?1:0)*c,c<<=1;d=e(r);break;case 1:for(r=0,l=Math.pow(2,16),c=1;c!=l;)a=b.val&b.position,b.position>>=1,0==b.position&&(b.position=o,b.val=i(b.index++)),r|=(a>0?1:0)*c,c<<=1;d=e(r);break;case 2:return""}for(u[3]=d,s=d,f.push(d);;){if(b.index>t)return"";for(r=0,l=Math.pow(2,g),c=1;c!=l;)a=b.val&b.position,b.position>>=1,0==b.position&&(b.position=o,b.val=i(b.index++)),r|=(a>0?1:0)*c,c<<=1;switch(d=r){case 0:for(r=0,l=Math.pow(2,8),c=1;c!=l;)a=b.val&b.position,b.position>>=1,0==b.position&&(b.position=o,b.val=i(b.index++)),r|=(a>0?1:0)*c,c<<=1;u[m++]=e(r),d=m-1,h--;break;case 1:for(r=0,l=Math.pow(2,16),c=1;c!=l;)a=b.val&b.position,b.position>>=1,0==b.position&&(b.position=o,b.val=i(b.index++)),r|=(a>0?1:0)*c,c<<=1;u[m++]=e(r),d=m-1,h--;break;case 2:return f.join("")}if(0==h&&(h=Math.pow(2,g),g++),u[d])p=u[d];else{if(d!==m)return null;p=s+s.charAt(0)}f.push(p),u[m++]=s+p.charAt(0),s=p,0==--h&&(h=Math.pow(2,g),g++)}}};return s}();void 0===(i=function(){return n}.call(t,o,t,e))||(e.exports=i)}},t={};function o(i){var n=t[i];if(void 0!==n)return n.exports;var s=t[i]={exports:{}};return e[i](s,s.exports,o),s.exports}o.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return o.d(t,{a:t}),t},o.d=(e,t)=>{for(var i in t)o.o(t,i)&&!o.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:t[i]})},o.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),o.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var i={};return(()=>{"use strict";var e={};o.r(e),o.d(e,{decode:()=>qx,encode:()=>Wx,format:()=>Ux,parse:()=>sE});var t={};o.r(t),o.d(t,{Any:()=>lE,Cc:()=>cE,Cf:()=>dE,P:()=>rE,S:()=>aE,Z:()=>uE});var i={};o.r(i),o.d(i,{arrayReplaceAt:()=>LE,assign:()=>BE,escapeHtml:()=>QE,escapeRE:()=>XE,fromCodePoint:()=>jE,has:()=>NE,isMdAsciiPunct:()=>iT,isPunctChar:()=>oT,isSpace:()=>eT,isString:()=>FE,isValidEntityCode:()=>zE,isWhiteSpace:()=>tT,lib:()=>sT,normalizeReference:()=>nT,unescapeAll:()=>UE,unescapeMd:()=>WE});var n={};function s(e){return null!==e&&("object"==typeof e||"function"==typeof e)}function r(e){return"string"==typeof e||e instanceof String}function a(e){if("object"!=typeof e)return!1;if(null==e)return!1;if(null===Object.getPrototypeOf(e))return!0;if("[object Object]"!==Object.prototype.toString.call(e)){const t=e[Symbol.toStringTag];if(null==t)return!1;return!!Object.getOwnPropertyDescriptor(e,Symbol.toStringTag)?.writable&&e.toString()===`[object ${t}]`}let t=e;for(;null!==Object.getPrototypeOf(t);)t=Object.getPrototypeOf(t);return Object.getPrototypeOf(e)===t}function l(e){return Object.getOwnPropertySymbols(e).filter((t=>Object.prototype.propertyIsEnumerable.call(e,t)))}function c(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":Object.prototype.toString.call(e)}o.r(n),o.d(n,{parseLinkDestination:()=>aT,parseLinkLabel:()=>rT,parseLinkTitle:()=>lT});const d="[object RegExp]",u="[object String]",h="[object Number]",m="[object Boolean]",g="[object Arguments]",p="[object Symbol]",f="[object Date]",b="[object Map]",w="[object Set]",y="[object Array]",k="[object ArrayBuffer]",v="[object Object]",C="[object DataView]",A="[object Uint8Array]",x="[object Uint8ClampedArray]",E="[object Uint16Array]",T="[object Uint32Array]",P="[object Int8Array]",S="[object Int16Array]",I="[object Int32Array]",R="[object Float32Array]",O="[object Float64Array]";function V(e){return null==e||"object"!=typeof e&&"function"!=typeof e}function D(e){return ArrayBuffer.isView(e)&&!(e instanceof DataView)}function F(e,t,o,i=new Map,n=void 0){const s=n?.(e,t,o,i);if(void 0!==s)return s;if(V(e))return e;if(i.has(e))return i.get(e);if(Array.isArray(e)){const t=new Array(e.length);i.set(e,t);for(let s=0;s{const r=t?.(o,i,n,s);if(void 0!==r)return r;if("object"==typeof e){if(c(e)===v&&"function"!=typeof e.constructor){const t={};return s.set(e,t),M(t,e,n,s),t}switch(Object.prototype.toString.call(e)){case h:case u:case m:{const t=new e.constructor(e?.valueOf());return M(t,e),t}case g:{const t={};return M(t,e),t.length=e.length,t[Symbol.iterator]=e[Symbol.iterator],t}default:return}}}))}function B(e){return"object"==typeof e&&null!==e}function L(e){return B(e)&&1===e.nodeType&&!a(e)}function z(e){return"function"==typeof e}function j(e){return N(e)}function q(e){return"__proto__"===e}function $(e){return null!==e&&"object"==typeof e&&"[object Arguments]"===c(e)}function H(e){return null!=e&&"function"!=typeof e&&function(e){return Number.isSafeInteger(e)&&e>=0}(e.length)}function W(e){return D(e)}function U(e,t,o,i){if(V(e)&&(e=Object(e)),null==t||"object"!=typeof t)return e;if(i.has(t))return function(e){if(V(e))return e;if(Array.isArray(e)||D(e)||e instanceof ArrayBuffer||"undefined"!=typeof SharedArrayBuffer&&e instanceof SharedArrayBuffer)return e.slice(0);const t=Object.getPrototypeOf(e);if(null==t)return Object.assign(Object.create(t),e);const o=t.constructor;if(e instanceof Date||e instanceof Map||e instanceof Set)return new o(e);if(e instanceof RegExp){const t=new o(e);return t.lastIndex=e.lastIndex,t}if(e instanceof DataView)return new o(e.buffer.slice(0));if(e instanceof Error){let t;return t=e instanceof AggregateError?new o(e.errors,e.message,{cause:e.cause}):new o(e.message,{cause:e.cause}),t.stack=e.stack,Object.assign(t,e),t}if("undefined"!=typeof File&&e instanceof File)return new o([e],e.name,{type:e.type,lastModified:e.lastModified});if("object"==typeof e){const o=Object.create(t);return Object.assign(o,e)}return e}(i.get(t));if(i.set(t,e),Array.isArray(t)){t=t.slice();for(let e=0;e-1}function ee(e){return e.indexOf("windows")>-1}function te(e){return!!e.match(/gecko\/\d+/)}function oe(e){return e.indexOf(" applewebkit/")>-1&&-1===e.indexOf("chrome")}function ie(e){return!!e.match(/iphone|ipad/i)||X(e)&&navigator.maxTouchPoints>0}function ne(e){return e.indexOf("android")>-1}function se(e){return e.indexOf("chrome/")>-1&&e.indexOf("edge/")<0}function re(){let e=!1;try{e=0==="ć".search(new RegExp("[\\p{L}]","u"))}catch{}return e}function ae(e,t,o,i){o=o||function(e,t){return e===t};const n=Array.isArray(e)?e:Array.prototype.slice.call(e),s=Array.isArray(t)?t:Array.prototype.slice.call(t),r=function(e,t,o){const i=le(e,t,o);if(-1===i)return{firstIndex:-1,lastIndexOld:-1,lastIndexNew:-1};const n=ce(e,i),s=ce(t,i),r=le(n,s,o),a=e.length-r,l=t.length-r;return{firstIndex:i,lastIndexOld:a,lastIndexNew:l}}(n,s,o),a=i?function(e,t){const{firstIndex:o,lastIndexOld:i,lastIndexNew:n}=e;if(-1===o)return Array(t).fill("equal");let s=[];o>0&&(s=s.concat(Array(o).fill("equal")));n-o>0&&(s=s.concat(Array(n-o).fill("insert")));i-o>0&&(s=s.concat(Array(i-o).fill("delete")));n0&&o.push({index:i,type:"insert",values:e.slice(i,s)});n-i>0&&o.push({index:i+(s-i),type:"delete",howMany:n-i});return o}(s,r);return a}function le(e,t,o){for(let i=0;i200||n>200||i+n>300)return de.fastDiff(e,t,o,!0);let s,r;if(nc?-1:1;d[i+h]&&(d[i]=d[i+h].slice(0)),d[i]||(d[i]=[]),d[i].push(n>c?s:r);let m=Math.max(n,c),g=m-i;for(;gc;m--)u[m]=h(m);u[c]=h(c),g++}while(u[c]!==l);return d[c].slice(1)}de.fastDiff=ae;class ue{source;name;path;stop;off;return;constructor(e,t){this.source=e,this.name=t,this.path=[],this.stop=function e(){e.called=!0},this.off=function e(){e.called=!0}}}const he=new Array(256).fill("").map(((e,t)=>("0"+t.toString(16)).slice(-2)));function me(){const[e,t,o,i]=crypto.getRandomValues(new Uint32Array(4));return"e"+he[255&e]+he[e>>8&255]+he[e>>16&255]+he[e>>24&255]+he[255&t]+he[t>>8&255]+he[t>>16&255]+he[t>>24&255]+he[255&o]+he[o>>8&255]+he[o>>16&255]+he[o>>24&255]+he[255&i]+he[i>>8&255]+he[i>>16&255]+he[i>>24&255]}const ge={get(e="normal"){return"number"!=typeof e?this[e]||this.normal:e},highest:1e5,high:1e3,normal:0,low:-1e3,lowest:-1e5};function pe(e,t){const o=ge.get(t.priority);let i=0,n=e.length;for(;i>1;ge.get(e[t].priority){if("object"==typeof t&&null!==t){if(i.has(t))return`[object ${t.constructor.name}]`;i.add(t)}return t},s=t?` ${JSON.stringify(t,n)}`:"",r=we(e),a=o?`\nOriginal error: ${o.name}: ${o.message}`:"";return e+s+r+a}(e,o,i)),this.name="CKEditorError",this.context=t,this.data=o,i&&(this.stack=i.stack)}is(e){return"CKEditorError"===e}static rethrowUnexpectedError(e,t){if(e.is&&e.is("CKEditorError"))throw e;throw new fe("unexpected-error",t,void 0,e)}}function be(e,t){console.warn(...ye(e,t))}function we(e){return`\nRead more: https://ckeditor.com/docs/ckeditor5/latest/support/error-codes.html#error-${e}`}function ye(e,t){const o=we(e);return t?[e,t,o]:[e,o]}const _e=new Date(2026,2,31);if(globalThis.CKEDITOR_VERSION)throw new fe("ckeditor-duplicated-modules",null);globalThis.CKEDITOR_VERSION="48.0.0";const ke=Symbol("listeningTo"),ve=Symbol("emitterId"),Ce=Symbol("delegations"),Ae=xe(Object);function xe(e){if(!e)return Ae;return class extends e{on(e,t,o){this.listenTo(this,e,t,o)}once(e,t,o){let i=!1;this.listenTo(this,e,((e,...o)=>{i||(i=!0,e.off(),t.call(this,e,...o))}),o)}off(e,t){this.stopListening(this,e,t)}listenTo(e,t,o,i={}){let n,s;this[ke]||(this[ke]={});const r=this[ke];Te(e)||Ee(e);const a=Te(e);(n=r[a])||(n=r[a]={emitter:e,callbacks:{}}),(s=n.callbacks[t])||(s=n.callbacks[t]=[]),s.push(o),function(e,t,o,i,n){t._addEventListener?t._addEventListener(o,i,n):e._addEventListener.call(t,o,i,n)}(this,e,t,o,i)}stopListening(e,t,o){const i=this[ke];let n=e&&Te(e);const s=i&&n?i[n]:void 0,r=s&&t?s.callbacks[t]:void 0;if(!(!i||e&&!s||t&&!r))if(o){Re(this,e,t,o);-1!==r.indexOf(o)&&(1===r.length?delete s.callbacks[t]:Re(this,e,t,o))}else if(r){for(;o=r.pop();)Re(this,e,t,o);delete s.callbacks[t]}else if(s){for(t in s.callbacks)this.stopListening(e,t);delete i[n]}else{for(n in i)this.stopListening(i[n].emitter);delete this[ke]}}fire(e,...t){try{const o=e instanceof ue?e:new ue(this,e),i=o.name;let n=function(e,t){if(!e._events)return null;let o=t;do{const t=e._events[o];if(t&&t.callbacks&&t.callbacks.length)return t.callbacks;const i=o.lastIndexOf(":");o=i>-1?o.substring(0,i):""}while(o);return null}(this,i);if(o.path.push(this),n){n=n.slice();for(let e=0;e{this[Ce]||(this[Ce]=new Map),e.forEach((e=>{const i=this[Ce].get(e);i?i.set(t,o):this[Ce].set(e,new Map([[t,o]]))}))}}}stopDelegating(e,t){if(this[Ce])if(e)if(t){const o=this[Ce].get(e);o&&o.delete(t)}else this[Ce].delete(e);else this[Ce].clear()}_addEventListener(e,t,o){!function(e,t){const o=Pe(e);if(o[t])return;let i=t,n=null;const s=[];for(;""!==i&&!o[i];)o[i]={callbacks:[],childEvents:[]},s.push(o[i]),n&&o[i].childEvents.push(n),n=i,i=i.substr(0,i.lastIndexOf(":"));if(""!==i){for(const e of s)e.callbacks=o[i].callbacks.slice();o[i].childEvents.push(n)}}(this,e);const i=Se(this,e),n={callback:t,priority:ge.get(o.priority)};for(const e of i)pe(e,n)}_removeEventListener(e,t){const o=Se(this,e);for(const e of o)for(let o=0;o{this.set(t,e[t])}),this);Le(this);const o=this[Oe];if(e in this&&!o.has(e))throw new fe("observable-set-cannot-override",this);Object.defineProperty(this,e,{enumerable:!0,configurable:!0,get:()=>o.get(e),set(t){const i=o.get(e);let n=this.fire(`set:${e}`,e,t,i);void 0===n&&(n=t),i===n&&o.has(e)||(o.set(e,n),this.fire(`change:${e}`,e,n,i))}}),this[e]=t}bind(...e){if(!e.length||!qe(e))throw new fe("observable-bind-wrong-properties",this);if(new Set(e).size!==e.length)throw new fe("observable-bind-duplicate-properties",this);Le(this);const t=this[De];e.forEach((e=>{if(t.has(e))throw new fe("observable-bind-rebind",this)}));const o=new Map;return e.forEach((e=>{const i={property:e,to:[]};t.set(e,i),o.set(e,i)})),{to:ze,toMany:je,_observable:this,_bindProperties:e,_to:[],_bindings:o}}unbind(...e){if(!this[Oe])return;const t=this[De],o=this[Ve];if(e.length){if(!qe(e))throw new fe("observable-unbind-wrong-properties",this);e.forEach((e=>{const i=t.get(e);i&&(i.to.forEach((([e,t])=>{const n=o.get(e),s=n[t];s.delete(i),s.size||delete n[t],Object.keys(n).length||(o.delete(e),this.stopListening(e,"change"))})),t.delete(e))}))}else o.forEach(((e,t)=>{this.stopListening(t,"change")})),o.clear(),t.clear()}decorate(e){Le(this);const t=this[e];if(!t)throw new fe("observablemixin-cannot-decorate-undefined",this,{object:this,methodName:e});this.on(e,((e,o)=>{e.return=t.apply(this,o)})),this[e]=function(...t){return this.fire(e,t)},this[e][Me]=t,this[Fe]||(this[Fe]=[]),this[Fe].push(e)}stopListening(e,t,o){if(!e&&this[Fe]){for(const e of this[Fe])this[e]=this[e][Me];delete this[Fe]}super.stopListening(e,t,o)}[Oe];[Fe];[De];[Ve]}}function Le(e){e[Oe]||(Object.defineProperty(e,Oe,{value:new Map}),Object.defineProperty(e,Ve,{value:new Map}),Object.defineProperty(e,De,{value:new Map}))}function ze(...e){const t=function(...e){if(!e.length)throw new fe("observable-bind-to-parse-error",null);const t={to:[]};let o;"function"==typeof e[e.length-1]&&(t.callback=e.pop());return e.forEach((e=>{if("string"==typeof e)o.properties.push(e);else{if("object"!=typeof e)throw new fe("observable-bind-to-parse-error",null);o={observable:e,properties:[]},t.to.push(o)}})),t}(...e),o=Array.from(this._bindings.keys()),i=o.length;if(!t.callback&&t.to.length>1)throw new fe("observable-bind-to-no-callback",this);if(i>1&&t.callback)throw new fe("observable-bind-to-extra-callback",this);var n;t.to.forEach((e=>{if(e.properties.length&&e.properties.length!==i)throw new fe("observable-bind-to-properties-length",this);e.properties.length||(e.properties=this._bindProperties)})),this._to=t.to,t.callback&&(this._bindings.get(o[0]).callback=t.callback),n=this._observable,this._to.forEach((e=>{const t=n[Ve];let o;t.get(e.observable)||n.listenTo(e.observable,"change",((i,s)=>{o=t.get(e.observable)[s],o&&o.forEach((e=>{$e(n,e.property)}))}))})),function(e){let t;e._bindings.forEach(((o,i)=>{e._to.forEach((n=>{t=n.properties[o.callback?0:e._bindProperties.indexOf(i)],o.to.push([n.observable,t]),function(e,t,o,i){const n=e[Ve],s=n.get(o),r=s||{};r[i]||(r[i]=new Set);r[i].add(t),s||n.set(o,r)}(e._observable,o,n.observable,t)}))}))}(this),this._bindProperties.forEach((e=>{$e(this._observable,e)}))}function je(e,t,o){if(this._bindings.size>1)throw new fe("observable-bind-to-many-not-one-binding",this);this.to(...function(e,t){const o=e.map((e=>[e,t]));return Array.prototype.concat.apply([],o)}(e,t),o)}function qe(e){return e.every((e=>"string"==typeof e))}function $e(e,t){const o=e[De].get(t);let i;o.callback?i=o.callback.apply(e,o.to.map((e=>e[0][e[1]]))):(i=o.to[0],i=i[0][i[1]]),Object.prototype.hasOwnProperty.call(e,t)?e[t]=i:e.set(t,i)}function He(e){let t=0;for(const o of e)t++;return t}function We(e,t){const o=Math.min(e.length,t.length);for(let i=0;i{this._setToTarget(e,i,t[i],o)}))}}function Je(e){return N(e,Ze)}function Ze(e){return L(e)||"function"==typeof e?e:void 0}function Qe(e){if(e){if(e.defaultView)return e instanceof e.defaultView.Document;if(e.ownerDocument&&e.ownerDocument.defaultView)return e instanceof e.ownerDocument.defaultView.Node}return!1}function Ye(e){const t=Object.prototype.toString.apply(e);return"[object Window]"==t||"[object global]"==t}const Xe=et(xe());function et(e){if(!e)return Xe;return class extends e{listenTo(e,t,o,i={}){if(Qe(e)||Ye(e)||e instanceof J.window.EventTarget){const n={capture:!!i.useCapture,passive:!!i.usePassive},s=this._getProxyEmitter(e,n)||new tt(e,n);this.listenTo(s,t,o,i)}else super.listenTo(e,t,o,i)}stopListening(e,t,o){if(Qe(e)||Ye(e)||e instanceof J.window.EventTarget){const i=this._getAllProxyEmitters(e);for(const e of i)this.stopListening(e,t,o)}else super.stopListening(e,t,o)}_getProxyEmitter(e,t){return function(e,t){const o=e[ke];return o&&o[t]?o[t].emitter:null}(this,ot(e,t))}_getAllProxyEmitters(e){return[{capture:!1,passive:!1},{capture:!1,passive:!0},{capture:!0,passive:!1},{capture:!0,passive:!0}].map((t=>this._getProxyEmitter(e,t))).filter((e=>!!e))}}}class tt extends(xe()){_domNode;_options;constructor(e,t){super(),Ee(this,ot(e,t)),this._domNode=e,this._options=t}_domListeners;attach(e){if(this._domListeners&&this._domListeners[e])return;const t=this._createDomListener(e);this._domNode.addEventListener(e,t,this._options),this._domListeners||(this._domListeners={}),this._domListeners[e]=t}detach(e){let t;!this._domListeners[e]||(t=this._events[e])&&t.callbacks.length||this._domListeners[e].removeListener()}_addEventListener(e,t,o){this.attach(e),xe().prototype._addEventListener.call(this,e,t,o)}_removeEventListener(e,t){xe().prototype._removeEventListener.call(this,e,t),this.detach(e)}_createDomListener(e){const t=t=>{this.fire(e,t)};return t.removeListener=()=>{this._domNode.removeEventListener(e,t,this._options),delete this._domListeners[e]},t}}function ot(e,t){let o=function(e){return e["data-ck-expando"]||(e["data-ck-expando"]=me())}(e);for(const e of Object.keys(t).sort())t[e]&&(o+="-"+e);return o}function it(e){const t=[];let o=e;for(;o&&o.nodeType!=Node.DOCUMENT_NODE;)t.unshift(o),o=o.parentNode;return t}function nt(e){const t=e.ownerDocument.defaultView.getComputedStyle(e);return{top:parseInt(t.borderTopWidth,10),right:parseInt(t.borderRightWidth,10),bottom:parseInt(t.borderBottomWidth,10),left:parseInt(t.borderLeftWidth,10)}}function st(e){if(!e.target)return null;const t=e.target.ownerDocument,o=e.clientX,i=e.clientY;let n=null;return t.caretRangeFromPoint&&t.caretRangeFromPoint(o,i)?n=t.caretRangeFromPoint(o,i):e.rangeParent&&(n=t.createRange(),n.setStart(e.rangeParent,e.rangeOffset),n.collapse(!0)),n}function rt(e){return e&&e.parentNode?e.offsetParent===J.document.body?null:e.offsetParent:null}function at(e){return"[object Text]"==Object.prototype.toString.call(e)}function lt(e){return"[object Range]"==Object.prototype.toString.apply(e)}const ct=["top","right","bottom","left","width","height"],dt=new Set(["relative","absolute","fixed","sticky"]);class ut{top;right;bottom;left;width;height;_source;constructor(e){const t=lt(e);if(Object.defineProperty(this,"_source",{value:e._source||e,writable:!0,enumerable:!1}),gt(e)||t)if(t){const t=ut.getDomRangeRects(e);ht(this,ut.getBoundingRect(t))}else ht(this,e.getBoundingClientRect());else if(Ye(e)){const{innerWidth:t,innerHeight:o}=e;ht(this,{top:0,right:t,bottom:o,left:0,width:t,height:o})}else ht(this,e)}clone(){return new ut(this)}moveTo(e,t){return this.top=t,this.right=e+this.width,this.bottom=t+this.height,this.left=e,this}moveBy(e,t){return this.top+=t,this.right+=e,this.left+=e,this.bottom+=t,this}getIntersection(e){const t={top:Math.max(this.top,e.top),right:Math.min(this.right,e.right),bottom:Math.min(this.bottom,e.bottom),left:Math.max(this.left,e.left),width:0,height:0};if(t.width=t.right-t.left,t.height=t.bottom-t.top,t.width<0||t.height<0)return null;{const e=new ut(t);return e._source=this._source,e}}getIntersectionArea(e){const t=this.getIntersection(e);return t?t.getArea():0}getArea(){return this.width*this.height}getVisible(){const e=this._source;let t=this.clone();if(mt(e))return t;let o,i=e,n=e.parentNode||e.commonAncestorContainer;for(;n&&!mt(n);){const e="visible"===((s=n)instanceof HTMLElement?s.ownerDocument.defaultView.getComputedStyle(s).overflow:"visible");if(ft(i)&&(o=i),e||o&&"absolute"===pt(o)&&!ft(n)){i=n,n=n.parentNode;continue}const r=new ut(n),a=t.getIntersection(r);if(!a)return null;a.getArea(){const o=new ut(t);return o._source=e,o}))}static getBoundingRect(e){const t={left:Number.POSITIVE_INFINITY,top:Number.POSITIVE_INFINITY,right:Number.NEGATIVE_INFINITY,bottom:Number.NEGATIVE_INFINITY,width:0,height:0};let o=0;for(const i of e)o++,t.left=Math.min(t.left,i.left),t.top=Math.min(t.top,i.top),t.right=Math.max(t.right,i.right),t.bottom=Math.max(t.bottom,i.bottom);return 0==o?null:(t.width=t.right-t.left,t.height=t.bottom-t.top,new ut(t))}}function ht(e,t){for(const o of ct)e[o]=t[o]}function mt(e){return!!gt(e)&&e===e.ownerDocument.body}function gt(e){return null!==e&&"object"==typeof e&&1===e.nodeType&&"function"==typeof e.getBoundingClientRect}function pt(e){return e.ownerDocument.defaultView.getComputedStyle(e).position}function ft(e){return e instanceof HTMLElement&&dt.has(pt(e))}class bt{_element;_callback;static _observerInstance=null;static _elementCallbacks=null;constructor(e,t){bt._observerInstance||bt._createObserver(),this._element=e,this._callback=t,bt._addElementCallback(e,t),bt._observerInstance.observe(e)}get element(){return this._element}destroy(){bt._deleteElementCallback(this._element,this._callback)}static _addElementCallback(e,t){bt._elementCallbacks||(bt._elementCallbacks=new Map);let o=bt._elementCallbacks.get(e);o||(o=new Set,bt._elementCallbacks.set(e,o)),o.add(t)}static _deleteElementCallback(e,t){const o=bt._getElementCallbacks(e);o&&(o.delete(t),o.size||(bt._elementCallbacks.delete(e),bt._observerInstance.unobserve(e))),bt._elementCallbacks&&!bt._elementCallbacks.size&&(bt._observerInstance=null,bt._elementCallbacks=null)}static _getElementCallbacks(e){return bt._elementCallbacks?bt._elementCallbacks.get(e):null}static _createObserver(){bt._observerInstance=new J.window.ResizeObserver((e=>{for(const t of e){const e=bt._getElementCallbacks(t.target);if(e)for(const o of e)o(t)}}))}}function wt(e,t){e instanceof HTMLTextAreaElement&&(e.value=t),e.innerHTML=t}function yt(e){return t=>t+e}function _t(e){let t=0;for(;e.previousSibling;)e=e.previousSibling,t++;return t}function kt(e,t,o){e.insertBefore(o,e.childNodes[t]||null)}function vt(e){return e&&e.nodeType===Node.COMMENT_NODE}function Ct(e){return!!e&&(at(e)?Ct(e.parentElement):!!e.getClientRects&&!!e.getClientRects().length)}function At({element:e,target:t,positions:o,limiter:i,fitInViewport:n,viewportOffsetConfig:s}){z(t)&&(t=t()),z(i)&&(i=i());const r=rt(e),a=Et(s),l=new ut(e),c=xt(t,a);let d;if(!c||!a.getIntersection(c))return null;const u={targetRect:c,elementRect:l,positionedElementAncestor:r,viewportRect:a};if(i||n){if(i){const e=xt(i,a);e&&(u.limiterRect=e)}d=function(e,t){const{elementRect:o}=t,i=o.getArea(),n=e.map((e=>new Tt(e,t))).filter((e=>!!e.name));let s=0,r=null;for(const e of n){const{limiterIntersectionArea:t,viewportIntersectionArea:o}=e;if(t===i)return e;const n=o**2+t**2;n>s&&(s=n,r=e)}return r}(o,u)}else d=new Tt(o[0],u);return d}function xt(e,t){const o=new ut(e).getVisible();return o?o.getIntersection(t):null}function Et(e){e=Object.assign({top:0,bottom:0,left:0,right:0},e);const t=new ut(J.window);return t.top+=e.top,t.height-=e.top,t.bottom-=e.bottom,t.height-=e.bottom,t.left+=e.left,t.right-=e.right,t.width-=e.left+e.right,t}class Tt{name;config;_positioningFunctionCoordinates;_options;_cachedRect;_cachedAbsoluteRect;constructor(e,t){const o=e(t.targetRect,t.elementRect,t.viewportRect,t.limiterRect);if(!o)return;const{left:i,top:n,name:s,config:r}=o;this.name=s,this.config=r,this._positioningFunctionCoordinates={left:i,top:n},this._options=t}get left(){return this._absoluteRect.left}get top(){return this._absoluteRect.top}get limiterIntersectionArea(){const e=this._options.limiterRect;return e?e.getIntersectionArea(this._rect):0}get viewportIntersectionArea(){return this._options.viewportRect.getIntersectionArea(this._rect)}get _rect(){return this._cachedRect||(this._cachedRect=this._options.elementRect.clone().moveTo(this._positioningFunctionCoordinates.left,this._positioningFunctionCoordinates.top)),this._cachedRect}get _absoluteRect(){return this._cachedAbsoluteRect||(this._cachedAbsoluteRect=this._rect.toAbsoluteRect()),this._cachedAbsoluteRect}}function Pt(e){const t=e.parentNode;t&&t.removeChild(e)}function St(){const e=J.window.visualViewport;if(!e||!Y.isiOS&&!Y.isSafari)return{left:0,top:0};return{left:Math.max(Math.round(e.offsetLeft),0),top:Math.max(Math.round(e.offsetTop),0)}}function It({window:e,rect:t,alignToTop:o,forceScroll:i,viewportOffset:n}){const s=t.clone().moveBy(0,n.bottom),r=t.clone().moveBy(0,-n.top),a=new ut(e).excludeScrollbarsAndBorders(),l=o&&i,c=[r,s].every((e=>a.contains(e)));let{scrollX:d,scrollY:u}=e;const h=d,m=u;l?u-=a.top-t.top+n.top:c||(Vt(r,a)?u-=a.top-t.top+n.top:Ot(s,a)&&(u+=o?t.top-a.top-n.top:t.bottom-a.bottom+n.bottom)),c||(Dt(t,a)?d-=a.left-t.left+n.left:Ft(t,a)&&(d+=t.right-a.right+n.right)),d==h&&u===m||e.scrollTo(d,u)}function Rt({parent:e,getRect:t,alignToTop:o,forceScroll:i,ancestorOffset:n=0,limiterElement:s}){const r=Mt(e),a=o&&i;let l,c,d;const u=s||r.document.body;for(;e!=u;)c=t(),l=new ut(e).excludeScrollbarsAndBorders(),d=l.contains(c),a?e.scrollTop-=l.top-c.top+n:d||(Vt(c,l)?e.scrollTop-=l.top-c.top+n:Ot(c,l)&&(e.scrollTop+=o?c.top-l.top-n:c.bottom-l.bottom+n)),d||(Dt(c,l)?e.scrollLeft-=l.left-c.left+n:Ft(c,l)&&(e.scrollLeft+=c.right-l.right+n)),e=e.parentNode}function Ot(e,t){return e.bottom>t.bottom}function Vt(e,t){return e.topt.right}function Mt(e){return lt(e)?e.startContainer.ownerDocument.defaultView:e.ownerDocument.defaultView}function Nt(e){if(lt(e)){let t=e.commonAncestorContainer;return at(t)&&(t=t.parentNode),t}return e.parentNode}function Bt(e,t){const o=Mt(e),i=new ut(e);if(o===t)return i;{let e=o;for(;e!=t;){const t=e.frameElement,o=new ut(t).excludeScrollbarsAndBorders();i.moveBy(o.left,o.top),e=e.parent}}return i}const Lt={ctrl:"⌃",cmd:"⌘",alt:"⌥",shift:"⇧"},zt={ctrl:"Ctrl+",alt:"Alt+",shift:"Shift+"},jt={37:"←",38:"↑",39:"→",40:"↓",9:"⇥",33:"Page Up",34:"Page Down"},qt=Gt(),$t=Object.fromEntries(Object.entries(qt).map((([e,t])=>{let o;return o=t in jt?jt[t]:e.charAt(0).toUpperCase()+e.slice(1),[t,o]})));function Ht(e){let t;if("string"==typeof e){if(t=qt[e.toLowerCase()],!t)throw new fe("keyboard-unknown-key",null,{key:e})}else t=e.keyCode+(e.altKey?qt.alt:0)+(e.ctrlKey?qt.ctrl:0)+(e.shiftKey?qt.shift:0)+(e.metaKey?qt.cmd:0);return t}function Wt(e){return"string"==typeof e&&(e=function(e){return e.split("+").map((e=>e.trim()))}(e)),e.map((e=>"string"==typeof e?function(e){if(e.endsWith("!"))return Ht(e.slice(0,-1));const t=Ht(e);return(Y.isMac||Y.isiOS)&&t==qt.ctrl?qt.cmd:t}(e):e)).reduce(((e,t)=>t+e),0)}function Ut(e,t){let o=Wt(e);const i=t?"Mac"===t:Y.isMac||Y.isiOS;return Object.entries(i?Lt:zt).reduce(((e,[t,i])=>(o&qt[t]&&(o&=~qt[t],e+=i),e)),"")+(o?$t[o]:"")}function Kt(e,t){const o="ltr"===t;switch(e){case qt.arrowleft:return o?"left":"right";case qt.arrowright:return o?"right":"left";case qt.arrowup:return"up";case qt.arrowdown:return"down"}}function Gt(){const e={pageup:33,pagedown:34,end:35,home:36,arrowleft:37,arrowup:38,arrowright:39,arrowdown:40,backspace:8,delete:46,enter:13,space:32,esc:27,tab:9,ctrl:1114112,shift:2228224,alt:4456448,cmd:8912896};for(let t=65;t<=90;t++){e[String.fromCharCode(t).toLowerCase()]=t}for(let t=48;t<=57;t++)e[t-48]=t;for(let t=112;t<=123;t++)e["f"+(t-111)]=t;return Object.assign(e,{"'":222,",":108,"-":109,".":110,"/":111,";":186,"=":187,"[":219,"\\":220,"]":221,"`":223}),e}const Jt=["ar","ara","dv","div","fa","per","fas","he","heb","ku","kur","ug","uig","ur","urd"];function Zt(e){return Jt.includes(e)?"rtl":"ltr"}function Qt(e){return Array.isArray(e)?e:[e]}function Yt(e,t,o=1,i){if("number"!=typeof o)throw new fe("translation-service-quantity-not-a-number",null,{quantity:o});const n=i||J.window.CKEDITOR_TRANSLATIONS,s=function(e){return Object.keys(e).length}(n);1===s&&(e=Object.keys(n)[0]);const r=t.id||t.string;if(0===s||!function(e,t,o){return!!o[e]&&!!o[e].dictionary[t]}(e,r,n))return 1!==o?t.plural:t.string;const a=n[e].dictionary,l=n[e].getPluralForm||(e=>1===e?0:1),c=a[r];if("string"==typeof c)return c;return c[Number(l(o))]}J.window.CKEDITOR_TRANSLATIONS||(J.window.CKEDITOR_TRANSLATIONS={});class Xt{uiLanguage;uiLanguageDirection;contentLanguage;contentLanguageDirection;t;translations;constructor({uiLanguage:e="en",contentLanguage:t,translations:o}={}){this.uiLanguage=e,this.contentLanguage=t||this.uiLanguage,this.uiLanguageDirection=Zt(this.uiLanguage),this.contentLanguageDirection=Zt(this.contentLanguage),this.translations=function(e){return Array.isArray(e)?e.reduce(((e,t)=>G(e,t))):e}(o),this.t=(e,t)=>this._t(e,t)}_t(e,t=[]){t=Qt(t),"string"==typeof e&&(e={string:e});const o=!!e.plural?t[0]:1;return function(e,t){return e.replace(/%(\d+)/g,((e,o)=>othis._items.length||t<0)throw new fe("collection-add-item-invalid-index",this);let o=0;for(const i of e){const e=this._getItemIdBeforeAdding(i),n=t+o;this._items.splice(n,0,i),this._itemMap.set(e,i),this.fire("add",i,n),o++}return this.fire("change",{added:e,removed:[],index:t}),this}get(e){let t;if("string"==typeof e)t=this._itemMap.get(e);else{if("number"!=typeof e)throw new fe("collection-get-invalid-arg",this);t=this._items[e]}return t||null}has(e){if("string"==typeof e)return this._itemMap.has(e);{const t=e[this._idProperty];return t&&this._itemMap.has(t)}}getIndex(e){let t;return t="string"==typeof e?this._itemMap.get(e):e,t?this._items.indexOf(t):-1}remove(e){const[t,o]=this._remove(e);return this.fire("change",{added:[],removed:[t],index:o}),t}map(e,t){return this._items.map(e,t)}forEach(e,t){this._items.forEach(e,t)}find(e,t){return this._items.find(e,t)}filter(e,t){return this._items.filter(e,t)}clear(){this._bindToCollection&&(this.stopListening(this._bindToCollection),this._bindToCollection=null);const e=Array.from(this._items);for(;this.length;)this._remove(0);this.fire("change",{added:[],removed:e,index:0})}bindTo(e){if(this._bindToCollection)throw new fe("collection-bind-to-rebind",this);return this._bindToCollection=e,{as:e=>{this._setUpBindToBinding((t=>new e(t)))},using:e=>{"function"==typeof e?this._setUpBindToBinding(e):this._setUpBindToBinding((t=>t[e]))}}}_setUpBindToBinding(e){const t=this._bindToCollection,o=(o,i,n)=>{const s=t._bindToCollection==this,r=t._bindToInternalToExternalMap.get(i);if(s&&r)this._bindToExternalToInternalMap.set(i,r),this._bindToInternalToExternalMap.set(r,i);else{const o=e(i);if(!o)return void this._skippedIndexesFromExternal.push(n);let s=n;for(const e of this._skippedIndexesFromExternal)n>e&&s--;for(const e of t._skippedIndexesFromExternal)s>=e&&s++;this._bindToExternalToInternalMap.set(i,o),this._bindToInternalToExternalMap.set(o,i),this.add(o,s);for(let e=0;e{const i=this._bindToExternalToInternalMap.get(t);i&&this.remove(i),this._skippedIndexesFromExternal=this._skippedIndexesFromExternal.reduce(((e,t)=>(ot&&e.push(t),e)),[])}))}_getItemIdBeforeAdding(e){const t=this._idProperty;let o;if(t in e){if(o=e[t],"string"!=typeof o)throw new fe("collection-add-invalid-id",this);if(this.get(o))throw new fe("collection-add-item-already-exists",this)}else e[t]=o=me();return o}_remove(e){let t,o,i,n=!1;const s=this._idProperty;if("string"==typeof e?(o=e,i=this._itemMap.get(o),n=!i,i&&(t=this._items.indexOf(i))):"number"==typeof e?(t=e,i=this._items[t],n=!i,i&&(o=i[s])):(i=e,o=i[s],t=this._items.indexOf(i),n=-1==t||!this._itemMap.get(o)),n)throw new fe("collection-remove-404",this);this._items.splice(t,1),this._itemMap.delete(o);const r=this._bindToInternalToExternalMap.get(i);return this._bindToInternalToExternalMap.delete(i),this._bindToExternalToInternalMap.delete(r),this.fire("remove",i,t),[i,t]}[Symbol.iterator](){return this._items[Symbol.iterator]()}}function to(e){const t=e.next();return t.done?null:t.value}class oo extends(et(Be())){_elements=new Set;_externalViews=new Set;_blurTimeout=null;constructor(){super(),this.set("isFocused",!1),this.set("focusedElement",null)}get elements(){return Array.from(this._elements.values())}get externalViews(){return Array.from(this._externalViews.values())}add(e){if(no(e))this._addElement(e);else if(io(e))this._addView(e);else{if(!e.element)throw new fe("focustracker-add-view-missing-element",{focusTracker:this,view:e});this._addElement(e.element)}}remove(e){no(e)?this._removeElement(e):io(e)?this._removeView(e):this._removeElement(e.element)}_addElement(e){if(this._elements.has(e))throw new fe("focustracker-add-element-already-exist",this);this.listenTo(e,"focus",(()=>{const t=this.externalViews.find((t=>function(e,t){if(so(e,t))return!0;return!!t.focusTracker.externalViews.find((t=>so(e,t)))}(e,t)));t?this._focus(t.element):this._focus(e)}),{useCapture:!0}),this.listenTo(e,"blur",(()=>{this._blur()}),{useCapture:!0}),this._elements.add(e)}_removeElement(e){this._elements.has(e)&&(this.stopListening(e),this._elements.delete(e)),e===this.focusedElement&&this._blur()}_addView(e){e.element&&this._addElement(e.element),this.listenTo(e.focusTracker,"change:focusedElement",(()=>{e.focusTracker.focusedElement?e.element&&this._focus(e.element):this._blur()})),this._externalViews.add(e)}_removeView(e){e.element&&this._removeElement(e.element),this.stopListening(e.focusTracker),this._externalViews.delete(e)}destroy(){this.stopListening(),this._elements.clear(),this._externalViews.clear(),this.isFocused=!1,this.focusedElement=null}_focus(e){this._clearBlurTimeout(),this.focusedElement=e,this.isFocused=!0}_blur(){if(this.elements.find((e=>e.contains(document.activeElement))))return;this.externalViews.find((e=>e.focusTracker.isFocused&&!e.focusTracker._blurTimeout))||(this._clearBlurTimeout(),this._blurTimeout=setTimeout((()=>{this.focusedElement=null,this.isFocused=!1}),0))}_clearBlurTimeout(){clearTimeout(this._blurTimeout),this._blurTimeout=null}}function io(e){return"focusTracker"in e&&e.focusTracker instanceof oo}function no(e){return L(e)}function so(e,t){return!!t.element&&t.element.contains(document.activeElement)&&e.contains(t.element)}class ro{_listener;constructor(){this._listener=new(et())}listenTo(e){this._listener.listenTo(e,"keydown",((e,t)=>{this._listener.fire("_keydown:"+Ht(t),t)}))}set(e,t,o={}){const i=Wt(e),n=o.priority;this._listener.listenTo(this._listener,"_keydown:"+i,((e,i)=>{o.filter&&!o.filter(i)||(t(i,(()=>{i.preventDefault(),i.stopPropagation(),e.stop()})),e.return=!0)}),{priority:n})}press(e){return!!this._listener.fire("_keydown:"+Ht(e),e)}stopListening(e){this._listener.stopListening(e)}destroy(){this.stopListening()}}function ao(e){return Ue(e)?new Map(e):function(e){const t=new Map;for(const o in e)t.set(o,e[o]);return t}(e)}function lo(e,t,o){const i=e.length,n=t.length;for(let t=i-1;t>=o;t--)e[t+n]=e[t];for(let i=0;ie(...n)),t)}return i.cancel=()=>{clearTimeout(o)},i}function uo(e){try{if(!e.startsWith("ey"))return null;const t=atob(e.replace(/-/g,"+").replace(/_/g,"/"));return JSON.parse(t)}catch{return null}}function ho(e,t){return!!(o=e.charAt(t-1))&&1==o.length&&/[\ud800-\udbff]/.test(o)&&function(e){return!!e&&1==e.length&&/[\udc00-\udfff]/.test(e)}(e.charAt(t));var o}function mo(e,t){return!!(o=e.charAt(t))&&1==o.length&&/[\u0300-\u036f\u1ab0-\u1aff\u1dc0-\u1dff\u20d0-\u20ff\ufe20-\ufe2f]/.test(o);var o}const go=fo();function po(e,t){const o=String(e).matchAll(go);return Array.from(o).some((e=>e.indexe.source)).join("|")+")";return new RegExp(`${e}|${t}(?:‍${t})*`,"ug")}function bo(e){if(!e)return null;const t=function(e){const t=e.split(".");if(3!=t.length)return null;return t[1]}(e);return t?uo(t):null}function wo(e){switch(typeof e){case"number":case"symbol":return!1;case"string":return e.includes(".")||e.includes("[")||e.includes("]")}}function yo(e){return"string"==typeof e||"symbol"==typeof e?e:Object.is(e?.valueOf?.(),-0)?"-0":String(e)}function _o(e){if(null==e)return"";if("string"==typeof e)return e;if(Array.isArray(e))return e.map(_o).join(",");const t=String(e);return"0"===t&&Object.is(Number(e),-0)?"-0":t}function ko(e){if(Array.isArray(e))return e.map(yo);if("symbol"==typeof e)return[e];const t=[],o=(e=_o(e)).length;if(0===o)return t;let i=0,n="",s="",r=!1;for(46===e.charCodeAt(0)&&(t.push(""),i++);i{const i=e[t];Object.hasOwn(e,t)&&Co(i,o)&&(void 0!==o||t in e)||(e[t]=o)},xo=/^(?:0|[1-9]\d*)$/;function Eo(e,t=Number.MAX_SAFE_INTEGER){switch(typeof e){case"number":return Number.isInteger(e)&&e>=0&&eo),(()=>{}))}function Oo(e){const t=e?.constructor;return e===("function"==typeof t?t.prototype:Object.prototype)}function Vo(e){if(!e)return 0===e?e:0;if((e=function(e){return To(e)?NaN:Number(e)}(e))===1/0||e===-1/0){return(e<0?-1:1)*Number.MAX_VALUE}return e==e?e:0}function Do(e,t){if((e=function(e){const t=Vo(e),o=t%1;return o?t-o:t}(e))<1||!Number.isSafeInteger(e))return[];const o=new Array(e);for(let i=0;i`${e}`)),o=new Set(t);i=e,"undefined"!=typeof Buffer&&Buffer.isBuffer(i)&&(o.add("offset"),o.add("parent"));var i;W(e)&&(o.add("buffer"),o.add("byteLength"),o.add("byteOffset"));const n=Mo(e).filter((e=>!o.has(e)));if(Array.isArray(e))return[...t,...n];return[...t.filter((t=>Object.hasOwn(e,t))),...n]}(e):Oo(e)?function(e){const t=Mo(e);return t.filter((e=>"constructor"!==e))}(e):Mo(e);default:return Mo(Object(e))}}function Mo(e){const t=[];for(const o in e)t.push(o);return t}function No(e,...t){for(let o=0;o{null!==s&&(e.apply(n,s),n=void 0,s=null)};let c=null;const d=()=>{null!=c&&clearTimeout(c),c=setTimeout((()=>{c=null,a&&l(),u()}),t)},u=()=>{null!==c&&(clearTimeout(c),c=null),n=void 0,s=null},h=function(...e){if(o?.aborted)return;n=this,s=e;const t=null==c;d(),r&&t&&l()};return h.schedule=d,h.cancel=u,h.flush=()=>{l()},o?.addEventListener("abort",u,{once:!0}),h}function zo(e,t=0,o={}){"object"!=typeof o&&(o={});const{leading:i=!1,trailing:n=!0,maxWait:s}=o,r=Array(2);let a;i&&(r[0]="leading"),n&&(r[1]="trailing");let l=null;const c=Lo((function(...t){a=e.apply(this,t),l=null}),t,{edges:r}),d=function(...t){return null!=s&&(null===l&&(l=Date.now()),Date.now()-l>=s)?(a=e.apply(this,t),l=Date.now(),c.cancel(),c.schedule(),a):(c.apply(this,t),a)};return d.cancel=c.cancel,d.flush=()=>(c.flush(),a),d}function jo(e,t){if(!Number.isInteger(e)||e<0)throw new Error("n must be a non-negative integer.");let o=0;return(...i)=>{if(++o>=e)return t(...i)}}function qo(e){if(!e||"object"!=typeof e)return!1;const t=Object.getPrototypeOf(e);return!(null!==t&&t!==Object.prototype&&null!==Object.getPrototypeOf(t))&&"[object Object]"===Object.prototype.toString.call(e)}function $o(e,t,o){return Ho(e,t,void 0,void 0,void 0,void 0,o)}function Ho(e,t,o,i,n,s,r){const a=r(e,t,o,i,n,s);if(void 0!==a)return a;if(typeof e==typeof t)switch(typeof e){case"bigint":case"string":case"boolean":case"symbol":case"undefined":case"function":return e===t;case"number":return e===t||Object.is(e,t);case"object":return Wo(e,t,s,r)}return Wo(e,t,s,r)}function Wo(e,t,o,i){if(Object.is(e,t))return!0;let n=c(e),s=c(t);if(n===g&&(n=v),s===g&&(s=v),n!==s)return!1;switch(n){case u:return e.toString()===t.toString();case h:return Co(e.valueOf(),t.valueOf());case m:case f:case p:return Object.is(e.valueOf(),t.valueOf());case d:return e.source===t.source&&e.flags===t.flags;case"[object Function]":return e===t}const r=(o=o??new Map).get(e),a=o.get(t);if(null!=r&&null!=a)return r===t;o.set(e,t),o.set(t,e);try{switch(n){case b:if(e.size!==t.size)return!1;for(const[n,s]of e.entries())if(!t.has(n)||!Ho(s,t.get(n),n,e,t,o,i))return!1;return!0;case w:{if(e.size!==t.size)return!1;const n=Array.from(e.values()),s=Array.from(t.values());for(let r=0;rHo(a,n,void 0,e,t,o,i)));if(-1===l)return!1;s.splice(l,1)}return!0}case y:case A:case x:case E:case T:case"[object BigUint64Array]":case P:case S:case I:case"[object BigInt64Array]":case R:case O:if("undefined"!=typeof Buffer&&Buffer.isBuffer(e)!==Buffer.isBuffer(t))return!1;if(e.length!==t.length)return!1;for(let n=0;n{}),$o(e,t,((...i)=>{const n=o(...i);return void 0!==n?Boolean(n):e instanceof Map&&t instanceof Map||e instanceof Set&&t instanceof Set?Uo(Array.from(e),Array.from(t),jo(2,o)):void 0}))}function Ko(e,t){return $o(e,t,K)}function Go(e){if(V(e))return e;const t=c(e);if(!function(e){switch(c(e)){case g:case y:case k:case C:case m:case f:case R:case O:case P:case S:case I:case b:case h:case v:case d:case w:case u:case p:case A:case x:case E:case T:return!0;default:return!1}}(e))return{};if(o=e,Array.isArray(o)){const t=Array.from(e);return e.length>0&&"string"==typeof e[0]&&Object.hasOwn(e,"index")&&(t.index=e.index,t.input=e.input),t}var o;if(W(e)){const t=e;return new(0,t.constructor)(t.buffer,t.byteOffset,t.length)}if(t===k)return new ArrayBuffer(e.byteLength);if(t===C){const t=e,o=t.buffer,i=t.byteOffset,n=t.byteLength,s=new ArrayBuffer(n),r=new Uint8Array(o,i,n);return new Uint8Array(s).set(r),new DataView(s)}if(t===m||t===h||t===u){const o=new(0,e.constructor)(e.valueOf());return t===u?function(e,t){const o=t.valueOf().length;for(const i in t)Object.hasOwn(t,i)&&(Number.isNaN(Number(i))||Number(i)>=o)&&(e[i]=t[i])}(o,e):Jo(o,e),o}if(t===f)return new Date(Number(e));if(t===d){const t=e,o=new RegExp(t.source,t.flags);return o.lastIndex=t.lastIndex,o}if(t===p)return Object(Symbol.prototype.valueOf.call(e));if(t===b){const t=e,o=new Map;return t.forEach(((e,t)=>{o.set(t,e)})),o}if(t===w){const t=e,o=new Set;return t.forEach((e=>{o.add(e)})),o}if(t===g){const t=e,o={};return Jo(o,t),o.length=t.length,o[Symbol.iterator]=t[Symbol.iterator],o}const i={};return function(e,t){const o=Object.getPrototypeOf(t);if(null!==o){"function"==typeof t.constructor&&Object.setPrototypeOf(e,o)}}(i,e),Jo(i,e),function(e,t){const o=Object.getOwnPropertySymbols(t);for(let i=0;iei([[t,r]],e)))}Zo.has(s)||(Zo.set(s,new Map),s.registerPostFixer((e=>ei(Zo.get(s),e))),s.on("change:isComposing",(()=>{e.change((e=>ei(Zo.get(s),e)))}),{priority:"high"})),t.is("editableElement")&&t.on("change:placeholder",((e,t,o)=>r(o))),t.placeholder?r(t.placeholder):o&&r(o),o&&function(){Qo||be("enableViewPlaceholder-deprecated-text-option");Qo=!0}()}function Xo(e,t){return!!t.hasClass("ck-placeholder")&&(e.removeClass("ck-placeholder",t),!0)}function ei(e,t){const o=[];let i=!1;for(const[n,s]of e)s.isDirectHost&&(o.push(n),ti(t,n,s)&&(i=!0));for(const[n,s]of e){if(s.isDirectHost)continue;const e=oi(n);e!==s.hostElement&&s.hostElement&&(t.removeAttribute("data-placeholder",s.hostElement),Xo(t,s.hostElement),s.hostElement=null,i=!0),e&&(o.includes(e)||(s.hostElement=e,ti(t,n,s)&&(i=!0)))}return i}function ti(e,t,o){const{text:i,isDirectHost:n,hostElement:s}=o;let r=!1;s.getAttribute("data-placeholder")!==i&&(e.setAttribute("data-placeholder",i,s),r=!0);return(n||1==t.childCount)&&function(e,t){if(!e.isAttached())return!1;if(function(e){for(const t of e.getChildren())if(!t.is("uiElement"))return!0;return!1}(e))return!1;const o=e.document,i=o.selection.anchor;return!(o.isComposing&&i&&i.parent===e||!t&&o.isFocused&&(!i||i.parent===e))}(s,o.keepOnFocus)?function(e,t){return!t.hasClass("ck-placeholder")&&(e.addClass("ck-placeholder",t),!0)}(e,s)&&(r=!0):Xo(e,s)&&(r=!0),r}function oi(e){if(e.childCount){const t=e.getChild(0);if(t.is("element")&&!t.is("uiElement")&&!t.is("attributeElement"))return t}return null}class ii{is(){throw new Error("is() method is abstract")}}class ni extends(xe(ii)){document;parent;constructor(e){super(),this.document=e,this.parent=null}get index(){let e;if(!this.parent)return null;if(-1==(e=this.parent.getChildIndex(this)))throw new fe("view-node-not-found-in-parent",this);return e}get nextSibling(){const e=this.index;return null!==e&&this.parent.getChild(e+1)||null}get previousSibling(){const e=this.index;return null!==e&&this.parent.getChild(e-1)||null}get root(){let e=this;for(;e.parent;)e=e.parent;return e}isAttached(){return this.root.is("rootElement")}getPath(){const e=[];let t=this;for(;t.parent;)e.unshift(t.index),t=t.parent;return e}getAncestors(e={}){const t=[];let o=e.includeSelf?this:this.parent;for(;o;)t[e.parentFirst?"push":"unshift"](o),o=o.parent;return t}getCommonAncestor(e,t={}){const o=this.getAncestors(t),i=e.getAncestors(t);let n=0;for(;o[n]==i[n]&&o[n];)n++;return 0===n?null:o[n-1]}isBefore(e){if(this==e)return!1;if(this.root!==e.root)return!1;const t=this.getPath(),o=e.getPath(),i=We(t,o);switch(i){case"prefix":return!0;case"extension":return!1;default:return t[i]e.data.length)throw new fe("view-textproxy-wrong-offsetintext",this);if(o<0||t+o>e.data.length)throw new fe("view-textproxy-wrong-length",this);this.data=e.data.substring(t,t+o),this.offsetInText=t}get offsetSize(){return this.data.length}get isPartial(){return this.data.length!==this.textNode.data.length}get parent(){return this.textNode.parent}get root(){return this.textNode.root}get document(){return this.textNode.document}getAncestors(e={}){const t=[];let o=e.includeSelf?this.textNode:this.parent;for(;null!==o;)t[e.parentFirst?"push":"unshift"](o),o=o.parent;return t}}ri.prototype.is=function(e){return"$textProxy"===e||"view:$textProxy"===e||"textProxy"===e||"view:textProxy"===e};class ai{_consumables=new Map;add(e,t){let o;e.is("$text")||e.is("documentFragment")?this._consumables.set(e,!0):(this._consumables.has(e)?o=this._consumables.get(e):(o=new li(e),this._consumables.set(e,o)),o.add(t?ci(t):e._getConsumables()))}test(e,t){const o=this._consumables.get(e);return void 0===o?null:e.is("$text")||e.is("documentFragment")?o:o.test(ci(t))}consume(e,t){if(e.is("$text")||e.is("documentFragment"))return!!this.test(e,t)&&(this._consumables.set(e,!1),!0);const o=this._consumables.get(e);return void 0!==o&&o.consume(ci(t))}revert(e,t){const o=this._consumables.get(e);void 0!==o&&(e.is("$text")||e.is("documentFragment")?this._consumables.set(e,!0):o.revert(ci(t)))}static createFrom(e,t){if(t||(t=new ai),e.is("$text"))t.add(e);else if(e.is("element")||e.is("documentFragment")){t.add(e);for(const o of e.getChildren())ai.createFrom(o,t)}return t}}class li{element;_canConsumeName=null;_attributes=new Map;constructor(e){this.element=e}add(e){e.name&&(this._canConsumeName=!0);for(const[t,o]of e.attributes)if(o){let e=this._attributes.get(t);e&&"boolean"!=typeof e||(e=new Map,this._attributes.set(t,e)),e.set(o,!0)}else{if("style"==t||"class"==t)throw new fe("viewconsumable-invalid-attribute",this);this._attributes.set(t,!0)}}test(e){if(e.name&&!this._canConsumeName)return this._canConsumeName;for(const[t,o]of e.attributes){const e=this._attributes.get(t);if(void 0===e)return null;if(!1===e)return!1;if(!0!==e)if(o){const t=e.get(o);if(void 0===t)return null;if(!t)return!1}else for(const t of e.values())if(!t)return!1}return!0}consume(e){if(!this.test(e))return!1;e.name&&(this._canConsumeName=!1);for(const[t,o]of e.attributes){const e=this._attributes.get(t);if("boolean"==typeof e)for(const[e]of this.element._getConsumables(t,o).attributes)this._attributes.set(e,!1);else if(o)for(const[,i]of this.element._getConsumables(t,o).attributes)e.set(i,!1);else for(const t of e.keys())e.set(t,!1)}return!0}revert(e){e.name&&(this._canConsumeName=!0);for(const[t,o]of e.attributes){const e=this._attributes.get(t);if(!1!==e){if(void 0!==e&&!0!==e)if(o){!1===e.get(o)&&e.set(o,!0)}else for(const t of e.keys())e.set(t,!0)}else this._attributes.set(t,!0)}}}function ci(e){const t=[];return"attributes"in e&&e.attributes&&di(t,e.attributes),"classes"in e&&e.classes&&di(t,e.classes,"class"),"styles"in e&&e.styles&&di(t,e.styles,"style"),{name:e.name||!1,attributes:t}}function di(e,t,o){if("string"!=typeof t)for(const i of t)Array.isArray(i)?e.push(i):e.push(o?[o,i]:[i]);else e.push(o?[o,t]:[t])}class ui{_patterns=[];constructor(...e){this.add(...e)}add(...e){for(let t of e)("string"==typeof t||t instanceof RegExp)&&(t={name:t}),this._patterns.push(t)}match(...e){for(const t of e)for(const e of this._patterns){const o=this._isElementMatching(t,e);if(o)return{element:t,pattern:e,match:o}}return null}matchAll(...e){const t=[];for(const o of e)for(const e of this._patterns){const i=this._isElementMatching(o,e);i&&t.push({element:o,pattern:e,match:i})}return t.length>0?t:null}getElementName(){if(1!==this._patterns.length)return null;const e=this._patterns[0],t=e.name;return"function"==typeof e||!t||t instanceof RegExp?null:t}_isElementMatching(e,t){if("function"==typeof t){const o=t(e);return o&&"object"==typeof o?ci(o):o}const o={};if(t.name&&(o.name=function(e,t){if(e instanceof RegExp)return!!t.match(e);return e===t}(t.name,e.name),!o.name))return null;const i=[];return t.attributes&&!function(e,t,o){let i;"object"!=typeof e||e instanceof RegExp||Array.isArray(e)?i=["class","style"]:(void 0!==e.style&&be("matcher-pattern-deprecated-attributes-style-key",e),void 0!==e.class&&be("matcher-pattern-deprecated-attributes-class-key",e));return t._collectAttributesMatch(mi(e),o,i)}(t.attributes,e,i)||t.classes&&!function(e,t,o){return t._collectAttributesMatch(mi(e,"class"),o)}(t.classes,e,i)||t.styles&&!function(e,t,o){return t._collectAttributesMatch(mi(e,"style"),o)}(t.styles,e,i)?null:(i.length&&(o.attributes=i),o)}}function hi(e,t){return!0===e||e===t||e instanceof RegExp&&!!String(t).match(e)}function mi(e,t){if(Array.isArray(e))return e.map((e=>"object"!=typeof e||e instanceof RegExp?t?[t,e,!0]:[e,!0]:(void 0!==e.key&&void 0!==e.value||be("matcher-pattern-missing-key-or-value",e),t?[t,e.key,e.value]:[e.key,e.value])));if("object"!=typeof e||e instanceof RegExp)return[t?[t,e,!0]:[e,!0]];const o=[];for(const i in e)Object.prototype.hasOwnProperty.call(e,i)&&o.push(t?[t,i,e[i]]:[i,e[i]]);return o}class gi{_styles;_cachedStyleNames=null;_cachedExpandedStyleNames=null;_styleProcessor;constructor(e){this._styles={},this._styleProcessor=e}get isEmpty(){return!Object.entries(this._styles).length}get size(){return this.isEmpty?0:this.getStyleNames().length}setTo(e){this.clear();const t=function(e){let t=null,o=0,i=0,n=null;const s=new Map;if(""===e)return s;";"!=e.charAt(e.length-1)&&(e+=";");for(let r=0;rt===e));return Array.isArray(t)}set(e,t){if(this._cachedStyleNames=null,this._cachedExpandedStyleNames=null,s(e))for(const[t,o]of Object.entries(e))this._styleProcessor.toNormalizedForm(t,o,this._styles);else this._styleProcessor.toNormalizedForm(e,t,this._styles)}remove(e){const t={};for(const o of Qt(e)){const e=fi(o),i=vo(this._styles,e);if(i)bi(t,e,i);else{const e=this.getAsString(o);void 0!==e&&this._styleProcessor.toNormalizedForm(o,e,t)}}Object.keys(t).length&&(wi(this._styles,t),this._cachedStyleNames=null,this._cachedExpandedStyleNames=null)}getNormalized(e){return this._styleProcessor.getNormalized(e,this._styles)}toString(){return this.isEmpty?"":this.getStylesEntries().map((e=>e.join(":"))).sort().join(";")+";"}getAsString(e){if(this.isEmpty)return;if(this._styles[e]&&!s(this._styles[e]))return this._styles[e];const t=this._styleProcessor.getReducedForm(e,this._styles).find((([t])=>t===e));return Array.isArray(t)?t[1]:void 0}getStyleNames(e=!1){return this.isEmpty?[]:e?(this._cachedExpandedStyleNames||=this._styleProcessor.getStyleNames(this._styles),this._cachedExpandedStyleNames):(this._cachedStyleNames||=this.getStylesEntries().map((([e])=>e)),this._cachedStyleNames)}keys(){return this.getStyleNames()}clear(){this._styles={},this._cachedStyleNames=null,this._cachedExpandedStyleNames=null}isSimilar(e){if(this.size!==e.size)return!1;for(const t of this.getStyleNames())if(!e.has(t)||e.getAsString(t)!==this.getAsString(t))return!1;return!0}getStylesEntries(){const e=[],t=Object.keys(this._styles);for(const o of t)e.push(...this._styleProcessor.getReducedForm(o,this._styles));return e}_clone(){const e=new this.constructor(this._styleProcessor);return e.set(this.getNormalized()),e}_getTokensMatch(e,t){const o=[];for(const i of this.getStyleNames(!0))if(hi(e,i)){if(!0===t){o.push(i);continue}hi(t,this.getAsString(i))&&o.push(i)}return o.length?o:void 0}_getConsumables(e){const t=[];if(e){t.push(e);for(const o of this._styleProcessor.getRelatedStyles(e))t.push(o)}else for(const e of this.getStyleNames()){for(const o of this._styleProcessor.getRelatedStyles(e))t.push(o);t.push(e)}return t}_canMergeFrom(e){for(const t of e.getStyleNames())if(this.has(t)&&this.getAsString(t)!==e.getAsString(t))return!1;return!0}_mergeFrom(e){for(const t of e.getStyleNames())this.has(t)||this.set(t,e.getAsString(t))}_isMatching(e){for(const t of e.getStyleNames())if(!this.has(t)||this.getAsString(t)!==e.getAsString(t))return!1;return!0}}class pi{_normalizers;_extractors;_reducers;_consumables;constructor(){this._normalizers=new Map,this._extractors=new Map,this._reducers=new Map,this._consumables=new Map}toNormalizedForm(e,t,o){if(s(t))bi(o,fi(e),t);else if(this._normalizers.has(e)){const i=this._normalizers.get(e),{path:n,value:s}=i(t);bi(o,n,s)}else bi(o,e,t)}getNormalized(e,t){if(!e)return G({},t);if(void 0!==t[e])return t[e];if(this._extractors.has(e)){const o=this._extractors.get(e);if("string"==typeof o)return vo(t,o);const i=o(e,t);if(i)return i}return vo(t,fi(e))}getReducedForm(e,t){const o=this.getNormalized(e,t);if(void 0===o)return[];if(this._reducers.has(e)){return this._reducers.get(e)(o)}return[[e,o]]}getStyleNames(e){const t=new Set;for(const o of this._consumables.keys()){const i=this.getNormalized(o,e);i&&("object"!=typeof i||Object.keys(i).length)&&t.add(o)}for(const o of Object.keys(e))t.add(o);return Array.from(t)}getRelatedStyles(e){return this._consumables.get(e)||[]}setNormalizer(e,t){this._normalizers.set(e,t)}setExtractor(e,t){this._extractors.set(e,t)}setReducer(e,t){this._reducers.set(e,t)}setStyleRelation(e,t){this._mapStyleNames(e,t);for(const o of t)this._mapStyleNames(o,[e])}_mapStyleNames(e,t){this._consumables.has(e)||this._consumables.set(e,[]),this._consumables.get(e).push(...t)}}function fi(e){return e.replace("-",".")}function bi(e,t,o){let i=o;s(o)&&!Array.isArray(o)&&(i=G({},vo(e,t),o)),Ro(e,t,i)}function wi(e,t){for(const o of Object.keys(t))null===e[o]||Array.isArray(e[o])||"object"!=typeof e[o]||"object"!=typeof t[o]?delete e[o]:(wi(e[o],t[o]),Object.keys(e[o]).length||delete e[o])}class yi{_set=new Set;get isEmpty(){return 0==this._set.size}get size(){return this._set.size}has(e){return this._set.has(e)}keys(){return Array.from(this._set.keys())}setTo(e){this.clear();for(const t of e.split(/\s+/))t&&this._set.add(t);return this}set(e){for(const t of Qt(e))t&&this._set.add(t)}remove(e){for(const t of Qt(e))this._set.delete(t)}clear(){this._set.clear()}toString(){return Array.from(this._set).join(" ")}isSimilar(e){if(this.size!==e.size)return!1;for(const t of this.keys())if(!e.has(t))return!1;return!0}_clone(){const e=new this.constructor;return e._set=new Set(this._set),e}_getTokensMatch(e){const t=[];if(!0===e){for(const e of this._set.keys())t.push(e);return t}if("string"==typeof e){for(const o of e.split(/\s+/)){if(!this._set.has(o))return;t.push(o)}return t}for(const o of this._set.keys())o.match(e)&&t.push(o);return t.length?t:void 0}_getConsumables(e){return e?[e]:this.keys()}_canMergeFrom(){return!0}_mergeFrom(e){for(const t of e._set.keys())this._set.has(t)||this._set.add(t)}_isMatching(e){for(const t of e._set.keys())if(!this._set.has(t))return!1;return!0}}class _i extends ni{name;_unsafeAttributesToRender=[];_attrs;_children;_customProperties=new Map;get _classes(){return this._attrs.get("class")}get _styles(){return this._attrs.get("style")}constructor(e,t,o,i){super(e),this.name=t,this._attrs=this._parseAttributes(o),this._children=[],i&&this._insertChild(0,i)}get childCount(){return this._children.length}get isEmpty(){return 0===this._children.length}getChild(e){return this._children[e]}getChildIndex(e){return this._children.indexOf(e)}getChildren(){return this._children[Symbol.iterator]()}*getAttributeKeys(){this._classes&&(yield"class"),this._styles&&(yield"style");for(const e of this._attrs.keys())"class"!=e&&"style"!=e&&(yield e)}*getAttributes(){for(const[e,t]of this._attrs.entries())yield[e,String(t)]}getAttribute(e){return this._attrs.has(e)?String(this._attrs.get(e)):void 0}hasAttribute(e,t){return!!this._attrs.has(e)&&(void 0===t||(vi(this.name,e)||ki(this.name,e)?this._attrs.get(e).has(t):this._attrs.get(e)===t))}isSimilar(e){if(!(e instanceof _i))return!1;if(this===e)return!0;if(this.name!=e.name)return!1;if(this._attrs.size!==e._attrs.size)return!1;for(const[t,o]of this._attrs){const i=e._attrs.get(t);if(void 0===i)return!1;if("string"==typeof o||"string"==typeof i){if(i!==o)return!1}else if(!o.isSimilar(i))return!1}return!0}hasClass(...e){for(const t of e)if(!this._classes||!this._classes.has(t))return!1;return!0}getClassNames(){const e=this._classes?this._classes.keys():[],t=e[Symbol.iterator]();return Object.assign(e,{next:t.next.bind(t)})}getStyle(e){return this._styles&&this._styles.getAsString(e)}getNormalizedStyle(e){return this._styles&&this._styles.getNormalized(e)}getStyleNames(e){return this._styles?this._styles.getStyleNames(e):[]}hasStyle(...e){for(const t of e)if(!this._styles||!this._styles.has(t))return!1;return!0}findAncestor(...e){const t=new ui(...e);let o=this.parent;for(;o&&!o.is("documentFragment");){if(t.match(o))return o;o=o.parent}return null}getCustomProperty(e){return this._customProperties.get(e)}*getCustomProperties(){yield*this._customProperties.entries()}getIdentity(){const e=this._classes?this._classes.keys().sort().join(","):"",t=this._styles&&String(this._styles),o=Array.from(this._attrs).filter((([e])=>"style"!=e&&"class"!=e)).map((e=>`${e[0]}="${e[1]}"`)).sort().join(" ");return this.name+(""==e?"":` class="${e}"`)+(t?` style="${t}"`:"")+(""==o?"":` ${o}`)}shouldRenderUnsafeAttribute(e){return this._unsafeAttributesToRender.includes(e)}toJSON(){const e=super.toJSON();if(e.name=this.name,e.type="Element",this._attrs.size&&(e.attributes=Object.fromEntries(this.getAttributes())),this._children.length>0){e.children=[];for(const t of this._children)e.children.push(t.toJSON())}return e}_clone(e=!1){const t=[];if(e)for(const o of this.getChildren())t.push(o._clone(e));const o=new this.constructor(this.document,this.name,this._attrs,t);return o._customProperties=new Map(this._customProperties),o.getFillerOffset=this.getFillerOffset,o._unsafeAttributesToRender=this._unsafeAttributesToRender,o}_appendChild(e){return this._insertChild(this.childCount,e)}_insertChild(e,t){this._fireChange("children",this,{index:e});let o=0;const i=function(e,t){if("string"==typeof t)return[new si(e,t)];Ue(t)||(t=[t]);const o=[];for(const i of t)"string"==typeof i?o.push(new si(e,i)):i instanceof ri?o.push(new si(e,i.data)):o.push(i);return o}(this.document,t);for(const t of i)null!==t.parent&&t._remove(),t.parent=this,t.document=this.document,this._children.splice(e,0,t),e++,o++;return o}_removeChildren(e,t=1){this._fireChange("children",this,{index:e});for(let o=e;ot&&e.selection.editableElement==this)),this.listenTo(e.selection,"change",(()=>{this.isFocused=e.isFocused&&e.selection.editableElement==this}))}destroy(){this.stopListening()}toJSON(){const e=super.toJSON();return e.type="EditableElement",e.isReadOnly=this.isReadOnly,e.isFocused=this.isFocused,e}}xi.prototype.is=function(e,t){return t?t===this.name&&("editableElement"===e||"view:editableElement"===e||"containerElement"===e||"view:containerElement"===e||"element"===e||"view:element"===e):"editableElement"===e||"view:editableElement"===e||"containerElement"===e||"view:containerElement"===e||"element"===e||"view:element"===e||"node"===e||"view:node"===e};const Ei=Symbol("rootName");class Ti extends xi{constructor(e,t){super(e,t),this.rootName="main"}get rootName(){return this.getCustomProperty(Ei)}set rootName(e){this._setCustomProperty(Ei,e)}toJSON(){return this.rootName}set _name(e){this.name=e}}Ti.prototype.is=function(e,t){return t?t===this.name&&("rootElement"===e||"view:rootElement"===e||"editableElement"===e||"view:editableElement"===e||"containerElement"===e||"view:containerElement"===e||"element"===e||"view:element"===e):"rootElement"===e||"view:rootElement"===e||"editableElement"===e||"view:editableElement"===e||"containerElement"===e||"view:containerElement"===e||"element"===e||"view:element"===e||"node"===e||"view:node"===e};class Pi{direction;boundaries;singleCharacters;shallow;ignoreElementEnd;_position;_boundaryStartParent;_boundaryEndParent;constructor(e={}){if(!e.boundaries&&!e.startPosition)throw new fe("view-tree-walker-no-start-position",null);if(e.direction&&"forward"!=e.direction&&"backward"!=e.direction)throw new fe("view-tree-walker-unknown-direction",e.startPosition,{direction:e.direction});this.boundaries=e.boundaries||null,e.startPosition?this._position=Si._createAt(e.startPosition):this._position=Si._createAt(e.boundaries["backward"==e.direction?"end":"start"]),this.direction=e.direction||"forward",this.singleCharacters=!!e.singleCharacters,this.shallow=!!e.shallow,this.ignoreElementEnd=!!e.ignoreElementEnd,this._boundaryStartParent=this.boundaries?this.boundaries.start.parent:null,this._boundaryEndParent=this.boundaries?this.boundaries.end.parent:null}[Symbol.iterator](){return this}get position(){return this._position}skip(e){let t,o;do{o=this.position,t=this.next()}while(!t.done&&e(t.value));t.done||(this._position=o)}jumpTo(e){this._boundaryStartParent&&e.isBefore(this.boundaries.start)?e=this.boundaries.start:this._boundaryEndParent&&e.isAfter(this.boundaries.end)&&(e=this.boundaries.end),this._position=e.clone()}next(){return"forward"==this.direction?this._next():this._previous()}_next(){let e=this.position.clone();const t=this.position,o=e.parent;if(null===o.parent&&e.offset===o.childCount)return{done:!0,value:void 0};if(o===this._boundaryEndParent&&e.offset==this.boundaries.end.offset)return{done:!0,value:void 0};let i;if(o&&o.is("view:$text")){if(e.isAtEnd)return this._position=Si._createAfter(o),this._next();i=o.data[e.offset]}else i=o.getChild(e.offset);if("string"==typeof i){let i;if(this.singleCharacters)i=1;else{i=(o===this._boundaryEndParent?this.boundaries.end.offset:o.data.length)-e.offset}const n=new ri(o,e.offset,i);return e.offset+=i,this._position=e,this._formatReturnValue("text",n,t,e,i)}if(i&&i.is("view:element")){if(this.shallow){if(this.boundaries&&this.boundaries.end.isBefore(e))return{done:!0,value:void 0};e.offset++}else e=new Si(i,0);return this._position=e,this._formatReturnValue("elementStart",i,t,e,1)}if(i&&i.is("view:$text")){if(this.singleCharacters)return e=new Si(i,0),this._position=e,this._next();let o,n=i.data.length;return i==this._boundaryEndParent?(n=this.boundaries.end.offset,o=new ri(i,0,n),e=Si._createAfter(o)):(o=new ri(i,0,i.data.length),e.offset++),this._position=e,this._formatReturnValue("text",o,t,e,n)}return e=Si._createAfter(o),this._position=e,this.ignoreElementEnd?this._next():this._formatReturnValue("elementEnd",o,t,e)}_previous(){let e=this.position.clone();const t=this.position,o=e.parent;if(null===o.parent&&0===e.offset)return{done:!0,value:void 0};if(o==this._boundaryStartParent&&e.offset==this.boundaries.start.offset)return{done:!0,value:void 0};let i;if(o.is("view:$text")){if(e.isAtStart)return this._position=Si._createBefore(o),this._previous();i=o.data[e.offset-1]}else i=o.getChild(e.offset-1);if("string"==typeof i){let i;if(this.singleCharacters)i=1;else{const t=o===this._boundaryStartParent?this.boundaries.start.offset:0;i=e.offset-t}e.offset-=i;const n=new ri(o,e.offset,i);return this._position=e,this._formatReturnValue("text",n,t,e,i)}if(i&&i.is("view:element"))return this.shallow?(e.offset--,this._position=e,this._formatReturnValue("elementStart",i,t,e,1)):(e=new Si(i,i.childCount),this._position=e,this.ignoreElementEnd?this._previous():this._formatReturnValue("elementEnd",i,t,e));if(i&&i.is("view:$text")){if(this.singleCharacters)return e=new Si(i,i.data.length),this._position=e,this._previous();let o,n=i.data.length;if(i==this._boundaryStartParent){const t=this.boundaries.start.offset;o=new ri(i,t,i.data.length-t),n=o.data.length,e=Si._createBefore(o)}else o=new ri(i,0,i.data.length),e.offset--;return this._position=e,this._formatReturnValue("text",o,t,e,n)}return e=Si._createBefore(o),this._position=e,this._formatReturnValue("elementStart",o,t,e,1)}_formatReturnValue(e,t,o,i,n){return t.is("view:$textProxy")&&(t.offsetInText+t.data.length==t.textNode.data.length&&("forward"!=this.direction||this.boundaries&&this.boundaries.end.isEqual(this.position)?o=Si._createAfter(t.textNode):(i=Si._createAfter(t.textNode),this._position=i)),0===t.offsetInText&&("backward"!=this.direction||this.boundaries&&this.boundaries.start.isEqual(this.position)?o=Si._createBefore(t.textNode):(i=Si._createBefore(t.textNode),this._position=i))),{done:!1,value:{type:e,item:t,previousPosition:o,nextPosition:i,length:n}}}}class Si extends ii{parent;offset;constructor(e,t){super(),this.parent=e,this.offset=t}get nodeAfter(){return this.parent.is("$text")?null:this.parent.getChild(this.offset)||null}get nodeBefore(){return this.parent.is("$text")?null:this.parent.getChild(this.offset-1)||null}get isAtStart(){return 0===this.offset}get isAtEnd(){const e=this.parent.is("$text")?this.parent.data.length:this.parent.childCount;return this.offset===e}get root(){return this.parent.root}get editableElement(){let e=this.parent;for(;!(e instanceof xi);){if(!e.parent)return null;e=e.parent}return e}getShiftedBy(e){const t=Si._createAt(this),o=t.offset+e;return t.offset=o<0?0:o,t}getLastMatchingPosition(e,t={}){t.startPosition=this;const o=new Pi(t);return o.skip(e),o.position}getAncestors(){return this.parent.is("documentFragment")?[this.parent]:this.parent.getAncestors({includeSelf:!0})}getCommonAncestor(e){const t=this.getAncestors(),o=e.getAncestors();let i=0;for(;t[i]==o[i]&&t[i];)i++;return 0===i?null:t[i-1]}isEqual(e){return this.parent==e.parent&&this.offset==e.offset}isBefore(e){return"before"==this.compareWith(e)}isAfter(e){return"after"==this.compareWith(e)}compareWith(e){if(this.root!==e.root)return"different";if(this.isEqual(e))return"same";const t=this.parent.is("node")?this.parent.getPath():[],o=e.parent.is("node")?e.parent.getPath():[];t.push(this.offset),o.push(e.offset);const i=We(t,o);switch(i){case"prefix":return"before";case"extension":return"after";default:return t[i]0?new this(o,i):new this(i,o)}static _createIn(e){return this._createFromParentsAndOffsets(e,0,e,e.childCount)}static _createOn(e){const t=e.is("$textProxy")?e.offsetSize:1;return this._createFromPositionAndShift(Si._createBefore(e),t)}}function Ri(e){return!(!e.item.is("attributeElement")&&!e.item.is("uiElement"))}Ii.prototype.is=function(e){return"range"===e||"view:range"===e};class Oi extends(xe(ii)){_ranges;_lastRangeBackward;_isFake;_fakeSelectionLabel;constructor(...e){super(),this._ranges=[],this._lastRangeBackward=!1,this._isFake=!1,this._fakeSelectionLabel="",e.length&&this.setTo(...e)}get isFake(){return this._isFake}get fakeSelectionLabel(){return this._fakeSelectionLabel}get anchor(){if(!this._ranges.length)return null;const e=this._ranges[this._ranges.length-1];return(this._lastRangeBackward?e.end:e.start).clone()}get focus(){if(!this._ranges.length)return null;const e=this._ranges[this._ranges.length-1];return(this._lastRangeBackward?e.start:e.end).clone()}get isCollapsed(){return 1===this.rangeCount&&this._ranges[0].isCollapsed}get rangeCount(){return this._ranges.length}get isBackward(){return!this.isCollapsed&&this._lastRangeBackward}get editableElement(){return this.anchor?this.anchor.editableElement:null}*getRanges(){for(const e of this._ranges)yield e.clone()}getFirstRange(){let e=null;for(const t of this._ranges)e&&!t.start.isBefore(e.start)||(e=t);return e?e.clone():null}getLastRange(){let e=null;for(const t of this._ranges)e&&!t.end.isAfter(e.end)||(e=t);return e?e.clone():null}getFirstPosition(){const e=this.getFirstRange();return e?e.start.clone():null}getLastPosition(){const e=this.getLastRange();return e?e.end.clone():null}isEqual(e){if(this.isFake!=e.isFake)return!1;if(this.isFake&&this.fakeSelectionLabel!=e.fakeSelectionLabel)return!1;if(this.rangeCount!=e.rangeCount)return!1;if(0===this.rangeCount)return!0;if(!this.anchor.isEqual(e.anchor)||!this.focus.isEqual(e.focus))return!1;for(const t of this._ranges){let o=!1;for(const i of e._ranges)if(t.isEqual(i)){o=!0;break}if(!o)return!1}return!0}isSimilar(e){if(this.isBackward!=e.isBackward)return!1;const t=He(this.getRanges());if(t!=He(e.getRanges()))return!1;if(0==t)return!0;for(let t of this.getRanges()){t=t.getTrimmed();let o=!1;for(let i of e.getRanges())if(i=i.getTrimmed(),t.start.isEqual(i.start)&&t.end.isEqual(i.end)){o=!0;break}if(!o)return!1}return!0}getSelectedElement(){return 1!==this.rangeCount?null:this.getFirstRange().getContainedElement()}setTo(...e){let[t,o,i]=e;if("object"==typeof o&&(i=o,o=void 0),null===t)this._setRanges([]),this._setFakeOptions(i);else if(t instanceof Oi||t instanceof Vi)this._setRanges(t.getRanges(),t.isBackward),this._setFakeOptions({fake:t.isFake,label:t.fakeSelectionLabel});else if(t instanceof Ii)this._setRanges([t],i&&i.backward),this._setFakeOptions(i);else if(t instanceof Si)this._setRanges([new Ii(t)]),this._setFakeOptions(i);else if(t instanceof ni){const e=!!i&&!!i.backward;let n;if(void 0===o)throw new fe("view-selection-setto-required-second-parameter",this);n="in"==o?Ii._createIn(t):"on"==o?Ii._createOn(t):new Ii(Si._createAt(t,o)),this._setRanges([n],e),this._setFakeOptions(i)}else{if(!Ue(t))throw new fe("view-selection-setto-not-selectable",this);this._setRanges(t,i&&i.backward),this._setFakeOptions(i)}this.fire("change")}setFocus(e,t){if(null===this.anchor)throw new fe("view-selection-setfocus-no-ranges",this);const o=Si._createAt(e,t);if("same"==o.compareWith(this.focus))return;const i=this.anchor;this._ranges.pop(),"before"==o.compareWith(i)?this._addRange(new Ii(o,i),!0):this._addRange(new Ii(i,o)),this.fire("change")}toJSON(){const e={ranges:Array.from(this.getRanges()).map((e=>e.toJSON()))};return this.isBackward&&(e.isBackward=!0),this.isFake&&(e.isFake=!0),e}_setRanges(e,t=!1){e=Array.from(e),this._ranges=[];for(const t of e)this._addRange(t);this._lastRangeBackward=!!t}_setFakeOptions(e={}){this._isFake=!!e.fake,this._fakeSelectionLabel=e.fake&&e.label||""}_addRange(e,t=!1){if(!(e instanceof Ii))throw new fe("view-selection-add-range-not-range",this);this._pushRange(e),this._lastRangeBackward=!!t}_pushRange(e){for(const t of this._ranges)if(e.isIntersecting(t))throw new fe("view-selection-range-intersects",this,{addedRange:e,intersectingRange:t});this._ranges.push(new Ii(e.start,e.end))}}Oi.prototype.is=function(e){return"selection"===e||"view:selection"===e};class Vi extends(xe(ii)){_selection;constructor(...e){super(),this._selection=new Oi,this._selection.delegate("change").to(this),e.length&&this._selection.setTo(...e)}get isFake(){return this._selection.isFake}get fakeSelectionLabel(){return this._selection.fakeSelectionLabel}get anchor(){return this._selection.anchor}get focus(){return this._selection.focus}get isCollapsed(){return this._selection.isCollapsed}get rangeCount(){return this._selection.rangeCount}get isBackward(){return this._selection.isBackward}get editableElement(){return this._selection.editableElement}get _ranges(){return this._selection._ranges}*getRanges(){yield*this._selection.getRanges()}getFirstRange(){return this._selection.getFirstRange()}getLastRange(){return this._selection.getLastRange()}getFirstPosition(){return this._selection.getFirstPosition()}getLastPosition(){return this._selection.getLastPosition()}getSelectedElement(){return this._selection.getSelectedElement()}isEqual(e){return this._selection.isEqual(e)}isSimilar(e){return this._selection.isSimilar(e)}toJSON(){return this._selection.toJSON()}_setTo(...e){this._selection.setTo(...e)}_setFocus(e,t){this._selection.setFocus(e,t)}}Vi.prototype.is=function(e){return"selection"===e||"documentSelection"==e||"view:selection"==e||"view:documentSelection"==e};class Di extends ue{startRange;_eventPhase;_currentTarget;constructor(e,t,o){super(e,t),this.startRange=o,this._eventPhase="none",this._currentTarget=null}get eventPhase(){return this._eventPhase}get currentTarget(){return this._currentTarget}}const Fi=Symbol("bubblingEmitter"),Mi=Symbol("bubblingCallbacks"),Ni=Symbol("bubblingContexts");function Bi(e){return class extends e{fire(e,...t){try{const o=e instanceof ue?e:new ue(this,e),i=ji(this),n=$i(this);if(Li(o,"capturing",this),zi(i,"$capture",o,...t))return o.return;const s=o.startRange||this.selection.getFirstRange(),r=s?s.getContainedElement():null,a=!!r&&function(e,t){for(const o of e)if(o(t))return!0;return!1}(n,r);let l=r||function(e){if(!e)return null;const t=e.start.parent,o=e.end.parent,i=t.getPath(),n=o.getPath();return i.length>n.length?t:o}(s);if(Li(o,"atTarget",l),!a){if(zi(i,"$text",o,...t))return o.return;Li(o,"bubbling",l)}for(;l;){if(l.is("element")&&zi(i,l,o,...t))return o.return;l=l.parent,Li(o,"bubbling",l)}return Li(o,"bubbling",this),zi(i,"$document",o,...t),o.return}catch(e){fe.rethrowUnexpectedError(e,this)}}_addEventListener(e,t,o){const i=Qt(o.context||"$document"),n=ji(this),s=qi(this);for(const e of i)"function"==typeof e&&$i(this).add(e);const r=function(e,t,o){return function(i,n){const{currentTarget:s,eventArgs:r}=n;if("string"!=typeof s){if(s.is("rootElement")&&t.includes("$root"))o.call(e,i,...r);else if(t.includes(s.name))o.call(e,i,...r);else for(const n of t)if("function"==typeof n&&n(s))return void o.call(e,i,...r)}else t.includes(s)&&o.call(e,i,...r)}}(this,i,t);s.set(t,r),this.listenTo(n,e,r,o)}_removeEventListener(e,t){const o=ji(this),i=qi(this),n=i.get(t);n&&(i.delete(t),this.stopListening(o,e,n))}}}function Li(e,t,o){e instanceof Di&&(e._eventPhase=t,e._currentTarget=o)}function zi(e,t,o,...i){return e.fire(o,{currentTarget:t,eventArgs:i}),!!o.stop.called}function ji(e){return e[Fi]||(e[Fi]=new(xe())),e[Fi]}function qi(e){return e[Mi]||(e[Mi]=new Map),e[Mi]}function $i(e){return e[Ni]||(e[Ni]=new Set),e[Ni]}class Hi extends(Bi(Be())){selection;roots;stylesProcessor;_postFixers=new Set;constructor(e){super(),this.selection=new Vi,this.roots=new eo({idProperty:"rootName"}),this.stylesProcessor=e,this.set("isReadOnly",!1),this.set("isFocused",!1),this.set("isSelecting",!1),this.set("isComposing",!1)}getRoot(e="main"){return this.roots.get(e)}registerPostFixer(e){this._postFixers.add(e)}destroy(){this.roots.forEach((e=>e.destroy())),this.stopListening()}_callPostFixers(e){let t=!1;do{for(const o of this._postFixers)if(t=o(e),t)break}while(t)}}class Wi extends _i{static DEFAULT_PRIORITY=10;_priority=10;_id=null;_clonesGroup=null;constructor(e,t,o,i){super(e,t,o,i),this.getFillerOffset=Ui}get priority(){return this._priority}get id(){return this._id}getElementsWithSameId(){if(null===this.id)throw new fe("attribute-element-get-elements-with-same-id-no-id",this);return new Set(this._clonesGroup)}isSimilar(e){return null!==this.id||null!==e.id?this.id===e.id:super.isSimilar(e)&&this.priority==e.priority}toJSON(){const e=super.toJSON();return e.type="AttributeElement",e}_clone(e=!1){const t=super._clone(e);return t._priority=this._priority,t._id=this._id,t}_canMergeAttributesFrom(e){return null===this.id&&null===e.id&&this.priority===e.priority&&super._canMergeAttributesFrom(e)}_canSubtractAttributesOf(e){return null===this.id&&null===e.id&&this.priority===e.priority&&super._canSubtractAttributesOf(e)}}function Ui(){if(Ki(this))return null;let e=this.parent;for(;e&&e.is("attributeElement");){if(Ki(e)>1)return null;e=e.parent}return!e||Ki(e)>1?null:this.childCount}function Ki(e){return Array.from(e.getChildren()).filter((e=>!e.is("uiElement"))).length}Wi.prototype.is=function(e,t){return t?t===this.name&&("attributeElement"===e||"view:attributeElement"===e||"element"===e||"view:element"===e):"attributeElement"===e||"view:attributeElement"===e||"element"===e||"view:element"===e||"node"===e||"view:node"===e};class Gi extends _i{constructor(e,t,o,i){super(e,t,o,i),this.getFillerOffset=Ji}toJSON(){const e=super.toJSON();return e.type="EmptyElement",e}_insertChild(e,t){if(t&&(t instanceof ni||Array.from(t).length>0))throw new fe("view-emptyelement-cannot-add",[this,t]);return 0}}function Ji(){return null}Gi.prototype.is=function(e,t){return t?t===this.name&&("emptyElement"===e||"view:emptyElement"===e||"element"===e||"view:element"===e):"emptyElement"===e||"view:emptyElement"===e||"element"===e||"view:element"===e||"node"===e||"view:node"===e};class Zi extends _i{constructor(e,t,o,i){super(e,t,o,i),this.getFillerOffset=Yi}_insertChild(e,t){if(t&&(t instanceof ni||Array.from(t).length>0))throw new fe("view-uielement-cannot-add",[this,t]);return 0}render(e,t){return this.toDomElement(e)}toDomElement(e){const t=e.createElement(this.name);for(const e of this.getAttributeKeys())t.setAttribute(e,this.getAttribute(e));return t}toJSON(){const e=super.toJSON();return e.type="UIElement",e}}function Qi(e){e.document.on("arrowKey",((t,o)=>function(e,t,o){if(t.keyCode==qt.arrowright){const e=t.domTarget.ownerDocument.defaultView.getSelection(),i=1==e.rangeCount&&e.getRangeAt(0).collapsed;if(i||t.shiftKey){const t=e.focusNode,n=e.focusOffset,s=o.domPositionToView(t,n);if(null===s)return;let r=!1;const a=s.getLastMatchingPosition((e=>(e.item.is("uiElement")&&(r=!0),!(!e.item.is("uiElement")&&!e.item.is("attributeElement")))));if(r){const t=o.viewPositionToDom(a);i?e.collapse(t.parent,t.offset):e.extend(t.parent,t.offset)}}}}(0,o,e.domConverter)),{priority:"low"})}function Yi(){return null}Zi.prototype.is=function(e,t){return t?t===this.name&&("uiElement"===e||"view:uiElement"===e||"element"===e||"view:element"===e):"uiElement"===e||"view:uiElement"===e||"element"===e||"view:element"===e||"node"===e||"view:node"===e};class Xi extends _i{constructor(e,t,o,i){super(e,t,o,i),this.getFillerOffset=en}toJSON(){const e=super.toJSON();return e.type="RawElement",e}_insertChild(e,t){if(t&&(t instanceof ni||Array.from(t).length>0))throw new fe("view-rawelement-cannot-add",[this,t]);return 0}render(e,t){}}function en(){return null}Xi.prototype.is=function(e,t){return t?t===this.name&&("rawElement"===e||"view:rawElement"===e||"element"===e||"view:element"===e):"rawElement"===e||"view:rawElement"===e||e===this.name||e==="view:"+this.name||"element"===e||"view:element"===e||"node"===e||"view:node"===e};class tn extends(xe(ii)){document;_children=[];_customProperties=new Map;constructor(e,t){super(),this.document=e,t&&this._insertChild(0,t)}[Symbol.iterator](){return this._children[Symbol.iterator]()}get childCount(){return this._children.length}get isEmpty(){return 0===this.childCount}get root(){return this}get parent(){return null}get name(){}get getFillerOffset(){}getCustomProperty(e){return this._customProperties.get(e)}*getCustomProperties(){yield*this._customProperties.entries()}toJSON(){const e=[];for(const t of this._children)e.push(t.toJSON());return e}_appendChild(e){return this._insertChild(this.childCount,e)}getChild(e){return this._children[e]}getChildIndex(e){return this._children.indexOf(e)}getChildren(){return this._children[Symbol.iterator]()}_insertChild(e,t){this._fireChange("children",this,{index:e});let o=0;const i=function(e,t){if("string"==typeof t)return[new si(e,t)];Ue(t)||(t=[t]);return Array.from(t).map((t=>"string"==typeof t?new si(e,t):t instanceof ri?new si(e,t.data):t))}(this.document,t);for(const t of i)null!==t.parent&&t._remove(),t.parent=this,this._children.splice(e,0,t),e++,o++;return o}_removeChildren(e,t=1){this._fireChange("children",this,{index:e});for(let o=e;o{const o=e[e.length-1],i=!t.is("uiElement");return o&&o.breakAttributes==i?o.nodes.push(t):e.push({breakAttributes:i,nodes:[t]}),e}),[]);let i=null,n=e;for(const{nodes:e,breakAttributes:t}of o){const o=this._insertNodes(n,e,t);i||(i=o.start),n=o.end}return i?new Ii(i,n):new Ii(e)}remove(e){const t=e instanceof Ii?e:Ii._createOn(e);if(hn(t,this.document),t.isCollapsed)return new tn(this.document);const{start:o,end:i}=this._breakAttributesRange(t,!0),n=o.parent,s=i.offset-o.offset,r=n._removeChildren(o.offset,s);for(const e of r)this._removeFromClonedElementsGroup(e);const a=this.mergeAttributes(o);return t.start=a,t.end=a.clone(),new tn(this.document,r)}clear(e,t){hn(e,this.document);const o=e.getWalker({direction:"backward",ignoreElementEnd:!0});for(const i of o){const o=i.item;let n;if(o.is("element")&&t.isSimilar(o))n=Ii._createOn(o);else if(!i.nextPosition.isAfter(e.start)&&o.is("$textProxy")){const e=o.getAncestors().find((e=>e.is("element")&&t.isSimilar(e)));e&&(n=Ii._createIn(e))}n&&(n.end.isAfter(e.end)&&(n.end=e.end),n.start.isBefore(e.start)&&(n.start=e.start),this.remove(n))}}move(e,t){let o;if(t.isAfter(e.end)){const i=(t=this._breakAttributes(t,!0)).parent,n=i.childCount;e=this._breakAttributesRange(e,!0),o=this.remove(e),t.offset+=i.childCount-n}else o=this.remove(e);return this.insert(t,o)}wrap(e,t){if(!(t instanceof Wi))throw new fe("view-writer-wrap-invalid-attribute",this.document);if(hn(e,this.document),e.isCollapsed){let i=e.start;i.parent.is("element")&&(o=i.parent,!Array.from(o.getChildren()).some((e=>!e.is("uiElement"))))&&(i=i.getLastMatchingPosition((e=>e.item.is("uiElement")))),i=this._wrapPosition(i,t);const n=this.document.selection;return n.isCollapsed&&n.getFirstPosition().isEqual(e.start)&&this.setSelection(i),new Ii(i)}return this._wrapRange(e,t);var o}unwrap(e,t){if(!(t instanceof Wi))throw new fe("view-writer-unwrap-invalid-attribute",this.document);if(hn(e,this.document),e.isCollapsed)return e;const{start:o,end:i}=this._breakAttributesRange(e,!0),n=o.parent,s=this._unwrapChildren(n,o.offset,i.offset,t),r=this.mergeAttributes(s.start);r.isEqual(s.start)||s.end.offset--;const a=this.mergeAttributes(s.end);return new Ii(r,a)}rename(e,t){const o=new Ci(this.document,e,t.getAttributes());return this.insert(Si._createAfter(t),o),this.move(Ii._createIn(t),Si._createAt(o,0)),this.remove(Ii._createOn(t)),o}clearClonedElementsGroup(e){this._cloneGroups.delete(e)}createPositionAt(e,t){return Si._createAt(e,t)}createPositionAfter(e){return Si._createAfter(e)}createPositionBefore(e){return Si._createBefore(e)}createRange(e,t){return new Ii(e,t)}createRangeOn(e){return Ii._createOn(e)}createRangeIn(e){return Ii._createIn(e)}createSelection(...e){return new Oi(...e)}createSlot(e="children"){if(!this._slotFactory)throw new fe("view-writer-invalid-create-slot-context",this.document);return this._slotFactory(this,e)}_registerSlotFactory(e){this._slotFactory=e}_clearSlotFactory(){this._slotFactory=null}_insertNodes(e,t,o){let i,n;if(i=o?nn(e):e.parent.is("$text")?e.parent.parent:e.parent,!i)throw new fe("view-writer-invalid-position-container",this.document);n=o?this._breakAttributes(e,!0):e.parent.is("$text")?an(e):e;const s=i._insertChild(n.offset,t);for(const e of t)this._addToClonedElementsGroup(e);const r=n.getShiftedBy(s),a=this.mergeAttributes(n);a.isEqual(n)||r.offset--;const l=this.mergeAttributes(r);return new Ii(a,l)}_wrapChildren(e,t,o,i){let n=t;const s=[];for(;n!1,e.parent._insertChild(e.offset,o);const i=new Ii(e,e.getShiftedBy(1));this.wrap(i,t);const n=new Si(o.parent,o.index);o._remove();const s=n.nodeBefore,r=n.nodeAfter;return s&&s.is("view:$text")&&r&&r.is("view:$text")?ln(s,r):rn(n)}_breakAttributesRange(e,t=!1){const o=e.start,i=e.end;if(hn(e,this.document),e.isCollapsed){const o=this._breakAttributes(e.start,t);return new Ii(o,o)}const n=this._breakAttributes(i,t),s=n.parent.childCount,r=this._breakAttributes(o,t);return n.offset+=n.parent.childCount-s,new Ii(r,n)}_breakAttributes(e,t=!1){const o=e.offset,i=e.parent;if(e.parent.is("emptyElement"))throw new fe("view-writer-cannot-break-empty-element",this.document);if(e.parent.is("uiElement"))throw new fe("view-writer-cannot-break-ui-element",this.document);if(e.parent.is("rawElement"))throw new fe("view-writer-cannot-break-raw-element",this.document);if(!t&&i.is("$text")&&un(i.parent))return e.clone();if(un(i))return e.clone();if(i.is("$text"))return this._breakAttributes(an(e),t);if(o==i.childCount){const e=new Si(i.parent,i.index+1);return this._breakAttributes(e,t)}if(0===o){const e=new Si(i.parent,i.index);return this._breakAttributes(e,t)}{const e=i.index+1,n=i._clone();i.parent._insertChild(e,n),this._addToClonedElementsGroup(n);const s=i.childCount-o,r=i._removeChildren(o,s);n._appendChild(r);const a=new Si(i.parent,e);return this._breakAttributes(a,t)}}_addToClonedElementsGroup(e){if(!e.root.is("rootElement"))return;if(e.is("element"))for(const t of e.getChildren())this._addToClonedElementsGroup(t);const t=e.id;if(!t)return;let o=this._cloneGroups.get(t);o||(o=new Set,this._cloneGroups.set(t,o)),o.add(e),e._clonesGroup=o}_removeFromClonedElementsGroup(e){if(e.is("element"))for(const t of e.getChildren())this._removeFromClonedElementsGroup(t);const t=e.id;if(!t)return;const o=this._cloneGroups.get(t);o&&o.delete(e)}}function nn(e){let t=e.parent;for(;!un(t);){if(!t)return;t=t.parent}return t}function sn(e,t){return e.priorityt.priority)&&e.getIdentity()o instanceof e)))throw new fe("view-writer-insert-invalid-node-type",t);o.is("$text")||dn(o.getChildren(),t)}}function un(e){return e&&(e.is("containerElement")||e.is("documentFragment"))}function hn(e,t){const o=nn(e.start),i=nn(e.end);if(!o||!i||o!==i)throw new fe("view-writer-invalid-range-container",t)}const mn=e=>e.createTextNode(" "),gn=e=>{const t=e.createElement("span");return t.dataset.ckeFiller="true",t.innerText=" ",t},pn=e=>{const t=e.createElement("br");return t.dataset.ckeFiller="true",t},fn="⁠".repeat(7);function bn(e){return"string"==typeof e?e.substr(0,7)===fn:at(e)&&e.data.substr(0,7)===fn}function wn(e){return 7==e.data.length&&bn(e)}function yn(e){const t="string"==typeof e?e:e.data;return bn(e)?t.slice(7):t}function _n(e,t){if(t.keyCode==qt.arrowleft){const e=t.domTarget.ownerDocument.defaultView.getSelection();if(1==e.rangeCount&&e.getRangeAt(0).collapsed){const t=e.getRangeAt(0).startContainer,o=e.getRangeAt(0).startOffset;bn(t)&&o<=7&&e.collapse(t,0)}}}class kn extends(Be()){domDocuments=new Set;domConverter;markedAttributes=new Set;markedChildren=new Set;markedTexts=new Set;selection;_inlineFiller=null;_fakeSelectionContainer=null;constructor(e,t){super(),this.domConverter=e,this.selection=t,this.set("isFocused",!1),this.set("isSelecting",!1),this.set("isComposing",!1),Y.isBlink&&!Y.isAndroid&&this.on("change:isSelecting",(()=>{this.isSelecting||this.render()}))}markToSync(e,t){if("text"===e)this.domConverter.mapViewToDom(t.parent)&&this.markedTexts.add(t);else{if(!this.domConverter.mapViewToDom(t))return;if("attributes"===e)this.markedAttributes.add(t);else{if("children"!==e)throw new fe("view-renderer-unknown-type",this);this.markedChildren.add(t)}}}render(){if(this.isComposing&&!Y.isAndroid)return;let e=null;const t=!(Y.isBlink&&!Y.isAndroid)||!this.isSelecting;for(const e of this.markedChildren)this._updateChildrenMappings(e);t?(this._inlineFiller&&!this._isSelectionInInlineFiller()&&this._removeInlineFiller(),this._inlineFiller?e=this._getInlineFillerPosition():this._needsInlineFillerAtSelection()&&(e=this.selection.getFirstPosition(),this.markedChildren.add(e.parent))):this._inlineFiller&&this._inlineFiller.parentNode&&(e=this.domConverter.domPositionToView(this._inlineFiller),e&&e.parent.is("$text")&&(e=Si._createBefore(e.parent)));for(const e of this.markedAttributes)this._updateAttrs(e);for(const t of this.markedChildren)this._updateChildren(t,{inlineFillerPosition:e});for(const t of this.markedTexts)!this.markedChildren.has(t.parent)&&this.domConverter.mapViewToDom(t.parent)&&this._updateText(t,{inlineFillerPosition:e});if(t)if(e){const t=this.domConverter.viewPositionToDom(e),o=t.parent.ownerDocument;bn(t.parent)?this._inlineFiller=t.parent:this._inlineFiller=vn(o,t.parent,t.offset)}else this._inlineFiller=null;this._updateFocus(),this._updateSelection(),this.domConverter._clearTemporaryCustomProperties(),this.markedTexts.clear(),this.markedAttributes.clear(),this.markedChildren.clear()}_updateChildrenMappings(e){const t=this.domConverter.mapViewToDom(e);if(!t)return;const o=Array.from(t.childNodes),i=Array.from(this.domConverter.viewChildrenToDom(e,{withChildren:!1})),n=this._diffNodeLists(o,i),s=this._findUpdateActions(n,o,i,Cn);if(-1!==s.indexOf("update")){const t={equal:0,insert:0,delete:0};for(const n of s)if("update"===n){const n=t.equal+t.insert,s=t.equal+t.delete,r=e.getChild(n);!r||r.is("uiElement")||r.is("rawElement")||this._updateElementMappings(r,o[s]),Pt(i[n]),t.equal++}else t[n]++}}_updateElementMappings(e,t){this.domConverter.unbindDomElement(t),this.domConverter.bindElements(t,e),this.markedChildren.add(e),this.markedAttributes.add(e)}_getInlineFillerPosition(){const e=this.selection.getFirstPosition();return e.parent.is("$text")?Si._createBefore(e.parent):e}_isSelectionInInlineFiller(){if(1!=this.selection.rangeCount||!this.selection.isCollapsed)return!1;const e=this.selection.getFirstPosition(),t=this.domConverter.viewPositionToDom(e);return!!(t&&at(t.parent)&&bn(t.parent))}_removeInlineFiller(){const e=this._inlineFiller;if(!bn(e))throw new fe("view-renderer-filler-was-lost",this);wn(e)?e.remove():e.data=e.data.substr(7),this._inlineFiller=null}_needsInlineFillerAtSelection(){if(1!=this.selection.rangeCount||!this.selection.isCollapsed)return!1;const e=this.selection.getFirstPosition(),t=e.parent,o=e.offset;if(!this.domConverter.mapViewToDom(t.root))return!1;if(!t.is("element"))return!1;if(!function(e){if("false"==e.getAttribute("contenteditable"))return!1;const t=e.findAncestor((e=>e.hasAttribute("contenteditable")));return!t||"true"==t.getAttribute("contenteditable")}(t))return!1;const i=e.nodeBefore,n=e.nodeAfter;return!(i instanceof si||n instanceof si)&&(!!(o!==t.getFillerOffset()||i&&i.is("element","br"))&&(!Y.isAndroid||!i&&!n))}_updateText(e,t){const o=this.domConverter.findCorrespondingDomText(e);let i=this.domConverter.viewToDom(e).data;const n=t.inlineFillerPosition;n&&n.parent==e.parent&&n.offset==e.index&&(i=fn+i),this._updateTextNode(o,i)}_updateAttrs(e){const t=this.domConverter.mapViewToDom(e);if(t){for(const o of Array.from(t.attributes)){const i=o.name;e.hasAttribute(i)||this.domConverter.removeDomElementAttribute(t,i)}for(const o of e.getAttributeKeys())this.domConverter.setDomElementAttribute(t,o,e.getAttribute(o),e)}}_updateChildren(e,t){const o=this.domConverter.mapViewToDom(e);if(!o)return;if(Y.isAndroid){let e=null;for(const t of Array.from(o.childNodes)){if(e&&at(e)&&at(t)){o.normalize();break}e=t}}const i=t.inlineFillerPosition,n=o.childNodes,s=Array.from(this.domConverter.viewChildrenToDom(e,{bind:!0}));i&&i.parent===e&&vn(o.ownerDocument,s,i.offset);const r=this._diffNodeLists(n,s),a=this._findUpdateActions(r,n,s,An);let l=0;const c=new Set;for(const e of a)"delete"===e?(c.add(n[l]),Pt(n[l])):"equal"!==e&&"update"!==e||l++;l=0;for(const e of a)"insert"===e?(kt(o,l,s[l]),l++):"update"===e?(this._updateTextNode(n[l],s[l].data),l++):"equal"===e&&(this._markDescendantTextToSync(this.domConverter.domToView(s[l])),l++);for(const e of c)e.parentNode||this.domConverter.unbindDomElement(e)}_diffNodeLists(e,t){return de(e=function(e,t){const o=Array.from(e);if(0==o.length||!t)return o;o[o.length-1]==t&&o.pop();return o}(e,this._fakeSelectionContainer),t,xn.bind(null,this.domConverter))}_findUpdateActions(e,t,o,i){if(-1===e.indexOf("insert")||-1===e.indexOf("delete"))return e;let n=[],s=[],r=[];const a={equal:0,insert:0,delete:0};for(const l of e)"insert"===l?r.push(o[a.equal+a.insert]):"delete"===l?s.push(t[a.equal+a.delete]):(n=n.concat(de(s,r,i).map((e=>"equal"===e?"update":e))),n.push("equal"),s=[],r=[]),a[l]++;return n.concat(de(s,r,i).map((e=>"equal"===e?"update":e)))}_updateTextNode(e,t){const o=e.data;o!=t&&(Y.isAndroid&&this.isComposing&&o.replace(/\u00A0/g," ")==t.replace(/\u00A0/g," ")||this._updateTextNodeInternal(e,t))}_updateTextNodeInternal(e,t){const o=ae(e.data,t);for(const t of o)"insert"===t.type?e.insertData(t.index,t.values.join("")):e.deleteData(t.index,t.howMany)}_markDescendantTextToSync(e){if(e)if(e.is("$text"))this.markedTexts.add(e);else if(e.is("element"))for(const t of e.getChildren())this._markDescendantTextToSync(t)}_updateSelection(){if(Y.isBlink&&!Y.isAndroid&&this.isSelecting&&!this.markedChildren.size)return;if(0===this.selection.rangeCount)return this._removeDomSelection(),void this._removeFakeSelection();const e=this.domConverter.mapViewToDom(this.selection.editableElement);this.isFocused&&e?this.selection.isFake?this._updateFakeSelection(e):this._fakeSelectionContainer&&this._fakeSelectionContainer.isConnected?(this._removeFakeSelection(),this._updateDomSelection(e)):this.isComposing&&Y.isAndroid||this._updateDomSelection(e):!this.selection.isFake&&this._fakeSelectionContainer&&this._fakeSelectionContainer.isConnected&&this._removeFakeSelection()}_updateFakeSelection(e){const t=e.ownerDocument;this._fakeSelectionContainer||(this._fakeSelectionContainer=function(e){const t=e.createElement("div");return t.className="ck-fake-selection-container",Object.assign(t.style,{position:"fixed",top:0,left:"-9999px",width:"42px"}),t.textContent=" ",t}(t));const o=this._fakeSelectionContainer;if(this.domConverter.bindFakeSelection(o,this.selection),!this._fakeSelectionNeedsUpdate(e))return;o.parentElement&&o.parentElement==e||e.appendChild(o),o.textContent=this.selection.fakeSelectionLabel||" ";const i=t.getSelection(),n=t.createRange();i.removeAllRanges(),n.selectNodeContents(o),i.addRange(n)}_updateDomSelection(e){const t=e.ownerDocument.defaultView.getSelection();if(!this._domSelectionNeedsUpdate(t))return;const o=this.domConverter.viewPositionToDom(this.selection.anchor),i=this.domConverter.viewPositionToDom(this.selection.focus);t.setBaseAndExtent(o.parent,o.offset,i.parent,i.offset),Y.isGecko&&function(e,t){let o=e.parent,i=e.offset;at(o)&&wn(o)&&(i=_t(o)+1,o=o.parentNode);if(o.nodeType!=Node.ELEMENT_NODE||i!=o.childNodes.length-1)return;const n=o.childNodes[i];n&&"BR"==n.tagName&&t.addRange(t.getRangeAt(0))}(i,t)}_domSelectionNeedsUpdate(e){if(!this.domConverter.isDomSelectionCorrect(e))return!0;const t=e&&this.domConverter.domSelectionToView(e);return(!t||!this.selection.isEqual(t))&&!(!this.selection.isCollapsed&&this.selection.isSimilar(t))}_fakeSelectionNeedsUpdate(e){const t=this._fakeSelectionContainer,o=e.ownerDocument.getSelection();return!t||t.parentElement!==e||(o.anchorNode!==t&&!t.contains(o.anchorNode)||t.textContent!==this.selection.fakeSelectionLabel)}_removeDomSelection(){for(const e of this.domDocuments){const t=e.getSelection();if(t.rangeCount){const o=e.activeElement,i=this.domConverter.mapDomToView(o);o&&i&&t.removeAllRanges()}}}_removeFakeSelection(){const e=this._fakeSelectionContainer;e&&e.remove()}_updateFocus(){if(this.isFocused){const e=this.selection.editableElement;e&&this.domConverter.focus(e)}}}function vn(e,t,o){const i=t instanceof Array?t:t.childNodes,n=i[o];if(at(n))return n.data=fn+n.data,n;{const n=e.createTextNode(fn);return Array.isArray(t)?i.splice(o,0,n):kt(t,o,n),n}}function Cn(e,t){return Qe(e)&&Qe(t)&&!at(e)&&!at(t)&&!vt(e)&&!vt(t)&&e.tagName.toLowerCase()===t.tagName.toLowerCase()}function An(e,t){return Qe(e)&&Qe(t)&&at(e)&&at(t)}function xn(e,t,o){return t===o||(at(t)&&at(o)?t.data===o.data:!(!e.isBlockFiller(t)||!e.isBlockFiller(o)))}const En=pn(J.document),Tn=mn(J.document),Pn=gn(J.document),Sn="data-ck-unsafe-attribute-",In="data-ck-unsafe-element";class Rn{document;renderingMode;blockFillerMode;preElements;blockElements;inlineObjectElements;unsafeElements;_domDocument;_domToViewMapping=new WeakMap;_viewToDomMapping=new WeakMap;_fakeSelectionMapping=new WeakMap;_rawContentElementMatcher=new ui;_inlineObjectElementMatcher=new ui;_elementsWithTemporaryCustomProperties=new Set;constructor(e,{blockFillerMode:t,renderingMode:o="editing"}={}){this.document=e,this.renderingMode=o,this.blockFillerMode=t||("editing"===o?"br":"nbsp"),this.preElements=["pre","textarea"],this.blockElements=["address","article","aside","blockquote","caption","center","dd","details","dir","div","dl","dt","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","legend","li","main","menu","nav","ol","p","pre","section","summary","table","tbody","td","tfoot","th","thead","tr","ul"],this.inlineObjectElements=["object","iframe","input","button","textarea","select","option","video","embed","audio","img","canvas"],this.unsafeElements=["script","style"],this._domDocument="editing"===this.renderingMode?J.document:J.document.implementation.createHTMLDocument("")}get domDocument(){return this._domDocument}bindFakeSelection(e,t){this._fakeSelectionMapping.set(e,new Oi(t))}fakeSelectionToView(e){return this._fakeSelectionMapping.get(e)}bindElements(e,t){this._domToViewMapping.set(e,t),this._viewToDomMapping.set(t,e)}unbindDomElement(e){const t=this._domToViewMapping.get(e);if(t){this._domToViewMapping.delete(e),this._viewToDomMapping.delete(t);for(const t of e.children)this.unbindDomElement(t)}}bindDocumentFragments(e,t){this._domToViewMapping.set(e,t),this._viewToDomMapping.set(t,e)}shouldRenderAttribute(e,t,o){return"data"===this.renderingMode||!(e=e.toLowerCase()).startsWith("on")&&("srcdoc"!==e&&("img"===o&&("src"===e||"srcset"===e)||("source"===o&&"srcset"===e||!t.replace(/\s+/g,"").match(/^(javascript:|data:(image\/svg|text\/x?html))/i))))}setContentOf(e,t){if("data"===this.renderingMode)return void(e.innerHTML=t);const o=(new DOMParser).parseFromString(t,"text/html"),i=o.createDocumentFragment(),n=o.body.childNodes;for(;n.length>0;)i.appendChild(n[0]);const s=o.createTreeWalker(i,NodeFilter.SHOW_ELEMENT),r=[];let a;for(;a=s.nextNode();)r.push(a);for(const e of r){for(const t of e.getAttributeNames())this.setDomElementAttribute(e,t,e.getAttribute(t));const t=e.tagName.toLowerCase();this._shouldRenameElement(t)&&(Bn(t),e.replaceWith(this._createReplacementDomElement(t,e)))}for(;e.firstChild;)e.firstChild.remove();e.append(i)}viewToDom(e,t={}){if(e.is("$text")){const t=this._processDataFromViewText(e);return this._domDocument.createTextNode(t)}{const o=e;if(this.mapViewToDom(o)){if(!o.getCustomProperty("editingPipeline:doNotReuseOnce"))return this.mapViewToDom(o);this._elementsWithTemporaryCustomProperties.add(o)}let i;if(o.is("documentFragment"))i=this._domDocument.createDocumentFragment(),t.bind&&this.bindDocumentFragments(i,o);else{if(o.is("uiElement"))return i="$comment"===o.name?this._domDocument.createComment(o.getCustomProperty("$rawContent")):o.render(this._domDocument,this),t.bind&&this.bindElements(i,o),i;this._shouldRenameElement(o.name)?(Bn(o.name),i=this._createReplacementDomElement(o.name)):i=o.hasAttribute("xmlns")?this._domDocument.createElementNS(o.getAttribute("xmlns"),o.name):this._domDocument.createElement(o.name),o.is("rawElement")&&o.render(i,this),t.bind&&this.bindElements(i,o);for(const e of o.getAttributeKeys())this.setDomElementAttribute(i,e,o.getAttribute(e),o)}if(!1!==t.withChildren)for(const e of this.viewChildrenToDom(o,t))i instanceof HTMLTemplateElement?i.content.appendChild(e):i.appendChild(e);return i}}setDomElementAttribute(e,t,o,i){const n=this.shouldRenderAttribute(t,o,e.tagName.toLowerCase())||i&&i.shouldRenderUnsafeAttribute(t);n||be("domconverter-unsafe-attribute-detected",{domElement:e,key:t,value:o}),function(e){try{J.document.createAttribute(e)}catch{return!1}return!0}(t)?(e.hasAttribute(t)&&!n?e.removeAttribute(t):e.hasAttribute(Sn+t)&&n&&e.removeAttribute(Sn+t),e.setAttribute(n?t:Sn+t,o)):be("domconverter-invalid-attribute-detected",{domElement:e,key:t,value:o})}removeDomElementAttribute(e,t){t!=In&&(e.removeAttribute(t),e.removeAttribute(Sn+t))}*viewChildrenToDom(e,t={}){const o=e.getFillerOffset&&e.getFillerOffset();let i=0;for(const n of e.getChildren()){o===i&&(yield this._getBlockFiller());const e=n.is("element")&&!!n.getCustomProperty("dataPipeline:transparentRendering")&&!to(n.getAttributes());if(e&&"data"==this.renderingMode)if(n.is("rawElement")){const e=this._domDocument.createElement(n.name);n.render(e,this),yield*[...e.childNodes]}else yield*this.viewChildrenToDom(n,t);else e&&be("domconverter-transparent-rendering-unsupported-in-editing-pipeline",{viewElement:n}),yield this.viewToDom(n,t);i++}o===i&&(yield this._getBlockFiller())}viewRangeToDom(e){const t=this.viewPositionToDom(e.start),o=this.viewPositionToDom(e.end),i=this._domDocument.createRange();return i.setStart(t.parent,t.offset),i.setEnd(o.parent,o.offset),i}viewPositionToDom(e){const t=e.parent;if(t.is("$text")){const o=this.findCorrespondingDomText(t);if(!o)return null;let i=e.offset;return bn(o)&&(i+=7),o.data&&i>o.data.length&&(i=o.data.length),{parent:o,offset:i}}{let o,i,n;if(0===e.offset){if(o=this.mapViewToDom(t),!o)return null;n=o.childNodes[0]}else{const t=e.nodeBefore;if(i=t.is("$text")?this.findCorrespondingDomText(t):this.mapViewToDom(t),!i)return null;o=i.parentNode,n=i.nextSibling}if(at(n)&&bn(n))return{parent:n,offset:7};return{parent:o,offset:i?_t(i)+1:0}}}domToView(e,t={}){const o=[],i=this._domToView(e,t,o),n=i.next().value;return n?(i.next(),this._processDomInlineNodes(null,o,t),"br"==this.blockFillerMode&&Mn(n)||n.is("$text")&&0==n.data.length?null:n):null}*domChildrenToView(e,t={},o=[]){let i=[];i=e instanceof HTMLTemplateElement?[...e.content.childNodes]:[...e.childNodes];for(let n=0;n{const{scrollLeft:t,scrollTop:o}=e;n.push([t,o])})),t.focus({preventScroll:!0}),On(t,(e=>{const[t,o]=n.shift();e.scrollLeft=t,e.scrollTop=o})),J.window.scrollTo(o,i)}_clearDomSelection(){const e=this.mapViewToDom(this.document.selection.editableElement);if(!e)return;const t=e.ownerDocument.defaultView.getSelection(),o=this.domSelectionToView(t);o&&o.rangeCount>0&&t.removeAllRanges()}isElement(e){return e&&e.nodeType==Node.ELEMENT_NODE}isDocumentFragment(e){return e&&e.nodeType==Node.DOCUMENT_FRAGMENT_NODE}isBlockFiller(e){return"br"==this.blockFillerMode?e.isEqualNode(En):!!Nn(e,this.blockElements)||(e.isEqualNode(Pn)||function(e,t){const o=e.isEqualNode(Tn);return o&&Vn(e,t)&&1===e.parentNode.childNodes.length}(e,this.blockElements))}isDomSelectionBackward(e){if(e.isCollapsed)return!1;const t=this._domDocument.createRange();try{t.setStart(e.anchorNode,e.anchorOffset),t.setEnd(e.focusNode,e.focusOffset)}catch{return!1}const o=t.collapsed;return t.detach(),o}getHostViewElement(e){const t=it(e);for(t.pop();t.length;){const e=t.pop(),o=this._domToViewMapping.get(e);if(o&&(o.is("uiElement")||o.is("rawElement")))return o}return null}isDomSelectionCorrect(e){return this._isDomSelectionPositionCorrect(e.anchorNode,e.anchorOffset)&&this._isDomSelectionPositionCorrect(e.focusNode,e.focusOffset)}registerRawContentMatcher(e){this._rawContentElementMatcher.add(e)}registerInlineObjectMatcher(e){this._inlineObjectElementMatcher.add(e)}_clearTemporaryCustomProperties(){for(const e of this._elementsWithTemporaryCustomProperties)e._removeCustomProperty("editingPipeline:doNotReuseOnce");this._elementsWithTemporaryCustomProperties.clear()}_getBlockFiller(){switch(this.blockFillerMode){case"nbsp":return mn(this._domDocument);case"markedNbsp":return gn(this._domDocument);case"br":return pn(this._domDocument)}}_isDomSelectionPositionCorrect(e,t){if(at(e)&&bn(e)&&t<7)return!1;if(this.isElement(e)&&bn(e.childNodes[t]))return!1;const o=this.mapDomToView(e);return!o||!o.is("uiElement")&&!o.is("rawElement")}*_domToView(e,t,o){if("br"!=this.blockFillerMode&&Nn(e,this.blockElements))return null;const i=this.getHostViewElement(e);if(i)return i;if(vt(e)&&t.skipComments)return null;if(at(e)){if(wn(e))return null;{const t=e.data;if(""===t)return null;const i=new si(this.document,t);return o.push(i),i}}{let i=this.mapDomToView(e);if(i)return this._isInlineObjectElement(i)&&o.push(i),i;if(this.isDocumentFragment(e))i=new tn(this.document),t.bind&&this.bindDocumentFragments(e,i);else{i=this._createViewElement(e,t),t.bind&&this.bindElements(e,i);const n=e.attributes;if(n)for(let e=n.length,t=0;t0?t[e-1]:null,l=e+1e.is("element")&&t.includes(e.name)))}(e,this.preElements))return!0;for(const t of e.getAncestors({parentFirst:!0}))if(t.is("element")&&t.hasStyle("white-space")&&"inherit"!==t.getStyle("white-space"))return["pre","pre-wrap","break-spaces"].includes(t.getStyle("white-space"));return!1}_getTouchingInlineViewNode(e,t){const o=new Pi({startPosition:t?Si._createAfter(e):Si._createBefore(e),direction:t?"forward":"backward"});for(const{item:e}of o){if(e.is("$textProxy"))return e;if(!e.is("element")||!e.getCustomProperty("dataPipeline:transparentRendering")){if(e.is("element","br"))return null;if(this._isInlineObjectElement(e))return e;if(e.is("containerElement")||this._isBlockViewElement(e))return null}}return null}_isBlockDomElement(e){return this.isElement(e)&&this.blockElements.includes(e.tagName.toLowerCase())}_isBlockViewElement(e){return e.is("element")&&this.blockElements.includes(e.name)}_isInlineObjectElement(e){return!!e.is("element")&&("br"==e.name||this.inlineObjectElements.includes(e.name)||!!this._inlineObjectElementMatcher.match(e))}_createViewElement(e,t){if(vt(e))return new Zi(this.document,"$comment");const o=t.keepOriginalCase?e.tagName:e.tagName.toLowerCase();return new _i(this.document,o)}_isViewElementWithRawContent(e,t){return!1!==t.withChildren&&e.is("element")&&!!this._rawContentElementMatcher.match(e)}_shouldRenameElement(e){const t=e.toLowerCase();return"editing"===this.renderingMode&&this.unsafeElements.includes(t)}_createReplacementDomElement(e,t){const o=this._domDocument.createElement("span");if(o.setAttribute(In,e),t){for(;t.firstChild;)o.appendChild(t.firstChild);for(const e of t.getAttributeNames())o.setAttribute(e,t.getAttribute(e))}return o}}function On(e,t){let o=e;for(;o;)t(o),o=o.parentElement}function Vn(e,t){const o=e.parentNode;return!!o&&!!o.tagName&&t.includes(o.tagName.toLowerCase())}function Dn(e,t,o){return" "==t&&e&&e.is("element")&&1==e.childCount&&o.includes(e.name)}function Fn(e,t){return" "==t&&e&&e.is("element","span")&&1==e.childCount&&e.hasAttribute("data-cke-filler")}function Mn(e){return e.is("element","br")&&e.hasAttribute("data-cke-filler")}function Nn(e,t){return"BR"===e.tagName&&Vn(e,t)&&1===e.parentNode.childNodes.length}function Bn(e){"script"===e&&be("domconverter-unsafe-script-element-detected"),"style"===e&&be("domconverter-unsafe-style-element-detected")}class Ln extends(et()){view;document;_isEnabled=!1;constructor(e){super(),this.view=e,this.document=e.document}get isEnabled(){return this._isEnabled}enable(){this._isEnabled=!0}disable(){this._isEnabled=!1}destroy(){this.disable(),this.stopListening()}checkShouldIgnoreEventFromTarget(e){return e&&3===e.nodeType&&(e=e.parentNode),!(!e||1!==e.nodeType)&&e.matches("[data-cke-ignore-events], [data-cke-ignore-events] *")}}class zn{view;document;domEvent;domTarget;constructor(e,t,o){this.view=e,this.document=e.document,this.domEvent=t,this.domTarget=t.target,No(this,o)}get target(){return this.view.domConverter.mapDomToView(this.domTarget)}preventDefault(){this.domEvent.preventDefault()}stopPropagation(){this.domEvent.stopPropagation()}}class jn extends Ln{useCapture=!1;usePassive=!1;observe(e){("string"==typeof this.domEventType?[this.domEventType]:this.domEventType).forEach((t=>{this.listenTo(e,t,((e,t)=>{this.isEnabled&&!this.checkShouldIgnoreEventFromTarget(t.target)&&this.onDomEvent(t)}),{useCapture:this.useCapture,usePassive:this.usePassive})}))}stopObserving(e){this.stopListening(e)}fire(e,t,o){this.isEnabled&&this.document.fire(e,new zn(this.view,t,o))}}class qn extends jn{domEventType=["keydown","keyup"];onDomEvent(e){const t={keyCode:e.keyCode,altKey:e.altKey,ctrlKey:e.ctrlKey,shiftKey:e.shiftKey,metaKey:e.metaKey,get keystroke(){return Ht(this)}};this.fire(e.type,e,t)}}class $n extends Ln{_fireSelectionChangeDoneDebounced;constructor(e){super(e),this._fireSelectionChangeDoneDebounced=zo((e=>{this.document.fire("selectionChangeDone",e)}),200)}observe(){const e=this.document;e.on("arrowKey",((t,o)=>{e.selection.isFake&&this.isEnabled&&o.preventDefault()}),{context:"$capture"}),e.on("arrowKey",((t,o)=>{e.selection.isFake&&this.isEnabled&&this._handleSelectionMove(o.keyCode)}),{priority:"lowest"})}stopObserving(){}destroy(){super.destroy(),this._fireSelectionChangeDoneDebounced.cancel()}_handleSelectionMove(e){const t=this.document.selection,o=new Oi(t.getRanges(),{backward:t.isBackward,fake:!1});e!=qt.arrowleft&&e!=qt.arrowup||o.setTo(o.getFirstPosition()),e!=qt.arrowright&&e!=qt.arrowdown||o.setTo(o.getLastPosition());const i={oldSelection:t,newSelection:o,domSelection:null};this.document.fire("selectionChange",i),this._fireSelectionChangeDoneDebounced(i)}}class Hn extends Ln{domConverter;_config;_domElements;_mutationObserver;constructor(e){super(e),this._config={childList:!0,characterData:!0,subtree:!0},this.domConverter=e.domConverter,this._domElements=new Set,this._mutationObserver=new window.MutationObserver(this._onMutations.bind(this))}flush(){this._onMutations(this._mutationObserver.takeRecords())}observe(e){this._domElements.add(e),this.isEnabled&&this._mutationObserver.observe(e,this._config)}stopObserving(e){if(this._domElements.delete(e),this.isEnabled){this._mutationObserver.disconnect();for(const e of this._domElements)this._mutationObserver.observe(e,this._config)}}enable(){super.enable();for(const e of this._domElements)this._mutationObserver.observe(e,this._config)}disable(){super.disable(),this._mutationObserver.disconnect()}destroy(){super.destroy(),this._mutationObserver.disconnect()}_onMutations(e){if(0===e.length)return;const t=this.domConverter,o=new Set,i=new Set;for(const o of e){const e=t.mapDomToView(o.target);e&&(e.is("uiElement")||e.is("rawElement")||"childList"!==o.type||this._isBogusBrMutation(o)||i.add(e))}for(const n of e){const e=t.mapDomToView(n.target);if((!e||!e.is("uiElement")&&!e.is("rawElement"))&&"characterData"===n.type){const e=t.findCorrespondingViewText(n.target);e&&!i.has(e.parent)?o.add(e):!e&&bn(n.target)&&i.add(t.mapDomToView(n.target.parentNode))}}const n=[];for(const e of o)n.push({type:"text",node:e});for(const e of i){const o=t.mapViewToDom(e);Uo(Array.from(e.getChildren()),Array.from(t.domChildrenToView(o,{withChildren:!1})),Wn)||n.push({type:"children",node:e})}n.length&&this.document.fire("mutations",{mutations:n})}_isBogusBrMutation(e){let t=null;return null===e.nextSibling&&0===e.removedNodes.length&&1==e.addedNodes.length&&(t=this.domConverter.domToView(e.addedNodes[0],{withChildren:!1})),t&&t.is("element","br")}}function Wn(e,t){if(!Array.isArray(e))return e===t||!(!e.is("$text")||!t.is("$text"))&&e.data===t.data}class Un extends jn{_renderTimeoutId=null;_isFocusChanging=!1;domEventType=["focus","blur"];constructor(e){super(e),this.useCapture=!0;const t=this.document;t.on("focus",(()=>this._handleFocus())),t.on("blur",((e,t)=>this._handleBlur(t))),t.on("beforeinput",(()=>{t.isFocused||this._handleFocus()}),{priority:"highest"})}flush(){this._isFocusChanging&&(this._isFocusChanging=!1,this.document.isFocused=!0)}onDomEvent(e){this.fire(e.type,e)}destroy(){this._clearTimeout(),super.destroy()}_handleFocus(){this._clearTimeout(),this._isFocusChanging=!0,this._renderTimeoutId=setTimeout((()=>{this._renderTimeoutId=null,this.flush(),this.view.change((()=>{}))}),50)}_handleBlur(e){const t=this.document.selection.editableElement;null!==t&&t!==e.target||(this.document.isFocused=!1,this._isFocusChanging=!1,this.view.change((()=>{})))}_clearTimeout(){this._renderTimeoutId&&(clearTimeout(this._renderTimeoutId),this._renderTimeoutId=null)}}class Kn extends Ln{mutationObserver;focusObserver;selection;domConverter;_documents=new WeakSet;_fireSelectionChangeDoneDebounced;_clearInfiniteLoopInterval;_documentIsSelectingInactivityTimeoutDebounced;_loopbackCounter=0;_pendingSelectionChange=new Set;constructor(e){super(e),this.mutationObserver=e.getObserver(Hn),this.focusObserver=e.getObserver(Un),this.selection=this.document.selection,this.domConverter=e.domConverter,this._fireSelectionChangeDoneDebounced=zo((e=>{this.document.fire("selectionChangeDone",e)}),200),this._clearInfiniteLoopInterval=setInterval((()=>this._clearInfiniteLoop()),1e3),this._documentIsSelectingInactivityTimeoutDebounced=zo((()=>this.document.isSelecting=!1),5e3),this.view.document.on("change:isFocused",((e,t,o)=>{if(o&&this._pendingSelectionChange.size){for(const e of Array.from(this._pendingSelectionChange))this._handleSelectionChange(e);this._pendingSelectionChange.clear()}}))}observe(e){const t=e.ownerDocument,o=()=>{this.document.isSelecting&&(this._handleSelectionChange(t),this.document.isSelecting=!1,this._documentIsSelectingInactivityTimeoutDebounced.cancel())};this.listenTo(e,"selectstart",(()=>{this.document.isSelecting=!0,this._documentIsSelectingInactivityTimeoutDebounced()}),{priority:"highest"}),this.listenTo(e,"keydown",o,{priority:"highest",useCapture:!0}),this.listenTo(e,"keyup",o,{priority:"highest",useCapture:!0}),this._documents.has(t)||(this.listenTo(t,"mouseup",o,{priority:"highest",useCapture:!0}),this.listenTo(t,"selectionchange",(()=>{this.document.isComposing&&!Y.isAndroid||(this._handleSelectionChange(t),this._documentIsSelectingInactivityTimeoutDebounced())})),this.listenTo(this.view.document,"compositionstart",(()=>{this._handleSelectionChange(t)}),{priority:"lowest"}),this._documents.add(t))}stopObserving(e){this.stopListening(e)}destroy(){super.destroy(),clearInterval(this._clearInfiniteLoopInterval),this._fireSelectionChangeDoneDebounced.cancel(),this._documentIsSelectingInactivityTimeoutDebounced.cancel()}_reportInfiniteLoop(){}_handleSelectionChange(e){if(!this.isEnabled)return;const t=e.defaultView.getSelection();if(this.checkShouldIgnoreEventFromTarget(t.anchorNode))return;this.mutationObserver.flush();const o=this.domConverter.domSelectionToView(t);if(0!=o.rangeCount)if(this.view.hasDomSelection=!0,this.focusObserver.flush(),this.view.document.isFocused||this.view.document.isReadOnly){if(this._pendingSelectionChange.delete(e),!this.selection.isEqual(o)||!this.domConverter.isDomSelectionCorrect(t))if(++this._loopbackCounter>60)this._reportInfiniteLoop();else if(function(e){return Array.from(e.getRanges()).flatMap((e=>[e.start.root,e.end.root])).every((e=>e&&e.is("rootElement")))}(o))if(this.selection.isSimilar(o))this.view.forceRender();else{const e={oldSelection:this.selection,newSelection:o,domSelection:t};this.document.fire("selectionChange",e),this._fireSelectionChangeDoneDebounced(e)}else this.view.forceRender()}else this._pendingSelectionChange.add(e);else this.view.hasDomSelection=!1}_clearInfiniteLoop(){this._loopbackCounter=0}}class Gn extends jn{domEventType=["compositionstart","compositionupdate","compositionend"];constructor(e){super(e);const t=this.document;t.on("compositionstart",(()=>{t.isComposing=!0})),t.on("compositionend",(()=>{t.isComposing=!1}))}onDomEvent(e){this.fire(e.type,e,{data:e.data})}}class Jn{_files;_native;constructor(e,t={}){this._files=t.cacheFiles?Zn(e):null,this._native=e}get files(){return this._files||(this._files=Zn(this._native)),this._files}get types(){return this._native.types}getData(e){return this._native.getData(e)}setData(e,t){this._native.setData(e,t)}set effectAllowed(e){this._native.effectAllowed=e}get effectAllowed(){return this._native.effectAllowed}set dropEffect(e){this._native.dropEffect=e}get dropEffect(){return this._native.dropEffect}setDragImage(e,t,o){this._native.setDragImage(e,t,o)}get isCanceled(){return"none"==this._native.dropEffect||!!this._native.mozUserCancelled}}function Zn(e){const t=Array.from(e.files||[]),o=Array.from(e.items||[]);return t.length?t:o.filter((e=>"file"===e.kind)).map((e=>e.getAsFile()))}class Qn extends jn{domEventType="beforeinput";onDomEvent(e){const t=e.getTargetRanges(),o=this.view,i=o.document;let n=null,s=null,r=[];if(e.dataTransfer&&(n=new Jn(e.dataTransfer)),null!==e.data?s=e.data:n&&(s=n.getData("text/plain")),i.selection.isFake)r=Array.from(i.selection.getRanges()),e.preventDefault();else if(t.length)r=t.map((t=>{let i=o.domConverter.domPositionToView(t.startContainer,t.startOffset);const n=o.domConverter.domPositionToView(t.endContainer,t.endOffset);if(i&&bn(t.startContainer)&&t.startOffset<7){e.preventDefault();let o=7-t.startOffset;i=i.getLastMatchingPosition((e=>!(!e.item.is("attributeElement")&&!e.item.is("uiElement"))||!(!e.item.is("$textProxy")||!o--)),{direction:"backward",singleCharacters:!0})}return function(e,t){for(;e.parentNode;){if(at(e)){if(t!=e.data.length)return!1}else if(t!=e.childNodes.length)return!1;if((t=_t(e)+1)<(e=e.parentNode).childNodes.length&&bn(e.childNodes[t]))return!0}return!1}(t.endContainer,t.endOffset)&&e.preventDefault(),i?o.createRange(i,n):n?o.createRange(n):void 0})).filter((e=>!!e));else if(Y.isAndroid){const t=e.target.ownerDocument.defaultView.getSelection();r=Array.from(o.domConverter.domSelectionToView(t).getRanges())}if(Y.isAndroid&&"insertCompositionText"==e.inputType&&s&&s.endsWith("\n"))this.fire(e.type,e,{inputType:"insertParagraph",targetRanges:[o.createRange(r[0].end)]});else if(["insertText","insertReplacementText"].includes(e.inputType)&&s&&s.includes("\n")){const t=s.split(/\n{1,2}/g);let o=r;e.preventDefault();for(let s=0;s{if(this.isEnabled&&((o=t.keyCode)==qt.arrowright||o==qt.arrowleft||o==qt.arrowup||o==qt.arrowdown)){const o=new Di(this.document,"arrowKey",this.document.selection.getFirstRange());this.document.fire(o,t),o.stop.called&&e.stop()}var o}))}observe(){}stopObserving(){}}class Xn extends Ln{constructor(e){super(e);const t=this.document;t.on("keydown",((e,o)=>{if(!this.isEnabled||o.keyCode!=qt.tab||o.ctrlKey)return;const i=new Di(t,"tab",t.selection.getFirstRange());t.fire(i,o),i.stop.called&&e.stop()}))}observe(){}stopObserving(){}}class es extends(Be()){document;domConverter;domRoots=new Map;_renderer;_initialDomRootAttributes=new WeakMap;_observers=new Map;_writer;_ongoingChange=!1;_postFixersInProgress=!1;_renderingDisabled=!1;_hasChangedSinceTheLastRendering=!1;constructor(e){super(),this.document=new Hi(e),this.domConverter=new Rn(this.document),this.set("isRenderingInProgress",!1),this.set("hasDomSelection",!1),this._renderer=new kn(this.domConverter,this.document.selection),this._renderer.bind("isFocused","isSelecting","isComposing").to(this.document,"isFocused","isSelecting","isComposing"),this._writer=new on(this.document),this.addObserver(Hn),this.addObserver(Un),this.addObserver(Kn),this.addObserver(qn),this.addObserver($n),this.addObserver(Gn),this.addObserver(Yn),this.addObserver(Qn),this.addObserver(Xn),this.document.on("arrowKey",_n,{priority:"low"}),Qi(this),this.on("render",(()=>{this._render(),this.document.fire("layoutChanged"),this._hasChangedSinceTheLastRendering=!1})),this.listenTo(this.document.selection,"change",(()=>{this._hasChangedSinceTheLastRendering=!0})),this.listenTo(this.document,"change:isFocused",(()=>{this._hasChangedSinceTheLastRendering=!0})),Y.isiOS&&this.listenTo(this.document,"blur",((e,t)=>{this.domConverter.mapDomToView(t.domEvent.relatedTarget)||this.domConverter._clearDomSelection()})),this.listenTo(this.document,"mutations",((e,{mutations:t})=>{t.forEach((e=>this._renderer.markToSync(e.type,e.node)))}),{priority:"low"}),this.listenTo(this.document,"mutations",(()=>{this.forceRender()}),{priority:"lowest"})}attachDomRoot(e,t="main"){const o=this.document.getRoot(t);o._name=e.tagName.toLowerCase();const i={};for(const{name:t,value:n}of Array.from(e.attributes))i[t]=n,"class"===t?this._writer.addClass(n.split(" "),o):o.hasAttribute(t)||this._writer.setAttribute(t,n,o);this._initialDomRootAttributes.set(e,i);const n=()=>{this._writer.setAttribute("contenteditable",(!o.isReadOnly).toString(),o),o.isReadOnly?this._writer.addClass("ck-read-only",o):this._writer.removeClass("ck-read-only",o)};n(),this.domRoots.set(t,e),this.domConverter.bindElements(e,o),this._renderer.markToSync("children",o),this._renderer.markToSync("attributes",o),this._renderer.domDocuments.add(e.ownerDocument),o.on("change:children",((e,t)=>this._renderer.markToSync("children",t))),o.on("change:attributes",((e,t)=>this._renderer.markToSync("attributes",t))),o.on("change:text",((e,t)=>this._renderer.markToSync("text",t))),o.on("change:isReadOnly",(()=>this.change(n))),o.on("change",(()=>{this._hasChangedSinceTheLastRendering=!0}));for(const o of this._observers.values())o.observe(e,t)}detachDomRoot(e){const t=this.domRoots.get(e);Array.from(t.attributes).forEach((({name:e})=>t.removeAttribute(e)));const o=this._initialDomRootAttributes.get(t);for(const e in o)t.setAttribute(e,o[e]);this.domRoots.delete(e),this.domConverter.unbindDomElement(t);for(const e of this._observers.values())e.stopObserving(t)}getDomRoot(e="main"){return this.domRoots.get(e)}addObserver(e){let t=this._observers.get(e);if(t)return t;t=new e(this),this._observers.set(e,t);for(const[e,o]of this.domRoots)t.observe(o,e);return t.enable(),t}getObserver(e){return this._observers.get(e)}disableObservers(){for(const e of this._observers.values())e.disable()}enableObservers(){for(const e of this._observers.values())e.enable()}scrollToTheSelection({alignToTop:e,forceScroll:t,viewportOffset:o=20,ancestorOffset:i=20}={}){const n=this.document.selection.getFirstRange();if(!n)return;const s=j({alignToTop:e,forceScroll:t,viewportOffset:o,ancestorOffset:i});"number"==typeof o&&(o={top:o,bottom:o,left:o,right:o});const r={target:this.domConverter.viewRangeToDom(n),viewportOffset:o,ancestorOffset:i,alignToTop:e,forceScroll:t};this.fire("scrollToTheSelection",r,s),function({target:e,viewportOffset:t=0,ancestorOffset:o=0,alignToTop:i,forceScroll:n}){const s=Mt(e);let r=s,a=null;for(t=function(e){return"number"==typeof e?{top:e,bottom:e,left:e,right:e}:e}(t);r;){let l;l=Nt(r==s?e:a),Rt({parent:l,getRect:()=>Bt(e,r),alignToTop:i,ancestorOffset:o,forceScroll:n});let c=Bt(e,r);const d=Bt(l,r);if(c.height>d.height){const e=c.getIntersection(d);e&&(c=e)}if(It({window:r,rect:c,viewportOffset:t,alignToTop:i,forceScroll:n}),r.parent!=r){if(a=r.frameElement,r=r.parent,!a)return}else r=null}}(r)}focus(){if(!this.document.isFocused){const e=this.document.selection.editableElement;e&&(this.domConverter.focus(e),this.forceRender())}}change(e){if(this.isRenderingInProgress||this._postFixersInProgress)throw new fe("cannot-change-view-tree",this);try{if(this._ongoingChange)return e(this._writer);this._ongoingChange=!0;const t=e(this._writer);return this._ongoingChange=!1,!this._renderingDisabled&&this._hasChangedSinceTheLastRendering&&(this._postFixersInProgress=!0,this.document._callPostFixers(this._writer),this._postFixersInProgress=!1,this.fire("render")),t}catch(e){fe.rethrowUnexpectedError(e,this)}}forceRender(){this._hasChangedSinceTheLastRendering=!0,this.getObserver(Un).flush(),this.change((()=>{}))}destroy(){for(const e of this._observers.values())e.destroy();this.document.destroy(),this.stopListening()}createPositionAt(e,t){return Si._createAt(e,t)}createPositionAfter(e){return Si._createAfter(e)}createPositionBefore(e){return Si._createBefore(e)}createRange(e,t){return new Ii(e,t)}createRangeOn(e){return Ii._createOn(e)}createRangeIn(e){return Ii._createIn(e)}createSelection(...e){return new Oi(...e)}_disableRendering(e){this._renderingDisabled=e,0==e&&this.change((()=>{}))}_render(){this.isRenderingInProgress=!0,this.disableObservers(),this._renderer.render(),this.enableObservers(),this.isRenderingInProgress=!1}}class ts{is(){throw new Error("is() method is abstract")}}class os extends ts{textNode;data;offsetInText;constructor(e,t,o){if(super(),this.textNode=e,t<0||t>e.offsetSize)throw new fe("model-textproxy-wrong-offsetintext",this);if(o<0||t+o>e.offsetSize)throw new fe("model-textproxy-wrong-length",this);this.data=e.data.substring(t,t+o),this.offsetInText=t}get startOffset(){return null!==this.textNode.startOffset?this.textNode.startOffset+this.offsetInText:null}get offsetSize(){return this.data.length}get endOffset(){return null!==this.startOffset?this.startOffset+this.offsetSize:null}get isPartial(){return this.offsetSize!==this.textNode.offsetSize}get parent(){return this.textNode.parent}get root(){return this.textNode.root}getPath(){const e=this.textNode.getPath();return e.length>0&&(e[e.length-1]+=this.offsetInText),e}getAncestors(e={}){const t=[];let o=e.includeSelf?this:this.parent;for(;o;)t[e.parentFirst?"push":"unshift"](o),o=o.parent;return t}hasAttribute(e){return this.textNode.hasAttribute(e)}getAttribute(e){return this.textNode.getAttribute(e)}getAttributes(){return this.textNode.getAttributes()}getAttributeKeys(){return this.textNode.getAttributeKeys()}}os.prototype.is=function(e){return"$textProxy"===e||"model:$textProxy"===e||"textProxy"===e||"model:textProxy"===e};class is{direction;boundaries;singleCharacters;shallow;ignoreElementEnd;_position;_boundaryStartParent;_boundaryEndParent;_visitedParent;constructor(e){if(!e||!e.boundaries&&!e.startPosition)throw new fe("model-tree-walker-no-start-position",null);const t=e.direction||"forward";if("forward"!=t&&"backward"!=t)throw new fe("model-tree-walker-unknown-direction",e,{direction:t});this.direction=t,this.boundaries=e.boundaries||null,e.startPosition?this._position=e.startPosition.clone():this._position=ss._createAt(this.boundaries["backward"==this.direction?"end":"start"]),this.position.stickiness="toNone",this.singleCharacters=!!e.singleCharacters,this.shallow=!!e.shallow,this.ignoreElementEnd=!!e.ignoreElementEnd,this._boundaryStartParent=this.boundaries?this.boundaries.start.parent:null,this._boundaryEndParent=this.boundaries?this.boundaries.end.parent:null,this._visitedParent=this.position.parent}[Symbol.iterator](){return this}get position(){return this._position}skip(e){let t,o,i,n;do{i=this.position,n=this._visitedParent,({done:t,value:o}=this.next())}while(!t&&e(o));t||(this._position=i,this._visitedParent=n)}jumpTo(e){this._boundaryStartParent&&e.isBefore(this.boundaries.start)?e=this.boundaries.start:this._boundaryEndParent&&e.isAfter(this.boundaries.end)&&(e=this.boundaries.end),this._position=e.clone(),this._visitedParent=e.parent}next(){return"forward"==this.direction?this._next():this._previous()}_next(){const e=this.position,t=this.position.clone(),o=this._visitedParent;if(null===o.parent&&t.offset===o.maxOffset)return{done:!0,value:void 0};if(o===this._boundaryEndParent&&t.offset==this.boundaries.end.offset)return{done:!0,value:void 0};const i=rs(t,o),n=i||as(t,o,i);if(n&&n.is("model:element")){if(this.shallow){if(this.boundaries&&this.boundaries.end.isBefore(t))return{done:!0,value:void 0};t.offset++}else t.path.push(0),this._visitedParent=n;return this._position=t,ns("elementStart",n,e,t,1)}if(n&&n.is("model:$text")){let i;if(this.singleCharacters)i=1;else{let e=n.endOffset;this._boundaryEndParent==o&&this.boundaries.end.offsete&&(e=this.boundaries.start.offset),i=t.offset-e}const n=t.offset-s.startOffset,r=new os(s,n-i,i);return t.offset-=i,this._position=t,ns("text",r,e,t,i)}return t.path.pop(),this._position=t,this._visitedParent=o.parent,ns("elementStart",o,e,t,1)}}function ns(e,t,o,i,n){return{done:!1,value:{type:e,item:t,previousPosition:o,nextPosition:i,length:n}}}class ss extends ts{root;path;stickiness;constructor(e,t,o="toNone"){if(super(),!e.is("element")&&!e.is("documentFragment"))throw new fe("model-position-root-invalid",e);if(!Array.isArray(t)||0===t.length)throw new fe("model-position-path-incorrect-format",e,{path:t});e.is("rootElement")?t=t.slice():(t=[...e.getPath(),...t],e=e.root),this.root=e,this.path=t,this.stickiness=o}get offset(){return this.path[this.path.length-1]}set offset(e){this.path[this.path.length-1]=e}get parent(){let e=this.root;for(let t=0;t1)return!1;if(1===t)return cs(e,this,o);if(-1===t)return cs(this,e,o)}return this.path.length===e.path.length||(this.path.length>e.path.length?ds(this.path,t):ds(e.path,t))}hasSameParentAs(e){if(this.root!==e.root)return!1;return"same"==We(this.getParentPath(),e.getParentPath())}getTransformedByOperation(e){let t;switch(e.type){case"insert":t=this._getTransformedByInsertOperation(e);break;case"move":case"remove":case"reinsert":t=this._getTransformedByMoveOperation(e);break;case"split":t=this._getTransformedBySplitOperation(e);break;case"merge":t=this._getTransformedByMergeOperation(e);break;default:t=ss._createAt(this)}return t}_getTransformedByInsertOperation(e){return this._getTransformedByInsertion(e.position,e.howMany)}_getTransformedByMoveOperation(e){return this._getTransformedByMove(e.sourcePosition,e.targetPosition,e.howMany)}_getTransformedBySplitOperation(e){const t=e.movedRange;return t.containsPosition(this)||t.start.isEqual(this)&&"toNext"==this.stickiness?this._getCombined(e.splitPosition,e.moveTargetPosition):e.graveyardPosition?this._getTransformedByMove(e.graveyardPosition,e.insertionPosition,1):this._getTransformedByInsertion(e.insertionPosition,1)}_getTransformedByMergeOperation(e){const t=e.movedRange;let o;return t.containsPosition(this)||t.start.isEqual(this)?(o=this._getCombined(e.sourcePosition,e.targetPosition),e.sourcePosition.isBefore(e.targetPosition)&&(o=o._getTransformedByDeletion(e.deletionPosition,1))):o=this.isEqual(e.deletionPosition)?ss._createAt(e.deletionPosition):this._getTransformedByMove(e.deletionPosition,e.graveyardPosition,1),o}_getTransformedByDeletion(e,t){const o=ss._createAt(this);if(this.root!=e.root)return o;if("same"==We(e.getParentPath(),this.getParentPath())){if(e.offsetthis.offset)return null;o.offset-=t}}else if("prefix"==We(e.getParentPath(),this.getParentPath())){const i=e.path.length-1;if(e.offset<=this.path[i]){if(e.offset+t>this.path[i])return null;o.path[i]-=t}}return o}_getTransformedByInsertion(e,t){const o=ss._createAt(this);if(this.root!=e.root)return o;if("same"==We(e.getParentPath(),this.getParentPath()))(e.offset=t;){if(e.path[i]+n!==o.maxOffset)return!1;n=1,i--,o=o.parent}return!0}(e,o+1))}function ds(e,t){for(;tt+1;){const t=i.maxOffset-o.offset;0!==t&&e.push(new us(o,o.getShiftedBy(t))),o.path=o.path.slice(0,-1),o.offset++,i=i.parent}for(;o.path.length<=this.end.path.length;){const t=this.end.path[o.path.length-1],i=t-o.offset;0!==i&&e.push(new us(o,o.getShiftedBy(i))),o.offset=t,o.path.push(0)}return e}getWalker(e={}){return e.boundaries=this,new is(e)}*getItems(e={}){e.boundaries=this,e.ignoreElementEnd=!0;const t=new is(e);for(const e of t)yield e.item}*getPositions(e={}){e.boundaries=this;const t=new is(e);yield t.position;for(const e of t)yield e.nextPosition}getTransformedByOperation(e){switch(e.type){case"insert":return this._getTransformedByInsertOperation(e);case"move":case"remove":case"reinsert":return this._getTransformedByMoveOperation(e);case"split":return[this._getTransformedBySplitOperation(e)];case"merge":return[this._getTransformedByMergeOperation(e)]}return[new us(this.start,this.end)]}getTransformedByOperations(e){const t=[new us(this.start,this.end)];for(const o of e)for(let e=0;e0?new this(o,i):new this(i,o)}static _createIn(e){return new this(ss._createAt(e,0),ss._createAt(e,e.maxOffset))}static _createOn(e){return this._createFromPositionAndShift(ss._createBefore(e),e.offsetSize)}static _createFromRanges(e){if(0===e.length)throw new fe("range-create-from-ranges-empty-array",null);if(1==e.length)return e[0].clone();const t=e[0];e.sort(((e,t)=>e.start.isAfter(t.start)?1:-1));const o=e.indexOf(t),i=new this(t.start,t.end);for(let t=o-1;t>=0&&e[t].end.isEqual(i.start);t--)i.start=ss._createAt(e[t].start);for(let t=o+1;t{if(t.viewPosition)return;const o=this._modelToViewMapping.get(t.modelPosition.parent);if(!o)throw new fe("mapping-model-position-view-parent-not-found",this,{modelPosition:t.modelPosition});t.viewPosition=this.findPositionIn(o,t.modelPosition.offset)}),{priority:"low"}),this.on("viewToModelPosition",((e,t)=>{if(t.modelPosition)return;const o=this.findMappedViewAncestor(t.viewPosition),i=this._viewToModelMapping.get(o),n=this._toModelOffset(t.viewPosition.parent,t.viewPosition.offset,o);t.modelPosition=ss._createAt(i,n)}),{priority:"low"})}bindElements(e,t){this._modelToViewMapping.set(e,t),this._viewToModelMapping.set(t,e)}unbindViewElement(e,t={}){const o=this.toModelElement(e);if(this._elementToMarkerNames.has(e))for(const t of this._elementToMarkerNames.get(e))this._unboundMarkerNames.add(t);if(t.defer)this._deferredBindingRemovals.set(e,e.root);else{this._viewToModelMapping.delete(e)&&this._cache.stopTracking(e),this._modelToViewMapping.get(o)==e&&this._modelToViewMapping.delete(o)}}unbindModelElement(e){const t=this.toViewElement(e);if(this._modelToViewMapping.delete(e),this._viewToModelMapping.get(t)==e){this._viewToModelMapping.delete(t)&&this._cache.stopTracking(t)}}bindElementToMarker(e,t){const o=this._markerNameToElements.get(t)||new Set;o.add(e);const i=this._elementToMarkerNames.get(e)||new Set;i.add(t),this._markerNameToElements.set(t,o),this._elementToMarkerNames.set(e,i)}unbindElementFromMarkerName(e,t){const o=this._markerNameToElements.get(t);o&&(o.delete(e),0==o.size&&this._markerNameToElements.delete(t));const i=this._elementToMarkerNames.get(e);i&&(i.delete(t),0==i.size&&this._elementToMarkerNames.delete(e))}flushUnboundMarkerNames(){const e=Array.from(this._unboundMarkerNames);return this._unboundMarkerNames.clear(),e}flushDeferredBindings(){for(const[e,t]of this._deferredBindingRemovals)e.root==t&&this.unbindViewElement(e);this._deferredBindingRemovals=new Map}clearBindings(){this._modelToViewMapping=new WeakMap,this._viewToModelMapping=new WeakMap,this._markerNameToElements=new Map,this._elementToMarkerNames=new Map,this._unboundMarkerNames=new Set,this._deferredBindingRemovals=new Map}toModelElement(e){return this._viewToModelMapping.get(e)}toViewElement(e){return this._modelToViewMapping.get(e)}toModelRange(e){return new us(this.toModelPosition(e.start),this.toModelPosition(e.end))}toViewRange(e){return new Ii(this.toViewPosition(e.start),this.toViewPosition(e.end))}toModelPosition(e){const t={viewPosition:e,mapper:this};return this.fire("viewToModelPosition",t),t.modelPosition}toViewPosition(e,t={}){const o={modelPosition:e,mapper:this,isPhantom:t.isPhantom};return this.fire("modelToViewPosition",o),o.viewPosition}markerNameToElements(e){const t=this._markerNameToElements.get(e);if(!t)return null;const o=new Set;for(const e of t)if(e.is("attributeElement"))for(const t of e.getElementsWithSameId())o.add(t);else o.add(e);return o}registerViewToModelLength(e,t){this._viewToModelLengthCallbacks.set(e,t)}findMappedViewAncestor(e){let t=e.parent;for(;!this._viewToModelMapping.has(t);)t=t.parent;return t}_toModelOffset(e,t,o){if(o!=e){return this._toModelOffset(e.parent,e.index,o)+this._toModelOffset(e,t,e)}if(e.is("$text"))return t;let i=0;for(let o=0;o0;){const e=t.pop(),i=e.name&&this._viewToModelLengthCallbacks.size>0&&this._viewToModelLengthCallbacks.get(e.name);if(i)o+=i(e);else if(this._viewToModelMapping.has(e))o+=1;else if(e.is("$text"))o+=e.data.length;else{if(e.is("uiElement"))continue;for(const o of e.getChildren())t.push(o)}}return o}findPositionIn(e,t){if(0===t)return this._moveViewPositionToTextNode(new Si(e,0));if(0==this._viewToModelLengthCallbacks.size&&this._viewToModelMapping.has(e)){const o=this._cache.getClosest(e,t);return this._findPositionStartingFrom(o.viewPosition,o.modelOffset,t,e,!0)}return this._findPositionStartingFrom(new Si(e,0),0,t,e,!1)}_findPositionStartingFrom(e,t,o,i,n){let s,r=e.parent,a=e.offset;if(r.is("$text"))return new Si(r,o-t);let l=t,c=0;for(;l{this._clearCacheInsideParent(t,o.index)};_invalidateOnTextChangeCallback=(e,t)=>{this._clearCacheAfter(t)};save(e,t,o,i){const n=this._cachedMapping.get(o),s=n.cacheMap.get(i);if(s){const o=e.getChild(t-1),i=s.viewPosition.nodeBefore?this._nodeToCacheListIndex.get(s.viewPosition.nodeBefore):0;return void this._nodeToCacheListIndex.set(o,i)}const r={viewPosition:new Si(e,t),modelOffset:i};n.maxModelOffset=i>n.maxModelOffset?i:n.maxModelOffset,n.cacheMap.set(i,r);let a=n.cacheList.length-1;for(;a>=0&&n.cacheList[a].modelOffset>i;)a--;if(n.cacheList.splice(a+1,0,r),t>0){const o=e.getChild(t-1);this._nodeToCacheListIndex.set(o,a+1)}}getClosest(e,t){const o=this._cachedMapping.get(e);let i;if(o)if(t>o.maxModelOffset)i=o.cacheList[o.cacheList.length-1];else{const e=o.cacheMap.get(t);i=e||this._findInCacheList(o.cacheList,t)}else i=this.startTracking(e);return{modelOffset:i.modelOffset,viewPosition:i.viewPosition.clone()}}startTracking(e){const t={viewPosition:new Si(e,0),modelOffset:0},o={maxModelOffset:0,cacheList:[t],cacheMap:new Map([[0,t]])};return this._cachedMapping.set(e,o),e.on("change:children",this._invalidateOnChildrenChangeCallback),e.on("change:text",this._invalidateOnTextChangeCallback),t}stopTracking(e){e.off("change:children",this._invalidateOnChildrenChangeCallback),e.off("change:text",this._invalidateOnTextChangeCallback),this._cachedMapping.delete(e)}_clearCacheInsideParent(e,t){if(0==t)this._cachedMapping.has(e)?this._clearCacheAll(e):this._clearCacheInsideParent(e.parent,e.index);else{const o=e.getChild(t-1);this._clearCacheAfter(o)}}_clearCacheAll(e){const t=this._cachedMapping.get(e);t.maxModelOffset>0&&(t.maxModelOffset=0,t.cacheList.length=1,t.cacheMap.clear(),t.cacheMap.set(0,t.cacheList[0]))}_clearCacheAfter(e){const t=this._nodeToCacheListIndex.get(e);if(void 0===t){const t=e.parent;return void(this._cachedMapping.has(t)||this._clearCacheInsideParent(t.parent,t.index))}let o=e.parent;for(;!this._cachedMapping.has(o);)o=o.parent;this._clearCacheFromCacheIndex(o,t)}_clearCacheFromCacheIndex(e,t){0===t&&(t=1);const o=this._cachedMapping.get(e),i=o.cacheList[t-1];if(!i)return;o.maxModelOffset=i.modelOffset;const n=o.cacheList.splice(t);for(const e of n){o.cacheMap.delete(e.modelOffset);const t=e.viewPosition.nodeBefore;this._nodeToCacheListIndex.delete(t)}}_findInCacheList(e,t){let o=0,i=e.length-1,n=i-o>>1,s=e[n];for(;o>1),s=e[n];return s.modelOffset<=t?s:e[n-1]}}class gs{_consumable=new Map;_textProxyRegistry=new Map;add(e,t){t=ps(t),e instanceof os&&(e=this._getSymbolForTextProxy(e)),this._consumable.has(e)||this._consumable.set(e,new Map),this._consumable.get(e).set(t,!0)}consume(e,t){return t=ps(t),e instanceof os&&(e=this._getSymbolForTextProxy(e)),!!this.test(e,t)&&(this._consumable.get(e).set(t,!1),!0)}test(e,t){t=ps(t),e instanceof os&&(e=this._getSymbolForTextProxy(e));const o=this._consumable.get(e);if(void 0===o)return null;const i=o.get(t);return void 0===i?null:i}revert(e,t){t=ps(t),e instanceof os&&(e=this._getSymbolForTextProxy(e));const o=this.test(e,t);return!1===o?(this._consumable.get(e).set(t,!0),!0):!0!==o&&null}verifyAllConsumed(e){const t=[];for(const[o,i]of this._consumable)for(const[n,s]of i){const i=n.split(":")[0];s&&e==i&&t.push({event:n,item:o.name||o.description})}if(t.length)throw new fe("conversion-model-consumable-not-consumed",null,{items:t})}_getSymbolForTextProxy(e){let t=null;const o=this._textProxyRegistry.get(e.startOffset);if(o){const i=o.get(e.endOffset);i&&(t=i.get(e.parent))}return t||(t=this._addSymbolForTextProxy(e)),t}_addSymbolForTextProxy(e){const t=e.startOffset,o=e.endOffset,i=e.parent,n=Symbol("$textProxy:"+e.data);let s,r;return s=this._textProxyRegistry.get(t),s||(s=new Map,this._textProxyRegistry.set(t,s)),r=s.get(o),r||(r=new Map,s.set(o,r)),r.set(i,n),n}}function ps(e){const t=e.split(":");return"insert"==t[0]?t[0]:"addMarker"==t[0]||"removeMarker"==t[0]?e:t.length>1?t[0]+":"+t[1]:t[0]}class fs extends(xe()){_conversionApi;_firedEventsMap;constructor(e){super(),this._conversionApi={dispatcher:this,...e},this._firedEventsMap=new WeakMap}convertChanges(e,t,o){const i=e.getRefreshedItems(),n=this._createConversionApi(o,i);for(const t of e.getMarkersToRemove())this._convertMarkerRemove(t.name,t.range,n);const s=this._reduceChanges(e.getChanges(),i);for(const e of s)"insert"===e.type?this._convertInsert(us._createFromPositionAndShift(e.position,e.length),n):"reinsert"===e.type?this._convertReinsert(us._createFromPositionAndShift(e.position,e.length),n):"remove"===e.type?this._convertRemove(e.position,e.length,e.name,n):this._convertAttribute(e.range,e.attributeKey,e.attributeOldValue,e.attributeNewValue,n);n.mapper.flushDeferredBindings();for(const e of n.mapper.flushUnboundMarkerNames()){const o=t.get(e).getRange();this._convertMarkerRemove(e,o,n),this._convertMarkerAdd(e,o,n)}for(const t of e.getMarkersToAdd())this._convertMarkerAdd(t.name,t.range,n);n.consumable.verifyAllConsumed("insert")}convert(e,t,o,i={}){const n=this._createConversionApi(o,void 0,i);this._convertInsert(e,n);for(const[e,o]of t)this._convertMarkerAdd(e,o,n);n.consumable.verifyAllConsumed("insert")}convertSelection(e,t,o){const i=this._createConversionApi(o);this.fire("cleanSelection",{selection:e},i);const n=e.getFirstPosition().root;if(!i.mapper.toViewElement(n))return;const s=Array.from(t.getMarkersAtPosition(e.getFirstPosition()));if(this._addConsumablesForSelection(i.consumable,e,s),this.fire("selection",{selection:e},i),e.isCollapsed){for(const t of s)if(i.consumable.test(e,"addMarker:"+t.name)){const o=t.getRange();if(!bs(e.getFirstPosition(),t,i.mapper))continue;const n={item:e,markerName:t.name,markerRange:o};this.fire(`addMarker:${t.name}`,n,i)}for(const t of e.getAttributeKeys())if(i.consumable.test(e,"attribute:"+t)){const o={item:e,range:e.getFirstRange(),attributeKey:t,attributeOldValue:null,attributeNewValue:e.getAttribute(t)};this.fire(`attribute:${t}:$text`,o,i)}}}_convertInsert(e,t,o={}){o.doNotAddConsumables||this._addConsumablesForInsert(t.consumable,e);for(const o of e.getWalker({shallow:!0}))this._testAndFire("insert",ws(o),t)}_convertRemove(e,t,o,i){this.fire(`remove:${o}`,{position:e,length:t},i)}_convertAttribute(e,t,o,i,n){this._addConsumablesForRange(n.consumable,e,`attribute:${t}`);for(const s of e){const e={item:s.item,range:us._createFromPositionAndShift(s.previousPosition,s.length),attributeKey:t,attributeOldValue:o,attributeNewValue:i};this._testAndFire(`attribute:${t}`,e,n)}}_convertReinsert(e,t){const o=Array.from(e.getWalker({shallow:!0}));this._addConsumablesForInsert(t.consumable,o);for(const e of o.map(ws))this.fire(`remove:${e.item.is("element")?e.item.name:"$text"}`,{position:e.range.start,length:e.item.offsetSize,reconversion:!0},t),this._testAndFire("insert",{...e,reconversion:!0},t)}_convertMarkerAdd(e,t,o){if("$graveyard"==t.root.rootName)return;const i=`addMarker:${e}`;if(o.consumable.add(t,i),this.fire(i,{markerName:e,markerRange:t},o),o.consumable.consume(t,i)){this._addConsumablesForRange(o.consumable,t,i);for(const n of t.getItems()){if(!o.consumable.test(n,i))continue;const s={item:n,range:us._createOn(n),markerName:e,markerRange:t};this.fire(i,s,o)}}}_convertMarkerRemove(e,t,o){"$graveyard"!=t.root.rootName&&this.fire(`removeMarker:${e}`,{markerName:e,markerRange:t},o)}_reduceChanges(e,t){const o={changes:e,refreshedItems:t};return this.fire("reduceChanges",o),o.changes}_addConsumablesForInsert(e,t){for(const o of t){const t=o.item;if(null===e.test(t,"insert")){e.add(t,"insert");for(const o of t.getAttributeKeys())e.add(t,"attribute:"+o)}}return e}_addConsumablesForRange(e,t,o){for(const i of t.getItems())e.add(i,o);return e}_addConsumablesForSelection(e,t,o){e.add(t,"selection");for(const i of o)e.add(t,"addMarker:"+i.name);for(const o of t.getAttributeKeys())e.add(t,"attribute:"+o);return e}_testAndFire(e,t,o){const i=function(e,t){const o=t.item.is("element")?t.item.name:"$text";return`${e}:${o}`}(e,t),n=t.item.is("$textProxy")?o.consumable._getSymbolForTextProxy(t.item):t.item,s=this._firedEventsMap.get(o),r=s.get(n);if(r){if(r.has(i))return;r.add(i)}else s.set(n,new Set([i]));this.fire(i,t,o)}_testAndFireAddAttributes(e,t){const o={item:e,range:us._createOn(e)};for(const e of o.item.getAttributeKeys())o.attributeKey=e,o.attributeOldValue=null,o.attributeNewValue=o.item.getAttribute(e),this._testAndFire(`attribute:${e}`,o,t)}_createConversionApi(e,t=new Set,o={}){const i={...this._conversionApi,consumable:new gs,writer:e,options:o,convertItem:e=>this._convertInsert(us._createOn(e),i),convertChildren:e=>this._convertInsert(us._createIn(e),i,{doNotAddConsumables:!0}),convertAttributes:e=>this._testAndFireAddAttributes(e,i),canReuseView:e=>!t.has(i.mapper.toModelElement(e))};return this._firedEventsMap.set(i,new Map),i}}function bs(e,t,o){const i=t.getRange(),n=Array.from(e.getAncestors());n.shift(),n.reverse();return!n.some((e=>{if(i.containsItem(e)){return!!o.toViewElement(e).getCustomProperty("addHighlight")}}))}function ws(e){return{item:e.item,range:us._createFromPositionAndShift(e.previousPosition,e.length)}}class ys extends ts{parent=null;_attrs;_index=null;_startOffset=null;constructor(e){super(),this._attrs=ao(e)}get document(){return null}get index(){return this._index}get startOffset(){return this._startOffset}get offsetSize(){return 1}get endOffset(){return null===this.startOffset?null:this.startOffset+this.offsetSize}get nextSibling(){const e=this.index;return null!==e&&this.parent.getChild(e+1)||null}get previousSibling(){const e=this.index;return null!==e&&this.parent.getChild(e-1)||null}get root(){let e=this;for(;e.parent;)e=e.parent;return e}isAttached(){return null!==this.parent&&this.root.isAttached()}getPath(){const e=[];let t=this;for(;t.parent;)e.unshift(t.startOffset),t=t.parent;return e}getAncestors(e={}){const t=[];let o=e.includeSelf?this:this.parent;for(;o;)t[e.parentFirst?"push":"unshift"](o),o=o.parent;return t}getCommonAncestor(e,t={}){const o=this.getAncestors(t),i=e.getAncestors(t);let n=0;for(;o[n]==i[n]&&o[n];)n++;return 0===n?null:o[n-1]}isBefore(e){if(this==e)return!1;if(this.root!==e.root)return!1;const t=this.getPath(),o=e.getPath(),i=We(t,o);switch(i){case"prefix":return!0;case"extension":return!1;default:return t[i](e[t[0]]=t[1],e)),{})),e}_clone(e){return new this.constructor(this._attrs)}_remove(){this.parent._removeChildren(this.index)}_setAttribute(e,t){this._attrs.set(e,t)}_setAttributesTo(e){this._attrs=ao(e)}_removeAttribute(e){return this._attrs.delete(e)}_clearAttributes(){this._attrs.clear()}}ys.prototype.is=function(e){return"node"===e||"model:node"===e};class _s extends(xe(ts)){_lastRangeBackward=!1;_attrs=new Map;_ranges=[];constructor(...e){super(),e.length&&this.setTo(...e)}get anchor(){if(this._ranges.length>0){const e=this._ranges[this._ranges.length-1];return this._lastRangeBackward?e.end:e.start}return null}get focus(){if(this._ranges.length>0){const e=this._ranges[this._ranges.length-1];return this._lastRangeBackward?e.start:e.end}return null}get isCollapsed(){return 1===this._ranges.length&&this._ranges[0].isCollapsed}get rangeCount(){return this._ranges.length}get isBackward(){return!this.isCollapsed&&this._lastRangeBackward}isEqual(e){if(this.rangeCount!=e.rangeCount)return!1;if(0===this.rangeCount)return!0;if(!this.anchor.isEqual(e.anchor)||!this.focus.isEqual(e.focus))return!1;for(const t of this._ranges){let o=!1;for(const i of e._ranges)if(t.isEqual(i)){o=!0;break}if(!o)return!1}return!0}*getRanges(){for(const e of this._ranges)yield new us(e.start,e.end)}getFirstRange(){let e=null;for(const t of this._ranges)e&&!t.start.isBefore(e.start)||(e=t);return e?new us(e.start,e.end):null}getLastRange(){let e=null;for(const t of this._ranges)e&&!t.end.isAfter(e.end)||(e=t);return e?new us(e.start,e.end):null}getFirstPosition(){const e=this.getFirstRange();return e?e.start.clone():null}getLastPosition(){const e=this.getLastRange();return e?e.end.clone():null}setTo(...e){let[t,o,i]=e;if("object"==typeof o&&(i=o,o=void 0),null===t)this._setRanges([]);else if(t instanceof _s)this._setRanges(t.getRanges(),t.isBackward);else if(t&&"function"==typeof t.getRanges)this._setRanges(t.getRanges(),t.isBackward);else if(t instanceof us)this._setRanges([t],!!i&&!!i.backward);else if(t instanceof ss)this._setRanges([new us(t)]);else if(t instanceof ys){const e=!!i&&!!i.backward;let n;if("in"==o)n=us._createIn(t);else if("on"==o)n=us._createOn(t);else{if(void 0===o)throw new fe("model-selection-setto-required-second-parameter",[this,t]);n=new us(ss._createAt(t,o))}this._setRanges([n],e)}else{if(!Ue(t))throw new fe("model-selection-setto-not-selectable",[this,t]);this._setRanges(t,i&&!!i.backward)}}_setRanges(e,t=!1){const o=Array.from(e),i=o.some((t=>{if(!(t instanceof us))throw new fe("model-selection-set-ranges-not-range",[this,e]);return this._ranges.every((e=>!e.isEqual(t)))}));(o.length!==this._ranges.length||i)&&(this._replaceAllRanges(o),this._lastRangeBackward=!!t,this.fire("change:range",{directChange:!0}))}setFocus(e,t){if(null===this.anchor)throw new fe("model-selection-setfocus-no-ranges",[this,e]);const o=ss._createAt(e,t);if("same"==o.compareWith(this.focus))return;const i=this.anchor;this._ranges.length&&this._popRange(),"before"==o.compareWith(i)?(this._pushRange(new us(o,i)),this._lastRangeBackward=!0):(this._pushRange(new us(i,o)),this._lastRangeBackward=!1),this.fire("change:range",{directChange:!0})}getAttribute(e){return this._attrs.get(e)}getAttributes(){return this._attrs.entries()}getAttributeKeys(){return this._attrs.keys()}hasAttribute(e){return this._attrs.has(e)}removeAttribute(e){this.hasAttribute(e)&&(this._attrs.delete(e),this.fire("change:attribute",{attributeKeys:[e],directChange:!0}))}setAttribute(e,t){this.getAttribute(e)!==t&&(this._attrs.set(e,t),this.fire("change:attribute",{attributeKeys:[e],directChange:!0}))}getSelectedElement(){return 1!==this.rangeCount?null:this.getFirstRange().getContainedElement()}*getSelectedBlocks(){const e=new WeakSet;for(const t of this.getRanges()){const o=Cs(t.start,e);xs(o,t)&&(yield o);const i=t.getWalker();for(const o of i){const n=o.item;"elementEnd"==o.type&&vs(n,e,t)?yield n:"elementStart"==o.type&&n.is("model:element")&&n.root.document.model.schema.isBlock(n)&&i.jumpTo(ss._createAt(n,"end"))}const n=Cs(t.end,e);Es(n,t)&&(yield n)}}containsEntireContent(e=this.anchor.root){const t=ss._createAt(e,0),o=ss._createAt(e,"end");return t.isTouching(this.getFirstPosition())&&o.isTouching(this.getLastPosition())}toJSON(){const e={ranges:Array.from(this.getRanges()).map((e=>e.toJSON()))},t=Object.fromEntries(this.getAttributes());return Object.keys(t).length&&(e.attributes=t),this.isBackward&&(e.isBackward=!0),e}_pushRange(e){this._checkRange(e),this._ranges.push(new us(e.start,e.end))}_checkRange(e){for(let t=0;t0;)this._popRange()}_popRange(){this._ranges.pop()}}function ks(e,t){return!t.has(e)&&(t.add(e),e.root.document.model.schema.isBlock(e)&&!!e.parent)}function vs(e,t,o){return ks(e,t)&&As(e,o)}function Cs(e,t){const o=e.parent.root.document.model.schema,i=e.parent.getAncestors({parentFirst:!0,includeSelf:!0});let n=!1;const s=i.find((e=>!n&&(n=o.isLimit(e),!n&&ks(e,t))));return i.forEach((e=>t.add(e))),s}function As(e,t){const o=function(e){const t=e.root.document.model.schema;let o=e.parent;for(;o;){if(t.isBlock(o))return o;o=o.parent}}(e);if(!o)return!0;return!t.containsRange(us._createOn(o),!0)}function xs(e,t){return!!e&&(!(!t.isCollapsed&&!e.isEmpty)||!t.start.isTouching(ss._createAt(e,e.maxOffset))&&As(e,t))}function Es(e,t){return!!e&&(!(!t.isCollapsed&&!e.isEmpty)||!t.end.isTouching(ss._createAt(e,0))&&As(e,t))}_s.prototype.is=function(e){return"selection"===e||"model:selection"===e};class Ts extends(xe(us)){constructor(e,t){super(e,t),Ps.call(this)}detach(){this.stopListening()}toRange(){return new us(this.start,this.end)}static fromRange(e){return new Ts(e.start,e.end)}}function Ps(){this.listenTo(this.root.document.model,"applyOperation",((e,t)=>{const o=t[0];o.isDocumentOperation&&Ss.call(this,o)}),{priority:"low"})}function Ss(e){const t=this.getTransformedByOperation(e),o=us._createFromRanges(t),i=!o.isEqual(this),n=function(e,t){switch(t.type){case"insert":return e.containsPosition(t.position);case"move":case"remove":case"reinsert":case"merge":return e.containsPosition(t.sourcePosition)||e.start.isEqual(t.sourcePosition)||e.containsPosition(t.targetPosition);case"split":return e.containsPosition(t.splitPosition)||e.containsPosition(t.insertionPosition)}return!1}(this,e);let s=null;if(i){"$graveyard"==o.root.rootName&&(s="remove"==e.type?e.sourcePosition:e.deletionPosition);const t=this.toRange();this.start=o.start,this.end=o.end,this.fire("change:range",t,{deletionPosition:s})}else n&&this.fire("change:content",this.toRange(),{deletionPosition:s})}Ts.prototype.is=function(e){return"liveRange"===e||"model:liveRange"===e||"range"==e||"model:range"===e};class Is extends ys{_data;constructor(e,t){super(t),this._data=e||""}get offsetSize(){return this.data.length}get data(){return this._data}toJSON(){const e=super.toJSON();return e.data=this.data,e}_clone(){return new Is(this.data,this.getAttributes())}static fromJSON(e){return new Is(e.data,e.attributes)}}Is.prototype.is=function(e){return"$text"===e||"model:$text"===e||"text"===e||"model:text"===e||"node"===e||"model:node"===e};const Rs="selection:";class Os extends(xe(ts)){_selection;constructor(e){super(),this._selection=new Vs(e),this._selection.delegate("change:range").to(this),this._selection.delegate("change:attribute").to(this),this._selection.delegate("change:marker").to(this)}get isCollapsed(){return this._selection.isCollapsed}get anchor(){return this._selection.anchor}get focus(){return this._selection.focus}get rangeCount(){return this._selection.rangeCount}get hasOwnRange(){return this._selection.hasOwnRange}get isBackward(){return this._selection.isBackward}get isGravityOverridden(){return this._selection.isGravityOverridden}get markers(){return this._selection.markers}get _ranges(){return this._selection._ranges}getRanges(){return this._selection.getRanges()}getFirstPosition(){return this._selection.getFirstPosition()}getLastPosition(){return this._selection.getLastPosition()}getFirstRange(){return this._selection.getFirstRange()}getLastRange(){return this._selection.getLastRange()}getSelectedBlocks(){return this._selection.getSelectedBlocks()}getSelectedElement(){return this._selection.getSelectedElement()}containsEntireContent(e){return this._selection.containsEntireContent(e)}destroy(){this._selection.destroy()}getAttributeKeys(){return this._selection.getAttributeKeys()}getAttributes(){return this._selection.getAttributes()}getAttribute(e){return this._selection.getAttribute(e)}hasAttribute(e){return this._selection.hasAttribute(e)}refresh(){this._selection.updateMarkers(),this._selection._updateAttributes(!1)}observeMarkers(e){this._selection.observeMarkers(e)}toJSON(){return this._selection.toJSON()}_setFocus(e,t){this._selection.setFocus(e,t)}_setTo(...e){this._selection.setTo(...e)}_setAttribute(e,t){this._selection.setAttribute(e,t)}_removeAttribute(e){this._selection.removeAttribute(e)}_getStoredAttributes(){return this._selection.getStoredAttributes()}_overrideGravity(){return this._selection.overrideGravity()}_restoreGravity(e){this._selection.restoreGravity(e)}static _getStoreAttributeKey(e){return Rs+e}static _isStoreAttributeKey(e){return e.startsWith(Rs)}}Os.prototype.is=function(e){return"selection"===e||"model:selection"==e||"documentSelection"==e||"model:documentSelection"==e};class Vs extends _s{markers=new eo({idProperty:"name"});_model;_document;_attributePriority=new Map;_selectionRestorePosition=null;_hasChangedRange=!1;_overriddenGravityRegister=new Set;_observedMarkers=new Set;constructor(e){super(),this._model=e.model,this._document=e,this.listenTo(this._model,"applyOperation",((e,t)=>{const o=t[0];o.isDocumentOperation&&"marker"!=o.type&&"rename"!=o.type&&"noop"!=o.type&&(0==this._ranges.length&&this._selectionRestorePosition&&this._fixGraveyardSelection(this._selectionRestorePosition),this._selectionRestorePosition=null,this._hasChangedRange&&(this._hasChangedRange=!1,this.fire("change:range",{directChange:!1})))}),{priority:"lowest"}),this.on("change:range",(()=>{this._validateSelectionRanges(this.getRanges())})),this.listenTo(this._model.markers,"update",((e,t,o,i)=>{this._updateMarker(t,i)})),this.listenTo(this._document,"change",((e,t)=>{!function(e,t){const o=e.document.differ;for(const i of o.getChanges()){if("insert"!=i.type)continue;const o=i.position.parent;i.length===o.maxOffset&&e.enqueueChange(t,(e=>{const t=Array.from(o.getAttributeKeys()).filter((e=>e.startsWith(Rs)));for(const i of t)e.removeAttribute(i,o)}))}}(this._model,t)}))}get isCollapsed(){return 0===this._ranges.length?this._document._getDefaultRange().isCollapsed:super.isCollapsed}get anchor(){return super.anchor||this._document._getDefaultRange().start}get focus(){return super.focus||this._document._getDefaultRange().end}get rangeCount(){return this._ranges.length?this._ranges.length:1}get hasOwnRange(){return this._ranges.length>0}get isGravityOverridden(){return!!this._overriddenGravityRegister.size}destroy(){for(let e=0;ee.toJSON()))),e}_validateSelectionRanges(e){for(const t of e)if(!this._document._validateSelectionRange(t))throw new fe("document-selection-wrong-position",this,{range:t})}_prepareRange(e){if(this._checkRange(e),e.root==this._document.graveyard)return;const t=Ts.fromRange(e);return t.on("change:range",((e,o,i)=>{if(this._hasChangedRange=!0,t.root==this._document.graveyard){this._selectionRestorePosition=i.deletionPosition;const e=this._ranges.indexOf(t);this._ranges.splice(e,1),t.detach()}})),t}updateMarkers(){if(!this._observedMarkers.size)return;const e=[];let t=!1;for(const t of this._model.markers){const o=t.name.split(":",1)[0];if(!this._observedMarkers.has(o))continue;const i=t.getRange();for(const o of this.getRanges())i.containsRange(o,!o.isCollapsed)&&e.push(t)}const o=Array.from(this.markers);for(const o of e)this.markers.has(o)||(this.markers.add(o),t=!0);for(const o of Array.from(this.markers))e.includes(o)||(this.markers.remove(o),t=!0);t&&this.fire("change:marker",{oldMarkers:o,directChange:!1})}_updateMarker(e,t){const o=e.name.split(":",1)[0];if(!this._observedMarkers.has(o))return;let i=!1;const n=Array.from(this.markers),s=this.markers.has(e);if(t){let o=!1;for(const e of this.getRanges())if(t.containsRange(e,!e.isCollapsed)){o=!0;break}o&&!s?(this.markers.add(e),i=!0):!o&&s&&(this.markers.remove(e),i=!0)}else s&&(this.markers.remove(e),i=!0);i&&this.fire("change:marker",{oldMarkers:n,directChange:!1})}_updateAttributes(e){const t=ao(this._getSurroundingAttributes()),o=ao(this.getAttributes());if(e)this._attributePriority=new Map,this._attrs=new Map;else for(const[e,t]of this._attributePriority)"low"==t&&(this._attrs.delete(e),this._attributePriority.delete(e));this._setAttributesTo(t);const i=[];for(const[e,t]of this.getAttributes())o.has(e)&&o.get(e)===t||i.push(e);for(const[e]of o)this.hasAttribute(e)||i.push(e);i.length>0&&this.fire("change:attribute",{attributeKeys:i,directChange:!1})}_setAttribute(e,t,o=!0){const i=o?"normal":"low";if("low"==i&&"normal"==this._attributePriority.get(e))return!1;return super.getAttribute(e)!==t&&(this._attrs.set(e,t),this._attributePriority.set(e,i),!0)}_removeAttribute(e,t=!0){const o=t?"normal":"low";return("low"!=o||"normal"!=this._attributePriority.get(e))&&(this._attributePriority.set(e,o),!!super.hasAttribute(e)&&(this._attrs.delete(e),!0))}_setAttributesTo(e){const t=new Set;for(const[t,o]of this.getAttributes())e.get(t)!==o&&this._removeAttribute(t,!1);for(const[o,i]of e){this._setAttribute(o,i,!1)&&t.add(o)}return t}*getStoredAttributes(){const e=this.getFirstPosition().parent;if(this.isCollapsed&&e.isEmpty)for(const t of e.getAttributeKeys())if(t.startsWith(Rs)){const o=t.substr(10);yield[o,e.getAttribute(t)]}}_getSurroundingAttributes(){const e=this.getFirstPosition(),t=this._model.schema;if("$graveyard"==e.root.rootName)return null;let o=null;if(this.isCollapsed){const i=e.textNode?e.textNode:e.nodeBefore,n=e.textNode?e.textNode:e.nodeAfter;if(this.isGravityOverridden||(o=Ds(i,t)),o||(o=Ds(n,t)),!this.isGravityOverridden&&!o){let e=i;for(;e&&!o;)e=e.previousSibling,o=Ds(e,t)}if(!o){let e=n;for(;e&&!o;)e=e.nextSibling,o=Ds(e,t)}o||(o=this.getStoredAttributes())}else{const e=this.getFirstRange();for(const i of e){if(i.item.is("element")&&t.isObject(i.item)){o=Ds(i.item,t);break}if("text"==i.type){o=i.item.getAttributes();break}}}return o}_fixGraveyardSelection(e){const t=this._model.schema.getNearestSelectionRange(e);t&&this._pushRange(t)}}function Ds(e,t){if(!e)return null;if(e instanceof os||e instanceof Is)return e.getAttributes();if(!t.isInline(e))return null;if(!t.isObject(e))return[];const o=[];for(const[i,n]of e.getAttributes())t.checkAttribute("$text",i)&&!1!==t.getAttributeProperties(i).copyFromObject&&o.push([i,n]);return o}class Fs{_nodes=[];_offsetToNode=[];constructor(e){e&&this._insertNodes(0,e)}[Symbol.iterator](){return this._nodes[Symbol.iterator]()}get length(){return this._nodes.length}get maxOffset(){return this._offsetToNode.length}getNode(e){return this._nodes[e]||null}getNodeAtOffset(e){return this._offsetToNode[e]||null}getNodeIndex(e){return e.index}getNodeStartOffset(e){return e.startOffset}indexToOffset(e){if(e==this._nodes.length)return this.maxOffset;const t=this._nodes[e];if(!t)throw new fe("model-nodelist-index-out-of-bounds",this);return this.getNodeStartOffset(t)}offsetToIndex(e){if(e==this._offsetToNode.length)return this._nodes.length;const t=this._offsetToNode[e];if(!t)throw new fe("model-nodelist-offset-out-of-bounds",this,{offset:e,nodeList:this});return this.getNodeIndex(t)}_insertNodes(e,t){const o=[];for(const e of t){if(!(e instanceof ys))throw new fe("model-nodelist-insertnodes-not-node",this);o.push(e)}let i=this.indexToOffset(e);lo(this._nodes,o,e),lo(this._offsetToNode,function(e){const t=[];let o=0;for(const i of e)for(let e=0;enull!==e.index)),this._offsetToNode=this._offsetToNode.filter((e=>null!==e.index));let t=0;for(let e=0;ee.toJSON()))}}class Ms extends ys{name;_children=new Fs;constructor(e,t,o){super(t),this.name=e,o&&this._insertChild(0,o)}get childCount(){return this._children.length}get maxOffset(){return this._children.maxOffset}get isEmpty(){return 0===this.childCount}getChild(e){return this._children.getNode(e)}getChildAtOffset(e){return this._children.getNodeAtOffset(e)}getChildren(){return this._children[Symbol.iterator]()}getChildIndex(e){return this._children.getNodeIndex(e)}getChildStartOffset(e){return this._children.getNodeStartOffset(e)}offsetToIndex(e){return this._children.offsetToIndex(e)}getNodeByPath(e){let t=this;for(const o of e)t=t.getChildAtOffset(o);return t}findAncestor(e,t={}){let o=t.includeSelf?this:this.parent;for(;o;){if(o.name===e)return o;o=o.parent}return null}toJSON(){const e=super.toJSON();if(e.name=this.name,this._children.length>0){e.children=[];for(const t of this._children)e.children.push(t.toJSON())}return e}_clone(e=!1){const t=e?function(e){const t=[];for(const o of e)t.push(o._clone(!0));return t}(this._children):void 0;return new Ms(this.name,this.getAttributes(),t)}_appendChild(e){this._insertChild(this.childCount,e)}_insertChild(e,t){const o=function(e){if("string"==typeof e)return[new Is(e)];Ue(e)||(e=[e]);const t=[];for(const o of e)"string"==typeof o?t.push(new Is(o)):o instanceof os?t.push(new Is(o.data,o.getAttributes())):t.push(o);return t}(t);for(const e of o)null!==e.parent&&e._remove(),e.parent=this;this._children._insertNodes(e,o)}_removeChildren(e,t=1){const o=this._children._removeNodes(e,t);for(const e of o)e.parent=null;return o}_removeChildrenArray(e){this._children._removeNodesArray(e);for(const t of e)t.parent=null}static fromJSON(e){let t;if(e.children){t=[];for(const o of e.children)o.name?t.push(Ms.fromJSON(o)):t.push(Is.fromJSON(o))}return new Ms(e.name,e.attributes,t)}}Ms.prototype.is=function(e,t){return t?t===this.name&&("element"===e||"model:element"===e):"element"===e||"model:element"===e||"node"===e||"model:node"===e};class Ns{_dispatchers;constructor(e){this._dispatchers=e}add(e){for(const t of this._dispatchers)e(t);return this}}class Bs extends Ns{elementToElement(e){return this.add(function(e){const t=Us(e.model),o=Ks(e.view,"container");t.attributes.length&&(t.children=!0);return i=>{i.on(`insert:${t.name}`,js(o,Ys(t)),{priority:e.converterPriority||"normal"}),(t.children||t.attributes.length)&&i.on("reduceChanges",Qs(t),{priority:"low"})}}(e))}elementToStructure(e){return this.add(function(e){const t=Us(e.model),o=Ks(e.view,"container");return t.children=!0,i=>{if(i._conversionApi.schema.checkChild(t.name,"$text"))throw new fe("conversion-element-to-structure-disallowed-text",i,{elementName:t.name});var n,s;i.on(`insert:${t.name}`,(n=o,s=Ys(t),(e,t,o)=>{if(!s(t.item,o.consumable,{preflight:!0}))return;const i=new Map;o.writer._registerSlotFactory(function(e,t,o){return(i,n)=>{const s=i.createContainerElement("$slot");let r=null;if("children"===n)r=Array.from(e.getChildren());else{if("function"!=typeof n)throw new fe("conversion-slot-mode-unknown",o.dispatcher,{modeOrFilter:n});r=Array.from(e.getChildren()).filter((e=>n(e)))}return t.set(s,r),s}}(t.item,i,o));const r=n(t.item,o,t);if(o.writer._clearSlotFactory(),!r)return;!function(e,t,o){const i=Array.from(t.values()).flat(),n=new Set(i);if(n.size!=i.length)throw new fe("conversion-slot-filter-overlap",o.dispatcher,{element:e});if(n.size!=e.childCount)throw new fe("conversion-slot-filter-incomplete",o.dispatcher,{element:e})}(t.item,i,o),s(t.item,o.consumable);const a=t.reconversion&&Hs(t.item,o)||o.mapper.toViewPosition(t.range.start);o.mapper.bindElements(t.item,r),o.writer.insert(a,r),o.convertAttributes(t.item),function(e,t,o,i){o.mapper.on("modelToViewPosition",r,{priority:"highest"});let n=null,s=null;for([n,s]of t)Xs(e,s,o,i),o.writer.setCustomProperty("$structureSlotParent",!0,n.parent),o.writer.move(o.writer.createRangeIn(n),o.writer.createPositionBefore(n)),o.writer.remove(n);function r(e,t){const o=t.modelPosition.nodeAfter,i=s.indexOf(o);i<0||(t.viewPosition=t.mapper.findPositionIn(n,i))}o.mapper.off("modelToViewPosition",r)}(r,i,o,{reconversion:t.reconversion})}),{priority:e.converterPriority||"normal"}),i.on("reduceChanges",Qs(t),{priority:"low"})}}(e))}attributeToElement(e){return this.add(function(e){e=j(e);let t=e.model;"string"==typeof t&&(t={key:t});let o=`attribute:${t.key}`;t.name&&(o+=":"+t.name);if(t.values)for(const o of t.values)e.view[o]=Ks(e.view[o],"attribute");else e.view=Ks(e.view,"attribute");const i=Gs(e);return t=>{t.on(o,zs(i),{priority:e.converterPriority||"normal"})}}(e))}attributeToAttribute(e){return this.add(function(e){e=j(e);let t=e.model;"string"==typeof t&&(t={key:t});let o=`attribute:${t.key}`;t.name&&(o+=":"+t.name);if(t.values)for(const o of t.values)e.view[o]=Js(e.view[o]);else e.view=Js(e.view);const i=Gs(e);return t=>{var n;t.on(o,(n=i,(e,t,o)=>{if(!o.consumable.test(t.item,e.name))return;const i=n(t.attributeOldValue,o,t),s=n(t.attributeNewValue,o,t);if(!i&&!s)return;o.consumable.consume(t.item,e.name);const r=o.mapper.toViewElement(t.item),a=o.writer;if(!r)throw new fe("conversion-attribute-to-attribute-on-text",o.dispatcher,t);if(null!==t.attributeOldValue&&i){let e=i.value;"style"==i.key&&(e="string"==typeof i.value?new gi(a.document.stylesProcessor).setTo(i.value).getStylesEntries().map((([e])=>e)):Object.keys(i.value)),a.removeAttribute(i.key,e,r)}if(null!==t.attributeNewValue&&s){let e=s.value;"style"==s.key&&"string"==typeof s.value&&(e=Object.fromEntries(new gi(a.document.stylesProcessor).setTo(s.value).getStylesEntries())),a.setAttribute(s.key,e,!1,r)}}),{priority:e.converterPriority||"normal"})}}(e))}markerToElement(e){return this.add(function(e){const t=Ks(e.view,"ui");return o=>{o.on(`addMarker:${e.model}`,qs(t),{priority:e.converterPriority||"normal"}),o.on(`removeMarker:${e.model}`,((e,t,o)=>{const i=o.mapper.markerNameToElements(t.markerName);if(i){for(const e of i)o.mapper.unbindElementFromMarkerName(e,t.markerName),o.writer.clear(o.writer.createRangeOn(e),e);o.writer.clearClonedElementsGroup(t.markerName),e.stop()}}),{priority:e.converterPriority||"normal"})}}(e))}markerToHighlight(e){return this.add(function(e){return t=>{var o;t.on(`addMarker:${e.model}`,(o=e.view,(e,t,i)=>{if(!t.item)return;if(!(t.item instanceof _s||t.item instanceof Os||t.item.is("$textProxy")))return;const n=Zs(o,t,i);if(!n)return;if(!i.consumable.consume(t.item,e.name))return;const s=i.writer,r=Ls(s,n),a=s.document.selection;if(t.item instanceof _s||t.item instanceof Os)s.wrap(a.getFirstRange(),r);else{const e=i.mapper.toViewRange(t.range),o=s.wrap(e,r);for(const e of o.getItems())if(e.is("attributeElement")&&e.isSimilar(r)){i.mapper.bindElementToMarker(e,t.markerName);break}}}),{priority:e.converterPriority||"normal"}),t.on(`addMarker:${e.model}`,function(e){return(t,o,i)=>{if(!o.item)return;if(!(o.item instanceof Ms))return;const n=Zs(e,o,i);if(!n)return;if(!i.consumable.test(o.item,t.name))return;const s=i.mapper.toViewElement(o.item);if(s&&s.getCustomProperty("addHighlight")){i.consumable.consume(o.item,t.name);for(const e of us._createIn(o.item))i.consumable.consume(e.item,t.name);s.getCustomProperty("addHighlight")(s,n,i.writer),i.mapper.bindElementToMarker(s,o.markerName)}}}(e.view),{priority:e.converterPriority||"normal"}),t.on(`removeMarker:${e.model}`,function(e){return(t,o,i)=>{if(o.markerRange.isCollapsed)return;const n=Zs(e,o,i);if(!n)return;const s=Ls(i.writer,n),r=i.mapper.markerNameToElements(o.markerName);if(r){for(const e of r)if(i.mapper.unbindElementFromMarkerName(e,o.markerName),e.is("attributeElement"))i.writer.unwrap(i.writer.createRangeOn(e),s);else{e.getCustomProperty("removeHighlight")(e,n.id,i.writer)}i.writer.clearClonedElementsGroup(o.markerName),t.stop()}}}(e.view),{priority:e.converterPriority||"normal"})}}(e))}markerToData(e){return this.add(function(e){e=j(e);const t=e.model;let o=e.view;o||(o=o=>({group:t,name:o.substr(e.model.length+1)}));return i=>{var n;i.on(`addMarker:${t}`,(n=o,(e,t,o)=>{const i=n(t.markerName,o);if(!i)return;const s=t.markerRange;o.consumable.consume(s,e.name)&&(Ws(s,!1,o,t,i),Ws(s,!0,o,t,i),e.stop())}),{priority:e.converterPriority||"normal"}),i.on(`removeMarker:${t}`,function(e){return(t,o,i)=>{const n=e(o.markerName,i);if(!n)return;const s=i.mapper.markerNameToElements(o.markerName);if(s){for(const e of s)i.mapper.unbindElementFromMarkerName(e,o.markerName),e.is("containerElement")?(r(`data-${n.group}-start-before`,e),r(`data-${n.group}-start-after`,e),r(`data-${n.group}-end-before`,e),r(`data-${n.group}-end-after`,e)):i.writer.clear(i.writer.createRangeOn(e),e);i.writer.clearClonedElementsGroup(o.markerName),t.stop()}function r(e,t){if(t.hasAttribute(e)){const o=new Set(t.getAttribute(e).split(","));o.delete(n.name),0==o.size?i.writer.removeAttribute(e,t):i.writer.setAttribute(e,Array.from(o).join(","),t)}}}}(o),{priority:e.converterPriority||"normal"})}}(e))}}function Ls(e,t){const o=e.createAttributeElement("span",t.attributes);return t.classes&&o._addClass(t.classes),"number"==typeof t.priority&&(o._priority=t.priority),o._id=t.id,o}function zs(e){return(t,o,i)=>{if(!i.consumable.test(o.item,t.name))return;const n=e(o.attributeOldValue,i,o),s=e(o.attributeNewValue,i,o);if(!n&&!s)return;i.consumable.consume(o.item,t.name);const r=i.writer,a=r.document.selection;if(o.item instanceof _s||o.item instanceof Os)r.wrap(a.getFirstRange(),s);else{let e=i.mapper.toViewRange(o.range);null!==o.attributeOldValue&&n&&(e=r.unwrap(e,n)),null!==o.attributeNewValue&&s&&r.wrap(e,s)}}}function js(e,t=tr){return(o,i,n)=>{if(!t(i.item,n.consumable,{preflight:!0}))return;const s=e(i.item,n,i);if(!s)return;t(i.item,n.consumable);const r=i.reconversion&&Hs(i.item,n)||n.mapper.toViewPosition(i.range.start);n.mapper.bindElements(i.item,s),n.writer.insert(r,s),n.convertAttributes(i.item),Xs(s,i.item.getChildren(),n,{reconversion:i.reconversion})}}function qs(e){return(t,o,i)=>{o.isOpening=!0;const n=e(o,i);o.isOpening=!1;const s=e(o,i);if(!n||!s)return;const r=o.markerRange;if(r.isCollapsed&&!i.consumable.consume(r,t.name))return;for(const e of r)if(!i.consumable.consume(e.item,t.name))return;const a=i.mapper,l=i.writer;l.insert(a.toViewPosition(r.start),n),i.mapper.bindElementToMarker(n,o.markerName),r.isCollapsed||(l.insert(a.toViewPosition(r.end),s),i.mapper.bindElementToMarker(s,o.markerName)),t.stop()}}function $s(e,t){const o=t.writer.remove(e);for(const e of t.writer.createRangeIn(o).getItems())t.mapper.unbindViewElement(e,{defer:!0});return e.start}function Hs(e,t){const o=t.mapper.toViewElement(e);return o&&$s(t.writer.createRangeOn(o),t)}function Ws(e,t,o,i,n){const s=t?e.start:e.end,r=s.nodeAfter&&s.nodeAfter.is("element")?s.nodeAfter:null,a=s.nodeBefore&&s.nodeBefore.is("element")?s.nodeBefore:null;if(r||a){let e,s;t&&r||!t&&!a?(e=r,s=!0):(e=a,s=!1);const l=o.mapper.toViewElement(e);if(l)return void function(e,t,o,i,n,s){const r=`data-${s.group}-${t?"start":"end"}-${o?"before":"after"}`,a=e.hasAttribute(r)?e.getAttribute(r).split(","):[];a.unshift(s.name),i.writer.setAttribute(r,a.join(","),e),i.mapper.bindElementToMarker(e,n.markerName)}(l,t,s,o,i,n)}!function(e,t,o,i,n){const s=`${n.group}-${t?"start":"end"}`,r=n.name?{name:n.name}:null,a=o.writer.createUIElement(s,r);o.writer.insert(e,a),o.mapper.bindElementToMarker(a,i.markerName)}(o.mapper.toViewPosition(s),t,o,i,n)}function Us(e){return"string"==typeof e&&(e={name:e}),{name:e.name,attributes:e.attributes?Qt(e.attributes):[],children:!!e.children}}function Ks(e,t){return"function"==typeof e?e:(o,i)=>function(e,t,o){"string"==typeof e&&(e={name:e});let i;const n=t.writer,s=Object.assign({},e.attributes);if("container"==o)i=n.createContainerElement(e.name,s);else if("attribute"==o){const t={priority:e.priority||Wi.DEFAULT_PRIORITY};i=n.createAttributeElement(e.name,s,t)}else i=n.createUIElement(e.name,s);if(e.styles){const t=Object.keys(e.styles);for(const o of t)n.setStyle(o,e.styles[o],i)}if(e.classes){const t=e.classes;if("string"==typeof t)n.addClass(t,i);else for(const e of t)n.addClass(e,i)}return i}(e,i,t)}function Gs(e){return e.model.values?(t,o,i)=>{const n=e.view[t];return n?n(t,o,i):null}:e.view}function Js(e){return"string"==typeof e?t=>({key:e,value:t}):"object"==typeof e?e.value?()=>e:t=>({key:e.key,value:t}):e}function Zs(e,t,o){const i="function"==typeof e?e(t,o):{...e};return i?(i.priority||(i.priority=10),i.id||(i.id=t.markerName),i):null}function Qs(e){const t=function(e){return(t,o)=>{if(!t.is("element",e.name))return!1;if("attribute"==o.type){if(e.attributes.includes(o.attributeKey))return!0}else if(e.children)return!0;return!1}}(e);return(e,o)=>{const i=[];o.reconvertedElements||(o.reconvertedElements=new Set);for(const e of o.changes){const n="attribute"==e.type?e.range.start.nodeAfter:e.position.parent;if(n&&t(n,e)&&"reinsert"!=e.type){if("insert"==e.type&&"rename"==e.action&&o.refreshedItems.add(e.position.nodeAfter),!o.reconvertedElements.has(n)){o.reconvertedElements.add(n);const e=ss._createBefore(n);let t=i.length;for(let o=i.length-1;o>=0;o--){const n=i[o],s=("attribute"==n.type?n.range.start:n.position).compareWith(e);if("before"==s||"remove"==n.type&&"same"==s)break;t=o}i.splice(t,0,{type:"reinsert",name:n.name,position:e,length:1})}}else i.push(e)}o.changes=i}}function Ys(e){return(t,o,i={})=>{const n=["insert"];for(const o of e.attributes)t.hasAttribute(o)&&n.push(`attribute:${o}`);return!!n.every((e=>o.test(t,e)))&&(i.preflight||n.forEach((e=>o.consume(t,e))),!0)}}function Xs(e,t,o,i){for(const n of t)er(e.root,n,o,i)||o.convertItem(n)}function er(e,t,o,i){const{writer:n,mapper:s}=o;if(!i.reconversion)return!1;const r=s.toViewElement(t);return!(!r||r.root==e)&&(!!o.canReuseView(r)&&(n.move(n.createRangeOn(r),s.toViewPosition(ss._createBefore(t))),!0))}function tr(e,t,{preflight:o}={}){return o?t.test(e,"insert"):t.consume(e,"insert")}function or(e){const{schema:t,document:o}=e.model;for(const i of o.getRoots())if(i.isEmpty&&!t.checkChild(i,"$text")&&t.checkChild(i,"paragraph"))return e.insertElement("paragraph",i),!0;return!1}function ir(e,t,o){const i=o.createContext(e);return!!o.checkChild(i,"paragraph")&&!!o.checkChild(i.push("paragraph"),t)}function nr(e,t){const o=t.createElement("paragraph");return t.insert(o,e),t.createPositionAt(o,0)}class sr extends Ns{elementToElement(e){return this.add(rr(e))}elementToAttribute(e){return this.add(function(e){e=j(e),cr(e);const t=dr(e,!1),o=ar(e.view),i=o?`element:${o}`:"element";return o=>{o.on(i,t,{priority:e.converterPriority||"low"})}}(e))}attributeToAttribute(e){return this.add(function(e){e=j(e);let t=null;("string"==typeof e.view||e.view.key)&&(t=function(e){"string"==typeof e.view&&(e.view={key:e.view});const t=e.view.key,o=void 0===e.view.value?/[\s\S]*/:e.view.value;let i;if("class"==t||"style"==t){const e="class"==t?"classes":"styles";i={[e]:o}}else i={attributes:{[t]:o}};e.view.name&&(i.name=e.view.name);return e.view=i,t}(e));cr(e,t);const o=dr(e,!0);return t=>{t.on("element",o,{priority:e.converterPriority||"low"})}}(e))}elementToMarker(e){return this.add(function(e){const t=function(e){return(t,o)=>{const i="string"==typeof e?e:e(t,o);return o.writer.createElement("$marker",{"data-name":i})}}(e.model);return rr({...e,model:t})}(e))}dataToMarker(e){return this.add(function(e){e=j(e),e.model||(e.model=t=>t?e.view+":"+t:e.view);const t={view:e.view,model:e.model},o=lr(ur(t,"start")),i=lr(ur(t,"end"));return n=>{n.on(`element:${e.view}-start`,o,{priority:e.converterPriority||"normal"}),n.on(`element:${e.view}-end`,i,{priority:e.converterPriority||"normal"});const s=ge.low,r=ge.highest,a=ge.get(e.converterPriority)/r;n.on("element",function(e){return(t,o,i)=>{const n=`data-${e.view}`;function s(t,n){for(const s of n){const n=e.model(s,i),r=i.writer.createElement("$marker",{"data-name":n});i.writer.insert(r,t),o.modelCursor.isEqual(t)?o.modelCursor=o.modelCursor.getShiftedBy(1):o.modelCursor=o.modelCursor._getTransformedByInsertion(t,1),o.modelRange=o.modelRange._getTransformedByInsertion(t,1)[0]}}(i.consumable.test(o.viewItem,{attributes:n+"-end-after"})||i.consumable.test(o.viewItem,{attributes:n+"-start-after"})||i.consumable.test(o.viewItem,{attributes:n+"-end-before"})||i.consumable.test(o.viewItem,{attributes:n+"-start-before"}))&&(o.modelRange||Object.assign(o,i.convertChildren(o.viewItem,o.modelCursor)),i.consumable.consume(o.viewItem,{attributes:n+"-end-after"})&&s(o.modelRange.end,o.viewItem.getAttribute(n+"-end-after").split(",")),i.consumable.consume(o.viewItem,{attributes:n+"-start-after"})&&s(o.modelRange.end,o.viewItem.getAttribute(n+"-start-after").split(",")),i.consumable.consume(o.viewItem,{attributes:n+"-end-before"})&&s(o.modelRange.start,o.viewItem.getAttribute(n+"-end-before").split(",")),i.consumable.consume(o.viewItem,{attributes:n+"-start-before"})&&s(o.modelRange.start,o.viewItem.getAttribute(n+"-start-before").split(",")))}}(t),{priority:s+a})}}(e))}}function rr(e){const t=lr(e=j(e)),o=ar(e.view),i=o?`element:${o}`:"element";return o=>{o.on(i,t,{priority:e.converterPriority||"normal"})}}function ar(e){return"string"==typeof e?e:"object"==typeof e&&"string"==typeof e.name?e.name:null}function lr(e){const t=new ui(e.view);return(o,i,n)=>{const s=t.match(i.viewItem);if(!s)return;const r=s.match;if(r.name=!0,!n.consumable.test(i.viewItem,r))return;const a=function(e,t,o){return e instanceof Function?e(t,o):o.writer.createElement(e)}(e.model,i.viewItem,n);a&&n.safeInsert(a,i.modelCursor)&&(n.consumable.consume(i.viewItem,r),n.convertChildren(i.viewItem,a),n.updateConversionResult(a,i))}}function cr(e,t=null){const o=null===t||(e=>e.getAttribute(t)),i="object"!=typeof e.model?e.model:e.model.key,n="object"!=typeof e.model||void 0===e.model.value?o:e.model.value;e.model={key:i,value:n}}function dr(e,t){const o=new ui(e.view);return(i,n,s)=>{if(!n.modelRange&&t)return;const r=o.match(n.viewItem);if(!r)return;if(!function(e,t){const o="function"==typeof e?e(t):e;if("object"==typeof o&&!ar(o))return!1;return!o.classes&&!o.attributes&&!o.styles}(e.view,n.viewItem)?delete r.match.name:r.match.name=!0,!s.consumable.test(n.viewItem,r.match))return;const a=e.model.key,l="function"==typeof e.model.value?e.model.value(n.viewItem,s,n):e.model.value;if(null==l)return;n.modelRange||Object.assign(n,s.convertChildren(n.viewItem,n.modelCursor));const c=function(e,t,o,i){let n=!1;for(const s of Array.from(e.getItems({shallow:o})))i.schema.checkAttribute(s,t.key)&&(n=!0,s.hasAttribute(t.key)||i.writer.setAttribute(t.key,t.value,s));return n}(n.modelRange,{key:a,value:l},t,s);c&&(s.consumable.test(n.viewItem,{name:!0})&&(r.match.name=!0),s.consumable.consume(n.viewItem,r.match))}}function ur(e,t){return{view:`${e.view}-${t}`,model:(t,o)=>{const i=t.getAttribute("name"),n=e.model(i,o);return o.writer.createElement("$marker",{"data-name":n})}}}class hr extends(Be()){model;view;mapper;downcastDispatcher;constructor(e,t){super(),this.model=e,this.view=new es(t),this.mapper=new hs,this.downcastDispatcher=new fs({mapper:this.mapper,schema:e.schema});const o=this.model.document,i=o.selection,n=this.model.markers;this.listenTo(this.model,"_beforeChanges",(()=>{this.view._disableRendering(!0)}),{priority:"highest"}),this.listenTo(this.model,"_afterChanges",(()=>{this.view._disableRendering(!1)}),{priority:"lowest"}),this.listenTo(o,"change",(()=>{this.view.change((e=>{this.downcastDispatcher.convertChanges(o.differ,n,e),this.downcastDispatcher.convertSelection(i,n,e)}))}),{priority:"low"}),this.listenTo(this.view.document,"selectionChange",function(e,t){return(o,i)=>{const n=i.newSelection,s=[];for(const e of n.getRanges())s.push(t.toModelRange(e));const r=e.createSelection(s,{backward:n.isBackward});r.isEqual(e.document.selection)||e.change((e=>{e.setSelection(r)}))}}(this.model,this.mapper)),this.downcastDispatcher.on("insert:$text",((e,t,o)=>{if(!o.consumable.consume(t.item,e.name))return;const i=o.writer,n=o.mapper.toViewPosition(t.range.start),s=i.createText(t.item.data);i.insert(n,s)}),{priority:"lowest"}),this.downcastDispatcher.on("insert",((e,t,o)=>{o.convertAttributes(t.item),t.reconversion||!t.item.is("element")||t.item.isEmpty||o.convertChildren(t.item)}),{priority:"lowest"}),this.downcastDispatcher.on("remove",((e,t,o)=>{if(t.reconversion)return;const i=o.mapper.toViewPosition(t.position),n=t.position.getShiftedBy(t.length),s=o.mapper.toViewPosition(n,{isPhantom:!0});$s(o.writer.createRange(i,s).getTrimmed(),o)}),{priority:"low"}),this.downcastDispatcher.on("cleanSelection",((e,t,o)=>{const i=o.writer,n=i.document.selection;for(const e of n.getRanges())e.isCollapsed&&e.end.parent.isAttached()&&o.writer.mergeAttributes(e.start);i.setSelection(null)})),this.downcastDispatcher.on("selection",((e,t,o)=>{const i=t.selection;if(i.isCollapsed)return;if(!o.consumable.consume(i,"selection"))return;const n=[];for(const e of i.getRanges())n.push(o.mapper.toViewRange(e));o.writer.setSelection(n,{backward:i.isBackward})}),{priority:"low"}),this.downcastDispatcher.on("selection",((e,t,o)=>{const i=t.selection;if(!i.isCollapsed)return;if(!o.consumable.consume(i,"selection"))return;const n=o.writer,s=i.getFirstPosition(),r=o.mapper.toViewPosition(s),a=n.breakAttributes(r);n.setSelection(a)}),{priority:"low"}),this.view.document.roots.bindTo(this.model.document.roots).using((e=>{if("$graveyard"==e.rootName)return null;const t=new Ti(this.view.document,e.name);return t.rootName=e.rootName,this.mapper.bindElements(e,t),t}))}destroy(){this.view.destroy(),this.stopListening()}reconvertMarker(e){const t="string"==typeof e?e:e.name,o=this.model.markers.get(t);if(!o)throw new fe("editingcontroller-reconvertmarker-marker-not-exist",this,{markerName:t});this.model.change((()=>{this.model.markers._refresh(o)}))}reconvertItem(e){this.model.change((()=>{this.model.document.differ._refreshItem(e)}))}}class mr extends(Be()){_sourceDefinitions={};_attributeProperties=Object.create(null);_customChildChecks=new Map;_customAttributeChecks=new Map;_genericCheckSymbol=Symbol("$generic");_compiledDefinitions;constructor(){super(),this.decorate("checkChild"),this.decorate("checkAttribute"),this.on("checkAttribute",((e,t)=>{t[0]=new gr(t[0])}),{priority:"highest"}),this.on("checkChild",((e,t)=>{t[0]=new gr(t[0]),t[1]=this.getDefinition(t[1])}),{priority:"highest"})}register(e,t){if(this._sourceDefinitions[e])throw new fe("schema-cannot-register-item-twice",this,{itemName:e});this._sourceDefinitions[e]=[Object.assign({},t)],this._clearCache()}extend(e,t){if(!this._sourceDefinitions[e])throw new fe("schema-cannot-extend-missing-item",this,{itemName:e});this._sourceDefinitions[e].push(Object.assign({},t)),this._clearCache()}getDefinitions(){return this._compiledDefinitions||this._compile(),this._compiledDefinitions}getDefinition(e){let t;return t="string"==typeof e?e:"is"in e&&(e.is("$text")||e.is("$textProxy"))?"$text":e.name,this.getDefinitions()[t]}isRegistered(e){return!!this.getDefinition(e)}isBlock(e){const t=this.getDefinition(e);return!(!t||!t.isBlock)}isLimit(e){const t=this.getDefinition(e);return!!t&&!(!t.isLimit&&!t.isObject)}isObject(e){const t=this.getDefinition(e);return!!t&&!!(t.isObject||t.isLimit&&t.isSelectable&&t.isContent)}isInline(e){const t=this.getDefinition(e);return!(!t||!t.isInline)}isSelectable(e){const t=this.getDefinition(e);return!!t&&!(!t.isSelectable&&!t.isObject)}isContent(e){const t=this.getDefinition(e);return!!t&&!(!t.isContent&&!t.isObject)}checkChild(e,t){return!!t&&this._checkContextMatch(e,t)}checkAttribute(e,t){const o=this.getDefinition(e.last);if(!o)return!1;const i=this._evaluateAttributeChecks(e,t);return void 0!==i?i:o.allowAttributes.includes(t)}checkMerge(e,t){if(e instanceof ss){const t=e.nodeBefore,o=e.nodeAfter;if(!(t instanceof Ms))throw new fe("schema-check-merge-no-element-before",this);if(!(o instanceof Ms))throw new fe("schema-check-merge-no-element-after",this);return this.checkMerge(t,o)}if(this.isLimit(e)||this.isLimit(t))return!1;for(const o of t.getChildren())if(!this.checkChild(e,o))return!1;return!0}addChildCheck(e,t){const o=void 0!==t?t:this._genericCheckSymbol,i=this._customChildChecks.get(o)||[];i.push(e),this._customChildChecks.set(o,i)}addAttributeCheck(e,t){const o=void 0!==t?t:this._genericCheckSymbol,i=this._customAttributeChecks.get(o)||[];i.push(e),this._customAttributeChecks.set(o,i)}setAttributeProperties(e,t){this._attributeProperties[e]=Object.assign(this.getAttributeProperties(e),t)}getAttributeProperties(e){return this._attributeProperties[e]||Object.create(null)}getLimitElement(e){let t;if(e instanceof ss)t=e.parent;else{t=(e instanceof us?[e]:Array.from(e.getRanges())).reduce(((e,t)=>{const o=t.getCommonAncestor();return e?e.getCommonAncestor(o,{includeSelf:!0}):o}),null)}for(;!this.isLimit(t)&&t.parent;)t=t.parent;return t}checkAttributeInSelection(e,t){if(e.isCollapsed){const o=[...e.getFirstPosition().getAncestors(),new Is("",e.getAttributes())];return this.checkAttribute(o,t)}{const o=e.getRanges();for(const e of o)for(const o of e)if(this.checkAttribute(o.item,t))return!0}return!1}*getValidRanges(e,t,o={}){e=function*(e){for(const t of e)yield*t.getMinimalFlatRanges()}(e);for(const i of e)yield*this._getValidRangesForRange(i,t,o)}getNearestSelectionRange(e,t="both"){if("$graveyard"==e.root.rootName)return null;if(this.checkChild(e,"$text"))return new us(e);let o,i;const n=e.getAncestors().reverse().find((e=>this.isLimit(e)))||e.root;"both"!=t&&"backward"!=t||(o=new is({boundaries:us._createIn(n),startPosition:e,direction:"backward"})),"both"!=t&&"forward"!=t||(i=new is({boundaries:us._createIn(n),startPosition:e}));for(const e of function*(e,t){let o=!1;for(;!o;){if(o=!0,e){const t=e.next();t.done||(o=!1,yield{walker:e,value:t.value})}if(t){const e=t.next();e.done||(o=!1,yield{walker:t,value:e.value})}}}(o,i)){const t=e.walker==o?"elementEnd":"elementStart",i=e.value;if(i.type==t&&this.isObject(i.item))return us._createOn(i.item);if(this.checkChild(i.nextPosition,"$text"))return new us(i.nextPosition)}return null}findAllowedParent(e,t){let o=e.parent;for(;o;){if(this.checkChild(o,t))return o;if(this.isLimit(o))return null;o=o.parent}return null}setAllowedAttributes(e,t,o){const i=o.model;for(const[n,s]of Object.entries(t))i.schema.checkAttribute(e,n)&&o.setAttribute(n,s,e)}removeDisallowedAttributes(e,t){for(const o of e)if(o.is("$text"))Tr(this,o,t);else{const e=us._createIn(o).getPositions();for(const o of e){Tr(this,o.nodeBefore||o.parent,t)}}}getAttributesWithProperty(e,t,o){const i={};for(const[n,s]of e.getAttributes()){const e=this.getAttributeProperties(n);void 0!==e[t]&&(void 0!==o&&o!==e[t]||(i[n]=s))}return i}createContext(e){return new gr(e)}_clearCache(){this._compiledDefinitions=null}_compile(){const e={},t=this._sourceDefinitions,o=Object.keys(t);for(const i of o)e[i]=pr(t[i],i);const i=Object.values(e);for(const t of i)fr(e,t),br(e,t),wr(e,t),yr(e,t);for(const t of i)_r(e,t);for(const t of i)kr(e,t);for(const t of i)vr(e,t);for(const t of i)Cr(e,t);for(const t of i)Ar(e,t);this._compiledDefinitions=function(e){const t={};for(const o of Object.values(e))t[o.name]={name:o.name,isBlock:!!o.isBlock,isContent:!!o.isContent,isInline:!!o.isInline,isLimit:!!o.isLimit,isObject:!!o.isObject,isSelectable:!!o.isSelectable,allowIn:Array.from(o.allowIn).filter((t=>!!e[t])),allowChildren:Array.from(o.allowChildren).filter((t=>!!e[t])),allowAttributes:Array.from(o.allowAttributes)};return t}(e)}_checkContextMatch(e,t){const o=e.last;let i=this._evaluateChildChecks(e,t);if(i=void 0!==i?i:t.allowIn.includes(o.name),!i)return!1;const n=this.getDefinition(o),s=e.trimLast();return!!n&&(0==s.length||this._checkContextMatch(s,n))}_evaluateChildChecks(e,t){const o=this._customChildChecks.get(this._genericCheckSymbol)||[],i=this._customChildChecks.get(t.name)||[];for(const n of[...o,...i]){const o=n(e,t);if(void 0!==o)return o}}_evaluateAttributeChecks(e,t){const o=this._customAttributeChecks.get(this._genericCheckSymbol)||[],i=this._customAttributeChecks.get(t)||[];for(const n of[...o,...i]){const o=n(e,t);if(void 0!==o)return o}}*_getValidRangesForRange(e,t,o){let i=e.start,n=e.start;for(const s of e.getItems({shallow:!0})){if(s.is("element"))if(o.includeEmptyRanges&&s.isEmpty){const e=this.createContext(s);this.checkChild(e,"$text")&&this.checkAttribute(e.push("$text"),t)&&(yield us._createIn(s))}else yield*this._getValidRangesForRange(us._createIn(s),t,o);this.checkAttribute(s,t)||(i.isEqual(n)||(yield new us(i,n)),i=ss._createAfter(s)),n=ss._createAfter(s)}i.isEqual(n)||(yield new us(i,n))}findOptimalInsertionRange(e,t){const o=e.getSelectedElement();if(o&&this.isObject(o)&&!this.isInline(o))return"before"==t||"after"==t?new us(ss._createAt(o,t)):us._createOn(o);const i=to(e.getSelectedBlocks());if(!i)return new us(e.focus);if(i.isEmpty)return new us(ss._createAt(i,0));const n=ss._createAfter(i);return e.focus.isTouching(n)?new us(n):new us(ss._createBefore(i))}}class gr{_items;constructor(e){if(e instanceof gr)return e;let t;t="string"==typeof e?[e]:Array.isArray(e)?e:e.getAncestors({includeSelf:!0}),this._items=t.map(Er)}get length(){return this._items.length}get last(){return this._items[this._items.length-1]}[Symbol.iterator](){return this._items[Symbol.iterator]()}push(e){const t=new gr([e]);return t._items=[...this._items,...t._items],t}trimLast(){const e=new gr([]);return e._items=this._items.slice(0,-1),e}getItem(e){return this._items[e]}*getNames(){yield*this._items.map((e=>e.name))}endsWith(e){return Array.from(this.getNames()).join(" ").endsWith(e)}startsWith(e){return Array.from(this.getNames()).join(" ").startsWith(e)}}function pr(e,t){const o={name:t,allowIn:new Set,allowChildren:new Set,disallowIn:new Set,disallowChildren:new Set,allowContentOf:new Set,allowWhere:new Set,allowAttributes:new Set,disallowAttributes:new Set,allowAttributesOf:new Set,inheritTypesFrom:new Set};return function(e,t){for(const o of e){const e=Object.keys(o).filter((e=>e.startsWith("is")));for(const i of e)t[i]=!!o[i]}}(e,o),xr(e,o,"allowIn"),xr(e,o,"allowChildren"),xr(e,o,"disallowIn"),xr(e,o,"disallowChildren"),xr(e,o,"allowContentOf"),xr(e,o,"allowWhere"),xr(e,o,"allowAttributes"),xr(e,o,"disallowAttributes"),xr(e,o,"allowAttributesOf"),xr(e,o,"inheritTypesFrom"),function(e,t){for(const o of e){const e=o.inheritAllFrom;e&&(t.allowContentOf.add(e),t.allowWhere.add(e),t.allowAttributesOf.add(e),t.inheritTypesFrom.add(e))}}(e,o),o}function fr(e,t){for(const o of t.allowIn){const i=e[o];i?i.allowChildren.add(t.name):t.allowIn.delete(o)}}function br(e,t){for(const o of t.allowChildren){const i=e[o];i?i.allowIn.add(t.name):t.allowChildren.delete(o)}}function wr(e,t){for(const o of t.disallowIn){const i=e[o];i?i.disallowChildren.add(t.name):t.disallowIn.delete(o)}}function yr(e,t){for(const o of t.disallowChildren){const i=e[o];i?i.disallowIn.add(t.name):t.disallowChildren.delete(o)}}function _r(e,t){for(const e of t.disallowChildren)t.allowChildren.delete(e);for(const e of t.disallowIn)t.allowIn.delete(e);for(const e of t.disallowAttributes)t.allowAttributes.delete(e)}function kr(e,t){for(const o of t.allowContentOf){const i=e[o];i&&(i.disallowChildren.forEach((o=>{t.allowChildren.has(o)||(t.disallowChildren.add(o),e[o].disallowIn.add(t.name))})),i.allowChildren.forEach((o=>{t.disallowChildren.has(o)||(t.allowChildren.add(o),e[o].allowIn.add(t.name))})))}}function vr(e,t){for(const o of t.allowWhere){const i=e[o];i&&(i.disallowIn.forEach((o=>{t.allowIn.has(o)||(t.disallowIn.add(o),e[o].disallowChildren.add(t.name))})),i.allowIn.forEach((o=>{t.disallowIn.has(o)||(t.allowIn.add(o),e[o].allowChildren.add(t.name))})))}}function Cr(e,t){for(const o of t.allowAttributesOf){const i=e[o];if(!i)return;i.allowAttributes.forEach((e=>{t.disallowAttributes.has(e)||t.allowAttributes.add(e)}))}}function Ar(e,t){for(const o of t.inheritTypesFrom){const i=e[o];if(i){const e=Object.keys(i).filter((e=>e.startsWith("is")));for(const o of e)o in t||(t[o]=i[o])}}}function xr(e,t,o){for(const i of e){let e=i[o];"string"==typeof e&&(e=[e]),Array.isArray(e)&&e.forEach((e=>t[o].add(e)))}}function Er(e){return"string"==typeof e||e.is("documentFragment")?{name:"string"==typeof e?e:"$documentFragment",*getAttributeKeys(){},getAttribute(){}}:{name:e.is("element")?e.name:"$text",*getAttributeKeys(){yield*e.getAttributeKeys()},getAttribute:t=>e.getAttribute(t)}}function Tr(e,t,o){for(const i of t.getAttributeKeys())e.checkAttribute(t,i)||o.removeAttribute(i,t)}class Pr extends(xe()){conversionApi;_splitParts=new Map;_cursorParents=new Map;_modelCursor=null;_emptyElementsToKeep=new Set;constructor(e){super(),this.conversionApi={...e,consumable:null,writer:null,store:null,convertItem:(e,t)=>this._convertItem(e,t),convertChildren:(e,t)=>this._convertChildren(e,t),safeInsert:(e,t)=>this._safeInsert(e,t),updateConversionResult:(e,t)=>this._updateConversionResult(e,t),splitToAllowedParent:(e,t)=>this._splitToAllowedParent(e,t),getSplitParts:e=>this._getSplitParts(e),keepEmptyElement:e=>this._keepEmptyElement(e)}}convert(e,t,o=["$root"]){this.fire("viewCleanup",e),this._modelCursor=function(e,t){let o;for(const i of new gr(e)){const e={};for(const t of i.getAttributeKeys())e[t]=i.getAttribute(t);const n=t.createElement(i.name,e);o&&t.insert(n,o),o=ss._createAt(n,0)}return o}(o,t),this.conversionApi.writer=t,this.conversionApi.consumable=ai.createFrom(e),this.conversionApi.store={};const{modelRange:i}=this._convertItem(e,this._modelCursor),n=t.createDocumentFragment();if(i){this._removeEmptyElements();const e=this._modelCursor.parent,o=e._removeChildren(0,e.childCount);n._insertChild(0,o),n.markers=function(e,t){const o=new Set,i=new Map,n=us._createIn(e).getItems();for(const e of n)e.is("element","$marker")&&o.add(e);for(const e of o){const o=e.getAttribute("data-name"),n=t.createPositionBefore(e);i.has(o)?i.get(o).end=n.clone():i.set(o,new us(n.clone())),t.remove(e)}return i}(n,t)}return this._modelCursor=null,this._splitParts.clear(),this._cursorParents.clear(),this._emptyElementsToKeep.clear(),this.conversionApi.writer=null,this.conversionApi.store=null,n}_convertItem(e,t){const o={viewItem:e,modelCursor:t,modelRange:null};if(e.is("element")?this.fire(`element:${e.name}`,o,this.conversionApi):e.is("$text")?this.fire("text",o,this.conversionApi):this.fire("documentFragment",o,this.conversionApi),o.modelRange&&!(o.modelRange instanceof us))throw new fe("view-conversion-dispatcher-incorrect-result",this);return{modelRange:o.modelRange,modelCursor:o.modelCursor}}_convertChildren(e,t){let o=t.is("position")?t:ss._createAt(t,0);const i=new us(o);for(const t of Array.from(e.getChildren())){const e=this._convertItem(t,o);e.modelRange instanceof us&&(i.end=e.modelRange.end,o=e.modelCursor)}return{modelRange:i,modelCursor:o}}_safeInsert(e,t){const o=this._splitToAllowedParent(e,t);return!!o&&(this.conversionApi.writer.insert(e,o.position),!0)}_updateConversionResult(e,t){const o=this._getSplitParts(e),i=this.conversionApi.writer;t.modelRange||(t.modelRange=i.createRange(i.createPositionBefore(e),i.createPositionAfter(o[o.length-1])));const n=this._cursorParents.get(e);t.modelCursor=n?i.createPositionAt(n,0):t.modelRange.end}_splitToAllowedParent(e,t){const{schema:o,writer:i}=this.conversionApi;let n=o.findAllowedParent(t,e);if(n){if(n===t.parent)return{position:t};this._modelCursor.parent.getAncestors().includes(n)&&(n=null)}if(!n)return ir(t,e,o)?{position:nr(t,i)}:null;const s=this.conversionApi.writer.split(t,n),r=[];for(const e of s.range.getWalker())if("elementEnd"==e.type)r.push(e.item);else{const t=r.pop(),o=e.item;this._registerSplitPair(t,o)}const a=s.range.end.parent;return this._cursorParents.set(e,a),{position:s.position,cursorParent:a}}_registerSplitPair(e,t){this._splitParts.has(e)||this._splitParts.set(e,[e]);const o=this._splitParts.get(e);this._splitParts.set(t,o),o.push(t)}_getSplitParts(e){let t;return t=this._splitParts.has(e)?this._splitParts.get(e):[e],t}_keepEmptyElement(e){this._emptyElementsToKeep.add(e)}_removeEmptyElements(){const e=new Map;for(const t of this._splitParts.keys())if(t.isEmpty&&!this._emptyElementsToKeep.has(t)){const o=e.get(t.parent)||[];o.push(t),this._splitParts.delete(t),e.set(t.parent,o)}for(const[t,o]of e)t._removeChildrenArray(o);e.size&&this._removeEmptyElements()}}class Sr{getHtml(e){const t=J.document.implementation.createHTMLDocument("").createElement("div");return t.appendChild(e),t.innerHTML}}class Ir{domParser;domConverter;htmlWriter;skipComments=!0;constructor(e){this.domParser=new DOMParser,this.domConverter=new Rn(e,{renderingMode:"data"}),this.htmlWriter=new Sr}toData(e){const t=this.domConverter.viewToDom(e);return this.htmlWriter.getHtml(t)}toView(e){const t=this._toDom(e);return this.domConverter.domToView(t,{skipComments:this.skipComments})}registerRawContentMatcher(e){this.domConverter.registerRawContentMatcher(e)}useFillerType(e){this.domConverter.blockFillerMode="marked"==e?"markedNbsp":"nbsp"}_toDom(e){/<(?:html|body|head|meta)(?:\s[^>]*)?>/i.test(e.trim().slice(0,1e4))||(e=`${e}`);const t=this.domParser.parseFromString(e,"text/html"),o=t.createDocumentFragment(),i=t.body.childNodes;for(;i.length>0;)o.appendChild(i[0]);return o}}class Rr extends(xe()){model;mapper;downcastDispatcher;upcastDispatcher;viewDocument;stylesProcessor;htmlProcessor;processor;_viewWriter;constructor(e,t){super(),this.model=e,this.mapper=new hs,this.downcastDispatcher=new fs({mapper:this.mapper,schema:e.schema}),this.downcastDispatcher.on("insert:$text",((e,t,o)=>{if(!o.consumable.consume(t.item,e.name))return;const i=o.writer,n=o.mapper.toViewPosition(t.range.start),s=i.createText(t.item.data);i.insert(n,s)}),{priority:"lowest"}),this.downcastDispatcher.on("insert",((e,t,o)=>{o.convertAttributes(t.item),t.reconversion||!t.item.is("element")||t.item.isEmpty||o.convertChildren(t.item)}),{priority:"lowest"}),this.upcastDispatcher=new Pr({schema:e.schema}),this.viewDocument=new Hi(t),this.stylesProcessor=t,this.htmlProcessor=new Ir(this.viewDocument),this.processor=this.htmlProcessor,this._viewWriter=new on(this.viewDocument),this.upcastDispatcher.on("text",((e,t,{schema:o,consumable:i,writer:n})=>{let s=t.modelCursor;if(!i.test(t.viewItem))return;if(!o.checkChild(s,"$text")){if(!ir(s,"$text",o))return;if(0==t.viewItem.data.trim().length)return;s=nr(s,n)}i.consume(t.viewItem);const r=n.createText(t.viewItem.data);n.insert(r,s),t.modelRange=n.createRange(s,s.getShiftedBy(r.offsetSize)),t.modelCursor=t.modelRange.end}),{priority:"lowest"}),this.upcastDispatcher.on("element",((e,t,o)=>{if(!t.modelRange&&o.consumable.consume(t.viewItem,{name:!0})){const{modelRange:e,modelCursor:i}=o.convertChildren(t.viewItem,t.modelCursor);t.modelRange=e,t.modelCursor=i}}),{priority:"lowest"}),this.upcastDispatcher.on("documentFragment",((e,t,o)=>{if(!t.modelRange&&o.consumable.consume(t.viewItem,{name:!0})){const{modelRange:e,modelCursor:i}=o.convertChildren(t.viewItem,t.modelCursor);t.modelRange=e,t.modelCursor=i}}),{priority:"lowest"}),Be().prototype.decorate.call(this,"init"),Be().prototype.decorate.call(this,"set"),Be().prototype.decorate.call(this,"get"),Be().prototype.decorate.call(this,"toView"),Be().prototype.decorate.call(this,"toModel"),this.on("init",(()=>{this.fire("ready")}),{priority:"lowest"}),this.on("ready",(()=>{this.model.enqueueChange({isUndoable:!1},or)}),{priority:"lowest"})}get(e={}){const{rootName:t="main",trim:o="empty"}=e;if(!this._checkIfRootsExists([t]))throw new fe("datacontroller-get-non-existent-root",this);const i=this.model.document.getRoot(t);return i.isAttached()||be("datacontroller-get-detached-root",this),"empty"!==o||this.model.hasContent(i,{ignoreWhitespaces:!0})?this.stringify(i,e):""}stringify(e,t={}){const o=this.toView(e,t);return this.processor.toData(o)}toView(e,t={}){const o=this.viewDocument,i=this._viewWriter;this.mapper.clearBindings();const n=us._createIn(e),s=new tn(o);this.mapper.bindElements(e,s);const r=e.is("documentFragment")?e.markers:function(e){const t=[],o=e.root.document;if(!o)return new Map;const i=us._createIn(e);for(const e of o.model.markers){const o=e.getRange(),n=o.isCollapsed,s=o.start.isEqual(i.start)||o.end.isEqual(i.end);if(n&&s)t.push([e.name,o]);else{const n=i.getIntersection(o);n&&t.push([e.name,n])}}return t.sort((([e,t],[o,i])=>{if("after"!==t.end.compareWith(i.start))return 1;if("before"!==t.start.compareWith(i.end))return-1;switch(t.start.compareWith(i.start)){case"before":return 1;case"after":return-1;default:switch(t.end.compareWith(i.end)){case"before":return 1;case"after":return-1;default:return o.localeCompare(e)}}})),new Map(t)}(e);return this.downcastDispatcher.convert(n,r,i,t),s}init(e){if(this.model.document.version)throw new fe("datacontroller-init-document-not-empty",this);let t={};if("string"==typeof e?t.main=e:t=e,!this._checkIfRootsExists(Object.keys(t)))throw new fe("datacontroller-init-non-existent-root",this);return this.model.enqueueChange({isUndoable:!1},(e=>{for(const o of Object.keys(t)){const i=this.model.document.getRoot(o);e.insert(this.parse(t[o],i),i,0)}})),Promise.resolve()}set(e,t={}){let o={};if("string"==typeof e?o.main=e:o=e,!this._checkIfRootsExists(Object.keys(o)))throw new fe("datacontroller-set-non-existent-root",this);this.model.enqueueChange(t.batchType||{},(e=>{e.setSelection(null),e.removeSelectionAttribute(this.model.document.selection.getAttributeKeys());for(const t of Object.keys(o)){const i=this.model.document.getRoot(t);e.remove(e.createRangeIn(i)),e.insert(this.parse(o[t],i),i,0)}}))}parse(e,t="$root"){const o=this.processor.toView(e);return this.toModel(o,t)}toModel(e,t="$root"){return this.model.change((o=>this.upcastDispatcher.convert(e,o,t)))}addStyleProcessorRules(e){e(this.stylesProcessor)}registerRawContentMatcher(e){this.processor&&this.processor!==this.htmlProcessor&&this.processor.registerRawContentMatcher(e),this.htmlProcessor.registerRawContentMatcher(e)}destroy(){this.stopListening()}_checkIfRootsExists(e){for(const t of e)if(!this.model.document.getRoot(t))return!1;return!0}}class Or{_helpers=new Map;_downcast;_upcast;constructor(e,t){this._downcast=Qt(e),this._createConversionHelpers({name:"downcast",dispatchers:this._downcast,isDowncast:!0}),this._upcast=Qt(t),this._createConversionHelpers({name:"upcast",dispatchers:this._upcast,isDowncast:!1})}addAlias(e,t){const o=this._downcast.includes(t);if(!this._upcast.includes(t)&&!o)throw new fe("conversion-add-alias-dispatcher-not-registered",this);this._createConversionHelpers({name:e,dispatchers:[t],isDowncast:o})}for(e){if(!this._helpers.has(e))throw new fe("conversion-for-unknown-group",this);return this._helpers.get(e)}elementToElement(e){this.for("downcast").elementToElement(e);for(const{model:t,view:o}of Vr(e))this.for("upcast").elementToElement({model:t,view:o,converterPriority:e.converterPriority})}attributeToElement(e){this.for("downcast").attributeToElement(e);for(const{model:t,view:o}of Vr(e))this.for("upcast").elementToAttribute({view:o,model:t,converterPriority:e.converterPriority})}attributeToAttribute(e){this.for("downcast").attributeToAttribute(e);for(const{model:t,view:o}of Vr(e))this.for("upcast").attributeToAttribute({view:o,model:t})}_createConversionHelpers({name:e,dispatchers:t,isDowncast:o}){if(this._helpers.has(e))throw new fe("conversion-group-exists",this);const i=o?new Bs(t):new sr(t);this._helpers.set(e,i)}}function*Vr(e){if(e.model.values)for(const t of e.model.values){const o={key:e.model.key,value:t},i=e.view[t],n=e.upcastAlso?e.upcastAlso[t]:void 0;yield*Dr(o,i,n)}else yield*Dr(e.model,e.view,e.upcastAlso)}function*Dr(e,t,o){if(yield{model:e,view:t},o)for(const t of Qt(o))yield{model:e,view:t}}class Fr{baseVersion;isDocumentOperation;batch;constructor(e){this.baseVersion=e,this.isDocumentOperation=null!==this.baseVersion,this.batch=null}_validate(){}toJSON(){const e=Object.assign({},this);return e.__className=this.constructor.className,delete e.batch,delete e.isDocumentOperation,e}static get className(){return"Operation"}static fromJSON(e,t){return new this(e.baseVersion)}}function Mr(e,t){const o=Lr(t),i=o.reduce(((e,t)=>e+t.offsetSize),0),n=e.parent;jr(e);const s=e.index;return n._insertChild(s,o),zr(n,s+o.length),zr(n,s),new us(e,e.getShiftedBy(i))}function Nr(e){if(!e.isFlat)throw new fe("operation-utils-remove-range-not-flat",this);const t=e.start.parent;jr(e.start),jr(e.end);const o=t._removeChildren(e.start.index,e.end.index-e.start.index);return zr(t,e.start.index),o}function Br(e,t){if(!e.isFlat)throw new fe("operation-utils-move-range-not-flat",this);const o=Nr(e);return Mr(t=t._getTransformedByDeletion(e.start,e.end.offset-e.start.offset),o)}function Lr(e){const t=[];!function e(o){if("string"==typeof o)t.push(new Is(o));else if(o instanceof os)t.push(new Is(o.data,o.getAttributes()));else if(o instanceof ys)t.push(o);else if(Ue(o))for(const t of o)e(t)}(e);for(let e=1;ee.maxOffset)throw new fe("move-operation-nodes-do-not-exist",this);if(e===t&&o=o&&this.targetPosition.path[e]e._clone(!0)))),t=new Hr(this.position,e,this.baseVersion);return t.shouldReceiveAttributes=this.shouldReceiveAttributes,t}getReversed(){const e=this.position.root.document.graveyard,t=new ss(e,[0]);return new $r(this.position,this.nodes.maxOffset,t,this.baseVersion+1)}_validate(){const e=this.position.parent;if(!e||e.maxOffsete._clone(!0)))),Mr(this.position,e)}toJSON(){const e=super.toJSON();return e.position=this.position.toJSON(),e.nodes=this.nodes.toJSON(),e}static get className(){return"InsertOperation"}static fromJSON(e,t){const o=[];for(const t of e.nodes)t.name?o.push(Ms.fromJSON(t)):o.push(Is.fromJSON(t));const i=new Hr(ss.fromJSON(e.position,t),o,e.baseVersion);return i.shouldReceiveAttributes=e.shouldReceiveAttributes,i}}class Wr extends Fr{splitPosition;howMany;insertionPosition;graveyardPosition;constructor(e,t,o,i,n){super(n),this.splitPosition=e.clone(),this.splitPosition.stickiness="toNext",this.howMany=t,this.insertionPosition=o,this.graveyardPosition=i?i.clone():null,this.graveyardPosition&&(this.graveyardPosition.stickiness="toNext")}get type(){return"split"}get moveTargetPosition(){const e=this.insertionPosition.path.slice();return e.push(0),new ss(this.insertionPosition.root,e)}get movedRange(){const e=this.splitPosition.getShiftedBy(Number.POSITIVE_INFINITY);return new us(this.splitPosition,e)}get affectedSelectable(){const e=[us._createFromPositionAndShift(this.splitPosition,0),us._createFromPositionAndShift(this.insertionPosition,0)];return this.graveyardPosition&&e.push(us._createFromPositionAndShift(this.graveyardPosition,0)),e}clone(){return new Wr(this.splitPosition,this.howMany,this.insertionPosition,this.graveyardPosition,this.baseVersion)}getReversed(){const e=this.splitPosition.root.document.graveyard,t=new ss(e,[0]);return new Ur(this.moveTargetPosition,this.howMany,this.splitPosition,t,this.baseVersion+1)}_validate(){const e=this.splitPosition.parent,t=this.splitPosition.offset;if(!e||e.maxOffset1&&e.sourcePosition.isEqual(t.deletionPosition)?this._setRelation(e,t,"firstToMoveMerged"):e.howMany>1&&e.sourcePosition.getShiftedBy(e.howMany-1).isEqual(t.deletionPosition)&&this._setRelation(e,t,"lastToMoveMerged"):t instanceof $r&&(e.targetPosition.isEqual(t.sourcePosition)||e.targetPosition.isBefore(t.sourcePosition)?this._setRelation(e,t,"insertBefore"):this._setRelation(e,t,"insertAfter"));else if(e instanceof Wr){if(t instanceof Ur)e.splitPosition.isBefore(t.sourcePosition)&&this._setRelation(e,t,"splitBefore");else if(t instanceof $r)if(e.splitPosition.isEqual(t.sourcePosition)||e.splitPosition.isBefore(t.sourcePosition))this._setRelation(e,t,"splitBefore");else{const o=us._createFromPositionAndShift(t.sourcePosition,t.howMany);if(e.splitPosition.hasSameParentAs(t.sourcePosition)&&o.containsPosition(e.splitPosition)){const i=o.end.offset-e.splitPosition.offset,n=e.splitPosition.offset-o.start.offset;this._setRelation(e,t,{howMany:i,offset:n})}}}else if(e instanceof Ur)t instanceof Ur?(e.targetPosition.isEqual(t.sourcePosition)||this._setRelation(e,t,"mergeTargetNotMoved"),e.sourcePosition.isEqual(t.targetPosition)&&this._setRelation(e,t,"mergeSourceNotMoved"),e.sourcePosition.isEqual(t.sourcePosition)&&this._setRelation(e,t,"mergeSameElement")):t instanceof Wr?e.sourcePosition.isEqual(t.splitPosition)&&this._setRelation(e,t,"splitAtSource"):t instanceof $r&&t.howMany>0&&(e.sourcePosition.isEqual(t.sourcePosition.getShiftedBy(t.howMany))&&this._setRelation(e,t,"mergeSourceAffected"),e.targetPosition.isEqual(t.sourcePosition)&&this._setRelation(e,t,"mergeTargetWasBefore"));else if(e instanceof Kr){const o=e.newRange;if(!o)return;if(t instanceof Ur){const i=o.start.isEqual(t.targetPosition),n=o.start.isEqual(t.deletionPosition),s=o.end.isEqual(t.deletionPosition),r=o.end.isEqual(t.sourcePosition);(i||n||s||r)&&this._setRelation(e,t,{wasInLeftElement:i,wasStartBeforeMergedElement:n,wasEndBeforeMergedElement:s,wasInRightElement:r})}}}getContext(e,t,o){return{aIsStrong:o,aWasUndone:this._wasUndone(e),bWasUndone:this._wasUndone(t),abRelation:this._useRelations?this._getRelation(e,t):null,baRelation:this._useRelations?this._getRelation(t,e):null,forceWeakRemove:this._forceWeakRemove}}_wasUndone(e){const t=this.originalOperations.get(e);return t.wasUndone||this._history.isUndoneOperation(t)}_getRelation(e,t){const o=this.originalOperations.get(t),i=this._history.getUndoneOperation(o);if(!i)return null;const n=this.originalOperations.get(e),s=this._relations.get(n);return s&&s.get(i)||null}_setRelation(e,t,o){const i=this.originalOperations.get(e),n=this.originalOperations.get(t);let s=this._relations.get(i);s||(s=new Map,this._relations.set(i,s)),s.set(n,o)}}function aa(e,t){for(const o of e)o.baseVersion=t++}function la(e,t){for(let o=0;o{if(e.key===t.key&&e.range.start.hasSameParentAs(t.range.start)){const i=e.range.getDifference(t.range).map((t=>new Gr(t,e.key,e.oldValue,e.newValue,0))),n=e.range.getIntersection(t.range);return n&&o.aIsStrong&&i.push(new Gr(n,t.key,t.newValue,e.newValue,0)),0==i.length?[new Jr(0)]:i}return[e]})),oa(Gr,Hr,((e,t)=>{if(e.range.start.hasSameParentAs(t.position)&&e.range.containsPosition(t.position)){const o=e.range._getTransformedByInsertion(t.position,t.howMany,!t.shouldReceiveAttributes).map((t=>new Gr(t,e.key,e.oldValue,e.newValue,e.baseVersion)));if(t.shouldReceiveAttributes){const i=da(t,e.key,e.oldValue);i&&o.unshift(i)}return o}return e.range=e.range._getTransformedByInsertion(t.position,t.howMany,!1)[0],[e]})),oa(Gr,Ur,((e,t)=>{const o=[];e.range.start.hasSameParentAs(t.deletionPosition)&&(e.range.containsPosition(t.deletionPosition)||e.range.start.isEqual(t.deletionPosition))&&o.push(us._createFromPositionAndShift(t.graveyardPosition,1));const i=e.range._getTransformedByMergeOperation(t);return i.isCollapsed||o.push(i),o.map((t=>new Gr(t,e.key,e.oldValue,e.newValue,e.baseVersion)))})),oa(Gr,$r,((e,t)=>{const o=function(e,t){const o=us._createFromPositionAndShift(t.sourcePosition,t.howMany);let i=null,n=[];o.containsRange(e,!0)?i=e:e.start.hasSameParentAs(o.start)?(n=e.getDifference(o),i=e.getIntersection(o)):n=[e];const s=[];for(let e of n){e=e._getTransformedByDeletion(t.sourcePosition,t.howMany);const o=t.getMovedRangeStart(),i=e.start.hasSameParentAs(o),n=e._getTransformedByInsertion(o,t.howMany,i);s.push(...n)}i&&s.push(i._getTransformedByMove(t.sourcePosition,t.targetPosition,t.howMany,!1)[0]);return s}(e.range,t);return o.map((t=>new Gr(t,e.key,e.oldValue,e.newValue,e.baseVersion)))})),oa(Gr,Wr,((e,t)=>{if(e.range.end.isEqual(t.insertionPosition))return t.graveyardPosition||e.range.end.offset++,[e];if(e.range.start.hasSameParentAs(t.splitPosition)&&e.range.containsPosition(t.splitPosition)){const o=e.clone();return o.range=new us(t.moveTargetPosition.clone(),e.range.end._getCombined(t.splitPosition,t.moveTargetPosition)),e.range.end=t.splitPosition.clone(),e.range.end.stickiness="toPrevious",[e,o]}return e.range=e.range._getTransformedBySplitOperation(t),[e]})),oa(Hr,Gr,((e,t)=>{const o=[e];if(e.shouldReceiveAttributes&&e.position.hasSameParentAs(t.range.start)&&t.range.containsPosition(e.position)){const i=da(e,t.key,t.newValue);i&&o.push(i)}return o})),oa(Hr,Hr,((e,t,o)=>(e.position.isEqual(t.position)&&o.aIsStrong||(e.position=e.position._getTransformedByInsertOperation(t)),[e]))),oa(Hr,$r,((e,t)=>(e.position=e.position._getTransformedByMoveOperation(t),[e]))),oa(Hr,Wr,((e,t)=>(e.position=e.position._getTransformedBySplitOperation(t),[e]))),oa(Hr,Ur,((e,t)=>(e.position=e.position._getTransformedByMergeOperation(t),[e]))),oa(Kr,Hr,((e,t)=>(e.oldRange&&(e.oldRange=e.oldRange._getTransformedByInsertOperation(t)[0]),e.newRange&&(e.newRange=e.newRange._getTransformedByInsertOperation(t)[0]),[e]))),oa(Kr,Kr,((e,t,o)=>{if(e.name==t.name){if(!o.aIsStrong)return[new Jr(0)];e.oldRange=t.newRange?t.newRange.clone():null}return[e]})),oa(Kr,Ur,((e,t)=>(e.oldRange&&(e.oldRange=e.oldRange._getTransformedByMergeOperation(t)),e.newRange&&(e.newRange=e.newRange._getTransformedByMergeOperation(t)),[e]))),oa(Kr,$r,((e,t)=>{const o=[e];if(e.oldRange&&(e.oldRange=us._createFromRanges(e.oldRange._getTransformedByMoveOperation(t))),e.newRange){const i=e.newRange._getTransformedByMoveOperation(t);e.newRange=i[0];for(let t=1;t{if(e.oldRange&&(e.oldRange=e.oldRange._getTransformedBySplitOperation(t)),e.newRange){if(o.abRelation){const i=e.newRange._getTransformedBySplitOperation(t);return e.newRange.start.isEqual(t.splitPosition)?o.abRelation.wasStartBeforeMergedElement?e.newRange.start=ss._createAt(t.insertionPosition):o.abRelation.wasInLeftElement?e.newRange.start=ss._createAt(e.newRange.start):e.newRange.start=ss._createAt(t.moveTargetPosition):e.newRange.start=i.start,e.newRange.end.isEqual(t.splitPosition)?e.newRange.end.isEqual(t.splitPosition)&&o.abRelation.wasEndBeforeMergedElement?e.newRange.end=ss._createAt(t.insertionPosition):o.abRelation.wasInRightElement?e.newRange.end=ss._createAt(t.moveTargetPosition):e.newRange.end=ss._createAt(e.newRange.end):e.newRange.end=i.end,[e]}e.newRange=e.newRange._getTransformedBySplitOperation(t)}return[e]})),oa(Ur,Hr,((e,t)=>(e.sourcePosition.hasSameParentAs(t.position)&&(e.howMany+=t.howMany),e.sourcePosition=e.sourcePosition._getTransformedByInsertOperation(t),e.targetPosition=e.targetPosition._getTransformedByInsertOperation(t),[e]))),oa(Ur,Ur,((e,t,o)=>{if(e.sourcePosition.isEqual(t.sourcePosition)&&e.targetPosition.isEqual(t.targetPosition)){if(o.bWasUndone){const o=t.graveyardPosition.path.slice();return o.push(0),e.sourcePosition=new ss(t.graveyardPosition.root,o),e.howMany=0,[e]}return[new Jr(0)]}if(e.sourcePosition.isEqual(t.sourcePosition)&&!e.targetPosition.isEqual(t.targetPosition)&&!o.bWasUndone&&"splitAtSource"!=o.abRelation){const i="$graveyard"==e.targetPosition.root.rootName,n="$graveyard"==t.targetPosition.root.rootName;if(n&&!i||!(i&&!n)&&o.aIsStrong){const o=t.targetPosition._getTransformedByMergeOperation(t),i=e.targetPosition._getTransformedByMergeOperation(t);return[new $r(o,e.howMany,i,0)]}return[new Jr(0)]}return e.sourcePosition.hasSameParentAs(t.targetPosition)&&(e.howMany+=t.howMany),e.sourcePosition=e.sourcePosition._getTransformedByMergeOperation(t),e.targetPosition=e.targetPosition._getTransformedByMergeOperation(t),e.graveyardPosition.isEqual(t.graveyardPosition)&&o.aIsStrong||(e.graveyardPosition=e.graveyardPosition._getTransformedByMergeOperation(t)),[e]})),oa(Ur,$r,((e,t,o)=>{const i=us._createFromPositionAndShift(t.sourcePosition,t.howMany);return"remove"==t.type&&!o.bWasUndone&&e.deletionPosition.hasSameParentAs(t.sourcePosition)&&i.containsPosition(e.sourcePosition)?[new Jr(0)]:(t.sourcePosition.getShiftedBy(t.howMany).isEqual(e.sourcePosition)?e.sourcePosition.stickiness="toNone":t.targetPosition.isEqual(e.sourcePosition)&&"mergeSourceAffected"==o.abRelation?e.sourcePosition.stickiness="toNext":t.sourcePosition.isEqual(e.targetPosition)?(e.targetPosition.stickiness="toNone",e.howMany-=t.howMany):t.targetPosition.isEqual(e.targetPosition)&&"mergeTargetWasBefore"==o.abRelation?(e.targetPosition.stickiness="toPrevious",e.howMany+=t.howMany):(e.sourcePosition.hasSameParentAs(t.targetPosition)&&(e.howMany+=t.howMany),e.sourcePosition.hasSameParentAs(t.sourcePosition)&&(e.howMany-=t.howMany)),e.sourcePosition=e.sourcePosition._getTransformedByMoveOperation(t),e.targetPosition=e.targetPosition._getTransformedByMoveOperation(t),e.sourcePosition.stickiness="toPrevious",e.targetPosition.stickiness="toNext",e.graveyardPosition.isEqual(t.targetPosition)||(e.graveyardPosition=e.graveyardPosition._getTransformedByMoveOperation(t)),[e])})),oa(Ur,Wr,((e,t,o)=>{if(t.graveyardPosition&&(e.graveyardPosition=e.graveyardPosition._getTransformedByDeletion(t.graveyardPosition,1),e.deletionPosition.isEqual(t.graveyardPosition)&&(e.howMany=t.howMany)),e.targetPosition.isEqual(t.splitPosition)){if(t.graveyardPosition&&e.deletionPosition.isEqual(t.graveyardPosition)||"mergeTargetNotMoved"==o.abRelation)return e.sourcePosition=e.sourcePosition._getTransformedBySplitOperation(t),[e]}if(e.sourcePosition.isEqual(t.splitPosition)){if("mergeSourceNotMoved"==o.abRelation)return e.howMany=0,e.targetPosition=e.targetPosition._getTransformedBySplitOperation(t),[e];if("mergeSameElement"==o.abRelation||e.sourcePosition.offset>0)return e.sourcePosition=t.moveTargetPosition.clone(),e.targetPosition=e.targetPosition._getTransformedBySplitOperation(t),[e]}return e.sourcePosition.hasSameParentAs(t.splitPosition)&&(e.howMany=t.splitPosition.offset),e.sourcePosition=e.sourcePosition._getTransformedBySplitOperation(t),e.targetPosition=e.targetPosition._getTransformedBySplitOperation(t),[e]})),oa($r,Hr,((e,t)=>{const o=us._createFromPositionAndShift(e.sourcePosition,e.howMany)._getTransformedByInsertOperation(t,!1)[0];return e.sourcePosition=o.start,e.howMany=o.end.offset-o.start.offset,e.targetPosition.isEqual(t.position)||(e.targetPosition=e.targetPosition._getTransformedByInsertOperation(t)),[e]})),oa($r,$r,((e,t,o)=>{const i=us._createFromPositionAndShift(e.sourcePosition,e.howMany),n=us._createFromPositionAndShift(t.sourcePosition,t.howMany);let s,r=o.aIsStrong,a=!o.aIsStrong;if("insertBefore"==o.abRelation||"insertAfter"==o.baRelation?a=!0:"insertAfter"!=o.abRelation&&"insertBefore"!=o.baRelation||(a=!1),s=e.targetPosition.isEqual(t.targetPosition)&&a?e.targetPosition._getTransformedByDeletion(t.sourcePosition,t.howMany):e.targetPosition._getTransformedByMove(t.sourcePosition,t.targetPosition,t.howMany),ua(e,t)&&ua(t,e))return[t.getReversed()];if(i.containsPosition(t.targetPosition)&&i.containsRange(n,!0))return i.start=i.start._getTransformedByMove(t.sourcePosition,t.targetPosition,t.howMany),i.end=i.end._getTransformedByMove(t.sourcePosition,t.targetPosition,t.howMany),ha([i],s);if(n.containsPosition(e.targetPosition)&&n.containsRange(i,!0))return i.start=i.start._getCombined(t.sourcePosition,t.getMovedRangeStart()),i.end=i.end._getCombined(t.sourcePosition,t.getMovedRangeStart()),ha([i],s);const l=We(e.sourcePosition.getParentPath(),t.sourcePosition.getParentPath());if("prefix"==l||"extension"==l)return i.start=i.start._getTransformedByMove(t.sourcePosition,t.targetPosition,t.howMany),i.end=i.end._getTransformedByMove(t.sourcePosition,t.targetPosition,t.howMany),ha([i],s);"remove"!=e.type||"remove"==t.type||o.aWasUndone||o.forceWeakRemove?"remove"==e.type||"remove"!=t.type||o.bWasUndone||o.forceWeakRemove||(r=!1):r=!0;const c=[],d=i.getDifference(n);for(const e of d){e.start=e.start._getTransformedByDeletion(t.sourcePosition,t.howMany),e.end=e.end._getTransformedByDeletion(t.sourcePosition,t.howMany);const o="same"==We(e.start.getParentPath(),t.getMovedRangeStart().getParentPath()),i=e._getTransformedByInsertion(t.getMovedRangeStart(),t.howMany,o);c.push(...i)}const u=i.getIntersection(n);return null!==u&&r&&(u.start=u.start._getCombined(t.sourcePosition,t.getMovedRangeStart()),u.end=u.end._getCombined(t.sourcePosition,t.getMovedRangeStart()),0===c.length?c.push(u):1==c.length?n.start.isBefore(i.start)||n.start.isEqual(i.start)?c.unshift(u):c.push(u):c.splice(1,0,u)),0===c.length?[new Jr(e.baseVersion)]:ha(c,s)})),oa($r,Wr,((e,t,o)=>{let i=e.targetPosition.clone();if(e.targetPosition.isEqual(t.insertionPosition)&&t.graveyardPosition&&"moveTargetAfter"!=o.abRelation||(i=e.targetPosition._getTransformedBySplitOperation(t)),e.sourcePosition.isEqual(t.insertionPosition)&&"firstToMoveMerged"==o.abRelation)return e.howMany++,e.targetPosition=i,[e];const n=us._createFromPositionAndShift(e.sourcePosition,e.howMany);if(n.end.isEqual(t.insertionPosition))return t.graveyardPosition&&"lastToMoveMerged"!=o.abRelation||e.howMany++,e.targetPosition=i,[e];if(n.start.hasSameParentAs(t.splitPosition)&&n.containsPosition(t.splitPosition)){let e=new us(t.splitPosition,n.end);e=e._getTransformedBySplitOperation(t);return ha([new us(n.start,t.splitPosition),e],i)}e.targetPosition.isEqual(t.splitPosition)&&"insertAtSource"==o.abRelation&&(i=t.moveTargetPosition),e.targetPosition.isEqual(t.insertionPosition)&&"insertBetween"==o.abRelation&&(i=e.targetPosition);const s=[n._getTransformedBySplitOperation(t)];if(t.graveyardPosition){const i=n.start.isEqual(t.graveyardPosition)||n.containsPosition(t.graveyardPosition);e.howMany>1&&i&&!o.aWasUndone&&s.push(us._createFromPositionAndShift(t.insertionPosition,1))}return ha(s,i)})),oa($r,Ur,((e,t,o)=>{const i=us._createFromPositionAndShift(e.sourcePosition,e.howMany);if(t.deletionPosition.hasSameParentAs(e.sourcePosition)&&i.containsPosition(t.sourcePosition))if("remove"!=e.type||o.forceWeakRemove){if(1==e.howMany)return o.bWasUndone?(e.sourcePosition=t.graveyardPosition.clone(),e.targetPosition=e.targetPosition._getTransformedByMergeOperation(t),[e]):[new Jr(0)]}else if(!o.aWasUndone){const o=[];let i=t.graveyardPosition.clone(),n=t.targetPosition._getTransformedByMergeOperation(t);const s=e.targetPosition.getTransformedByOperation(t);e.howMany>1&&(o.push(new $r(e.sourcePosition,e.howMany-1,s,0)),i=i._getTransformedByMove(e.sourcePosition,s,e.howMany-1),n=n._getTransformedByMove(e.sourcePosition,s,e.howMany-1));const r=t.deletionPosition._getCombined(e.sourcePosition,s),a=new $r(i,1,r,0),l=a.getMovedRangeStart().path.slice();l.push(0);const c=new ss(a.targetPosition.root,l);n=n._getTransformedByMove(i,r,1);const d=new $r(n,t.howMany,c,0);return o.push(a),o.push(d),o}const n=us._createFromPositionAndShift(e.sourcePosition,e.howMany)._getTransformedByMergeOperation(t);return e.sourcePosition=n.start,e.howMany=n.end.offset-n.start.offset,e.targetPosition=e.targetPosition._getTransformedByMergeOperation(t),[e]})),oa(Zr,Hr,((e,t)=>(e.position=e.position._getTransformedByInsertOperation(t),[e]))),oa(Zr,Ur,((e,t)=>e.position.isEqual(t.deletionPosition)?(e.position=t.graveyardPosition.clone(),e.position.stickiness="toNext",[e]):(e.position=e.position._getTransformedByMergeOperation(t),[e]))),oa(Zr,$r,((e,t)=>(e.position=e.position._getTransformedByMoveOperation(t),[e]))),oa(Zr,Zr,((e,t,o)=>{if(e.position.isEqual(t.position)){if(!o.aIsStrong)return[new Jr(0)];e.oldName=t.newName}return[e]})),oa(Zr,Wr,((e,t)=>{if("same"==We(e.position.path,t.splitPosition.getParentPath())&&!t.graveyardPosition){const t=new Zr(e.position.getShiftedBy(1),e.oldName,e.newName,0);return[e,t]}return e.position=e.position._getTransformedBySplitOperation(t),[e]})),oa(Qr,Qr,((e,t,o)=>{if(e.root===t.root&&e.key===t.key){if(!o.aIsStrong)return[new Jr(0)];e.oldValue=t.newValue}return[e]})),oa(Yr,Yr,((e,t)=>e.rootName===t.rootName&&e.isAdd===t.isAdd?[new Jr(0)]:[e])),oa(Wr,Hr,((e,t)=>(e.splitPosition.hasSameParentAs(t.position)&&e.splitPosition.offset{if(!e.graveyardPosition&&!o.bWasUndone&&e.splitPosition.hasSameParentAs(t.sourcePosition)){const o=t.graveyardPosition.path.slice();o.push(0);const i=new ss(t.graveyardPosition.root,o),n=Wr.getInsertionPosition(new ss(t.graveyardPosition.root,o)),s=new Wr(i,0,n,null,0);return e.splitPosition=e.splitPosition._getTransformedByMergeOperation(t),e.insertionPosition=Wr.getInsertionPosition(e.splitPosition),e.graveyardPosition=s.insertionPosition.clone(),e.graveyardPosition.stickiness="toNext",[s,e]}return e.splitPosition.hasSameParentAs(t.deletionPosition)&&!e.splitPosition.isAfter(t.deletionPosition)&&e.howMany--,e.splitPosition.hasSameParentAs(t.targetPosition)&&(e.howMany+=t.howMany),e.splitPosition=e.splitPosition._getTransformedByMergeOperation(t),e.insertionPosition=Wr.getInsertionPosition(e.splitPosition),e.graveyardPosition&&(e.graveyardPosition=e.graveyardPosition._getTransformedByMergeOperation(t)),[e]})),oa(Wr,$r,((e,t,o)=>{const i=us._createFromPositionAndShift(t.sourcePosition,t.howMany);if(e.graveyardPosition){const n=i.start.isEqual(e.graveyardPosition)||i.containsPosition(e.graveyardPosition);if(!o.bWasUndone&&n){const o=e.splitPosition._getTransformedByMoveOperation(t),i=e.graveyardPosition._getTransformedByMoveOperation(t),n=i.path.slice();n.push(0);const s=new ss(i.root,n);return[new $r(o,e.howMany,s,0)]}e.graveyardPosition=e.graveyardPosition._getTransformedByMoveOperation(t)}const n=e.splitPosition.isEqual(t.targetPosition);if(n&&("insertAtSource"==o.baRelation||"splitBefore"==o.abRelation))return e.howMany+=t.howMany,e.splitPosition=e.splitPosition._getTransformedByDeletion(t.sourcePosition,t.howMany),e.insertionPosition=Wr.getInsertionPosition(e.splitPosition),[e];if(n&&o.abRelation&&o.abRelation.howMany){const{howMany:t,offset:i}=o.abRelation;return e.howMany+=t,e.splitPosition=e.splitPosition.getShiftedBy(i),[e]}if(e.splitPosition.hasSameParentAs(t.sourcePosition)&&i.containsPosition(e.splitPosition)){const o=t.howMany-(e.splitPosition.offset-t.sourcePosition.offset);return e.howMany-=o,e.splitPosition.hasSameParentAs(t.targetPosition)&&e.splitPosition.offset{if(e.splitPosition.isEqual(t.splitPosition)){if(!e.graveyardPosition&&!t.graveyardPosition)return[new Jr(0)];if(e.graveyardPosition&&t.graveyardPosition&&e.graveyardPosition.isEqual(t.graveyardPosition))return[new Jr(0)];if("splitBefore"==o.abRelation)return e.howMany=0,e.graveyardPosition=e.graveyardPosition._getTransformedBySplitOperation(t),[e]}if(e.graveyardPosition&&t.graveyardPosition&&e.graveyardPosition.isEqual(t.graveyardPosition)){const i="$graveyard"==e.splitPosition.root.rootName,n="$graveyard"==t.splitPosition.root.rootName;if(n&&!i||!(i&&!n)&&o.aIsStrong){const o=[];return t.howMany&&o.push(new $r(t.moveTargetPosition,t.howMany,t.splitPosition,0)),e.howMany&&o.push(new $r(e.splitPosition,e.howMany,e.moveTargetPosition,0)),o}return[new Jr(0)]}if(e.graveyardPosition&&(e.graveyardPosition=e.graveyardPosition._getTransformedBySplitOperation(t)),e.splitPosition.isEqual(t.insertionPosition)&&"splitBefore"==o.abRelation)return e.howMany++,[e];if(t.splitPosition.isEqual(e.insertionPosition)&&"splitBefore"==o.baRelation){const o=t.insertionPosition.path.slice();o.push(0);const i=new ss(t.insertionPosition.root,o);return[e,new $r(e.insertionPosition,1,i,0)]}return e.splitPosition.hasSameParentAs(t.splitPosition)&&e.splitPosition.offset{const o=t[0];o.isDocumentOperation&&pa.call(this,o)}),{priority:"low"})}function pa(e){const t=this.getTransformedByOperation(e);if(!this.isEqual(t)){const e=this.toPosition();this.path=t.path,this.root=t.root,this.fire("change",e)}}ma.prototype.is=function(e){return"livePosition"===e||"model:livePosition"===e||"position"==e||"model:position"===e};class fa{operations;isUndoable;isLocal;isUndo;isTyping;constructor(e={}){"string"==typeof e&&(e="transparent"===e?{isUndoable:!1}:{},be("batch-constructor-deprecated-string-type"));const{isUndoable:t=!0,isLocal:o=!0,isUndo:i=!1,isTyping:n=!1}=e;this.operations=[],this.isUndoable=t,this.isLocal=o,this.isUndo=i,this.isTyping=n}get baseVersion(){for(const e of this.operations)if(null!==e.baseVersion)return e.baseVersion;return null}addOperation(e){return e.isDocumentOperation&&(e.batch=this,this.operations.push(e)),e}}class ba{static _statesPriority=[void 0,"refresh","rename","move"];_markerCollection;_changesInElement=new Map;_elementsSnapshots=new Map;_elementChildrenSnapshots=new Map;_elementState=new Map;_changedMarkers=new Map;_changedRoots=new Map;_changeCount=0;_cachedChanges=null;_cachedChangesWithGraveyard=null;_refreshedItems=new Set;constructor(e){this._markerCollection=e}get isEmpty(){return 0==this._changesInElement.size&&0==this._changedMarkers.size&&0==this._changedRoots.size}bufferOperation(e){const t=e;switch(t.type){case"insert":if(this._isInInsertedElement(t.position.parent))return;this._markInsert(t.position.parent,t.position.offset,t.nodes.maxOffset);break;case"addAttribute":case"removeAttribute":case"changeAttribute":for(const e of t.range.getItems({shallow:!0}))this._isInInsertedElement(e.parent)||this._markAttribute(e);break;case"remove":case"move":case"reinsert":{if(t.sourcePosition.isEqual(t.targetPosition)||t.sourcePosition.getShiftedBy(t.howMany).isEqual(t.targetPosition))return;const e=this._isInInsertedElement(t.sourcePosition.parent),o=this._isInInsertedElement(t.targetPosition.parent);e||this._markRemove(t.sourcePosition.parent,t.sourcePosition.offset,t.howMany),o||this._markInsert(t.targetPosition.parent,t.getMovedRangeStart().offset,t.howMany);const i=us._createFromPositionAndShift(t.sourcePosition,t.howMany);for(const e of i.getItems({shallow:!0}))this._setElementState(e,"move");break}case"rename":{if(this._isInInsertedElement(t.position.parent))return;this._markRemove(t.position.parent,t.position.offset,1),this._markInsert(t.position.parent,t.position.offset,1);const e=us._createFromPositionAndShift(t.position,1);for(const t of this._markerCollection.getMarkersIntersectingRange(e)){const e=t.getData();this.bufferMarkerChange(t.name,e,e)}this._setElementState(t.position.nodeAfter,"rename");break}case"split":{const e=t.splitPosition.parent;if(!this._isInInsertedElement(e)){this._markRemove(e,t.splitPosition.offset,t.howMany);const o=us._createFromPositionAndShift(t.splitPosition,t.howMany);for(const e of o.getItems({shallow:!0}))this._setElementState(e,"move")}this._isInInsertedElement(t.insertionPosition.parent)||this._markInsert(t.insertionPosition.parent,t.insertionPosition.offset,1),t.graveyardPosition&&(this._markRemove(t.graveyardPosition.parent,t.graveyardPosition.offset,1),this._setElementState(t.graveyardPosition.nodeAfter,"move"));break}case"merge":{const e=t.sourcePosition.parent;this._isInInsertedElement(e.parent)||this._markRemove(e.parent,e.startOffset,1);const o=t.graveyardPosition.parent;this._markInsert(o,t.graveyardPosition.offset,1),this._setElementState(e,"move");const i=t.targetPosition.parent;if(!this._isInInsertedElement(i)){this._markInsert(i,t.targetPosition.offset,e.maxOffset);const o=us._createFromPositionAndShift(t.sourcePosition,t.howMany);for(const e of o.getItems({shallow:!0}))this._setElementState(e,"move")}break}case"detachRoot":case"addRoot":{const e=t.affectedSelectable;if(!e._isLoaded)return;if(e.isAttached()==t.isAdd)return;this._bufferRootStateChange(t.rootName,t.isAdd);break}case"addRootAttribute":case"removeRootAttribute":case"changeRootAttribute":{if(!t.root._isLoaded)return;const e=t.root.rootName;this._bufferRootAttributeChange(e,t.key,t.oldValue,t.newValue);break}}this._cachedChanges=null}bufferMarkerChange(e,t,o){t.range&&t.range.root.is("rootElement")&&!t.range.root._isLoaded&&(t.range=null),o.range&&o.range.root.is("rootElement")&&!o.range.root._isLoaded&&(o.range=null);let i=this._changedMarkers.get(e);i?i.newMarkerData=o:(i={newMarkerData:o,oldMarkerData:t},this._changedMarkers.set(e,i)),null==i.oldMarkerData.range&&null==o.range&&this._changedMarkers.delete(e)}getMarkersToRemove(){const e=[];for(const[t,o]of this._changedMarkers)null!=o.oldMarkerData.range&&e.push({name:t,range:o.oldMarkerData.range});return e}getMarkersToAdd(){const e=[];for(const[t,o]of this._changedMarkers)null!=o.newMarkerData.range&&e.push({name:t,range:o.newMarkerData.range});return e}getChangedMarkers(){return Array.from(this._changedMarkers).map((([e,t])=>({name:e,data:{oldRange:t.oldMarkerData.range,newRange:t.newMarkerData.range}})))}hasDataChanges(){if(this.getChanges().length)return!0;if(this._changedRoots.size>0)return!0;for(const{newMarkerData:e,oldMarkerData:t}of this._changedMarkers.values()){if(e.affectsData!==t.affectsData)return!0;if(e.affectsData){const o=e.range&&!t.range,i=!e.range&&t.range,n=e.range&&t.range&&!e.range.isEqual(t.range);if(o||i||n)return!0}}return!1}getChanges(e={}){if(this._cachedChanges)return e.includeChangesInGraveyard?this._cachedChangesWithGraveyard.slice():this._cachedChanges.slice();let t=[];for(const e of this._changesInElement.keys()){const o=this._changesInElement.get(e).sort(((e,t)=>e.offset===t.offset?e.type!=t.type?"remove"==e.type?-1:1:0:e.offsete.position.root!=t.position.root?e.position.root.rootNamee));for(const e of t)delete e.changeCount,"attribute"==e.type&&(delete e.position,delete e.length);return this._changeCount=0,this._cachedChangesWithGraveyard=t,this._cachedChanges=t.filter(ka),e.includeChangesInGraveyard?this._cachedChangesWithGraveyard.slice():this._cachedChanges.slice()}getChangedRoots(){return Array.from(this._changedRoots.values()).map((e=>{const t={...e};return void 0!==t.state&&delete t.attributes,t}))}getRefreshedItems(){return new Set(this._refreshedItems)}reset(){this._changesInElement.clear(),this._elementChildrenSnapshots.clear(),this._elementsSnapshots.clear(),this._elementState.clear(),this._changedMarkers.clear(),this._changedRoots.clear(),this._refreshedItems.clear(),this._cachedChanges=null}_refreshItem(e){if(this._isInInsertedElement(e.parent))return;this._markRemove(e.parent,e.startOffset,e.offsetSize),this._markInsert(e.parent,e.startOffset,e.offsetSize),this._refreshedItems.add(e),this._setElementState(e,"refresh");const t=us._createOn(e);for(const e of this._markerCollection.getMarkersIntersectingRange(t)){const t=e.getData();this.bufferMarkerChange(e.name,t,t)}this._cachedChanges=null}_bufferRootLoad(e){if(e.isAttached()){this._bufferRootStateChange(e.rootName,!0),this._markInsert(e,0,e.maxOffset);for(const t of e.getAttributeKeys())this._bufferRootAttributeChange(e.rootName,t,null,e.getAttribute(t));for(const t of this._markerCollection)if(t.getRange().root==e){const e=t.getData();this.bufferMarkerChange(t.name,{...e,range:null},e)}}}_bufferRootStateChange(e,t){if(!this._changedRoots.has(e))return void this._changedRoots.set(e,{name:e,state:t?"attached":"detached"});const o=this._changedRoots.get(e);void 0!==o.state?(delete o.state,void 0===o.attributes&&this._changedRoots.delete(e)):o.state=t?"attached":"detached"}_bufferRootAttributeChange(e,t,o,i){const n=this._changedRoots.get(e)||{name:e},s=n.attributes||{};if(s[t]){const e=s[t];i===e.oldValue?delete s[t]:e.newValue=i}else s[t]={oldValue:o,newValue:i};0===Object.entries(s).length?(delete n.attributes,void 0===n.state&&this._changedRoots.delete(e)):(n.attributes=s,this._changedRoots.set(e,n))}_markInsert(e,t,o){if(e.root.is("rootElement")&&!e.root._isLoaded)return;const i={type:"insert",offset:t,howMany:o,count:this._changeCount++};this._markChange(e,i)}_markRemove(e,t,o){if(e.root.is("rootElement")&&!e.root._isLoaded)return;const i={type:"remove",offset:t,howMany:o,count:this._changeCount++};this._markChange(e,i),this._removeAllNestedChanges(e,t,o)}_markAttribute(e){if(e.root.is("rootElement")&&!e.root._isLoaded)return;const t={type:"attribute",offset:e.startOffset,howMany:e.offsetSize,count:this._changeCount++};this._markChange(e.parent,t)}_markChange(e,t){this._makeSnapshots(e);const o=this._getChangesForElement(e);this._handleChange(t,o),o.push(t);for(let e=0;eo&&this._elementState.set(e,t)}_getDiffActionForNode(e,t){if(!e.is("element"))return t;if(!this._elementsSnapshots.has(e))return t;const o=this._elementState.get(e);return o&&"move"!=o?o:t}_getChangesForElement(e){let t;return this._changesInElement.has(e)?t=this._changesInElement.get(e):(t=[],this._changesInElement.set(e,t)),t}_makeSnapshots(e){if(this._elementChildrenSnapshots.has(e))return;const t=ya(e.getChildren());this._elementChildrenSnapshots.set(e,t);for(const e of t)this._elementsSnapshots.set(e.node,e)}_handleChange(e,t){e.nodesToHandle=e.howMany;for(const o of t){const i=e.offset+e.howMany,n=o.offset+o.howMany;if("insert"==e.type&&("insert"==o.type&&(e.offset<=o.offset?o.offset+=e.howMany:e.offseto.offset){if(i>n){const e={type:"attribute",offset:n,howMany:i-n,count:this._changeCount++};this._handleChange(e,t),t.push(e)}e.nodesToHandle=o.offset-e.offset,e.howMany=e.nodesToHandle}else e.offset>=o.offset&&e.offsetn?(e.nodesToHandle=i-n,e.offset=n):e.nodesToHandle=0);if("remove"==o.type&&e.offseto.offset){const n={type:"attribute",offset:o.offset,howMany:i-o.offset,count:this._changeCount++};this._handleChange(n,t),t.push(n),e.nodesToHandle=o.offset-e.offset,e.howMany=e.nodesToHandle}"attribute"==o.type&&(e.offset>=o.offset&&i<=n?(e.nodesToHandle=0,e.howMany=0,e.offset=0):e.offset<=o.offset&&i>=n&&(o.howMany=0))}}e.howMany=e.nodesToHandle,delete e.nodesToHandle}_getInsertDiff(e,t,o,i,n){const s={type:"insert",position:ss._createAt(e,t),name:i.name,attributes:new Map(i.attributes),length:1,changeCount:this._changeCount++,action:o};return"insert"!=o&&n&&(s.before={name:n.name,attributes:new Map(n.attributes)}),s}_getRemoveDiff(e,t,o,i){return{type:"remove",action:o,position:ss._createAt(e,t),name:i.name,attributes:new Map(i.attributes),length:1,changeCount:this._changeCount++}}_getAttributesDiff(e,t,o){const i=[];o=new Map(o);for(const[n,s]of t){const t=o.has(n)?o.get(n):null;t!==s&&i.push({type:"attribute",position:e.start,range:e.clone(),length:1,attributeKey:n,attributeOldValue:s,attributeNewValue:t,changeCount:this._changeCount++}),o.delete(n)}for(const[t,n]of o)i.push({type:"attribute",position:e.start,range:e.clone(),length:1,attributeKey:t,attributeOldValue:null,attributeNewValue:n,changeCount:this._changeCount++});return i}_isInInsertedElement(e){const t=e.parent;if(!t)return!1;const o=this._changesInElement.get(t),i=e.startOffset;if(o)for(const e of o)if("insert"==e.type&&i>=e.offset&&ii){for(let t=0;t1500)for(let t=0;tthis._version+1&&this._gaps.set(this._version,e),this._version=e}get lastOperation(){return this._operations[this._operations.length-1]}addOperation(e){if(e.baseVersion!==this.version)throw new fe("model-document-history-addoperation-incorrect-version",this,{operation:e,historyVersion:this.version});this._operations.push(e),this._version++,this._baseVersionToOperationIndex.set(e.baseVersion,this._operations.length-1)}getOperations(e,t=this.version){if(!this._operations.length)return[];const o=this._operations[0];void 0===e&&(e=o.baseVersion);let i=t-1;for(const[t,o]of this._gaps)e>t&&et&&ithis.lastOperation.baseVersion)return[];let n=this._baseVersionToOperationIndex.get(e);void 0===n&&(n=0);let s=this._baseVersionToOperationIndex.get(i);return void 0===s&&(s=this._operations.length-1),this._operations.slice(n,s+1)}getOperation(e){const t=this._baseVersionToOperationIndex.get(e);if(void 0!==t)return this._operations[t]}setOperationAsUndone(e,t){this._undoPairs.set(t,e),this._undoneOperations.add(e)}isUndoingOperation(e){return this._undoPairs.has(e)}isUndoneOperation(e){return this._undoneOperations.has(e)}getUndoneOperation(e){return this._undoPairs.get(e)}reset(){this._version=0,this._undoPairs=new Map,this._operations=[],this._undoneOperations=new Set,this._gaps=new Map,this._baseVersionToOperationIndex=new Map}}class Ca extends Ms{rootName;_document;_isAttached=!0;_isLoaded=!0;constructor(e,t,o="main"){super(t),this._document=e,this.rootName=o}get document(){return this._document}isAttached(){return this._isAttached}toJSON(){return this.rootName}}Ca.prototype.is=function(e,t){return t?t===this.name&&("rootElement"===e||"model:rootElement"===e||"element"===e||"model:element"===e):"rootElement"===e||"model:rootElement"===e||"element"===e||"model:element"===e||"node"===e||"model:node"===e};const Aa="$graveyard";class xa extends(xe()){model;history;selection;roots;differ;isReadOnly;_postFixers;_hasSelectionChangedFromTheLastChangeBlock;constructor(e){super(),this.model=e,this.history=new va,this.selection=new Os(this),this.roots=new eo({idProperty:"rootName"}),this.differ=new ba(e.markers),this.isReadOnly=!1,this._postFixers=new Set,this._hasSelectionChangedFromTheLastChangeBlock=!1,this.createRoot("$root",Aa),this.listenTo(e,"applyOperation",((e,t)=>{const o=t[0];o.isDocumentOperation&&this.differ.bufferOperation(o)}),{priority:"high"}),this.listenTo(e,"applyOperation",((e,t)=>{const o=t[0];o.isDocumentOperation&&this.history.addOperation(o)}),{priority:"low"}),this.listenTo(this.selection,"change",(()=>{this._hasSelectionChangedFromTheLastChangeBlock=!0})),this.listenTo(e.markers,"update",((e,t,o,i,n)=>{const s={...t.getData(),range:i};this.differ.bufferMarkerChange(t.name,n,s),null===o&&t.on("change",((e,o)=>{const i=t.getData();this.differ.bufferMarkerChange(t.name,{...i,range:o},i)}))})),this.registerPostFixer((e=>{let t=!1;for(const o of this.roots)o.isAttached()||o.isEmpty||(e.remove(e.createRangeIn(o)),t=!0);for(const o of this.model.markers)o.getRange().root.isAttached()||(e.removeMarker(o),t=!0);return t}))}get version(){return this.history.version}set version(e){this.history.version=e}get graveyard(){return this.getRoot(Aa)}createRoot(e="$root",t="main"){if(this.roots.get(t))throw new fe("model-document-createroot-name-exists",this,{name:t});const o=new Ca(this,e,t);return this.roots.add(o),o}destroy(){this.selection.destroy(),this.stopListening()}getRoot(e="main"){return this.roots.get(e)}getRootNames(e=!1){return this.getRoots(e).map((e=>e.rootName))}getRoots(e=!1){return this.roots.filter((t=>t!=this.graveyard&&(e||t.isAttached())&&t._isLoaded))}registerPostFixer(e){this._postFixers.add(e)}toJSON(){const e=Go(this);return e.selection="[engine.model.DocumentSelection]",e.model="[engine.model.Model]",e}_handleChangeBlock(e){this._hasDocumentChangedFromTheLastChangeBlock()&&(this._callPostFixers(e),this.selection.refresh(),this.differ.hasDataChanges()?this.fire("change:data",e.batch):this.fire("change",e.batch),this.selection.refresh(),this.differ.reset()),this._hasSelectionChangedFromTheLastChangeBlock=!1}_hasDocumentChangedFromTheLastChangeBlock(){return!this.differ.isEmpty||this._hasSelectionChangedFromTheLastChangeBlock}_getDefaultRoot(){const e=this.getRoots();return e.length?e[0]:this.graveyard}_getDefaultRange(){const e=this._getDefaultRoot(),t=this.model,o=t.schema,i=t.createPositionFromPath(e,[0]);return o.getNearestSelectionRange(i)||t.createRange(i)}_validateSelectionRange(e){return e.start.isValid()&&e.end.isValid()&&Ea(e.start)&&Ea(e.end)}_callPostFixers(e){let t=!1;do{for(const o of this._postFixers)if(this.selection.refresh(),t=o(e),t)break}while(t)}}function Ea(e){const t=e.textNode;if(t){const o=t.data,i=e.offset-t.startOffset;return!ho(o,i)&&!mo(o,i)}return!0}class Ta extends(xe()){_markers=new Map;[Symbol.iterator](){return this._markers.values()}has(e){const t=e instanceof Pa?e.name:e;return this._markers.has(t)}get(e){return this._markers.get(e)||null}_set(e,t,o=!1,i=!1){const n=e instanceof Pa?e.name:e;if(n.includes(","))throw new fe("markercollection-incorrect-marker-name",this);const s=this._markers.get(n);if(s){const e=s.getData(),r=s.getRange();let a=!1;return r.isEqual(t)||(s._attachLiveRange(Ts.fromRange(t)),a=!0),o!=s.managedUsingOperations&&(s._managedUsingOperations=o,a=!0),"boolean"==typeof i&&i!=s.affectsData&&(s._affectsData=i,a=!0),a&&this.fire(`update:${n}`,s,r,t,e),s}const r=Ts.fromRange(t),a=new Pa(n,r,o,i);return this._markers.set(n,a),this.fire(`update:${n}`,a,null,t,{...a.getData(),range:null}),a}_remove(e){const t=e instanceof Pa?e.name:e,o=this._markers.get(t);return!!o&&(this._markers.delete(t),this.fire(`update:${t}`,o,o.getRange(),null,o.getData()),this._destroyMarker(o),!0)}_refresh(e){const t=e instanceof Pa?e.name:e,o=this._markers.get(t);if(!o)throw new fe("markercollection-refresh-marker-not-exists",this);const i=o.getRange();this.fire(`update:${t}`,o,i,i,o.getData())}*getMarkersAtPosition(e){for(const t of this)t.getRange().containsPosition(e)&&(yield t)}*getMarkersIntersectingRange(e){for(const t of this)null!==t.getRange().getIntersection(e)&&(yield t)}destroy(){for(const e of this._markers.values())this._destroyMarker(e);this._markers=null,this.stopListening()}*getMarkersGroup(e){for(const t of this._markers.values())t.name.startsWith(e+":")&&(yield t)}_destroyMarker(e){e.stopListening(),e._detachLiveRange()}}class Pa extends(xe(ts)){name;_managedUsingOperations;_affectsData;_liveRange;constructor(e,t,o,i){super(),this.name=e,this._liveRange=this._attachLiveRange(t),this._managedUsingOperations=o,this._affectsData=i}get managedUsingOperations(){if(!this._liveRange)throw new fe("marker-destroyed",this);return this._managedUsingOperations}get affectsData(){if(!this._liveRange)throw new fe("marker-destroyed",this);return this._affectsData}getData(){return{range:this.getRange(),affectsData:this.affectsData,managedUsingOperations:this.managedUsingOperations}}getStart(){if(!this._liveRange)throw new fe("marker-destroyed",this);return this._liveRange.start.clone()}getEnd(){if(!this._liveRange)throw new fe("marker-destroyed",this);return this._liveRange.end.clone()}getRange(){if(!this._liveRange)throw new fe("marker-destroyed",this);return this._liveRange.toRange()}toJSON(){return{name:this.name,range:this._liveRange?.toJSON(),usingOperations:this._managedUsingOperations,affectsData:this._affectsData}}_attachLiveRange(e){return this._liveRange&&this._detachLiveRange(),e.delegate("change:range").to(this),e.delegate("change:content").to(this),this._liveRange=e,e}_detachLiveRange(){this._liveRange.stopDelegating("change:range",this),this._liveRange.stopDelegating("change:content",this),this._liveRange.detach(),this._liveRange=null}}Pa.prototype.is=function(e){return"marker"===e||"model:marker"===e};class Sa extends Fr{sourcePosition;howMany;constructor(e,t){super(null),this.sourcePosition=e.clone(),this.howMany=t}get type(){return"detach"}get affectedSelectable(){return null}toJSON(){const e=super.toJSON();return e.sourcePosition=this.sourcePosition.toJSON(),e}_validate(){if(this.sourcePosition.root.document)throw new fe("detach-operation-on-document-node",this)}_execute(){Nr(us._createFromPositionAndShift(this.sourcePosition,this.howMany))}static get className(){return"DetachOperation"}}class Ia extends ts{markers=new Map;_children=new Fs;constructor(e){super(),e&&this._insertChild(0,e)}[Symbol.iterator](){return this.getChildren()}get childCount(){return this._children.length}get maxOffset(){return this._children.maxOffset}get isEmpty(){return 0===this.childCount}get nextSibling(){return null}get previousSibling(){return null}get root(){return this}get parent(){return null}get document(){return null}isAttached(){return!1}getAncestors(){return[]}getChild(e){return this._children.getNode(e)}getChildAtOffset(e){return this._children.getNodeAtOffset(e)}getChildren(){return this._children[Symbol.iterator]()}getChildIndex(e){return this._children.getNodeIndex(e)}getChildStartOffset(e){return this._children.getNodeStartOffset(e)}getPath(){return[]}getNodeByPath(e){let t=this;for(const o of e)t=t.getChildAtOffset(o);return t}offsetToIndex(e){return this._children.offsetToIndex(e)}toJSON(){const e=[];for(const t of this._children)e.push(t.toJSON());return e}static fromJSON(e){const t=[];for(const o of e)o.name?t.push(Ms.fromJSON(o)):t.push(Is.fromJSON(o));return new Ia(t)}_appendChild(e){this._insertChild(this.childCount,e)}_insertChild(e,t){const o=function(e){if("string"==typeof e)return[new Is(e)];Ue(e)||(e=[e]);return Array.from(e).map((e=>"string"==typeof e?new Is(e):e instanceof os?new Is(e.data,e.getAttributes()):e))}(t);for(const e of o)null!==e.parent&&e._remove(),e.parent=this;this._children._insertNodes(e,o)}_removeChildren(e,t=1){const o=this._children._removeNodes(e,t);for(const e of o)e.parent=null;return o}_removeChildrenArray(e){this._children._removeNodesArray(e);for(const t of e)t.parent=null}}Ia.prototype.is=function(e){return"documentFragment"===e||"model:documentFragment"===e};class Ra{model;batch;constructor(e,t){this.model=e,this.batch=t}createText(e,t){return new Is(e,t)}createElement(e,t){return new Ms(e,t)}createDocumentFragment(){return new Ia}cloneElement(e,t=!0){return e._clone(t)}insert(e,t,o=0){if(this._assertWriterUsedCorrectly(),e instanceof Is&&""==e.data)return;const i=ss._createAt(t,o);if(e.parent){if(Ma(e.root,i.root))return void this.move(us._createOn(e),i);if(e.root.document)throw new fe("model-writer-insert-forbidden-move",this);this.remove(e)}const n=i.root.document?i.root.document.version:null,s=e instanceof Ia?e._removeChildren(0,e.childCount):e,r=new Hr(i,s,n);if(e instanceof Is&&(r.shouldReceiveAttributes=!0),this.batch.addOperation(r),this.model.applyOperation(r),e instanceof Ia)for(const[t,o]of e.markers){const e=ss._createAt(o.root,0),n={range:new us(o.start._getCombined(e,i),o.end._getCombined(e,i)),usingOperation:!0,affectsData:!0};this.model.markers.has(t)?this.updateMarker(t,n):this.addMarker(t,n)}}insertText(e,t,o,i){t instanceof Ia||t instanceof Ms||t instanceof ss?this.insert(this.createText(e),t,o):this.insert(this.createText(e,t),o,i)}insertElement(e,t,o,i){t instanceof Ia||t instanceof Ms||t instanceof ss?this.insert(this.createElement(e),t,o):this.insert(this.createElement(e,t),o,i)}append(e,t){this.insert(e,t,"end")}appendText(e,t,o){t instanceof Ia||t instanceof Ms?this.insert(this.createText(e),t,"end"):this.insert(this.createText(e,t),o,"end")}appendElement(e,t,o){t instanceof Ia||t instanceof Ms?this.insert(this.createElement(e),t,"end"):this.insert(this.createElement(e,t),o,"end")}setAttribute(e,t,o){if(this._assertWriterUsedCorrectly(),o instanceof us){const i=o.getMinimalFlatRanges();for(const o of i)Oa(this,e,t,o)}else Va(this,e,t,o)}setAttributes(e,t){for(const[o,i]of ao(e))this.setAttribute(o,i,t)}removeAttribute(e,t){if(this._assertWriterUsedCorrectly(),t instanceof us){const o=t.getMinimalFlatRanges();for(const t of o)Oa(this,e,null,t)}else Va(this,e,null,t)}clearAttributes(e){this._assertWriterUsedCorrectly();const t=e=>{for(const t of e.getAttributeKeys())this.removeAttribute(t,e)};if(e instanceof us)for(const o of e.getItems())t(o);else t(e)}move(e,t,o){if(this._assertWriterUsedCorrectly(),!(e instanceof us))throw new fe("writer-move-invalid-range",this);if(!e.isFlat)throw new fe("writer-move-range-not-flat",this);const i=ss._createAt(t,o);if(i.isEqual(e.start))return;if(this._addOperationForAffectedMarkers("move",e),!Ma(e.root,i.root))throw new fe("writer-move-different-document",this);const n=e.root.document?e.root.document.version:null,s=new $r(e.start,e.end.offset-e.start.offset,i,n);this.batch.addOperation(s),this.model.applyOperation(s)}remove(e){this._assertWriterUsedCorrectly();const t=(e instanceof us?e:us._createOn(e)).getMinimalFlatRanges().reverse();for(const e of t)this._addOperationForAffectedMarkers("move",e),Fa(e.start,e.end.offset-e.start.offset,this.batch,this.model)}merge(e){this._assertWriterUsedCorrectly();const t=e.nodeBefore,o=e.nodeAfter;if(this._addOperationForAffectedMarkers("merge",e),!(t instanceof Ms))throw new fe("writer-merge-no-element-before",this);if(!(o instanceof Ms))throw new fe("writer-merge-no-element-after",this);e.root.document?this._merge(e):this._mergeDetached(e)}createPositionFromPath(e,t,o){return this.model.createPositionFromPath(e,t,o)}createPositionAt(e,t){return this.model.createPositionAt(e,t)}createPositionAfter(e){return this.model.createPositionAfter(e)}createPositionBefore(e){return this.model.createPositionBefore(e)}createRange(e,t){return this.model.createRange(e,t)}createRangeIn(e){return this.model.createRangeIn(e)}createRangeOn(e){return this.model.createRangeOn(e)}createSelection(...e){return this.model.createSelection(...e)}_mergeDetached(e){const t=e.nodeBefore,o=e.nodeAfter;this.move(us._createIn(o),ss._createAt(t,"end")),this.remove(o)}_merge(e){const t=ss._createAt(e.nodeBefore,"end"),o=ss._createAt(e.nodeAfter,0),i=e.root.document.graveyard,n=new ss(i,[0]),s=e.root.document.version,r=new Ur(o,e.nodeAfter.maxOffset,t,n,s);this.batch.addOperation(r),this.model.applyOperation(r)}rename(e,t){if(this._assertWriterUsedCorrectly(),!(e instanceof Ms))throw new fe("writer-rename-not-element-instance",this);const o=e.root.document?e.root.document.version:null,i=new Zr(ss._createBefore(e),e.name,t,o);this.batch.addOperation(i),this.model.applyOperation(i)}split(e,t){this._assertWriterUsedCorrectly();let o,i,n=e.parent;if(!n.parent)throw new fe("writer-split-element-no-parent",this);if(t||(t=n.parent),!e.parent.getAncestors({includeSelf:!0}).includes(t))throw new fe("writer-split-invalid-limit-element",this);do{const t=n.root.document?n.root.document.version:null,s=n.maxOffset-e.offset,r=Wr.getInsertionPosition(e),a=new Wr(e,s,r,null,t);this.batch.addOperation(a),this.model.applyOperation(a),o||i||(o=n,i=e.parent.nextSibling),n=(e=this.createPositionAfter(e.parent)).parent}while(n!==t);return{position:e,range:new us(ss._createAt(o,"end"),ss._createAt(i,0))}}wrap(e,t){if(this._assertWriterUsedCorrectly(),!e.isFlat)throw new fe("writer-wrap-range-not-flat",this);const o=t instanceof Ms?t:new Ms(t);if(o.childCount>0)throw new fe("writer-wrap-element-not-empty",this);if(null!==o.parent)throw new fe("writer-wrap-element-attached",this);this.insert(o,e.start);const i=new us(e.start.getShiftedBy(1),e.end.getShiftedBy(1));this.move(i,ss._createAt(o,0))}unwrap(e){if(this._assertWriterUsedCorrectly(),null===e.parent)throw new fe("writer-unwrap-element-no-parent",this);this.move(us._createIn(e),this.createPositionAfter(e)),this.remove(e)}addMarker(e,t){if(this._assertWriterUsedCorrectly(),!t||"boolean"!=typeof t.usingOperation)throw new fe("writer-addmarker-no-usingoperation",this);const o=t.usingOperation,i=t.range,n=void 0!==t.affectsData&&t.affectsData;if(this.model.markers.has(e))throw new fe("writer-addmarker-marker-exists",this);if(!i)throw new fe("writer-addmarker-no-range",this);return o?(Da(this,e,null,i,n),this.model.markers.get(e)):this.model.markers._set(e,i,o,n)}updateMarker(e,t){this._assertWriterUsedCorrectly();const o="string"==typeof e?e:e.name,i=this.model.markers.get(o);if(!i)throw new fe("writer-updatemarker-marker-not-exists",this);if(!t)return be("writer-updatemarker-reconvert-using-editingcontroller",{markerName:o}),void this.model.markers._refresh(i);const n="boolean"==typeof t.usingOperation,s="boolean"==typeof t.affectsData,r=s?t.affectsData:i.affectsData;if(!n&&!t.range&&!s)throw new fe("writer-updatemarker-wrong-options",this);const a=i.getRange(),l=t.range?t.range:a;n&&t.usingOperation!==i.managedUsingOperations?t.usingOperation?Da(this,o,null,l,r):(Da(this,o,a,null,r),this.model.markers._set(o,l,void 0,r)):i.managedUsingOperations?Da(this,o,a,l,r):this.model.markers._set(o,l,void 0,r)}removeMarker(e){this._assertWriterUsedCorrectly();const t="string"==typeof e?e:e.name;if(!this.model.markers.has(t))throw new fe("writer-removemarker-no-marker",this);const o=this.model.markers.get(t);if(!o.managedUsingOperations)return void this.model.markers._remove(t);Da(this,t,o.getRange(),null,o.affectsData)}addRoot(e,t="$root"){this._assertWriterUsedCorrectly();const o=this.model.document.getRoot(e);if(o&&o.isAttached())throw new fe("writer-addroot-root-exists",this);const i=this.model.document,n=new Yr(e,t,!0,i,i.version);return this.batch.addOperation(n),this.model.applyOperation(n),this.model.document.getRoot(e)}detachRoot(e){this._assertWriterUsedCorrectly();const t="string"==typeof e?this.model.document.getRoot(e):e;if(!t||!t.isAttached())throw new fe("writer-detachroot-no-root",this);for(const e of this.model.markers)e.getRange().root===t&&this.removeMarker(e);for(const e of t.getAttributeKeys())this.removeAttribute(e,t);this.remove(this.createRangeIn(t));const o=this.model.document,i=new Yr(t.rootName,t.name,!1,o,o.version);this.batch.addOperation(i),this.model.applyOperation(i)}setSelection(...e){this._assertWriterUsedCorrectly(),this.model.document.selection._setTo(...e)}setSelectionFocus(e,t){this._assertWriterUsedCorrectly(),this.model.document.selection._setFocus(e,t)}setSelectionAttribute(e,t){if(this._assertWriterUsedCorrectly(),"string"==typeof e)this._setSelectionAttribute(e,t);else for(const[t,o]of ao(e))this._setSelectionAttribute(t,o)}removeSelectionAttribute(e){if(this._assertWriterUsedCorrectly(),"string"==typeof e)this._removeSelectionAttribute(e);else for(const t of e)this._removeSelectionAttribute(t)}overrideSelectionGravity(){return this.model.document.selection._overrideGravity()}restoreSelectionGravity(e){this.model.document.selection._restoreGravity(e)}_setSelectionAttribute(e,t){const o=this.model.document.selection;if(o.isCollapsed&&o.anchor.parent.isEmpty){const i=Os._getStoreAttributeKey(e);this.setAttribute(i,t,o.anchor.parent)}o._setAttribute(e,t)}_removeSelectionAttribute(e){const t=this.model.document.selection;if(t.isCollapsed&&t.anchor.parent.isEmpty){const o=Os._getStoreAttributeKey(e);this.removeAttribute(o,t.anchor.parent)}t._removeAttribute(e)}_assertWriterUsedCorrectly(){if(this.model._currentWriter!==this)throw new fe("writer-incorrect-use",this)}_addOperationForAffectedMarkers(e,t){for(const o of this.model.markers){if(!o.managedUsingOperations)continue;const i=o.getRange();let n=!1;if("move"===e){const e=t;n=e.containsPosition(i.start)||e.start.isEqual(i.start)||e.containsPosition(i.end)||e.end.isEqual(i.end)}else{const e=t,o=e.nodeBefore,s=e.nodeAfter,r=i.start.parent==o&&i.start.isAtEnd,a=i.end.parent==s&&0==i.end.offset,l=i.end.nodeAfter==s,c=i.start.nodeAfter==s;n=r||a||l||c}n&&this.updateMarker(o.name,{range:i})}}}function Oa(e,t,o,i){const n=e.model,s=n.document;let r,a,l,c=i.start;for(const e of i.getWalker({shallow:!0}))l=e.item.getAttribute(t),r&&a!=l&&(a!=o&&d(),c=r),r=e.nextPosition,a=l;function d(){const i=new us(c,r),l=i.root.document?s.version:null,d=new Gr(i,t,a,o,l);e.batch.addOperation(d),n.applyOperation(d)}r instanceof ss&&r!=c&&a!=o&&d()}function Va(e,t,o,i){const n=e.model,s=n.document,r=i.getAttribute(t);let a,l;if(r!=o){if(i.root===i){const e=i.document?s.version:null;l=new Qr(i,t,r,o,e)}else{a=new us(ss._createBefore(i),e.createPositionAfter(i));const n=a.root.document?s.version:null;l=new Gr(a,t,r,o,n)}e.batch.addOperation(l),n.applyOperation(l)}}function Da(e,t,o,i,n){const s=e.model,r=s.document,a=new Kr(t,o,i,s.markers,!!n,r.version);e.batch.addOperation(a),s.applyOperation(a)}function Fa(e,t,o,i){let n;if(e.root.document){const o=i.document,s=new ss(o.graveyard,[0]);n=new $r(e,t,s,o.version)}else n=new Sa(e,t);o.addOperation(n),i.applyOperation(n)}function Ma(e,t){return e===t||e instanceof Ca&&t instanceof Ca}function Na(e){e.document.registerPostFixer((t=>function(e,t){const o=t.document.selection,i=t.schema,n=[];let s=!1;for(const e of o.getRanges()){const t=Ba(e,i);t&&!t.isEqual(e)?(n.push(t),s=!0):n.push(e)}s&&e.setSelection(function(e){const t=[...e],o=new Set;let i=1;for(;i!o.has(t)))}(n),{backward:o.isBackward});return!1}(t,e)))}function Ba(e,t){return e.isCollapsed?function(e,t){const o=e.start,i=t.getNearestSelectionRange(o);if(!i){const e=o.getAncestors().reverse().find((e=>t.isObject(e)));return e?us._createOn(e):null}if(!i.isCollapsed)return i;const n=i.start;if(o.isEqual(n))return null;return new us(n)}(e,t):function(e,t){const{start:o,end:i}=e,n=t.checkChild(o,"$text"),s=t.checkChild(i,"$text"),r=t.getLimitElement(o),a=t.getLimitElement(i);if(r===a){if(n&&s)return null;if(function(e,t,o){const i=e.nodeAfter&&!o.isLimit(e.nodeAfter)||o.checkChild(e,"$text"),n=t.nodeBefore&&!o.isLimit(t.nodeBefore)||o.checkChild(t,"$text");return i||n}(o,i,t)){const e=o.nodeAfter&&t.isSelectable(o.nodeAfter)?null:t.getNearestSelectionRange(o,"forward"),n=i.nodeBefore&&t.isSelectable(i.nodeBefore)?null:t.getNearestSelectionRange(i,"backward"),s=e?e.start:o,r=n?n.end:i;return new us(s,r)}}const l=r&&!r.is("rootElement"),c=a&&!a.is("rootElement");if(l||c){const e=o.nodeAfter&&i.nodeBefore&&o.nodeAfter.parent===i.nodeBefore.parent,n=l&&(!e||!za(o.nodeAfter,t)),s=c&&(!e||!za(i.nodeBefore,t));let d=o,u=i;return n&&(d=ss._createBefore(La(r,t))),s&&(u=ss._createAfter(La(a,t))),new us(d,u)}return null}(e,t)}function La(e,t){let o=e,i=o;for(;t.isLimit(i)&&i.parent;)o=i,i=i.parent;return o}function za(e,t){return e&&t.isSelectable(e)}function ja(e,t,o={}){if(t.isCollapsed)return;const i=t.getFirstRange();if("$graveyard"==i.root.rootName)return;const n=e.schema;e.change((e=>{if(!o.doNotResetEntireContent&&function(e,t){const o=e.getLimitElement(t);if(!t.containsEntireContent(o))return!1;const i=t.getFirstRange();if(i.start.parent==i.end.parent)return!1;return e.checkChild(o,"paragraph")}(n,t))return void function(e,t){const o=e.model.schema.getLimitElement(t);e.remove(e.createRangeIn(o)),Wa(e,e.createPositionAt(o,0),t)}(e,t);const s={};if(!o.doNotAutoparagraph){const e=t.getSelectedElement();e&&Object.assign(s,n.getAttributesWithProperty(e,"copyOnReplace",!0))}let r,a;o.doNotFixSelection?(r=ma.fromPosition(i.start,"toPrevious"),a=ma.fromPosition(i.end,"toNext")):[r,a]=function(e){const t=e.root.document.model,o=e.start;let i=e.end;if(t.hasContent(e,{ignoreMarkers:!0})){const o=function(e){const t=e.parent,o=t.root.document.model.schema,i=t.getAncestors({parentFirst:!0,includeSelf:!0});for(const e of i){if(o.isLimit(e))return null;if(o.isBlock(e))return e}}(i);if(o&&i.isTouching(t.createPositionAt(o,0))){const o=t.createSelection(e);t.modifySelection(o,{direction:"backward"});const n=o.getLastPosition(),s=t.createRange(n,i);t.hasContent(s,{ignoreMarkers:!0})||(i=n)}}return[ma.fromPosition(o,"toPrevious"),ma.fromPosition(i,"toNext")]}(i),r.isTouching(a)||e.remove(e.createRange(r,a)),o.leaveUnmerged||(!function(e,t,o){const i=e.model;if(!Ha(e.model.schema,t,o))return;const[n,s]=function(e,t){const o=e.getAncestors(),i=t.getAncestors();let n=0;for(;o[n]&&o[n]==i[n];)n++;return[o[n],i[n]]}(t,o);if(!n||!s)return;!i.hasContent(n,{ignoreMarkers:!0})&&i.hasContent(s,{ignoreMarkers:!0})?$a(e,t,o,n.parent):qa(e,t,o,n.parent)}(e,r,a),n.removeDisallowedAttributes(r.parent.getChildren(),e)),Ua(e,t,r),!o.doNotAutoparagraph&&function(e,t){const o=e.checkChild(t,"$text"),i=e.checkChild(t,"paragraph");return!o&&i}(n,r)&&Wa(e,r,t,s),r.detach(),a.detach()}))}function qa(e,t,o,i){const n=t.parent,s=o.parent;if(n!=i&&s!=i){for(t=e.createPositionAfter(n),(o=e.createPositionBefore(s)).isEqual(t)||e.insert(s,t),e.merge(t);o.parent.isEmpty;){const t=o.parent;o=e.createPositionBefore(t),e.remove(t)}Ha(e.model.schema,t,o)&&qa(e,t,o,i)}}function $a(e,t,o,i){const n=t.parent,s=o.parent;if(n!=i&&s!=i){for(t=e.createPositionAfter(n),(o=e.createPositionBefore(s)).isEqual(t)||e.insert(n,o);t.parent.isEmpty;){const o=t.parent;t=e.createPositionBefore(o),e.remove(o)}o=e.createPositionBefore(s),function(e,t){const o=t.nodeBefore,i=t.nodeAfter;o.name!=i.name&&e.rename(o,i.name);e.clearAttributes(o),e.setAttributes(Object.fromEntries(i.getAttributes()),o),e.merge(t)}(e,o),Ha(e.model.schema,t,o)&&$a(e,t,o,i)}}function Ha(e,t,o){const i=t.parent,n=o.parent;return i!=n&&(!e.isLimit(i)&&!e.isLimit(n)&&function(e,t,o){const i=new us(e,t);for(const e of i.getWalker())if(o.isLimit(e.item))return!1;return!0}(t,o,e))}function Wa(e,t,o,i={}){const n=e.createElement("paragraph");e.model.schema.setAllowedAttributes(n,i,e),e.insert(n,t),Ua(e,o,e.createPositionAt(n,0))}function Ua(e,t,o){t instanceof Os?e.setSelection(o):t.setTo(o)}function Ka(e,t){const o=[];Array.from(e.getItems({direction:"backward"})).map((e=>t.createRangeOn(e))).filter((t=>(t.start.isAfter(e.start)||t.start.isEqual(e.start))&&(t.end.isBefore(e.end)||t.end.isEqual(e.end)))).forEach((e=>{o.push(e.start.parent),t.remove(e)})),o.forEach((e=>{let o=e;for(;o.parent&&o.isEmpty;){const e=t.createRangeOn(o);o=o.parent,t.remove(e)}}))}class Ga{model;writer;position;canMergeWith;schema;_documentFragment;_documentFragmentPosition;_firstNode=null;_lastNode=null;_lastAutoParagraph=null;_filterAttributesAndChildrenOf=[];_affectedStart=null;_affectedEnd=null;_nodeToSelect=null;constructor(e,t,o){this.model=e,this.writer=t,this.position=o,this.canMergeWith=new Set([this.position.parent]),this.schema=e.schema,this._documentFragment=t.createDocumentFragment(),this._documentFragmentPosition=t.createPositionAt(this._documentFragment,0)}handleNodes(e){for(const t of Array.from(e))t.offsetSize>0&&this._handleNode(t);this._insertPartialFragment(),this._lastAutoParagraph&&this._updateLastNodeFromAutoParagraph(this._lastAutoParagraph),this._mergeOnRight(),this.schema.removeDisallowedAttributes(this._filterAttributesAndChildrenOf,this.writer),!1!==this.model._config?.get("experimentalFlags.modelInsertContentDeepSchemaVerification")&&this._removeDisallowedChildren(this._filterAttributesAndChildrenOf),this._filterAttributesAndChildrenOf=[]}_removeDisallowedChildren(e){const t=Array.from(e);for(const e of t){if(!e.is("element"))continue;const o=[],i=[],n=this.writer.createRangeIn(e).getWalker({ignoreElementEnd:!0});for(const{item:e}of n){const s=e.parent;this.schema.checkChild(s,e)||(e.is("element")&&!this.schema.isObject(e)?(i.push(e),t.push(s)):o.push(e),n.jumpTo(this.writer.createPositionAfter(e)))}for(const e of i)this.writer.unwrap(e);for(const e of o)this.writer.remove(e)}}_updateLastNodeFromAutoParagraph(e){const t=this.writer.createPositionAfter(this._lastNode),o=this.writer.createPositionAfter(e);if(o.isAfter(t)){if(this._lastNode=e,this.position.parent!=e||!this.position.isAtEnd)throw new fe("insertcontent-invalid-insertion-position",this);this.position=o,this._setAffectedBoundaries(this.position)}}getSelectionRange(){return this._nodeToSelect?us._createOn(this._nodeToSelect):this.model.schema.getNearestSelectionRange(this.position)}getAffectedRange(){return this._affectedStart?new us(this._affectedStart,this._affectedEnd):null}destroy(){this._affectedStart&&this._affectedStart.detach(),this._affectedEnd&&this._affectedEnd.detach()}_handleNode(e){this._checkAndSplitToAllowedPosition(e)?(e=this._appendToFragment(e),this._firstNode||(this._firstNode=e),this._lastNode=e):this.schema.isObject(e)||this._handleDisallowedNode(e)}_insertPartialFragment(){if(this._documentFragment.isEmpty)return;const e=ma.fromPosition(this.position,"toNext");this._setAffectedBoundaries(this.position),this._documentFragment.getChild(0)==this._firstNode&&(this.writer.insert(this._firstNode,this.position),this._mergeOnLeft(),this.position=e.toPosition()),this._documentFragment.isEmpty||this.writer.insert(this._documentFragment,this.position),this._documentFragmentPosition=this.writer.createPositionAt(this._documentFragment,0),this.position=e.toPosition(),e.detach()}_handleDisallowedNode(e){e.is("element")&&this.handleNodes(e.getChildren())}_appendToFragment(e){if(!this.schema.checkChild(this.position,e))throw new fe("insertcontent-wrong-position",this,{node:e,position:this.position});return this.writer.insert(e,this._documentFragmentPosition),this._documentFragmentPosition=this._documentFragmentPosition.getShiftedBy(e.offsetSize),e.parent||(e=this._documentFragmentPosition.nodeBefore),this.schema.isObject(e)&&!this.schema.checkChild(this.position,"$text")?this._nodeToSelect=e:this._nodeToSelect=null,this._filterAttributesAndChildrenOf.push(e),e}_setAffectedBoundaries(e){this._affectedStart||(this._affectedStart=ma.fromPosition(e,"toPrevious")),this._affectedEnd&&!this._affectedEnd.isBefore(e)||(this._affectedEnd&&this._affectedEnd.detach(),this._affectedEnd=ma.fromPosition(e,"toNext"))}_mergeOnLeft(){const e=this._firstNode;if(!(e instanceof Ms))return;if(!this._canMergeLeft(e))return;const t=ma._createBefore(e);t.stickiness="toNext";const o=ma.fromPosition(this.position,"toNext");this._affectedStart.isEqual(t)&&(this._affectedStart.detach(),this._affectedStart=ma._createAt(t.nodeBefore,"end","toPrevious")),this._firstNode===this._lastNode&&(this._firstNode=t.nodeBefore,this._lastNode=t.nodeBefore),this.writer.merge(t),t.isEqual(this._affectedEnd)&&this._firstNode===this._lastNode&&(this._affectedEnd.detach(),this._affectedEnd=ma._createAt(t.nodeBefore,"end","toNext")),this.position=o.toPosition(),o.detach(),this._filterAttributesAndChildrenOf.push(this.position.parent),t.detach()}_mergeOnRight(){const e=this._lastNode;if(!(e instanceof Ms))return;if(!this._canMergeRight(e))return;const t=ma._createAfter(e);if(t.stickiness="toNext",!this.position.isEqual(t))throw new fe("insertcontent-invalid-insertion-position",this);this.position=ss._createAt(t.nodeBefore,"end");const o=ma.fromPosition(this.position,"toPrevious");this._affectedEnd.isEqual(t)&&(this._affectedEnd.detach(),this._affectedEnd=ma._createAt(t.nodeBefore,"end","toNext")),this._firstNode===this._lastNode&&(this._firstNode=t.nodeBefore,this._lastNode=t.nodeBefore),this.writer.merge(t),t.getShiftedBy(-1).isEqual(this._affectedStart)&&this._firstNode===this._lastNode&&(this._affectedStart.detach(),this._affectedStart=ma._createAt(t.nodeBefore,0,"toPrevious")),this.position=o.toPosition(),o.detach(),this._filterAttributesAndChildrenOf.push(this.position.parent),t.detach()}_canMergeLeft(e){const t=e.previousSibling;return t instanceof Ms&&this.canMergeWith.has(t)&&this.model.schema.checkMerge(t,e)}_canMergeRight(e){const t=e.nextSibling;return t instanceof Ms&&this.canMergeWith.has(t)&&this.model.schema.checkMerge(e,t)}_insertAutoParagraph(){this._insertPartialFragment();const e=this.writer.createElement("paragraph");this.writer.insert(e,this.position),this._setAffectedBoundaries(this.position),this._lastAutoParagraph=e,this.position=this.writer.createPositionAt(e,0)}_checkAndSplitToAllowedPosition(e){const t=this._getAllowedIn(this.position.parent,e);if(!t)return!1;for(t!=this.position.parent&&this._insertPartialFragment();t!=this.position.parent;)if(this.position.isAtStart){const e=this.position.parent;this.position=this.writer.createPositionBefore(e),e.isEmpty&&e.parent===t&&this.writer.remove(e)}else if(this.position.isAtEnd)this.position=this.writer.createPositionAfter(this.position.parent);else{const e=this.writer.createPositionAfter(this.position.parent);this._setAffectedBoundaries(this.position),this.writer.split(this.position),this.position=e,this.canMergeWith.add(this.position.nodeAfter)}return this.schema.checkChild(this.position.parent,e)||this._insertAutoParagraph(),!0}_getAllowedIn(e,t){const o=this.schema.createContext(e);return this.schema.checkChild(o,t)||this.schema.checkChild(o,"paragraph")&&this.schema.checkChild(o.push("paragraph"),t)?e:this.schema.isLimit(e)?null:this._getAllowedIn(e.parent,t)}}function Ja(e,t,o,i={}){if(!e.schema.isObject(t))throw new fe("insertobject-element-not-an-object",e,{object:t});const n=o||e.document.selection;let s=n;i.findOptimalPosition&&e.schema.isBlock(t)&&(s=e.createSelection(e.schema.findOptimalInsertionRange(n,i.findOptimalPosition)));const r=to(n.getSelectedBlocks()),a={};return r&&Object.assign(a,e.schema.getAttributesWithProperty(r,"copyOnReplace",!0)),e.change((o=>{s.isCollapsed||e.deleteContent(s,{doNotAutoparagraph:!0});let n=t;const r=s.anchor.parent,l=e.schema.createContext(r);!e.schema.checkChild(l,t)&&e.schema.checkChild(l,"paragraph")&&e.schema.checkChild(l.push("paragraph"),t)&&(n=o.createElement("paragraph"),o.insert(t,n)),e.schema.setAllowedAttributes(n,a,o);const c=e.insertContent(n,s);return c.isCollapsed||i.setSelection&&function(e,t,o,i){const n=e.model;if("on"==o)return void e.setSelection(t,"on");if("after"!=o)throw new fe("insertobject-invalid-place-parameter-value",n);let s=t.nextSibling;if(n.schema.isInline(t))return void e.setSelection(t,"after");const r=s&&n.schema.checkChild(s,"$text");!r&&n.schema.checkChild(t.parent,"paragraph")&&(s=e.createElement("paragraph"),n.schema.setAllowedAttributes(s,i,e),n.insertContent(s,e.createPositionAfter(t)));s&&e.setSelection(s,0)}(o,t,i.setSelection,a),c}))}function Za(e,t){const{isForward:o,walker:i,unit:n,schema:s,treatEmojiAsSingleUnit:r}=e,{type:a,item:l,nextPosition:c}=t;if("text"==a)return"word"===e.unit?function(e,t){let o=e.position.textNode;o||(o=t?e.position.nodeAfter:e.position.nodeBefore);for(;o&&o.is("$text");){const i=e.position.offset-o.startOffset;if(Xa(o,i,t))o=t?e.position.nodeAfter:e.position.nodeBefore;else{if(Ya(o.data,i,t))break;e.next()}}return e.position}(i,o):function(e,t,o){const i=e.position.textNode;if(i){const n=i.data;let s=e.position.offset-i.startOffset;for(;ho(n,s)||"character"==t&&mo(n,s)||o&&po(n,s);)e.next(),s=e.position.offset-i.startOffset}return e.position}(i,n,r);if(a==(o?"elementStart":"elementEnd")){if(s.isSelectable(l))return ss._createAt(l,o?"after":"before");if(s.checkChild(c,"$text"))return c}else{if(s.isLimit(l))return void i.skip((()=>!0));if(s.checkChild(c,"$text"))return c}}function Qa(e,t){const o=e.root,i=ss._createAt(o,t?"end":0);return t?new us(e,i):new us(i,e)}function Ya(e,t,o){const i=t+(o?0:-1);return' ,.?!:;"-()'.includes(e.charAt(i))}function Xa(e,t,o){return t===(o?e.offsetSize:0)}class el extends(Be()){markers;document;schema;_config;_pendingChanges;_currentWriter;constructor(e){super(),this.markers=new Ta,this.document=new xa(this),this.schema=new mr,this._config=e,this._pendingChanges=[],this._currentWriter=null,["deleteContent","modifySelection","getSelectedContent","applyOperation"].forEach((e=>this.decorate(e))),this.on("applyOperation",((e,t)=>{t[0]._validate()}),{priority:"highest"}),this.schema.register("$root",{isLimit:!0}),this.schema.register("$container",{allowIn:["$root","$container"]}),this.schema.register("$block",{allowIn:["$root","$container"],isBlock:!0}),this.schema.register("$blockObject",{allowWhere:"$block",isBlock:!0,isObject:!0}),this.schema.register("$inlineObject",{allowWhere:"$text",allowAttributesOf:"$text",isInline:!0,isObject:!0}),this.schema.register("$text",{allowIn:"$block",isInline:!0,isContent:!0}),this.schema.register("$clipboardHolder",{allowContentOf:"$root",allowChildren:"$text",isLimit:!0}),this.schema.register("$documentFragment",{allowContentOf:"$root",allowChildren:"$text",isLimit:!0}),this.schema.register("$marker"),this.schema.addChildCheck((()=>!0),"$marker"),Na(this),this.document.registerPostFixer(or),this.on("insertContent",((e,[t,o])=>{e.return=function(e,t,o){return e.change((i=>{const n=o||e.document.selection;n.isCollapsed||e.deleteContent(n,{doNotAutoparagraph:!0});const s=new Ga(e,i,n.anchor),r=[];let a;if(t.is("documentFragment")){if(t.markers.size){const e=[];for(const[o,i]of t.markers){const{start:t,end:n}=i,s=t.isEqual(n);e.push({position:t,name:o,isCollapsed:s},{position:n,name:o,isCollapsed:s})}e.sort((({position:e},{position:t})=>e.isBefore(t)?1:-1));for(const{position:o,name:n,isCollapsed:s}of e){let e=null,a=null;const l=o.parent===t&&o.isAtStart,c=o.parent===t&&o.isAtEnd;l||c?s&&(a=l?"start":"end"):(e=i.createElement("$marker"),i.insert(e,o)),r.push({name:n,element:e,collapsed:a})}}a=t.getChildren()}else a=[t];s.handleNodes(a);let l=s.getSelectionRange();if(t.is("documentFragment")&&r.length){const e=l?Ts.fromRange(l):null,t={};for(let e=r.length-1;e>=0;e--){const{name:o,element:n,collapsed:a}=r[e],l=!t[o];if(l&&(t[o]=[]),n){const e=i.createPositionAt(n,"before");t[o].push(e),i.remove(n)}else{const e=s.getAffectedRange();if(!e){a&&t[o].push(s.position);continue}a?t[o].push(e[a]):t[o].push(l?e.start:e.end)}}for(const[e,[o,n]]of Object.entries(t))o&&n&&o.root===n.root&&o.root.document&&!i.model.markers.has(e)&&i.addMarker(e,{usingOperation:!0,affectsData:!0,range:new us(o,n)});e&&(l=e.toRange(),e.detach())}l&&(n instanceof Os?i.setSelection(l):n.setTo(l));const c=s.getAffectedRange()||e.createRange(n.anchor);return s.destroy(),c}))}(this,t,o)})),this.on("insertObject",((e,[t,o,i])=>{e.return=Ja(this,t,o,i)})),this.on("canEditAt",(e=>{const t=!this.document.isReadOnly;e.return=t,t||e.stop()}))}change(e){try{return 0===this._pendingChanges.length?(this._pendingChanges.push({batch:new fa,callback:e}),this._runPendingChanges()[0]):e(this._currentWriter)}catch(e){fe.rethrowUnexpectedError(e,this)}}enqueueChange(e,t){try{e?"function"==typeof e?(t=e,e=new fa):e instanceof fa||(e=new fa(e)):e=new fa,this._pendingChanges.push({batch:e,callback:t}),1==this._pendingChanges.length&&this._runPendingChanges()}catch(e){fe.rethrowUnexpectedError(e,this)}}applyOperation(e){e._execute()}insertContent(e,t,o,...i){const n=tl(t,o);return this.fire("insertContent",[e,n,o,...i])}insertObject(e,t,o,i,...n){const s=tl(t,o);return this.fire("insertObject",[e,s,i,i,...n])}deleteContent(e,t){ja(this,e,t)}modifySelection(e,t){!function(e,t,o={}){const i=e.schema,n="backward"!=o.direction,s=o.unit?o.unit:"character",r=!!o.treatEmojiAsSingleUnit,a=t.focus,l=new is({boundaries:Qa(a,n),singleCharacters:!0,direction:n?"forward":"backward"}),c={walker:l,schema:i,isForward:n,unit:s,treatEmojiAsSingleUnit:r};let d;for(;d=l.next();){if(d.done)return;const o=Za(c,d.value);if(o)return void(t instanceof Os?e.change((e=>{e.setSelectionFocus(o)})):t.setFocus(o))}}(this,e,t)}getSelectedContent(e){return function(e,t){return e.change((e=>{const o=e.createDocumentFragment(),i=t.getFirstRange();if(!i||i.isCollapsed)return o;const n=i.start.root,s=i.start.getCommonPath(i.end),r=n.getNodeByPath(s);let a;a=i.start.parent==i.end.parent?i:e.createRange(e.createPositionAt(r,i.start.path[s.length]),e.createPositionAt(r,i.end.path[s.length]+1));const l=a.end.offset-a.start.offset;for(const t of a.getItems({shallow:!0}))t.is("$textProxy")?e.appendText(t.data,t.getAttributes(),o):e.append(e.cloneElement(t,!0),o);if(a!=i){const t=i._getTransformedByMove(a.start,e.createPositionAt(o,0),l)[0],n=e.createRange(e.createPositionAt(o,0),t.start);Ka(e.createRange(t.end,e.createPositionAt(o,"end")),e),Ka(n,e)}return o}))}(this,e)}hasContent(e,t={}){let o;o=e.is("selection")?Array.from(e.getRanges()):e.is("range")?[e]:[us._createIn(e)];for(const e of o)if(this._rangeHasContent(e,t))return!0;return!1}_rangeHasContent(e,t){if(e.isCollapsed)return!1;const{ignoreWhitespaces:o=!1,ignoreMarkers:i=!1}=t;if(!i)for(const t of this.markers.getMarkersIntersectingRange(e))if(t.affectsData)return!0;for(const t of e.getItems())if(this.schema.isContent(t)){if(!t.is("$textProxy"))return!0;if(!o)return!0;if(-1!==t.data.search(/\S/))return!0}return!1}canEditAt(e){const t=tl(e);return this.fire("canEditAt",[t])}createPositionFromPath(e,t,o){return new ss(e,t,o)}createPositionAt(e,t){return ss._createAt(e,t)}createPositionAfter(e){return ss._createAfter(e)}createPositionBefore(e){return ss._createBefore(e)}createRange(e,t){return new us(e,t)}createRangeIn(e){return us._createIn(e)}createRangeOn(e){return us._createOn(e)}createSelection(...e){return new _s(...e)}createBatch(e){return new fa(e)}createOperationFromJSON(e){return ea.fromJSON(e,this.document)}destroy(){this.document.destroy(),this.stopListening()}_runPendingChanges(){const e=[];this.fire("_beforeChanges");try{for(;this._pendingChanges.length;){const t=this._pendingChanges[0].batch;this._currentWriter=new Ra(this,t);const o=this._pendingChanges[0].callback(this._currentWriter);e.push(o),this.document._handleChangeBlock(this._currentWriter),this._pendingChanges.shift(),this._currentWriter=null}}finally{this._pendingChanges.length=0,this._currentWriter=null,this.fire("_afterChanges")}return e}}function tl(e,t){if(e)return e instanceof _s||e instanceof Os?e:e instanceof ys?t||0===t?new _s(e,t):e.is("rootElement")?new _s(e,"in"):new _s(e,"on"):new _s(e)}class ol extends jn{domEventType="click";onDomEvent(e){this.fire(e.type,e)}}class il extends jn{domEventType=["mousedown","mouseup","mouseover","mouseout"];onDomEvent(e){this.fire(e.type,e)}}class nl extends jn{domEventType=["touchstart","touchend","touchmove"];onDomEvent(e){this.fire(e.type,e)}}class sl extends jn{domEventType=["pointerdown","pointerup","pointermove"];onDomEvent(e){this.fire(e.type,e)}}class rl{document;constructor(e){this.document=e}createDocumentFragment(e){return new tn(this.document,e)}createElement(e,t,o){return new _i(this.document,e,t,o)}createText(e){return new si(this.document,e)}clone(e,t=!1){return e._clone(t)}appendChild(e,t){return t._appendChild(e)}insertChild(e,t,o){return o._insertChild(e,t)}removeChildren(e,t,o){return o._removeChildren(e,t)}remove(e){const t=e.parent;return t?this.removeChildren(t.getChildIndex(e),1,t):[]}replace(e,t){const o=e.parent;if(o){const i=o.getChildIndex(e);return this.removeChildren(i,1,o),this.insertChild(i,t,o),!0}return!1}unwrapElement(e){const t=e.parent;if(t){const o=t.getChildIndex(e);this.remove(e),this.insertChild(o,e.getChildren(),t)}}rename(e,t){const o=new _i(this.document,e,t.getAttributes(),t.getChildren());return this.replace(t,o)?o:null}setAttribute(e,t,o){o._setAttribute(e,t)}removeAttribute(e,t){t._removeAttribute(e)}addClass(e,t){t._addClass(e)}removeClass(e,t){t._removeClass(e)}setStyle(e,t,o){a(e)&&void 0===o?t._setStyle(e):o._setStyle(e,t)}removeStyle(e,t){t._removeStyle(e)}setCustomProperty(e,t,o){o._setCustomProperty(e,t)}removeCustomProperty(e,t){return t._removeCustomProperty(e)}createPositionAt(e,t){return Si._createAt(e,t)}createPositionAfter(e){return Si._createAfter(e)}createPositionBefore(e){return Si._createBefore(e)}createRange(e,t){return new Ii(e,t)}createRangeOn(e){return Ii._createOn(e)}createRangeIn(e){return Ii._createIn(e)}createSelection(...e){return new Oi(...e)}}const al=/^#([0-9a-f]{3,4}|[0-9a-f]{6}|[0-9a-f]{8})$/i,ll=/^rgb\([ ]?([0-9]{1,3}[ %]?,[ ]?){2,3}[0-9]{1,3}[ %]?\)$/i,cl=/^rgba\([ ]?([0-9]{1,3}[ %]?,[ ]?){3}(1|[0-9]+%|[0]?\.?[0-9]+)\)$/i,dl=/^hsl\([ ]?([0-9]{1,3}[ %]?[,]?[ ]*){3}(1|[0-9]+%|[0]?\.?[0-9]+)?\)$/i,ul=/^hsla\([ ]?([0-9]{1,3}[ %]?,[ ]?){2,3}(1|[0-9]+%|[0]?\.?[0-9]+)\)$/i,hl=/\w+\((?:[^()]|\([^()]*\))*\)|\S+/gi,ml=new Set(["black","silver","gray","white","maroon","red","purple","fuchsia","green","lime","olive","yellow","navy","blue","teal","aqua","orange","aliceblue","antiquewhite","aquamarine","azure","beige","bisque","blanchedalmond","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","gainsboro","ghostwhite","gold","goldenrod","greenyellow","grey","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","limegreen","linen","magenta","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","oldlace","olivedrab","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","tan","thistle","tomato","turquoise","violet","wheat","whitesmoke","yellowgreen","activeborder","activecaption","appworkspace","background","buttonface","buttonhighlight","buttonshadow","buttontext","captiontext","graytext","highlight","highlighttext","inactiveborder","inactivecaption","inactivecaptiontext","infobackground","infotext","menu","menutext","scrollbar","threeddarkshadow","threedface","threedhighlight","threedlightshadow","threedshadow","window","windowframe","windowtext","rebeccapurple","currentcolor","transparent"]);function gl(e){return e.startsWith("#")?al.test(e):e.startsWith("rgb")?ll.test(e)||cl.test(e):e.startsWith("hsl")?dl.test(e)||ul.test(e):ml.has(e.toLowerCase())}const pl=["none","hidden","dotted","dashed","solid","double","groove","ridge","inset","outset"];function fl(e){return pl.includes(e)}const bl=/^([+-]?[0-9]*([.][0-9]+)?(px|cm|mm|in|pc|pt|ch|em|ex|rem|vh|vw|vmin|vmax)|0)$/;function wl(e){return bl.test(e)}const yl=/^[+-]?[0-9]*([.][0-9]+)?%$/;function _l(e){return yl.test(e)}const kl=["auto","cover","contain"];const vl=["repeat-x","repeat-y","repeat","space","round","no-repeat"];const Cl=["center","top","bottom","left","right"];function Al(e){return Cl.includes(e)}const xl=["fixed","scroll","local"];function El(e){return xl.includes(e)}const Tl=["border-box","padding-box","content-box"];function Pl(e){return Tl.includes(e)}const Sl=["border-box","padding-box","content-box","text"];function Il(e){return Sl.includes(e)}function Rl(e=""){if(""===e)return{top:void 0,right:void 0,bottom:void 0,left:void 0};const t=Fl(e),o=t[0],i=t[2]||o,n=t[1]||o;return{top:o,bottom:i,right:n,left:t[3]||n}}function Ol(e){return t=>{const{top:o,right:i,bottom:n,left:s}=t,r=[];return[o,i,s,n].every((e=>!!e))?r.push([e,Vl(t)]):(o&&r.push([e+"-top",o]),i&&r.push([e+"-right",i]),n&&r.push([e+"-bottom",n]),s&&r.push([e+"-left",s])),r}}function Vl({top:e,right:t,bottom:o,left:i}){const n=[];return i!==t?n.push(e,t,o,i):o!==e?n.push(e,t,o):t!==e?n.push(e,t):n.push(e),n.join(" ")}function Dl(e){return t=>({path:e,value:Rl(t)})}function Fl(e){const t=e.trim().slice(0,1500).matchAll(hl);return Array.from(t).map((e=>e[0]))}const Ml={image:"none",repeat:"repeat",position:"0% 0%",size:"auto",origin:"padding-box",clip:"border-box",attachment:"scroll"},Nl=["linear-gradient","repeating-linear-gradient","radial-gradient","repeating-radial-gradient","conic-gradient","repeating-conic-gradient","url"];function Bl(e){e.setNormalizer("background-color",(e=>({path:"background.color",value:e})));for(const t in Ml)e.setNormalizer(`background-${t}`,Ll(`background.${t}`)),e.setReducer(`background-${t}`,zl(`background-${t}`));e.setNormalizer("background",(e=>{const t=function(e){return $l(e).map(jl).filter((e=>null!==e))}(e);t.length||t.push({...ql(),color:e});const o=function(e){const t={image:[],position:[],size:[],repeat:[],attachment:[],origin:[],clip:[]};for(const o of e)t.position.push(o.position.join(" ")),t.size.push(o.size.join(" ")),t.repeat.push(o.repeat.join(" ")),t.image.push(o.image),t.attachment.push(o.attachment),t.origin.push(o.origin),t.clip.push(o.clip);return e.at(-1)?.color&&(t.color=e.at(-1).color),t}(t);return{path:"background",value:o}})),e.setReducer("background",(e=>{const t=e,o=Object.keys(Ml).every((e=>{const o=t[e];return void 0!==o&&(!Array.isArray(o)||o.length>0)}));return o?function(e){const t=[],o=function(e){const t=function(e){let t=0;for(const o of Object.values(e))Array.isArray(o)&&o.length>t&&(t=o.length);return t}(e),o=Array.from({length:t},((t,o)=>{const i=ql();return e.image?.[o]&&(i.image=e.image[o]),e.position?.[o]&&(i.position=e.position[o].split(" ")),e.size?.[o]&&(i.size=e.size[o].split(" ")),e.repeat?.[o]&&(i.repeat=e.repeat[o].split(" ")),e.attachment?.[o]&&(i.attachment=e.attachment[o]),e.origin?.[o]&&(i.origin=e.origin[o]),e.clip?.[o]&&(i.clip=e.clip[o]),i}));return e.color&&(o.at(-1).color=e.color),o}(e).map((e=>function(e){const t=[];e.image&&e.image!==Ml.image&&t.push(e.image);const o=e.position.join(" "),i=!o||o===Ml.position;i||t.push(o);const n=e.size.join(" ");n&&n!==Ml.size&&(i&&t.push("0% 0%"),t.push("/",n));const s=e.repeat.join(" ");s&&s!==Ml.repeat&&t.push(s),e.attachment&&e.attachment!==Ml.attachment&&t.push(e.attachment);const r=e.origin===Ml.origin,a=e.clip===Ml.clip;return r&&a||(t.push(e.origin),e.clip!==e.origin&&t.push(e.clip)),e.color&&t.push(e.color),t.join(" ")}(e).trim())).filter(Boolean).join(", ");return o&&t.push(["background",o]),t}(t):function(e){const t=[];for(const o in Ml){const i=e[o];Array.isArray(i)&&t.push([`background-${o}`,i.join(", ")])}return void 0!==e.color&&t.push(["background-color",e.color]),t}(t)})),e.setStyleRelation("background",["background-color","background-image","background-repeat","background-position","background-size","background-attachment","background-origin","background-clip"])}function Ll(e){return t=>({path:e,value:$l(t)})}function zl(e){return t=>{const o=t.join(", ");return[[e,o]]}}function jl(e){const t={},{value:o,image:i}=function(e){for(const t of Nl){const o=t+"(",i=e.indexOf(o);if(i<0)continue;let n=t,s=0;for(let o=i+t.length;o"constructor"!==e)).length:0===t.length}return!0}(t)?null:{...ql(),...t}}function ql(){return{attachment:Ml.attachment,image:Ml.image,origin:Ml.origin,clip:Ml.clip,position:Ml.position.split(" "),repeat:Ml.repeat.split(" "),size:Ml.size.split(" ")}}function $l(e){const t=[];let o="",i=0;for(const n of e){if("("===n)i++;else if(")"===n)i--;else if(","===n&&0===i){t.push(o.trim()),o="";continue}o+=n}return o.trim()&&t.push(o.trim()),t}function Hl(e){e.setNormalizer("border",(e=>{const{color:t,style:o,width:i}=Ql(e);return{path:"border",value:{color:Rl(t),style:Rl(o),width:Rl(i)}}})),e.setNormalizer("border-top",Wl("top")),e.setNormalizer("border-right",Wl("right")),e.setNormalizer("border-bottom",Wl("bottom")),e.setNormalizer("border-left",Wl("left")),e.setNormalizer("border-color",Ul("color")),e.setNormalizer("border-width",Ul("width")),e.setNormalizer("border-style",Ul("style")),e.setNormalizer("border-top-color",Gl("color","top")),e.setNormalizer("border-top-style",Gl("style","top")),e.setNormalizer("border-top-width",Gl("width","top")),e.setNormalizer("border-right-color",Gl("color","right")),e.setNormalizer("border-right-style",Gl("style","right")),e.setNormalizer("border-right-width",Gl("width","right")),e.setNormalizer("border-bottom-color",Gl("color","bottom")),e.setNormalizer("border-bottom-style",Gl("style","bottom")),e.setNormalizer("border-bottom-width",Gl("width","bottom")),e.setNormalizer("border-left-color",Gl("color","left")),e.setNormalizer("border-left-style",Gl("style","left")),e.setNormalizer("border-left-width",Gl("width","left")),e.setExtractor("border-top",Jl("top")),e.setExtractor("border-right",Jl("right")),e.setExtractor("border-bottom",Jl("bottom")),e.setExtractor("border-left",Jl("left")),e.setExtractor("border-top-color","border.color.top"),e.setExtractor("border-right-color","border.color.right"),e.setExtractor("border-bottom-color","border.color.bottom"),e.setExtractor("border-left-color","border.color.left"),e.setExtractor("border-top-width","border.width.top"),e.setExtractor("border-right-width","border.width.right"),e.setExtractor("border-bottom-width","border.width.bottom"),e.setExtractor("border-left-width","border.width.left"),e.setExtractor("border-top-style","border.style.top"),e.setExtractor("border-right-style","border.style.right"),e.setExtractor("border-bottom-style","border.style.bottom"),e.setExtractor("border-left-style","border.style.left"),e.setReducer("border-color",Ol("border-color")),e.setReducer("border-style",Ol("border-style")),e.setReducer("border-width",Ol("border-width")),e.setReducer("border-top",Yl("top")),e.setReducer("border-right",Yl("right")),e.setReducer("border-bottom",Yl("bottom")),e.setReducer("border-left",Yl("left")),e.setReducer("border",function(){return t=>{const o=Zl(t,"top"),i=Zl(t,"right"),n=Zl(t,"bottom"),s=Zl(t,"left"),r=[o,i,n,s],a={width:e(r,"width"),style:e(r,"style"),color:e(r,"color")},l=Xl(a,"all");if(l.length)return l;const c=Object.entries(a).reduce(((e,[t,o])=>(o&&(e.push([`border-${t}`,o]),r.forEach((e=>delete e[t]))),e)),[]);return[...c,...Xl(o,"top"),...Xl(i,"right"),...Xl(n,"bottom"),...Xl(s,"left")]};function e(e,t){return e.map((e=>e[t])).reduce(((e,t)=>e==t?e:null))}}()),e.setStyleRelation("border",["border-color","border-style","border-width","border-top","border-right","border-bottom","border-left","border-top-color","border-right-color","border-bottom-color","border-left-color","border-top-style","border-right-style","border-bottom-style","border-left-style","border-top-width","border-right-width","border-bottom-width","border-left-width"]),e.setStyleRelation("border-color",["border-top-color","border-right-color","border-bottom-color","border-left-color"]),e.setStyleRelation("border-style",["border-top-style","border-right-style","border-bottom-style","border-left-style"]),e.setStyleRelation("border-width",["border-top-width","border-right-width","border-bottom-width","border-left-width"]),e.setStyleRelation("border-top",["border-top-color","border-top-style","border-top-width"]),e.setStyleRelation("border-right",["border-right-color","border-right-style","border-right-width"]),e.setStyleRelation("border-bottom",["border-bottom-color","border-bottom-style","border-bottom-width"]),e.setStyleRelation("border-left",["border-left-color","border-left-style","border-left-width"])}function Wl(e){return t=>{const{color:o,style:i,width:n}=Ql(t),s={};return void 0!==o&&(s.color={[e]:o}),void 0!==i&&(s.style={[e]:i}),void 0!==n&&(s.width={[e]:n}),{path:"border",value:s}}}function Ul(e){return t=>({path:"border",value:Kl(t,e)})}function Kl(e,t){return{[t]:Rl(e)}}function Gl(e,t){return o=>({path:"border",value:{[e]:{[t]:o}}})}function Jl(e){return(t,o)=>{if(o.border)return Zl(o.border,e)}}function Zl(e,t){const o={};return e.width&&e.width[t]&&(o.width=e.width[t]),e.style&&e.style[t]&&(o.style=e.style[t]),e.color&&e.color[t]&&(o.color=e.color[t]),o}function Ql(e){const t={},o=Fl(e);for(const e of o)wl(e)||/thin|medium|thick/.test(e)?t.width=e:fl(e)?t.style=e:t.color=e;return t}function Yl(e){return t=>Xl(t,e)}function Xl(e,t){const o=[];if(e&&e.width&&o.push("width"),e&&e.style&&o.push("style"),e&&e.color&&o.push("color"),3==o.length){const i=o.map((t=>e[t])).join(" ");return["all"==t?["border",i]:[`border-${t}`,i]]}return"all"==t?[]:o.map((o=>[`border-${t}-${o}`,e[o]]))}function ec(e){e.setNormalizer("margin",Dl("margin")),e.setNormalizer("margin-top",(e=>({path:"margin.top",value:e}))),e.setNormalizer("margin-right",(e=>({path:"margin.right",value:e}))),e.setNormalizer("margin-bottom",(e=>({path:"margin.bottom",value:e}))),e.setNormalizer("margin-left",(e=>({path:"margin.left",value:e}))),e.setReducer("margin",Ol("margin")),e.setStyleRelation("margin",["margin-top","margin-right","margin-bottom","margin-left"])}function tc(e){e.setNormalizer("padding",Dl("padding")),e.setNormalizer("padding-top",(e=>({path:"padding.top",value:e}))),e.setNormalizer("padding-right",(e=>({path:"padding.right",value:e}))),e.setNormalizer("padding-bottom",(e=>({path:"padding.bottom",value:e}))),e.setNormalizer("padding-left",(e=>({path:"padding.left",value:e}))),e.setReducer("padding",Ol("padding")),e.setStyleRelation("padding",["padding-top","padding-right","padding-bottom","padding-left"])}Symbol("_treeDump");function oc(e,t=0,o={}){const{leading:i=!0,trailing:n=!0}=o;return zo(e,t,{leading:i,maxWait:t,trailing:n})}class ic{crashes=[];state="initializing";_crashNumberLimit;_now=Date.now;_minimumNonErrorTimePeriod;_boundErrorHandler;_listeners;constructor(e){if(this.crashes=[],this._crashNumberLimit="number"==typeof e.crashNumberLimit?e.crashNumberLimit:3,this._minimumNonErrorTimePeriod="number"==typeof e.minimumNonErrorTimePeriod?e.minimumNonErrorTimePeriod:5e3,this._boundErrorHandler=e=>{const t="error"in e?e.error:e.reason;t instanceof Error&&this._handleError(t,e)},this._listeners={},!this._restart)throw new Error("The Watchdog class was split into the abstract `Watchdog` class and the `EditorWatchdog` class. Please, use `EditorWatchdog` if you have used the `Watchdog` class previously.")}destroy(){this._stopErrorHandling(),this._listeners={}}on(e,t){this._listeners[e]||(this._listeners[e]=[]),this._listeners[e].push(t)}off(e,t){this._listeners[e]=this._listeners[e].filter((e=>e!==t))}_fire(e,...t){const o=this._listeners[e]||[];for(const e of o)e.apply(this,[null,...t])}_startErrorHandling(){window.addEventListener("error",this._boundErrorHandler),window.addEventListener("unhandledrejection",this._boundErrorHandler)}_stopErrorHandling(){window.removeEventListener("error",this._boundErrorHandler),window.removeEventListener("unhandledrejection",this._boundErrorHandler)}_handleError(e,t){if(this._shouldReactToError(e)){this.crashes.push({message:e.message,stack:e.stack,filename:t instanceof ErrorEvent?t.filename:void 0,lineno:t instanceof ErrorEvent?t.lineno:void 0,colno:t instanceof ErrorEvent?t.colno:void 0,date:this._now()});const o=this._shouldRestart();this.state="crashed",this._fire("stateChange"),this._fire("error",{error:e,causesRestart:o}),o?this._restart():(this.state="crashedPermanently",this._fire("stateChange"))}}_shouldReactToError(e){return e.is&&e.is("CKEditorError")&&void 0!==e.context&&null!==e.context&&"ready"===this.state&&this._isErrorComingFromThisItem(e)}_shouldRestart(){if(this.crashes.length<=this._crashNumberLimit)return!0;return(this.crashes[this.crashes.length-1].date-this.crashes[this.crashes.length-1-this._crashNumberLimit].date)/this._crashNumberLimit>this._minimumNonErrorTimePeriod}}function nc(e,t=new Set){const o=[e],i=new Set;let n=0;for(;o.length>n;){const e=o[n++];if(!i.has(e)&&sc(e)&&!t.has(e))if(i.add(e),Symbol.iterator in e)try{for(const t of e)o.push(t)}catch{}else for(const t in e)"defaultValue"!==t&&o.push(e[t])}return i}function sc(e){const t=Object.prototype.toString.call(e),o=typeof e;return!("number"===o||"boolean"===o||"string"===o||"symbol"===o||"function"===o||"[object Date]"===t||"[object RegExp]"===t||"[object Module]"===t||null==e||e._watchdogExcluded||e instanceof EventTarget||e instanceof Event)}function rc(e,t,o=new Set){if(e===t&&("object"==typeof(i=e)&&null!==i))return!0;var i;const n=nc(e,o),s=nc(t,o);for(const e of n)if(s.has(e))return!0;return!1}function ac(e,t,o){const i=t.root,n=t.roots||Object.create(null);o&&!n[o]&&(n[o]=i||Object.create(null));const s=function(e){return!!e&&"object"==typeof e&&!Array.isArray(e)&&(t=e,!L(t));var t}(e),r=function(e,t,o){return t||!o?e.initialData||Object.create(null):{[o]:e.initialData}}(t,s,o),a=Array.from(new Set([...s?Object.keys(e):[],...Object.keys(n),...Object.keys(r)]));for(const e of a){const o=n[e]||Object.create(null);o.initialData="",o.placeholder??=lc(t,"placeholder",e),o.label??=lc(t,"label",e),n[e]=o}t.roots=n}function lc(e,t,o){const i=e[t];if(i)return"string"==typeof i?i:i[o]}class cc extends ic{_editor=null;_lifecyclePromise=null;_throttledSave;_data;_lastDocumentVersion;_elementOrData;_editorAttachTo=null;_isSingleRootEditor=!0;_isUsingConfigBasedCreator=!1;_editables={};_config;_excludedProps;constructor(e,t={}){super(t),this._throttledSave=oc(this._save.bind(this),"number"==typeof t.saveInterval?t.saveInterval:5e3),e&&(this._creator=(t,o)=>void 0===o?e.create(t):e.create(t,o)),this._destructor=e=>e.destroy()}get editor(){return this._editor}get _item(){return this._editor}setCreator(e){this._creator=e}setDestructor(e){this._destructor=e}_restart(){return Promise.resolve().then((()=>(this.state="initializing",this._fire("stateChange"),this._destroy()))).catch((e=>{console.error("An error happened during the editor destroying.",e)})).then((()=>{this._isUsingConfigBasedCreator?ac(this._isSingleRootEditor?"":{},this._config,!!this._isSingleRootEditor&&"main"):ac(this._isSingleRootEditor?this._editorAttachTo||"":this._editables,this._config,!!this._isSingleRootEditor&&"main");const e={...this._config,extraPlugins:this._config.extraPlugins||[],_watchdogInitialData:this._data};e.extraPlugins.push(dc);const t={};for(const[o,i]of Object.entries(this._data.roots)){const n=e.roots[o]||Object.create(null);n.initialData="",i.isLoaded?n.lazyLoad=!1:delete n.modelAttributes,t[o]=n}if(e.roots=t,delete e.initialData,delete e.root,this._isUsingConfigBasedCreator)return this.create(e,e.context);const o=this._isSingleRootEditor?this._editorAttachTo||"":this._editables;return this.create(o,e,e.context)})).then((()=>{this._fire("restart")}))}create(e=(this._isUsingConfigBasedCreator?this._config:this._elementOrData),t=(this._isUsingConfigBasedCreator?void 0:this._config),o){const i=this._detectConfigBasedCreator(e,t),n=i?void 0:e,s=i?e:t,r=i?t:o;return this._lifecyclePromise=Promise.resolve(this._lifecyclePromise).then((()=>{if(super._startErrorHandling(),this._isUsingConfigBasedCreator=i,this._elementOrData=n,this._config=this._cloneEditorConfiguration(s||{}),this._config.context=r,i){this._editorAttachTo=null;const e=this._config.roots?Object.keys(this._config.roots).length:0,t=this._config.initialData,o=t&&"object"==typeof t;this._isSingleRootEditor=!o&&e<=1}else this._editorAttachTo=uc(n)?n:null,this._isSingleRootEditor=uc(n)||"string"==typeof n;return i?this._creator(this._config):this._creator(n,this._config)})).then((e=>{this._editor=e,e.model.document.on("change:data",this._throttledSave),this._lastDocumentVersion=e.model.document.version,this._data=this._getData(),this._editorAttachTo||(this._editables=this._getEditables()),this.state="ready",this._fire("stateChange")})).finally((()=>{this._lifecyclePromise=null})),this._lifecyclePromise}destroy(){return this._lifecyclePromise=Promise.resolve(this._lifecyclePromise).then((()=>(this.state="destroyed",this._fire("stateChange"),super.destroy(),this._destroy()))).finally((()=>{this._lifecyclePromise=null})),this._lifecyclePromise}_destroy(){return Promise.resolve().then((()=>{this._stopErrorHandling(),this._throttledSave.cancel();const e=this._editor;return this._editor=null,e.model.document.off("change:data",this._throttledSave),this._destructor(e)}))}_save(){const e=this._editor.model.document.version;try{this._data=this._getData(),this._editorAttachTo||(this._editables=this._getEditables()),this._lastDocumentVersion=e}catch(e){console.error(e,"An error happened during restoring editor data. Editor will be restored from the previously saved data.")}}_setExcludedProperties(e){this._excludedProps=e}_getData(){const e=this._editor,t=e.model.document.roots.filter((e=>e.isAttached()&&"$graveyard"!=e.rootName)),{plugins:o}=e,i=o.has("CommentsRepository")&&o.get("CommentsRepository"),n=o.has("TrackChanges")&&o.get("TrackChanges"),s={roots:{},markers:{},commentThreads:JSON.stringify([]),suggestions:JSON.stringify([])};t.forEach((e=>{s.roots[e.rootName]={content:JSON.stringify(Array.from(e.getChildren())),attributes:JSON.stringify(Array.from(e.getAttributes())),isLoaded:e._isLoaded}}));for(const t of e.model.markers)t._affectsData&&(s.markers[t.name]={rangeJSON:t.getRange().toJSON(),usingOperation:t._managedUsingOperations,affectsData:t._affectsData});return i&&(s.commentThreads=JSON.stringify(i.getCommentThreads({toJSON:!0,skipNotAttached:!0}))),n&&(s.suggestions=JSON.stringify(n.getSuggestions({toJSON:!0,skipNotAttached:!0}))),s}_getEditables(){const e={};for(const t of this.editor.model.document.getRootNames()){const o=this.editor.ui.getEditableElement(t);o&&(e[t]=o)}return e}_isErrorComingFromThisItem(e){return rc(this._editor,e.context,this._excludedProps)}_detectConfigBasedCreator(e,t){if("string"==typeof e||uc(e))return!1;if(t&&"object"==typeof t&&!("destroy"in t)&&Object.keys(t).length>0)return!1;if(e&&"object"==typeof e){const t=Object.values(e);if(t.length>0&&t.every((e=>"string"==typeof e||uc(e))))return!1}return!0}_cloneEditorConfiguration(e){return N(e,((e,t)=>uc(e)||"context"===t?e:void 0))}}class dc{editor;_data;constructor(e){this.editor=e,this._data=e.config.get("_watchdogInitialData")}init(){this.editor.data.on("init",(e=>{e.stop(),this.editor.model.enqueueChange({isUndoable:!1},(e=>{this._restoreCollaborationData(),this._restoreEditorData(e)})),this.editor.data.fire("ready")}),{priority:999})}_createNode(e,t){if("name"in t){const o=e.createElement(t.name,t.attributes);if(t.children)for(const i of t.children)o._appendChild(this._createNode(e,i));return o}return e.createText(t.data,t.attributes)}_restoreEditorData(e){const t=this.editor;Object.entries(this._data.roots).forEach((([o,{content:i,attributes:n}])=>{const s=JSON.parse(i),r=JSON.parse(n),a=t.model.document.getRoot(o);for(const[t,o]of r)e.setAttribute(t,o,a);for(const t of s){const o=this._createNode(e,t);e.insert(o,a,"end")}})),Object.entries(this._data.markers).forEach((([o,i])=>{const{document:n}=t.model,{rangeJSON:{start:s,end:r},...a}=i,l=n.getRoot(s.root),c=e.createPositionFromPath(l,s.path,s.stickiness),d=e.createPositionFromPath(l,r.path,r.stickiness),u=e.createRange(c,d);e.addMarker(o,{range:u,...a})}))}_restoreCollaborationData(){const e=JSON.parse(this._data.commentThreads),t=JSON.parse(this._data.suggestions);if(this.editor.plugins.has("CommentsRepository")){const t=this.editor.plugins.get("CommentsRepository");for(const e of t.getCommentThreads())t._removeCommentThread({threadId:e.id});e.forEach((e=>{const t=this.editor.config.get("collaboration.channelId");this.editor.plugins.get("CommentsRepository").addCommentThread({channelId:t,...e})}))}if(this.editor.plugins.has("TrackChangesEditing")){const e=this.editor.plugins.get("TrackChangesEditing");for(const t of e.getSuggestions())e._removeSuggestion(t);t.forEach((t=>{e.addSuggestionData(t)}))}}}function uc(e){return L(e)}const hc=Symbol("MainQueueId");class mc extends ic{_watchdogs=new Map;_watchdogConfig;_context=null;_contextProps=new Set;_actionQueues=new gc;_contextConfig;_item;constructor(e,t={}){super(t),this._watchdogConfig=t,this._creator=t=>e.create(t),this._destructor=e=>e.destroy(),this._actionQueues.onEmpty((()=>{"initializing"===this.state&&(this.state="ready",this._fire("stateChange"))}))}setCreator(e){this._creator=e}setDestructor(e){this._destructor=e}get context(){return this._context}create(e={}){return this._actionQueues.enqueue(hc,(()=>(this._contextConfig=e,this._create())))}getItem(e){return this._getWatchdog(e)._item}getItemState(e){return this._getWatchdog(e).state}add(e){const t=pc(e);return Promise.all(t.map((e=>this._actionQueues.enqueue(e.id,(()=>{if("destroyed"===this.state)throw new Error("Cannot add items to destroyed watchdog.");if(!this._context)throw new Error("Context was not created yet. You should call the `ContextWatchdog#create()` method first.");let t;if(this._watchdogs.has(e.id))throw new Error(`Item with the given id is already added: '${e.id}'.`);if("editor"===e.type)return t=new cc(null,this._watchdogConfig),t.setCreator(e.creator),t._setExcludedProperties(this._contextProps),e.destructor&&t.setDestructor(e.destructor),this._watchdogs.set(e.id,t),t.on("error",((o,{error:i,causesRestart:n})=>{this._fire("itemError",{itemId:e.id,error:i}),n&&this._actionQueues.enqueue(e.id,(()=>new Promise((o=>{const i=()=>{t.off("restart",i),this._fire("itemRestart",{itemId:e.id}),o()};t.on("restart",i)}))))})),void 0!==e.sourceElementOrData?t.create(e.sourceElementOrData,e.config,this._context):t.create(e.config,this._context);throw new Error(`Not supported item type: '${e.type}'.`)})))))}remove(e){const t=pc(e);return Promise.all(t.map((e=>this._actionQueues.enqueue(e,(()=>{const t=this._getWatchdog(e);return this._watchdogs.delete(e),t.destroy()})))))}destroy(){return this._actionQueues.enqueue(hc,(()=>(this.state="destroyed",this._fire("stateChange"),super.destroy(),this._destroy())))}_restart(){return this._actionQueues.enqueue(hc,(()=>(this.state="initializing",this._fire("stateChange"),this._destroy().catch((e=>{console.error("An error happened during destroying the context or items.",e)})).then((()=>this._create())).then((()=>this._fire("restart"))))))}_create(){return Promise.resolve().then((()=>(this._startErrorHandling(),this._creator(this._contextConfig)))).then((e=>(this._context=e,this._contextProps=nc(this._context),Promise.all(Array.from(this._watchdogs.values()).map((e=>(e._setExcludedProperties(this._contextProps),e._isUsingConfigBasedCreator?e.create(void 0,this._context):e.create(void 0,void 0,this._context))))))))}_destroy(){return Promise.resolve().then((()=>{this._stopErrorHandling();const e=this._context;return this._context=null,this._contextProps=new Set,Promise.all(Array.from(this._watchdogs.values()).map((e=>e.destroy()))).then((()=>this._destructor(e)))}))}_getWatchdog(e){const t=this._watchdogs.get(e);if(!t)throw new Error(`Item with the given id was not registered: ${e}.`);return t}_isErrorComingFromThisItem(e){for(const t of this._watchdogs.values())if(t._isErrorComingFromThisItem(e))return!1;return rc(this._context,e.context)}}class gc{_onEmptyCallbacks=[];_queues=new Map;_activeActions=0;onEmpty(e){this._onEmptyCallbacks.push(e)}enqueue(e,t){const o=e===hc;this._activeActions++,this._queues.get(e)||this._queues.set(e,Promise.resolve());const i=(o?Promise.all(this._queues.values()):Promise.all([this._queues.get(hc),this._queues.get(e)])).then(t),n=i.catch((()=>{}));return this._queues.set(e,n),i.finally((()=>{this._activeActions--,this._queues.get(e)===n&&0===this._activeActions&&this._onEmptyCallbacks.forEach((e=>e()))}))}}function pc(e){return Array.isArray(e)?e:[e]}class fc extends(Be()){editor;_disableStack=new Set;constructor(e){super(),this.editor=e,this.set("isEnabled",!0)}forceDisabled(e){this._disableStack.add(e),1==this._disableStack.size&&(this.on("set:isEnabled",bc,{priority:"highest"}),this.isEnabled=!1)}clearForceDisabled(e){this._disableStack.delete(e),0==this._disableStack.size&&(this.off("set:isEnabled",bc),this.isEnabled=!0)}destroy(){this.stopListening()}static get isContextPlugin(){return!1}static get isOfficialPlugin(){return!1}static get isPremiumPlugin(){return!1}}function bc(e){e.return=!1,e.stop()}class wc extends(Be()){editor;_isEnabledBasedOnSelection;_affectsData;_disableStack;static get _throwErrorWhenUsedAsAPlugin(){return!0}constructor(e){super(),this.editor=e,this.set("value",void 0),this.set("isEnabled",!1),this._affectsData=!0,this._isEnabledBasedOnSelection=!0,this._disableStack=new Set,this.decorate("execute"),this.listenTo(this.editor.model.document,"change",(()=>{this.refresh()})),this.listenTo(e,"change:isReadOnly",(()=>{this.refresh()})),this.on("set:isEnabled",(t=>{if(!this.affectsData)return;const o=e.model.document.selection,i=!("$graveyard"==o.getFirstPosition().root.rootName)&&e.model.canEditAt(o);(e.isReadOnly||this._isEnabledBasedOnSelection&&!i)&&(t.return=!1,t.stop())}),{priority:"highest"}),this.on("execute",(e=>{this.isEnabled||e.stop()}),{priority:"high"})}get affectsData(){return this._affectsData}set affectsData(e){this._affectsData=e}refresh(){this.isEnabled=!0}forceDisabled(e){this._disableStack.add(e),1==this._disableStack.size&&(this.on("set:isEnabled",yc,{priority:"highest"}),this.isEnabled=!1)}clearForceDisabled(e){this._disableStack.delete(e),0==this._disableStack.size&&(this.off("set:isEnabled",yc),this.refresh())}execute(...e){}destroy(){this.stopListening()}}function yc(e){e.return=!1,e.stop()}class _c{_commands;constructor(){this._commands=new Map}add(e,t){this._commands.set(e,t)}get(e){return this._commands.get(e)}execute(e,...t){const o=this.get(e);if(!o)throw new fe("commandcollection-command-not-found",this,{commandName:e});return o.execute(...t)}*names(){yield*this._commands.keys()}*commands(){yield*this._commands.values()}[Symbol.iterator](){return this._commands[Symbol.iterator]()}destroy(){for(const e of this.commands())e.destroy()}}class kc extends(xe()){_context;_plugins=new Map;_availablePlugins;_contextPlugins;constructor(e,t=[],o=[]){super(),this._context=e,this._availablePlugins=new Map;for(const e of t)e.pluginName&&this._availablePlugins.set(e.pluginName,e);this._contextPlugins=new Map;for(const[e,t]of o)this._contextPlugins.set(e,t),this._contextPlugins.set(t,e),e.pluginName&&this._availablePlugins.set(e.pluginName,e)}*[Symbol.iterator](){for(const e of this._plugins)"function"==typeof e[0]&&(yield e)}get(e){const t=this._plugins.get(e);if(!t){let t=e;throw"function"==typeof e&&(t=e.pluginName||e.name),new fe("plugincollection-plugin-not-loaded",this._context,{plugin:t})}return t}has(e){return this._plugins.has(e)}async init(e,t=[],o=[]){const i=this,n=this._context;!function e(t,o=new Set){t.forEach((t=>{a(t)&&(o.has(t)||(o.add(t),t.pluginName&&!i._availablePlugins.has(t.pluginName)&&i._availablePlugins.set(t.pluginName,t),t.requires&&e(t.requires,o)))}))}(e),u(e);const s=[...function e(t,o=new Set){return t.map((e=>a(e)?e:i._availablePlugins.get(e))).reduce(((t,i)=>o.has(i)?t:(o.add(i),i.requires&&(u(i.requires,i),e(i.requires,o).forEach((e=>t.add(e)))),t.add(i))),new Set)}(e.filter((e=>!c(e,t))))];!function(e,t){for(const o of t){if("function"!=typeof o)throw new fe("plugincollection-replace-plugin-invalid-type",null,{pluginItem:o});const t=o.pluginName;if(!t)throw new fe("plugincollection-replace-plugin-missing-name",null,{pluginItem:o});if(o.requires&&o.requires.length)throw new fe("plugincollection-plugin-for-replacing-cannot-have-dependencies",null,{pluginName:t});const n=i._availablePlugins.get(t);if(!n)throw new fe("plugincollection-plugin-for-replacing-not-exist",null,{pluginName:t});const s=e.indexOf(n);if(-1===s){if(i._contextPlugins.has(n))return;throw new fe("plugincollection-plugin-for-replacing-not-loaded",null,{pluginName:t})}if(n.requires&&n.requires.length)throw new fe("plugincollection-replaced-plugin-cannot-have-dependencies",null,{pluginName:t});e.splice(s,1,o),i._availablePlugins.set(t,o)}}(s,o);const r=function(e){return e.map((e=>{let t=i._contextPlugins.get(e);return t=t||new e(n),i._add(e,t),t}))}(s);return await h(r,"init"),await h(r,"afterInit"),r;function a(e){return"function"==typeof e}function l(e){return a(e)&&!!e.isContextPlugin}function c(e,t){return t.some((t=>t===e||(d(e)===t||d(t)===e)))}function d(e){return a(e)?e.pluginName||e.name:e}function u(e,o=null){e.map((e=>a(e)?e:i._availablePlugins.get(e)||e)).forEach((e=>{!function(e){if("function"!=typeof e)return;if(e._throwErrorWhenUsedAsAPlugin)throw new fe("plugincollection-plugin-invalid-constructor",n,{name:e.name})}(e),function(e,t){if(a(e))return;if(t)throw new fe("plugincollection-soft-required",n,{missingPlugin:e,requiredBy:d(t)});throw new fe("plugincollection-plugin-not-found",n,{plugin:e})}(e,o),function(e,t){if(!l(t))return;if(l(e))return;throw new fe("plugincollection-context-required",n,{plugin:d(e),requiredBy:d(t)})}(e,o),function(e,o){if(!o)return;if(!c(e,t))return;throw new fe("plugincollection-required",n,{plugin:d(e),requiredBy:d(o)})}(e,o)}))}function h(e,t){return e.reduce(((e,o)=>o[t]?i._contextPlugins.has(o)?e:e.then(o[t].bind(o)):e),Promise.resolve())}}destroy(){const e=[];for(const[,t]of this)"function"!=typeof t.destroy||this._contextPlugins.has(t)||e.push(t.destroy());return Promise.all(e)}_add(e,t){this._plugins.set(e,t);const o=e.pluginName;if(o){if(this._plugins.has(o))throw new fe("plugincollection-plugin-name-conflict",null,{pluginName:o,plugin1:this._plugins.get(o).constructor,plugin2:e});this._plugins.set(o,t)}}}class vc{config;plugins;locale;t;editors;static defaultConfig;static builtinPlugins;_contextOwner=null;constructor(e){const{translations:t,...o}=e||{};this.config=new Ge(o,this.constructor.defaultConfig);const i=this.constructor.builtinPlugins;this.config.define("plugins",i),this.plugins=new kc(this,i);const n=this.config.get("language")||{};this.locale=new Xt({uiLanguage:"string"==typeof n?n:n.ui,contentLanguage:this.config.get("language.content"),translations:t}),this.t=this.locale.t,this.editors=new eo}initPlugins(){const e=this.config.get("plugins")||[],t=this.config.get("substitutePlugins")||[];for(const o of e.concat(t)){if("function"!=typeof o)throw new fe("context-initplugins-constructor-only",null,{Plugin:o});if(!0!==o.isContextPlugin)throw new fe("context-initplugins-invalid-plugin",null,{Plugin:o})}return this.plugins.init(e,[],t)}destroy(){return Promise.all(Array.from(this.editors,(e=>e.destroy()))).then((()=>this.plugins.destroy()))}_addEditor(e,t){if(this._contextOwner)throw new fe("context-addeditor-private-context");this.editors.add(e),t&&(this._contextOwner=e)}_removeEditor(e){return this.editors.has(e)&&this.editors.remove(e),this._contextOwner===e?this.destroy():Promise.resolve()}_getEditorConfig(){const e={};for(const t of this.config.names())["plugins","removePlugins","extraPlugins"].includes(t)||(e[t]=this.config.get(t));return e}static create(e){return new Promise((t=>{const o=new this(e);t(o.initPlugins().then((()=>o)))}))}static get _throwErrorWhenUsedAsAPlugin(){return!0}}class Cc extends(Be()){context;constructor(e){super(),this.context=e}destroy(){this.stopListening()}static get isContextPlugin(){return!0}static get isOfficialPlugin(){return!1}static get isPremiumPlugin(){return!1}}class Ac extends ro{editor;constructor(e){super(),this.editor=e}set(e,t,o={}){if("string"==typeof t){const e=t;t=(t,o)=>{this.editor.execute(e),o()}}super.set(e,t,o)}}const xc="contentEditing",Ec="common";class Tc{keystrokeInfos=new Map;_editor;constructor(e){this._editor=e;const t=e.config.get("menuBar.isVisible"),o=e.locale.t;this.addKeystrokeInfoCategory({id:xc,label:o("Content editing keystrokes"),description:o("These keyboard shortcuts allow for quick access to content editing features.")});const i=[{label:o("Close contextual balloons, dropdowns, and dialogs"),keystroke:"Esc"},{label:o("Open the accessibility help dialog"),keystroke:"Alt+0"},{label:o("Move focus between form fields (inputs, buttons, etc.)"),keystroke:[["Tab"],["Shift+Tab"]]},{label:o("Move focus to the toolbar, navigate between toolbars"),keystroke:"Alt+F10",mayRequireFn:!0},{label:o("Navigate through the toolbar or menu bar"),keystroke:[["arrowup"],["arrowright"],["arrowdown"],["arrowleft"]]},{label:o("Execute the currently focused button. Executing buttons that interact with the editor content moves the focus back to the content."),keystroke:[["Enter"],["Space"]]}];t&&i.push({label:o("Move focus to the menu bar, navigate between menu bars"),keystroke:"Alt+F9",mayRequireFn:!0}),this.addKeystrokeInfoCategory({id:"navigation",label:o("User interface and content navigation keystrokes"),description:o("Use the following keystrokes for more efficient navigation in the CKEditor 5 user interface."),groups:[{id:"common",keystrokes:i}]})}addKeystrokeInfoCategory({id:e,label:t,description:o,groups:i}){this.keystrokeInfos.set(e,{id:e,label:t,description:o,groups:new Map}),this.addKeystrokeInfoGroup({categoryId:e,id:Ec}),i&&i.forEach((t=>{this.addKeystrokeInfoGroup({categoryId:e,...t})}))}addKeystrokeInfoGroup({categoryId:e=xc,id:t,label:o,keystrokes:i}){const n=this.keystrokeInfos.get(e);if(!n)throw new fe("accessibility-unknown-keystroke-info-category",this._editor,{groupId:t,categoryId:e});n.groups.set(t,{id:t,label:o,keystrokes:i||[]})}addKeystrokeInfos({categoryId:e=xc,groupId:t=Ec,keystrokes:o}){if(!this.keystrokeInfos.has(e))throw new fe("accessibility-unknown-keystroke-info-category",this._editor,{categoryId:e,keystrokes:o});const i=this.keystrokeInfos.get(e);if(!i.groups.has(t))throw new fe("accessibility-unknown-keystroke-info-group",this._editor,{groupId:t,categoryId:e,keystrokes:o});i.groups.get(t).keystrokes.push(...o)}}function Pc(e){return Object.getPrototypeOf(e).constructor.editorName}function Sc(e){if(!e)return;const t=Array.isArray(e)?{items:e}:e,o=function e(t){return t.flatMap((t=>"string"==typeof t?[t]:e(t.items)))}(t.items||[]);return{isMultiline:o.includes("-"),shouldNotGroupWhenFull:!!t.shouldNotGroupWhenFull,items:(i=o,i.filter((e=>"|"!==e&&"-"!==e)))};var i}function Ic(){let e="unknown",t="unknown";return Y.isMac?e="mac":Y.isWindows?e="windows":Y.isiOS?e="ios":Y.isAndroid&&(e="android"),Y.isGecko?t="gecko":Y.isBlink?t="blink":Y.isSafari&&(t="safari"),{os:e,browser:t}}function Rc(){return localStorage.getItem("__ckeditor-session-id")||localStorage.setItem("__ckeditor-session-id",me()),localStorage.getItem("__ckeditor-session-id")}function Oc(){return J.window.CKEDITOR_PAGE_SESSION_ID=J.window.CKEDITOR_PAGE_SESSION_ID||me(),J.window.CKEDITOR_PAGE_SESSION_ID}class Vc extends(Be()){static get editorName(){return"Editor"}accessibility;commands;config;conversion;data;editing;locale;model;plugins;keystrokes;t;static defaultConfig;static builtinPlugins;_context;_readOnlyLocks;static get _throwErrorWhenUsedAsAPlugin(){return!0}constructor(e={}){if(super(),"object"!=typeof e||Array.isArray(e))throw new fe("editor-config-invalid-type");if("sanitizeHtml"in e)throw new fe("editor-config-sanitizehtml-not-supported");const t=this.constructor,{translations:o,...i}=t.defaultConfig||{},{translations:n=o,...s}=e,r=e.language||i.language;this._context=e.context||new vc({language:r,translations:n}),this._context._addEditor(this,!e.context);const a=Array.from(t.builtinPlugins||[]);this.config=new Ge(s,i),this.config.define("plugins",a),this.config.define(this._context._getEditorConfig()),function(e){let t=e.get("licenseKey");!t&&window.CKEDITOR_GLOBAL_LICENSE_KEY&&(t=window.CKEDITOR_GLOBAL_LICENSE_KEY,e.set("licenseKey",t));if(!t)throw new fe("license-key-missing")}(this.config),this.plugins=new kc(this,a,this._context.plugins),this.locale=this._context.locale,this.t=this.locale.t,this._readOnlyLocks=new Set,this.commands=new _c,this.set("state","initializing"),this.once("ready",(()=>this.state="ready"),{priority:"high"}),this.once("destroy",(()=>this.state="destroyed"),{priority:"high"}),this.model=new el(this.config),this.on("change:isReadOnly",(()=>{this.model.document.isReadOnly=this.isReadOnly}));const l=new pi;this.data=new Rr(this.model,l),this.editing=new hr(this.model,l),this.editing.view.document.bind("isReadOnly").to(this),this.conversion=new Or([this.editing.downcastDispatcher,this.data.downcastDispatcher],this.data.upcastDispatcher),this.conversion.addAlias("dataDowncast",this.data.downcastDispatcher),this.conversion.addAlias("editingDowncast",this.editing.downcastDispatcher),this.keystrokes=new Ac(this),this.keystrokes.listenTo(this.editing.view.document),this.accessibility=new Tc(this),function(e){const t=e.config.get("licenseKey"),o=window[Symbol.for("cke distribution")]||"sh";function i(t,o){e.enableReadOnlyMode(Symbol("invalidLicense")),e._showLicenseError(t,o)}if("GPL"==t)return void("cloud"==o&&i("distributionChannel"));const n=bo(t);if(!n)return void i("invalid");if(!function(e){return["exp","jti","vc"].every((t=>t in e))}(n))return void i("invalid");if(n.distributionChannel&&!Qt(n.distributionChannel).includes(o))return void i("distributionChannel");if(function(e){const t=Array.isArray(e)?e:[e],o=function(){const e=[];for(let t=0;t<256;t++){let o=t;for(let e=0;e<8;e++)1&o?o=3988292384^o>>>1:o>>>=1;e[t]=o}return e}();let i=-1;const n=t.map((e=>Array.isArray(e)?e.join(""):String(e))).join("");for(let e=0;e>>8^o[255&(i^n.charCodeAt(e))];return i=~i>>>0,i.toString(16).padStart(8,"0")}(function(e){return Object.getOwnPropertyNames(e).sort().filter((t=>"vc"!=t&&null!=e[t])).map((t=>e[t]))}(n))!=n.vc.toLowerCase())return void i("invalid");if(new Date(1e3*n.exp)<_e)return void i("expired");const s=n.licensedHosts;if(s&&s.length>0&&!function(e){const{hostname:t}=new URL(window.location.href);if(e.includes(t))return!0;const o=t.split(".");return e.filter((e=>e.includes("*"))).map((e=>e.split("."))).filter((e=>e.length<=o.length)).map((e=>Array(o.length-e.length).fill("*"===e[0]?"*":"").concat(e))).some((e=>o.every(((t,o)=>e[o]===t||"*"===e[o]))))}(s))return void i("domainLimit");if(["evaluation","trial"].includes(n.licenseType)&&1e3*n.exp{i("evaluationLimit")}),6e5);e.on("destroy",(()=>{clearTimeout(t)}))}n.usageEndpoint&&e.once("ready",(()=>{const o={requestId:me(),requestTime:Math.round(Date.now()/1e3),license:t,editor:Dc(e)};e._sendUsageRequest(n.usageEndpoint,o).then((e=>{const{status:t,message:o}=e;o&&console.warn(o),"ok"!=t&&i("usageLimit")}),(()=>{var e,t;e="license-key-validation-endpoint-not-reachable",t={url:n.usageEndpoint},console.error(...ye(e,t))}))}),{priority:"high"})}(this)}get isReadOnly(){return this._readOnlyLocks.size>0}set isReadOnly(e){throw new fe("editor-isreadonly-has-no-setter")}enableReadOnlyMode(e){if("string"!=typeof e&&"symbol"!=typeof e)throw new fe("editor-read-only-lock-id-invalid",null,{lockId:e});this._readOnlyLocks.has(e)||(this._readOnlyLocks.add(e),1===this._readOnlyLocks.size&&this.fire("change:isReadOnly","isReadOnly",!0,!1))}disableReadOnlyMode(e){if("string"!=typeof e&&"symbol"!=typeof e)throw new fe("editor-read-only-lock-id-invalid",null,{lockId:e});this._readOnlyLocks.has(e)&&(this._readOnlyLocks.delete(e),0===this._readOnlyLocks.size&&this.fire("change:isReadOnly","isReadOnly",!1,!0))}setData(e){this.data.set(e)}getData(e){return this.data.get(e)}initPlugins(){const e=this.config,t=e.get("plugins"),o=e.get("removePlugins")||[],i=e.get("extraPlugins")||[],n=e.get("substitutePlugins")||[];return this.plugins.init(t.concat(i),o,n).then((e=>(function(e){const t=e.config.get("licenseKey");if("GPL"===t)return;const o=bo(t);if(!o)return;const i=[...e.plugins].map((([e])=>e)).find((e=>{return!!e.pluginName&&(!!e.licenseFeatureCode&&(t=o,i=e.licenseFeatureCode,(t.removeFeatures||[]).includes(i)));var t,i}));i&&(e.enableReadOnlyMode(Symbol("invalidLicense")),e._showLicenseError("pluginNotAllowed",i.pluginName))}(this),e)))}destroy(){let e=Promise.resolve();return"initializing"==this.state&&(e=new Promise((e=>this.once("ready",e)))),e.then((()=>{this.fire("destroy"),this.stopListening(),this.commands.destroy()})).then((()=>this.plugins.destroy())).then((()=>{this.model.destroy(),this.data.destroy(),this.editing.destroy(),this.keystrokes.destroy()})).then((()=>this._context._removeEditor(this)))}execute(e,...t){try{return this.commands.execute(e,...t)}catch(e){fe.rethrowUnexpectedError(e,this)}}focus(){this.editing.view.focus()}static create(...e){throw new Error("This is an abstract method.")}static Context=vc;static EditorWatchdog=cc;static ContextWatchdog=mc;_showLicenseError(e,t){setTimeout((()=>{if("invalid"==e)throw new fe("invalid-license-key");if("expired"==e)throw new fe("license-key-expired");if("domainLimit"==e)throw new fe("license-key-domain-limit");if("pluginNotAllowed"==e){const e=t.replace(/(Editing|UI)$/,""),o=this.plugins.has(e);throw new fe("license-key-plugin-not-allowed",null,{pluginName:o?e:t})}if("featureNotAllowed"==e)throw new fe("license-key-feature-not-allowed",null,{featureName:t});if("evaluationLimit"==e)throw new fe("license-key-evaluation-limit");if("trialLimit"==e)throw new fe("license-key-trial-limit");if("developmentLimit"==e)throw new fe("license-key-development-limit");if("usageLimit"==e)throw new fe("license-key-usage-limit");if("distributionChannel"==e)throw new fe("license-key-invalid-distribution-channel")}),0),this._showLicenseError=()=>{}}async _sendUsageRequest(e,t){const o=new Headers({"Content-Type":"application/json"}),i=await fetch(new URL(e),{method:"POST",headers:o,body:JSON.stringify(t)});if(!i.ok)throw new Error(`HTTP Response: ${i.status}`);return i.json()}}function Dc(e){const t=function(e){return{sessionId:Rc(),pageSessionId:Oc(),hostname:window.location.hostname,version:globalThis.CKEDITOR_VERSION,type:Pc(e),plugins:(t=e.plugins,Array.from(t).filter((([e])=>!!e.pluginName)).map((([e])=>{const{pluginName:t,isContextPlugin:o,isOfficialPlugin:i,isPremiumPlugin:n}=e;return{isContext:!!o,isOfficial:!!i,isPremium:!!n,name:t}}))),distribution:{channel:window[Symbol.for("cke distribution")]||"sh"},env:Ic(),integration:Object.create(null),menuBar:{isVisible:!!e.config.get("menuBar.isVisible")},language:{ui:e.locale.uiLanguage,content:e.locale.contentLanguage},toolbar:{main:Sc(e.config.get("toolbar")),block:Sc(e.config.get("blockToolbar")),balloon:Sc(e.config.get("balloonToolbar"))}};var t}(e);return e.fire("collectUsageData",{setUsageData:function(e,o){if(void 0!==vo(t,e))throw new fe("editor-usage-data-path-already-set",{path:e});Ro(t,e,o)}}),t}function Fc(e){return class extends e{sourceElement;updateSourceElement(e){if(!this.sourceElement)throw new fe("editor-missing-sourceelement",this);const t=this.config.get("updateSourceElementOnDestroy"),o=this.sourceElement instanceof HTMLTextAreaElement;if(!t&&!o)return void wt(this.sourceElement,"");const i="string"==typeof e?e:this.data.get();wt(this.sourceElement,i)}}}function Mc(e,t,o="main",i=!1){const n=t.get("root"),s=t.get("roots")||Object.create(null);if(n){if(!o)throw new fe("editor-create-multi-root-with-main",null);if(o in s)throw new fe("editor-create-roots-with-main",null)}o&&!s[o]&&(s[o]=n||Object.create(null));const r=function(e){return!!e&&"object"==typeof e&&!Array.isArray(e)&&!Bc(e)}(e),a=function(e,t,o){return t||!o?e.get("initialData")||Object.create(null):{[o]:e.get("initialData")}}(t,r,o),l=Array.from(new Set([...r?Object.keys(e):[],...Object.keys(s),...Object.keys(a)]));for(const o of l){const n=s[o]||Object.create(null),l=r?e[o]:e;if(!i&&Bc(l)){if(n.element)throw new fe("editor-create-root-element-overspecified",null);n.element=l}if(i&&Bc(n.element)&&be("editor-create-root-element-not-supported"),void 0===n.initialData)if(void 0===a[o])n.initialData=Bc(d=l||n.element||i&&t.get("attachTo")||"")?(c=d)instanceof HTMLTextAreaElement?c.value:c.innerHTML:d;else{if(l&&!Bc(l))throw new fe("editor-create-initial-data-overspecified",null);n.initialData=a[o]}else{if(l&&!Bc(l))throw new fe("editor-create-root-initial-data-overspecified",null);if(void 0!==a[o])throw new fe("editor-create-legacy-initial-data-overspecified",null)}n.placeholder??=Nc(t,"placeholder",o),n.label??=Nc(t,"label",o),s[o]=n}var c,d;if(i&&Bc(e)){if(t.get("attachTo"))throw new fe("editor-create-attachto-overspecified",null);t.set("attachTo",e)}if(!i&&t.get("attachTo"))throw new fe("editor-create-attachto-ignored",null);t.set("roots",s)}function Nc(e,t,o){const i=e.get(t);if(i)return"string"==typeof i?i:i[o]}function Bc(e){return L(e)}class Lc extends Cc{_actions;static get pluginName(){return"PendingActions"}static get isOfficialPlugin(){return!0}init(){this.set("hasAny",!1),this._actions=new eo({idProperty:"_id"}),this._actions.delegate("add","remove").to(this)}add(e){if("string"!=typeof e)throw new fe("pendingactions-add-invalid-message",this);const t=new(Be());return t.set("message",e),this._actions.add(t),this.hasAny=!0,t}remove(e){this._actions.remove(e),this.hasAny=!!this._actions.length}get first(){return this._actions.get(0)}[Symbol.iterator](){return this._actions[Symbol.iterator]()}}var zc='',jc='',qc='',$c='',Hc='',Wc='',Uc='',Kc='',Gc='',Jc='',Zc='',Qc='',Yc='',Xc='',ed='',td='',od='',id='',nd='';const sd={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]};for(const e in sd)Object.freeze(sd[e]);const rd=Object.freeze(sd),ad=function(e){var t,o,i=[],n=1;if("number"==typeof e)return{space:"rgb",values:[e>>>16,(65280&e)>>>8,255&e],alpha:1};if("number"==typeof e)return{space:"rgb",values:[e>>>16,(65280&e)>>>8,255&e],alpha:1};if(e=String(e).toLowerCase(),rd[e])i=rd[e].slice(),o="rgb";else if("transparent"===e)n=0,o="rgb",i=[0,0,0];else if("#"===e[0]){var s=e.slice(1),r=s.length;n=1,r<=4?(i=[parseInt(s[0]+s[0],16),parseInt(s[1]+s[1],16),parseInt(s[2]+s[2],16)],4===r&&(n=parseInt(s[3]+s[3],16)/255)):(i=[parseInt(s[0]+s[1],16),parseInt(s[2]+s[3],16),parseInt(s[4]+s[5],16)],8===r&&(n=parseInt(s[6]+s[7],16)/255)),i[0]||(i[0]=0),i[1]||(i[1]=0),i[2]||(i[2]=0),o="rgb"}else if(t=/^((?:rgba?|hs[lvb]a?|hwba?|cmyk?|xy[zy]|gray|lab|lchu?v?|[ly]uv|lms|oklch|oklab|color))\s*\(([^\)]*)\)/.exec(e)){var a=t[1],l="cmyk"===(o=a.replace(/a$/,""))?4:"gray"===o?1:3;i=t[2].trim().split(/\s*[,\/]\s*|\s+/),"color"===o&&(o=i.shift()),n=(i=i.map((function(e,t){if("%"===e[e.length-1])return e=parseFloat(e)/100,3===t?e:"rgb"===o?255*e:"h"===o[0]?100*e:"l"!==o[0]||t?"lab"===o?125*e:"lch"===o?t<2?150*e:360*e:"o"!==o[0]||t?"oklab"===o?.4*e:"oklch"===o?t<2?.4*e:360*e:e:e:100*e;if("h"===o[t]||2===t&&"h"===o[o.length-1]){if(void 0!==ld[e])return ld[e];if(e.endsWith("deg"))return parseFloat(e);if(e.endsWith("turn"))return 360*parseFloat(e);if(e.endsWith("grad"))return 360*parseFloat(e)/400;if(e.endsWith("rad"))return 180*parseFloat(e)/Math.PI}return"none"===e?0:parseFloat(e)}))).length>l?i.pop():1}else/[0-9](?:\s|\/|,)/.test(e)&&(i=e.match(/([0-9]+)/g).map((function(e){return parseFloat(e)})),o=e.match(/([a-z])/gi)?.join("")?.toLowerCase()||"rgb");return{space:o,values:i,alpha:n}};var ld={red:0,orange:60,yellow:120,green:180,blue:240,purple:300};const cd={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]};for(const e in cd)Object.freeze(cd[e]);const dd=Object.freeze(cd),ud={};for(const e of Object.keys(dd))ud[dd[e]]=e;const hd={rgb:{channels:3,labels:"rgb"},hsl:{channels:3,labels:"hsl"},hsv:{channels:3,labels:"hsv"},hwb:{channels:3,labels:"hwb"},cmyk:{channels:4,labels:"cmyk"},xyz:{channels:3,labels:"xyz"},lab:{channels:3,labels:"lab"},oklab:{channels:3,labels:["okl","oka","okb"]},lch:{channels:3,labels:"lch"},oklch:{channels:3,labels:["okl","okc","okh"]},hex:{channels:1,labels:["hex"]},keyword:{channels:1,labels:["keyword"]},ansi16:{channels:1,labels:["ansi16"]},ansi256:{channels:1,labels:["ansi256"]},hcg:{channels:3,labels:["h","c","g"]},apple:{channels:3,labels:["r16","g16","b16"]},gray:{channels:1,labels:["gray"]}},md=hd,gd=(6/29)**3;function pd(e){const t=e>.0031308?1.055*e**(1/2.4)-.055:12.92*e;return Math.min(Math.max(0,t),1)}function fd(e){return e>.04045?((e+.055)/1.055)**2.4:e/12.92}for(const e of Object.keys(hd)){if(!("channels"in hd[e]))throw new Error("missing channels property: "+e);if(!("labels"in hd[e]))throw new Error("missing channel labels property: "+e);if(hd[e].labels.length!==hd[e].channels)throw new Error("channel and label counts mismatch: "+e);const{channels:t,labels:o}=hd[e];delete hd[e].channels,delete hd[e].labels,Object.defineProperty(hd[e],"channels",{value:t}),Object.defineProperty(hd[e],"labels",{value:o})}function bd(e){const t=function(){const e={},t=Object.keys(md);for(let{length:o}=t,i=0;i0;){const e=o.pop(),i=Object.keys(md[e]);for(let{length:n}=i,s=0;s1&&(n-=1)}return[360*n,100*s,100*c]},hd.rgb.hwb=function(e){const t=e[0],o=e[1];let i=e[2];const n=hd.rgb.hsl(e)[0],s=1/255*Math.min(t,Math.min(o,i));return i=1-1/255*Math.max(t,Math.max(o,i)),[n,100*s,100*i]},hd.rgb.oklab=function(e){const t=fd(e[0]/255),o=fd(e[1]/255),i=fd(e[2]/255),n=Math.cbrt(.4122214708*t+.5363325363*o+.0514459929*i),s=Math.cbrt(.2119034982*t+.6806995451*o+.1073969566*i),r=Math.cbrt(.0883024619*t+.2817188376*o+.6299787005*i);return[100*(.2104542553*n+.793617785*s-.0040720468*r),100*(1.9779984951*n-2.428592205*s+.4505937099*r),100*(.0259040371*n+.7827717662*s-.808675766*r)]},hd.rgb.cmyk=function(e){const t=e[0]/255,o=e[1]/255,i=e[2]/255,n=Math.min(1-t,1-o,1-i);return[100*((1-t-n)/(1-n)||0),100*((1-o-n)/(1-n)||0),100*((1-i-n)/(1-n)||0),100*n]},hd.rgb.keyword=function(e){const t=ud[e];if(t)return t;let o,i=Number.POSITIVE_INFINITY;for(const t of Object.keys(dd)){const r=dd[t],a=(s=r,((n=e)[0]-s[0])**2+(n[1]-s[1])**2+(n[2]-s[2])**2);agd?o**(1/3):7.787*o+16/116,i=i>gd?i**(1/3):7.787*i+16/116,n=n>gd?n**(1/3):7.787*n+16/116;return[116*i-16,500*(o-i),200*(i-n)]},hd.hsl.rgb=function(e){const t=e[0]/360,o=e[1]/100,i=e[2]/100;let n,s;if(0===o)return s=255*i,[s,s,s];const r=i<.5?i*(1+o):i+o-i*o,a=2*i-r,l=[0,0,0];for(let e=0;e<3;e++)n=t+1/3*-(e-1),n<0&&n++,n>1&&n--,s=6*n<1?a+6*(r-a)*n:2*n<1?r:3*n<2?a+(r-a)*(2/3-n)*6:a,l[e]=255*s;return l},hd.hsl.hsv=function(e){const t=e[0];let o=e[1]/100,i=e[2]/100,n=o;const s=Math.max(i,.01);i*=2,o*=i<=1?i:2-i,n*=s<=1?s:2-s;return[t,100*(0===i?2*n/(s+n):2*o/(i+o)),100*((i+o)/2)]},hd.hsv.rgb=function(e){const t=e[0]/60,o=e[1]/100;let i=e[2]/100;const n=Math.floor(t)%6,s=t-Math.floor(t),r=255*i*(1-o),a=255*i*(1-o*s),l=255*i*(1-o*(1-s));switch(i*=255,n){case 0:return[i,l,r];case 1:return[a,i,r];case 2:return[r,i,l];case 3:return[r,a,i];case 4:return[l,r,i];case 5:return[i,r,a]}},hd.hsv.hsl=function(e){const t=e[0],o=e[1]/100,i=e[2]/100,n=Math.max(i,.01);let s,r;r=(2-o)*i;const a=(2-o)*n;return s=o*n,s/=a<=1?a:2-a,s=s||0,r/=2,[t,100*s,100*r]},hd.hwb.rgb=function(e){const t=e[0]/360;let o=e[1]/100,i=e[2]/100;const n=o+i;let s;n>1&&(o/=n,i/=n);const r=Math.floor(6*t),a=1-i;s=6*t-r,1&r&&(s=1-s);const l=o+s*(a-o);let c,d,u;switch(r){default:case 6:case 0:c=a,d=l,u=o;break;case 1:c=l,d=a,u=o;break;case 2:c=o,d=a,u=l;break;case 3:c=o,d=l,u=a;break;case 4:c=l,d=o,u=a;break;case 5:c=a,d=o,u=l}return[255*c,255*d,255*u]},hd.cmyk.rgb=function(e){const t=e[0]/100,o=e[1]/100,i=e[2]/100,n=e[3]/100;return[255*(1-Math.min(1,t*(1-n)+n)),255*(1-Math.min(1,o*(1-n)+n)),255*(1-Math.min(1,i*(1-n)+n))]},hd.xyz.rgb=function(e){const t=e[0]/100,o=e[1]/100,i=e[2]/100;let n,s,r;return n=3.2404542*t+-1.5371385*o+-.4985314*i,s=-.969266*t+1.8760108*o+.041556*i,r=.0556434*t+-.2040259*o+1.0572252*i,n=pd(n),s=pd(s),r=pd(r),[255*n,255*s,255*r]},hd.xyz.lab=function(e){let t=e[0],o=e[1],i=e[2];t/=95.047,o/=100,i/=108.883,t=t>gd?t**(1/3):7.787*t+16/116,o=o>gd?o**(1/3):7.787*o+16/116,i=i>gd?i**(1/3):7.787*i+16/116;return[116*o-16,500*(t-o),200*(o-i)]},hd.xyz.oklab=function(e){const t=e[0]/100,o=e[1]/100,i=e[2]/100,n=Math.cbrt(.8189330101*t+.3618667424*o-.1288597137*i),s=Math.cbrt(.0329845436*t+.9293118715*o+.0361456387*i),r=Math.cbrt(.0482003018*t+.2643662691*o+.633851707*i);return[100*(.2104542553*n+.793617785*s-.0040720468*r),100*(1.9779984951*n-2.428592205*s+.4505937099*r),100*(.0259040371*n+.7827717662*s-.808675766*r)]},hd.oklab.oklch=function(e){return hd.lab.lch(e)},hd.oklab.xyz=function(e){const t=e[0]/100,o=e[1]/100,i=e[2]/100,n=(.999999998*t+.396337792*o+.215803758*i)**3,s=(1.000000008*t-.105561342*o-.063854175*i)**3,r=(1.000000055*t-.089484182*o-1.291485538*i)**3;return[100*(1.227013851*n-.55779998*s+.281256149*r),100*(-.040580178*n+1.11225687*s-.071676679*r),100*(-.076381285*n-.421481978*s+1.58616322*r)]},hd.oklab.rgb=function(e){const t=e[0]/100,o=e[1]/100,i=e[2]/100,n=(t+.3963377774*o+.2158037573*i)**3,s=(t-.1055613458*o-.0638541728*i)**3,r=(t-.0894841775*o-1.291485548*i)**3;return[255*pd(4.0767416621*n-3.3077115913*s+.2309699292*r),255*pd(-1.2684380046*n+2.6097574011*s-.3413193965*r),255*pd(-.0041960863*n-.7034186147*s+1.707614701*r)]},hd.oklch.oklab=function(e){return hd.lch.lab(e)},hd.lab.xyz=function(e){let t,o,i;o=(e[0]+16)/116,t=e[1]/500+o,i=o-e[2]/200;const n=o**3,s=t**3,r=i**3;return o=n>gd?n:(o-16/116)/7.787,t=s>gd?s:(t-16/116)/7.787,i=r>gd?r:(i-16/116)/7.787,t*=95.047,o*=100,i*=108.883,[t,o,i]},hd.lab.lch=function(e){const t=e[0],o=e[1],i=e[2];let n;n=360*Math.atan2(i,o)/2/Math.PI,n<0&&(n+=360);return[t,Math.sqrt(o*o+i*i),n]},hd.lch.lab=function(e){const t=e[0],o=e[1],i=e[2]/360*2*Math.PI;return[t,o*Math.cos(i),o*Math.sin(i)]},hd.rgb.ansi16=function(e,t=null){const[o,i,n]=e;let s=null===t?hd.rgb.hsv(e)[2]:t;if(s=Math.round(s/50),0===s)return 30;let r=30+(Math.round(n/255)<<2|Math.round(i/255)<<1|Math.round(o/255));return 2===s&&(r+=60),r},hd.hsv.ansi16=function(e){return hd.rgb.ansi16(hd.hsv.rgb(e),e[2])},hd.rgb.ansi256=function(e){const t=e[0],o=e[1],i=e[2];if(t>>4==o>>4&&o>>4==i>>4)return t<8?16:t>248?231:Math.round((t-8)/247*24)+232;return 16+36*Math.round(t/255*5)+6*Math.round(o/255*5)+Math.round(i/255*5)},hd.ansi16.rgb=function(e){let t=(e=e[0])%10;if(0===t||7===t)return e>50&&(t+=3.5),t=t/10.5*255,[t,t,t];const o=.5*(Math.trunc(e>50)+1);return[(1&t)*o*255,(t>>1&1)*o*255,(t>>2&1)*o*255]},hd.ansi256.rgb=function(e){if((e=e[0])>=232){const t=10*(e-232)+8;return[t,t,t]}let t;e-=16;return[Math.floor(e/36)/5*255,Math.floor((t=e%36)/6)/5*255,t%6/5*255]},hd.rgb.hex=function(e){const t=(((255&Math.round(e[0]))<<16)+((255&Math.round(e[1]))<<8)+(255&Math.round(e[2]))).toString(16).toUpperCase();return"000000".slice(t.length)+t},hd.hex.rgb=function(e){const t=e.toString(16).match(/[a-f\d]{6}|[a-f\d]{3}/i);if(!t)return[0,0,0];let o=t[0];3===t[0].length&&(o=[...o].map((e=>e+e)).join(""));const i=Number.parseInt(o,16);return[i>>16&255,i>>8&255,255&i]},hd.rgb.hcg=function(e){const t=e[0]/255,o=e[1]/255,i=e[2]/255,n=Math.max(Math.max(t,o),i),s=Math.min(Math.min(t,o),i),r=n-s;let a;return a=r<=0?0:n===t?(o-i)/r%6:n===o?2+(i-t)/r:4+(t-o)/r,a/=6,a%=1,[360*a,100*r,100*(r<1?s/(1-r):0)]},hd.hsl.hcg=function(e){const t=e[1]/100,o=e[2]/100,i=o<.5?2*t*o:2*t*(1-o);let n=0;return i<1&&(n=(o-.5*i)/(1-i)),[e[0],100*i,100*n]},hd.hsv.hcg=function(e){const t=e[1]/100,o=e[2]/100,i=t*o;let n=0;return i<1&&(n=(o-i)/(1-i)),[e[0],100*i,100*n]},hd.hcg.rgb=function(e){const t=e[0]/360,o=e[1]/100,i=e[2]/100;if(0===o)return[255*i,255*i,255*i];const n=[0,0,0],s=t%1*6,r=s%1,a=1-r;let l=0;switch(Math.floor(s)){case 0:n[0]=1,n[1]=r,n[2]=0;break;case 1:n[0]=a,n[1]=1,n[2]=0;break;case 2:n[0]=0,n[1]=1,n[2]=r;break;case 3:n[0]=0,n[1]=a,n[2]=1;break;case 4:n[0]=r,n[1]=0,n[2]=1;break;default:n[0]=1,n[1]=0,n[2]=a}return l=(1-o)*i,[255*(o*n[0]+l),255*(o*n[1]+l),255*(o*n[2]+l)]},hd.hcg.hsv=function(e){const t=e[1]/100,o=t+e[2]/100*(1-t);let i=0;return o>0&&(i=t/o),[e[0],100*i,100*o]},hd.hcg.hsl=function(e){const t=e[1]/100,o=e[2]/100*(1-t)+.5*t;let i=0;return o>0&&o<.5?i=t/(2*o):o>=.5&&o<1&&(i=t/(2*(1-o))),[e[0],100*i,100*o]},hd.hcg.hwb=function(e){const t=e[1]/100,o=t+e[2]/100*(1-t);return[e[0],100*(o-t),100*(1-o)]},hd.hwb.hcg=function(e){const t=e[1]/100,o=1-e[2]/100,i=o-t;let n=0;return i<1&&(n=(o-i)/(1-i)),[e[0],100*i,100*n]},hd.apple.rgb=function(e){return[e[0]/65535*255,e[1]/65535*255,e[2]/65535*255]},hd.rgb.apple=function(e){return[e[0]/255*65535,e[1]/255*65535,e[2]/255*65535]},hd.gray.rgb=function(e){return[e[0]/100*255,e[0]/100*255,e[0]/100*255]},hd.gray.hsl=function(e){return[0,0,e[0]]},hd.gray.hsv=hd.gray.hsl,hd.gray.hwb=function(e){return[0,100,e[0]]},hd.gray.cmyk=function(e){return[0,0,0,e[0]]},hd.gray.lab=function(e){return[e[0],0,0]},hd.gray.hex=function(e){const t=255&Math.round(e[0]/100*255),o=((t<<16)+(t<<8)+t).toString(16).toUpperCase();return"000000".slice(o.length)+o},hd.rgb.gray=function(e){return[(e[0]+e[1]+e[2])/3/255*100]};const _d=function(e){const t=bd(e),o={},i=Object.keys(t);for(let{length:e}=i,n=0;n1&&(t=o),e(t))};return"conversion"in e&&(t.conversion=e.conversion),t}function Ad(e){const t=function(...t){const o=t[0];if(null==o)return o;o.length>1&&(t=o);const i=e(t);if("object"==typeof i)for(let{length:e}=i,t=0;te>o?o:eMath.round(o*e)/o,Pd=(Math.PI,e=>("#"===e[0]&&(e=e.substring(1)),e.length<6?{r:parseInt(e[0]+e[0],16),g:parseInt(e[1]+e[1],16),b:parseInt(e[2]+e[2],16),a:4===e.length?Td(parseInt(e[3]+e[3],16)/255,2):1}:{r:parseInt(e.substring(0,2),16),g:parseInt(e.substring(2,4),16),b:parseInt(e.substring(4,6),16),a:8===e.length?Td(parseInt(e.substring(6,8),16)/255,2):1})),Sd=({h:e,s:t,v:o,a:i})=>{const n=(200-t)*o/100;return{h:Td(e),s:Td(n>0&&n<200?t*o/100/(n<=100?n:200-n)*100:0),l:Td(n/2),a:Td(i,2)}},Id=e=>{const{h:t,s:o,l:i}=Sd(e);return`hsl(${t}, ${o}%, ${i}%)`},Rd=({h:e,s:t,v:o,a:i})=>{e=e/360*6,t/=100,o/=100;const n=Math.floor(e),s=o*(1-t),r=o*(1-(e-n)*t),a=o*(1-(1-e+n)*t),l=n%6;return{r:Td(255*[o,r,s,s,a,o][l]),g:Td(255*[a,o,o,r,s,s][l]),b:Td(255*[s,s,a,o,o,r][l]),a:Td(i,2)}},Od=e=>{const t=e.toString(16);return t.length<2?"0"+t:t},Vd=({r:e,g:t,b:o,a:i})=>{const n=i<1?Od(Td(255*i)):"";return"#"+Od(e)+Od(t)+Od(o)+n},Dd=({r:e,g:t,b:o,a:i})=>{const n=Math.max(e,t,o),s=n-Math.min(e,t,o),r=s?n===e?(t-o)/s:n===t?2+(o-e)/s:4+(e-t)/s:0;return{h:Td(60*(r<0?r+6:r)),s:Td(n?s/n*100:0),v:Td(n/255*100),a:i}},Fd=(e,t)=>{if(e===t)return!0;for(const o in e)if(e[o]!==t[o])return!1;return!0},Md={},Nd=e=>{let t=Md[e];return t||(t=document.createElement("template"),t.innerHTML=e,Md[e]=t),t},Bd=(e,t,o)=>{e.dispatchEvent(new CustomEvent(t,{bubbles:!0,detail:o}))};let Ld=!1;const zd=e=>"touches"in e,jd=(e,t)=>{const o=zd(t)?t.touches[0]:t,i=e.el.getBoundingClientRect();Bd(e.el,"move",e.getMove({x:Ed((o.pageX-(i.left+window.pageXOffset))/i.width),y:Ed((o.pageY-(i.top+window.pageYOffset))/i.height)}))};class qd{constructor(e,t,o,i){const n=Nd(`
    `);e.appendChild(n.content.cloneNode(!0));const s=e.querySelector(`[part=${t}]`);s.addEventListener("mousedown",this),s.addEventListener("touchstart",this),s.addEventListener("keydown",this),this.el=s,this.xy=i,this.nodes=[s.firstChild,s]}set dragging(e){const t=e?document.addEventListener:document.removeEventListener;t(Ld?"touchmove":"mousemove",this),t(Ld?"touchend":"mouseup",this)}handleEvent(e){switch(e.type){case"mousedown":case"touchstart":if(e.preventDefault(),!(e=>!(Ld&&!zd(e)||(Ld||(Ld=zd(e)),0)))(e)||!Ld&&0!=e.button)return;this.el.focus(),jd(this,e),this.dragging=!0;break;case"mousemove":case"touchmove":e.preventDefault(),jd(this,e);break;case"mouseup":case"touchend":this.dragging=!1;break;case"keydown":((e,t)=>{const o=t.keyCode;o>40||e.xy&&o<37||o<33||(t.preventDefault(),Bd(e.el,"move",e.getMove({x:39===o?.01:37===o?-.01:34===o?.05:33===o?-.05:35===o?1:36===o?-1:0,y:40===o?.01:38===o?-.01:0},!0)))})(this,e)}}style(e){e.forEach(((e,t)=>{for(const o in e)this.nodes[t].style.setProperty(o,e[o])}))}}class $d extends qd{constructor(e){super(e,"hue",'aria-label="Hue" aria-valuemin="0" aria-valuemax="360"',!1)}update({h:e}){this.h=e,this.style([{left:e/360*100+"%",color:Id({h:e,s:100,v:100,a:1})}]),this.el.setAttribute("aria-valuenow",`${Td(e)}`)}getMove(e,t){return{h:t?Ed(this.h+360*e.x,0,360):360*e.x}}}class Hd extends qd{constructor(e){super(e,"saturation",'aria-label="Color"',!0)}update(e){this.hsva=e,this.style([{top:100-e.v+"%",left:`${e.s}%`,color:Id(e)},{"background-color":Id({h:e.h,s:100,v:100,a:1})}]),this.el.setAttribute("aria-valuetext",`Saturation ${Td(e.s)}%, Brightness ${Td(e.v)}%`)}getMove(e,t){return{s:t?Ed(this.hsva.s+100*e.x,0,100):100*e.x,v:t?Ed(this.hsva.v-100*e.y,0,100):Math.round(100-100*e.y)}}}const Wd=Symbol("same"),Ud=Symbol("color"),Kd=Symbol("hsva"),Gd=Symbol("update"),Jd=Symbol("parts"),Zd=Symbol("css"),Qd=Symbol("sliders");class Yd extends HTMLElement{static get observedAttributes(){return["color"]}get[Zd](){return[':host{display:flex;flex-direction:column;position:relative;width:200px;height:200px;user-select:none;-webkit-user-select:none;cursor:default}:host([hidden]){display:none!important}[role=slider]{position:relative;touch-action:none;user-select:none;-webkit-user-select:none;outline:0}[role=slider]:last-child{border-radius:0 0 8px 8px}[part$=pointer]{position:absolute;z-index:1;box-sizing:border-box;width:28px;height:28px;display:flex;place-content:center center;transform:translate(-50%,-50%);background-color:#fff;border:2px solid #fff;border-radius:50%;box-shadow:0 2px 4px rgba(0,0,0,.2)}[part$=pointer]::after{content:"";width:100%;height:100%;border-radius:inherit;background-color:currentColor}[role=slider]:focus [part$=pointer]{transform:translate(-50%,-50%) scale(1.1)}',"[part=hue]{flex:0 0 24px;background:linear-gradient(to right,red 0,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,red 100%)}[part=hue-pointer]{top:50%;z-index:2}","[part=saturation]{flex-grow:1;border-color:transparent;border-bottom:12px solid #000;border-radius:8px 8px 0 0;background-image:linear-gradient(to top,#000,transparent),linear-gradient(to right,#fff,rgba(255,255,255,0));box-shadow:inset 0 0 0 1px rgba(0,0,0,.05)}[part=saturation-pointer]{z-index:3}"]}get[Qd](){return[Hd,$d]}get color(){return this[Ud]}set color(e){if(!this[Wd](e)){const t=this.colorModel.toHsva(e);this[Gd](t),this[Ud]=e}}constructor(){super();const e=Nd(``),t=this.attachShadow({mode:"open"});t.appendChild(e.content.cloneNode(!0)),t.addEventListener("move",this),this[Jd]=this[Qd].map((e=>new e(t)))}connectedCallback(){if(this.hasOwnProperty("color")){const e=this.color;delete this.color,this.color=e}else this.color||(this.color=this.colorModel.defaultColor)}attributeChangedCallback(e,t,o){const i=this.colorModel.fromAttr(o);this[Wd](i)||(this.color=i)}handleEvent(e){const t=this[Kd],o={...t,...e.detail};let i;this[Gd](o),Fd(o,t)||this[Wd](i=this.colorModel.fromHsva(o))||(this[Ud]=i,Bd(this,"color-changed",{value:i}))}[Wd](e){return this.color&&this.colorModel.equal(e,this.color)}[Gd](e){this[Kd]=e,this[Jd].forEach((t=>t.update(e)))}}const Xd={defaultColor:"#000",toHsva:e=>Dd(Pd(e)),fromHsva:({h:e,s:t,v:o})=>Vd(Rd({h:e,s:t,v:o,a:1})),equal:(e,t)=>e.toLowerCase()===t.toLowerCase()||Fd(Pd(e),Pd(t)),fromAttr:e=>e};class eu extends Yd{get colorModel(){return Xd}}class tu extends eo{_parentElement;constructor(e=[]){super(e,{idProperty:"viewUid"}),this.on("add",((e,t,o)=>{this._renderViewIntoCollectionParent(t,o)})),this.on("remove",((e,t)=>{t.element&&this._parentElement&&t.element.remove()})),this._parentElement=null}destroy(){this.map((e=>e.destroy()))}setParent(e){this._parentElement=e;for(const e of this)this._renderViewIntoCollectionParent(e)}delegate(...e){if(!e.length||!e.every((e=>"string"==typeof e)))throw new fe("ui-viewcollection-delegate-wrong-events",this);return{to:t=>{for(const o of this)for(const i of e)o.delegate(i).to(t);this.on("add",((o,i)=>{for(const o of e)i.delegate(o).to(t)})),this.on("remove",((o,i)=>{for(const o of e)i.stopDelegating(o,t)}))}}}_renderViewIntoCollectionParent(e,t){e.isRendered||e.render(),e.element&&this._parentElement&&this._parentElement.insertBefore(e.element,this._parentElement.children[t])}remove(e){return super.remove(e)}}class ou extends(xe()){ns;tag;text;attributes;children;eventListeners;_isRendered;_revertData;constructor(e){super(),Object.assign(this,mu(hu(e))),this._isRendered=!1,this._revertData=null}render(){const e=this._renderNode({intoFragment:!0});return this._isRendered=!0,e}apply(e){return this._revertData={children:[],bindings:[],attributes:{}},this._renderNode({node:e,intoFragment:!1,isApplying:!0,revertData:this._revertData}),e}revert(e){if(!this._revertData)throw new fe("ui-template-revert-not-applied",[this,e]);this._revertTemplateFromNode(e,this._revertData)}*getViews(){yield*function*e(t){if(t.children)for(const o of t.children)yu(o)?yield o:_u(o)&&(yield*e(o))}(this)}static bind(e,t){return{to:(o,i)=>new nu({eventNameOrFunction:o,attribute:o,observable:e,emitter:t,callback:i}),if:(o,i,n)=>new su({observable:e,emitter:t,attribute:o,valueIfTrue:i,callback:n})}}static extend(e,t){if(e._isRendered)throw new fe("template-extend-render",[this,e]);bu(e,mu(hu(t)))}_renderNode(e){let t;if(t=e.node?this.tag&&this.text:this.tag?this.text:!this.text,t)throw new fe("ui-template-wrong-syntax",this);return this.text?this._renderText(e):this._renderElement(e)}_renderElement(e){let t=e.node;return t||(t=e.node=document.createElementNS(this.ns||"http://www.w3.org/1999/xhtml",this.tag)),this._renderAttributes(e),this._renderElementChildren(e),this._setUpListeners(e),t}_renderText(e){let t=e.node;return t?e.revertData.text=t.textContent:t=e.node=document.createTextNode(""),ru(this.text)?this._bindToObservable({schema:this.text,updater:cu(t),data:e}):t.textContent=this.text.join(""),t}_renderAttributes(e){if(!this.attributes)return;const t=e.node,o=e.revertData;for(const i in this.attributes){const n=t.getAttribute(i),s=this.attributes[i];o&&(o.attributes[i]=n);const r=vu(s)?s[0].ns:null;if(ru(s)){const a=vu(s)?s[0].value:s;o&&Cu(i)&&a.unshift(n),this._bindToObservable({schema:a,updater:du(t,i,r),data:e})}else if("style"==i&&"string"!=typeof s[0])this._renderStyleAttribute(s[0],e);else{o&&n&&Cu(i)&&s.unshift(n);const e=s.map((e=>e&&e.value||e)).reduce(((e,t)=>e.concat(t)),[]).reduce(pu,"");wu(e)||t.setAttributeNS(r,i,e)}}}_renderStyleAttribute(e,t){const o=t.node;for(const i in e){const n=e[i];ru(n)?this._bindToObservable({schema:[n],updater:uu(o,i),data:t}):au(i)?o.style.setProperty(i,n):o.style[i]=n}}_renderElementChildren(e){const t=e.node,o=e.intoFragment?document.createDocumentFragment():t,i=e.isApplying;let n=0;for(const s of this.children)if(ku(s)){if(!i){s.setParent(t);for(const e of s)o.appendChild(e.element)}}else if(yu(s))i||(s.isRendered||s.render(),o.appendChild(s.element));else if(Qe(s))o.appendChild(s);else if(i){const t={children:[],bindings:[],attributes:{}};e.revertData.children.push(t),s._renderNode({intoFragment:!1,node:o.childNodes[n++],isApplying:!0,revertData:t})}else o.appendChild(s.render());e.intoFragment&&t.appendChild(o)}_setUpListeners(e){if(this.eventListeners)for(const t in this.eventListeners){const o=this.eventListeners[t].map((o=>{const[i,n]=t.split("@");return o.activateDomEventListener(i,n,e)}));e.revertData&&e.revertData.bindings.push(o)}}_bindToObservable({schema:e,updater:t,data:o}){const i=o.revertData;lu(e,t,o);const n=e.filter((e=>!wu(e))).filter((e=>e.observable)).map((i=>i.activateAttributeListener(e,t,o)));i&&i.bindings.push(n)}_revertTemplateFromNode(e,t){for(const e of t.bindings)for(const t of e)t();if(t.text)return void(e.textContent=t.text);const o=e;for(const e in t.attributes){const i=t.attributes[e];null===i?o.removeAttribute(e):o.setAttribute(e,i)}for(let e=0;elu(e,t,o);return this.emitter.listenTo(this.observable,`change:${this.attribute}`,i),()=>{this.emitter.stopListening(this.observable,`change:${this.attribute}`,i)}}}class nu extends iu{eventNameOrFunction;constructor(e){super(e),this.eventNameOrFunction=e.eventNameOrFunction}activateDomEventListener(e,t,o){const i=(e,o)=>{t&&!o.target.matches(t)||("function"==typeof this.eventNameOrFunction?this.eventNameOrFunction(o):this.observable.fire(this.eventNameOrFunction,o))};return this.emitter.listenTo(o.node,e,i),()=>{this.emitter.stopListening(o.node,e,i)}}}class su extends iu{valueIfTrue;constructor(e){super(e),this.valueIfTrue=e.valueIfTrue}getValue(e){return!wu(super.getValue(e))&&(this.valueIfTrue||!0)}}function ru(e){return!!e&&(e.value&&(e=e.value),Array.isArray(e)?e.some(ru):e instanceof iu)}function au(e){return/^--[a-zA-Z_-][\w-]*$/.test(e)}function lu(e,t,{node:o}){const i=function(e,t){return e.map((e=>e instanceof iu?e.getValue(t):e))}(e,o);let n;n=1==e.length&&e[0]instanceof su?i[0]:i.reduce(pu,""),wu(n)?t.remove():t.set(n)}function cu(e){return{set(t){e.textContent=t},remove(){e.textContent=""}}}function du(e,t,o){return{set(i){e.setAttributeNS(o,t,i)},remove(){e.removeAttributeNS(o,t)}}}function uu(e,t){return{set(o){au(t)?e.style.setProperty(t,o):e.style[t]=o},remove(){au(t)?e.style.removeProperty(t):e.style[t]=null}}}function hu(e){return N(e,(e=>{if(e&&(e instanceof iu||_u(e)||yu(e)||ku(e)))return e}))}function mu(e){if("string"==typeof e?e=function(e){return{text:[e]}}(e):e.text&&function(e){e.text=Qt(e.text)}(e),e.on&&(e.eventListeners=function(e){for(const t in e)gu(e,t);return e}(e.on),delete e.on),!e.text){e.attributes&&function(e){for(const t in e)e[t].value&&(e[t].value=Qt(e[t].value)),gu(e,t)}(e.attributes);const t=[];if(e.children)if(ku(e.children))t.push(e.children);else for(const o of e.children)_u(o)||yu(o)||Qe(o)?t.push(o):t.push(new ou(o));e.children=t}return e}function gu(e,t){e[t]=Qt(e[t])}function pu(e,t){return wu(t)?e:wu(e)?t:`${e} ${t}`}function fu(e,t){for(const o in t)e[o]?e[o].push(...t[o]):e[o]=t[o]}function bu(e,t){if(t.attributes&&(e.attributes||(e.attributes={}),fu(e.attributes,t.attributes)),t.eventListeners&&(e.eventListeners||(e.eventListeners={}),fu(e.eventListeners,t.eventListeners)),t.text&&e.text.push(...t.text),t.children&&t.children.length){if(e.children.length!=t.children.length)throw new fe("ui-template-extend-children-mismatch",e);let o=0;for(const i of t.children)bu(e.children[o++],i)}}function wu(e){return!e&&0!==e}function yu(e){return e instanceof Au}function _u(e){return e instanceof ou}function ku(e){return e instanceof tu}function vu(e){return s(e[0])&&e[0].ns}function Cu(e){return"class"==e||"style"==e}class Au extends(et(Be())){element;isRendered;locale;t;template;_viewCollections;_unboundChildren;_bindTemplate;constructor(e){super(),this.element=null,this.isRendered=!1,this.locale=e,this.t=e&&e.t,this._viewCollections=new eo,this._unboundChildren=this.createCollection(),this._viewCollections.on("add",((t,o)=>{o.locale=e,o.t=e&&e.t})),this.decorate("render")}get bindTemplate(){return this._bindTemplate?this._bindTemplate:this._bindTemplate=ou.bind(this,this)}createCollection(e){const t=new tu(e);return this._viewCollections.add(t),t}registerChild(e){Ue(e)||(e=[e]);for(const t of e)this._unboundChildren.add(t)}deregisterChild(e){Ue(e)||(e=[e]);for(const t of e)this._unboundChildren.remove(t)}setTemplate(e){this.template=new ou(e)}extendTemplate(e){ou.extend(this.template,e)}render(){if(this.isRendered)throw new fe("ui-view-render-already-rendered",this);this.template&&(this.element=this.template.render(),this.registerChild(this.template.getViews())),this.isRendered=!0}destroy(){this.stopListening(),this._viewCollections.map((e=>e.destroy())),this.template&&this.template._revertData&&this.template.revert(this.element)}}const xu={POLITE:"polite",ASSERTIVE:"assertive"};class Eu{editor;view;constructor(e){this.editor=e,e.once("ready",(()=>{for(const e of Object.values(xu))this.announce("",e)}))}announce(e,t=xu.POLITE){const o=this.editor;if(!o.ui.view)return;this.view||(this.view=new Tu(o.locale),o.ui.view.body.add(this.view));const{politeness:i,isUnsafeHTML:n}="string"==typeof t?{politeness:t}:t;let s=this.view.regionViews.find((e=>e.politeness===i));s||(s=new Pu(o,i),this.view.regionViews.add(s)),s.announce({announcement:e,isUnsafeHTML:n})}}class Tu extends Au{regionViews;constructor(e){super(e),this.regionViews=this.createCollection(),this.setTemplate({tag:"div",attributes:{class:["ck","ck-aria-live-announcer"]},children:this.regionViews})}}class Pu extends Au{politeness;_domConverter;_pruneAnnouncementsInterval;constructor(e,t){super(e.locale),this.setTemplate({tag:"div",attributes:{"aria-live":t,"aria-relevant":"additions"},children:[{tag:"ul",attributes:{class:["ck","ck-aria-live-region-list"]}}]}),e.on("destroy",(()=>{null!==this._pruneAnnouncementsInterval&&(clearInterval(this._pruneAnnouncementsInterval),this._pruneAnnouncementsInterval=null)})),this.politeness=t,this._domConverter=e.data.htmlProcessor.domConverter,this._pruneAnnouncementsInterval=setInterval((()=>{this.element&&this._listElement.firstChild&&this._listElement.firstChild.remove()}),5e3)}announce({announcement:e,isUnsafeHTML:t}){if(!e.trim().length)return;const o=document.createElement("li");t?this._domConverter.setContentOf(o,e):o.innerText=e,this._listElement.appendChild(o)}get _listElement(){return this.element.querySelector("ul")}}function Su({emitter:e,activator:t,callback:o,contextElements:i,listenerOptions:n}){e.listenTo(document,"mousedown",((e,n)=>{if(!t())return;const s="function"==typeof n.composedPath?n.composedPath():[],r="function"==typeof i?i():i;for(const e of r)if(e.contains(n.target)||s.includes(e))return;o()}),n)}function Iu(e){return class extends e{disableCssTransitions(){this._isCssTransitionsDisabled=!0}enableCssTransitions(){this._isCssTransitionsDisabled=!1}constructor(...e){super(...e),this.set("_isCssTransitionsDisabled",!1),this.initializeCssTransitionDisablerMixin()}initializeCssTransitionDisablerMixin(){this.template&&this.extendTemplate({attributes:{class:[this.bindTemplate.if("_isCssTransitionsDisabled","ck-transitions-disabled")]}})}}}function Ru(e){return class extends e{_onDragBound=this._onDrag.bind(this);_onDragEndBound=this._onDragEnd.bind(this);_lastDraggingCoordinates={x:0,y:0};constructor(...e){super(...e),this.on("render",(()=>{this._attachListeners()})),this.set("isDragging",!1)}_attachListeners(){this.listenTo(this.element,"mousedown",this._onDragStart.bind(this)),this.listenTo(this.element,"touchstart",this._onDragStart.bind(this))}_attachDragListeners(){this.listenTo(J.document,"mouseup",this._onDragEndBound),this.listenTo(J.document,"touchend",this._onDragEndBound),this.listenTo(J.document,"mousemove",this._onDragBound),this.listenTo(J.document,"touchmove",this._onDragBound)}_detachDragListeners(){this.stopListening(J.document,"mouseup",this._onDragEndBound),this.stopListening(J.document,"touchend",this._onDragEndBound),this.stopListening(J.document,"mousemove",this._onDragBound),this.stopListening(J.document,"touchmove",this._onDragBound)}_onDragStart(e,t){if(!this._isHandleElementPressed(t))return;this._attachDragListeners();let o=0,i=0;t instanceof MouseEvent?(o=t.clientX,i=t.clientY):(o=t.touches[0].clientX,i=t.touches[0].clientY),this._lastDraggingCoordinates={x:o,y:i},this.isDragging=!0}_onDrag(e,t){if(!this.isDragging)return void this._detachDragListeners();let o=0,i=0;t instanceof MouseEvent?(o=t.clientX,i=t.clientY):(o=t.touches[0].clientX,i=t.touches[0].clientY),t.preventDefault(),this.fire("drag",{deltaX:Math.round(o-this._lastDraggingCoordinates.x),deltaY:Math.round(i-this._lastDraggingCoordinates.y)}),this._lastDraggingCoordinates={x:o,y:i}}_onDragEnd(){this._detachDragListeners(),this.isDragging=!1}_isHandleElementPressed(e){return!!this.dragHandleElement&&(this.dragHandleElement===e.target||e.target instanceof HTMLElement&&this.dragHandleElement.contains(e.target))}}}function Ou({view:e}){e.listenTo(e.element,"submit",((t,o)=>{o.preventDefault(),e.fire("submit")}),{useCapture:!0})}function Vu({keystrokeHandler:e,focusTracker:t,gridItems:o,numberOfColumns:i,uiLanguageDirection:n}){const s="number"==typeof i?()=>i:i;function r(e){return i=>{const n=o.find((e=>e.element===t.focusedElement)),s=o.getIndex(n),r=e(s,o);o.get(r).focus(),i.stopPropagation(),i.preventDefault()}}function a(e,t){return e===t-1?0:e+1}function l(e,t){return 0===e?t-1:e-1}e.set("arrowright",r(((e,t)=>"rtl"===n?l(e,t.length):a(e,t.length)))),e.set("arrowleft",r(((e,t)=>"rtl"===n?a(e,t.length):l(e,t.length)))),e.set("arrowup",r(((e,t)=>{let o=e-s();return o<0&&(o=e+s()*Math.floor(t.length/s()),o>t.length-1&&(o-=s())),o}))),e.set("arrowdown",r(((e,t)=>{let o=e+s();return o>t.length-1&&(o=e%s()),o})))}class Du extends Au{id;constructor(e){super(e),this.set("text",void 0),this.set("for",void 0),this.id=`ck-editor__label_${me()}`;const t=this.bindTemplate;this.setTemplate({tag:"label",attributes:{class:["ck","ck-label"],id:this.id,for:t.to("for")},children:[{text:t.to("text")}]})}}class Fu extends Au{constructor(e,t){super(e);const o=e.t,i=new Du;i.text=o("Help Contents. To close this dialog press ESC."),this.setTemplate({tag:"div",attributes:{class:["ck","ck-accessibility-help-dialog__content"],"aria-labelledby":i.id,role:"document",tabindex:-1},children:[Ke(document,"p",{},o("Below, you can find a list of keyboard shortcuts that can be used in the editor.")),...this._createCategories(Array.from(t.values())),i]})}focus(){this.element.focus()}_createCategories(e){return e.map((e=>{const t=[Ke(document,"h3",{},e.label),...Array.from(e.groups.values()).map((e=>this._createGroup(e))).flat()];return e.description&&t.splice(1,0,Ke(document,"p",{},e.description)),Ke(document,"section",{},t)}))}_createGroup(e){const t=e.keystrokes.sort(((e,t)=>e.label.localeCompare(t.label))).map((e=>this._createGroupRow(e))).flat(),o=[Ke(document,"dl",{},t)];return e.label&&o.unshift(Ke(document,"h4",{},e.label)),o}_createGroupRow(e){const t=this.locale.t,o=Ke(document,"dt"),i=Ke(document,"dd"),n=function(e){if("string"==typeof e)return[[e]];if("string"==typeof e[0])return[e];return e}(e.keystroke),s=[];for(const e of n)s.push(e.map(Mu).join(""));return o.innerHTML=e.label,i.innerHTML=s.join(", ")+(e.mayRequireFn&&Y.isMac?` ${t("(may require Fn)")}`:""),[o,i]}}function Mu(e){return Ut(e).split("+").map((e=>`${e}`)).join("+")}class Nu extends Au{static presentationalAttributeNames=["alignment-baseline","baseline-shift","clip-path","clip-rule","color","color-interpolation","color-interpolation-filters","color-rendering","cursor","direction","display","dominant-baseline","fill","fill-opacity","fill-rule","filter","flood-color","flood-opacity","font-family","font-size","font-size-adjust","font-stretch","font-style","font-variant","font-weight","image-rendering","letter-spacing","lighting-color","marker-end","marker-mid","marker-start","mask","opacity","overflow","paint-order","pointer-events","shape-rendering","stop-color","stop-opacity","stroke","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-width","text-anchor","text-decoration","text-overflow","text-rendering","transform","unicode-bidi","vector-effect","visibility","white-space","word-spacing","writing-mode"];constructor(){super();const e=this.bindTemplate;this.set("content",""),this.set("viewBox","0 0 20 20"),this.set("fillColor",""),this.set("isColorInherited",!0),this.set("isVisible",!0),this.setTemplate({tag:"svg",ns:"http://www.w3.org/2000/svg",attributes:{class:["ck","ck-icon",e.if("isVisible","ck-hidden",(e=>!e)),"ck-reset_all-excluded",e.if("isColorInherited","ck-icon_inherit-color")],viewBox:e.to("viewBox"),"aria-hidden":!0}})}render(){super.render(),this._updateXMLContent(),this._colorFillPaths(),this.on("change:content",(()=>{this._updateXMLContent(),this._colorFillPaths()})),this.on("change:fillColor",(()=>{this._colorFillPaths()}))}_updateXMLContent(){if(this.content){const e=(new DOMParser).parseFromString(this.content.trim(),"image/svg+xml").querySelector("svg");if(!e)throw new fe("ui-iconview-invalid-svg",this);const t=e.getAttribute("viewBox");t&&(this.viewBox=t);for(const{name:t,value:o}of Array.from(e.attributes))Nu.presentationalAttributeNames.includes(t)&&this.element.setAttribute(t,o);for(;this.element.firstChild;)this.element.removeChild(this.element.firstChild);for(;e.childNodes.length>0;)this.element.appendChild(e.childNodes[0])}}_colorFillPaths(){this.fillColor&&this.element.querySelectorAll(".ck-icon__fill").forEach((e=>{e.style.fill=this.fillColor}))}}class Bu extends Au{constructor(){super(),this.set({style:void 0,text:void 0,id:void 0});const e=this.bindTemplate;this.setTemplate({tag:"span",attributes:{class:["ck","ck-button__label"],style:e.to("style"),id:e.to("id")},children:[{text:e.to("text")}]})}}class Lu extends Au{children;labelView;iconView;keystrokeView;_focusDelayed=null;constructor(e,t=new Bu){super(e);const o=this.bindTemplate,i=me();this.set("_ariaPressed",!1),this.set("_ariaChecked",!1),this.set("ariaLabel",void 0),this.set("ariaLabelledBy",`ck-editor__aria-label_${i}`),this.set("class",void 0),this.set("labelStyle",void 0),this.set("icon",void 0),this.set("isEnabled",!0),this.set("isOn",!1),this.set("isVisible",!0),this.set("isToggleable",!1),this.set("keystroke",void 0),this.set("label",void 0),this.set("role",void 0),this.set("tabindex",-1),this.set("tooltip",!1),this.set("tooltipPosition","s"),this.set("type","button"),this.set("withText",!1),this.set("withKeystroke",!1),this.children=this.createCollection(),this.labelView=this._setupLabelView(t),this.iconView=new Nu,this.iconView.extendTemplate({attributes:{class:"ck-button__icon"}}),this.iconView.bind("content").to(this,"icon"),this.keystrokeView=this._createKeystrokeView(),this.bind("_tooltipString").to(this,"tooltip",this,"label",this,"keystroke",this._getTooltipString.bind(this));const n={tag:"button",attributes:{class:["ck","ck-button",o.to("class"),o.if("isEnabled","ck-disabled",(e=>!e)),o.if("isVisible","ck-hidden",(e=>!e)),o.to("isOn",(e=>e?"ck-on":"ck-off")),o.if("withText","ck-button_with-text"),o.if("withKeystroke","ck-button_with-keystroke")],role:o.to("role"),type:o.to("type",(e=>e||"button")),tabindex:o.to("tabindex"),"aria-checked":o.to("_ariaChecked"),"aria-pressed":o.to("_ariaPressed"),"aria-label":o.to("ariaLabel"),"aria-labelledby":o.to("ariaLabelledBy"),"aria-disabled":o.if("isEnabled",!0,(e=>!e)),"data-cke-tooltip-text":o.to("_tooltipString"),"data-cke-tooltip-position":o.to("tooltipPosition")},children:this.children,on:{click:o.to((e=>{this.isEnabled?this.fire("execute"):e.preventDefault()}))}};this.bind("_ariaPressed").to(this,"isOn",this,"isToggleable",this,"role",((e,t,o)=>!(!t||zu(o))&&String(!!e))),this.bind("_ariaChecked").to(this,"isOn",this,"isToggleable",this,"role",((e,t,o)=>!(!t||!zu(o))&&String(!!e))),Y.isSafari&&(this._focusDelayed||(this._focusDelayed=co((()=>this.focus()),0)),n.on.mousedown=o.to((()=>{this._focusDelayed()})),n.on.mouseup=o.to((()=>{this._focusDelayed.cancel()}))),this.setTemplate(n)}render(){super.render(),this.icon&&this.children.add(this.iconView),this.on("change:icon",((e,t,o,i)=>{o&&!i?this.children.add(this.iconView,0):!o&&i&&this.children.remove(this.iconView)})),this.children.add(this.labelView),this.withKeystroke&&this.keystroke&&this.children.add(this.keystrokeView)}focus(){this.element.focus()}destroy(){this._focusDelayed&&this._focusDelayed.cancel(),super.destroy()}_setupLabelView(e){return e.bind("text","style","id").to(this,"label","labelStyle","ariaLabelledBy"),e}_createKeystrokeView(){const e=new Au;return e.setTemplate({tag:"span",attributes:{class:["ck","ck-button__keystroke"]},children:[{text:this.bindTemplate.to("keystroke",(e=>Ut(e)))}]}),e}_getTooltipString(e,t,o){return e?"string"==typeof e?e:(o&&(o=Ut(o)),e instanceof Function?e(t,o):`${t}${o?` (${o})`:""}`):""}}function zu(e){switch(e){case"radio":case"checkbox":case"option":case"switch":case"menuitemcheckbox":case"menuitemradio":return!0;default:return!1}}class ju extends Au{children;iconView;constructor(e,t={}){super(e);const o=this.bindTemplate;this.set("label",t.label||""),this.set("class",t.class||null),this.children=this.createCollection(),this.setTemplate({tag:"div",attributes:{class:["ck","ck-form__header",o.to("class")]},children:this.children}),t.icon&&(this.iconView=new Nu,this.iconView.content=t.icon,this.children.add(this.iconView));const i=new Au(e);i.setTemplate({tag:"h2",attributes:{class:["ck","ck-form__header__label"],role:"presentation"},children:[{text:o.to("label")}]}),this.children.add(i)}}class qu extends(xe()){focusables;focusTracker;keystrokeHandler;actions;constructor(e){if(super(),this.focusables=e.focusables,this.focusTracker=e.focusTracker,this.keystrokeHandler=e.keystrokeHandler,this.actions=e.actions,e.actions&&e.keystrokeHandler)for(const t in e.actions){let o=e.actions[t];"string"==typeof o&&(o=[o]);for(const i of o)e.keystrokeHandler.set(i,((e,o)=>{this[t](),o()}),e.keystrokeHandlerOptions)}this.on("forwardCycle",(()=>this.focusFirst()),{priority:"low"}),this.on("backwardCycle",(()=>this.focusLast()),{priority:"low"})}get first(){return this.focusables.find($u)||null}get last(){return this.focusables.filter($u).slice(-1)[0]||null}get next(){return this._getDomFocusableItem(1)}get previous(){return this._getDomFocusableItem(-1)}get current(){let e=null;return null===this.focusTracker.focusedElement?null:(this.focusables.find(((t,o)=>{const i=t.element===this.focusTracker.focusedElement;return i&&(e=o),i})),e)}focusFirst(){this._focus(this.first,1)}focusLast(){this._focus(this.last,-1)}focusNext(){const e=this.next;e&&this.focusables.getIndex(e)===this.current||e===this.first?this.fire("forwardCycle"):this._focus(e,1)}focusPrevious(){const e=this.previous;e&&this.focusables.getIndex(e)===this.current||e===this.last?this.fire("backwardCycle"):this._focus(e,-1)}chain(e){const t=()=>null===this.current?null:this.focusables.get(this.current);this.listenTo(e,"forwardCycle",(e=>{const o=t();this.focusNext(),o!==t()&&e.stop()}),{priority:"low"}),this.listenTo(e,"backwardCycle",(e=>{const o=t();this.focusPrevious(),o!==t()&&e.stop()}),{priority:"low"})}unchain(e){this.stopListening(e)}_focus(e,t){e&&this.focusTracker.focusedElement!==e.element&&e.focus(t)}_getDomFocusableItem(e){const t=this.focusables.length;if(!t)return null;const o=this.current;if(null===o)return this[1===e?"first":"last"];let i=this.focusables.get(o),n=(o+t+e)%t;do{const o=this.focusables.get(n);if($u(o)){i=o;break}n=(n+t+e)%t}while(n!==o);return i}}function $u(e){return Hu(e)&&Ct(e.element)}function Hu(e){return!(!("focus"in e)||"function"!=typeof e.focus)}class Wu extends Au{children;keystrokes;focusCycler;_focusTracker;_focusables;constructor(e){super(e),this.children=this.createCollection(),this.keystrokes=new ro,this._focusTracker=new oo,this._focusables=new tu,this.focusCycler=new qu({focusables:this._focusables,focusTracker:this._focusTracker,keystrokeHandler:this.keystrokes,actions:{focusPrevious:"shift + tab",focusNext:"tab"}}),this.setTemplate({tag:"div",attributes:{class:["ck","ck-dialog__actions"]},children:this.children})}render(){super.render(),this.keystrokes.listenTo(this.element)}setButtons(e){for(const t of e){const e=new Lu(this.locale);let o;for(o in e.on("execute",(()=>t.onExecute())),t.onCreate&&t.onCreate(e),t)"onExecute"!=o&&"onCreate"!=o&&e.set(o,t[o]);this.children.add(e)}this._updateFocusCyclableItems()}focus(e){-1===e?this.focusCycler.focusLast():this.focusCycler.focusFirst()}_updateFocusCyclableItems(){Array.from(this.children).forEach((e=>{this._focusables.add(e),this._focusTracker.add(e.element)}))}}class Uu extends Au{children;constructor(e){super(e),this.children=this.createCollection(),this.setTemplate({tag:"div",attributes:{class:["ck","ck-dialog__content"]},children:this.children})}reset(){for(;this.children.length;)this.children.remove(0)}}const Ku="screen-center",Gu="editor-center",Ju="editor-top-side",Zu="editor-top-center",Qu="editor-bottom-center",Yu="editor-above-center",Xu="editor-below-center",eh=yt("px");class th extends(Ru(Au)){parts;headerView;closeButtonView;actionsView;static defaultOffset=15;contentView;keystrokes;focusTracker;wasMoved=!1;_getCurrentDomRoot;_getViewportOffset;_focusables;_focusCycler;constructor(e,{getCurrentDomRoot:t,getViewportOffset:o,keystrokeHandlerOptions:i}){super(e);const n=this.bindTemplate,s=e.t;this.set("className",""),this.set("ariaLabel",s("Editor dialog")),this.set("isModal",!1),this.set("position",Ku),this.set("_isVisible",!1),this.set("_isTransparent",!1),this.set("_top",0),this.set("_left",0),this._getCurrentDomRoot=t,this._getViewportOffset=o,this.decorate("moveTo"),this.parts=this.createCollection(),this.keystrokes=new ro,this.focusTracker=new oo,this._focusables=new tu,this._focusCycler=new qu({focusables:this._focusables,focusTracker:this.focusTracker,keystrokeHandler:this.keystrokes,actions:{focusPrevious:"shift + tab",focusNext:"tab"},keystrokeHandlerOptions:i}),this.setTemplate({tag:"div",attributes:{class:["ck","ck-dialog-overlay",n.if("isModal","ck-dialog-overlay__transparent",(e=>!e)),n.if("_isVisible","ck-hidden",(e=>!e))],tabindex:"-1"},children:[{tag:"div",attributes:{tabindex:"-1",class:["ck","ck-dialog",n.if("isModal","ck-dialog_modal"),n.to("className")],role:"dialog","aria-label":n.to("ariaLabel"),style:{top:n.to("_top",(e=>eh(e))),left:n.to("_left",(e=>eh(e))),visibility:n.if("_isTransparent","hidden")}},children:this.parts}]})}render(){super.render(),this.keystrokes.set("Esc",((e,t)=>{e.defaultPrevented||(this.fire("close",{source:"escKeyPress"}),t())})),this.on("drag",((e,{deltaX:t,deltaY:o})=>{this.wasMoved=!0,this.moveBy(t,o)})),this.listenTo(J.window,"resize",(()=>{this._isVisible&&!this.wasMoved&&this.updatePosition()})),this.listenTo(J.document,"scroll",(()=>{this._isVisible&&!this.wasMoved&&this.updatePosition()})),this.on("change:_isVisible",((e,t,o)=>{o&&(this._isTransparent=!0,setTimeout((()=>{this.updatePosition(),this._isTransparent=!1,this.focus()}),10))})),this.keystrokes.listenTo(this.element)}get dragHandleElement(){return this.headerView&&!this.isModal?this.headerView.element:null}setupParts({icon:e,title:t,hasCloseButton:o=!0,content:i,actionButtons:n}){t&&(this.headerView=new ju(this.locale,{icon:e}),o&&(this.closeButtonView=this._createCloseButton(),this.headerView.children.add(this.closeButtonView)),this.headerView.label=t,this.ariaLabel=t,this.parts.add(this.headerView,0)),i&&(i instanceof Au&&(i=[i]),this.contentView=new Uu(this.locale),this.contentView.children.addMany(i),this.parts.add(this.contentView)),n&&(this.actionsView=new Wu(this.locale),this.actionsView.setButtons(n),this.parts.add(this.actionsView)),this._updateFocusCyclableItems()}focus(){this._focusCycler.focusFirst()}moveTo(e,t){const o=this._getViewportRect(),i=this._getDialogRect();e+i.width>o.right&&(e=o.right-i.width),e{var t;this._focusables.add(e),this.focusTracker.add(e.element),Hu(t=e)&&"focusCycler"in t&&t.focusCycler instanceof qu&&this._focusCycler.chain(e.focusCycler)}))}_createCloseButton(){const e=new Lu(this.locale),t=this.locale.t;return e.set({label:t("Close"),tooltip:!0,icon:$c}),e.on("execute",(()=>this.fire("close",{source:"closeButton"}))),e}}class oh extends fc{view;static _visibleDialogPlugin;_onHide;static get pluginName(){return"Dialog"}static get isOfficialPlugin(){return!0}constructor(e){super(e);const t=e.t;this._initShowHideListeners(),this._initFocusToggler(),this._initMultiRootIntegration(),this.set({id:null,isOpen:!1}),e.accessibility.addKeystrokeInfos({categoryId:"navigation",keystrokes:[{label:t("Move focus in and out of an active dialog window"),keystroke:"Ctrl+F6",mayRequireFn:!0}]})}destroy(){super.destroy(),oh._visibleDialogPlugin===this&&this._unlockBodyScroll()}_initShowHideListeners(){this.on("show",((e,t)=>{this._show(t)})),this.on("show",((e,t)=>{t.onShow&&t.onShow(this)}),{priority:"low"}),this.on("hide",(()=>{oh._visibleDialogPlugin&&oh._visibleDialogPlugin._hide()})),this.on("hide",(()=>{this._onHide&&(this._onHide(this),this._onHide=void 0)}),{priority:"low"})}_initFocusToggler(){const e=this.editor;e.keystrokes.set("Ctrl+F6",((t,o)=>{this.isOpen&&!this.view.isModal&&(this.view.focusTracker.isFocused?e.editing.view.focus():this.view.focus(),o())}))}_initMultiRootIntegration(){const e=this.editor.model;e.document.on("change:data",(()=>{if(!this.view)return;const t=e.document.differ.getChangedRoots();for(const e of t)e.state&&this.view.updatePosition()}))}show(e){this.hide(),this.fire(`show:${e.id}`,e)}_show({id:e,icon:t,title:o,hasCloseButton:i=!0,content:n,actionButtons:s,className:r,isModal:a,position:l,onHide:c,keystrokeHandlerOptions:d}){const u=this.editor;this.view=new th(u.locale,{getCurrentDomRoot:()=>u.editing.view.getDomRoot(u.model.document.selection.anchor.root.rootName),getViewportOffset:()=>u.ui.viewportOffset,keystrokeHandlerOptions:d});const h=this.view;h.on("close",(()=>{this.hide()})),u.ui.view.body.add(h),u.keystrokes.listenTo(h.element),l||(l=a?Ku:Gu),a&&this._lockBodyScroll(),h.set({position:l,_isVisible:!0,className:r,isModal:a}),h.setupParts({icon:t,title:o,hasCloseButton:i,content:n,actionButtons:s}),this.id=e,c&&(this._onHide=c),this.isOpen=!0,oh._visibleDialogPlugin=this}hide(){oh._visibleDialogPlugin&&oh._visibleDialogPlugin.fire(`hide:${oh._visibleDialogPlugin.id}`)}_hide(){if(!this.view)return;const e=this.editor,t=this.view;t.isModal&&this._unlockBodyScroll(),t.contentView&&t.contentView.reset(),e.ui.view.body.remove(t),e.ui.focusTracker.remove(t.element),e.keystrokes.stopListening(t.element),t.destroy(),e.editing.view.focus(),this.id=null,this.isOpen=!1,oh._visibleDialogPlugin=null}_lockBodyScroll(){document.documentElement.classList.add("ck-dialog-scroll-locked")}_unlockBodyScroll(){document.documentElement.classList.remove("ck-dialog-scroll-locked")}}class ih extends Lu{_checkIconHolderView=new nh;constructor(e,t=new Bu){super(e,t),this.set({hasCheckSpace:!1,_hasCheck:this.isToggleable});const o=this.bindTemplate;this.extendTemplate({attributes:{class:["ck-list-item-button",o.if("isToggleable","ck-list-item-button_toggleable")]}}),this.bind("_hasCheck").to(this,"hasCheckSpace",this,"isToggleable",((e,t)=>e||t))}render(){super.render(),this._hasCheck&&this.children.add(this._checkIconHolderView,0),this._watchCheckIconHolderMount()}_watchCheckIconHolderMount(){this._checkIconHolderView.bind("isOn").to(this,"isOn",(e=>this.isToggleable&&e)),this.on("change:_hasCheck",((e,t,o)=>{const{children:i,_checkIconHolderView:n}=this;o?i.add(n,0):i.remove(n)}))}}class nh extends Au{children;_checkIconView=this._createCheckIconView();constructor(){super();const e=this.bindTemplate;this.children=this.createCollection(),this.set("isOn",!1),this.setTemplate({tag:"span",children:this.children,attributes:{class:["ck","ck-list-item-button__check-holder",e.to("isOn",(e=>e?"ck-on":"ck-off"))]}})}render(){super.render(),this.isOn&&this.children.add(this._checkIconView,0),this._watchCheckIconMount()}_watchCheckIconMount(){this.on("change:isOn",((e,t,o)=>{const{children:i,_checkIconView:n}=this;o&&!i.has(n)?i.add(n):!o&&i.has(n)&&i.remove(n)}))}_createCheckIconView(){const e=new Nu;return e.content=Hc,e.extendTemplate({attributes:{class:"ck-list-item-button__check-icon"}}),e}}class sh extends ih{constructor(e){super(e),this.set({withText:!0,withKeystroke:!0,tooltip:!1,role:"menuitem"}),this.extendTemplate({attributes:{class:["ck-menu-bar__menu__item__button"]}})}}class rh extends fc{contentView=null;static get requires(){return[oh]}static get pluginName(){return"AccessibilityHelp"}static get isOfficialPlugin(){return!0}init(){const e=this.editor,t=e.locale.t;e.ui.componentFactory.add("accessibilityHelp",(()=>{const e=this._createButton(Lu);return e.set({tooltip:!0,withText:!1,label:t("Accessibility help")}),e})),e.ui.componentFactory.add("menuBar:accessibilityHelp",(()=>{const e=this._createButton(sh);return e.label=t("Accessibility"),e})),e.keystrokes.set("Alt+0",((e,t)=>{this._toggleDialog(),t()})),this._setupRootLabels()}_createButton(e){const t=this.editor,o=t.plugins.get("Dialog"),i=new e(t.locale);return i.set({keystroke:"Alt+0",icon:zc,isToggleable:!0}),i.on("execute",(()=>this._toggleDialog())),i.bind("isOn").to(o,"id",(e=>"accessibilityHelp"===e)),i}_setupRootLabels(){const e=this.editor,t=e.editing.view,o=e.t;function i(e,t){const i=[t.getAttribute("aria-label"),o("Press %0 for help.",[Ut("Alt+0")])].filter((e=>e)).join(". ");e.setAttribute("aria-label",i,t)}e.ui.on("ready",(()=>{t.change((e=>{for(const o of t.document.roots)i(e,o)})),e.on("addRoot",((o,n)=>{const s=e.editing.view.document.getRoot(n.rootName);t.change((e=>i(e,s)))}),{priority:"low"})}))}_toggleDialog(){const e=this.editor,t=e.plugins.get("Dialog"),o=e.locale.t;this.contentView||(this.contentView=new Fu(e.locale,e.accessibility.keystrokeInfos)),"accessibilityHelp"===t.id?t.hide():t.show({id:"accessibilityHelp",className:"ck-accessibility-help-dialog",title:o("Accessibility help"),icon:zc,hasCloseButton:!0,content:this.contentView})}}class ah extends tu{locale;_bodyCollectionContainer;static _bodyWrapper;constructor(e,t=[]){super(t),this.locale=e}get bodyCollectionContainer(){return this._bodyCollectionContainer}attachToDom(){this._bodyCollectionContainer=new ou({tag:"div",attributes:{class:["ck","ck-reset_all","ck-body","ck-rounded-corners"],dir:this.locale.uiLanguageDirection,role:"application"},children:this}).render(),ah._bodyWrapper&&ah._bodyWrapper.isConnected||(ah._bodyWrapper=Ke(document,"div",{class:"ck-body-wrapper"}),document.body.appendChild(ah._bodyWrapper)),ah._bodyWrapper.appendChild(this._bodyCollectionContainer)}detachFromDom(){super.destroy(),this._bodyCollectionContainer&&this._bodyCollectionContainer.remove(),ah._bodyWrapper&&!ah._bodyWrapper.childElementCount&&(ah._bodyWrapper.remove(),delete ah._bodyWrapper)}}const lh=yt("px"),ch={top:-99999,left:-99999,name:"arrowless",config:{withArrow:!1}};class dh extends Au{content;_pinWhenIsVisibleCallback;_resizeObserver;constructor(e){super(e);const t=this.bindTemplate;this.set("top",0),this.set("left",0),this.set("position","arrow_nw"),this.set("isVisible",!1),this.set("withArrow",!0),this.set("class",void 0),this._pinWhenIsVisibleCallback=null,this._resizeObserver=null,this.content=this.createCollection(),this.setTemplate({tag:"div",attributes:{class:["ck","ck-balloon-panel",t.to("position",(e=>`ck-balloon-panel_${e}`)),t.if("isVisible","ck-balloon-panel_visible"),t.if("withArrow","ck-balloon-panel_with-arrow"),t.to("class")],style:{top:t.to("top",lh),left:t.to("left",lh)}},children:this.content})}destroy(){this.hide(),super.destroy()}show(){this.isVisible=!0}hide(){this.isVisible=!1}attachTo(e){const t=uh(e.target);if(t&&!Ct(t))return!1;this.show();const o=dh.defaultPositions,i=Object.assign({},{element:this.element,positions:[o.southArrowNorth,o.southArrowNorthMiddleWest,o.southArrowNorthMiddleEast,o.southArrowNorthWest,o.southArrowNorthEast,o.northArrowSouth,o.northArrowSouthMiddleWest,o.northArrowSouthMiddleEast,o.northArrowSouthWest,o.northArrowSouthEast,o.viewportStickyNorth],limiter:J.document.body,fitInViewport:!0},e),n=dh._getOptimalPosition(i)||ch,s=parseInt(n.left),r=parseInt(n.top),a=n.name,l=n.config||{},{withArrow:c=!0}=l;return this.top=r,this.left=s,this.position=a,this.withArrow=c,!0}pin(e){this.unpin(),this._startPinning(e)&&(this._pinWhenIsVisibleCallback=()=>{this.isVisible?this._startPinning(e):this._stopPinning()},this.listenTo(this,"change:isVisible",this._pinWhenIsVisibleCallback))}unpin(){this._pinWhenIsVisibleCallback&&(this._stopPinning(),this.stopListening(this,"change:isVisible",this._pinWhenIsVisibleCallback),this._pinWhenIsVisibleCallback=null,this.hide())}_startPinning(e){if(!this.attachTo(e))return!1;let t=uh(e.target);const o=e.limiter?uh(e.limiter):J.document.body;if(this.listenTo(J.document,"scroll",((i,n)=>{const s=n.target,r=t&&s.contains(t),a=o&&s.contains(o);!r&&!a&&t&&o||this.attachTo(e)}),{useCapture:!0}),this.listenTo(J.window,"resize",(()=>{this.attachTo(e)})),!this._resizeObserver&&(t&&at(t)&&(t=t.parentElement),t)){const e=()=>{Ct(t)||this.unpin()};this._resizeObserver=new bt(t,e)}return!0}_stopPinning(){this.stopListening(J.document,"scroll"),this.stopListening(J.window,"resize"),this._resizeObserver&&(this._resizeObserver.destroy(),this._resizeObserver=null)}static generatePositions(e={}){const{sideOffset:t=dh.arrowSideOffset,heightOffset:o=dh.arrowHeightOffset,stickyVerticalOffset:i=dh.stickyVerticalOffset,config:n}=e;return{northWestArrowSouthWest:(e,o)=>({top:s(e,o),left:e.left-t,name:"arrow_sw",...n&&{config:n}}),northWestArrowSouthMiddleWest:(e,o)=>({top:s(e,o),left:e.left-.25*o.width-t,name:"arrow_smw",...n&&{config:n}}),northWestArrowSouth:(e,t)=>({top:s(e,t),left:e.left-t.width/2,name:"arrow_s",...n&&{config:n}}),northWestArrowSouthMiddleEast:(e,o)=>({top:s(e,o),left:e.left-.75*o.width+t,name:"arrow_sme",...n&&{config:n}}),northWestArrowSouthEast:(e,o)=>({top:s(e,o),left:e.left-o.width+t,name:"arrow_se",...n&&{config:n}}),northArrowSouthWest:(e,o)=>({top:s(e,o),left:e.left+e.width/2-t,name:"arrow_sw",...n&&{config:n}}),northArrowSouthMiddleWest:(e,o)=>({top:s(e,o),left:e.left+e.width/2-.25*o.width-t,name:"arrow_smw",...n&&{config:n}}),northArrowSouth:(e,t)=>({top:s(e,t),left:e.left+e.width/2-t.width/2,name:"arrow_s",...n&&{config:n}}),northArrowSouthMiddleEast:(e,o)=>({top:s(e,o),left:e.left+e.width/2-.75*o.width+t,name:"arrow_sme",...n&&{config:n}}),northArrowSouthEast:(e,o)=>({top:s(e,o),left:e.left+e.width/2-o.width+t,name:"arrow_se",...n&&{config:n}}),northEastArrowSouthWest:(e,o)=>({top:s(e,o),left:e.right-t,name:"arrow_sw",...n&&{config:n}}),northEastArrowSouthMiddleWest:(e,o)=>({top:s(e,o),left:e.right-.25*o.width-t,name:"arrow_smw",...n&&{config:n}}),northEastArrowSouth:(e,t)=>({top:s(e,t),left:e.right-t.width/2,name:"arrow_s",...n&&{config:n}}),northEastArrowSouthMiddleEast:(e,o)=>({top:s(e,o),left:e.right-.75*o.width+t,name:"arrow_sme",...n&&{config:n}}),northEastArrowSouthEast:(e,o)=>({top:s(e,o),left:e.right-o.width+t,name:"arrow_se",...n&&{config:n}}),southWestArrowNorthWest:e=>({top:r(e),left:e.left-t,name:"arrow_nw",...n&&{config:n}}),southWestArrowNorthMiddleWest:(e,o)=>({top:r(e),left:e.left-.25*o.width-t,name:"arrow_nmw",...n&&{config:n}}),southWestArrowNorth:(e,t)=>({top:r(e),left:e.left-t.width/2,name:"arrow_n",...n&&{config:n}}),southWestArrowNorthMiddleEast:(e,o)=>({top:r(e),left:e.left-.75*o.width+t,name:"arrow_nme",...n&&{config:n}}),southWestArrowNorthEast:(e,o)=>({top:r(e),left:e.left-o.width+t,name:"arrow_ne",...n&&{config:n}}),southArrowNorthWest:e=>({top:r(e),left:e.left+e.width/2-t,name:"arrow_nw",...n&&{config:n}}),southArrowNorthMiddleWest:(e,o)=>({top:r(e),left:e.left+e.width/2-.25*o.width-t,name:"arrow_nmw",...n&&{config:n}}),southArrowNorth:(e,t)=>({top:r(e),left:e.left+e.width/2-t.width/2,name:"arrow_n",...n&&{config:n}}),southArrowNorthMiddleEast:(e,o)=>({top:r(e),left:e.left+e.width/2-.75*o.width+t,name:"arrow_nme",...n&&{config:n}}),southArrowNorthEast:(e,o)=>({top:r(e),left:e.left+e.width/2-o.width+t,name:"arrow_ne",...n&&{config:n}}),southEastArrowNorthWest:e=>({top:r(e),left:e.right-t,name:"arrow_nw",...n&&{config:n}}),southEastArrowNorthMiddleWest:(e,o)=>({top:r(e),left:e.right-.25*o.width-t,name:"arrow_nmw",...n&&{config:n}}),southEastArrowNorth:(e,t)=>({top:r(e),left:e.right-t.width/2,name:"arrow_n",...n&&{config:n}}),southEastArrowNorthMiddleEast:(e,o)=>({top:r(e),left:e.right-.75*o.width+t,name:"arrow_nme",...n&&{config:n}}),southEastArrowNorthEast:(e,o)=>({top:r(e),left:e.right-o.width+t,name:"arrow_ne",...n&&{config:n}}),westArrowEast:(e,t)=>({top:e.top+e.height/2-t.height/2,left:e.left-t.width-o,name:"arrow_e",...n&&{config:n}}),eastArrowWest:(e,t)=>({top:e.top+e.height/2-t.height/2,left:e.right+o,name:"arrow_w",...n&&{config:n}}),viewportStickyNorth:(e,t,o)=>{const s=new ut(J.document.body).getIntersection(o.getVisible());if(!s)return null;const r=s.getVisible();return e.getIntersection(r)&&r.top-e.top-ithis._showBalloon()),50,{leading:!0});_lastFocusedEditableElement=null;_balloonClass;constructor(e,t={}){super(),this.editor=e,this._balloonClass=t.balloonClass,e.on("ready",(()=>this._handleEditorReady()))}destroy(){const e=this._balloonView;e&&(e.unpin(),this._balloonView=null),this._showBalloonThrottled.cancel(),this.stopListening()}_handleEditorReady(){const e=this.editor;this._isEnabled()&&e.ui.view&&(e.ui.focusTracker.on("change:isFocused",((e,t,o)=>{this._updateLastFocusedEditableElement(),o?this._showBalloon():this._hideBalloon()})),e.ui.focusTracker.on("change:focusedElement",((e,t,o)=>{this._updateLastFocusedEditableElement(),o&&this._showBalloon()})),e.ui.on("update",(()=>{this._showBalloonThrottled()})))}_getNormalizedConfig(){return{side:"ltr"===this.editor.locale.contentLanguageDirection?"right":"left",position:"border",verticalOffset:0,horizontalOffset:5}}_showBalloon(){const e=this._getBalloonAttachOptions();e&&(this._balloonView||(this._balloonView=this._createBalloonView()),this._balloonView.pin(e))}_hideBalloon(){this._balloonView&&this._balloonView.unpin()}_createBalloonView(){const e=this.editor,t=new dh,o=this._createBadgeContent();return t.content.add(o),this._balloonClass&&(t.class=this._balloonClass),e.ui.view.body.add(t),t}_getBalloonAttachOptions(){if(!this._lastFocusedEditableElement)return null;const e=this._getNormalizedConfig(),t="right"===e.side?function(e,t){return mh(e,t,((e,o)=>e.left+e.width-o.width-t.horizontalOffset))}(this._lastFocusedEditableElement,e):function(e,t){return mh(e,t,(e=>e.left+t.horizontalOffset))}(this._lastFocusedEditableElement,e);return{target:this._lastFocusedEditableElement,positions:[t]}}_updateLastFocusedEditableElement(){const e=this.editor,t=e.ui.focusTracker.isFocused,o=e.ui.focusTracker.focusedElement;if(!t||!o)return void(this._lastFocusedEditableElement=null);const i=Array.from(e.ui.getEditableElementsNames()).map((t=>e.ui.getEditableElement(t)));i.includes(o)?this._lastFocusedEditableElement=o:this._lastFocusedEditableElement=i[0]}}function mh(e,t,o){return(i,n)=>{const s=new ut(e);if(s.width<350||s.height<50)return null;let r;r="inside"===t.position?s.bottom-n.height:s.bottom-n.height/2,r-=t.verticalOffset;const a=o(s,n),l=i.clone().moveTo(a,r).getIntersection(n.clone().moveTo(a,r)).getVisible();return!l||l.getArea()\n',isColorInherited:!1}),this.setTemplate({tag:"div",attributes:{class:["ck","ck-powered-by"],"aria-hidden":!0},children:[{tag:"a",attributes:{href:"https://ckeditor.com/powered-by-ckeditor/?utm_source=ckeditor&utm_medium=referral&utm_campaign=701Dn000000hVgmIAE_powered_by_ckeditor_logo",target:"_blank",tabindex:"-1"},children:[...t?[{tag:"span",attributes:{class:["ck","ck-powered-by__label"]},children:[t]}]:[],o],on:{dragstart:i.to((e=>e.preventDefault()))}}]})}}class fh extends Lu{toggleSwitchView;constructor(e){super(e),this.isToggleable=!0,this.toggleSwitchView=this._createToggleView(),this.extendTemplate({attributes:{class:"ck-switchbutton"}})}render(){super.render(),this.children.add(this.toggleSwitchView)}_createToggleView(){const e=new Au;return e.setTemplate({tag:"span",attributes:{class:["ck","ck-button__toggle"]},children:[{tag:"span",attributes:{class:["ck","ck-button__toggle__inner"]}}]}),e}}class bh extends(yh(Lu)){}class wh extends(yh(ih)){}function yh(e){return class extends e{_fileInputView;constructor(...e){super(...e),this._fileInputView=new _h(this.locale),this._fileInputView.bind("acceptedType").to(this),this._fileInputView.bind("allowMultipleFiles").to(this),this._fileInputView.delegate("done").to(this),this.on("execute",(()=>{this._fileInputView.open()})),this.extendTemplate({attributes:{class:"ck-file-dialog-button"}})}render(){super.render(),this.children.add(this._fileInputView)}}}class _h extends Au{constructor(e){super(e),this.set("acceptedType",void 0),this.set("allowMultipleFiles",!1);const t=this.bindTemplate;this.setTemplate({tag:"input",attributes:{class:["ck-hidden"],type:"file",tabindex:"-1",accept:t.to("acceptedType"),multiple:t.to("allowMultipleFiles")},on:{change:t.to((()=>{this.element?.files?.length&&this.fire("done",this.element.files),this.element.value=""}))}})}open(){this.element.click()}}class kh extends Au{buttonView;children;constructor(e,t){super(e);const o=this.bindTemplate;this.set("isCollapsed",!1),this.set("label",""),this.buttonView=this._createButtonView(),this.children=this.createCollection(),this.set("_collapsibleAriaLabelUid",void 0),t&&this.children.addMany(t),this.setTemplate({tag:"div",attributes:{class:["ck","ck-collapsible",o.if("isCollapsed","ck-collapsible_collapsed")]},children:[this.buttonView,{tag:"div",attributes:{class:["ck","ck-collapsible__children"],role:"region",hidden:o.if("isCollapsed","hidden"),"aria-labelledby":o.to("_collapsibleAriaLabelUid")},children:this.children}]})}render(){super.render(),this._collapsibleAriaLabelUid=this.buttonView.labelView.element.id}focus(){this.buttonView.focus()}_createButtonView(){const e=new Lu(this.locale),t=e.bindTemplate;return e.set({withText:!0,icon:Uc}),e.extendTemplate({attributes:{"aria-expanded":t.to("isOn",(e=>String(e)))}}),e.bind("label").to(this),e.bind("isOn").to(this,"isCollapsed",(e=>!e)),e.on("execute",(()=>{this.isCollapsed=!this.isCollapsed})),e}}function vh(e,t){const o=e.t,i={Black:o("Black"),"Dim grey":o("Dim grey"),Grey:o("Grey"),"Light grey":o("Light grey"),White:o("White"),Red:o("Red"),Orange:o("Orange"),Yellow:o("Yellow"),"Light green":o("Light green"),Green:o("Green"),Aquamarine:o("Aquamarine"),Turquoise:o("Turquoise"),"Light blue":o("Light blue"),Blue:o("Blue"),Purple:o("Purple")};return t.map((e=>{const t=i[e.label];return t&&t!=e.label&&(e.label=t),e}))}function Ch(e){return e.map(Ah).filter((e=>!!e))}function Ah(e){return"string"==typeof e?{model:e,label:e,hasBorder:!1,view:{name:"span",styles:{color:e}}}:{model:e.color,label:e.label||e.color,hasBorder:void 0!==e.hasBorder&&e.hasBorder,view:{name:"span",styles:{color:`${e.color}`}}}}class xh extends Lu{constructor(e){super(e);const t=this.bindTemplate;this.set("color",void 0),this.set("hasBorder",!1),this.icon='',this.extendTemplate({attributes:{style:{backgroundColor:t.to("color",(e=>Y.isMediaForcedColors?null:e))},class:["ck","ck-color-grid__tile",t.if("hasBorder","ck-color-selector__color-tile_bordered")]}})}render(){super.render(),this.iconView.fillColor="hsl(0, 0%, 100%)"}}class Eh extends Au{columns;items;focusTracker;keystrokes;constructor(e,t){super(e);const o=t&&t.colorDefinitions?t.colorDefinitions:[];this.columns=t?.columns||5;const i={gridTemplateColumns:`repeat( ${this.columns}, 1fr)`};this.set("selectedColor",void 0),this.items=this.createCollection(),this.focusTracker=new oo,this.keystrokes=new ro,this.items.on("add",((e,t)=>{t.isOn=t.color===this.selectedColor})),o.forEach((e=>{const t=new xh;t.set({color:e.color,label:e.label,tooltip:!0,hasBorder:e.options.hasBorder}),t.on("execute",(()=>{this.fire("execute",{value:e.color,hasBorder:e.options.hasBorder,label:e.label})})),this.items.add(t)})),this.setTemplate({tag:"div",children:this.items,attributes:{class:["ck","ck-color-grid"],style:i}}),this.on("change:selectedColor",((e,t,o)=>{for(const e of this.items)e.isOn=e.color===o}))}focus(){this.items.length&&this.items.first.focus()}focusLast(){this.items.length&&this.items.last.focus()}render(){super.render();for(const e of this.items)this.focusTracker.add(e.element);this.items.on("add",((e,t)=>{this.focusTracker.add(t.element)})),this.items.on("remove",((e,t)=>{this.focusTracker.remove(t.element)})),this.keystrokes.listenTo(this.element),Vu({keystrokeHandler:this.keystrokes,focusTracker:this.focusTracker,gridItems:this.items,numberOfColumns:this.columns,uiLanguageDirection:this.locale?.uiLanguageDirection})}destroy(){super.destroy(),this.focusTracker.destroy(),this.keystrokes.destroy()}}function Th(e,t){if(!e)return"";const o=Ph(e);if(!o)return"";if(o.space===t)return e;if(i=o,!Object.keys(xd).includes(i.space))return"";var i;const n=xd[o.space][t];if(!n)return"";return function(e,t){switch(t){case"hex":return`#${e}`;case"rgb":return`rgb(${e[0]}, ${e[1]}, ${e[2]})`;case"hsl":return`hsl(${e[0]}, ${e[1]}%, ${e[2]}%)`;case"hwb":return`hwb(${e[0]}, ${e[1]}, ${e[2]})`;case"lab":return`lab(${e[0]}% ${e[1]} ${e[2]})`;case"lch":return`lch(${e[0]}% ${e[1]} ${e[2]})`;default:return""}}(n("hex"===o.space?o.hexValue:o.values),t)}function Ph(e){if(e.startsWith("#")){const t=ad(e);return{space:"hex",values:t.values,hexValue:e,alpha:t.alpha}}const t=ad(e);return t.space?t:null}class Sh extends Au{fieldView;labelView;statusView;fieldWrapperChildren;constructor(e,t){super(e);const o=`ck-labeled-field-view-${me()}`,i=`ck-labeled-field-view-status-${me()}`;this.fieldView=t(this,o,i),this.set("label",void 0),this.set("isEnabled",!0),this.set("isEmpty",!0),this.set("isFocused",!1),this.set("errorText",null),this.set("infoText",null),this.set("class",void 0),this.set("placeholder",void 0),this.labelView=this._createLabelView(o),this.statusView=this._createStatusView(i),this.fieldWrapperChildren=this.createCollection([this.fieldView,this.labelView]),this.bind("_statusText").to(this,"errorText",this,"infoText",((e,t)=>e||t));const n=this.bindTemplate;this.setTemplate({tag:"div",attributes:{class:["ck","ck-labeled-field-view",n.to("class"),n.if("isEnabled","ck-disabled",(e=>!e)),n.if("isEmpty","ck-labeled-field-view_empty"),n.if("isFocused","ck-labeled-field-view_focused"),n.if("placeholder","ck-labeled-field-view_placeholder"),n.if("errorText","ck-error")]},children:[{tag:"div",attributes:{class:["ck","ck-labeled-field-view__input-wrapper"]},children:this.fieldWrapperChildren},this.statusView]})}_createLabelView(e){const t=new Du(this.locale);return t.for=e,t.bind("text").to(this,"label"),t}_createStatusView(e){const t=new Au(this.locale),o=this.bindTemplate;return t.setTemplate({tag:"div",attributes:{class:["ck","ck-labeled-field-view__status",o.if("errorText","ck-labeled-field-view__status_error"),o.if("_statusText","ck-hidden",(e=>!e))],id:e,role:o.if("errorText","alert")},children:[{text:o.to("_statusText")}]}),t}focus(e){this.fieldView.focus(e)}}class Ih extends Au{focusTracker;constructor(e){super(e),this.set("value",void 0),this.set("id",void 0),this.set("placeholder",void 0),this.set("tabIndex",void 0),this.set("isReadOnly",!1),this.set("hasError",!1),this.set("ariaDescribedById",void 0),this.set("ariaLabel",void 0),this.focusTracker=new oo,this.bind("isFocused").to(this.focusTracker),this.set("isEmpty",!0);const t=this.bindTemplate;this.setTemplate({tag:"input",attributes:{class:["ck","ck-input",t.if("isFocused","ck-input_focused"),t.if("isEmpty","ck-input-text_empty"),t.if("hasError","ck-error")],id:t.to("id"),placeholder:t.to("placeholder"),tabindex:t.to("tabIndex"),readonly:t.to("isReadOnly"),"aria-invalid":t.if("hasError",!0),"aria-describedby":t.to("ariaDescribedById"),"aria-label":t.to("ariaLabel")},on:{input:t.to(((...e)=>{this.fire("input",...e),this._updateIsEmpty()})),change:t.to(this._updateIsEmpty.bind(this))}})}render(){super.render(),this.focusTracker.add(this.element),this._setDomElementValue(this.value),this._updateIsEmpty(),this.on("change:value",((e,t,o)=>{this._setDomElementValue(o),this._updateIsEmpty()}))}destroy(){super.destroy(),this.focusTracker.destroy()}select(){this.element.select()}focus(){this.element.focus()}reset(){this.value=this.element.value="",this._updateIsEmpty()}_updateIsEmpty(){this.isEmpty=!this.element.value}_setDomElementValue(e){this.element.value=e||0===e?e:""}}class Rh extends Ih{constructor(e){super(e),this.set("inputMode","text");const t=this.bindTemplate;this.extendTemplate({attributes:{inputmode:t.to("inputMode")}})}}class Oh extends Rh{constructor(e){super(e),this.extendTemplate({attributes:{type:"text",class:["ck-input-text"]}})}}class Vh extends Rh{constructor(e,{min:t,max:o,step:i}={}){super(e);const n=this.bindTemplate;this.set("min",t),this.set("max",o),this.set("step",i),this.extendTemplate({attributes:{type:"number",class:["ck-input-number"],min:n.to("min"),max:n.to("max"),step:n.to("step")}})}}class Dh extends Au{children;constructor(e){super(e);const t=this.bindTemplate;this.set("isVisible",!1),this.set("position","se"),this.children=this.createCollection(),this.setTemplate({tag:"div",attributes:{class:["ck","ck-reset","ck-dropdown__panel",t.to("position",(e=>`ck-dropdown__panel_${e}`)),t.if("isVisible","ck-dropdown__panel-visible")],tabindex:"-1"},children:this.children,on:{selectstart:t.to((e=>{const t=e.target;t instanceof Element&&"input"===t.tagName.toLocaleLowerCase()||e.preventDefault()}))}})}focus(){if(this.children.length){const e=this.children.first;"function"==typeof e.focus?e.focus():be("ui-dropdown-panel-focus-child-missing-focus",{childView:this.children.first,dropdownPanel:this})}}focusLast(){if(this.children.length){const e=this.children.last;"function"==typeof e.focusLast?e.focusLast():e.focus()}}}class Fh extends Au{buttonView;panelView;focusTracker;keystrokes;listView;toolbarView;menuView;constructor(e,t,o){super(e);const i=this.bindTemplate;this.buttonView=t,this.panelView=o,this.set("isOpen",!1),this.set("isEnabled",!0),this.set("class",void 0),this.set("id",void 0),this.set("panelPosition","auto"),this.panelView.bind("isVisible").to(this,"isOpen"),this.keystrokes=new ro,this.focusTracker=new oo,this.setTemplate({tag:"div",attributes:{class:["ck","ck-dropdown",i.to("class"),i.if("isEnabled","ck-disabled",(e=>!e))],id:i.to("id"),"aria-describedby":i.to("ariaDescribedById")},children:[t,o]}),t.extendTemplate({attributes:{class:["ck-dropdown__button"],"data-cke-tooltip-disabled":i.to("isOpen")}})}render(){super.render(),this.focusTracker.add(this.buttonView.element),this.focusTracker.add(this.panelView.element),this.listenTo(this.buttonView,"open",(()=>{this.isOpen=!this.isOpen})),this.on("change:isOpen",((e,t,o)=>{if(o)if("auto"===this.panelPosition){const e=Fh._getOptimalPosition({element:this.panelView.element,target:this.buttonView.element,fitInViewport:!0,positions:this._panelPositions});this.panelView.position=e?e.name:this._defaultPanelPositionName}else this.panelView.position=this.panelPosition})),this.keystrokes.listenTo(this.element);const e=(e,t)=>{this.isOpen&&(this.isOpen=!1,t())};this.keystrokes.set("arrowdown",((e,t)=>{this.buttonView.isEnabled&&!this.isOpen&&(this.isOpen=!0,t())})),this.keystrokes.set("arrowright",((e,t)=>{this.isOpen&&t()})),this.keystrokes.set("arrowleft",e),this.keystrokes.set("esc",e)}focus(){this.buttonView.focus()}get _panelPositions(){const{south:e,north:t,southEast:o,southWest:i,northEast:n,northWest:s,southMiddleEast:r,southMiddleWest:a,northMiddleEast:l,northMiddleWest:c}=Fh.defaultPanelPositions;return"rtl"!==this.locale.uiLanguageDirection?[o,i,r,a,e,n,s,l,c,t]:[i,o,a,r,e,s,n,c,l,t]}get _defaultPanelPositionName(){return"rtl"===this.locale.uiLanguageDirection?"sw":"se"}static defaultPanelPositions={south:(e,t)=>({top:e.bottom,left:e.left-(t.width-e.width)/2,name:"s"}),southEast:e=>({top:e.bottom,left:e.left,name:"se"}),southWest:(e,t)=>({top:e.bottom,left:e.left-t.width+e.width,name:"sw"}),southMiddleEast:(e,t)=>({top:e.bottom,left:e.left-(t.width-e.width)/4,name:"sme"}),southMiddleWest:(e,t)=>({top:e.bottom,left:e.left-3*(t.width-e.width)/4,name:"smw"}),north:(e,t)=>({top:e.top-t.height,left:e.left-(t.width-e.width)/2,name:"n"}),northEast:(e,t)=>({top:e.top-t.height,left:e.left,name:"ne"}),northWest:(e,t)=>({top:e.top-t.height,left:e.left-t.width+e.width,name:"nw"}),northMiddleEast:(e,t)=>({top:e.top-t.height,left:e.left-(t.width-e.width)/4,name:"nme"}),northMiddleWest:(e,t)=>({top:e.top-t.height,left:e.left-3*(t.width-e.width)/4,name:"nmw"})};static _getOptimalPosition=At}class Mh extends Lu{arrowView;constructor(e){super(e),this.arrowView=this._createArrowView(),this.extendTemplate({attributes:{"aria-haspopup":!0,"aria-expanded":this.bindTemplate.to("isOn",(e=>String(e)))}}),this.delegate("execute").to(this,"open")}render(){super.render(),this.children.add(this.arrowView)}_createArrowView(){const e=new Nu;return e.content=Uc,e.extendTemplate({attributes:{class:"ck-dropdown__arrow"}}),e}}class Nh extends Au{children;constructor(e){super(e);const t=this.bindTemplate;this.set("isVisible",!0),this.children=this.createCollection(),this.setTemplate({tag:"li",attributes:{class:["ck","ck-list__item",t.if("isVisible","ck-hidden",(e=>!e))],role:"presentation"},children:this.children})}focus(){this.children.first&&this.children.first.focus()}}class Bh extends Au{constructor(e){super(e),this.setTemplate({tag:"li",attributes:{class:["ck","ck-list__separator"]}})}}class Lh extends Au{labelView;items;children;constructor(e,t=new Du){super(e);const o=this.bindTemplate,i=new zh(e);this.set({label:"",isVisible:!0}),this.labelView=t,this.labelView.bind("text").to(this,"label"),this.children=this.createCollection(),this.children.addMany([this.labelView,i]),i.set({role:"group",ariaLabelledBy:t.id}),i.focusTracker.destroy(),i.keystrokes.destroy(),this.items=i.items,this.setTemplate({tag:"li",attributes:{role:"presentation",class:["ck","ck-list__group",o.if("isVisible","ck-hidden",(e=>!e))]},children:this.children})}focus(){if(this.items){const e=this.items.find((e=>!(e instanceof Bh)));e&&e.focus()}}}class zh extends Au{focusables;items;focusTracker;keystrokes;_focusCycler;_listItemGroupToChangeListeners=new WeakMap;constructor(e){super(e);const t=this.bindTemplate;this.focusables=new tu,this.items=this.createCollection(),this.focusTracker=new oo,this.keystrokes=new ro,this._focusCycler=new qu({focusables:this.focusables,focusTracker:this.focusTracker,keystrokeHandler:this.keystrokes,actions:{focusPrevious:"arrowup",focusNext:"arrowdown"}}),this.set("ariaLabel",void 0),this.set("ariaLabelledBy",void 0),this.set("role",void 0),this.setTemplate({tag:"ul",attributes:{class:["ck","ck-reset","ck-list"],role:t.to("role"),"aria-label":t.to("ariaLabel"),"aria-labelledby":t.to("ariaLabelledBy")},children:this.items})}render(){super.render();for(const e of this.items)e instanceof Lh?this._registerFocusableItemsGroup(e):e instanceof Nh&&this._registerFocusableListItem(e);this.items.on("change",((e,t)=>{for(const e of t.removed)e instanceof Lh?this._deregisterFocusableItemsGroup(e):e instanceof Nh&&this._deregisterFocusableListItem(e);for(const e of Array.from(t.added).reverse())e instanceof Lh?this._registerFocusableItemsGroup(e,t.index):this._registerFocusableListItem(e,t.index)})),this.keystrokes.listenTo(this.element)}destroy(){super.destroy(),this.focusTracker.destroy(),this.keystrokes.destroy()}focus(){this._focusCycler.focusFirst()}focusFirst(){this._focusCycler.focusFirst()}focusLast(){this._focusCycler.focusLast()}_registerFocusableListItem(e,t){this.focusTracker.add(e.element),this.focusables.add(e,t)}_deregisterFocusableListItem(e){this.focusTracker.remove(e.element),this.focusables.remove(e)}_getOnGroupItemsChangeCallback(e){return(t,o)=>{for(const e of o.removed)this._deregisterFocusableListItem(e);for(const t of Array.from(o.added).reverse())this._registerFocusableListItem(t,this.items.getIndex(e)+o.index)}}_registerFocusableItemsGroup(e,t){Array.from(e.items).forEach(((e,o)=>{const i=void 0!==t?t+o:void 0;this._registerFocusableListItem(e,i)}));const o=this._getOnGroupItemsChangeCallback(e);this._listItemGroupToChangeListeners.set(e,o),e.items.on("change",o)}_deregisterFocusableItemsGroup(e){for(const t of e.items)this._deregisterFocusableListItem(t);e.items.off("change",this._listItemGroupToChangeListeners.get(e)),this._listItemGroupToChangeListeners.delete(e)}}class jh extends Au{constructor(e){super(e),this.setTemplate({tag:"span",attributes:{class:["ck","ck-toolbar__separator"]}})}}class qh extends Au{constructor(e){super(e),this.setTemplate({tag:"span",attributes:{class:["ck","ck-toolbar__line-break"]}})}}function $h(e){if(Array.isArray(e))return{items:e,removeItems:[]};const t={items:[],removeItems:[]};return e?{...t,...e}:t}const Hh=(()=>({alignLeft:jc,bold:qc,importExport:'',paragraph:'',plus:'',text:'',threeVerticalDots:id,pilcrow:'',dragIndicator:''}))();class Wh extends Au{options;items;focusTracker;keystrokes;itemsView;children;focusables;_focusCycler;_behavior;constructor(e,t){super(e);const o=this.bindTemplate,i=this.t;this.options=t||{},this.set("ariaLabel",i("Editor toolbar")),this.set("maxWidth","auto"),this.set("role","toolbar"),this.set("isGrouping",!!this.options.shouldGroupWhenFull),this.items=this.createCollection(),this.focusTracker=new oo,this.keystrokes=new ro,this.set("class",void 0),this.set("isCompact",!1),this.set("isVertical",!1),this.itemsView=new Uh(e),this.children=this.createCollection(),this.children.add(this.itemsView),this.focusables=this.createCollection();const n="rtl"===e.uiLanguageDirection;this._focusCycler=new qu({focusables:this.focusables,focusTracker:this.focusTracker,keystrokeHandler:this.keystrokes,actions:{focusPrevious:[n?"arrowright":"arrowleft","arrowup"],focusNext:[n?"arrowleft":"arrowright","arrowdown"]}});const s=["ck","ck-toolbar",o.to("class"),o.if("isCompact","ck-toolbar_compact"),o.if("isGrouping","ck-toolbar_grouping"),o.if("isVertical","ck-toolbar_vertical")];var r;this.options.shouldGroupWhenFull&&this.options.isFloating&&s.push("ck-toolbar_floating"),this.setTemplate({tag:"div",attributes:{class:s,role:o.to("role"),"aria-label":o.to("ariaLabel"),style:{maxWidth:o.to("maxWidth")},tabindex:-1},children:this.children,on:{mousedown:(r=this,r.bindTemplate.to((e=>{e.target===r.element&&e.preventDefault()})))}}),this._behavior=this.options.shouldGroupWhenFull?new Gh(this):new Kh(this)}render(){super.render(),this.focusTracker.add(this.element);for(const e of this.items)this.focusTracker.add(e);this.items.on("add",((e,t)=>{this.focusTracker.add(t)})),this.items.on("remove",((e,t)=>{this.focusTracker.remove(t)})),this.keystrokes.listenTo(this.element),this._behavior.render(this)}destroy(){return this._behavior.destroy(),this.focusTracker.destroy(),this.keystrokes.destroy(),super.destroy()}focus(){this._focusCycler.focusFirst()}focusLast(){this._focusCycler.focusLast()}fillFromConfig(e,t,o){this.items.addMany(this._buildItemsFromConfig(e,t,o))}switchBehavior(e){this._behavior.type!==e&&(this._behavior.destroy(),this.itemsView.children.clear(),this.focusables.clear(),"dynamic"===e?(this._behavior=new Gh(this),this._behavior.render(this),this._behavior.refreshItems()):(this._behavior=new Kh(this),this._behavior.render(this)))}_buildItemsFromConfig(e,t,o){const i=$h(e),n=o||i.removeItems;return this._cleanItemsConfiguration(i.items,t,n).map((e=>s(e)?this._createNestedToolbarDropdown(e,t,n):"|"===e?new jh:"-"===e?new qh:t.create(e))).filter((e=>!!e))}_cleanItemsConfiguration(e,t,o){const i=e.filter(((e,i,n)=>"|"===e||-1===o.indexOf(e)&&("-"===e?!this.options.shouldGroupWhenFull||(be("toolbarview-line-break-ignored-when-grouping-items",n),!1):!(!s(e)&&!t.has(e))||(be("toolbarview-item-unavailable",{item:e}),!1))));return this._cleanSeparatorsAndLineBreaks(i)}_cleanSeparatorsAndLineBreaks(e){const t=e=>"-"!==e&&"|"!==e,o=e.length,i=e.findIndex(t);if(-1===i)return[];const n=o-e.slice().reverse().findIndex(t);return e.slice(i,n).filter(((e,o,i)=>{if(t(e))return!0;return!(o>0&&i[o-1]===e)}))}_createNestedToolbarDropdown(e,t,o){let{label:i,icon:n,items:s,tooltip:r=!0,withText:a=!1}=e;if(s=this._cleanItemsConfiguration(s,t,o),!s.length)return null;const l=Zh(this.locale);return i||be("toolbarview-nested-toolbar-dropdown-missing-label",e),l.class="ck-toolbar__nested-toolbar-dropdown",l.buttonView.set({label:i,tooltip:r,withText:!!a}),!1!==n?l.buttonView.icon=Hh[n]||n||id:l.buttonView.withText=!0,Qh(l,(()=>l.toolbarView._buildItemsFromConfig(s,t,o))),l}}class Uh extends Au{children;constructor(e){super(e),this.children=this.createCollection(),this.setTemplate({tag:"div",attributes:{class:["ck","ck-toolbar__items"]},children:this.children})}}class Kh{type="static";constructor(e){e.isGrouping=!1,e.itemsView.children.bindTo(e.items).using((e=>e)),e.focusables.bindTo(e.items).using((e=>Hu(e)?e:null))}render(){}destroy(){}}class Gh{type="dynamic";view;viewChildren;viewFocusables;viewItemsView;viewFocusTracker;viewLocale;ungroupedItems;groupedItems;groupedItemsDropdown;resizeObserver=null;cachedPadding=null;shouldUpdateGroupingOnNextResize=!1;viewElement;constructor(e){this.view=e,this.viewChildren=e.children,this.viewFocusables=e.focusables,this.viewItemsView=e.itemsView,this.viewFocusTracker=e.focusTracker,this.viewLocale=e.locale,this.view.isGrouping=!0,this.ungroupedItems=e.createCollection(),this.groupedItems=e.createCollection(),this.groupedItemsDropdown=this._createGroupedItemsDropdown(),e.itemsView.children.bindTo(this.ungroupedItems).using((e=>e)),this.ungroupedItems.on("change",this._updateFocusCyclableItems.bind(this)),e.children.on("change",this._updateFocusCyclableItems.bind(this)),e.items.on("change",((e,t)=>{const o=t.index,i=Array.from(t.added);for(const e of t.removed)o>=this.ungroupedItems.length?this.groupedItems.remove(e):this.ungroupedItems.remove(e);for(let e=o;ethis.ungroupedItems.length?this.groupedItems.add(t,e-this.ungroupedItems.length):this.ungroupedItems.add(t,e)}this._updateGrouping()}))}render(e){this.viewElement=e.element,this._enableGroupingOnResize(),this._enableGroupingOnMaxWidthChange(e)}destroy(){this.groupedItemsDropdown.destroy(),this.viewChildren.length>1&&(this.viewChildren.remove(this.groupedItemsDropdown),this.viewChildren.remove(this.viewChildren.last)),this.resizeObserver.destroy()}refreshItems(){const e=this.view;if(e.items.length){for(let t=0;ti.right-this.cachedPadding:o.left{e&&e===t.contentRect.width&&!this.shouldUpdateGroupingOnNextResize||(this.shouldUpdateGroupingOnNextResize=!1,this._updateGrouping(),e=t.contentRect.width)})),this._updateGrouping()}_enableGroupingOnMaxWidthChange(e){e.on("change:maxWidth",(()=>{this._updateGrouping()}))}_groupLastItem(){this.groupedItems.length||(this.viewChildren.add(new jh),this.viewChildren.add(this.groupedItemsDropdown),this.viewFocusTracker.add(this.groupedItemsDropdown.element)),this.groupedItems.add(this.ungroupedItems.remove(this.ungroupedItems.last),0)}_ungroupFirstItem(){this.ungroupedItems.add(this.groupedItems.remove(this.groupedItems.first)),this.groupedItems.length||(this.viewChildren.remove(this.groupedItemsDropdown),this.viewChildren.remove(this.viewChildren.last),this.viewFocusTracker.remove(this.groupedItemsDropdown.element))}_createGroupedItemsDropdown(){const e=this.viewLocale,t=e.t,o=Zh(e);return o.class="ck-toolbar__grouped-dropdown",o.panelPosition="ltr"===e.uiLanguageDirection?"sw":"se",Qh(o,this.groupedItems),o.buttonView.set({label:t("Show more items"),tooltip:!0,tooltipPosition:"rtl"===e.uiLanguageDirection?"se":"sw",icon:id}),o}_updateFocusCyclableItems(){this.viewFocusables.clear(),this.ungroupedItems.map((e=>{Hu(e)&&this.viewFocusables.add(e)})),this.groupedItems.length&&this.viewFocusables.add(this.groupedItemsDropdown)}}class Jh extends Au{children;actionView;arrowView;keystrokes;focusTracker;constructor(e,t){super(e);const o=this.bindTemplate;this.set("class",void 0),this.set("labelStyle",void 0),this.set("icon",void 0),this.set("isEnabled",!0),this.set("isOn",!1),this.set("isToggleable",!1),this.set("isVisible",!0),this.set("keystroke",void 0),this.set("withKeystroke",!1),this.set("label",void 0),this.set("tabindex",-1),this.set("tooltip",!1),this.set("tooltipPosition","s"),this.set("type","button"),this.set("withText",!1),this.children=this.createCollection(),this.actionView=this._createActionView(t),this.arrowView=this._createArrowView(),this.keystrokes=new ro,this.focusTracker=new oo,this.setTemplate({tag:"div",attributes:{class:["ck","ck-splitbutton",o.to("class"),o.if("isVisible","ck-hidden",(e=>!e)),this.arrowView.bindTemplate.if("isOn","ck-splitbutton_open")]},children:this.children})}render(){super.render(),this.children.add(this.actionView),this.children.add(this.arrowView),this.focusTracker.add(this.actionView.element),this.focusTracker.add(this.arrowView.element),this.keystrokes.listenTo(this.element),this.keystrokes.set("arrowright",((e,t)=>{this.focusTracker.focusedElement===this.actionView.element&&(this.arrowView.focus(),t())})),this.keystrokes.set("arrowleft",((e,t)=>{this.focusTracker.focusedElement===this.arrowView.element&&(this.actionView.focus(),t())}))}destroy(){super.destroy(),this.focusTracker.destroy(),this.keystrokes.destroy()}focus(){this.actionView.focus()}_createActionView(e){const t=e||new Lu;return e||t.bind("icon","isEnabled","isOn","isToggleable","keystroke","label","tabindex","tooltip","tooltipPosition","type","withText").to(this),t.extendTemplate({attributes:{class:"ck-splitbutton__action"}}),t.delegate("execute").to(this),t}_createArrowView(){const e=new Lu,t=e.bindTemplate;return e.icon=Uc,e.extendTemplate({attributes:{class:["ck-splitbutton__arrow"],"data-cke-tooltip-disabled":t.to("isOn"),"aria-haspopup":!0,"aria-expanded":t.to("isOn",(e=>String(e)))}}),e.bind("isEnabled").to(this),e.bind("label").to(this),e.bind("tooltip").to(this),e.delegate("execute").to(this,"open"),e}}function Zh(e,t=Mh){const o="function"==typeof t?new t(e):t,i=new Dh(e),n=new Fh(e,o,i);return o.bind("isEnabled").to(n),o instanceof Jh?o.arrowView.bind("isOn").to(n,"isOpen"):o.bind("isOn").to(n,"isOpen"),function(e){(function(e){Su({emitter:e,activator:()=>e.isRendered&&e.isOpen,callback:()=>{e.isOpen=!1},contextElements:()=>[e.element,...om(e.focusTracker).filter((t=>!e.element.contains(t)))]})})(e),function(e){e.on("execute",(t=>{t.source instanceof fh||(e.isOpen=!1)}))}(e),function(e){e.focusTracker.on("change:isFocused",((t,o,i)=>{!i&&e.isOpen&&(e.isOpen=!1)}))}(e),function(e){e.keystrokes.set("arrowdown",((t,o)=>{e.isOpen&&(e.panelView.focus(),o())})),e.keystrokes.set("arrowup",((t,o)=>{e.isOpen&&(e.panelView.focusLast(),o())}))}(e),function(e){e.on("change:isOpen",((t,o,i)=>{if(i)return;e.focusTracker.elements.some((e=>e.contains(J.document.activeElement)))&&e.buttonView.focus()}))}(e),function(e){e.on("change:isOpen",((t,o,i)=>{i&&e.panelView.focus()}),{priority:"low"})}(e)}(n),n}function Qh(e,t,o={}){e.extendTemplate({attributes:{class:["ck-toolbar-dropdown"]}}),e.isOpen?Yh(e,t,o):e.once("change:isOpen",(()=>Yh(e,t,o)),{priority:"highest"}),o.enableActiveItemFocusOnDropdownOpen&&tm(e,(()=>e.toolbarView.items.find((e=>e.isOn))))}function Yh(e,t,o){const i=e.locale,n=i.t,s=e.toolbarView=new Wh(i),r="function"==typeof t?t():t;s.ariaLabel=o.ariaLabel||n("Dropdown toolbar"),o.maxWidth&&(s.maxWidth=o.maxWidth),o.class&&(s.class=o.class),o.isCompact&&(s.isCompact=o.isCompact),o.isVertical&&(s.isVertical=!0),r instanceof tu?s.items.bindTo(r).using((e=>e)):s.items.addMany(r),e.panelView.children.add(s),e.focusTracker.add(s),s.items.delegate("execute").to(e)}function Xh(e,t,o={}){e.isOpen?em(e,t,o):e.once("change:isOpen",(()=>em(e,t,o)),{priority:"highest"}),tm(e,(()=>e.listView.items.find((e=>e instanceof Nh&&e.children.first.isOn))))}function em(e,t,o){const i=e.locale,n=e.listView=new zh(i),s="function"==typeof t?t():t;n.ariaLabel=o.ariaLabel,n.role=o.role,im(e,n.items,s,i),e.panelView.children.add(n),n.items.delegate("execute").to(e)}function tm(e,t){e.on("change:isOpen",(()=>{if(!e.isOpen)return;const o=t();o&&("function"==typeof o.focus?o.focus():be("ui-dropdown-focus-child-on-open-child-missing-focus",{view:o}))}),{priority:ge.low-10})}function om(e){return[...e.elements,...e.externalViews.flatMap((e=>om(e.focusTracker)))]}function im(e,t,o,i){!function(e){let t=0;const o=e=>e instanceof Nh&&e.children.first instanceof ih?e.children.first:null,i=e=>{const t=o(e);return t&&t.isToggleable?t:null},n=t=>{for(const i of e){const e=o(i);e&&(e.hasCheckSpace=t)}};e.on("change",((e,s)=>{const r=t>0;for(const e of s.removed)i(e)&&t--;for(const e of s.added){const i=o(e);i&&(i.isToggleable&&t++,i.hasCheckSpace=t>0)}const a=t>0;r!==a&&n(a)}))}(t),t.bindTo(o).using((t=>{if("separator"===t.type)return new Bh(i);if("group"===t.type){const o=new Lh(i);return o.set({label:t.label}),im(e,o.items,t.items,i),o.items.delegate("execute").to(e),o}if("button"===t.type||"switchbutton"===t.type){const e="menuitemcheckbox"===t.model.role||"menuitemradio"===t.model.role,o=new Nh(i);let n;return"button"===t.type?(n=new ih(i,t.labelView),n.set({isToggleable:e})):n=new fh(i),n.bind(...Object.keys(t.model)).to(t.model),n.delegate("execute").to(o),o.children.add(n),o}return null}))}const nm=(e,t,o)=>{const i=new Oh(e.locale);return i.set({id:t,ariaDescribedById:o}),i.bind("isReadOnly").to(e,"isEnabled",(e=>!e)),i.bind("hasError").to(e,"errorText",(e=>!!e)),i.on("input",(()=>{e.errorText=null})),e.bind("isEmpty","isFocused","placeholder").to(i),i},sm=(e,t,o)=>{const i=new Vh(e.locale);return i.set({id:t,ariaDescribedById:o,inputMode:"numeric"}),i.bind("isReadOnly").to(e,"isEnabled",(e=>!e)),i.bind("hasError").to(e,"errorText",(e=>!!e)),i.on("input",(()=>{e.errorText=null})),e.bind("isEmpty","isFocused","placeholder").to(i),i},rm=(e,t,o)=>{const i=Zh(e.locale);return i.set({id:t,ariaDescribedById:o}),i.bind("isEnabled").to(e),i};class am extends Au{hexInputRow;_debounceColorPickerEvent;_config;constructor(e,t={}){super(e),this.set({color:"",_hexColor:""}),this.hexInputRow=this._createInputRow();const o=this.createCollection();t.hideInput||o.add(this.hexInputRow),this.setTemplate({tag:"div",attributes:{class:["ck","ck-color-picker"],tabindex:-1},children:o}),this._config=t,this._debounceColorPickerEvent=zo((e=>{this.set("color",e),this.fire("colorSelected",{color:this.color})}),150,{leading:!0}),this.on("set:color",((e,t,o)=>{e.return=Th(o,this._config.format||"hsl")})),this.on("change:color",(()=>{this._hexColor=lm(this.color)})),this.on("change:_hexColor",(()=>{document.activeElement!==this.picker&&this.picker.setAttribute("color",this._hexColor),lm(this.color)!=lm(this._hexColor)&&(this.color=this._hexColor)}))}render(){var e,t;if(super.render(),e="hex-color-picker",t=eu,void 0===customElements.get(e)&&customElements.define(e,t),this.picker=J.document.createElement("hex-color-picker"),this.picker.setAttribute("class","hex-color-picker"),this.picker.setAttribute("tabindex","-1"),this._createSlidersView(),this.element){this.hexInputRow.element?this.element.insertBefore(this.picker,this.hexInputRow.element):this.element.appendChild(this.picker);const e=document.createElement("style");e.textContent='[role="slider"]:focus [part$="pointer"] {border: 1px solid #fff;outline: 1px solid var(--ck-color-focus-border);box-shadow: 0 0 0 2px #fff;}',this.picker.shadowRoot.appendChild(e)}this.picker.addEventListener("color-changed",(e=>{const t=e.detail.value;this._debounceColorPickerEvent(t)}))}focus(){if(!this._config.hideInput&&(Y.isGecko||Y.isiOS||Y.isSafari||Y.isBlink)){this.hexInputRow.children.get(1).focus()}this.slidersView.first.focus()}_createSlidersView(){const e=[...this.picker.shadowRoot.children].filter((e=>"slider"===e.getAttribute("role"))).map((e=>new cm(e)));this.slidersView=this.createCollection(),e.forEach((e=>{this.slidersView.add(e)}))}_createInputRow(){const e=this._createColorInput();return new um(this.locale,e)}_createColorInput(){const e=new Sh(this.locale,nm),{t}=this.locale;return e.set({label:t("HEX"),class:"color-picker-hex-input"}),e.fieldView.bind("value").to(this,"_hexColor",(t=>e.isFocused?e.fieldView.value:t.startsWith("#")?t.substring(1):t)),e.fieldView.on("input",(()=>{const t=e.fieldView.element.value;if(t){const e=hm(t);e&&this._debounceColorPickerEvent(e)}})),e}isValid(){const{t:e}=this.locale;return!!this._config.hideInput||(this.resetValidationStatus(),!!this.hexInputRow.getParsedColor()||(this.hexInputRow.inputView.errorText=e('Please enter a valid color (e.g. "ff0000").'),!1))}resetValidationStatus(){this.hexInputRow.inputView.errorText=null}}function lm(e){let t=function(e){if(!e)return"";const t=Ph(e);return t?"hex"===t.space?t.hexValue:Th(e,"hex"):"#000"}(e);return t||(t="#000"),4===t.length&&(t="#"+[t[1],t[1],t[2],t[2],t[3],t[3]].join("")),t.toLowerCase()}class cm extends Au{constructor(e){super(),this.element=e}focus(){this.element.focus()}}class dm extends Au{constructor(e){super(e),this.setTemplate({tag:"div",attributes:{class:["ck","ck-color-picker__hash-view"]},children:"#"})}}class um extends Au{children;inputView;constructor(e,t){super(e),this.inputView=t,this.children=this.createCollection([new dm,this.inputView]),this.setTemplate({tag:"div",attributes:{class:["ck","ck-color-picker__row"]},children:this.children})}getParsedColor(){return hm(this.inputView.fieldView.element.value)}}function hm(e){if(!e)return null;const t=e.trim().replace(/^#/,"");return[3,4,6,8].includes(t.length)&&/^(([0-9a-fA-F]{2}){3,4}|([0-9a-fA-F]){3,4})$/.test(t)?`#${t}`:null}class mm extends(Be(eo)){constructor(e){super(e),this.set("isEmpty",!0),this.on("change",(()=>{this.set("isEmpty",0===this.length)}))}add(e,t){return this.find((t=>t.color===e.color))?this:super.add(e,t)}hasColor(e){return!!this.find((t=>t.color===e))}}class gm extends Au{items;colorDefinitions;focusTracker;columns;documentColors;documentColorsCount;staticColorsGrid;documentColorsGrid;colorPickerButtonView;removeColorButtonView;_focusables;_documentColorsLabel;_removeButtonLabel;_colorPickerLabel;constructor(e,{colors:t,columns:o,removeButtonLabel:i,documentColorsLabel:n,documentColorsCount:s,colorPickerLabel:r,focusTracker:a,focusables:l}){super(e);const c=this.bindTemplate;this.set("isVisible",!0),this.focusTracker=a,this.items=this.createCollection(),this.colorDefinitions=t,this.columns=o,this.documentColors=new mm,this.documentColorsCount=s,this._focusables=l,this._removeButtonLabel=i,this._colorPickerLabel=r,this._documentColorsLabel=n,this.setTemplate({tag:"div",attributes:{class:["ck-color-grids-fragment",c.if("isVisible","ck-hidden",(e=>!e))]},children:this.items}),this.removeColorButtonView=this._createRemoveColorButton(),this.items.add(this.removeColorButtonView)}updateDocumentColors(e,t){const o=e.document,i=this.documentColorsCount;this.documentColors.clear();for(const n of o.getRoots()){const o=e.createRangeIn(n);for(const e of o.getItems())if(e.is("$textProxy")&&e.hasAttribute(t)&&(this._addColorToDocumentColors(e.getAttribute(t)),this.documentColors.length>=i))return}}updateSelectedColors(){const e=this.documentColorsGrid,t=this.staticColorsGrid,o=this.selectedColor;t.selectedColor=o,e&&(e.selectedColor=o)}render(){if(super.render(),this.staticColorsGrid=this._createStaticColorsGrid(),this.items.add(this.staticColorsGrid),this.documentColorsCount){const e=ou.bind(this.documentColors,this.documentColors),t=new Au(this.locale);t.setTemplate({tag:"span",attributes:{class:["ck","ck-color-grid__label",e.if("isEmpty","ck-hidden")]},children:[{text:this._documentColorsLabel}]}),this.items.add(t),this.documentColorsGrid=this._createDocumentColorsGrid(),this.items.add(this.documentColorsGrid)}this._createColorPickerButton(),this._addColorSelectorElementsToFocusTracker()}focus(){this.removeColorButtonView.focus()}destroy(){super.destroy()}addColorPickerButton(){this.colorPickerButtonView&&(this.items.add(this.colorPickerButtonView),this.focusTracker.add(this.colorPickerButtonView.element),this._focusables.add(this.colorPickerButtonView))}_addColorSelectorElementsToFocusTracker(){this.focusTracker.add(this.removeColorButtonView.element),this._focusables.add(this.removeColorButtonView),this.staticColorsGrid&&(this.focusTracker.add(this.staticColorsGrid.element),this._focusables.add(this.staticColorsGrid)),this.documentColorsGrid&&(this.focusTracker.add(this.documentColorsGrid.element),this._focusables.add(this.documentColorsGrid))}_createColorPickerButton(){this.colorPickerButtonView=new Lu,this.colorPickerButtonView.set({label:this._colorPickerLabel,withText:!0,icon:'',class:"ck-color-selector__color-picker"}),this.colorPickerButtonView.on("execute",(()=>{this.fire("colorPicker:show")}))}_createRemoveColorButton(){const e=new Lu;return e.set({withText:!0,icon:'',label:this._removeButtonLabel}),e.class="ck-color-selector__remove-color",e.on("execute",(()=>{this.fire("execute",{value:null,source:"removeColorButton"})})),e.render(),e}_createStaticColorsGrid(){const e=new Eh(this.locale,{colorDefinitions:this.colorDefinitions,columns:this.columns});return e.on("execute",((e,t)=>{this.fire("execute",{value:t.value,source:"staticColorsGrid"})})),e}_createDocumentColorsGrid(){const e=ou.bind(this.documentColors,this.documentColors),t=new Eh(this.locale,{columns:this.columns});return t.extendTemplate({attributes:{class:e.if("isEmpty","ck-hidden")}}),t.items.bindTo(this.documentColors).using((e=>{const t=new xh;return t.set({color:e.color,hasBorder:e.options?.hasBorder}),e.label&&t.set({label:e.label,tooltip:!0}),t.on("execute",(()=>{this.fire("execute",{value:e.color,source:"documentColorsGrid"})})),t})),this.documentColors.on("change:isEmpty",((e,o,i)=>{i&&(t.selectedColor=null)})),t}_addColorToDocumentColors(e){const t=this.colorDefinitions.find((t=>t.color===e));t?this.documentColors.add(Object.assign({},t)):this.documentColors.add({color:e,label:e,options:{hasBorder:!1}})}}class pm extends Au{items;colorPickerView;saveButtonView;cancelButtonView;actionBarView;focusTracker;keystrokes;_focusables;_colorPickerViewConfig;constructor(e,{focusTracker:t,focusables:o,keystrokes:i,colorPickerViewConfig:n}){super(e),this.items=this.createCollection(),this.focusTracker=t,this.keystrokes=i,this.set("isVisible",!1),this.set("selectedColor",void 0),this._focusables=o,this._colorPickerViewConfig=n;const s=this.bindTemplate,{saveButtonView:r,cancelButtonView:a}=this._createActionButtons();this.saveButtonView=r,this.cancelButtonView=a,this.actionBarView=this._createActionBarView({saveButtonView:r,cancelButtonView:a}),this.setTemplate({tag:"div",attributes:{class:["ck-color-picker-fragment",s.if("isVisible","ck-hidden",(e=>!e))]},children:this.items})}render(){super.render();const e=new am(this.locale,{...this._colorPickerViewConfig});this.colorPickerView=e,this.colorPickerView.render(),this.selectedColor&&(e.color=this.selectedColor),this.listenTo(this,"change:selectedColor",((t,o,i)=>{e.color=i})),this.items.add(this.colorPickerView),this.items.add(this.actionBarView),this._addColorPickersElementsToFocusTracker(),this._stopPropagationOnArrowsKeys(),this._executeOnEnterPress(),this._executeUponColorChange()}destroy(){super.destroy()}focus(){this.colorPickerView.focus()}resetValidationStatus(){this.colorPickerView.resetValidationStatus()}_executeOnEnterPress(){this.keystrokes.set("enter",(e=>{this.isVisible&&this.focusTracker.focusedElement!==this.cancelButtonView.element&&this.colorPickerView.isValid()&&(this.fire("execute",{value:this.selectedColor}),e.stopPropagation(),e.preventDefault())}))}_stopPropagationOnArrowsKeys(){const e=e=>e.stopPropagation();this.keystrokes.set("arrowright",e),this.keystrokes.set("arrowleft",e),this.keystrokes.set("arrowup",e),this.keystrokes.set("arrowdown",e)}_addColorPickersElementsToFocusTracker(){for(const e of this.colorPickerView.slidersView)this.focusTracker.add(e.element),this._focusables.add(e);const e=this.colorPickerView.hexInputRow.children.get(1);e.element&&(this.focusTracker.add(e.element),this._focusables.add(e)),this.focusTracker.add(this.saveButtonView.element),this._focusables.add(this.saveButtonView),this.focusTracker.add(this.cancelButtonView.element),this._focusables.add(this.cancelButtonView)}_createActionBarView({saveButtonView:e,cancelButtonView:t}){const o=new Au,i=this.createCollection();return i.add(e),i.add(t),o.setTemplate({tag:"div",attributes:{class:["ck","ck-color-selector_action-bar"]},children:i}),o}_createActionButtons(){const e=this.locale,t=e.t,o=new Lu(e),i=new Lu(e);return o.set({icon:Hc,class:"ck-button-save",type:"button",withText:!1,label:t("Accept")}),i.set({icon:$c,class:"ck-button-cancel",type:"button",withText:!1,label:t("Cancel")}),o.on("execute",(()=>{this.colorPickerView.isValid()&&this.fire("execute",{source:"colorPickerSaveButton",value:this.selectedColor})})),i.on("execute",(()=>{this.fire("colorPicker:cancel")})),{saveButtonView:o,cancelButtonView:i}}_executeUponColorChange(){this.colorPickerView.on("colorSelected",((e,t)=>{this.fire("execute",{value:t.color,source:"colorPicker"}),this.set("selectedColor",t.color)}))}}class fm extends Au{focusTracker;keystrokes;items;colorGridsFragmentView;colorPickerFragmentView;_focusCycler;_focusables;_colorPickerViewConfig;constructor(e,{colors:t,columns:o,removeButtonLabel:i,documentColorsLabel:n,documentColorsCount:s,colorPickerLabel:r,colorPickerViewConfig:a}){super(e),this.items=this.createCollection(),this.focusTracker=new oo,this.keystrokes=new ro,this._focusables=new tu,this._colorPickerViewConfig=a,this._focusCycler=new qu({focusables:this._focusables,focusTracker:this.focusTracker,keystrokeHandler:this.keystrokes,actions:{focusPrevious:"shift + tab",focusNext:"tab"}}),this.colorGridsFragmentView=new gm(e,{colors:t,columns:o,removeButtonLabel:i,documentColorsLabel:n,documentColorsCount:s,colorPickerLabel:r,focusTracker:this.focusTracker,focusables:this._focusables}),this.colorPickerFragmentView=new pm(e,{focusables:this._focusables,focusTracker:this.focusTracker,keystrokes:this.keystrokes,colorPickerViewConfig:a}),this.set("_isColorGridsFragmentVisible",!0),this.set("_isColorPickerFragmentVisible",!1),this.set("selectedColor",void 0),this.colorGridsFragmentView.bind("isVisible").to(this,"_isColorGridsFragmentVisible"),this.colorPickerFragmentView.bind("isVisible").to(this,"_isColorPickerFragmentVisible"),this.on("change:selectedColor",((e,t,o)=>{this.colorGridsFragmentView.set("selectedColor",o),this.colorPickerFragmentView.set("selectedColor",o)})),this.colorGridsFragmentView.on("change:selectedColor",((e,t,o)=>{this.set("selectedColor",o)})),this.colorPickerFragmentView.on("change:selectedColor",((e,t,o)=>{this.set("selectedColor",o)})),this.setTemplate({tag:"div",attributes:{class:["ck","ck-color-selector"]},children:this.items})}render(){super.render(),this.keystrokes.listenTo(this.element)}destroy(){super.destroy(),this.focusTracker.destroy(),this.keystrokes.destroy()}appendUI(){this._appendColorGridsFragment(),this._colorPickerViewConfig&&this._appendColorPickerFragment()}showColorPickerFragment(){this.colorPickerFragmentView.colorPickerView&&!this._isColorPickerFragmentVisible&&(this._isColorPickerFragmentVisible=!0,this.colorPickerFragmentView.focus(),this.colorPickerFragmentView.resetValidationStatus(),this._isColorGridsFragmentVisible=!1)}showColorGridsFragment(){this._isColorGridsFragmentVisible||(this._isColorGridsFragmentVisible=!0,this.colorGridsFragmentView.focus(),this._isColorPickerFragmentVisible=!1)}focus(){this._focusCycler.focusFirst()}focusLast(){this._focusCycler.focusLast()}updateDocumentColors(e,t){this.colorGridsFragmentView.updateDocumentColors(e,t)}updateSelectedColors(){this.colorGridsFragmentView.updateSelectedColors()}_appendColorGridsFragment(){this.items.length||(this.items.add(this.colorGridsFragmentView),this.colorGridsFragmentView.delegate("execute").to(this),this.colorGridsFragmentView.delegate("colorPicker:show").to(this))}_appendColorPickerFragment(){2!==this.items.length&&(this.items.add(this.colorPickerFragmentView),this.colorGridsFragmentView.colorPickerButtonView&&this.colorGridsFragmentView.colorPickerButtonView.on("execute",(()=>{this.showColorPickerFragment()})),this.colorGridsFragmentView.addColorPickerButton(),this.colorPickerFragmentView.delegate("execute").to(this),this.colorPickerFragmentView.delegate("colorPicker:cancel").to(this))}}class bm{editor;_components=new Map;constructor(e){this.editor=e}*names(){for(const e of this._components.values())yield e.originalName}add(e,t){this._components.set(wm(e),{callback:t,originalName:e})}create(e){if(!this.has(e))throw new fe("componentfactory-item-missing",this,{name:e});return this._components.get(wm(e)).callback(this.editor.locale)}has(e){return this._components.has(wm(e))}}function wm(e){return String(e).toLowerCase()}const ym="ck-tooltip";class _m extends(et()){tooltipTextView;balloonPanelView;static defaultBalloonPositions=dh.generatePositions({heightOffset:5,sideOffset:13});_currentElementWithTooltip=null;_currentTooltipPosition=null;_mutationObserver=null;_pinTooltipDebounced;_unpinTooltipDebounced;_watchdogExcluded;static _editors=new Set;static _instance=null;constructor(e){if(super(),_m._editors.add(e),_m._instance)return _m._instance;_m._instance=this,this.tooltipTextView=new Au(e.locale),this.tooltipTextView.set("text",""),this.tooltipTextView.setTemplate({tag:"span",attributes:{class:["ck","ck-tooltip__text"]},children:[{text:this.tooltipTextView.bindTemplate.to("text")}]}),this.balloonPanelView=new dh(e.locale),this.balloonPanelView.class=ym,this.balloonPanelView.content.add(this.tooltipTextView),this._mutationObserver=function(e){const t=new MutationObserver((()=>{e()}));return{attach(e){t.observe(e,{attributes:!0,attributeFilter:["data-cke-tooltip-text","data-cke-tooltip-position"]})},detach(){t.disconnect()}}}((()=>{this._updateTooltipPosition()})),this._pinTooltipDebounced=zo(this._pinTooltip,600),this._unpinTooltipDebounced=zo(this._unpinTooltip,400),this.listenTo(J.document,"keydown",this._onKeyDown.bind(this),{useCapture:!0}),this.listenTo(J.document,"mouseenter",this._onEnterOrFocus.bind(this),{useCapture:!0}),this.listenTo(J.document,"mouseleave",this._onLeaveOrBlur.bind(this),{useCapture:!0}),this.listenTo(J.document,"focus",this._onEnterOrFocus.bind(this),{useCapture:!0}),this.listenTo(J.document,"blur",this._onLeaveOrBlur.bind(this),{useCapture:!0}),this.listenTo(J.document,"scroll",this._onScroll.bind(this),{useCapture:!0}),this._watchdogExcluded=!0}destroy(e){const t=e.ui.view&&e.ui.view.body;_m._editors.delete(e),this.stopListening(e.ui),t&&t.has(this.balloonPanelView)&&t.remove(this.balloonPanelView),_m._editors.size||(this._unpinTooltip(),this.balloonPanelView.destroy(),this.stopListening(),_m._instance=null)}static getPositioningFunctions(e){const t=_m.defaultBalloonPositions;return{s:[t.southArrowNorth,t.southArrowNorthEast,t.southArrowNorthWest],n:[t.northArrowSouth],e:[t.eastArrowWest],w:[t.westArrowEast],sw:[t.southArrowNorthEast],se:[t.southArrowNorthWest]}[e]}_onKeyDown(e,t){"Escape"===t.key&&this._currentElementWithTooltip&&(this._unpinTooltip(),t.stopPropagation())}_onEnterOrFocus(e,{target:t}){const o=km(t);o?o!==this._currentElementWithTooltip?(this._unpinTooltip(),"focus"===e.name&&!o.matches(":hover")||o.matches("[data-cke-tooltip-instant]")?this._pinTooltip(o,vm(o)):this._pinTooltipDebounced(o,vm(o))):this._unpinTooltipDebounced.cancel():"focus"===e.name&&this._unpinTooltip()}_onLeaveOrBlur(e,{target:t,relatedTarget:o}){if("mouseleave"===e.name){if(!L(t))return;const e=this.balloonPanelView.element,i=e&&(e===o||e.contains(o)),n=!i&&t===e;if(i)return void this._unpinTooltipDebounced.cancel();if(!n&&this._currentElementWithTooltip&&t!==this._currentElementWithTooltip)return;const s=km(t),r=km(o);(n||s&&s!==r)&&(this._pinTooltipDebounced.cancel(),this._currentElementWithTooltip&&this._currentElementWithTooltip.matches("[data-cke-tooltip-instant]")||s&&s.matches("[data-cke-tooltip-instant]")?this._unpinTooltip():this._unpinTooltipDebounced())}else{if(this._currentElementWithTooltip&&t!==this._currentElementWithTooltip)return;this._pinTooltipDebounced.cancel(),this._unpinTooltipDebounced()}}_onScroll(e,{target:t}){this._currentElementWithTooltip&&(t.contains(this.balloonPanelView.element)&&t.contains(this._currentElementWithTooltip)||this._unpinTooltip())}_pinTooltip(e,{text:t,position:o,cssClass:i}){this._unpinTooltip();const n=to(_m._editors.values()).ui.view.body;n.has(this.balloonPanelView)||n.add(this.balloonPanelView),this.tooltipTextView.text=t,this.balloonPanelView.class=[ym,i].filter((e=>e)).join(" "),this.balloonPanelView.pin({target:e,positions:_m.getPositioningFunctions(o)}),this._mutationObserver.attach(e);for(const e of _m._editors)this.listenTo(e.ui,"update",this._updateTooltipPosition.bind(this),{priority:"low"});this._currentElementWithTooltip=e,this._currentTooltipPosition=o}_unpinTooltip(){this._unpinTooltipDebounced.cancel(),this._pinTooltipDebounced.cancel(),this.balloonPanelView.unpin();for(const e of _m._editors)this.stopListening(e.ui,"update");this._currentElementWithTooltip=null,this._currentTooltipPosition=null,this.tooltipTextView.text="",this._mutationObserver.detach()}_updateTooltipPosition(){if(!this._currentElementWithTooltip)return;const e=vm(this._currentElementWithTooltip);Ct(this._currentElementWithTooltip)&&e.text?this.balloonPanelView.pin({target:this._currentElementWithTooltip,positions:_m.getPositioningFunctions(e.position)}):this._unpinTooltip()}}function km(e){return L(e)?e.closest("[data-cke-tooltip-text]:not([data-cke-tooltip-disabled])"):null}function vm(e){return{text:e.dataset.ckeTooltipText,position:e.dataset.ckeTooltipPosition||"s",cssClass:e.dataset.ckeTooltipClass||""}}class Cm extends hh{licenseTypeMessage={evaluation:"For evaluation purposes only",trial:"For evaluation purposes only",development:"For development purposes only"};constructor(e){super(e,{balloonClass:"ck-evaluation-badge-balloon"})}_isEnabled(){const e=xm(this.editor.config.get("licenseKey"));return Boolean(e&&this.licenseTypeMessage[e])}_createBadgeContent(){const e=xm(this.editor.config.get("licenseKey"));return new Am(this.editor.locale,this.licenseTypeMessage[e])}_getNormalizedConfig(){const e=super._getNormalizedConfig(),t=this.editor.config.get("ui.poweredBy")||{};return{position:t.position||e.position,side:"left"===(t.side||e.side)?"right":"left",verticalOffset:e.verticalOffset,horizontalOffset:e.horizontalOffset}}}class Am extends Au{constructor(e,t){super(e),this.setTemplate({tag:"div",attributes:{class:["ck","ck-evaluation-badge"],"aria-hidden":!0},children:[{tag:"span",attributes:{class:["ck","ck-evaluation-badge__label"]},children:[t]}]})}}function xm(e){if("GPL"==e)return"GPL";const t=uo(e.split(".")[1]);return t?t.licenseType||"production":null}class Em extends Nh{constructor(e,t){super(e);const o=this.bindTemplate;this.extendTemplate({attributes:{class:["ck-menu-bar__menu__item"]},on:{mouseenter:o.to("mouseenter")}}),this.delegate("mouseenter").to(t)}}const Tm={toggleMenusAndFocusItemsOnHover(e){e.on("menu:mouseenter",(t=>{if(e.isFocusBorderEnabled||e.isOpen){if(e.isOpen)for(const o of e.menus){const e=t.path[0],i=e instanceof Em&&e.children.first===o;o.isOpen=(t.path.includes(o)||i)&&o.isEnabled}t.source.focus()}}))},focusCycleMenusOnArrows(e){const t="rtl"===e.locale.uiLanguageDirection;function o(t,o){const i=e.children.getIndex(t),n=t.isOpen,s=e.children.length,r=e.children.get((i+s+o)%s);t.isOpen=!1,n&&(r.isOpen=!0),r.buttonView.focus()}e.on("menu:arrowright",(e=>{o(e.source,t?-1:1)})),e.on("menu:arrowleft",(e=>{o(e.source,t?1:-1)}))},closeMenusWhenTheBarCloses(e){e.on("change:isOpen",(()=>{e.isOpen||e.menus.forEach((e=>{e.isOpen=!1}))}))},closeMenuWhenAnotherOnTheSameLevelOpens(e){e.on("menu:change:isOpen",((t,o,i)=>{i&&e.menus.filter((e=>t.source.parentMenuView===e.parentMenuView&&t.source!==e&&e.isOpen)).forEach((e=>{e.isOpen=!1}))}))},closeOnClickOutside(e){Su({emitter:e,activator:()=>e.isOpen,callback:()=>e.close(),contextElements:()=>e.children.map((e=>e.element))})},enableFocusHighlightOnInteraction(e){let t=!1;e.on("change:isOpen",((o,i,n)=>{n||(t||(e.isFocusBorderEnabled=!1),t=!1)})),e.listenTo(e.element,"keydown",(()=>{t=!0}),{useCapture:!0}),e.listenTo(e.element,"keyup",(()=>{t=!1}),{useCapture:!0}),e.listenTo(e.element,"focus",(()=>{t&&(e.isFocusBorderEnabled=!0)}),{useCapture:!0})}},Pm={openAndFocusPanelOnArrowDownKey(e){e.keystrokes.set("arrowdown",((t,o)=>{e.isEnabled&&e.focusTracker.focusedElement===e.buttonView.element&&(e.isOpen||(e.isOpen=!0),e.panelView.focus(),o())}))},openOnArrowRightKey(e){const t="rtl"===e.locale.uiLanguageDirection?"arrowleft":"arrowright";e.keystrokes.set(t,((t,o)=>{e.focusTracker.focusedElement===e.buttonView.element&&e.isEnabled&&(e.isOpen||(e.isOpen=!0),e.panelView.focus(),o())}))},openOnButtonClick(e){e.buttonView.on("execute",(()=>{e.isOpen=!0}))},toggleOnButtonClick(e){e.buttonView.on("execute",(()=>{e.isOpen=!e.isOpen}))},openAndFocusOnEnterKeyPress(e){e.keystrokes.set("enter",((t,o)=>{e.focusTracker.focusedElement===e.buttonView.element&&(e.isOpen=!0,e.panelView.focus(),o())}))},closeOnArrowLeftKey(e){const t="rtl"===e.locale.uiLanguageDirection?"arrowright":"arrowleft";e.keystrokes.set(t,((t,o)=>{e.isOpen&&(e.isOpen=!1,e.focus(),o())}))},closeOnEscKey(e){e.keystrokes.set("esc",((t,o)=>{e.isOpen&&(e.isOpen=!1,e.focus(),o())}))},closeOnParentClose(e){e.parentMenuView.on("change:isOpen",((t,o,i)=>{i||t.source!==e.parentMenuView||(e.isOpen=!1)}))}},Sm={southEast:e=>({top:e.bottom,left:e.left,name:"se"}),southWest:(e,t)=>({top:e.bottom,left:e.left-t.width+e.width,name:"sw"}),northEast:(e,t)=>({top:e.top-t.height,left:e.left,name:"ne"}),northWest:(e,t)=>({top:e.top-t.height,left:e.left-t.width+e.width,name:"nw"}),eastSouth:e=>({top:e.top,left:e.right-5,name:"es"}),eastNorth:(e,t)=>({top:e.top-t.height,left:e.right-5,name:"en"}),westSouth:(e,t)=>({top:e.top,left:e.left-t.width+5,name:"ws"}),westNorth:(e,t)=>({top:e.top-t.height,left:e.left-t.width+5,name:"wn"})},Im=[{menuId:"file",label:"File",groups:[{groupId:"export",items:["menuBar:exportPdf","menuBar:exportWord"]},{groupId:"import",items:["menuBar:importWord"]},{groupId:"revisionHistory",items:["menuBar:revisionHistory"]}]},{menuId:"edit",label:"Edit",groups:[{groupId:"undo",items:["menuBar:undo","menuBar:redo"]},{groupId:"selectAll",items:["menuBar:selectAll"]},{groupId:"findAndReplace",items:["menuBar:findAndReplace"]}]},{menuId:"view",label:"View",groups:[{groupId:"sourceEditingEnhanced",items:["menuBar:sourceEditingEnhanced"]},{groupId:"sourceEditing",items:["menuBar:sourceEditing"]},{groupId:"showBlocks",items:["menuBar:showBlocks"]},{groupId:"previewMergeFields",items:["menuBar:previewMergeFields"]},{groupId:"fullscreen",items:["menuBar:fullscreen"]},{groupId:"restrictedEditing",items:["menuBar:restrictedEditing"]}]},{menuId:"insert",label:"Insert",groups:[{groupId:"insertMainWidgets",items:["menuBar:insertImage","menuBar:ckbox","menuBar:ckfinder","menuBar:insertTable","menuBar:insertTableLayout"]},{groupId:"insertInline",items:["menuBar:link","menuBar:insertFootnote","menuBar:bookmark","menuBar:comment","menuBar:insertMergeField","menuBar:emoji"]},{groupId:"insertMinorWidgets",items:["menuBar:mediaEmbed","menuBar:insertTemplate","menuBar:specialCharacters","menuBar:blockQuote","menuBar:codeBlock","menuBar:htmlEmbed"]},{groupId:"insertStructureWidgets",items:["menuBar:horizontalLine","menuBar:pageBreak","menuBar:tableOfContents"]},{groupId:"restrictedEditingException",items:["menuBar:restrictedEditingException:inline","menuBar:restrictedEditingException:block"]}]},{menuId:"format",label:"Format",groups:[{groupId:"textAndFont",items:[{menuId:"text",label:"Text",groups:[{groupId:"basicStyles",items:["menuBar:bold","menuBar:italic","menuBar:underline","menuBar:strikethrough","menuBar:superscript","menuBar:subscript","menuBar:code"]},{groupId:"textPartLanguage",items:["menuBar:textPartLanguage"]}]},{menuId:"font",label:"Font",groups:[{groupId:"fontProperties",items:["menuBar:fontSize","menuBar:fontFamily"]},{groupId:"fontColors",items:["menuBar:fontColor","menuBar:fontBackgroundColor"]},{groupId:"highlight",items:["menuBar:highlight"]}]},"menuBar:heading"]},{groupId:"list",items:["menuBar:bulletedList","menuBar:numberedList","menuBar:multiLevelList","menuBar:todoList"]},{groupId:"indent",items:["menuBar:alignment","menuBar:lineHeight","menuBar:indent","menuBar:outdent"]},{groupId:"caseChange",items:["menuBar:caseChange"]},{groupId:"removeFormat",items:["menuBar:removeFormat"]}]},{menuId:"tools",label:"Tools",groups:[{groupId:"aiTools",items:["menuBar:aiAssistant","menuBar:aiCommands","menuBar:toggleAi","menuBar:aiQuickActions"]},{groupId:"tools",items:["menuBar:trackChanges","menuBar:commentsArchive"]}]},{menuId:"help",label:"Help",groups:[{groupId:"help",items:["menuBar:accessibilityHelp"]}]}];function Rm({normalizedConfig:e,locale:t,componentFactory:o,extraItems:i}){const n=j(e);return Om(e,n,i),function(e,t){const o=t.removeItems,i=[];t.items=t.items.filter((({menuId:e})=>!o.includes(e)||(i.push(e),!1))),Mm(t.items,(e=>{e.groups=e.groups.filter((({groupId:e})=>!o.includes(e)||(i.push(e),!1)));for(const t of e.groups)t.items=t.items.filter((e=>{const t=zm(e);return!o.includes(t)||(i.push(t),!1)}))}));for(const t of o)i.includes(t)||be("menu-bar-item-could-not-be-removed",{menuBarConfig:e,itemName:t})}(e,n),Om(e,n,n.addItems),function(e,t,o){Mm(t.items,(i=>{for(const n of i.groups)n.items=n.items.filter((n=>{const s="string"==typeof n&&!o.has(n);return s&&!t.isUsingDefaultConfig&&be("menu-bar-item-unavailable",{menuBarConfig:e,parentMenuConfig:j(i),componentName:n}),!s}))}))}(e,n,o),Dm(e,n),function(e,t){const o=t.t,i={File:o({string:"File",id:"MENU_BAR_MENU_FILE"}),Edit:o({string:"Edit",id:"MENU_BAR_MENU_EDIT"}),View:o({string:"View",id:"MENU_BAR_MENU_VIEW"}),Insert:o({string:"Insert",id:"MENU_BAR_MENU_INSERT"}),Format:o({string:"Format",id:"MENU_BAR_MENU_FORMAT"}),Tools:o({string:"Tools",id:"MENU_BAR_MENU_TOOLS"}),Help:o({string:"Help",id:"MENU_BAR_MENU_HELP"}),Text:o({string:"Text",id:"MENU_BAR_MENU_TEXT"}),Font:o({string:"Font",id:"MENU_BAR_MENU_FONT"})};Mm(e.items,(e=>{e.label in i&&(e.label=i[e.label])}))}(n,t),n}function Om(e,t,o){const i=[];if(0!=o.length){for(const e of o){const o=Bm(e.position),s=Lm(e.position);if("object"==typeof(n=e)&&"menu"in n)if(s){const n=t.items.findIndex((e=>e.menuId===s));if(-1!=n)"before"===o?(t.items.splice(n,0,e.menu),i.push(e)):"after"===o&&(t.items.splice(n+1,0,e.menu),i.push(e));else{Vm(t,e.menu,s,o)&&i.push(e)}}else"start"===o?(t.items.unshift(e.menu),i.push(e)):"end"===o&&(t.items.push(e.menu),i.push(e));else if(Nm(e))Mm(t.items,(t=>{if(t.menuId===s)"start"===o?(t.groups.unshift(e.group),i.push(e)):"end"===o&&(t.groups.push(e.group),i.push(e));else{const n=t.groups.findIndex((e=>e.groupId===s));-1!==n&&("before"===o?(t.groups.splice(n,0,e.group),i.push(e)):"after"===o&&(t.groups.splice(n+1,0,e.group),i.push(e)))}}));else{Vm(t,e.item,s,o)&&i.push(e)}}var n;for(const t of o)i.includes(t)||be("menu-bar-item-could-not-be-added",{menuBarConfig:e,addedItemConfig:t})}}function Vm(e,t,o,i){let n=!1;return Mm(e.items,(e=>{for(const{groupId:s,items:r}of e.groups){if(n)return;if(s===o)"start"===i?(r.unshift(t),n=!0):"end"===i&&(r.push(t),n=!0);else{const e=r.findIndex((e=>zm(e)===o));-1!==e&&("before"===i?(r.splice(e,0,t),n=!0):"after"===i&&(r.splice(e+1,0,t),n=!0))}}})),n}function Dm(e,t){const o=t.isUsingDefaultConfig;let i=!1;t.items=t.items.filter((t=>!!t.groups.length||(Fm(e,t,o),!1))),t.items.length?(Mm(t.items,(t=>{t.groups=t.groups.filter((e=>!!e.items.length||(i=!0,!1)));for(const n of t.groups)n.items=n.items.filter((t=>!(jm(t)&&!t.groups.length)||(Fm(e,t,o),i=!0,!1)))})),i&&Dm(e,t)):Fm(e,e,o)}function Fm(e,t,o){o||be("menu-bar-menu-empty",{menuBarConfig:e,emptyMenuConfig:t})}function Mm(e,t){if(Array.isArray(e))for(const t of e)o(t);function o(e){t(e);for(const t of e.groups)for(const e of t.items)jm(e)&&o(e)}}function Nm(e){return"object"==typeof e&&"group"in e}function Bm(e){return e.startsWith("start")?"start":e.startsWith("end")?"end":e.startsWith("after")?"after":"before"}function Lm(e){const t=e.match(/^[^:]+:(.+)/);return t?t[1]:null}function zm(e){return"string"==typeof e?e:e.menuId}function jm(e){return"object"==typeof e&&"menuId"in e}class qm extends(Be()){editor;componentFactory;focusTracker;tooltipManager;poweredBy;evaluationBadge;ariaLiveAnnouncer;isReady=!1;_editableElementsMap=new Map;_focusableToolbarDefinitions=[];_extraMenuBarElements=[];_lastFocusedForeignElement=null;_domEmitter;constructor(e){super();const t=e.editing.view;this.editor=e,this.componentFactory=new bm(e),this.focusTracker=new oo,this.tooltipManager=new _m(e),this.poweredBy=new gh(e),this.evaluationBadge=new Cm(e),this.ariaLiveAnnouncer=new Eu(e),this._initViewportOffset(this._readViewportOffsetFromConfig()),this.once("ready",(()=>{this._bindBodyCollectionWithFocusTracker(),this.isReady=!0})),this.listenTo(t.document,"layoutChanged",this.update.bind(this)),this.listenTo(t,"scrollToTheSelection",this._handleScrollToTheSelection.bind(this)),this._initFocusTracking(),this._initVisualViewportSupport()}get element(){return null}update(){this.fire("update")}destroy(){this.stopListening(),this.focusTracker.destroy(),this.tooltipManager.destroy(this.editor),this.poweredBy.destroy(),this.evaluationBadge.destroy();for(const e of this._editableElementsMap.values())e.ckeditorInstance=null,this.editor.keystrokes.stopListening(e);this._editableElementsMap=new Map,this._focusableToolbarDefinitions=[],this._domEmitter&&this._domEmitter.stopListening()}setEditableElement(e,t){this._editableElementsMap.set(e,t),t.ckeditorInstance||(t.ckeditorInstance=this.editor),this.focusTracker.add(t);const o=()=>{this.editor.editing.view.getDomRoot(e)||this.editor.keystrokes.listenTo(t)};this.isReady?o():this.once("ready",o)}removeEditableElement(e){const t=this._editableElementsMap.get(e);t&&(this._editableElementsMap.delete(e),this.editor.keystrokes.stopListening(t),this.focusTracker.remove(t),t.ckeditorInstance=null)}getEditableElement(e="main"){return this._editableElementsMap.get(e)}getEditableElementsNames(){return this._editableElementsMap.keys()}addToolbar(e,t={}){e.isRendered?(this.focusTracker.add(e),this.editor.keystrokes.listenTo(e.element)):e.once("render",(()=>{this.focusTracker.add(e),this.editor.keystrokes.listenTo(e.element)})),this._focusableToolbarDefinitions.push({toolbarView:e,options:t})}extendMenuBar(e){this._extraMenuBarElements.push(e)}initMenuBar(e){const t=e.element;this.focusTracker.add(t),this.editor.keystrokes.listenTo(t);const o=function(e){let t;return t="items"in e&&e.items?{items:e.items,removeItems:[],addItems:[],isVisible:!0,isUsingDefaultConfig:!1,...e}:{items:j(Im),addItems:[],removeItems:[],isVisible:!0,isUsingDefaultConfig:!0,...e},t}(this.editor.config.get("menuBar")||{});e.fillFromConfig(o,this.componentFactory,this._extraMenuBarElements),this.editor.keystrokes.set("Esc",((e,o)=>{t.contains(this.editor.ui.focusTracker.focusedElement)&&(this._lastFocusedForeignElement?(this._lastFocusedForeignElement.focus(),this._lastFocusedForeignElement=null):this.editor.editing.view.focus(),o())})),this.editor.keystrokes.set("Alt+F9",((o,i)=>{t.contains(this.editor.ui.focusTracker.focusedElement)||(this._saveLastFocusedForeignElement(),e.isFocusBorderEnabled=!0,e.focus(),i())}))}_readViewportOffsetFromConfig(){const e=this.editor,t=e.config.get("ui.viewportOffset");if(t)return t;const o=e.config.get("toolbar.viewportTopOffset");return o?(console.warn("editor-ui-deprecated-viewport-offset-config: The `toolbar.vieportTopOffset` configuration option is deprecated. It will be removed from future CKEditor versions. Use `ui.viewportOffset.top` instead."),{top:o}):{top:0}}_initFocusTracking(){const e=this.editor;let t;e.keystrokes.set("Alt+F10",((e,o)=>{this._saveLastFocusedForeignElement();const i=this._getCurrentFocusedToolbarDefinition();i&&t||(t=this._getFocusableCandidateToolbarDefinitions());for(let e=0;e{const i=this._getCurrentFocusedToolbarDefinition();i&&(this._lastFocusedForeignElement?(this._lastFocusedForeignElement.focus(),this._lastFocusedForeignElement=null):e.editing.view.focus(),i.options.afterBlur&&i.options.afterBlur(),o())}))}_saveLastFocusedForeignElement(){const e=this.focusTracker.focusedElement;Array.from(this._editableElementsMap.values()).includes(e)&&!Array.from(this.editor.editing.view.domRoots.values()).includes(e)&&(this._lastFocusedForeignElement=e)}_getFocusableCandidateToolbarDefinitions(){const e=[];for(const t of this._focusableToolbarDefinitions){const{toolbarView:o,options:i}=t;(Ct(o.element)||i.beforeFocus)&&e.push(t)}return e.sort(((e,t)=>$m(e)-$m(t))),e}_getCurrentFocusedToolbarDefinition(){for(const e of this._focusableToolbarDefinitions)if(e.toolbarView.element&&e.toolbarView.element.contains(this.focusTracker.focusedElement))return e;return null}_focusFocusableCandidateToolbar(e){const{toolbarView:t,options:{beforeFocus:o}}=e;return o&&o(),!!Ct(t.element)&&(t.focus(),!0)}_handleScrollToTheSelection(e,t){const o={top:0,bottom:0,left:0,right:0,...this.viewportOffset};t.viewportOffset.top+=o.top,t.viewportOffset.bottom+=o.bottom,t.viewportOffset.left+=o.left,t.viewportOffset.right+=o.right}_bindBodyCollectionWithFocusTracker(){const e=this.view.body;for(const t of e)this.focusTracker.add(t.element);e.on("add",((e,t)=>{this.focusTracker.add(t.element)})),e.on("remove",((e,t)=>{this.focusTracker.remove(t.element)}))}_initViewportOffset(e){this.on("set:viewportOffset",((e,t,o)=>{const i=this._getVisualViewportTopOffset(o);o.visualTop!==i&&(e.return={...o,visualTop:i})})),this.set("viewportOffset",e)}_initVisualViewportSupport(){if(!J.window.visualViewport)return;const e=()=>{const e=this._getVisualViewportTopOffset(this.viewportOffset);this.viewportOffset.visualTop!==e&&(this.viewportOffset={...this.viewportOffset,visualTop:e})};this._domEmitter=new(et()),this._domEmitter.listenTo(J.window.visualViewport,"scroll",e),this._domEmitter.listenTo(J.window.visualViewport,"resize",e)}_getVisualViewportTopOffset(e){const t=St().top,o=e.top||0;return t>o?0:o-t}}function $m(e){const{toolbarView:t,options:o}=e;let i=10;return Ct(t.element)&&i--,o.isContextual&&(i-=2),i}class Hm extends Au{body;menuBarView;toolbar;constructor(e){super(e),this.body=new ah(e)}render(){super.render(),this.body.attachToDom()}destroy(){return this.body.detachFromDom(),super.destroy()}}class Wm extends Au{name=null;_editingView;_editableElement;_hasExternalElement;constructor(e,t,o){super(e),this.setTemplate({tag:"div",attributes:{class:["ck","ck-content","ck-editor__editable","ck-rounded-corners"],lang:e.contentLanguage,dir:e.contentLanguageDirection}}),this.set("isFocused",!1),this._editableElement=o,this._hasExternalElement=!!this._editableElement,this._editingView=t}render(){super.render(),this._hasExternalElement?this.template.apply(this.element=this._editableElement):this._editableElement=this.element,this.on("change:isFocused",(()=>this._updateIsFocusedClasses())),this._updateIsFocusedClasses()}destroy(){this._hasExternalElement&&this.template.revert(this._editableElement),super.destroy()}get hasExternalElement(){return this._hasExternalElement}_updateIsFocusedClasses(){const e=this._editingView;function t(t){e.change((o=>{const i=e.document.getRoot(t.name);o.addClass(t.isFocused?"ck-focused":"ck-blurred",i),o.removeClass(t.isFocused?"ck-blurred":"ck-focused",i)}))}e.isRenderingInProgress?function o(i){e.once("change:isRenderingInProgress",((e,n,s)=>{s?o(i):t(i)}))}(this):t(this)}}class Um extends Wm{_options;constructor(e,t,o,i={}){super(e,t,o),this._options=i,this.extendTemplate({attributes:{role:"textbox",class:"ck-editor__editable_inline"}})}render(){super.render();const e=this._editingView;e.change((t=>{const o=e.document.getRoot(this.name);t.setAttribute("aria-label",this.getEditableAriaLabel(),o)}))}getEditableAriaLabel(){const e=this.locale.t,t=this._options.label,o=this._editableElement,i=this.name;if("string"==typeof t)return t;if("object"==typeof t)return t[i];if("function"==typeof t)return t(this);if(o){const e=o.getAttribute("aria-label");if(e)return e}return e("Rich Text Editor. Editing area: %0",i)}}class Km extends Au{children;constructor(e,t={}){super(e);const o=this.bindTemplate;this.set("class",["ck","ck-form__row",...Qt(t.class||[])]),this.children=this.createCollection(),t.children&&t.children.forEach((e=>this.children.add(e))),this.set("_role",null),this.set("_ariaLabelledBy",null),t.labelView&&this.set({_role:"group",_ariaLabelledBy:t.labelView.id}),this.setTemplate({tag:"div",attributes:{class:o.to("class",(e=>e.join(" "))),role:o.to("_role"),"aria-labelledby":o.to("_ariaLabelledBy")},children:this.children})}}class Gm extends Cc{static get pluginName(){return"Notification"}static get isOfficialPlugin(){return!0}init(){this.on("show:warning",((e,t)=>{window.alert(t.message)}),{priority:"lowest"})}showSuccess(e,t={}){this._showNotification({message:e,type:"success",namespace:t.namespace,title:t.title})}showInfo(e,t={}){this._showNotification({message:e,type:"info",namespace:t.namespace,title:t.title})}showWarning(e,t={}){this._showNotification({message:e,type:"warning",namespace:t.namespace,title:t.title})}_showNotification(e){const t=e.namespace?`show:${e.type}:${e.namespace}`:`show:${e.type}`;this.fire(t,{message:e.message,type:e.type,title:e.title||""})}}class Jm extends(Be()){constructor(e,t){super(),t&&No(this,t),e&&this.set(e)}}const Zm=yt("px");class Qm extends fc{positionLimiter;visibleStack;_viewToStack=new Map;_idToStack=new Map;_view=null;_rotatorView=null;_fakePanelsView=null;static get pluginName(){return"ContextualBalloon"}static get isOfficialPlugin(){return!0}constructor(e){super(e),this.positionLimiter=()=>{const e=this.editor.editing.view,t=e.document.selection.editableElement;return t?e.domConverter.mapViewToDom(t.root):null},this.decorate("getPositionOptions"),this.set("visibleView",null),this.set("_numberOfStacks",0),this.set("_singleViewMode",!1)}destroy(){super.destroy(),this._view&&this._view.destroy(),this._rotatorView&&this._rotatorView.destroy(),this._fakePanelsView&&this._fakePanelsView.destroy()}get view(){return this._view||this._createPanelView(),this._view}hasView(e){return Array.from(this._viewToStack.keys()).includes(e)}add(e){if(this._view||this._createPanelView(),this.hasView(e.view))throw new fe("contextualballoon-add-view-exist",[this,e]);const t=e.stackId||"main";if(!this._idToStack.has(t))return this._idToStack.set(t,new Map([[e.view,e]])),this._viewToStack.set(e.view,this._idToStack.get(t)),this._numberOfStacks=this._idToStack.size,void(this._visibleStack&&!e.singleViewMode||this.showStack(t));const o=this._idToStack.get(t);e.singleViewMode&&this.showStack(t),o.set(e.view,e),this._viewToStack.set(e.view,o),o===this._visibleStack&&this._showView(e)}remove(e){if(!this.hasView(e))throw new fe("contextualballoon-remove-view-not-exist",[this,e]);const t=this._viewToStack.get(e);this._singleViewMode&&this.visibleView===e&&(this._singleViewMode=!1),this.visibleView===e&&(1===t.size?this._idToStack.size>1?this._showNextStack():(this.view.hide(),this.visibleView=null,this._rotatorView.hideView()):this._showView(Array.from(t.values())[t.size-2])),1===t.size?(this._idToStack.delete(this._getStackId(t)),this._numberOfStacks=this._idToStack.size):t.delete(e),this._viewToStack.delete(e)}updatePosition(e){e&&(this._visibleStack.get(this.visibleView).position=e),this.view.pin(this.getPositionOptions()),this._fakePanelsView.updatePosition()}getPositionOptions(){let e=Array.from(this._visibleStack.values()).pop().position;return e&&(e.limiter||(e=Object.assign({},e,{limiter:this.positionLimiter})),e=Object.assign({},e,{viewportOffsetConfig:{...this.editor.ui.viewportOffset,top:this.editor.ui.viewportOffset.visualTop}})),e}showStack(e){this.visibleStack=e;const t=this._idToStack.get(e);if(!t)throw new fe("contextualballoon-showstack-stack-not-exist",this);this._visibleStack!==t&&this._showView(Array.from(t.values()).pop())}_createPanelView(){this._view=new dh(this.editor.locale),this.editor.ui.view.body.add(this._view),this._rotatorView=this._createRotatorView(),this._fakePanelsView=this._createFakePanelsView()}get _visibleStack(){return this._viewToStack.get(this.visibleView)}_getStackId(e){return Array.from(this._idToStack.entries()).find((t=>t[1]===e))[0]}_showNextStack(){const e=Array.from(this._idToStack.values());let t=e.indexOf(this._visibleStack)+1;e[t]||(t=0),this.showStack(this._getStackId(e[t]))}_showPrevStack(){const e=Array.from(this._idToStack.values());let t=e.indexOf(this._visibleStack)-1;e[t]||(t=e.length-1),this.showStack(this._getStackId(e[t]))}_createRotatorView(){const e=new Ym(this.editor.locale),t=this.editor.locale.t;return this.view.content.add(e),e.bind("isNavigationVisible").to(this,"_numberOfStacks",this,"_singleViewMode",((e,t)=>!t&&e>1)),e.on("change:isNavigationVisible",(()=>this.updatePosition()),{priority:"low"}),e.bind("counter").to(this,"visibleView",this,"_numberOfStacks",((e,o)=>{if(o<2)return"";const i=Array.from(this._idToStack.values()).indexOf(this._visibleStack)+1;return t("%0 of %1",[i,o])})),e.buttonNextView.on("execute",(()=>{e.focusTracker.isFocused&&this.editor.editing.view.focus(),this._showNextStack()})),e.buttonPrevView.on("execute",(()=>{e.focusTracker.isFocused&&this.editor.editing.view.focus(),this._showPrevStack()})),e}_createFakePanelsView(){const e=new Xm(this.editor.locale,this.view);return e.bind("numberOfPanels").to(this,"_numberOfStacks",this,"_singleViewMode",((e,t)=>!t&&e>=2?Math.min(e-1,2):0)),e.listenTo(this.view,"change:top",(()=>e.updatePosition())),e.listenTo(this.view,"change:left",(()=>e.updatePosition())),this.editor.ui.view.body.add(e),e}_showView({view:e,balloonClassName:t="",withArrow:o=!0,singleViewMode:i=!1}){this.view.class=t,this.view.withArrow=o,this._rotatorView.showView(e),this.visibleView=e,this.view.pin(this.getPositionOptions()),this._fakePanelsView.updatePosition(),i&&(this._singleViewMode=!0)}}class Ym extends Au{focusTracker;buttonPrevView;buttonNextView;content;constructor(e){super(e);const t=e.t,o=this.bindTemplate;this.set("isNavigationVisible",!0),this.focusTracker=new oo,this.buttonPrevView=this._createButtonView(t("Previous"),ed),this.buttonNextView=this._createButtonView(t("Next"),Kc),this.content=this.createCollection(),this.setTemplate({tag:"div",attributes:{class:["ck","ck-balloon-rotator"],"z-index":"-1"},children:[{tag:"div",attributes:{class:["ck-balloon-rotator__navigation",o.to("isNavigationVisible",(e=>e?"":"ck-hidden"))]},children:[this.buttonPrevView,{tag:"span",attributes:{class:["ck-balloon-rotator__counter"]},children:[{text:o.to("counter")}]},this.buttonNextView]},{tag:"div",attributes:{class:"ck-balloon-rotator__content"},children:this.content}]})}render(){super.render(),this.focusTracker.add(this.element)}destroy(){super.destroy(),this.focusTracker.destroy()}showView(e){this.hideView(),this.content.add(e)}hideView(){this.content.clear()}_createButtonView(e,t){const o=new Lu(this.locale);return o.set({label:e,icon:t,tooltip:!0}),o}}class Xm extends Au{content;_balloonPanelView;constructor(e,t){super(e);const o=this.bindTemplate;this.set("top",0),this.set("left",0),this.set("height",0),this.set("width",0),this.set("numberOfPanels",0),this.content=this.createCollection(),this._balloonPanelView=t,this.setTemplate({tag:"div",attributes:{class:["ck-fake-panel",o.to("numberOfPanels",(e=>e?"":"ck-hidden"))],style:{top:o.to("top",Zm),left:o.to("left",Zm),width:o.to("width",Zm),height:o.to("height",Zm)}},children:this.content}),this.on("change:numberOfPanels",((e,t,o,i)=>{o>i?this._addPanels(o-i):this._removePanels(i-o),this.updatePosition()}))}_addPanels(e){for(;e--;){const e=new Au;e.setTemplate({tag:"div"}),this.content.add(e),this.registerChild(e)}}_removePanels(e){for(;e--;){const e=this.content.last;this.content.remove(e),this.deregisterChild(e),e.destroy()}}updatePosition(){if(this.numberOfPanels){const{top:e,left:t}=this._balloonPanelView,{width:o,height:i}=new ut(this._balloonPanelView.element);Object.assign(this,{top:e,left:t,width:o,height:i})}}}class eg extends ih{arrowView;constructor(e){super(e);const t=this.bindTemplate;this.set({withText:!0,role:"menuitem"}),this.arrowView=this._createArrowView(),this.extendTemplate({attributes:{class:["ck-menu-bar__menu__button"],"aria-haspopup":!0,"aria-expanded":this.bindTemplate.to("isOn",(e=>String(e))),"data-cke-tooltip-disabled":t.to("isOn")},on:{mouseenter:t.to("mouseenter")}})}render(){super.render(),this.children.add(this.arrowView)}_createArrowView(){const e=new Nu;return e.content=Uc,e.extendTemplate({attributes:{class:"ck-menu-bar__menu__button__arrow"}}),e}}class tg extends Au{children;constructor(e){super(e);const t=this.bindTemplate;this.set("isVisible",!1),this.set("position","se"),this.children=this.createCollection(),this.setTemplate({tag:"div",attributes:{class:["ck","ck-reset","ck-menu-bar__menu__panel",t.to("position",(e=>`ck-menu-bar__menu__panel_position_${e}`)),t.if("isVisible","ck-hidden",(e=>!e))],tabindex:"-1"},children:this.children,on:{selectstart:t.to((e=>{"input"!==e.target.tagName.toLocaleLowerCase()&&e.preventDefault()}))}})}focus(e=1){this.children.length&&(1===e?this.children.first.focus():this.children.last.focus())}}class og extends Au{buttonView;panelView;focusTracker;keystrokes;constructor(e){super(e);const t=this.bindTemplate;this.buttonView=new eg(e),this.buttonView.delegate("mouseenter").to(this),this.buttonView.bind("isOn","isEnabled").to(this,"isOpen","isEnabled"),this.panelView=new tg(e),this.panelView.bind("isVisible").to(this,"isOpen"),this.keystrokes=new ro,this.focusTracker=new oo,this.set("isOpen",!1),this.set("isEnabled",!0),this.set("panelPosition","w"),this.set("class",void 0),this.set("parentMenuView",null),this.setTemplate({tag:"div",attributes:{class:["ck","ck-menu-bar__menu",t.to("class"),t.if("isEnabled","ck-disabled",(e=>!e)),t.if("parentMenuView","ck-menu-bar__menu_top-level",(e=>!e))]},children:[this.buttonView,this.panelView]})}render(){super.render(),this.focusTracker.add(this.buttonView.element),this.focusTracker.add(this.panelView.element),this.keystrokes.listenTo(this.element),Pm.closeOnEscKey(this),this._closeOnDisabled(),this._repositionPanelOnOpen()}_attachBehaviors(){this.parentMenuView?(Pm.openOnButtonClick(this),Pm.openOnArrowRightKey(this),Pm.closeOnArrowLeftKey(this),Pm.openAndFocusOnEnterKeyPress(this),Pm.closeOnParentClose(this)):(this._propagateArrowKeystrokeEvents(),Pm.openAndFocusPanelOnArrowDownKey(this),Pm.toggleOnButtonClick(this))}_propagateArrowKeystrokeEvents(){this.keystrokes.set("arrowright",((e,t)=>{this.fire("arrowright"),t()})),this.keystrokes.set("arrowleft",((e,t)=>{this.fire("arrowleft"),t()}))}_closeOnDisabled(){this.on("change:isEnabled",((e,t,o)=>{o||(this.isOpen=!1)}))}_repositionPanelOnOpen(){this.on("change:isOpen",((e,t,o)=>{if(!o)return;const i=og._getOptimalPosition({element:this.panelView.element,target:this.buttonView.element,fitInViewport:!0,positions:this._panelPositions});this.panelView.position=i?i.name:this._defaultMenuPositionName}))}focus(){this.buttonView.focus()}get _panelPositions(){const{southEast:e,southWest:t,northEast:o,northWest:i,westSouth:n,eastSouth:s,westNorth:r,eastNorth:a}=Sm;return"ltr"===this.locale.uiLanguageDirection?this.parentMenuView?[s,a,n,r]:[e,t,o,i]:this.parentMenuView?[n,r,s,a]:[t,e,i,o]}get _defaultMenuPositionName(){return"ltr"===this.locale.uiLanguageDirection?this.parentMenuView?"es":"se":this.parentMenuView?"ws":"sw"}static _getOptimalPosition=At}class ig extends zh{constructor(e){super(e),this.role="menu",this.items.on("change",this._setItemsCheckSpace.bind(this))}_setItemsCheckSpace(){const e=Array.from(this.items).some((e=>{const t=ng(e);return t&&t.isToggleable}));this.items.forEach((t=>{const o=ng(t);o&&(o.hasCheckSpace=e)}))}}function ng(e){return e instanceof Nh?e.children.map((e=>function(e){return"object"==typeof e&&"buttonView"in e&&e.buttonView instanceof Lu}(e)?e.buttonView:e)).find((e=>e instanceof ih)):null}class sg extends wh{constructor(e){super(e),this.set({withText:!0,withKeystroke:!0,tooltip:!1,role:"menuitem"}),this.extendTemplate({attributes:{class:["ck-menu-bar__menu__item__button"]}})}}const rg=["mouseenter","arrowleft","arrowright","change:isOpen"];class ag extends Au{children;menus=[];constructor(e){super(e);const t=e.t,o=this.bindTemplate;this.set({isOpen:!1,isFocusBorderEnabled:!1}),this._setupIsOpenUpdater(),this.children=this.createCollection(),this.setTemplate({tag:"div",attributes:{class:["ck","ck-menu-bar",o.if("isFocusBorderEnabled","ck-menu-bar_focus-border-enabled")],"aria-label":t("Editor menu bar"),role:"menubar"},children:this.children})}fillFromConfig(e,t,o=[]){const i=Rm({normalizedConfig:e,locale:this.locale,componentFactory:t,extraItems:o}).items.map((e=>this._createMenu({componentFactory:t,menuDefinition:e})));this.children.addMany(i)}render(){super.render(),Tm.toggleMenusAndFocusItemsOnHover(this),Tm.closeMenusWhenTheBarCloses(this),Tm.closeMenuWhenAnotherOnTheSameLevelOpens(this),Tm.focusCycleMenusOnArrows(this),Tm.closeOnClickOutside(this),Tm.enableFocusHighlightOnInteraction(this)}focus(){this.children.first&&this.children.first.focus()}close(){for(const e of this.children)e.isOpen=!1}disable(){for(const e of this.children)e.isEnabled=!1}enable(){for(const e of this.children)e.isEnabled=!0}registerMenu(e,t=null){t?(e.delegate(...rg).to(t),e.parentMenuView=t):e.delegate(...rg).to(this,(e=>"menu:"+e)),e._attachBehaviors(),this.menus.push(e)}_createMenu({componentFactory:e,menuDefinition:t,parentMenuView:o}){const i=this.locale,n=new og(i);return this.registerMenu(n,o),n.buttonView.set({label:t.label}),n.once("change:isOpen",(()=>{const o=new ig(i);o.ariaLabel=t.label,n.panelView.children.add(o),o.items.addMany(this._createMenuItems({menuDefinition:t,parentMenuView:n,componentFactory:e}))})),n}_createMenuItems({menuDefinition:e,parentMenuView:t,componentFactory:o}){const i=this.locale,n=[];for(const r of e.groups){for(const e of r.items){const r=new Em(i,t);if(s(e))r.children.add(this._createMenu({componentFactory:o,menuDefinition:e,parentMenuView:t}));else{const i=this._createMenuItemContentFromFactory({componentName:e,componentFactory:o,parentMenuView:t});if(!i)continue;r.children.add(i)}n.push(r)}r!==e.groups[e.groups.length-1]&&n.push(new Bh(i))}return n}_createMenuItemContentFromFactory({componentName:e,parentMenuView:t,componentFactory:o}){const i=o.create(e);return i instanceof og||i instanceof sh||i instanceof sg?(this._registerMenuTree(i,t),i.on("execute",(()=>{this.close()})),i):(be("menu-bar-component-unsupported",{componentName:e,componentView:i}),null)}_registerMenuTree(e,t){if(!(e instanceof og))return void e.delegate("mouseenter").to(t);this.registerMenu(e,t);const o=e.panelView.children.filter((e=>e instanceof ig))[0];if(!o)return void e.delegate("mouseenter").to(t);const i=o.items.filter((e=>e instanceof Nh));for(const t of i)this._registerMenuTree(t.children.get(0),e)}_setupIsOpenUpdater(){let e;this.on("menu:change:isOpen",((t,o,i)=>{clearTimeout(e),i?this.isOpen=!0:e=setTimeout((()=>{this.isOpen=Array.from(this.children).some((e=>e.isOpen))}),0)}))}}class lg extends qm{view;constructor(e,t){super(e),this.view=t}init(){const e=this.editor,t=this.view,o=e.editing.view,i=t.editable,n=o.document.getRoot();i.name=n.rootName,t.render();const s=i.element;this.setEditableElement(i.name,s),t.editable.bind("isFocused").to(this.focusTracker),o.attachDomRoot(s),this._initPlaceholder(),this._initToolbar(),this.initMenuBar(this.view.menuBarView),this.fire("ready")}destroy(){super.destroy();const e=this.view,t=this.editor.editing.view;t.getDomRoot(e.editable.name)&&t.detachDomRoot(e.editable.name),e.destroy()}_initToolbar(){const e=this.editor,t=this.view;t.toolbar.fillFromConfig(e.config.get("toolbar"),this.componentFactory),this.addToolbar(t.toolbar)}_initPlaceholder(){const e=this.editor,t=e.editing.view,o=t.document.getRoot(),i=e.config.get("roots")[o.rootName].placeholder;i&&(o.placeholder=i),Yo({view:t,element:o,isDirectHost:!1,keepOnFocus:!0})}}class cg extends Hm{toolbar;editable;menuBarView;constructor(e,t,o={}){super(e),this.toolbar=new Wh(e,{shouldGroupWhenFull:o.shouldToolbarGroupWhenFull}),this.menuBarView=new ag(e),this.editable=new Um(e,t,o.editableElement,{label:o.label}),this.toolbar.extendTemplate({attributes:{class:["ck-reset_all","ck-rounded-corners"],dir:e.uiLanguageDirection}}),this.menuBarView.extendTemplate({attributes:{class:["ck-reset_all","ck-rounded-corners"],dir:e.uiLanguageDirection}})}render(){super.render(),this.registerChild([this.menuBarView,this.toolbar,this.editable])}}class dg extends(Fc(Vc)){static get editorName(){return"DecoupledEditor"}ui;constructor(e,t={}){const{sourceElementOrData:o,editorConfig:i}=function(e,t){return"string"==typeof e||Bc(e)||t&&Object.keys(t).length?{sourceElementOrData:e,editorConfig:t}:{sourceElementOrData:"",editorConfig:e}}(e,t);super(i),Mc(o,this.config);const n=this.config.get("roots").main.element;if(L(n)){if("TEXTAREA"===n.tagName)throw new fe("editor-wrong-element",null);this.sourceElement=n,function(e,t){if(t.ckeditorInstance)throw new fe("editor-source-element-already-used",e);t.ckeditorInstance=e,e.once("destroy",(()=>{delete t.ckeditorInstance}))}(this,n)}this.model.document.createRoot();const s=!this.config.get("toolbar.shouldNotGroupWhenFull"),r=new cg(this.locale,this.editing.view,{editableElement:this.sourceElement,shouldToolbarGroupWhenFull:s,label:this.config.get("roots").main.label});this.ui=new lg(this,r)}destroy(){const e=this.getData();return this.ui.destroy(),super.destroy().then((()=>{this.sourceElement&&this.updateSourceElement(e)}))}static create(e,t={}){return new Promise((o=>{const i=new this(e,t);o(i.initPlugins().then((()=>i.ui.init())).then((()=>i.data.init(i.config.get("roots").main.initialData))).then((()=>i.fire("ready"))).then((()=>i)))}))}}class ug{model;limit;_isLocked;_size;_batch=null;_changeCallback;_selectionChangeCallback;constructor(e,t=20){this.model=e,this._size=0,this.limit=t,this._isLocked=!1,this._changeCallback=(e,t)=>{t.isLocal&&t.isUndoable&&t!==this._batch&&this._reset(!0)},this._selectionChangeCallback=()=>{this._reset()},this.model.document.on("change",this._changeCallback),this.model.document.selection.on("change:range",this._selectionChangeCallback),this.model.document.selection.on("change:attribute",this._selectionChangeCallback)}get batch(){return this._batch||(this._batch=this.model.createBatch({isTyping:!0})),this._batch}get size(){return this._size}input(e){this._size+=e,this._size>=this.limit&&this._reset(!0)}get isLocked(){return this._isLocked}lock(){this._isLocked=!0}unlock(){this._isLocked=!1}destroy(){this.model.document.off("change",this._changeCallback),this.model.document.selection.off("change:range",this._selectionChangeCallback),this.model.document.selection.off("change:attribute",this._selectionChangeCallback)}_reset(e=!1){this.isLocked&&!e||(this._batch=null,this._size=0)}}class hg extends wc{_buffer;constructor(e,t){super(e),this._buffer=new ug(e.model,t),this._isEnabledBasedOnSelection=!1}get buffer(){return this._buffer}destroy(){super.destroy(),this._buffer.destroy()}execute(e={}){const t=this.editor.model,o=t.document,i=e.text||"",n=i.length;let s=o.selection;if(e.selection?s=e.selection:e.range&&(s=t.createSelection(e.range)),!t.canEditAt(s))return;const r=e.resultRange;t.enqueueChange(this._buffer.batch,(e=>{this._buffer.lock();const a=Array.from(o.selection.getAttributes());t.deleteContent(s),i&&t.insertContent(e.createText(i,a),s),r?e.setSelection(r):s.is("documentSelection")||e.setSelection(s),this._buffer.unlock(),this._buffer.input(n)}))}}const mg=["insertText","insertReplacementText"],gg=[...mg,"insertCompositionText"];class pg extends Ln{focusObserver;constructor(e){super(e),this.focusObserver=e.getObserver(Un);const t=Y.isAndroid?gg:mg,o=e.document;o.on("beforeinput",((i,n)=>{if(!this.isEnabled)return;const{data:s,targetRanges:r,inputType:a,domEvent:l,isComposing:c}=n;if(!t.includes(a))return;this.focusObserver.flush();const d=new ue(o,"insertText");o.fire(d,new zn(e,l,{text:s,selection:e.createSelection(r),isComposing:c})),d.stop.called&&i.stop()})),Y.isAndroid||o.on("compositionend",((t,{data:i,domEvent:n})=>{this.isEnabled&&i&&o.fire("insertText",new zn(e,n,{text:i,isComposing:!0}))}),{priority:"low"})}observe(){}stopObserving(){}}class fg extends fc{_typingQueue;static get pluginName(){return"Input"}static get isOfficialPlugin(){return!0}init(){const e=this.editor,t=e.model,o=e.editing.view,i=e.editing.mapper,n=t.document.selection;this._typingQueue=new bg(e),o.addObserver(pg);const s=new hg(e,e.config.get("typing.undoStep")||20);e.commands.add("insertText",s),e.commands.add("input",s),this.listenTo(o.document,"beforeinput",(()=>{this._typingQueue.flush("next beforeinput")}),{priority:"high"}),this.listenTo(o.document,"insertText",((e,r)=>{const{text:a,selection:l}=r;if(o.document.selection.isFake&&l&&o.document.selection.isSimilar(l)&&r.preventDefault(),l&&Array.from(l.getRanges()).some((e=>!e.isCollapsed))&&r.preventDefault(),!s.isEnabled)return void r.preventDefault();let c;l&&(c=Array.from(l.getRanges()).filter((e=>e.root.is("rootElement"))).map((e=>i.toModelRange(e))).map((e=>Ba(e,t.schema)||e))),c&&c.length||(c=Array.from(n.getRanges()));let d=a;if(Y.isAndroid){const e=Array.from(c[0].getItems()).reduce(((e,t)=>e+(t.is("$textProxy")?t.data:"")),"");if(e&&(e.length<=d.length?d.startsWith(e)&&(d=d.substring(e.length),c[0].start=c[0].start.getShiftedBy(e.length)):e.startsWith(d)&&(c[0].start=c[0].start.getShiftedBy(d.length),d="")),0==d.length&&c[0].isCollapsed)return}const u={text:d,selection:t.createSelection(c)};this._typingQueue.push(u,Boolean(r.isComposing)),r.domEvent.defaultPrevented&&this._typingQueue.flush("beforeinput default prevented")})),Y.isAndroid?this.listenTo(o.document,"keydown",((e,i)=>{!n.isCollapsed&&229==i.keyCode&&o.document.isComposing&&wg(t,s)})):this.listenTo(o.document,"compositionstart",(()=>{n.isCollapsed||wg(t,s)}),{priority:"high"}),this.listenTo(o.document,"mutations",((e,{mutations:t})=>{if(this._typingQueue.hasAffectedElements())for(const{node:e}of t){const t=yg(e,i),o=i.toModelElement(t);if(this._typingQueue.isElementAffected(o))return void this._typingQueue.flush("mutations")}})),this.listenTo(o.document,"compositionend",(()=>{this._typingQueue.flush("before composition end")}),{priority:"high"}),this.listenTo(o.document,"compositionend",(()=>{this._typingQueue.flush("after composition end");const e=[];if(this._typingQueue.hasAffectedElements())for(const t of this._typingQueue.flushAffectedElements()){const o=i.toViewElement(t);o&&e.push({type:"children",node:o})}!e.length&&Y.isAndroid||o.document.fire("mutations",{mutations:e})}),{priority:"lowest"})}destroy(){super.destroy(),this._typingQueue.destroy()}}class bg{editor;flushDebounced=zo((()=>this.flush("timeout")),50);_queue=[];_isComposing=!1;_affectedElements=new Set;constructor(e){this.editor=e}destroy(){for(this.flushDebounced.cancel(),this._affectedElements.clear();this._queue.length;)this.shift()}get length(){return this._queue.length}push(e,t){const o={text:e.text};if(e.selection){o.selectionRanges=[];for(const t of e.selection.getRanges())o.selectionRanges.push(Ts.fromRange(t)),this._affectedElements.add(t.start.parent)}this._queue.push(o),this._isComposing||=t,this.flushDebounced()}shift(){const e=this._queue.shift(),t={text:e.text};if(e.selectionRanges){const o=e.selectionRanges.map((e=>function(e){const t=e.toRange();if(e.detach(),"$graveyard"==t.root.rootName)return null;return t}(e))).filter((e=>!!e));o.length&&(t.selection=this.editor.model.createSelection(o))}return t}flush(e){const t=this.editor,o=t.model,i=t.editing.view;if(this.flushDebounced.cancel(),!this._queue.length)return;const n=t.commands.get("insertText").buffer;o.enqueueChange(n.batch,(()=>{for(n.lock();this._queue.length;){const e=this.shift();t.execute("insertText",e)}n.unlock(),this._isComposing||this._affectedElements.clear(),this._isComposing=!1})),i.scrollToTheSelection()}isElementAffected(e){return this._affectedElements.has(e)}hasAffectedElements(){return this._affectedElements.size>0}flushAffectedElements(){const e=Array.from(this._affectedElements);return this._affectedElements.clear(),e}}function wg(e,t){if(!t.isEnabled)return;const o=t.buffer;o.lock(),e.enqueueChange(o.batch,(()=>{e.deleteContent(e.document.selection)})),o.unlock()}function yg(e,t){let o=e.is("$text")?e.parent:e;for(;!t.toModelElement(o);)o=o.parent;return o}class _g extends wc{direction;_buffer;constructor(e,t){super(e),this.direction=t,this._buffer=new ug(e.model,e.config.get("typing.undoStep")),this._isEnabledBasedOnSelection=!1}get buffer(){return this._buffer}execute(e={}){const t=this.editor.model,o=t.document;t.enqueueChange(this._buffer.batch,(i=>{this._buffer.lock();const n=i.createSelection(e.selection||o.selection);if(!t.canEditAt(n))return;const s=e.sequence||1,r=n.isCollapsed;if(n.isCollapsed&&t.modifySelection(n,{direction:this.direction,unit:e.unit,treatEmojiAsSingleUnit:!0}),this._shouldEntireContentBeReplacedWithParagraph(s))return void this._replaceEntireContentWithParagraph(i);if(this._shouldReplaceFirstBlockWithParagraph(n,s))return void this.editor.execute("paragraph",{selection:n});if(n.isCollapsed)return;let a=0;n.getFirstRange().getMinimalFlatRanges().forEach((e=>{a+=He(e.getWalker({singleCharacters:!0,ignoreElementEnd:!0,shallow:!0}))})),t.deleteContent(n,{doNotResetEntireContent:r,direction:this.direction}),this._buffer.input(a),i.setSelection(n),this._buffer.unlock()}))}_shouldEntireContentBeReplacedWithParagraph(e){if(e>1)return!1;const t=this.editor.model,o=t.document.selection,i=t.schema.getLimitElement(o);if(!(o.isCollapsed&&o.containsEntireContent(i)))return!1;if(!t.schema.checkChild(i,"paragraph"))return!1;const n=i.getChild(0);return!n||!n.is("element","paragraph")}_replaceEntireContentWithParagraph(e){const t=this.editor.model,o=t.document.selection,i=t.schema.getLimitElement(o),n=e.createElement("paragraph");e.remove(e.createRangeIn(i)),e.insert(n,i),e.setSelection(n,0)}_shouldReplaceFirstBlockWithParagraph(e,t){const o=this.editor.model;if(t>1||"backward"!=this.direction)return!1;if(!e.isCollapsed)return!1;const i=e.getFirstPosition(),n=o.schema.getLimitElement(i),s=n.getChild(0);return i.parent==s&&(!!e.containsEntireContent(s)&&(!!o.schema.checkChild(n,"paragraph")&&"paragraph"!=s.name))}}const kg="word",vg="selection",Cg="backward",Ag="forward",xg={deleteContent:{unit:vg,direction:Cg},deleteContentBackward:{unit:"codePoint",direction:Cg},deleteWordBackward:{unit:kg,direction:Cg},deleteHardLineBackward:{unit:vg,direction:Cg},deleteSoftLineBackward:{unit:vg,direction:Cg},deleteContentForward:{unit:"character",direction:Ag},deleteWordForward:{unit:kg,direction:Ag},deleteHardLineForward:{unit:vg,direction:Ag},deleteSoftLineForward:{unit:vg,direction:Ag}};class Eg extends Ln{constructor(e){super(e);const t=e.document;let o=0;t.on("keydown",(()=>{o++})),t.on("keyup",(()=>{o=0})),t.on("beforeinput",((i,n)=>{if(!this.isEnabled)return;const{targetRanges:s,domEvent:r,inputType:a}=n,l=xg[a];if(!l)return;const c={direction:l.direction,unit:l.unit,sequence:o};c.unit==vg&&(c.selectionToRemove=e.createSelection(s[0])),"deleteContentBackward"===a&&(Y.isAndroid&&(c.sequence=1),function(e){if(1!=e.length||e[0].isCollapsed)return!1;const t=e[0].getWalker({direction:"backward",singleCharacters:!0,ignoreElementEnd:!0});let o=0;for(const{nextPosition:e,item:i}of t){if(e.parent.is("$text")){const t=e.parent.data,i=e.offset;if(ho(t,i)||mo(t,i)||po(t,i))continue;o++}else(i.is("containerElement")||i.is("emptyElement"))&&o++;if(o>1)return!0}return!1}(s)&&(c.unit=vg,c.selectionToRemove=e.createSelection(s)));const d=new Di(t,"delete",s[0]);t.fire(d,new zn(e,r,c)),d.stop.called&&i.stop()})),Y.isBlink&&function(e){const t=e.view,o=t.document;let i=null,n=!1;function s(e){return e==qt.backspace||e==qt.delete}function r(e){return e==qt.backspace?Cg:Ag}o.on("keydown",((e,{keyCode:t})=>{i=t,n=!1})),o.on("keyup",((a,{keyCode:l,domEvent:c})=>{const d=o.selection,u=e.isEnabled&&l==i&&s(l)&&!d.isCollapsed&&!n;if(i=null,u){const e=d.getFirstRange(),i=new Di(o,"delete",e),n={unit:vg,direction:r(l),selectionToRemove:d};o.fire(i,new zn(t,c,n))}})),o.on("beforeinput",((e,{inputType:t})=>{const o=xg[t];s(i)&&o&&o.direction==r(i)&&(n=!0)}),{priority:"high"}),o.on("beforeinput",((e,{inputType:t,data:o})=>{i==qt.delete&&"insertText"==t&&""==o&&e.stop()}),{priority:"high"})}(this)}observe(){}stopObserving(){}}class Tg extends fc{_undoOnBackspace;static get pluginName(){return"Delete"}static get isOfficialPlugin(){return!0}init(){const e=this.editor,t=e.editing.view,o=t.document,i=e.model.document;t.addObserver(Eg),this._undoOnBackspace=!1;const n=new _g(e,"forward");e.commands.add("deleteForward",n),e.commands.add("forwardDelete",n),e.commands.add("delete",new _g(e,"backward")),this.listenTo(o,"delete",((i,n)=>{o.isComposing||n.preventDefault();const{direction:s,sequence:r,selectionToRemove:a,unit:l}=n,c="forward"===s?"deleteForward":"delete",d={sequence:r};if("selection"==l){const t=Array.from(a.getRanges()).map((t=>e.editing.mapper.toModelRange(t))).map((t=>Ba(t,e.model.schema)||t));d.selection=e.model.createSelection(t)}else d.unit=l;e.execute(c,d),t.scrollToTheSelection()}),{priority:"low"}),this.listenTo(o,"keydown",((n,s)=>{if(o.isComposing||s.keyCode!=qt.backspace||!i.selection.isCollapsed)return;const r=e.model.schema.getLimitElement(i.selection),a=e.model.createPositionAt(r,0);if(a.isTouching(i.selection.getFirstPosition())){s.preventDefault();const i=e.model.schema.getNearestSelectionRange(a,"forward");if(!i)return;const n=t.createSelection(e.editing.mapper.toViewRange(i)),r=n.getFirstRange(),l=new Di(document,"delete",r),c={unit:"selection",direction:"backward",selectionToRemove:n};o.fire(l,new zn(t,s.domEvent,c))}})),this.editor.plugins.has("UndoEditing")&&(this.listenTo(o,"delete",((t,o)=>{this._undoOnBackspace&&"backward"==o.direction&&1==o.sequence&&"codePoint"==o.unit&&(this._undoOnBackspace=!1,e.execute("undo"),o.preventDefault(),t.stop())}),{context:"$capture"}),this.listenTo(i,"change",(()=>{this._undoOnBackspace=!1})))}requestUndoOnBackspace(){this.editor.plugins.has("UndoEditing")&&(this._undoOnBackspace=!0)}}class Pg extends fc{static get requires(){return[fg,Tg]}static get pluginName(){return"Typing"}static get isOfficialPlugin(){return!0}}function Sg(e,t){let o=e.start;return{text:Array.from(e.getWalker({ignoreElementEnd:!1})).reduce(((e,{item:i})=>i.is("$text")||i.is("$textProxy")?e+i.data:(o=t.createPositionAfter(i),"")),""),range:t.createRange(o,e.end)}}class Ig extends(Be()){model;testCallback;_hasMatch;constructor(e,t){super(),this.model=e,this.testCallback=t,this._hasMatch=!1,this.set("isEnabled",!0),this.on("change:isEnabled",(()=>{this.isEnabled?this._startListening():(this.stopListening(e.document.selection),this.stopListening(e.document))})),this._startListening()}get hasMatch(){return this._hasMatch}_startListening(){const e=this.model.document;this.listenTo(e.selection,"change:range",((t,{directChange:o})=>{o&&(e.selection.isCollapsed?this._evaluateTextBeforeSelection("selection"):this.hasMatch&&(this.fire("unmatched"),this._hasMatch=!1))})),this.listenTo(e,"change:data",((e,t)=>{!t.isUndo&&t.isLocal&&this._evaluateTextBeforeSelection("data",{batch:t})}))}_evaluateTextBeforeSelection(e,t={}){const o=this.model,i=o.document.selection,n=o.createRange(o.createPositionAt(i.focus.parent,0),i.focus),{text:s,range:r}=Sg(n,o),a=this.testCallback(s);if(!a&&this.hasMatch&&this.fire("unmatched"),this._hasMatch=!!a,a){const o=Object.assign(t,{text:s,range:r});"object"==typeof a&&Object.assign(o,a),this.fire(`matched:${e}`,o)}}}class Rg extends fc{attributes;_overrideUid;_isNextGravityRestorationSkipped=!1;static get pluginName(){return"TwoStepCaretMovement"}static get isOfficialPlugin(){return!0}constructor(e){super(e),this.attributes=new Set,this._overrideUid=null}init(){const e=this.editor,t=e.model,o=e.editing.view,i=e.locale,n=t.document.selection;this.listenTo(o.document,"arrowKey",((e,t)=>{if(!n.isCollapsed)return;if(t.shiftKey||t.altKey||t.ctrlKey)return;const o=t.keyCode==qt.arrowright,s=t.keyCode==qt.arrowleft;if(!o&&!s)return;const r=i.contentLanguageDirection;let a=!1;a="ltr"===r&&o||"rtl"===r&&s?this._handleForwardMovement(t):this._handleBackwardMovement(t),!0===a&&e.stop()}),{context:"$text",priority:"highest"}),this.listenTo(n,"change:range",((e,t)=>{this._isNextGravityRestorationSkipped?this._isNextGravityRestorationSkipped=!1:this._isGravityOverridden&&(!t.directChange&&Ng(n.getFirstPosition(),this.attributes)||this._restoreGravity())})),this._enableClickingAfterNode(),this._enableInsertContentSelectionAttributesFixer(),this._handleDeleteContentAfterNode()}registerAttribute(e){this.attributes.add(e)}_handleForwardMovement(e){const t=this.attributes,o=this.editor.model,i=o.document.selection,n=i.getFirstPosition();return!this._isGravityOverridden&&((!n.isAtStart||!Og(i,t))&&(!!Ng(n,t)&&(e&&Fg(e),Og(i,t)&&Ng(n,t,!0)?Dg(o,t):this._overrideGravity(),!0)))}_handleBackwardMovement(e){const t=this.attributes,o=this.editor.model,i=o.document.selection,n=i.getFirstPosition();return this._isGravityOverridden?(e&&Fg(e),this._restoreGravity(),Ng(n,t,!0)?Dg(o,t):Vg(o,t,n),!0):n.isAtStart?!!Og(i,t)&&(e&&Fg(e),Vg(o,t,n),!0):!Og(i,t)&&Ng(n,t,!0)?(e&&Fg(e),Vg(o,t,n),!0):!!Mg(n,t)&&(n.isAtEnd&&!Og(i,t)&&Ng(n,t)?(e&&Fg(e),Vg(o,t,n),!0):(this._isNextGravityRestorationSkipped=!0,this._overrideGravity(),!1))}_enableClickingAfterNode(){const e=this.editor,t=e.model,o=t.document.selection,i=e.editing.view.document;e.editing.view.addObserver(il),e.editing.view.addObserver(nl);let n=!1,s=!1;this.listenTo(i,"touchstart",(()=>{s=!1,n=!0})),this.listenTo(i,"mousedown",(()=>{s=!0})),this.listenTo(i,"selectionChange",(()=>{const e=this.attributes;if(!s&&!n)return;if(s=!1,n=!1,!o.isCollapsed)return;if(!Og(o,e))return;const i=o.getFirstPosition();Ng(i,e)&&(i.isAtStart||Ng(i,e,!0)?Dg(t,e):this._isGravityOverridden||this._overrideGravity())}))}_enableInsertContentSelectionAttributesFixer(){const e=this.editor.model,t=e.document.selection,o=this.attributes;this.listenTo(e,"insertContent",(()=>{const i=t.getFirstPosition();Og(t,o)&&Ng(i,o)&&Dg(e,o)}),{priority:"low"})}_handleDeleteContentAfterNode(){const e=this.editor,t=e.model,o=t.document.selection,i=e.editing.view;let n=!1,s=!1;this.listenTo(i.document,"delete",((e,t)=>{n="backward"===t.direction}),{priority:"high"}),this.listenTo(t,"deleteContent",(()=>{if(!n)return;const e=o.getFirstPosition();s=Og(o,this.attributes)&&!Mg(e,this.attributes)}),{priority:"high"}),this.listenTo(t,"deleteContent",(()=>{n&&(n=!1,s||e.model.enqueueChange((()=>{const e=o.getFirstPosition();Og(o,this.attributes)&&Ng(e,this.attributes)&&(e.isAtStart||Ng(e,this.attributes,!0)?Dg(t,this.attributes):this._isGravityOverridden||this._overrideGravity())})))}),{priority:"low"})}get _isGravityOverridden(){return!!this._overrideUid}_overrideGravity(){this._overrideUid=this.editor.model.change((e=>e.overrideSelectionGravity()))}_restoreGravity(){this.editor.model.change((e=>{e.restoreSelectionGravity(this._overrideUid),this._overrideUid=null}))}}function Og(e,t){for(const o of t)if(e.hasAttribute(o))return!0;return!1}function Vg(e,t,o){const i=o.nodeBefore;e.change((o=>{if(i){const t=[],n=e.schema.isObject(i)&&e.schema.isInline(i);for(const[o,s]of i.getAttributes())!e.schema.checkAttribute("$text",o)||n&&!1===e.schema.getAttributeProperties(o).copyFromObject||t.push([o,s]);o.setSelectionAttribute(t)}else o.removeSelectionAttribute(t)}))}function Dg(e,t){e.change((e=>{e.removeSelectionAttribute(t)}))}function Fg(e){e.preventDefault()}function Mg(e,t){return Ng(e.getShiftedBy(-1),t)}function Ng(e,t,o=!1){const{nodeBefore:i,nodeAfter:n}=e;for(const e of t){const t=i?i.getAttribute(e):void 0,s=n?n.getAttribute(e):void 0;if((!o||void 0!==t&&void 0!==s)&&s!==t)return!0}return!1}Bg('"'),Bg("'"),Bg("'"),Bg('"'),Bg('"'),Bg("'");function Bg(e){return new RegExp(`(^|\\s)(${e})([^${e}]*)(${e})$`)}function Lg(e,t,o,i){return i.createRange(zg(e,t,o,!0,i),zg(e,t,o,!1,i))}function zg(e,t,o,i,n){let s=e.textNode||(i?e.nodeBefore:e.nodeAfter),r=null;for(;s&&s.getAttribute(t)==o;)r=s,s=i?s.previousSibling:s.nextSibling;return r?n.createPositionAt(r,i?"before":"after"):e}function jg(e,t,o,i){const n=e.editing.view,s=new Set;n.document.registerPostFixer((n=>{const r=e.model.document.selection;let a=!1;if(r.hasAttribute(t)){const l=Lg(r.getFirstPosition(),t,r.getAttribute(t),e.model),c=e.editing.mapper.toViewRange(l);for(const e of c.getItems())e.is("element",o)&&!e.hasClass(i)&&(n.addClass(i,e),s.add(e),a=!0)}return a})),e.conversion.for("editingDowncast").add((e=>{function t(){n.change((e=>{for(const t of s.values())e.removeClass(i,t),s.delete(t)}))}e.on("insert",t,{priority:"highest"}),e.on("remove",t,{priority:"highest"}),e.on("attribute",t,{priority:"highest"}),e.on("selection",t,{priority:"highest"})}))}function*qg(e,t){for(const o of t)o&&e.getAttributeProperties(o[0]).copyOnEnter&&(yield o)}class $g extends wc{execute(){this.editor.model.change((e=>{this.enterBlock(e),this.fire("afterExecute",{writer:e})}))}enterBlock(e){const t=this.editor.model,o=t.document.selection,i=t.schema,n=o.isCollapsed,s=o.getFirstRange(),r=s.start.parent,a=s.end.parent;if(i.isLimit(r)||i.isLimit(a))return n||r!=a||t.deleteContent(o),!1;if(n){const t=qg(e.model.schema,o.getAttributes());return Hg(e,s.start),e.setSelectionAttribute(t),!0}{const i=!(s.start.isAtStart&&s.end.isAtEnd),n=r==a;if(t.deleteContent(o,{leaveUnmerged:i}),i){if(n)return Hg(e,o.focus),!0;e.setSelection(a,0)}}return!1}}function Hg(e,t){e.split(t),e.setSelection(t.parent.nextSibling,0)}const Wg={insertParagraph:{isSoft:!1},insertLineBreak:{isSoft:!0}};class Ug extends Ln{constructor(e){super(e);const t=this.document;let o=!1;t.on("keydown",((e,t)=>{o=t.shiftKey})),t.on("beforeinput",((i,n)=>{if(!this.isEnabled)return;let s=n.inputType;Y.isSafari&&o&&"insertParagraph"==s&&(s="insertLineBreak");const r=n.domEvent,a=Wg[s];if(!a)return;const l=new Di(t,"enter",n.targetRanges[0]);t.fire(l,new zn(e,r,{isSoft:a.isSoft})),l.stop.called&&i.stop()}))}observe(){}stopObserving(){}}class Kg extends fc{static get pluginName(){return"Enter"}static get isOfficialPlugin(){return!0}init(){const e=this.editor,t=e.editing.view,o=t.document,i=this.editor.t;t.addObserver(Ug),e.commands.add("enter",new $g(e)),this.listenTo(o,"enter",((i,n)=>{o.isComposing||n.preventDefault(),n.isSoft||(e.execute("enter"),t.scrollToTheSelection())}),{priority:"low"}),e.accessibility.addKeystrokeInfos({keystrokes:[{label:i("Insert a hard break (a new paragraph)"),keystroke:"Enter"}]})}}class Gg extends wc{execute(){const e=this.editor.model,t=e.document;e.change((o=>{!function(e,t,o){const i=o.isCollapsed,n=o.getFirstRange(),s=n.start.parent,r=n.end.parent,a=s==r;if(i){const i=qg(e.schema,o.getAttributes());Jg(e,t,n.end),t.removeSelectionAttribute(o.getAttributeKeys()),t.setSelectionAttribute(i)}else{const i=!(n.start.isAtStart&&n.end.isAtEnd);e.deleteContent(o,{leaveUnmerged:i}),a?Jg(e,t,o.focus):i&&t.setSelection(r,0)}}(e,o,t.selection),this.fire("afterExecute",{writer:o})}))}refresh(){const e=this.editor.model,t=e.document;this.isEnabled=function(e,t){if(t.rangeCount>1)return!1;const o=t.anchor;if(!o||!e.checkChild(o,"softBreak"))return!1;const i=t.getFirstRange(),n=i.start.parent,s=i.end.parent;if((Zg(n,e)||Zg(s,e))&&n!==s)return!1;return!0}(e.schema,t.selection)}}function Jg(e,t,o){const i=t.createElement("softBreak");e.insertContent(i,o),t.setSelection(i,"after")}function Zg(e,t){return!e.is("rootElement")&&(t.isLimit(e)||Zg(e.parent,t))}class Qg extends fc{static get pluginName(){return"ShiftEnter"}static get isOfficialPlugin(){return!0}init(){const e=this.editor,t=e.model.schema,o=e.conversion,i=e.editing.view,n=i.document,s=this.editor.t;t.register("softBreak",{allowWhere:"$text",isInline:!0}),o.for("upcast").elementToElement({model:"softBreak",view:"br"}),o.for("downcast").elementToElement({model:"softBreak",view:(e,{writer:t})=>t.createEmptyElement("br")}),i.addObserver(Ug),e.commands.add("shiftEnter",new Gg(e)),this.listenTo(n,"enter",((t,o)=>{n.isComposing||o.preventDefault(),o.isSoft&&(e.execute("shiftEnter"),i.scrollToTheSelection())}),{priority:"low"}),e.accessibility.addKeystrokeInfos({keystrokes:[{label:s("Insert a soft break (a <br> element)"),keystroke:"Shift+Enter"}]})}}class Yg extends(xe()){_stack=[];add(e,t){const o=this._stack,i=o[0];this._insertDescriptor(e);const n=o[0];i===n||Xg(i,n)||this.fire("change:top",{oldDescriptor:i,newDescriptor:n,writer:t})}remove(e,t){const o=this._stack,i=o[0];this._removeDescriptor(e);const n=o[0];i===n||Xg(i,n)||this.fire("change:top",{oldDescriptor:i,newDescriptor:n,writer:t})}_insertDescriptor(e){const t=this._stack,o=t.findIndex((t=>t.id===e.id));if(Xg(e,t[o]))return;o>-1&&t.splice(o,1);let i=0;for(;t[i]&&ep(t[i],e);)i++;t.splice(i,0,e)}_removeDescriptor(e){const t=this._stack,o=t.findIndex((t=>t.id===e));o>-1&&t.splice(o,1)}}function Xg(e,t){return e&&t&&e.priority==t.priority&&tp(e.classes)==tp(t.classes)}function ep(e,t){return e.priority>t.priority||!(e.prioritytp(t.classes)}function tp(e){return Array.isArray(e)?e.sort().join(","):e}const op="ck-widget_selected";function ip(e){return!!e.is("element")&&!!e.getCustomProperty("widget")}function np(e,t,o={}){if(!e.is("containerElement"))throw new fe("widget-to-widget-wrong-element-type",null,{element:e});return t.setAttribute("contenteditable","false",e),t.addClass("ck-widget",e),t.setCustomProperty("widget",!0,e),e.getFillerOffset=dp,t.setCustomProperty("widgetLabel",[],e),o.label&&function(e,t){const o=e.getCustomProperty("widgetLabel");o.push(t)}(e,o.label),o.hasSelectionHandle&&function(e,t){const o=t.createUIElement("div",{class:"ck ck-widget__selection-handle"},(function(e){const t=this.toDomElement(e),o=new Nu;return o.set("content",Wc),o.render(),t.appendChild(o.element),t}));t.insert(t.createPositionAt(e,0),o),t.addClass(["ck-widget_with-selection-handle"],e)}(e,t),ap(e,t),e}function sp(e,t,o){if(t.classes&&o.addClass(Qt(t.classes),e),t.attributes)for(const i in t.attributes)o.setAttribute(i,t.attributes[i],e)}function rp(e,t,o){if(t.classes&&o.removeClass(Qt(t.classes),e),t.attributes)for(const i in t.attributes)o.removeAttribute(i,e)}function ap(e,t,o=sp,i=rp){const n=new Yg;n.on("change:top",((t,n)=>{n.oldDescriptor&&i(e,n.oldDescriptor,n.writer),n.newDescriptor&&o(e,n.newDescriptor,n.writer)}));t.setCustomProperty("addHighlight",((e,t,o)=>n.add(t,o)),e),t.setCustomProperty("removeHighlight",((e,t,o)=>n.remove(t,o)),e)}function lp(e,t,o={}){return t.addClass(["ck-editor__editable","ck-editor__nested-editable"],e),!1!==o.withAriaRole&&t.setAttribute("role","textbox",e),e.isReadOnly||t.setAttribute("tabindex","-1",e),o.label&&t.setAttribute("aria-label",o.label,e),t.setAttribute("contenteditable",e.isReadOnly?"false":"true",e),e.on("change:isReadOnly",((o,i,n)=>{t.setAttribute("contenteditable",n?"false":"true",e),n?t.removeAttribute("tabindex",e):t.setAttribute("tabindex","-1",e)})),e.on("change:isFocused",((o,i,n)=>{n?t.addClass("ck-editor__nested-editable_focused",e):t.removeClass("ck-editor__nested-editable_focused",e)})),ap(e,t),e}function cp(e,t){const o=e.getSelectedElement();if(o){const i=gp(e);if(i)return t.createRange(t.createPositionAt(o,i))}return t.schema.findOptimalInsertionRange(e)}function dp(){return null}function up(e){const t=e=>{const{width:t,paddingLeft:o,paddingRight:i}=e.ownerDocument.defaultView.getComputedStyle(e);return parseFloat(t)-(parseFloat(o)||0)-(parseFloat(i)||0)},o=e.parentElement;if(!o)return 0;let i=t(o);let n=0,s=o;for(;isNaN(i);){if(s=s.parentElement,++n>5)return 0;i=t(s)}return i}const hp="widget-type-around";function mp(e,t,o){return!!e&&ip(e)&&!o.isInline(t)}function gp(e){return e.getAttribute(hp)}const pp=["before","after"],fp=(new DOMParser).parseFromString('',"image/svg+xml").firstChild,bp="ck-widget__type-around_disabled";class wp extends fc{_currentFakeCaretModelElement=null;static get pluginName(){return"WidgetTypeAround"}static get isOfficialPlugin(){return!0}static get requires(){return[Kg,Tg]}init(){const e=this.editor,t=e.editing.view;this.on("change:isEnabled",((o,i,n)=>{t.change((e=>{for(const o of t.document.roots)n?e.removeClass(bp,o):e.addClass(bp,o)})),n||e.model.change((e=>{e.removeSelectionAttribute(hp)}))})),this._enableTypeAroundUIInjection(),this._enableInsertingParagraphsOnButtonClick(),this._enableInsertingParagraphsOnEnterKeypress(),this._enableInsertingParagraphsOnTypingKeystroke(),this._enableTypeAroundFakeCaretActivationUsingKeyboardArrows(),this._enableDeleteIntegration(),this._enableInsertContentIntegration(),this._enableInsertObjectIntegration(),this._enableDeleteContentIntegration()}destroy(){super.destroy(),this._currentFakeCaretModelElement=null}_insertParagraph(e,t){const o=this.editor,i=o.editing.view,n=o.model.schema.getAttributesWithProperty(e,"copyOnReplace",!0);o.execute("insertParagraph",{position:o.model.createPositionAt(e,t),attributes:n}),i.focus(),i.scrollToTheSelection()}_listenToIfEnabled(e,t,o,i){this.listenTo(e,t,((...e)=>{this.isEnabled&&o(...e)}),i)}_insertParagraphAccordingToFakeCaretPosition(){const e=this.editor.model.document.selection,t=gp(e);if(!t)return!1;const o=e.getSelectedElement();return this._insertParagraph(o,t),!0}_enableTypeAroundUIInjection(){const e=this.editor,t=e.model.schema,o=e.locale.t,i={before:o("Insert paragraph before block"),after:o("Insert paragraph after block")};e.editing.downcastDispatcher.on("insert",((e,n,s)=>{const r=s.mapper.toViewElement(n.item);if(r&&mp(r,n.item,t)){!function(e,t,o){const i=e.createUIElement("div",{class:"ck ck-reset_all ck-widget__type-around"},(function(e){const o=this.toDomElement(e);return function(e,t){for(const o of pp){const i=new ou({tag:"div",attributes:{class:["ck","ck-widget__type-around__button",`ck-widget__type-around__button_${o}`],title:t[o],"aria-hidden":"true"},children:[e.ownerDocument.importNode(fp,!0)]});e.appendChild(i.render())}}(o,t),function(e){const t=new ou({tag:"div",attributes:{class:["ck","ck-widget__type-around__fake-caret"]}});e.appendChild(t.render())}(o),o}));e.insert(e.createPositionAt(o,"end"),i)}(s.writer,i,r);r.getCustomProperty("widgetLabel").push((()=>this.isEnabled?o("Press Enter to type after or press Shift + Enter to type before the widget"):""))}}),{priority:"low"})}_enableTypeAroundFakeCaretActivationUsingKeyboardArrows(){const e=this.editor,t=e.model,o=t.document.selection,i=t.schema,n=e.editing.view;function s(e){return`ck-widget_type-around_show-fake-caret_${e}`}this._listenToIfEnabled(n.document,"arrowKey",((e,t)=>{this._handleArrowKeyPress(e,t)}),{context:[ip,"$text"],priority:"high"}),this._listenToIfEnabled(o,"change:range",((t,o)=>{o.directChange&&e.model.change((e=>{e.removeSelectionAttribute(hp)}))})),this._listenToIfEnabled(t.document,"change:data",(()=>{const t=o.getSelectedElement();if(t){if(mp(e.editing.mapper.toViewElement(t),t,i))return}e.model.change((e=>{e.removeSelectionAttribute(hp)}))})),this._listenToIfEnabled(e.editing.downcastDispatcher,"selection",((e,t,o)=>{const n=o.writer;if(this._currentFakeCaretModelElement){const e=o.mapper.toViewElement(this._currentFakeCaretModelElement);e&&(n.removeClass(pp.map(s),e),this._currentFakeCaretModelElement=null)}const r=t.selection.getSelectedElement();if(!r)return;const a=o.mapper.toViewElement(r);if(!mp(a,r,i))return;const l=gp(t.selection);l&&(n.addClass(s(l),a),this._currentFakeCaretModelElement=r)})),this._listenToIfEnabled(e.ui.focusTracker,"change:isFocused",((t,o,i)=>{i||e.model.change((e=>{e.removeSelectionAttribute(hp)}))}))}_handleArrowKeyPress(e,t){const o=this.editor,i=o.model,n=i.document.selection,s=i.schema,r=o.editing.view;if(t.shiftKey)return;const a=function(e,t){const o=Kt(e,t);return"down"===o||"right"===o}(t.keyCode,o.locale.contentLanguageDirection),l=r.document.selection.getSelectedElement();let c;mp(l,o.editing.mapper.toModelElement(l),s)?c=this._handleArrowKeyPressOnSelectedWidget(a):n.isCollapsed?c=this._handleArrowKeyPressWhenSelectionNextToAWidget(a):t.shiftKey||(c=this._handleArrowKeyPressWhenNonCollapsedSelection(a)),c&&(t.preventDefault(),e.stop())}_handleArrowKeyPressOnSelectedWidget(e){const t=this.editor.model,o=gp(t.document.selection);return t.change((t=>{if(!o)return t.setSelectionAttribute(hp,e?"after":"before"),!0;if(!(o===(e?"after":"before")))return t.removeSelectionAttribute(hp),!0;return!1}))}_handleArrowKeyPressWhenSelectionNextToAWidget(e){const t=this.editor,o=t.model,i=o.schema,n=t.plugins.get("Widget"),s=n._getObjectElementNextToSelection(e);return!!mp(t.editing.mapper.toViewElement(s),s,i)&&(o.change((t=>{n._setSelectionOverElement(s),t.setSelectionAttribute(hp,e?"before":"after")})),!0)}_handleArrowKeyPressWhenNonCollapsedSelection(e){const t=this.editor,o=t.model,i=o.schema,n=t.editing.mapper,s=o.document.selection,r=e?s.getLastPosition().nodeBefore:s.getFirstPosition().nodeAfter;return!!mp(n.toViewElement(r),r,i)&&(o.change((t=>{t.setSelection(r,"on"),t.setSelectionAttribute(hp,e?"after":"before")})),!0)}_enableInsertingParagraphsOnButtonClick(){const e=this.editor,t=e.editing.view;this._listenToIfEnabled(t.document,"mousedown",((o,i)=>{const n=i.domTarget.closest(".ck-widget__type-around__button");if(!n)return;const s=function(e){return e.classList.contains("ck-widget__type-around__button_before")?"before":"after"}(n),r=function(e,t){const o=e.closest(".ck-widget");return t.mapDomToView(o)}(n,t.domConverter),a=e.editing.mapper.toModelElement(r);this._insertParagraph(a,s),i.preventDefault(),o.stop()}))}_enableInsertingParagraphsOnEnterKeypress(){const e=this.editor,t=e.model.document.selection,o=e.editing.view;this._listenToIfEnabled(o.document,"enter",((o,i)=>{if("atTarget"!=o.eventPhase)return;const n=t.getSelectedElement(),s=e.editing.mapper.toViewElement(n),r=e.model.schema;let a;this._insertParagraphAccordingToFakeCaretPosition()?a=!0:mp(s,n,r)&&(this._insertParagraph(n,i.isSoft?"before":"after"),a=!0),a&&(i.preventDefault(),o.stop())}),{context:ip})}_enableInsertingParagraphsOnTypingKeystroke(){const e=this.editor.editing.view.document;this._listenToIfEnabled(e,"insertText",((t,o)=>{this._insertParagraphAccordingToFakeCaretPosition()&&(o.selection=e.selection)}),{priority:"high"}),Y.isAndroid?this._listenToIfEnabled(e,"keydown",((e,t)=>{229==t.keyCode&&this._insertParagraphAccordingToFakeCaretPosition()})):this._listenToIfEnabled(e,"compositionstart",(()=>{this._insertParagraphAccordingToFakeCaretPosition()}),{priority:"highest"})}_enableDeleteIntegration(){const e=this.editor,t=e.editing.view,o=e.model,i=o.schema;this._listenToIfEnabled(t.document,"delete",((t,n)=>{if("atTarget"!=t.eventPhase)return;const s=gp(o.document.selection);if(!s)return;const r=n.direction,a=o.document.selection.getSelectedElement(),l="forward"==r;if("before"===s===l)e.execute("delete",{selection:o.createSelection(a,"on")});else{const t=i.getNearestSelectionRange(o.createPositionAt(a,s),r);if(t)if(t.isCollapsed){const n=o.createSelection(t.start);if(o.modifySelection(n,{direction:r}),n.focus.isEqual(t.start)){const e=function(e,t){let o=t;for(const i of t.getAncestors({parentFirst:!0})){if(i.childCount>1||e.isLimit(i))break;o=i}return o}(i,t.start.parent);o.deleteContent(o.createSelection(e,"on"),{doNotAutoparagraph:!0})}else o.change((o=>{o.setSelection(t),e.execute(l?"deleteForward":"delete")}))}else o.change((o=>{o.setSelection(t),e.execute(l?"deleteForward":"delete")}))}n.preventDefault(),t.stop()}),{context:ip})}_enableInsertContentIntegration(){const e=this.editor,t=this.editor.model,o=t.document.selection;this._listenToIfEnabled(e.model,"insertContent",((e,[i,n])=>{if(n&&!n.is("documentSelection"))return;const s=gp(o);return s?(e.stop(),t.change((e=>{const n=o.getSelectedElement(),r=t.createPositionAt(n,s),a=e.createSelection(r),l=t.insertContent(i,a);return e.setSelection(a),l}))):void 0}),{priority:"high"})}_enableInsertObjectIntegration(){const e=this.editor,t=this.editor.model.document.selection;this._listenToIfEnabled(e.model,"insertObject",((e,o)=>{const[,i,n={}]=o;if(i&&!i.is("documentSelection"))return;const s=gp(t);s&&(n.findOptimalPosition=s,o[3]=n)}),{priority:"high"})}_enableDeleteContentIntegration(){const e=this.editor,t=this.editor.model.document.selection;this._listenToIfEnabled(e.model,"deleteContent",((e,[o])=>{if(o&&!o.is("documentSelection"))return;gp(t)&&e.stop()}),{priority:"high"})}}function yp(e){const t=e.model;return(o,i)=>{const n=i.keyCode==qt.arrowup,s=i.keyCode==qt.arrowdown,r=i.shiftKey,a=t.document.selection;if(!n&&!s)return;const l=s,c=function(e,t,o){const i=e.model;if(o){const e=t.focus,o=_p(i,e,"forward");if(!o)return;const n=i.createRange(e,o),s=kp(i.schema,n,"backward");if(s)return i.createRange(e,s)}else{const e=t.focus,o=_p(i,e,"backward");if(!o)return;const n=i.createRange(o,e),s=kp(i.schema,n,"forward");if(s)return i.createRange(s,e)}}(e,a,l);if(c){if(c.isCollapsed){if(a.isCollapsed)return;if(r)return}(c.isCollapsed||function(e,t,o){const i=e.model,n=e.view.domConverter;if(o){const e=i.createSelection(t.start);i.modifySelection(e),e.focus.isAtEnd||t.start.isEqual(e.focus)||(t=i.createRange(e.focus,t.end))}const s=e.mapper.toViewRange(t),r=n.viewRangeToDom(s),a=ut.getDomRangeRects(r);let l;for(const e of a)if(void 0!==l){if(Math.round(e.top)>=l)return!1;l=Math.max(l,Math.round(e.bottom))}else l=Math.round(e.bottom);return!0}(e,c,l))&&(t.change((e=>{const o=l?c.end:c.start;if(r){const i=t.createSelection(a.anchor);i.setFocus(o),e.setSelection(i)}else e.setSelection(o)})),o.stop(),i.preventDefault(),i.stopPropagation())}}}function _p(e,t,o){const i=e.schema,n=e.createRangeIn(t.root),s="forward"==o?"elementStart":"elementEnd";for(const{previousPosition:e,item:r,type:a}of n.getWalker({startPosition:t,direction:o})){if(i.isLimit(r)&&!i.isInline(r))return e;if(a==s&&i.isBlock(r))return null}return null}function kp(e,t,o){const i="backward"==o?t.end:t.start;if(e.checkChild(i,"$text"))return i;for(const{nextPosition:i}of t.getWalker({direction:o}))if(e.checkChild(i,"$text"))return i}class vp extends fc{_previouslySelected=new Set;static get pluginName(){return"Widget"}static get isOfficialPlugin(){return!0}static get requires(){return[wp,Tg]}init(){const e=this.editor,t=e.editing.view,o=t.document,i=e.t;this.editor.editing.downcastDispatcher.on("selection",((t,o,i)=>{const n=i.writer,s=o.selection;if(s.isCollapsed)return;const r=s.getSelectedElement();if(!r)return;const a=e.editing.mapper.toViewElement(r);var l;ip(a)&&(i.consumable.consume(s,"selection")&&n.setSelection(n.createRangeOn(a),{fake:!0,label:(l=a,l.getCustomProperty("widgetLabel").reduce(((e,t)=>"function"==typeof t?e?e+". "+t():t():e?e+". "+t:t),""))}))})),this.editor.editing.downcastDispatcher.on("selection",((e,t,o)=>{this._clearPreviouslySelectedWidgets(o.writer);const i=o.writer,n=i.document.selection;let s=null;for(const e of n.getRanges())for(const t of e){const e=t.item;ip(e)&&!Cp(e,s)&&(i.addClass(op,e),this._previouslySelected.add(e),s=e)}}),{priority:"low"}),t.addObserver(il),t.addObserver(sl),this.listenTo(o,"mousedown",((...e)=>this._onMousedown(...e))),this.listenTo(o,"pointerdown",((...e)=>this._onPointerdown(...e))),this.listenTo(o,"arrowKey",((...e)=>{this._handleSelectionChangeOnArrowKeyPress(...e)}),{context:[ip,"$text"]}),this.listenTo(o,"arrowKey",((...e)=>{this._preventDefaultOnArrowKeyPress(...e)}),{context:"$root"}),this.listenTo(o,"arrowKey",yp(this.editor.editing),{context:"$text"}),this.listenTo(o,"delete",((e,t)=>{this._handleDelete("forward"==t.direction)&&(t.preventDefault(),e.stop())}),{context:"$root"}),this.listenTo(o,"tab",((e,o)=>{this._selectNextEditable(o.shiftKey?"backward":"forward")&&(t.scrollToTheSelection(),o.preventDefault(),e.stop())}),{context:e=>ip(e)||e.is("editableElement"),priority:"low"}),this.listenTo(o,"keydown",((e,t)=>{t.keystroke==qt.esc&&this._selectAncestorWidget()&&(t.preventDefault(),e.stop())}),{context:e=>e.is("editableElement"),priority:"low"}),e.accessibility.addKeystrokeInfoGroup({id:"widget",label:i("Keystrokes that can be used when a widget is selected (for example: image, table, etc.)"),keystrokes:[{label:i("Move focus from an editable area back to the parent widget"),keystroke:"Esc"},{label:i("Insert a new paragraph directly after a widget"),keystroke:"Enter"},{label:i("Insert a new paragraph directly before a widget"),keystroke:"Shift+Enter"},{label:i("Move the caret to allow typing directly before a widget"),keystroke:[["arrowup"],["arrowleft"]]},{label:i("Move the caret to allow typing directly after a widget"),keystroke:[["arrowdown"],["arrowright"]]}]})}_onMousedown(e,t){const o=t.target;o&&t.domEvent.detail>=3&&this._selectBlockContent(o)&&t.preventDefault()}_onPointerdown(e,t){if(!t.domEvent.isPrimary)return;const o=this.editor,i=o.editing.view,n=i.document;let s=t.target;if(!s)return;if(!ip(s)){const e=function(e){let t=e;for(;t;){if(t.is("editableElement")||ip(t))return t;t=t.parent}return null}(s);if(!e)return;if(ip(e))s=e;else{const e=function(e,t){const o=st(t.domEvent);let i=null;i=o?e.domConverter.domRangeToView(o):e.createRange(e.createPositionAt(t.target,0));if(!i)return null;const n=i.start;if(!n.parent)return null;let s=n.parent;n.parent.is("editableElement")&&(n.isAtEnd&&n.nodeBefore?s=n.nodeBefore:n.isAtStart&&n.nodeAfter&&(s=n.nodeAfter));if(s.is("$text"))return s.parent;return s}(i,t);if(!e||!ip(e))return;s=e}}(Y.isAndroid||Y.isiOS)&&t.preventDefault(),n.isFocused||i.focus();const r=o.editing.mapper.toModelElement(s);this._setSelectionOverElement(r)}_selectBlockContent(e){const t=this.editor,o=t.model,i=t.editing.mapper,n=o.schema,s=i.findMappedViewAncestor(this.editor.editing.view.createPositionAt(e,0)),r=function(e,t){for(const o of e.getAncestors({includeSelf:!0,parentFirst:!0})){if(t.checkChild(o,"$text"))return o;if(t.isLimit(o)&&!t.isObject(o))break}return null}(i.toModelElement(s),o.schema);return!!r&&(o.change((e=>{const t=n.isLimit(r)?null:function(e,t){const o=new is({startPosition:e});for(const{item:e}of o){if(t.isLimit(e)||!e.is("element"))return null;if(t.checkChild(e,"$text"))return e}return null}(e.createPositionAfter(r),n),o=e.createPositionAt(r,0),i=t?e.createPositionAt(t,0):e.createPositionAt(r,"end");e.setSelection(e.createRange(o,i))})),!0)}_handleSelectionChangeOnArrowKeyPress(e,t){const o=t.keyCode,i=this.editor.model,n=i.schema,s=i.document.selection,r=s.getSelectedElement(),a=Kt(o,this.editor.locale.contentLanguageDirection),l="down"==a||"right"==a,c="up"==a||"down"==a;if(!t.shiftKey&&!s.isCollapsed){if(function(e,t){const o=e.getFirstPosition(),i=e.getLastPosition(),n=o.nodeAfter,s=i.nodeBefore;return!!n&&t.isObject(n)||!!s&&t.isObject(s)}(s,n)){const o=l?s.getLastPosition():s.getFirstPosition(),r=n.getNearestSelectionRange(o,l?"forward":"backward");r&&(i.change((e=>{e.setSelection(r)})),t.preventDefault(),e.stop())}return}const d=function(e,t){const o=e.document.selection,i=o.getSelectedElement(),n=gp(o);if(i&&"before"==n)return e.createSelection(i,"before");if(i&&"after"==n)return e.createSelection(i,"after");return e.createSelection(o.getRanges(),{backward:i&&e.schema.isObject(i)?!t:o.isBackward})}(i,l),u=i.createSelection(d);if(i.modifySelection(u,{direction:l?"forward":"backward"}),u.isEqual(d))return;u.focus.isTouching(d.focus)&&n.checkChild(u.focus.parent,"$text")&&(l?!u.focus.isAtEnd:!u.focus.isAtStart)&&i.modifySelection(u,{direction:l?"forward":"backward"});const h=l?d.focus.nodeBefore:d.focus.nodeAfter,m=u.focus.nodeBefore,g=u.focus.nodeAfter,p=l?m:g;if(t.shiftKey)(r&&n.isObject(r)||p&&n.isObject(p)||h&&n.isObject(h))&&(i.change((e=>{e.setSelection(u)})),t.preventDefault(),e.stop());else if(p&&n.isObject(p)){if(n.isInline(p)&&c)return;i.change((e=>{e.setSelection(p,"on")})),t.preventDefault(),e.stop()}}_preventDefaultOnArrowKeyPress(e,t){const o=this.editor.model,i=o.schema,n=o.document.selection.getSelectedElement();n&&i.isObject(n)&&(t.preventDefault(),e.stop())}_handleDelete(e){const t=this.editor.model.document.selection;if(!this.editor.model.canEditAt(t))return;if(!t.isCollapsed)return;const o=this._getObjectElementNextToSelection(e);return o?(this.editor.model.change((e=>{let i=t.anchor.parent;for(;i.isEmpty;){const t=i;i=t.parent,e.remove(t)}this._setSelectionOverElement(o)})),!0):void 0}_setSelectionOverElement(e){this.editor.model.change((t=>{t.setSelection(t.createRangeOn(e))}))}_getObjectElementNextToSelection(e){const t=this.editor.model,o=t.schema,i=t.document.selection,n=t.createSelection(i);if(t.modifySelection(n,{direction:e?"forward":"backward"}),n.isEqual(i))return null;const s=e?n.focus.nodeBefore:n.focus.nodeAfter;return s&&o.isObject(s)?s:null}_clearPreviouslySelectedWidgets(e){for(const t of this._previouslySelected)e.removeClass(op,t);this._previouslySelected.clear()}_selectNextEditable(e){const t=this.editor.editing,o=t.view,i=this.editor.model,n=o.document.selection,s=i.document.selection;let r;if(s.rangeCount>1){const o=s.isBackward?s.getFirstRange():s.getLastRange();r=t.mapper.toViewPosition("forward"==e?o.end:o.start)}else r="forward"==e?n.getFirstPosition():n.getLastPosition();const a=this._findNextFocusRange(r,e);return!!a&&(i.change((e=>{e.setSelection(a)})),!0)}_findNextFocusRange(e,t){const o=this.editor.editing,i=o.view,n=this.editor.model,s=i.document.selection,r=s.editableElement,a=r.getPath();let l=s.getSelectedElement();l&&!ip(l)&&(l=null);const c="forward"==t?i.createRange(e,i.createPositionAt(e.root,"end")):i.createRange(i.createPositionAt(e.root,0),e);for(const{nextPosition:e}of c.getWalker({direction:t})){const i=e.parent;if(ip(i)&&i!=l){const e=o.mapper.toModelElement(i);if(!n.schema.isBlock(e))continue;if("extension"!=We(a,i.getPath()))return n.createRangeOn(e)}else if(i.is("editableElement")){if(i==r&&!l)continue;const s=o.mapper.toModelPosition(e),c=n.schema.getNearestSelectionRange(s,t);if(!c)continue;return i==r&&l?c:"extension"!=We(a,i.getPath())?n.createRangeIn(n.schema.getLimitElement(c)):c}}return null}_selectAncestorWidget(){const e=this.editor,t=e.editing.mapper,o=e.editing.view.document.selection.getFirstPosition().parent,i=(o.is("$text")?o.parent:o).findAncestor(ip);if(!i)return!1;const n=t.toModelElement(i);return!!n&&(e.model.change((e=>{e.setSelection(n,"on")})),!0)}}function Cp(e,t){return!!t&&Array.from(e.getAncestors()).includes(t)}class Ap extends fc{_toolbarDefinitions=new Map;_balloon;static get requires(){return[Qm]}static get pluginName(){return"WidgetToolbarRepository"}static get isOfficialPlugin(){return!0}init(){const e=this.editor;if(e.plugins.has("BalloonToolbar")){const t=e.plugins.get("BalloonToolbar");this.listenTo(t,"show",(t=>{(function(e){const t=e.getSelectedElement();return!(!t||!ip(t))})(e.editing.view.document.selection)&&t.stop()}),{priority:"high"})}this._balloon=this.editor.plugins.get("ContextualBalloon"),this.on("change:isEnabled",(()=>{this._updateToolbarsVisibility()})),this.listenTo(e.ui,"update",(()=>{this._updateToolbarsVisibility()})),this.listenTo(e.ui.focusTracker,"change:isFocused",(()=>{this._updateToolbarsVisibility()}),{priority:"low"})}destroy(){super.destroy();for(const e of this._toolbarDefinitions.values())e.view.destroy()}register(e,{ariaLabel:t,items:o,getRelatedElement:i,balloonClassName:n="ck-toolbar-container",positions:s}){if(!o.length)return void be("widget-toolbar-no-items",{toolbarId:e});const r=this.editor,a=r.t,l=new Wh(r.locale);if(l.ariaLabel=t||a("Widget toolbar"),this._toolbarDefinitions.has(e))throw new fe("widget-toolbar-duplicated",this,{toolbarId:e});const c={view:l,getRelatedElement:i,balloonClassName:n,itemsConfig:o,positions:s,initialized:!1};r.ui.addToolbar(l,{isContextual:!0,beforeFocus:()=>{const e=i(r.editing.view.document.selection);e&&this._showToolbar(c,e)},afterBlur:()=>{this._hideToolbar(c)}}),this._toolbarDefinitions.set(e,c)}_updateToolbarsVisibility(){let e=0,t=null,o=null;for(const i of this._toolbarDefinitions.values()){const n=i.getRelatedElement(this.editor.editing.view.document.selection);if(this.isEnabled&&n)if(this.editor.ui.focusTracker.isFocused){const s=n.getAncestors().length;s>e&&(e=s,t=n,o=i)}else this._isToolbarVisible(i)&&this._hideToolbar(i);else this._isToolbarInBalloon(i)&&this._hideToolbar(i)}o&&this._showToolbar(o,t)}_hideToolbar(e){this._balloon.remove(e.view),this.stopListening(this._balloon,"change:visibleView")}_showToolbar(e,t){this._isToolbarVisible(e)?xp(this.editor,t,e.positions):this._isToolbarInBalloon(e)||(e.initialized||(e.initialized=!0,e.view.fillFromConfig(e.itemsConfig,this.editor.ui.componentFactory)),this._balloon.add({view:e.view,position:Ep(this.editor,t,e.positions),balloonClassName:e.balloonClassName}),this.listenTo(this._balloon,"change:visibleView",(()=>{for(const t of this._toolbarDefinitions.values())if(this._isToolbarVisible(t)){const o=t.getRelatedElement(this.editor.editing.view.document.selection);xp(this.editor,o,e.positions)}})))}_isToolbarVisible(e){return this._balloon.visibleView===e.view}_isToolbarInBalloon(e){return this._balloon.hasView(e.view)}}function xp(e,t,o){const i=e.plugins.get("ContextualBalloon"),n=Ep(e,t,o);i.updatePosition(n)}function Ep(e,t,o){const i=e.editing.view,n=dh.defaultPositions;return{target:i.domConverter.mapViewToDom(t),positions:o||[n.northArrowSouth,n.northArrowSouthWest,n.northArrowSouthEast,n.southArrowNorth,n.southArrowNorthWest,n.southArrowNorthEast,n.viewportStickyNorth]}}class Tp extends(Be()){_referenceCoordinates;_options;_originalWidth;_originalHeight;_originalWidthPercents;_aspectRatio;constructor(e){super(),this.set("activeHandlePosition",null),this.set("proposedWidthPercents",null),this.set("proposedWidth",null),this.set("proposedHeight",null),this.set("proposedHandleHostWidth",null),this.set("proposedHandleHostHeight",null),this._options=e,this._referenceCoordinates=null}get originalWidth(){return this._originalWidth}get originalHeight(){return this._originalHeight}get originalWidthPercents(){return this._originalWidthPercents}get aspectRatio(){return this._aspectRatio}begin(e,t,o){const i=new ut(t);this.activeHandlePosition=function(e){const t=["top-left","top-right","bottom-right","bottom-left"];for(const o of t)if(e.classList.contains(Pp(o)))return o}(e),this._referenceCoordinates=function(e,t){const o=new ut(e),i=t.split("-"),n={x:"right"==i[1]?o.right:o.left,y:"bottom"==i[0]?o.bottom:o.top};return n.x+=e.ownerDocument.defaultView.scrollX,n.y+=e.ownerDocument.defaultView.scrollY,n}(t,function(e){const t=e.split("-"),o={top:"bottom",bottom:"top",left:"right",right:"left"};return`${o[t[0]]}-${o[t[1]]}`}(this.activeHandlePosition)),this._originalWidth=i.width,this._originalHeight=i.height,this._aspectRatio=i.width/i.height;const n=o.style.width;n&&n.match(/^\d+(\.\d*)?%$/)?this._originalWidthPercents=parseFloat(n):this._originalWidthPercents=function(e,t=new ut(e)){const o=up(e);return o?t.width/o*100:0}(o,i)}update(e){this.proposedWidth=e.width,this.proposedHeight=e.height,this.proposedWidthPercents=e.widthPercents,this.proposedHandleHostWidth=e.handleHostWidth,this.proposedHandleHostHeight=e.handleHostHeight}}function Pp(e){return`ck-widget__resizer__handle-${e}`}class Sp extends Au{constructor(){super();const e=this.bindTemplate;this.setTemplate({tag:"div",attributes:{class:["ck","ck-size-view",e.to("_viewPosition",(e=>e?`ck-orientation-${e}`:""))],style:{display:e.if("_isVisible","none",(e=>!e))}},children:[{text:e.to("_label")}]})}_bindToState(e,t){this.bind("_isVisible").to(t,"proposedWidth",t,"proposedHeight",((e,t)=>null!==e&&null!==t)),this.bind("_label").to(t,"proposedHandleHostWidth",t,"proposedHandleHostHeight",t,"proposedWidthPercents",((t,o,i)=>"px"===e.unit?`${t}×${o}`:`${i}%`)),this.bind("_viewPosition").to(t,"activeHandlePosition",t,"proposedHandleHostWidth",t,"proposedHandleHostHeight",((e,t,o)=>t<50||o<50?"above-center":e))}_dismiss(){this.unbind(),this._isVisible=!1}}class Ip extends(Be()){_state;_sizeView;_options;_viewResizerWrapper=null;_initialViewWidth;constructor(e){super(),this._options=e,this.set("isEnabled",!0),this.set("isSelected",!1),this.bind("isVisible").to(this,"isEnabled",this,"isSelected",((e,t)=>e&&t)),this.decorate("begin"),this.decorate("cancel"),this.decorate("commit"),this.decorate("updateSize"),this.on("commit",(e=>{this.state.proposedWidth||this.state.proposedWidthPercents||(this._cleanup(),e.stop())}),{priority:"high"})}get state(){return this._state}show(){this._options.editor.editing.view.change((e=>{e.removeClass("ck-hidden",this._viewResizerWrapper)}))}hide(){this._options.editor.editing.view.change((e=>{e.addClass("ck-hidden",this._viewResizerWrapper)}))}attach(){const e=this,t=this._options.viewElement;this._options.editor.editing.view.change((o=>{const i=o.createUIElement("div",{class:"ck ck-reset_all ck-widget__resizer"},(function(t){const o=this.toDomElement(t);return e._appendHandles(o),e._appendSizeUI(o),o}));o.insert(o.createPositionAt(t,"end"),i),o.addClass("ck-widget_with-resizer",t),this._viewResizerWrapper=i,this.isVisible||this.hide()})),this.on("change:isVisible",(()=>{this.isVisible?(this.show(),this.redraw()):this.hide()}))}begin(e){this._state=new Tp(this._options),this._sizeView._bindToState(this._options,this.state),this._initialViewWidth=this._options.viewElement.getStyle("width"),this.state.begin(e,this._getHandleHost(),this._getResizeHost())}updateSize(e){const t=this._proposeNewSize(e);this._options.editor.editing.view.change((e=>{const o=this._options.unit||"%",i=("%"===o?t.widthPercents:t.width)+o;e.setStyle("width",i,this._options.viewElement)}));const o=this._getHandleHost(),i=new ut(o),n=Math.round(i.width),s=Math.round(i.height),r=new ut(o);t.width=Math.round(r.width),t.height=Math.round(r.height),this.redraw(i),this.state.update({...t,handleHostWidth:n,handleHostHeight:s})}commit(){const e=this._options.unit||"%",t=("%"===e?this.state.proposedWidthPercents:this.state.proposedWidth)+e;this._options.editor.editing.view.change((()=>{this._cleanup(),this._options.onCommit(t)}))}cancel(){this._cleanup()}destroy(){this.cancel()}redraw(e){const t=this._domResizerWrapper;if(!((o=t)&&o.ownerDocument&&o.ownerDocument.contains(o)))return;var o;const i=t.parentElement,n=this._getHandleHost(),s=this._viewResizerWrapper,r=[s.getStyle("width"),s.getStyle("height"),s.getStyle("left"),s.getStyle("top")];let a;if(i.isSameNode(n)){const t=e||new ut(n);a=[t.width+"px",t.height+"px",void 0,void 0]}else a=[n.offsetWidth+"px",n.offsetHeight+"px",n.offsetLeft+"px",n.offsetTop+"px"];"same"!==We(r,a)&&this._options.editor.editing.view.change((e=>{e.setStyle({width:a[0],height:a[1],left:a[2],top:a[3]},s)}))}containsHandle(e){return this._domResizerWrapper.contains(e)}static isResizeHandle(e){return e.classList.contains("ck-widget__resizer__handle")}_cleanup(){this._sizeView._dismiss();this._options.editor.editing.view.change((e=>{e.setStyle("width",this._initialViewWidth,this._options.viewElement)}))}_proposeNewSize(e){const t=this.state,o={x:(i=e).pageX,y:i.pageY};var i;const n=!this._options.isCentered||this._options.isCentered(this),s={x:t._referenceCoordinates.x-(o.x+t.originalWidth),y:o.y-t.originalHeight-t._referenceCoordinates.y};n&&t.activeHandlePosition.endsWith("-right")&&(s.x=o.x-(t._referenceCoordinates.x+t.originalWidth)),n&&(s.x*=2);let r=Math.abs(t.originalWidth+s.x),a=Math.abs(t.originalHeight+s.y);return"width"==(r/t.aspectRatio>a?"width":"height")?a=r/t.aspectRatio:r=a*t.aspectRatio,{width:Math.round(r),height:Math.round(a),widthPercents:Math.min(Math.round(t.originalWidthPercents/t.originalWidth*r*100)/100,100)}}_getResizeHost(){const e=this._domResizerWrapper.parentElement;return this._options.getResizeHost(e)}_getHandleHost(){const e=this._domResizerWrapper.parentElement;return this._options.getHandleHost(e)}get _domResizerWrapper(){return this._options.editor.editing.view.domConverter.mapViewToDom(this._viewResizerWrapper)}_appendHandles(e){const t=["top-left","top-right","bottom-right","bottom-left"];for(const i of t)e.appendChild(new ou({tag:"div",attributes:{class:"ck-widget__resizer__handle "+(o=i,`ck-widget__resizer__handle-${o}`)}}).render());var o}_appendSizeUI(e){this._sizeView=new Sp,this._sizeView.render(),e.appendChild(this._sizeView.element)}}class Rp extends fc{_resizers=new Map;_observer;_redrawSelectedResizerThrottled;static get pluginName(){return"WidgetResize"}static get isOfficialPlugin(){return!0}init(){const e=this.editor.editing,t=J.window.document;this.set("selectedResizer",null),this.set("_activeResizer",null),e.view.addObserver(il),this._observer=new(et()),this.listenTo(e.view.document,"mousedown",this._mouseDownListener.bind(this),{priority:"high"}),this._observer.listenTo(t,"mousemove",this._mouseMoveListener.bind(this)),this._observer.listenTo(t,"mouseup",this._mouseUpListener.bind(this)),this._redrawSelectedResizerThrottled=oc((()=>this.redrawSelectedResizer()),200),this.editor.ui.on("update",this._redrawSelectedResizerThrottled),this.editor.model.document.on("change",(()=>{for(const[e,t]of this._resizers)e.isAttached()||(this._resizers.delete(e),t.destroy())}),{priority:"lowest"}),this._observer.listenTo(J.window,"resize",this._redrawSelectedResizerThrottled);const o=this.editor.editing.view.document.selection;o.on("change",(()=>{const e=o.getSelectedElement(),t=this.getResizerByViewElement(e)||null;t?this.select(t):this.deselect()}))}redrawSelectedResizer(){this.selectedResizer&&this.selectedResizer.isVisible&&this.selectedResizer.redraw()}destroy(){super.destroy(),this._observer.stopListening();for(const e of this._resizers.values())e.destroy();this._redrawSelectedResizerThrottled.cancel()}select(e){this.deselect(),this.selectedResizer=e,this.selectedResizer.isSelected=!0}deselect(){this.selectedResizer&&(this.selectedResizer.isSelected=!1),this.selectedResizer=null}attachTo(e){const t=new Ip(e),o=this.editor.plugins;if(t.attach(),o.has("WidgetToolbarRepository")){const e=o.get("WidgetToolbarRepository");t.on("begin",(()=>{e.forceDisabled("resize")}),{priority:"lowest"}),t.on("cancel",(()=>{e.clearForceDisabled("resize")}),{priority:"highest"}),t.on("commit",(()=>{e.clearForceDisabled("resize")}),{priority:"highest"})}this._resizers.set(e.viewElement,t);const i=this.editor.editing.view.document.selection.getSelectedElement();return this.getResizerByViewElement(i)==t&&this.select(t),t}getResizerByViewElement(e){return this._resizers.get(e)}_getResizerByHandle(e){for(const t of this._resizers.values())if(t.containsHandle(e))return t}_mouseDownListener(e,t){const o=t.domTarget;Ip.isResizeHandle(o)&&(this._activeResizer=this._getResizerByHandle(o)||null,this._activeResizer&&(this._activeResizer.begin(o),e.stop(),t.preventDefault()))}_mouseMoveListener(e,t){this._activeResizer&&this._activeResizer.updateSize(t)}_mouseUpListener(){this._activeResizer&&(this._activeResizer.commit(),this._activeResizer=null)}}class Op extends fc{static get pluginName(){return"OPMacroToc"}static get buttonName(){return"insertToc"}init(){const e=this.editor,t=e.model,o=e.conversion;t.schema.register("op-macro-toc",{allowWhere:"$block",isBlock:!0,isLimit:!0}),o.for("upcast").elementToElement({view:{name:"macro",classes:"toc"},model:"op-macro-toc"}),o.for("editingDowncast").elementToElement({model:"op-macro-toc",view:(e,{writer:t})=>np(this.createTocViewElement(t),t,{label:this.label})}),o.for("dataDowncast").elementToElement({model:"op-macro-toc",view:(e,{writer:t})=>this.createTocDataElement(t)}),e.ui.componentFactory.add(Op.buttonName,(t=>{const o=new Lu(t);return o.set({label:this.label,withText:!0}),o.on("execute",(()=>{e.model.change((t=>{const o=t.createElement("op-macro-toc",{});e.model.insertContent(o,e.model.document.selection)}))})),o}))}get label(){return window.I18n.t("js.editor.macro.toc")}createTocViewElement(e){const t=e.createText(this.label),o=e.createContainerElement("div");return e.insert(e.createPositionAt(o,0),t),o}createTocDataElement(e){return e.createContainerElement("macro",{class:"toc"})}}const Vp=Symbol("isOPEmbeddedTable");function Dp(e){const t=e.getSelectedElement();return!(!t||!function(e){return!!e.getCustomProperty(Vp)&&ip(e)}(t))}function Fp(e){return _.get(e.config,"_config.openProject.context.resource")}function Mp(e){return _.get(e.config,"_config.openProject.pluginContext")}function Np(e,t){return Mp(e).services[t]}function Bp(e){return Np(e,"pathHelperService")}function Lp(e){return Np(e,"i18n")}class zp extends fc{static get pluginName(){return"EmbeddedTableEditing"}static get buttonName(){return"insertEmbeddedTable"}init(){const e=this.editor,t=e.model,o=e.conversion,i=Mp(e);this.text={button:window.I18n.t("js.editor.macro.embedded_table.button"),macro_text:window.I18n.t("js.editor.macro.embedded_table.text")},t.schema.register("op-macro-embedded-table",{allowWhere:"$block",allowAttributes:["opEmbeddedTableQuery"],isBlock:!0,isObject:!0}),o.for("upcast").elementToElement({view:{name:"macro",classes:"embedded-table"},model:(e,{writer:t})=>{const o=e.getAttribute("data-query-props");return t.createElement("op-macro-embedded-table",{opEmbeddedTableQuery:o?JSON.parse(o):{}})}}),o.for("editingDowncast").elementToElement({model:"op-macro-embedded-table",view:(e,{writer:t})=>{return o=this.createEmbeddedTableView(t),i=t,this.label,i.setCustomProperty(Vp,!0,o),np(o,i,{label:"your label here"});var o,i}}),o.for("dataDowncast").elementToElement({model:"op-macro-embedded-table",view:(e,{writer:t})=>this.createEmbeddedTableDataElement(e,t)}),e.ui.componentFactory.add(zp.buttonName,(t=>{const o=new Lu(t);return o.set({label:this.text.button,withText:!0}),o.on("execute",(()=>i.runInZone((()=>{i.services.externalQueryConfiguration.show({currentQuery:{},callback:t=>e.model.change((o=>{const i=o.createElement("op-macro-embedded-table",{opEmbeddedTableQuery:t});e.model.insertContent(i,e.model.document.selection)}))})})))),o}))}createEmbeddedTableView(e){const t=e.createText(this.text.macro_text),o=e.createContainerElement("div");return e.insert(e.createPositionAt(o,0),t),o}createEmbeddedTableDataElement(e,t){const o=e.getAttribute("opEmbeddedTableQuery")||{};return t.createContainerElement("macro",{class:"embedded-table","data-query-props":JSON.stringify(o)})}}function jp(e,t,o){e.ui.componentFactory.add(t,(t=>{const i=new Lu(t);return i.set({label:I18n.t("js.button_edit"),icon:'\n',tooltip:!0}),i.on("execute",(()=>{const t=e.model.document.selection.getSelectedElement();t&&o(t)})),i}))}const qp="ck-toolbar-container";function $p(e,t,o,i){const n=t.config.get(o+".toolbar");if(!n||!n.length)return;const s=t.plugins.get("ContextualBalloon"),r=new Wh(t.locale);function a(){t.ui.focusTracker.isFocused&&i(t.editing.view.document.selection)?c()?function(e,t){const o=e.plugins.get("ContextualBalloon");if(t(e.editing.view.document.selection)){const t=Hp(e);o.updatePosition(t)}}(t,i):s.hasView(r)||s.add({view:r,position:Hp(t),balloonClassName:qp}):l()}function l(){c()&&s.remove(r)}function c(){return s.visibleView==r}r.fillFromConfig(n,t.ui.componentFactory),e.listenTo(t.editing.view,"render",a),e.listenTo(t.ui.focusTracker,"change:isFocused",a,{priority:"low"})}function Hp(e){const t=e.editing.view,o=dh.defaultPositions;return{target:t.domConverter.viewToDom(t.document.selection.getSelectedElement()),positions:[o.northArrowSouth,o.northArrowSouthWest,o.northArrowSouthEast,o.southArrowNorth,o.southArrowNorthWest,o.southArrowNorthEast]}}class Wp extends fc{static get requires(){return[Qm]}static get pluginName(){return"EmbeddedTableToolbar"}init(){const e=this.editor,t=this.editor.model,o=Mp(e);jp(e,"opEditEmbeddedTableQuery",(e=>{const i=o.services.externalQueryConfiguration,n=e.getAttribute("opEmbeddedTableQuery")||{};o.runInZone((()=>{i.show({currentQuery:n,callback:o=>t.change((t=>{t.setAttribute("opEmbeddedTableQuery",o,e)}))})}))}))}afterInit(){$p(this,this.editor,"OPMacroEmbeddedTable",Dp)}}const Up=Symbol("isWpButtonMacroSymbol");function Kp(e){const t=e.getSelectedElement();return!(!t||!function(e){return!!e.getCustomProperty(Up)&&ip(e)}(t))}class Gp extends fc{static get pluginName(){return"OPMacroWpButtonEditing"}static get buttonName(){return"insertWorkPackageButton"}init(){const e=this.editor,t=e.model,o=e.conversion,i=Mp(e);t.schema.register("op-macro-wp-button",{allowWhere:["$block"],allowAttributes:["type","classes"],isBlock:!0,isLimit:!0}),o.for("upcast").elementToElement({view:{name:"macro",classes:"create_work_package_link"},model:(e,{writer:t})=>{const o=e.getAttribute("data-type")||"",i=e.getAttribute("data-classes")||"";return t.createElement("op-macro-wp-button",{type:o,classes:i})}}),o.for("editingDowncast").elementToElement({model:"op-macro-wp-button",view:(e,{writer:t})=>this.createMacroViewElement(e,t)}),o.for("dataDowncast").elementToElement({model:"op-macro-wp-button",view:(e,{writer:t})=>t.createContainerElement("macro",{class:"create_work_package_link","data-type":e.getAttribute("type")||"","data-classes":e.getAttribute("classes")||""})}),e.ui.componentFactory.add(Gp.buttonName,(t=>{const o=new Lu(t);return o.set({label:window.I18n.t("js.editor.macro.work_package_button.button"),withText:!0}),o.on("execute",(()=>{i.services.macros.configureWorkPackageButton().then((t=>e.model.change((o=>{const i=o.createElement("op-macro-wp-button",{});o.setAttribute("type",t.type,i),o.setAttribute("classes",t.classes,i),e.model.insertContent(i,e.model.document.selection)}))))})),o}))}macroLabel(e){return e?window.I18n.t("js.editor.macro.work_package_button.with_type",{typename:e}):window.I18n.t("js.editor.macro.work_package_button.without_type")}createMacroViewElement(e,t){const o=e.getAttribute("classes")||"",i=this.macroLabel(),n=t.createText(i),s=t.createContainerElement("span",{class:o});return t.insert(t.createPositionAt(s,0),n),function(e,t,o){return t.setCustomProperty(Up,!0,e),np(e,t,{label:o})}(s,t,{label:i})}}class Jp extends fc{static get requires(){return[Qm]}static get pluginName(){return"OPMacroWpButtonToolbar"}init(){const e=this.editor,t=Mp(e);jp(e,"opEditWpMacroButton",(o=>{const i=t.services.macros,n=o.getAttribute("type"),s=o.getAttribute("classes");i.configureWorkPackageButton(n,s).then((t=>e.model.change((e=>{e.setAttribute("classes",t.classes,o),e.setAttribute("type",t.type,o)}))))}))}afterInit(){$p(this,this.editor,"OPMacroWpButton",Kp)}}class Zp extends(Be()){total;_reader;_data;constructor(){super();const e=new window.FileReader;this._reader=e,this._data=void 0,this.set("loaded",0),e.onprogress=e=>{this.loaded=e.loaded}}get error(){return this._reader.error}get data(){return this._data}read(e){const t=this._reader;return this.total=e.size,new Promise(((o,i)=>{t.onload=()=>{const e=t.result;this._data=e,o(e)},t.onerror=()=>{i("error")},t.onabort=()=>{i("aborted")},this._reader.readAsDataURL(e)}))}abort(){this._reader.abort()}}class Qp extends fc{loaders=new eo;_loadersMap=new Map;_pendingAction=null;static get pluginName(){return"FileRepository"}static get isOfficialPlugin(){return!0}static get requires(){return[Lc]}init(){this.loaders.on("change",(()=>this._updatePendingAction())),this.set("uploaded",0),this.set("uploadTotal",null),this.bind("uploadedPercent").to(this,"uploaded",this,"uploadTotal",((e,t)=>t?e/t*100:0))}getLoader(e){return this._loadersMap.get(e)||null}createLoader(e){if(!this.createUploadAdapter)return be("filerepository-no-upload-adapter"),null;const t=new Yp(Promise.resolve(e),this.createUploadAdapter);return this.loaders.add(t),this._loadersMap.set(e,t),e instanceof Promise&&t.file.then((e=>{this._loadersMap.set(e,t)})).catch((()=>{})),t.on("change:uploaded",(()=>{let e=0;for(const t of this.loaders)e+=t.uploaded;this.uploaded=e})),t.on("change:uploadTotal",(()=>{let e=0;for(const t of this.loaders)t.uploadTotal&&(e+=t.uploadTotal);this.uploadTotal=e})),t}destroyLoader(e){const t=e instanceof Yp?e:this.getLoader(e);t._destroy(),this.loaders.remove(t),this._loadersMap.forEach(((e,o)=>{e===t&&this._loadersMap.delete(o)}))}_updatePendingAction(){const e=this.editor.plugins.get(Lc);if(this.loaders.length){if(!this._pendingAction){const t=this.editor.t,o=e=>`${t("Upload in progress")} ${parseInt(e)}%.`;this._pendingAction=e.add(o(this.uploadedPercent)),this._pendingAction.bind("message").to(this,"uploadedPercent",o)}}else e.remove(this._pendingAction),this._pendingAction=null}}class Yp extends(Be()){id;_filePromiseWrapper;_adapter;_reader;constructor(e,t){super(),this.id=me(),this._filePromiseWrapper=this._createFilePromiseWrapper(e),this._adapter=t(this),this._reader=new Zp,this.set("status","idle"),this.set("uploaded",0),this.set("uploadTotal",null),this.bind("uploadedPercent").to(this,"uploaded",this,"uploadTotal",((e,t)=>t?e/t*100:0)),this.set("uploadResponse",null)}get file(){return this._filePromiseWrapper?this._filePromiseWrapper.promise.then((e=>this._filePromiseWrapper?e:null)):Promise.resolve(null)}get data(){return this._reader.data}read(){if("idle"!=this.status)throw new fe("filerepository-read-wrong-status",this);return this.status="reading",this.file.then((e=>this._reader.read(e))).then((e=>{if("reading"!==this.status)throw this.status;return this.status="idle",e})).catch((e=>{if("aborted"===e)throw this.status="aborted","aborted";throw this.status="error",this._reader.error?this._reader.error:e}))}upload(){if("idle"!=this.status)throw new fe("filerepository-upload-wrong-status",this);return this.status="uploading",this.file.then((()=>this._adapter.upload())).then((e=>(this.uploadResponse=e,this.status="idle",e))).catch((e=>{if("aborted"===this.status)throw"aborted";throw this.status="error",e}))}abort(){const e=this.status;this.status="aborted",this._filePromiseWrapper.isFulfilled?"reading"==e?this._reader.abort():"uploading"==e&&this._adapter.abort&&this._adapter.abort():(this._filePromiseWrapper.promise.catch((()=>{})),this._filePromiseWrapper.rejecter("aborted")),this._destroy()}_destroy(){this._filePromiseWrapper=void 0,this._reader=void 0,this._adapter=void 0,this.uploadResponse=void 0}_createFilePromiseWrapper(e){const t={};return t.promise=new Promise(((o,i)=>{t.rejecter=i,t.isFulfilled=!1,e.then((e=>{t.isFulfilled=!0,o(e)})).catch((e=>{t.isFulfilled=!0,i(e)}))})),t}}class Xp{constructor(e,t,o){this.loader=e,this.resource=t,this.editor=o}upload(){const e=this.resource,t=Np(this.editor,"attachmentsResourceService");return e?this.loader.file.then((o=>t.attachFiles(e,[o]).toPromise().then((e=>(this.editor.model.fire("op:attachment-added",e),this.buildResponse(e[0])))).catch((e=>{console.error("Failed upload %O",e)})))):(console.warn("resource not available in this CKEditor instance"),Promise.reject("Not possible to upload attachments without resource"))}buildResponse(e){return{default:e._links.staticDownloadLocation.href}}abort(){return!1}}function ef(e){return e}function tf(e,t,o){return"function"!=typeof o?tf(e,t,(()=>{})):of(e,t,(function e(t,i,n,s,r,a){const l=o(t,i,n,s,r,a);return void 0!==l?Boolean(l):of(t,i,e,a)}),new Map)}function of(e,t,o,i){if(t===e)return!0;switch(typeof t){case"object":return function(e,t,o,i){if(null==t)return!0;if(Array.isArray(t))return nf(e,t,o,i);if(t instanceof Map)return function(e,t,o,i){if(0===t.size)return!0;if(!(e instanceof Map))return!1;for(const[n,s]of t.entries()){if(!1===o(e.get(n),s,n,e,t,i))return!1}return!0}(e,t,o,i);if(t instanceof Set)return function(e,t,o,i){if(0===t.size)return!0;if(!(e instanceof Set))return!1;return nf([...e],[...t],o,i)}(e,t,o,i);const n=Object.keys(t);if(null==e||V(e))return 0===n.length;if(0===n.length)return!0;if(i?.has(t))return i.get(t)===e;i?.set(t,e);try{for(let s=0;s0?of(e,{...t},o,i):Co(e,t);default:return s(e)?"string"!=typeof t||""===t:Co(e,t)}}function nf(e,t,o,i){if(0===t.length)return!0;if(!Array.isArray(e))return!1;const n=new Set;for(let s=0;s{}))}function rf(e){var t;return e=F(t=e,void 0,t,new Map,void 0),t=>sf(t,e)}function af(e,t){let o;if(o=Array.isArray(t)?t:"string"==typeof t&&wo(t)&&null==e?.[t]?ko(t):[t],0===o.length)return!1;let i=e;for(let e=0;e{i.preventDefault();const n=i.dropRange?[i.dropRange]:null,s=new ue(t,e);t.fire(s,{dataTransfer:i.dataTransfer,method:o.name,targetRanges:n,target:i.target,domEvent:i.domEvent}),s.stop.called&&i.stopPropagation()}}this.listenTo(t,"paste",o("clipboardInput"),{priority:"low"}),this.listenTo(t,"drop",o("clipboardInput"),{priority:"low"}),this.listenTo(t,"dragover",o("dragging"),{priority:"low"})}onDomEvent(e){const t="clipboardData"in e?e.clipboardData:e.dataTransfer,o="drop"==e.type||"paste"==e.type,i={dataTransfer:new Jn(t,{cacheFiles:o})};if("drop"==e.type||"dragover"==e.type){const t=st(e);i.dropRange=t&&this.view.domConverter.domRangeToView(t)}this.fire(e.type,e,i)}}const uf=["figcaption","li"],hf=["ol","ul"];function mf(e,t){if(t.is("$text")||t.is("$textProxy"))return t.data;if(t.is("element","img")&&t.hasAttribute("alt"))return t.getAttribute("alt");if(t.is("element","br"))return"\n";let o="",i=null;for(const n of t.getChildren())o+=pf(n,i)+mf(e,n),i=n;if(t.is("rawElement")){const i=document.implementation.createHTMLDocument("").createElement("div");t.render(i,e),o+=gf(i)}return o}function gf(e){let t="";if(e.nodeType===Node.TEXT_NODE)return e.textContent;if("BR"===e.tagName)return"\n";for(const o of e.childNodes)t+=gf(o);return t}function pf(e,t){return t?e.is("element","li")&&!e.isEmpty&&e.getChild(0).is("containerElement")||hf.includes(e.name)&&hf.includes(t.name)?"\n\n":e.is("containerElement")||t.is("containerElement")?uf.includes(e.name)||uf.includes(t.name)?"\n":e.is("element")&&e.getCustomProperty("dataPipeline:transparentRendering")||t.is("element")&&t.getCustomProperty("dataPipeline:transparentRendering")?"":"\n\n":"":""}class ff extends fc{_markersToCopy=new Map;static get pluginName(){return"ClipboardMarkersUtils"}static get isOfficialPlugin(){return!0}_registerMarkerToCopy(e,t){this._markersToCopy.set(e,t)}_copySelectedFragmentWithMarkers(e,t,o=e=>e.model.getSelectedContent(e.model.document.selection)){return this.editor.model.change((i=>{const n=i.model.document.selection;i.setSelection(t);const s=this._insertFakeMarkersIntoSelection(i,i.model.document.selection,e),r=o(i),a=this._removeFakeMarkersInsideElement(i,r);for(const[e,t]of Object.entries(s)){a[e]||=i.createRangeIn(r);for(const e of t)i.remove(e)}r.markers.clear();for(const[e,t]of Object.entries(a))r.markers.set(e,t);return i.setSelection(n),r}))}_pasteMarkersIntoTransformedElement(e,t){const o=this._getPasteMarkersFromRangeMap(e);return this.editor.model.change((e=>{const i=this._insertFakeMarkersElements(e,o),n=t(e),s=this._removeFakeMarkersInsideElement(e,n);for(const t of Object.values(i).flat())e.remove(t);for(const[t,o]of Object.entries(s))e.model.markers.has(t)||e.addMarker(t,{usingOperation:!0,affectsData:!0,range:o});return n}))}_pasteFragmentWithMarkers(e){const t=this._getPasteMarkersFromRangeMap(e.markers);e.markers.clear();for(const o of t)e.markers.set(o.name,o.range);return this.editor.model.insertContent(e)}_forceMarkersCopy(e,t,o={allowedActions:"all",copyPartiallySelected:!0,duplicateOnPaste:!0}){const i=this._markersToCopy.get(e);this._markersToCopy.set(e,o),t(),i?this._markersToCopy.set(e,i):this._markersToCopy.delete(e)}_isMarkerCopyable(e,t){const o=this._getMarkerClipboardConfig(e);if(!o)return!1;if(!t)return!0;const{allowedActions:i}=o;return"all"===i||i.includes(t)}_hasMarkerConfiguration(e){return!!this._getMarkerClipboardConfig(e)}_getMarkerClipboardConfig(e){const[t]=e.split(":");return this._markersToCopy.get(t)||null}_insertFakeMarkersIntoSelection(e,t,o){const i=this._getCopyableMarkersFromSelection(e,t,o);return this._insertFakeMarkersElements(e,i)}_getCopyableMarkersFromSelection(e,t,o){const i=Array.from(t.getRanges()),n=new Set(i.flatMap((t=>Array.from(e.model.markers.getMarkersIntersectingRange(t)))));return Array.from(n).filter((e=>{if(!this._isMarkerCopyable(e.name,o))return!1;const{copyPartiallySelected:t}=this._getMarkerClipboardConfig(e.name);if(!t){const t=e.getRange();return i.some((e=>e.containsRange(t,!0)))}return!0})).map((e=>({name:"dragstart"===o?this._getUniqueMarkerName(e.name):e.name,range:e.getRange()})))}_getPasteMarkersFromRangeMap(e,t=null){const{model:o}=this.editor;return(e instanceof Map?Array.from(e.entries()):Object.entries(e)).flatMap((([e,i])=>{if(!this._hasMarkerConfiguration(e))return[{name:e,range:i}];if(this._isMarkerCopyable(e,t)){const t=this._getMarkerClipboardConfig(e),n=o.markers.has(e)&&"$graveyard"===o.markers.get(e).getRange().root.rootName;return(t.duplicateOnPaste||n)&&(e=this._getUniqueMarkerName(e)),[{name:e,range:i}]}return[]}))}_insertFakeMarkersElements(e,t){const o={},i=t.flatMap((e=>{const{start:t,end:o}=e.range;return[{position:t,marker:e,type:"start"},{position:o,marker:e,type:"end"}]})).sort((({position:e},{position:t})=>e.isBefore(t)?1:-1));for(const{position:t,marker:n,type:s}of i){const i=e.createElement("$marker",{"data-name":n.name,"data-type":s});o[n.name]||(o[n.name]=[]),o[n.name].push(i),e.insert(i,t)}return o}_removeFakeMarkersInsideElement(e,t){return cf(this._getAllFakeMarkersFromElement(e,t).reduce(((t,o)=>{const i=o.markerElement&&e.createPositionBefore(o.markerElement);let n=t[o.name],s=!1;if(n?.start&&n?.end){this._getMarkerClipboardConfig(o.name).duplicateOnPaste?t[this._getUniqueMarkerName(o.name)]=t[o.name]:s=!0,n=null}return s||(t[o.name]={...n,[o.type]:i}),o.markerElement&&e.remove(o.markerElement),t}),{}),(o=>new us(o.start||e.createPositionFromPath(t,[0]),o.end||e.createPositionAt(t,"end"))))}_getAllFakeMarkersFromElement(e,t){const o=Array.from(e.createRangeIn(t)).flatMap((({item:e})=>{if(!e.is("element","$marker"))return[];const t=e.getAttribute("data-name"),o=e.getAttribute("data-type");return[{markerElement:e,name:t,type:o}]})),i=[],n=[];for(const e of o){if("end"===e.type){o.some((t=>t.name===e.name&&"start"===t.type))||i.push({markerElement:null,name:e.name,type:"start"})}if("start"===e.type){o.some((t=>t.name===e.name&&"end"===t.type))||n.unshift({markerElement:null,name:e.name,type:"end"})}}return[...i,...o,...n]}_getUniqueMarkerName(e){const t=e.split(":"),o=me().substring(1,6);return 3===t.length?`${t.slice(0,2).join(":")}:${o}`:`${t.join(":")}:${o}`}}class bf extends fc{static get pluginName(){return"ClipboardPipeline"}static get isOfficialPlugin(){return!0}static get requires(){return[ff]}init(){this.editor.editing.view.addObserver(df),this._setupPasteDrop(),this._setupCopyCut()}_fireOutputTransformationEvent(e,t,o){const i=this.editor.plugins.get("ClipboardMarkersUtils");this.editor.model.enqueueChange({isUndoable:"cut"===o},(()=>{const n=i._copySelectedFragmentWithMarkers(o,t);this.fire("outputTransformation",{dataTransfer:e,content:n,method:o})}))}_setupPasteDrop(){const e=this.editor,t=e.model,o=e.editing.view,i=o.document,n=this.editor.plugins.get("ClipboardMarkersUtils");this.listenTo(i,"clipboardInput",((t,o)=>{"paste"!=o.method||e.model.canEditAt(e.model.document.selection)||t.stop()}),{priority:"highest"}),this.listenTo(i,"clipboardInput",((e,t)=>{const i=t.dataTransfer;let n;if(t.content)n=t.content;else{let e="";i.getData("text/html")?e=function(e){return e.replace(/(\s+)<\/span>/g,((e,t)=>1==t.length?" ":t)).replace(//g,"")}(i.getData("text/html")):i.getData("text/plain")&&(((s=(s=i.getData("text/plain")).replace(/&/g,"&").replace(//g,">").replace(/\r?\n\r?\n/g,"

    ").replace(/\r?\n/g,"
    ").replace(/\t/g,"    ").replace(/^\s/," ").replace(/\s$/," ").replace(/\s\s/g,"  ")).includes("

    ")||s.includes("
    "))&&(s=`

    ${s}

    `),e=s),n=this.editor.data.htmlProcessor.toView(e)}var s;const r=new ue(this,"inputTransformation"),a=i.getData("application/ckeditor5-editor-id")||null;this.fire(r,{content:n,dataTransfer:i,sourceEditorId:a,targetRanges:t.targetRanges,method:t.method}),r.stop.called&&e.stop(),o.scrollToTheSelection()}),{priority:"low"}),this.listenTo(this,"inputTransformation",((e,o)=>{if(o.content.isEmpty)return;const i=this.editor.data.toModel(o.content,"$clipboardHolder");0!=i.childCount&&(e.stop(),t.change((()=>{this.fire("contentInsertion",{content:i,method:o.method,sourceEditorId:o.sourceEditorId,dataTransfer:o.dataTransfer,targetRanges:o.targetRanges})})))}),{priority:"low"}),this.listenTo(this,"contentInsertion",((e,t)=>{t.resultRange=n._pasteFragmentWithMarkers(t.content)}),{priority:"low"})}_setupCopyCut(){const e=this.editor,t=e.model.document,o=e.editing.view.document,i=(e,o)=>{const i=o.dataTransfer;o.preventDefault(),this._fireOutputTransformationEvent(i,t.selection,e.name)};this.listenTo(o,"copy",i,{priority:"low"}),this.listenTo(o,"cut",((t,o)=>{e.model.canEditAt(e.model.document.selection)?i(t,o):o.preventDefault()}),{priority:"low"}),this.listenTo(this,"outputTransformation",((t,i)=>{const n=e.data.toView(i.content,{isClipboardPipeline:!0});o.fire("clipboardOutput",{dataTransfer:i.dataTransfer,content:n,method:i.method})}),{priority:"low"}),this.listenTo(o,"clipboardOutput",((o,i)=>{i.content.isEmpty||(i.dataTransfer.setData("text/html",this.editor.data.htmlProcessor.toData(i.content)),i.dataTransfer.setData("text/plain",mf(e.data.htmlProcessor.domConverter,i.content)),i.dataTransfer.setData("application/ckeditor5-editor-id",this.editor.id)),"cut"==i.method&&e.model.deleteContent(t.selection)}),{priority:"low"})}}const wf=yt("px");class yf extends Au{constructor(){super();const e=this.bindTemplate;this.set({isVisible:!1,left:null,top:null,width:null}),this.setTemplate({tag:"div",attributes:{class:["ck","ck-clipboard-drop-target-line",e.if("isVisible","ck-hidden",(e=>!e))],style:{left:e.to("left",(e=>wf(e))),top:e.to("top",(e=>wf(e))),width:e.to("width",(e=>wf(e)))}}})}}class _f extends fc{removeDropMarkerDelayed=co((()=>this.removeDropMarker()),40);_updateDropMarkerThrottled=oc((e=>this._updateDropMarker(e)),40);_reconvertMarkerThrottled=oc((()=>{this.editor.model.markers.has("drop-target")&&this.editor.editing.reconvertMarker("drop-target")}),0);_dropTargetLineView=new yf;_domEmitter=new(et());_scrollables=new Map;static get pluginName(){return"DragDropTarget"}static get isOfficialPlugin(){return!0}init(){this._setupDropMarker()}destroy(){this._domEmitter.stopListening();for(const{resizeObserver:e}of this._scrollables.values())e.destroy();return this._updateDropMarkerThrottled.cancel(),this.removeDropMarkerDelayed.cancel(),this._reconvertMarkerThrottled.cancel(),super.destroy()}updateDropMarker(e,t,o,i,n,s){this.removeDropMarkerDelayed.cancel();const r=kf(this.editor,e,t,o,i,n,s);return r?s&&s.containsRange(r)||r&&!this.editor.model.canEditAt(r)?(this.removeDropMarker(),null):(this._updateDropMarkerThrottled(r),r):null}getFinalDropRange(e,t,o,i,n,s){const r=kf(this.editor,e,t,o,i,n,s);return this.removeDropMarker(),r}removeDropMarker(){const e=this.editor.model;this.removeDropMarkerDelayed.cancel(),this._updateDropMarkerThrottled.cancel(),this._dropTargetLineView.isVisible=!1,e.markers.has("drop-target")&&e.change((e=>{e.removeMarker("drop-target")}))}_setupDropMarker(){const e=this.editor;e.ui.view.body.add(this._dropTargetLineView),e.conversion.for("editingDowncast").markerToHighlight({model:"drop-target",view:{classes:["ck-clipboard-drop-target-range"]}}),e.conversion.for("editingDowncast").markerToElement({model:"drop-target",view:(t,{writer:o})=>{if(e.model.schema.checkChild(t.markerRange.start,"$text"))return this._dropTargetLineView.isVisible=!1,this._createDropTargetPosition(o);t.markerRange.isCollapsed?this._updateDropTargetLine(t.markerRange):this._dropTargetLineView.isVisible=!1}})}_updateDropMarker(e){const t=this.editor,o=t.model.markers;t.model.change((t=>{o.has("drop-target")?o.get("drop-target").getRange().isEqual(e)||t.updateMarker("drop-target",{range:e}):t.addMarker("drop-target",{range:e,usingOperation:!1,affectsData:!1})}))}_createDropTargetPosition(e){return e.createUIElement("span",{class:"ck ck-clipboard-drop-target-position"},(function(e){const t=this.toDomElement(e);return t.append("⁠",e.createElement("span"),"⁠"),t}))}_updateDropTargetLine(e){const t=this.editor.editing,o=e.start.nodeBefore,i=e.start.nodeAfter,n=e.start.parent,s=o?t.mapper.toViewElement(o):null,r=s?t.view.domConverter.mapViewToDom(s):null,a=i?t.mapper.toViewElement(i):null,l=a?t.view.domConverter.mapViewToDom(a):null,c=t.mapper.toViewElement(n);if(!c)return;const d=t.view.domConverter.mapViewToDom(c),u=this._getScrollableRect(c),{scrollX:h,scrollY:m}=J.window,g=r?new ut(r):null,p=l?new ut(l):null,f=new ut(d).excludeScrollbarsAndBorders(),b=g?g.bottom:f.top,w=p?p.top:f.bottom,y=J.window.getComputedStyle(d),_=b<=w?(b+w)/2:w;if(u.top<_&&_a.schema.checkChild(s,e)))){if(a.schema.checkChild(s,"$text"))return a.createRange(s);if(t)return Cf(e,xf(e,t.parent),i,n)}}}else if(a.schema.isInline(c))return Cf(e,c,i,n);if(a.schema.isBlock(c))return Cf(e,c,i,n);if(a.schema.checkChild(c,"$block")){const t=Array.from(c.getChildren()).filter((t=>t.is("element")&&!vf(e,t)));let o=0,s=t.length;if(0==s)return a.createRange(a.createPositionAt(c,"end"));for(;o{o?(this.forceDisabled("readOnlyMode"),this._isBlockDragging=!1):this.clearForceDisabled("readOnlyMode")})),Y.isAndroid&&this.forceDisabled("noAndroidSupport"),e.plugins.has("BlockToolbar")){const t=e.plugins.get("BlockToolbar").buttonView.element;this._domEmitter.listenTo(t,"dragstart",((e,t)=>this._handleBlockDragStart(t))),this._domEmitter.listenTo(J.document,"dragover",((e,t)=>this._handleBlockDragging(t))),this._domEmitter.listenTo(J.document,"drop",((e,t)=>this._handleBlockDragging(t))),this._domEmitter.listenTo(J.document,"dragend",(()=>this._handleBlockDragEnd()),{useCapture:!0}),this.isEnabled&&t.setAttribute("draggable","true"),this.on("change:isEnabled",((e,o,i)=>{t.setAttribute("draggable",i?"true":"false")}))}}destroy(){return this._domEmitter.stopListening(),super.destroy()}_handleBlockDragStart(e){if(!this.isEnabled)return;const t=this.editor.model,o=t.document.selection,i=this.editor.editing.view,n=Array.from(o.getSelectedBlocks()),s=t.createRange(t.createPositionBefore(n[0]),t.createPositionAfter(n[n.length-1]));t.change((e=>e.setSelection(s))),this._isBlockDragging=!0,i.focus(),i.getObserver(df).onDomEvent(e)}_handleBlockDragging(e){if(!this.isEnabled||!this._isBlockDragging)return;const t=e.clientX+("ltr"==this.editor.locale.contentLanguageDirection?100:-100),o=e.clientY,i=document.elementFromPoint(t,o),n=this.editor.editing.view;i&&i.closest(".ck-editor__editable")&&n.getObserver(df).onDomEvent({...e,type:e.type,dataTransfer:e.dataTransfer,target:i,clientX:t,clientY:o,preventDefault:()=>e.preventDefault(),stopPropagation:()=>e.stopPropagation()})}_handleBlockDragEnd(){this._isBlockDragging=!1}}class Tf extends fc{_draggedRange;_draggingUid;_draggableElement;_clearDraggableAttributesDelayed=co((()=>this._clearDraggableAttributes()),40);_blockMode=!1;_domEmitter=new(et());_previewContainer;static get pluginName(){return"DragDrop"}static get isOfficialPlugin(){return!0}static get requires(){return[bf,vp,_f,Ef]}init(){const e=this.editor,t=e.editing.view;this._draggedRange=null,this._draggingUid="",this._draggableElement=null,t.addObserver(df),t.addObserver(sl),this._setupDragging(),this._setupContentInsertionIntegration(),this._setupClipboardInputIntegration(),this._setupDraggableAttributeHandling(),this.listenTo(e,"change:isReadOnly",((e,t,o)=>{o?this.forceDisabled("readOnlyMode"):this.clearForceDisabled("readOnlyMode")})),this.on("change:isEnabled",((e,t,o)=>{o||this._finalizeDragging(!1)})),Y.isAndroid&&this.forceDisabled("noAndroidSupport")}destroy(){return this._draggedRange&&(this._draggedRange.detach(),this._draggedRange=null),this._previewContainer&&this._previewContainer.remove(),this._domEmitter.stopListening(),this._clearDraggableAttributesDelayed.cancel(),super.destroy()}_setupDragging(){const e=this.editor,t=e.model,o=e.editing.view,i=o.document,n=e.plugins.get(_f);this.listenTo(i,"dragstart",((o,i)=>{if(i.target?.is("editableElement"))return void i.preventDefault();if(this._prepareDraggedRange(i.target),!this._draggedRange)return void i.preventDefault();this._draggingUid=me();const n=this.isEnabled&&e.model.canEditAt(this._draggedRange);i.dataTransfer.effectAllowed=n?"copyMove":"copy",i.dataTransfer.setData("application/ckeditor5-dragging-uid",this._draggingUid);const s=t.createSelection(this._draggedRange.toRange());this.editor.plugins.get("ClipboardPipeline")._fireOutputTransformationEvent(i.dataTransfer,s,"dragstart");const{dataTransfer:r,domTarget:a,domEvent:l}=i,{clientX:c}=l;this._updatePreview({dataTransfer:r,domTarget:a,clientX:c}),i.stopPropagation(),n||(this._draggedRange.detach(),this._draggedRange=null,this._draggingUid="")}),{priority:"low"}),this.listenTo(i,"dragend",((e,t)=>{this._finalizeDragging(!t.dataTransfer.isCanceled&&"move"==t.dataTransfer.dropEffect)}),{priority:"low"}),this._domEmitter.listenTo(J.document,"dragend",(()=>{this._blockMode=!1}),{useCapture:!0}),this.listenTo(i,"dragenter",(()=>{this.isEnabled&&o.focus()})),this.listenTo(i,"dragleave",(()=>{n.removeDropMarkerDelayed()})),this.listenTo(i,"dragging",((e,t)=>{if(!this.isEnabled)return void(t.dataTransfer.dropEffect="none");const{clientX:o,clientY:i}=t.domEvent;n.updateDropMarker(t.target,t.targetRanges,o,i,this._blockMode,this._draggedRange)?(this._draggedRange||(t.dataTransfer.dropEffect="copy"),Y.isGecko||("copy"==t.dataTransfer.effectAllowed?t.dataTransfer.dropEffect="copy":["all","copyMove"].includes(t.dataTransfer.effectAllowed)&&(t.dataTransfer.dropEffect="move")),e.stop()):t.dataTransfer.dropEffect="none"}),{priority:"low"})}_setupClipboardInputIntegration(){const e=this.editor,t=e.editing.view.document,o=e.plugins.get(_f);this.listenTo(t,"clipboardInput",((t,i)=>{if("drop"!=i.method)return;const{clientX:n,clientY:s}=i.domEvent,r=o.getFinalDropRange(i.target,i.targetRanges,n,s,this._blockMode,this._draggedRange);if(!r)return this._finalizeDragging(!1),void t.stop();this._draggedRange&&this._draggingUid!=i.dataTransfer.getData("application/ckeditor5-dragging-uid")&&(this._draggedRange.detach(),this._draggedRange=null,this._draggingUid="");if("move"==Pf(i.dataTransfer)&&this._draggedRange&&this._draggedRange.containsRange(r,!0))return this._finalizeDragging(!1),void t.stop();i.targetRanges=[e.editing.mapper.toViewRange(r)]}),{priority:"high"})}_setupContentInsertionIntegration(){const e=this.editor.plugins.get(bf);e.on("contentInsertion",((e,t)=>{if(!this.isEnabled||"drop"!==t.method)return;const o=t.targetRanges.map((e=>this.editor.editing.mapper.toModelRange(e)));this.editor.model.change((e=>e.setSelection(o)))}),{priority:"high"}),e.on("contentInsertion",((e,t)=>{if(!this.isEnabled||"drop"!==t.method)return;const o="move"==Pf(t.dataTransfer),i=!t.resultRange||!t.resultRange.isCollapsed;this._finalizeDragging(i&&o)}),{priority:"lowest"})}_setupDraggableAttributeHandling(){const e=this.editor,t=e.editing.view,o=t.document;this.listenTo(o,"pointerdown",((i,n)=>{if(Y.isAndroid||!n)return;this._clearDraggableAttributesDelayed.cancel();let s=Sf(n.target);if(Y.isBlink&&!e.isReadOnly&&!s&&!o.selection.isCollapsed){const e=o.selection.getSelectedElement();e&&ip(e)||(s=o.selection.editableElement)}s&&(t.change((e=>{e.setAttribute("draggable","true",s)})),this._draggableElement=e.editing.mapper.toModelElement(s))})),this.listenTo(o,"pointerup",(()=>{Y.isAndroid||this._clearDraggableAttributesDelayed()}))}_clearDraggableAttributes(){const e=this.editor.editing;e.view.change((t=>{this._draggableElement&&"$graveyard"!=this._draggableElement.root.rootName&&t.removeAttribute("draggable",e.mapper.toViewElement(this._draggableElement)),this._draggableElement=null}))}_finalizeDragging(e){const t=this.editor,o=t.model;if(t.plugins.get(_f).removeDropMarker(),this._clearDraggableAttributes(),t.plugins.has("WidgetToolbarRepository")){t.plugins.get("WidgetToolbarRepository").clearForceDisabled("dragDrop")}this._draggingUid="",this._previewContainer&&(this._previewContainer.remove(),this._previewContainer=void 0),this._draggedRange&&(e&&this.isEnabled&&o.change((e=>{const t=o.createSelection(this._draggedRange);o.deleteContent(t,{doNotAutoparagraph:!0});const i=t.getFirstPosition().parent;i.isEmpty&&!o.schema.checkChild(i,"$text")&&o.schema.checkChild(i,"paragraph")&&e.insertElement("paragraph",i,0)})),this._draggedRange.detach(),this._draggedRange=null)}_prepareDraggedRange(e){const t=this.editor,o=t.model,i=o.document.selection,n=e?Sf(e):null;if(n){const e=t.editing.mapper.toModelElement(n);if(this._draggedRange=Ts.fromRange(o.createRangeOn(e)),this._blockMode=o.schema.isBlock(e),t.plugins.has("WidgetToolbarRepository")){t.plugins.get("WidgetToolbarRepository").forceDisabled("dragDrop")}return}if(i.isCollapsed&&!i.getFirstPosition().parent.isEmpty)return;const s=Array.from(i.getSelectedBlocks()),r=i.getFirstRange();if(0==s.length)return void(this._draggedRange=Ts.fromRange(r));const a=If(o,s);if(s.length>1)this._draggedRange=Ts.fromRange(a),this._blockMode=!0;else if(1==s.length){const e=r.start.isTouching(a.start)&&r.end.isTouching(a.end);this._draggedRange=Ts.fromRange(e?a:r),this._blockMode=e}o.change((e=>e.setSelection(this._draggedRange.toRange())))}_updatePreview({dataTransfer:e,domTarget:t,clientX:o}){const i=this.editor.editing.view,n=i.document.selection.editableElement,s=i.domConverter.mapViewToDom(n),r=J.window.getComputedStyle(s);this._previewContainer?this._previewContainer.firstElementChild&&this._previewContainer.removeChild(this._previewContainer.firstElementChild):(this._previewContainer=Ke(J.document,"div",{style:"position: fixed; left: -999999px;"}),J.document.body.appendChild(this._previewContainer));const a=Ke(J.document,"div");a.className="ck ck-content ck-clipboard-preview";const l=new ut(s),c=parseFloat(r.paddingLeft),d=parseFloat(r.paddingRight),u=parseFloat(r.width)-c-d;if(s.contains(t)){if(!Y.isiOS)return;a.style.maxWidth=`${u}px`,a.style.padding="10px",a.style.minWidth="200px",a.style.minHeight="20px",a.style.boxSizing="border-box",a.style.backgroundColor="var(--ck-color-base-background)"}else if(Y.isiOS)a.style.width=`${u}px`,a.style.backgroundColor="var(--ck-color-base-background)";else{const e=l.left-o+c;a.style.width=`${u+e}px`,a.style.paddingLeft=`${e}px`}i.domConverter.setContentOf(a,e.getData("text/html")),e.setDragImage(a,0,0),this._previewContainer.appendChild(a)}}function Pf(e){return Y.isGecko?e.dropEffect:["all","copyMove"].includes(e.effectAllowed)?"move":"copy"}function Sf(e){if(e.is("editableElement"))return null;if(e.hasClass("ck-widget__selection-handle"))return e.findAncestor(ip);if(ip(e))return e;const t=e.findAncestor((e=>ip(e)||e.is("editableElement")));return ip(t)?t:null}function If(e,t){const o=t[0],i=t[t.length-1],n=o.getCommonAncestor(i),s=e.createPositionBefore(o),r=e.createPositionAfter(i);if(n&&n.is("element")&&!e.schema.isLimit(n)){const t=e.createRangeOn(n),o=s.isTouching(t.start),i=r.isTouching(t.end);if(o&&i)return If(e,[n])}return e.createRange(s,r)}class Rf extends fc{static get pluginName(){return"PastePlainText"}static get isOfficialPlugin(){return!0}static get requires(){return[bf]}init(){const e=this.editor,t=e.model,o=e.editing.view,i=t.document.selection;o.addObserver(df),e.plugins.get(bf).on("contentInsertion",((e,o)=>{(function(e,t){let o=t.createRangeIn(e);if(1==e.childCount){const i=e.getChild(0);i.is("element")&&t.schema.isBlock(i)&&!t.schema.isObject(i)&&!t.schema.isLimit(i)&&(o=t.createRangeIn(i))}for(const e of o.getItems()){if(!t.schema.isInline(e))return!1;if(Array.from(e.getAttributeKeys()).find((e=>t.schema.getAttributeProperties(e).isFormatting)))return!1}return!0})(o.content,t)&&t.change((e=>{const n=Array.from(i.getAttributes()).filter((([e])=>t.schema.getAttributeProperties(e).isFormatting));i.isCollapsed||t.deleteContent(i,{doNotAutoparagraph:!0}),n.push(...i.getAttributes());const s=e.createRangeIn(o.content);for(const o of s.getItems())for(const i of n)t.schema.checkAttribute(o,i[0])&&e.setAttribute(i[0],i[1],o)}))}))}}class Of extends fc{static get pluginName(){return"Clipboard"}static get isOfficialPlugin(){return!0}static get requires(){return[ff,bf,Tf,Rf]}init(){const e=this.editor,t=this.editor.t;e.accessibility.addKeystrokeInfos({keystrokes:[{label:t("Copy selected content"),keystroke:"CTRL+C"},{label:t("Paste content"),keystroke:"CTRL+V"},{label:t("Paste content as plain text"),keystroke:"CTRL+SHIFT+V"}]})}}class Vf extends wc{_stack=[];_createdBatches=new WeakSet;constructor(e){super(e),this.refresh(),this._isEnabledBasedOnSelection=!1,this.listenTo(e.data,"set",((e,t)=>{t[1]={...t[1]};const o=t[1];o.batchType||(o.batchType={isUndoable:!1})}),{priority:"high"}),this.listenTo(e.data,"set",((e,t)=>{t[1].batchType.isUndoable||this.clearStack()}))}refresh(){this.isEnabled=this._stack.length>0}get createdBatches(){return this._createdBatches}addBatch(e){const t=this.editor.model.document.selection,o={ranges:t.hasOwnRange?Array.from(t.getRanges()):[],isBackward:t.isBackward};this._stack.push({batch:e,selection:o}),this.refresh()}clearStack(){this._stack=[],this.refresh()}_restoreSelection(e,t,o){const i=this.editor.model,n=i.document,s=[],r=e.map((e=>e.getTransformedByOperations(o))),a=r.flat();for(const e of r){const t=e.filter((e=>e.root!=n.graveyard)).filter((e=>!Ff(e,a)));t.length&&(Df(t),s.push(t[0]))}s.length&&i.change((e=>{e.setSelection(s,{backward:t})}))}_undo(e,t){const o=this.editor.model,i=o.document;this._createdBatches.add(t);const n=e.operations.slice().filter((e=>e.isDocumentOperation));n.reverse();for(const e of n){const n=e.baseVersion+1,s=Array.from(i.history.getOperations(n)),r=sa([e.getReversed()],s,{useRelations:!0,document:this.editor.model.document,padWithNoOps:!1,forceWeakRemove:!0}).operationsA;for(let n of r){const s=n.affectedSelectable;s&&!o.canEditAt(s)&&(n=new Jr(n.baseVersion)),t.addOperation(n),o.applyOperation(n),i.history.setOperationAsUndone(e,n)}}}}function Df(e){e.sort(((e,t)=>e.start.isBefore(t.start)?-1:1));for(let t=1;tt!==e&&t.containsRange(e,!0)))}class Mf extends Vf{execute(e=null){const t=e?this._stack.findIndex((t=>t.batch==e)):this._stack.length-1,o=this._stack.splice(t,1)[0],i=this.editor.model.createBatch({isUndo:!0});this.editor.model.enqueueChange(i,(()=>{this._undo(o.batch,i);const e=this.editor.model.document.history.getOperations(o.batch.baseVersion);this._restoreSelection(o.selection.ranges,o.selection.isBackward,e)})),this.fire("revert",o.batch,i),this.refresh()}}class Nf extends Vf{execute(){const e=this._stack.pop(),t=this.editor.model.createBatch({isUndo:!0});this.editor.model.enqueueChange(t,(()=>{const o=e.batch.operations[e.batch.operations.length-1].baseVersion+1,i=this.editor.model.document.history.getOperations(o);this._restoreSelection(e.selection.ranges,e.selection.isBackward,i),this._undo(e.batch,t)})),this.fire("revert",e.batch,t),this.refresh()}}class Bf extends fc{_undoCommand;_redoCommand;_batchRegistry=new WeakSet;static get pluginName(){return"UndoEditing"}static get isOfficialPlugin(){return!0}init(){const e=this.editor,t=e.t;this._undoCommand=new Mf(e),this._redoCommand=new Nf(e),e.commands.add("undo",this._undoCommand),e.commands.add("redo",this._redoCommand),this.listenTo(e.model,"applyOperation",((e,t)=>{const o=t[0];if(!o.isDocumentOperation)return;const i=o.batch,n=this._redoCommand.createdBatches.has(i),s=this._undoCommand.createdBatches.has(i);this._batchRegistry.has(i)||(this._batchRegistry.add(i),i.isUndoable&&(n?this._undoCommand.addBatch(i):s||(this._undoCommand.addBatch(i),this._redoCommand.clearStack())))}),{priority:"highest"}),this.listenTo(this._undoCommand,"revert",((e,t,o)=>{this._redoCommand.addBatch(o)})),e.keystrokes.set("CTRL+Z","undo"),e.keystrokes.set("CTRL+Y","redo"),e.keystrokes.set("CTRL+SHIFT+Z","redo"),e.accessibility.addKeystrokeInfos({keystrokes:[{label:t("Undo"),keystroke:"CTRL+Z"},{label:t("Redo"),keystroke:[["CTRL+Y"],["CTRL+SHIFT+Z"]]}]})}}class Lf extends fc{static get pluginName(){return"UndoUI"}static get isOfficialPlugin(){return!0}init(){const e=this.editor,t=e.locale,o=e.t,i="ltr"==t.uiLanguageDirection?nd:td,n="ltr"==t.uiLanguageDirection?td:nd;this._addButtonsToFactory("undo",o("Undo"),"CTRL+Z",i),this._addButtonsToFactory("redo",o("Redo"),"CTRL+Y",n)}_addButtonsToFactory(e,t,o,i){const n=this.editor;n.ui.componentFactory.add(e,(()=>{const n=this._createButton(Lu,e,t,o,i);return n.set({tooltip:!0}),n})),n.ui.componentFactory.add("menuBar:"+e,(()=>this._createButton(sh,e,t,o,i)))}_createButton(e,t,o,i,n){const s=this.editor,r=s.locale,a=s.commands.get(t),l=new e(r);return l.set({label:o,icon:n,keystroke:i}),l.bind("isEnabled").to(a,"isEnabled"),this.listenTo(l,"execute",(()=>{s.execute(t),s.editing.view.focus()})),l}}class zf extends fc{static get requires(){return[Bf,Lf]}static get pluginName(){return"Undo"}static get isOfficialPlugin(){return!0}}function jf(e){return e}function qf(e){return e.createContainerElement("figure",{class:"image"},[e.createEmptyElement("img"),e.createSlot("children")])}function $f(e,t){const o=e.plugins.get("ImageUtils"),i=e.plugins.has("ImageInlineEditing")&&e.plugins.has("ImageBlockEditing");return e=>{if(!o.isInlineImageView(e))return null;if(!i)return n(e);return("block"==e.getStyle("display")||e.findAncestor(o.isBlockImageView)?"imageBlock":"imageInline")!==t?null:n(e)};function n(e){const t={name:!0};return e.hasAttribute("src")&&(t.attributes=["src"]),t}}function Hf(e,t){const o=to(t.getSelectedBlocks());return!o||e.isObject(o)||o.isEmpty&&"listItem"!=o.name?"imageBlock":"imageInline"}function Wf(e){return e&&e.endsWith("px")?parseInt(e):null}function Uf(e){const t=Wf(e.getStyle("width")),o=Wf(e.getStyle("height"));return!(!t||!o)}const Kf=/^(image|image-inline)$/;class Gf extends fc{_domEmitter=new(et());static get pluginName(){return"ImageUtils"}static get isOfficialPlugin(){return!0}isImage(e){return this.isInlineImage(e)||this.isBlockImage(e)}isInlineImageView(e){return!!e&&e.is("element","img")}isBlockImageView(e){return!!e&&e.is("element","figure")&&e.hasClass("image")}insertImage(e={},t=null,o=null,i={}){const n=this.editor,s=n.model,r=s.document.selection,a=Jf(n,t||r,o);e={...Object.fromEntries(r.getAttributes()),...e};for(const t in e)s.schema.checkAttribute(a,t)||delete e[t];return s.change((o=>{const{setImageSizes:n=!0}=i,r=o.createElement(a,e);return s.insertObject(r,t,null,{setSelection:"on",findOptimalPosition:t||"imageInline"==a?void 0:"auto"}),r.parent?(n&&this.setImageNaturalSizeAttributes(r),r):null}))}setImageNaturalSizeAttributes(e){const t=e.getAttribute("src");t&&(e.getAttribute("width")||e.getAttribute("height")||this.editor.model.change((o=>{const i=new J.window.Image;this._domEmitter.listenTo(i,"load",(()=>{e.getAttribute("width")||e.getAttribute("height")||this.editor.model.enqueueChange(o.batch,(t=>{t.setAttribute("width",i.naturalWidth,e),t.setAttribute("height",i.naturalHeight,e)})),this._domEmitter.stopListening(i,"load")})),i.src=t})))}getClosestSelectedImageWidget(e){const t=e.getFirstPosition();if(!t)return null;const o=e.getSelectedElement();if(o&&this.isImageWidget(o))return o;let i=t.parent;for(;i;){if(i.is("element")&&this.isImageWidget(i))return i;i=i.parent}return null}getClosestSelectedImageElement(e){const t=e.getSelectedElement();return this.isImage(t)?t:e.getFirstPosition().findAncestor("imageBlock")}getImageWidgetFromImageView(e){return e.findAncestor({classes:Kf})}isImageAllowed(){const e=this.editor.model.document.selection;return function(e,t){const o=Jf(e,t,null);if("imageBlock"==o){const o=function(e,t){const o=cp(e,t),i=o.start.parent;if(i.isEmpty&&!i.is("element","$root"))return i.parent;return i}(t,e.model);if(e.model.schema.checkChild(o,"imageBlock"))return!0}else if(e.model.schema.checkChild(t.focus,"imageInline"))return!0;return!1}(this.editor,e)&&function(e){return[...e.focus.getAncestors()].every((e=>!e.is("element","imageBlock")))}(e)}toImageWidget(e,t,o){t.setCustomProperty("image",!0,e);return np(e,t,{label:()=>{const t=this.findViewImgElement(e).getAttribute("alt");return t?`${t} ${o}`:o}})}isImageWidget(e){return!!e.getCustomProperty("image")&&ip(e)}isBlockImage(e){return!!e&&e.is("element","imageBlock")}isInlineImage(e){return!!e&&e.is("element","imageInline")}findViewImgElement(e){if(this.isInlineImageView(e))return e;const t=this.editor.editing.view;for(const{item:o}of t.createRangeIn(e))if(this.isInlineImageView(o))return o}destroy(){return this._domEmitter.stopListening(),super.destroy()}}function Jf(e,t,o){const i=e.model.schema,n=e.config.get("image.insert.type");return e.plugins.has("ImageBlockEditing")?e.plugins.has("ImageInlineEditing")?o||("inline"===n?"imageInline":"auto"!==n?"imageBlock":t.is("selection")?Hf(i,t):i.checkChild(t,"imageInline")?"imageInline":"imageBlock"):"imageBlock":"imageInline"}new RegExp(String(/^(http(s)?:\/\/)?[\w-]+\.[\w.~:/[\]@!$&'()*+,;=%-]+/.source+/\.(jpg|jpeg|png|gif|ico|webp|JPG|JPEG|PNG|GIF|ICO|WEBP)/.source+/(\?[\w.~:/[\]@!$&'()*+,;=%-]*)?/.source+/(#[\w.~:/[\]@!$&'()*+,;=%-]*)?$/.source));class Zf extends wc{refresh(){const e=this.editor.plugins.get("ImageUtils").getClosestSelectedImageElement(this.editor.model.document.selection);this.isEnabled=!!e,this.isEnabled&&e.hasAttribute("alt")?this.value=e.getAttribute("alt"):this.value=!1}execute(e){const t=this.editor,o=t.plugins.get("ImageUtils"),i=t.model,n=o.getClosestSelectedImageElement(i.document.selection);i.change((t=>{t.setAttribute("alt",e.newValue,n)}))}}class Qf extends fc{static get requires(){return[Gf]}static get pluginName(){return"ImageTextAlternativeEditing"}static get isOfficialPlugin(){return!0}init(){this.editor.commands.add("imageTextAlternative",new Zf(this.editor))}}class Yf extends Au{focusTracker;keystrokes;labeledInput;backButtonView;saveButtonView;children;_focusables;_focusCycler;constructor(e){super(e),this.focusTracker=new oo,this.keystrokes=new ro,this.backButtonView=this._createBackButton(),this.saveButtonView=this._createSaveButton(),this.labeledInput=this._createLabeledInputView(),this.children=this.createCollection([this._createHeaderView()]),this.children.add(new Km(e,{children:[this.labeledInput,this.saveButtonView],class:["ck-form__row_with-submit","ck-form__row_large-top-padding"]})),this._focusables=new tu,this.keystrokes.set("Esc",((e,t)=>{this.fire("cancel"),t()})),this._focusCycler=new qu({focusables:this._focusables,focusTracker:this.focusTracker,keystrokeHandler:this.keystrokes,actions:{focusPrevious:"shift + tab",focusNext:"tab"}}),this.setTemplate({tag:"form",attributes:{class:["ck","ck-form","ck-text-alternative-form","ck-responsive-form"],tabindex:"-1"},children:this.children})}render(){super.render(),Ou({view:this});[this.backButtonView,this.labeledInput,this.saveButtonView].forEach((e=>{this._focusables.add(e),this.focusTracker.add(e.element)})),this.keystrokes.listenTo(this.element)}destroy(){super.destroy(),this.focusTracker.destroy(),this.keystrokes.destroy()}_createBackButton(){const e=this.locale.t,t=new Lu(this.locale);return t.set({class:"ck-button-back",label:e("Back"),icon:ed,tooltip:!0}),t.delegate("execute").to(this,"cancel"),t}_createSaveButton(){const e=this.locale.t,t=new Lu(this.locale);return t.set({label:e("Save"),withText:!0,type:"submit",class:"ck-button-action ck-button-bold"}),t}_createHeaderView(){const e=this.locale.t,t=new ju(this.locale,{label:e("Text Alternative")});return t.children.add(this.backButtonView,0),t}_createLabeledInputView(){const e=this.locale.t,t=new Sh(this.locale,nm);return t.label=e("Text alternative"),t.class="ck-labeled-field-view_full-width",t}}function Xf(e){const t=e.editing.view,o=dh.defaultPositions,i=e.plugins.get("ImageUtils");return{target:t.domConverter.mapViewToDom(i.getClosestSelectedImageWidget(t.document.selection)),positions:[o.northArrowSouth,o.northArrowSouthWest,o.northArrowSouthEast,o.southArrowNorth,o.southArrowNorthWest,o.southArrowNorthEast,o.viewportStickyNorth]}}class eb extends fc{_balloon;_form;static get requires(){return[Qm]}static get pluginName(){return"ImageTextAlternativeUI"}static get isOfficialPlugin(){return!0}init(){this._createButton()}destroy(){super.destroy(),this._form&&this._form.destroy()}_createButton(){const e=this.editor,t=e.t;e.ui.componentFactory.add("imageTextAlternative",(o=>{const i=e.commands.get("imageTextAlternative"),n=new Lu(o);return n.set({label:t("Change image text alternative"),icon:'',tooltip:!0}),n.bind("isEnabled").to(i,"isEnabled"),n.bind("isOn").to(i,"value",(e=>!!e)),this.listenTo(n,"execute",(()=>{this._showForm()})),n}))}_createForm(){const e=this.editor,t=e.editing.view.document,o=e.plugins.get("ImageUtils");this._balloon=this.editor.plugins.get("ContextualBalloon"),this._form=new(Iu(Yf))(e.locale),this._form.render(),this.listenTo(this._form,"submit",(()=>{e.execute("imageTextAlternative",{newValue:this._form.labeledInput.fieldView.element.value}),this._hideForm(!0)})),this.listenTo(this._form,"cancel",(()=>{this._hideForm(!0)})),this.listenTo(e.ui,"update",(()=>{o.getClosestSelectedImageWidget(t.selection)?this._isVisible&&function(e){const t=e.plugins.get("ContextualBalloon");if(e.plugins.get("ImageUtils").getClosestSelectedImageWidget(e.editing.view.document.selection)){const o=Xf(e);t.updatePosition(o)}}(e):this._hideForm(!0)})),Su({emitter:this._form,activator:()=>this._isVisible,contextElements:()=>[this._balloon.view.element],callback:()=>this._hideForm()})}_showForm(){if(this._isVisible)return;this._form||this._createForm();const e=this.editor,t=e.commands.get("imageTextAlternative"),o=this._form.labeledInput;this._form.disableCssTransitions(),this._isInBalloon||this._balloon.add({view:this._form,position:Xf(e)}),o.fieldView.value=o.fieldView.element.value=t.value||"",this._form.labeledInput.fieldView.select(),this._form.enableCssTransitions()}_hideForm(e=!1){this._isInBalloon&&(this._form.focusTracker.isFocused&&this._form.saveButtonView.focus(),this._balloon.remove(this._form),e&&this.editor.editing.view.focus())}get _isVisible(){return!!this._balloon&&this._balloon.visibleView===this._form}get _isInBalloon(){return!!this._balloon&&this._balloon.hasView(this._form)}}class tb extends fc{static get requires(){return[Qf,eb]}static get pluginName(){return"ImageTextAlternative"}static get isOfficialPlugin(){return!0}}function ob(e,t){const o=(t,o,i)=>{if(!i.consumable.consume(o.item,t.name))return;const n=i.writer,s=i.mapper.toViewElement(o.item),r=e.findViewImgElement(s);null===o.attributeNewValue?(n.removeAttribute("srcset",r),n.removeAttribute("sizes",r)):o.attributeNewValue&&(n.setAttribute("srcset",o.attributeNewValue,r),n.setAttribute("sizes","100vw",r))};return e=>{e.on(`attribute:srcset:${t}`,o)}}function ib(e,t,o){const i=(t,o,i)=>{if(!i.consumable.consume(o.item,t.name))return;const n=i.writer,s=i.mapper.toViewElement(o.item),r=e.findViewImgElement(s);n.setAttribute(o.attributeKey,o.attributeNewValue||"",r)};return e=>{e.on(`attribute:${o}:${t}`,i)}}class nb extends Ln{observe(e){this.listenTo(e,"load",((e,t)=>{const o=t.target;this.checkShouldIgnoreEventFromTarget(o)||"IMG"==o.tagName&&this._fireEvents(t)}),{useCapture:!0})}stopObserving(e){this.stopListening(e)}_fireEvents(e){this.isEnabled&&(this.document.fire("layoutChanged"),this.document.fire("imageLoaded",e))}}class sb extends wc{constructor(e){super(e);const t=e.config.get("image.insert.type");e.plugins.has("ImageBlockEditing")||"block"===t&&be("image-block-plugin-required"),e.plugins.has("ImageInlineEditing")||"inline"===t&&be("image-inline-plugin-required")}refresh(){const e=this.editor.plugins.get("ImageUtils");this.isEnabled=e.isImageAllowed()}execute(e){const t=Qt(e.source),o=this.editor.model.document.selection,i=this.editor.plugins.get("ImageUtils"),n=Object.fromEntries(o.getAttributes());t.forEach(((t,s)=>{const r=o.getSelectedElement();if("string"==typeof t&&(t={src:t}),s&&r&&i.isImage(r)){const o=this.editor.model.createPositionAfter(r);i.insertImage({...t,...n},o,e.imageType)}else e.breakBlock?i.insertImage({...t,...n},o.getFirstPosition(),e.imageType):i.insertImage({...t,...n},null,e.imageType)}))}}class rb extends wc{constructor(e){super(e),this.decorate("cleanupImage")}refresh(){const e=this.editor.plugins.get("ImageUtils"),t=this.editor.model.document.selection.getSelectedElement();this.isEnabled=e.isImage(t),this.value=this.isEnabled?t.getAttribute("src"):null}execute(e){const t=this.editor.model.document.selection.getSelectedElement(),o=this.editor.plugins.get("ImageUtils");this.editor.model.change((i=>{i.setAttribute("src",e.source,t),this.cleanupImage(i,t),o.setImageNaturalSizeAttributes(t)}))}cleanupImage(e,t){e.removeAttribute("srcset",t),e.removeAttribute("sizes",t),e.removeAttribute("sources",t),e.removeAttribute("width",t),e.removeAttribute("height",t),e.removeAttribute("alt",t)}}class ab extends fc{static get requires(){return[Gf]}static get pluginName(){return"ImageEditing"}static get isOfficialPlugin(){return!0}init(){const e=this.editor,t=e.conversion;e.editing.view.addObserver(nb),t.for("upcast").attributeToAttribute({view:{name:"img",key:"alt"},model:"alt"}).attributeToAttribute({view:{name:"img",key:"srcset"},model:"srcset"});const o=new sb(e),i=new rb(e);e.commands.add("insertImage",o),e.commands.add("replaceImageSource",i),e.commands.add("imageInsert",o)}}class lb extends fc{static get requires(){return[Gf]}static get pluginName(){return"ImageSizeAttributes"}static get isOfficialPlugin(){return!0}afterInit(){this._registerSchema(),this._registerConverters("imageBlock"),this._registerConverters("imageInline")}_registerSchema(){const e=this.editor.model.schema;this.editor.plugins.has("ImageBlockEditing")&&e.extend("imageBlock",{allowAttributes:["width","height"]}),this.editor.plugins.has("ImageInlineEditing")&&e.extend("imageInline",{allowAttributes:["width","height"]})}_registerConverters(e){const t=this.editor,o=t.plugins.get("ImageUtils"),i="imageBlock"===e?"figure":"img";function n(t,i,n,s,r=!1){t.on(`attribute:${i}:${e}`,((t,i,a)=>{if(!a.consumable.consume(i.item,t.name))return;const l=a.writer,c=a.mapper.toViewElement(i.item),d=o.findViewImgElement(c);null!==i.attributeNewValue?l.setAttribute(n,i.attributeNewValue,d):l.removeAttribute(n,d);const u=i.item.getAttribute("width"),h=i.item.getAttribute("height"),m=u&&h;if(m&&r&&l.setAttribute("loading","lazy",d),i.item.hasAttribute("sources"))return;const g=i.item.hasAttribute("resizedWidth");("imageInline"!==e||g||s)&&m&&l.setStyle("aspect-ratio",`${u}/${h}`,d)}))}t.conversion.for("upcast").attributeToAttribute({view:{name:i,styles:{width:/.+/}},model:{key:"width",value:e=>Uf(e)?Wf(e.getStyle("width")):null}}).attributeToAttribute({view:{name:i,key:"width"},model:"width"}).attributeToAttribute({view:{name:i,styles:{height:/.+/}},model:{key:"height",value:e=>Uf(e)?Wf(e.getStyle("height")):null}}).attributeToAttribute({view:{name:i,key:"height"},model:"height"}),t.conversion.for("editingDowncast").add((e=>{n(e,"width","width",!0,!0),n(e,"height","height",!0,!0)})),t.conversion.for("dataDowncast").add((e=>{n(e,"width","width",!1),n(e,"height","height",!1)})),t.conversion.for("upcast").add((e=>{e.on("element:img",((e,t,o)=>{const i=t.viewItem.getAttribute("width"),n=t.viewItem.getAttribute("height");i&&n&&o.consumable.consume(t.viewItem,{styles:["aspect-ratio"]})}))}))}}class cb extends wc{_modelElementName;constructor(e,t){super(e),this._modelElementName=t}refresh(){const e=this.editor.plugins.get("ImageUtils"),t=e.getClosestSelectedImageElement(this.editor.model.document.selection);"imageBlock"===this._modelElementName?this.isEnabled=e.isInlineImage(t):this.isEnabled=e.isBlockImage(t)}execute(e={}){const t=this.editor,o=this.editor.model,i=t.plugins.get("ImageUtils"),n=i.getClosestSelectedImageElement(o.document.selection),s=Object.fromEntries(n.getAttributes());return s.src||s.uploadId?o.change((t=>{const{setImageSizes:r=!0}=e,a=Array.from(o.markers).filter((e=>e.getRange().containsItem(n))),l=i.insertImage(s,o.createSelection(n,"on"),this._modelElementName,{setImageSizes:r});if(!l)return null;const c=t.createRangeOn(l);for(const e of a){const o=e.getRange(),i="$graveyard"!=o.root.rootName?o.getJoined(c,!0):c;t.updateMarker(e,{range:i})}return{oldElement:n,newElement:l}})):null}}class db extends fc{static get requires(){return[Gf]}static get pluginName(){return"ImagePlaceholder"}static get isOfficialPlugin(){return!0}afterInit(){this._setupSchema(),this._setupConversion(),this._setupLoadListener()}_setupSchema(){const e=this.editor.model.schema;e.isRegistered("imageBlock")&&e.extend("imageBlock",{allowAttributes:["placeholder"]}),e.isRegistered("imageInline")&&e.extend("imageInline",{allowAttributes:["placeholder"]})}_setupConversion(){const e=this.editor,t=e.conversion,o=e.plugins.get("ImageUtils");t.for("editingDowncast").add((e=>{e.on("attribute:placeholder",((e,t,i)=>{if(!i.consumable.test(t.item,e.name))return;if(!t.item.is("element","imageBlock")&&!t.item.is("element","imageInline"))return;i.consumable.consume(t.item,e.name);const n=i.writer,s=i.mapper.toViewElement(t.item),r=o.findViewImgElement(s);t.attributeNewValue?(n.addClass("image_placeholder",r),n.setStyle("background-image",`url(${t.attributeNewValue})`,r),n.setCustomProperty("editingPipeline:doNotReuseOnce",!0,r)):(n.removeClass("image_placeholder",r),n.removeStyle("background-image",r))}))}))}_setupLoadListener(){const e=this.editor,t=e.model,o=e.editing,i=o.view,n=e.plugins.get("ImageUtils");i.addObserver(nb),this.listenTo(i.document,"imageLoaded",((e,s)=>{const r=i.domConverter.mapDomToView(s.target);if(!r)return;const a=n.getImageWidgetFromImageView(r);if(!a)return;const l=o.mapper.toModelElement(a);l&&l.hasAttribute("placeholder")&&t.enqueueChange({isUndoable:!1},(e=>{e.removeAttribute("placeholder",l)}))}))}}class ub extends fc{static get requires(){return[ab,lb,Gf,db,bf]}static get pluginName(){return"ImageBlockEditing"}static get isOfficialPlugin(){return!0}init(){const e=this.editor;e.model.schema.register("imageBlock",{inheritAllFrom:"$blockObject",allowAttributes:["alt","src","srcset"]}),this._setupConversion(),e.plugins.has("ImageInlineEditing")&&(e.commands.add("imageTypeBlock",new cb(this.editor,"imageBlock")),this._setupClipboardIntegration())}_setupConversion(){const e=this.editor,t=e.t,o=e.conversion,i=e.plugins.get("ImageUtils");o.for("dataDowncast").elementToStructure({model:"imageBlock",view:(e,{writer:t})=>qf(t)}),o.for("editingDowncast").elementToStructure({model:"imageBlock",view:(e,{writer:o})=>i.toImageWidget(qf(o),o,t("image widget"))}),o.for("downcast").add(ib(i,"imageBlock","src")).add(ib(i,"imageBlock","alt")).add(ob(i,"imageBlock")),o.for("upcast").elementToElement({view:$f(e,"imageBlock"),model:(e,{writer:t})=>t.createElement("imageBlock",e.hasAttribute("src")?{src:e.getAttribute("src")}:void 0)}).add(function(e){const t=(t,o,i)=>{if(!i.consumable.test(o.viewItem,{name:!0,classes:"image"}))return;const n=e.findViewImgElement(o.viewItem);if(!n||!i.consumable.test(n,{name:!0}))return;i.consumable.consume(o.viewItem,{name:!0,classes:"image"});const s=to(i.convertItem(n,o.modelCursor).modelRange.getItems());s?(i.convertChildren(o.viewItem,s),i.updateConversionResult(s,o)):i.consumable.revert(o.viewItem,{name:!0,classes:"image"})};return e=>{e.on("element:figure",t)}}(i))}_setupClipboardIntegration(){const e=this.editor,t=e.model,o=e.editing.view,i=e.plugins.get("ImageUtils"),n=e.plugins.get("ClipboardPipeline");this.listenTo(n,"inputTransformation",((n,s)=>{const r=Array.from(s.content.getChildren());let a;if(!r.every(i.isInlineImageView))return;a=s.targetRanges?e.editing.mapper.toModelRange(s.targetRanges[0]):t.document.selection.getFirstRange();const l=t.createSelection(a);if("imageBlock"===Hf(t.schema,l)){const e=new rl(o.document),t=r.map((t=>e.createElement("figure",{class:"image"},t)));s.content=e.createDocumentFragment(t)}})),this.listenTo(n,"contentInsertion",((e,o)=>{"paste"===o.method&&t.change((e=>{const t=e.createRangeIn(o.content);for(const e of t.getItems())e.is("element","imageBlock")&&i.setImageNaturalSizeAttributes(e)}))}))}}class hb extends Au{focusTracker;keystrokes;_focusables;_focusCycler;children;constructor(e,t=[]){super(e),this.focusTracker=new oo,this.keystrokes=new ro,this._focusables=new tu,this.children=this.createCollection(),this._focusCycler=new qu({focusables:this._focusables,focusTracker:this.focusTracker,keystrokeHandler:this.keystrokes,actions:{focusPrevious:"shift + tab",focusNext:"tab"}});for(const e of t)this.children.add(e),this._focusables.add(e),e instanceof kh&&this._focusables.addMany(e.children);this.setTemplate({tag:"form",attributes:{class:["ck","ck-image-insert-form"],tabindex:-1},children:this.children})}render(){super.render(),Ou({view:this});for(const e of this._focusables)this.focusTracker.add(e.element);this.keystrokes.listenTo(this.element);const e=e=>e.stopPropagation();this.keystrokes.set("arrowright",e),this.keystrokes.set("arrowleft",e),this.keystrokes.set("arrowup",e),this.keystrokes.set("arrowdown",e)}destroy(){super.destroy(),this.focusTracker.destroy(),this.keystrokes.destroy()}focus(){this._focusCycler.focusFirst()}}class mb extends fc{static get pluginName(){return"ImageInsertUI"}static get isOfficialPlugin(){return!0}static get requires(){return[Gf]}dropdownView;_integrations=new Map;constructor(e){super(e),e.config.define("image.insert.integrations",["upload","assetManager","url"])}init(){const e=this.editor,t=e.model.document.selection,o=e.plugins.get("ImageUtils");this.set("isImageSelected",!1),this.listenTo(e.model.document,"change",(()=>{this.isImageSelected=o.isImage(t.getSelectedElement())}));const i=e=>this._createToolbarComponent(e);e.ui.componentFactory.add("insertImage",i),e.ui.componentFactory.add("imageInsert",i),e.ui.componentFactory.add("menuBar:insertImage",(e=>this._createMenuBarComponent(e)))}registerIntegration({name:e,observable:t,buttonViewCreator:o,formViewCreator:i,menuBarButtonViewCreator:n,requiresForm:s=!1,override:r=!1}){this._integrations.has(e)&&!r&&be("image-insert-integration-exists",{name:e}),this._integrations.set(e,{observable:t,buttonViewCreator:o,menuBarButtonViewCreator:n,formViewCreator:i,requiresForm:s})}_createToolbarComponent(e){const t=this.editor,o=e.t,i=this._prepareIntegrations();if(!i.length)return null;let n;const s=i[0];if(1==i.length){if(!s.requiresForm)return s.buttonViewCreator(!0);n=s.buttonViewCreator(!0)}else{const t=s.buttonViewCreator(!1);n=new Jh(e,t),n.tooltip=!0,n.bind("label").to(this,"isImageSelected",(e=>o(e?"Replace image":"Insert image")))}const r=this.dropdownView=Zh(e,n),a=i.map((({observable:e})=>"function"==typeof e?e():e));return r.bind("isEnabled").toMany(a,"isEnabled",((...e)=>e.some((e=>e)))),r.once("change:isOpen",(()=>{const e=i.flatMap((({formViewCreator:e})=>e(1==i.length))),o=new hb(t.locale,e);r.panelView.children.add(o)})),r}_createMenuBarComponent(e){const t=e.t,o=this._prepareIntegrations();if(!o.length)return null;const i=o.flatMap((({menuBarButtonViewCreator:e})=>e(1==o.length))),n=new og(e),s=new ig(e);n.panelView.children.add(s),n.buttonView.set({icon:'',label:t("Image")});for(const t of i){const o=new Em(e,n);o.children.add(t),s.items.add(o),t.delegate("execute").to(n)}return n}_prepareIntegrations(){const e=this.editor.config.get("image.insert.integrations"),t=[];if(!e.length)return be("image-insert-integrations-not-specified"),t;for(const o of e)this._integrations.has(o)?t.push(this._integrations.get(o)):["upload","assetManager","url"].includes(o)||be("image-insert-unknown-integration",{item:o});return t.length||be("image-insert-integrations-not-registered"),t}}class gb extends fc{static get requires(){return[ub,vp,tb,mb]}static get pluginName(){return"ImageBlock"}static get isOfficialPlugin(){return!0}}class pb extends fc{static get requires(){return[ab,lb,Gf,db,bf]}static get pluginName(){return"ImageInlineEditing"}static get isOfficialPlugin(){return!0}init(){const e=this.editor;e.model.schema.register("imageInline",{inheritAllFrom:"$inlineObject",allowAttributes:["alt","src","srcset"],disallowIn:["caption"]}),this._setupConversion(),e.plugins.has("ImageBlockEditing")&&(e.commands.add("imageTypeInline",new cb(this.editor,"imageInline")),this._setupClipboardIntegration())}_setupConversion(){const e=this.editor,t=e.t,o=e.conversion,i=e.plugins.get("ImageUtils");o.for("dataDowncast").elementToElement({model:"imageInline",view:(e,{writer:t})=>t.createEmptyElement("img")}),o.for("editingDowncast").elementToStructure({model:"imageInline",view:(e,{writer:o})=>i.toImageWidget(function(e){return e.createContainerElement("span",{class:"image-inline"},e.createEmptyElement("img"))}(o),o,t("image widget"))}),o.for("downcast").add(ib(i,"imageInline","src")).add(ib(i,"imageInline","alt")).add(ob(i,"imageInline")),o.for("upcast").elementToElement({view:$f(e,"imageInline"),model:(e,{writer:t})=>t.createElement("imageInline",e.hasAttribute("src")?{src:e.getAttribute("src")}:void 0)})}_setupClipboardIntegration(){const e=this.editor,t=e.model,o=e.editing.view,i=e.plugins.get("ImageUtils"),n=e.plugins.get("ClipboardPipeline");this.listenTo(n,"inputTransformation",((n,s)=>{const r=Array.from(s.content.getChildren());let a;if(!r.every(i.isBlockImageView))return;a=s.targetRanges?e.editing.mapper.toModelRange(s.targetRanges[0]):t.document.selection.getFirstRange();const l=t.createSelection(a);if("imageInline"===Hf(t.schema,l)){const e=new rl(o.document),t=r.map((t=>1===t.childCount?(Array.from(t.getAttributes()).forEach((o=>e.setAttribute(...o,i.findViewImgElement(t)))),t.getChild(0)):t));s.content=e.createDocumentFragment(t)}})),this.listenTo(n,"contentInsertion",((e,o)=>{"paste"===o.method&&t.change((e=>{const t=e.createRangeIn(o.content);for(const e of t.getItems())e.is("element","imageInline")&&i.setImageNaturalSizeAttributes(e)}))}))}}class fb extends fc{static get requires(){return[pb,vp,tb,mb]}static get pluginName(){return"ImageInline"}static get isOfficialPlugin(){return!0}}class bb extends fc{static get pluginName(){return"ImageCaptionUtils"}static get isOfficialPlugin(){return!0}static get requires(){return[Gf]}getCaptionFromImageModelElement(e){for(const t of e.getChildren())if(t&&t.is("element","caption"))return t;return null}getCaptionFromModelSelection(e){const t=this.editor.plugins.get("ImageUtils"),o=e.getFirstPosition().findAncestor("caption");return o&&t.isBlockImage(o.parent)?o:null}matchImageCaptionViewElement(e){const t=this.editor.plugins.get("ImageUtils");return"figcaption"==e.name&&t.isBlockImageView(e.parent)?{name:!0}:null}}class wb extends wc{refresh(){const e=this.editor,t=e.plugins.get("ImageCaptionUtils"),o=e.plugins.get("ImageUtils");if(!e.plugins.has(ub))return this.isEnabled=!1,void(this.value=!1);const i=e.model.document.selection,n=i.getSelectedElement();if(!n){const e=t.getCaptionFromModelSelection(i);return this.isEnabled=!!e,void(this.value=!!e)}this.isEnabled=o.isImage(n),this.isEnabled?this.value=!!t.getCaptionFromImageModelElement(n):this.value=!1}execute(e={}){const{focusCaptionOnShow:t}=e;this.editor.model.change((e=>{this.value?this._hideImageCaption(e):this._showImageCaption(e,t)}))}_showImageCaption(e,t){const o=this.editor.model.document.selection,i=this.editor.plugins.get("ImageCaptionEditing"),n=this.editor.plugins.get("ImageUtils");let s=o.getSelectedElement();const r=i._getSavedCaption(s);n.isInlineImage(s)&&(this.editor.execute("imageTypeBlock"),s=o.getSelectedElement());const a=r||e.createElement("caption");e.append(a,s),t&&e.setSelection(a,"in")}_hideImageCaption(e){const t=this.editor,o=t.model.document.selection,i=t.plugins.get("ImageCaptionEditing"),n=t.plugins.get("ImageCaptionUtils");let s,r=o.getSelectedElement();r?s=n.getCaptionFromImageModelElement(r):(s=n.getCaptionFromModelSelection(o),r=s.parent),i._saveCaption(r,s),e.setSelection(r,"on"),e.remove(s)}}class yb extends fc{static get requires(){return[Gf,bb]}static get pluginName(){return"ImageCaptionEditing"}static get isOfficialPlugin(){return!0}_savedCaptionsMap;constructor(e){super(e),this._savedCaptionsMap=new WeakMap}init(){const e=this.editor,t=e.model.schema;t.isRegistered("caption")?t.extend("caption",{allowIn:"imageBlock"}):t.register("caption",{allowIn:"imageBlock",allowContentOf:"$block",isLimit:!0}),e.commands.add("toggleImageCaption",new wb(this.editor)),this._setupConversion(),this._setupImageTypeCommandsIntegration(),this._registerCaptionReconversion()}_setupConversion(){const e=this.editor,t=e.editing.view,o=e.plugins.get("ImageUtils"),i=e.plugins.get("ImageCaptionUtils"),n=e.t;e.conversion.for("upcast").elementToElement({view:e=>i.matchImageCaptionViewElement(e),model:"caption"}),e.conversion.for("dataDowncast").elementToElement({model:"caption",view:(e,{writer:t})=>o.isBlockImage(e.parent)?t.createContainerElement("figcaption"):null}),e.conversion.for("editingDowncast").elementToElement({model:"caption",view:(e,{writer:i})=>{if(!o.isBlockImage(e.parent))return null;const s=i.createEditableElement("figcaption");i.setCustomProperty("imageCaption",!0,s),s.placeholder=n("Enter image caption"),Yo({view:t,element:s,keepOnFocus:!0});const r=e.parent.getAttribute("alt");return lp(s,i,{label:r?n("Caption for image: %0",[r]):n("Caption for the image")})}})}_setupImageTypeCommandsIntegration(){const e=this.editor,t=e.plugins.get("ImageUtils"),o=e.plugins.get("ImageCaptionUtils"),i=e.commands.get("imageTypeInline"),n=e.commands.get("imageTypeBlock"),s=e=>{if(!e.return)return;const{oldElement:i,newElement:n}=e.return;if(!i)return;if(t.isBlockImage(i)){const e=o.getCaptionFromImageModelElement(i);if(e)return void this._saveCaption(n,e)}const s=this._getSavedCaption(i);s&&this._saveCaption(n,s)};i&&this.listenTo(i,"execute",s,{priority:"low"}),n&&this.listenTo(n,"execute",s,{priority:"low"})}_getSavedCaption(e){const t=this._savedCaptionsMap.get(e);return t?Ms.fromJSON(t):null}_saveCaption(e,t){this._savedCaptionsMap.set(e,t.toJSON())}_registerCaptionReconversion(){const e=this.editor,t=e.model,o=e.plugins.get("ImageUtils"),i=e.plugins.get("ImageCaptionUtils");t.document.on("change:data",(()=>{const n=t.document.differ.getChanges();for(const t of n){if("alt"!==t.attributeKey)continue;const n=t.range.start.nodeAfter;if(o.isBlockImage(n)){const t=i.getCaptionFromImageModelElement(n);if(!t)return;e.editing.reconvertItem(t)}}}))}}class _b extends fc{static get requires(){return[bb]}static get pluginName(){return"ImageCaptionUI"}static get isOfficialPlugin(){return!0}init(){const e=this.editor,t=e.editing.view,o=e.plugins.get("ImageCaptionUtils"),i=e.t;e.ui.componentFactory.add("toggleImageCaption",(n=>{const s=e.commands.get("toggleImageCaption"),r=new Lu(n);return r.set({icon:'',tooltip:!0,isToggleable:!0}),r.bind("isOn","isEnabled").to(s,"value","isEnabled"),r.bind("label").to(s,"value",(e=>i(e?"Toggle caption off":"Toggle caption on"))),this.listenTo(r,"execute",(()=>{e.execute("toggleImageCaption",{focusCaptionOnShow:!0});const i=o.getCaptionFromModelSelection(e.model.document.selection);if(i){const o=e.editing.mapper.toViewElement(i);t.scrollToTheSelection(),t.change((e=>{e.addClass("image__caption_highlighted",o)}))}e.editing.view.focus()})),r}))}}function kb(e){const t=e.map((e=>e.replace("+","\\+")));return new RegExp(`^image\\/(${t.join("|")})$`)}function vb(e){return new Promise(((t,o)=>{const i=e.getAttribute("src");fetch(i).then((e=>e.blob())).then((e=>{const o=Cb(e,i),n=o.replace("image/",""),s=new File([e],`image.${n}`,{type:o});t(s)})).catch((e=>e&&"TypeError"===e.name?function(e){return function(e){return new Promise(((t,o)=>{const i=J.document.createElement("img");i.addEventListener("load",(()=>{const e=J.document.createElement("canvas");e.width=i.width,e.height=i.height;e.getContext("2d").drawImage(i,0,0),e.toBlob((e=>e?t(e):o()))})),i.addEventListener("error",(()=>o())),i.src=e}))}(e).then((t=>{const o=Cb(t,e),i=o.replace("image/","");return new File([t],`image.${i}`,{type:o})}))}(i).then(t).catch(o):o(e)))}))}function Cb(e,t){return e.type?e.type:t.match(/data:(image\/\w+);base64/)?t.match(/data:(image\/\w+);base64/)[1].toLowerCase():"image/jpeg"}class Ab extends fc{static get pluginName(){return"ImageUploadUI"}static get isOfficialPlugin(){return!0}init(){const e=this.editor;e.ui.componentFactory.add("uploadImage",(()=>this._createToolbarButton())),e.ui.componentFactory.add("imageUpload",(()=>this._createToolbarButton())),e.ui.componentFactory.add("menuBar:uploadImage",(()=>this._createMenuBarButton("standalone"))),e.plugins.has("ImageInsertUI")&&e.plugins.get("ImageInsertUI").registerIntegration({name:"upload",observable:()=>e.commands.get("uploadImage"),buttonViewCreator:()=>this._createToolbarButton(),formViewCreator:()=>this._createDropdownButton(),menuBarButtonViewCreator:e=>this._createMenuBarButton(e?"insertOnly":"insertNested")})}_createButton(e){const t=this.editor,o=t.locale,i=t.commands.get("uploadImage"),n=t.config.get("image.upload.types"),s=kb(n),r=new e(t.locale),a=o.t;return r.set({acceptedType:n.map((e=>`image/${e}`)).join(","),allowMultipleFiles:!0,label:a("Upload from computer"),icon:''}),r.bind("isEnabled").to(i),r.on("done",((e,o)=>{const i=Array.from(o).filter((e=>s.test(e.type)));i.length&&(t.execute("uploadImage",{file:i}),t.editing.view.focus())})),r}_createToolbarButton(){const e=this.editor.locale.t,t=this.editor.plugins.get("ImageInsertUI"),o=this.editor.commands.get("uploadImage"),i=this._createButton(bh);return i.tooltip=!0,i.bind("label").to(t,"isImageSelected",o,"isAccessAllowed",((t,o)=>e(o?t?"Replace image from computer":"Upload image from computer":"You have no image upload permissions."))),i}_createDropdownButton(){const e=this.editor.locale.t,t=this.editor.plugins.get("ImageInsertUI"),o=this._createButton(bh);return o.withText=!0,o.bind("label").to(t,"isImageSelected",(t=>e(t?"Replace from computer":"Upload from computer"))),o.on("execute",(()=>{t.dropdownView.isOpen=!1})),o}_createMenuBarButton(e){const t=this.editor.locale.t,o=this._createButton(sg);switch(o.withText=!0,e){case"standalone":o.label=t("Image from computer");break;case"insertOnly":o.label=t("Image");break;case"insertNested":o.label=t("From computer")}return o}}class xb extends fc{static get pluginName(){return"ImageUploadProgress"}static get isOfficialPlugin(){return!0}placeholder;constructor(e){super(e),this.placeholder="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw=="}init(){const e=this.editor;e.plugins.has("ImageBlockEditing")&&e.editing.downcastDispatcher.on("attribute:uploadStatus:imageBlock",this.uploadStatusChange),e.plugins.has("ImageInlineEditing")&&e.editing.downcastDispatcher.on("attribute:uploadStatus:imageInline",this.uploadStatusChange)}uploadStatusChange=(e,t,o)=>{const i=this.editor,n=t.item,s=n.getAttribute("uploadId");if(!o.consumable.consume(t.item,e.name))return;const r=i.plugins.get("ImageUtils"),a=i.plugins.get(Qp),l=s?t.attributeNewValue:null,c=this.placeholder,d=i.editing.mapper.toViewElement(n),u=o.writer;if("reading"==l)return Eb(d,u),void Tb(r,c,d,u);if("uploading"==l){const e=a.loaders.get(s);return Eb(d,u),void(e?(Pb(d,u),function(e,t,o,i){const n=function(e){const t=e.createUIElement("div",{class:"ck-progress-bar"});return e.setCustomProperty("progressBar",!0,t),t}(t);t.insert(t.createPositionAt(e,"end"),n),o.on("change:uploadedPercent",((e,t,o)=>{i.change((e=>{e.setStyle("width",o+"%",n)}))}))}(d,u,e,i.editing.view),function(e,t,o,i){if(i.data){const n=e.findViewImgElement(t);o.setAttribute("src",i.data,n)}}(r,d,u,e)):Tb(r,c,d,u))}"complete"==l&&a.loaders.get(s)&&function(e,t,o){const i=t.createUIElement("div",{class:"ck-image-upload-complete-icon"});t.insert(t.createPositionAt(e,"end"),i),setTimeout((()=>{o.change((e=>e.remove(e.createRangeOn(i))))}),3e3)}(d,u,i.editing.view),function(e,t){Ib(e,t,"progressBar")}(d,u),Pb(d,u),function(e,t){t.removeClass("ck-appear",e)}(d,u)}}function Eb(e,t){e.hasClass("ck-appear")||t.addClass("ck-appear",e)}function Tb(e,t,o,i){o.hasClass("ck-image-upload-placeholder")||i.addClass("ck-image-upload-placeholder",o);const n=e.findViewImgElement(o);n.getAttribute("src")!==t&&i.setAttribute("src",t,n),Sb(o,"placeholder")||i.insert(i.createPositionAfter(n),function(e){const t=e.createUIElement("div",{class:"ck-upload-placeholder-loader"});return e.setCustomProperty("placeholder",!0,t),t}(i))}function Pb(e,t){e.hasClass("ck-image-upload-placeholder")&&t.removeClass("ck-image-upload-placeholder",e),Ib(e,t,"placeholder")}function Sb(e,t){for(const o of e.getChildren())if(o.getCustomProperty(t))return o}function Ib(e,t,o){const i=Sb(e,o);i&&t.remove(t.createRangeOn(i))}class Rb extends wc{constructor(e){super(e),this.set("isAccessAllowed",!0)}refresh(){const e=this.editor,t=e.plugins.get("ImageUtils"),o=e.model.document.selection.getSelectedElement();this.isEnabled=t.isImageAllowed()||t.isImage(o)}execute(e){const t=Qt(e.file),o=this.editor.model.document.selection,i=this.editor.plugins.get("ImageUtils"),n=Object.fromEntries(o.getAttributes());t.forEach(((e,t)=>{const s=o.getSelectedElement();if(t&&s&&i.isImage(s)){const t=this.editor.model.createPositionAfter(s);this._uploadImage(e,n,t)}else this._uploadImage(e,n)}))}_uploadImage(e,t,o){const i=this.editor,n=i.plugins.get(Qp).createLoader(e),s=i.plugins.get("ImageUtils");n&&s.insertImage({...t,uploadId:n.id},o)}}class Ob extends fc{static get requires(){return[Qp,Gm,bf,Gf]}static get pluginName(){return"ImageUploadEditing"}static get isOfficialPlugin(){return!0}_uploadImageElements;_uploadedImages=new Map;constructor(e){super(e),e.config.define("image",{upload:{types:["jpeg","png","gif","bmp","webp","tiff"]}}),this._uploadImageElements=new Map}init(){const e=this.editor,t=e.model.document,o=e.conversion,i=e.plugins.get(Qp),n=e.plugins.get("ImageUtils"),s=e.plugins.get("ClipboardPipeline"),r=kb(e.config.get("image.upload.types")),a=new Rb(e);e.commands.add("uploadImage",a),e.commands.add("imageUpload",a),o.for("upcast").attributeToAttribute({view:{name:"img",key:"uploadId"},model:"uploadId"}).add((e=>e.on("element:img",((e,t,o)=>{if(!o.consumable.test(t.viewItem,{attributes:["data-ck-upload-id"]}))return;const n=t.viewItem.getAttribute("data-ck-upload-id");if(!n)return;const[s]=Array.from(t.modelRange.getItems({shallow:!0})),r=i.loaders.get(n);s&&(o.writer.setAttribute("uploadId",n,s),o.consumable.consume(t.viewItem,{attributes:["data-ck-upload-id"]}),r&&r.data&&o.writer.setAttribute("uploadStatus",r.status,s))}),{priority:"low"}))),this.listenTo(e.editing.view.document,"clipboardInput",((t,o)=>{if(i=o.dataTransfer,Array.from(i.types).includes("text/html")&&""!==i.getData("text/html"))return;var i;const n=Array.from(o.dataTransfer.files).filter((e=>!!e&&r.test(e.type)));if(!n.length)return;t.stop(),e.model.change((t=>{o.targetRanges&&t.setSelection(o.targetRanges.map((t=>e.editing.mapper.toModelRange(t)))),e.execute("uploadImage",{file:n})}));if(!e.commands.get("uploadImage").isAccessAllowed){const t=e.plugins.get("Notification"),o=e.locale.t;t.showWarning(o("You have no image upload permissions."),{namespace:"image"})}})),this.listenTo(s,"inputTransformation",((t,o)=>{const s=Array.from(e.editing.view.createRangeIn(o.content)).map((e=>e.item)).filter((e=>function(e,t){return!(!e.isInlineImageView(t)||!t.getAttribute("src")||!t.getAttribute("src").match(/^data:image\/\w+;base64,/g)&&!t.getAttribute("src").match(/^blob:/g))}(n,e)&&!e.getAttribute("uploadProcessed"))).map((e=>({promise:vb(e),imageElement:e})));if(!s.length)return;const r=new rl(e.editing.view.document);for(const e of s){r.setAttribute("uploadProcessed",!0,e.imageElement);const t=i.createLoader(e.promise);t&&(r.setAttribute("src","",e.imageElement),r.setAttribute("uploadId",t.id,e.imageElement))}})),e.editing.view.document.on("dragover",((e,t)=>{t.preventDefault()})),t.on("change",(()=>{const o=t.differ.getChanges({includeChangesInGraveyard:!0}).reverse(),n=new Set;for(const t of o)if("insert"==t.type&&"$text"!=t.name){const o=t.position.nodeAfter,s="$graveyard"==t.position.root.rootName;for(const t of Vb(e,o)){const o=t.getAttribute("uploadId"),r=t.getAttribute("uploadStatus");if(!o||"complete"==r)continue;const a=i.loaders.get(o);if(a)if(s){if(!n.has(o)){Array.from(this._uploadImageElements.get(o)).every((e=>"$graveyard"==e.root.rootName))&&a.abort()}}else n.add(o),this._uploadImageElements.has(o)?this._uploadImageElements.get(o).add(t):this._uploadImageElements.set(o,new Set([t])),"idle"==a.status&&this._readAndUpload(a);else!s&&this._uploadedImages.has(o)&&e.model.enqueueChange({isUndoable:!1},(e=>{e.setAttribute("uploadStatus","complete",t),this.fire("uploadComplete",{data:this._uploadedImages.get(o),imageElement:t})}))}}})),this.on("uploadComplete",((e,{imageElement:t,data:o})=>{const i=o.urls?o.urls:o;this.editor.model.change((e=>{e.setAttribute("src",i.default,t),this._parseAndSetSrcsetAttributeOnImage(i,t,e),n.setImageNaturalSizeAttributes(t)}))}),{priority:"low"})}afterInit(){const e=this.editor.model.schema;this.editor.plugins.has("ImageBlockEditing")&&(e.extend("imageBlock",{allowAttributes:["uploadId","uploadStatus"]}),this._registerConverters("imageBlock")),this.editor.plugins.has("ImageInlineEditing")&&(e.extend("imageInline",{allowAttributes:["uploadId","uploadStatus"]}),this._registerConverters("imageInline"))}_readAndUpload(e){const t=this.editor,o=t.model,i=t.locale.t,n=t.plugins.get(Qp),s=t.plugins.get(Gm),r=t.plugins.get("ImageUtils"),a=this._uploadImageElements;return o.enqueueChange({isUndoable:!1},(t=>{const o=a.get(e.id);for(const e of o)t.setAttribute("uploadStatus","reading",e)})),e.read().then((()=>{const n=e.upload();t.ui&&t.ui.ariaLiveAnnouncer.announce(i("Uploading image"));for(const i of a.get(e.id)){if(Y.isSafari){const e=t.editing.mapper.toViewElement(i),o=r.findViewImgElement(e);t.editing.view.once("render",(()=>{if(!o.parent)return;const e=t.editing.view.domConverter.mapViewToDom(o.parent);if(!e)return;const i=e.style.display;e.style.display="none",e._ckHack=e.offsetHeight,e.style.display=i}))}o.enqueueChange({isUndoable:!1},(e=>{e.setAttribute("uploadStatus","uploading",i)}))}return n})).then((n=>{o.enqueueChange({isUndoable:!1},(o=>{for(const t of a.get(e.id))o.setAttribute("uploadStatus","complete",t),this.fire("uploadComplete",{data:n,imageElement:t});t.ui&&t.ui.ariaLiveAnnouncer.announce(i("Image upload complete")),this._uploadedImages.set(e.id,n)})),l()})).catch((n=>{if(t.ui&&t.ui.ariaLiveAnnouncer.announce(i("Error during image upload")),"error"!==e.status&&"aborted"!==e.status)throw n;"error"==e.status&&n&&s.showWarning(n,{title:i("Upload failed"),namespace:"upload"}),o.enqueueChange({isUndoable:!1},(t=>{for(const o of a.get(e.id))"$graveyard"!==o.root.rootName&&t.remove(o)})),l()}));function l(){o.enqueueChange({isUndoable:!1},(t=>{for(const o of a.get(e.id))t.removeAttribute("uploadId",o),t.removeAttribute("uploadStatus",o);a.delete(e.id)})),n.destroyLoader(e)}}_parseAndSetSrcsetAttributeOnImage(e,t,o){let i=0;const n=Object.keys(e).filter((e=>{const t=parseInt(e,10);if(!isNaN(t))return i=Math.max(i,t),!0})).map((t=>`${e[t]} ${t}w`)).join(", ");if(""!=n){const e={srcset:n};t.hasAttribute("width")||t.hasAttribute("height")||(e.width=i),o.setAttributes(e,t)}}_registerConverters(e){const{conversion:t,plugins:o}=this.editor,i=o.get(Qp),n=o.get(Gf);t.for("dataDowncast").add((t=>{t.on(`attribute:uploadId:${e}`,((e,t,o)=>{if(!o.consumable.test(t.item,e.name))return;const s=i.loaders.get(t.attributeNewValue);if(!s||!s.data)return null;const r=o.mapper.toViewElement(t.item),a=n.findViewImgElement(r);a&&(o.consumable.consume(t.item,e.name),o.writer.setAttribute("data-ck-upload-id",s.id,a))}))}))}}function Vb(e,t){const o=e.plugins.get("ImageUtils");return Array.from(e.model.createRangeOn(t)).filter((e=>o.isImage(e.item))).map((e=>e.item))}class Db extends fc{static get pluginName(){return"ImageUpload"}static get isOfficialPlugin(){return!0}static get requires(){return[Ob,Ab,xb]}}class Fb extends wc{refresh(){const e=this.editor,t=e.plugins.get("ImageUtils").getClosestSelectedImageElement(e.model.document.selection);this.isEnabled=!!t,t&&t.hasAttribute("resizedWidth")?this.value={width:t.getAttribute("resizedWidth"),height:null}:this.value=null}execute(e){const t=this.editor,o=t.model,i=t.plugins.get("ImageUtils"),n=i.getClosestSelectedImageElement(o.document.selection);this.value={width:e.width,height:null},n&&o.change((t=>{t.setAttribute("resizedWidth",e.width,n),t.removeAttribute("resizedHeight",n),i.setImageNaturalSizeAttributes(n)}))}}class Mb extends fc{static get requires(){return[Gf]}static get pluginName(){return"ImageResizeEditing"}static get licenseFeatureCode(){return"IR"}static get isOfficialPlugin(){return!0}static get isPremiumPlugin(){return!0}constructor(e){super(e),e.config.define("image",{resizeUnit:"%",resizeOptions:[{name:"resizeImage:original",value:null,icon:"original"},{name:"resizeImage:custom",value:"custom",icon:"custom"},{name:"resizeImage:25",value:"25",icon:"small"},{name:"resizeImage:50",value:"50",icon:"medium"},{name:"resizeImage:75",value:"75",icon:"large"}]})}init(){const e=this.editor,t=new Fb(e);this._registerConverters("imageBlock"),this._registerConverters("imageInline"),e.commands.add("resizeImage",t),e.commands.add("imageResize",t)}afterInit(){this._registerSchema()}_registerSchema(){const e=this.editor.model.schema;this.editor.plugins.has("ImageBlockEditing")&&(e.extend("imageBlock",{allowAttributes:["resizedWidth","resizedHeight"]}),e.setAttributeProperties("resizedWidth",{isFormatting:!0}),e.setAttributeProperties("resizedHeight",{isFormatting:!0})),this.editor.plugins.has("ImageInlineEditing")&&(e.extend("imageInline",{allowAttributes:["resizedWidth","resizedHeight"]}),e.setAttributeProperties("resizedWidth",{isFormatting:!0}),e.setAttributeProperties("resizedHeight",{isFormatting:!0}))}_registerConverters(e){const t=this.editor,o=t.plugins.get("ImageUtils");t.conversion.for("downcast").add((t=>t.on(`attribute:resizedWidth:${e}`,((e,t,o)=>{if(!o.consumable.consume(t.item,e.name))return;const i=o.writer,n=o.mapper.toViewElement(t.item);null!==t.attributeNewValue?(i.setStyle("width",t.attributeNewValue,n),i.addClass("image_resized",n)):(i.removeStyle("width",n),i.removeClass("image_resized",n))})))),t.conversion.for("dataDowncast").attributeToAttribute({model:{name:e,key:"resizedHeight"},view:e=>({key:"style",value:{height:e}})}),t.conversion.for("editingDowncast").add((t=>t.on(`attribute:resizedHeight:${e}`,((t,i,n)=>{if(!n.consumable.consume(i.item,t.name))return;const s=n.writer,r=n.mapper.toViewElement(i.item),a="imageInline"===e?o.findViewImgElement(r):r;null!==i.attributeNewValue?s.setStyle("height",i.attributeNewValue,a):s.removeStyle("height",a)})))),t.conversion.for("upcast").attributeToAttribute({view:{name:"imageBlock"===e?"figure":"img",styles:{width:/.+/}},model:{key:"resizedWidth",value:e=>Uf(e)?null:e.getStyle("width")}}),t.conversion.for("upcast").attributeToAttribute({view:{name:"imageBlock"===e?"figure":"img",styles:{height:/.+/}},model:{key:"resizedHeight",value:e=>Uf(e)?null:e.getStyle("height")}}),t.conversion.for("upcast").add((t=>{t.on("element:"+("imageBlock"===e?"figure":"img"),((e,t,o)=>{o.consumable.consume(t.viewItem,{classes:["image_resized"]})}))}))}}const Nb=(()=>({small:'',medium:'',large:'',custom:'',original:''}))();class Bb extends fc{static get requires(){return[Mb]}static get pluginName(){return"ImageResizeButtons"}static get isOfficialPlugin(){return!0}_resizeUnit;constructor(e){super(e),this._resizeUnit=e.config.get("image.resizeUnit")}init(){const e=this.editor,t=e.config.get("image.resizeOptions"),o=e.commands.get("resizeImage");this.bind("isEnabled").to(o);for(const e of t)this._registerImageResizeButton(e);this._registerImageResizeDropdown(t)}_registerImageResizeButton(e){const t=this.editor,{name:o,value:i,icon:n}=e;t.ui.componentFactory.add(o,(o=>{const s=new Lu(o),r=t.commands.get("resizeImage"),a=this._getOptionLabelValue(e,!0);if(!Nb[n])throw new fe("imageresizebuttons-missing-icon",t,e);if(s.set({label:a,icon:Nb[n],tooltip:a,isToggleable:!0}),s.bind("isEnabled").to(this),t.plugins.has("ImageCustomResizeUI")&&Lb(e)){const e=t.plugins.get("ImageCustomResizeUI");this.listenTo(s,"execute",(()=>{e._showForm(this._resizeUnit)}))}else{const e=i?i+this._resizeUnit:null;s.bind("isOn").to(r,"value",r,"isEnabled",zb(e)),this.listenTo(s,"execute",(()=>{t.execute("resizeImage",{width:e})}))}return s}))}_registerImageResizeDropdown(e){const t=this.editor,o=t.t,i=e.find((e=>!e.value)),n=n=>{const s=t.commands.get("resizeImage"),r=Zh(n,Mh),a=r.buttonView,l=o("Resize image");return a.set({tooltip:l,commandValue:i.value,icon:Nb.medium,isToggleable:!0,label:this._getOptionLabelValue(i),withText:!0,class:"ck-resize-image-button",ariaLabel:l,ariaLabelledBy:void 0}),a.bind("label").to(s,"value",(e=>e&&e.width?e.width:this._getOptionLabelValue(i))),r.bind("isEnabled").to(this),Xh(r,(()=>this._getResizeDropdownListItemDefinitions(e,s)),{ariaLabel:o("Image resize list"),role:"menu"}),this.listenTo(r,"execute",(e=>{"onClick"in e.source?e.source.onClick():(t.execute(e.source.commandName,{width:e.source.commandValue}),t.editing.view.focus())})),r};t.ui.componentFactory.add("resizeImage",n),t.ui.componentFactory.add("imageResize",n)}_getOptionLabelValue(e,t=!1){const o=this.editor.t;return e.label?e.label:t?Lb(e)?o("Custom image size"):e.value?o("Resize image to %0",e.value+this._resizeUnit):o("Resize image to the original size"):Lb(e)?o("Custom"):e.value?e.value+this._resizeUnit:o("Original")}_getResizeDropdownListItemDefinitions(e,t){const{editor:o}=this,i=new eo,n=e.map((e=>Lb(e)?{...e,valueWithUnits:"custom"}:e.value?{...e,valueWithUnits:`${e.value}${this._resizeUnit}`}:{...e,valueWithUnits:null}));for(const e of n){let s=null;if(o.plugins.has("ImageCustomResizeUI")&&Lb(e)){const i=o.plugins.get("ImageCustomResizeUI");s={type:"button",model:new Jm({label:this._getOptionLabelValue(e),role:"menuitemradio",withText:!0,icon:null,onClick:()=>{i._showForm(this._resizeUnit)}})};const r=Object.values(n).map((e=>e.valueWithUnits));s.model.bind("isOn").to(t,"value",t,"isEnabled",jb(r))}else s={type:"button",model:new Jm({commandName:"resizeImage",commandValue:e.valueWithUnits,label:this._getOptionLabelValue(e),role:"menuitemradio",withText:!0,icon:null})},s.model.bind("isOn").to(t,"value",t,"isEnabled",zb(e.valueWithUnits));s.model.bind("isEnabled").to(t,"isEnabled"),i.add(s)}return i}}function Lb(e){return"custom"===e.value}function zb(e){return(t,o)=>!(void 0===t||!o)&&(null===e&&t===e||null!==t&&t.width===e)}function jb(e){return(t,o)=>!e.some((e=>zb(e)(t,o)))}const qb="image_resized";class $b extends fc{static get requires(){return[Rp,Gf]}static get pluginName(){return"ImageResizeHandles"}static get isOfficialPlugin(){return!0}init(){const e=this.editor.commands.get("resizeImage");this.bind("isEnabled").to(e),this._setupResizerCreator()}_setupResizerCreator(){const e=this.editor,t=e.editing.view,o=e.plugins.get("ImageUtils");t.addObserver(nb),this.listenTo(t.document,"imageLoaded",((i,n)=>{if(!n.target.matches("figure.image.ck-widget > img,figure.image.ck-widget > picture > img,figure.image.ck-widget > a > img,figure.image.ck-widget > a > picture > img,span.image-inline.ck-widget > img,span.image-inline.ck-widget > picture > img"))return;const s=e.editing.view.domConverter,r=s.domToView(n.target),a=o.getImageWidgetFromImageView(r);let l=this.editor.plugins.get(Rp).getResizerByViewElement(a);if(l)return void l.redraw();const c=e.editing.mapper,d=c.toModelElement(a);l=e.plugins.get(Rp).attachTo({unit:e.config.get("image.resizeUnit"),modelElement:d,viewElement:a,editor:e,getHandleHost:e=>e.querySelector("img"),getResizeHost:()=>s.mapViewToDom(c.toViewElement(d)),isCentered:()=>"alignCenter"==d.getAttribute("imageStyle"),onCommit(o){t.change((e=>{e.removeClass(qb,a)})),e.execute("resizeImage",{width:o})}}),l.on("updateSize",(()=>{a.hasClass(qb)||t.change((e=>{e.addClass(qb,a)}));const e="imageInline"===d.name?r:a;e.getStyle("height")&&t.change((t=>{t.removeStyle("height",e)}))})),l.bind("isEnabled").to(this)}))}}function Hb(e){if(!e)return null;const[,t,o]=e.trim().match(/([.,\d]+)(%|px)$/)||[],i=Number.parseFloat(t);return Number.isNaN(i)?null:{value:i,unit:o}}function Wb(e,t,o){return"px"===o?{value:t.value,unit:"px"}:{value:t.value/e*100,unit:"%"}}function Ub(e){const{editing:t}=e,o=e.plugins.get("ImageUtils").getClosestSelectedImageElement(e.model.document.selection);if(!o)return null;const i=t.mapper.toViewElement(o);return{model:o,view:i,dom:t.view.domConverter.mapViewToDom(i)}}class Kb extends Au{focusTracker;keystrokes;unit;backButtonView;saveButtonView;labeledInput;children;_focusables;_focusCycler;_validators;constructor(e,t,o){super(e),this.focusTracker=new oo,this.keystrokes=new ro,this.unit=t,this.backButtonView=this._createBackButton(),this.saveButtonView=this._createSaveButton(),this.labeledInput=this._createLabeledInputView(),this.children=this.createCollection([this._createHeaderView()]),this.children.add(new Km(e,{children:[this.labeledInput,this.saveButtonView],class:["ck-form__row_with-submit","ck-form__row_large-top-padding"]})),this._focusables=new tu,this._validators=o,this.keystrokes.set("Esc",((e,t)=>{this.fire("cancel"),t()})),this._focusCycler=new qu({focusables:this._focusables,focusTracker:this.focusTracker,keystrokeHandler:this.keystrokes,actions:{focusPrevious:"shift + tab",focusNext:"tab"}}),this.setTemplate({tag:"form",attributes:{class:["ck","ck-form","ck-image-custom-resize-form","ck-responsive-form"],tabindex:"-1"},children:this.children})}render(){super.render(),Ou({view:this});[this.backButtonView,this.labeledInput,this.saveButtonView].forEach((e=>{this._focusables.add(e),this.focusTracker.add(e.element)})),this.keystrokes.listenTo(this.element)}destroy(){super.destroy(),this.focusTracker.destroy(),this.keystrokes.destroy()}_createBackButton(){const e=this.locale.t,t=new Lu(this.locale);return t.set({class:"ck-button-back",label:e("Back"),icon:ed,tooltip:!0}),t.delegate("execute").to(this,"cancel"),t}_createSaveButton(){const e=this.locale.t,t=new Lu(this.locale);return t.set({label:e("Save"),withText:!0,type:"submit",class:"ck-button-action ck-button-bold"}),t}_createHeaderView(){const e=this.locale.t,t=new ju(this.locale,{label:e("Image Resize")});return t.children.add(this.backButtonView,0),t}_createLabeledInputView(){const e=this.locale.t,t=new Sh(this.locale,sm);return t.label=e("Resize image (in %0)",this.unit),t.class="ck-labeled-field-view_full-width",t.fieldView.set({step:.1}),t}isValid(){this.resetFormStatus();for(const e of this._validators){const t=e(this);if(t)return this.labeledInput.errorText=t,!1}return!0}resetFormStatus(){this.labeledInput.errorText=null}get rawSize(){const{element:e}=this.labeledInput.fieldView;return e?e.value:null}get parsedSize(){const{rawSize:e}=this;if(null===e)return null;const t=Number.parseFloat(e);return Number.isNaN(t)?null:t}get sizeWithUnits(){const{parsedSize:e,unit:t}=this;return null===e?null:`${e}${t}`}}class Gb extends fc{_balloon;_form;static get requires(){return[Qm]}static get pluginName(){return"ImageCustomResizeUI"}static get isOfficialPlugin(){return!0}destroy(){super.destroy(),this._form&&this._form.destroy()}_createForm(e){const t=this.editor;this._balloon=this.editor.plugins.get("ContextualBalloon"),this._form=new(Iu(Kb))(t.locale,e,function(e){const t=e.t;return[e=>""===e.rawSize.trim()?t("The value must not be empty."):null===e.parsedSize?t("The value should be a plain number."):void 0]}(t)),this._form.render(),this.listenTo(this._form,"submit",(()=>{this._form.isValid()&&(t.execute("resizeImage",{width:this._form.sizeWithUnits}),this._hideForm(!0))})),this.listenTo(this._form.labeledInput,"change:errorText",(()=>{t.ui.update()})),this.listenTo(this._form,"cancel",(()=>{this._hideForm(!0)})),Su({emitter:this._form,activator:()=>this._isVisible,contextElements:()=>[this._balloon.view.element],callback:()=>this._hideForm()})}_showForm(e){if(this._isVisible)return;this._form||this._createForm(e);const t=this.editor,o=this._form.labeledInput;this._form.disableCssTransitions(),this._form.resetFormStatus(),this._isInBalloon||this._balloon.add({view:this._form,position:Xf(t)});const i=function(e,t){const o=Ub(e);if(!o)return null;const i=Hb(o.model.getAttribute("resizedWidth")||null);return i?i.unit===t?i:Wb(up(o.dom),{value:new ut(o.dom).width},t):null}(t,e),n=i?i.value.toFixed(1):"",s=function(e,t){const o=Ub(e);if(!o)return null;const i=up(o.dom),n=Hb(window.getComputedStyle(o.dom).minWidth)||{value:1};return{unit:t,lower:Math.max(.1,Wb(i,n,t).value),upper:"px"===t?i:100}}(t,e);o.fieldView.value=o.fieldView.element.value=n,s&&Object.assign(o.fieldView,{min:s.lower.toFixed(1),max:Math.ceil(s.upper).toFixed(1)}),this._form.labeledInput.fieldView.select(),this._form.enableCssTransitions()}_hideForm(e=!1){this._isInBalloon&&(this._form.focusTracker.isFocused&&this._form.saveButtonView.focus(),this._balloon.remove(this._form),e&&this.editor.editing.view.focus())}get _isVisible(){return!!this._balloon&&this._balloon.visibleView===this._form}get _isInBalloon(){return!!this._balloon&&this._balloon.hasView(this._form)}}class Jb extends wc{_defaultStyles;_styles;constructor(e,t){super(e),this._defaultStyles={imageBlock:!1,imageInline:!1},this._styles=new Map(t.map((e=>{if(e.isDefault)for(const t of e.modelElements)this._defaultStyles[t]=e.name;return[e.name,e]})))}refresh(){const e=this.editor.plugins.get("ImageUtils").getClosestSelectedImageElement(this.editor.model.document.selection);this.isEnabled=!!e,this.isEnabled?e.hasAttribute("imageStyle")?this.value=e.getAttribute("imageStyle"):this.value=this._defaultStyles[e.name]:this.value=!1}execute(e={}){const t=this.editor,o=t.model,i=t.plugins.get("ImageUtils");o.change((t=>{const n=e.value,{setImageSizes:s=!0}=e;let r=i.getClosestSelectedImageElement(o.document.selection);n&&this.shouldConvertImageType(n,r)&&(this.editor.execute(i.isBlockImage(r)?"imageTypeInline":"imageTypeBlock",{setImageSizes:s}),r=i.getClosestSelectedImageElement(o.document.selection)),!n||this._styles.get(n).isDefault?t.removeAttribute("imageStyle",r):t.setAttribute("imageStyle",n,r),s&&i.setImageNaturalSizeAttributes(r)}))}shouldConvertImageType(e,t){return!this._styles.get(e).modelElements.includes(t.name)}}const Zb={get inline(){return{name:"inline",title:"In line",icon:Qc,modelElements:["imageInline"],isDefault:!0}},get alignLeft(){return{name:"alignLeft",title:"Left aligned image",icon:Jc,modelElements:["imageBlock","imageInline"],className:"image-style-align-left"}},get alignBlockLeft(){return{name:"alignBlockLeft",title:"Left aligned image",icon:Yc,modelElements:["imageBlock"],className:"image-style-block-align-left"}},get alignCenter(){return{name:"alignCenter",title:"Centered image",icon:Gc,modelElements:["imageBlock"],className:"image-style-align-center"}},get alignRight(){return{name:"alignRight",title:"Right aligned image",icon:Zc,modelElements:["imageBlock","imageInline"],className:"image-style-align-right"}},get alignBlockRight(){return{name:"alignBlockRight",title:"Right aligned image",icon:Xc,modelElements:["imageBlock"],className:"image-style-block-align-right"}},get block(){return{name:"block",title:"Centered image",icon:Gc,modelElements:["imageBlock"],isDefault:!0}},get side(){return{name:"side",title:"Side image",icon:Zc,modelElements:["imageBlock"],className:"image-style-side"}}},Qb=(()=>({full:'',left:Yc,right:Xc,center:Gc,inlineLeft:Jc,inlineRight:Zc,inline:Qc}))(),Yb=[{name:"imageStyle:wrapText",title:"Wrap text",defaultItem:"imageStyle:alignLeft",items:["imageStyle:alignLeft","imageStyle:alignRight"]},{name:"imageStyle:breakText",title:"Break text",defaultItem:"imageStyle:block",items:["imageStyle:alignBlockLeft","imageStyle:block","imageStyle:alignBlockRight"]}];function Xb(e){be("image-style-configuration-definition-invalid",e)}const ew={normalizeStyles:function(e){const t=(e.configuredStyles.options||[]).map((e=>function(e){e="string"==typeof e?Zb[e]?{...Zb[e]}:{name:e}:function(e,t){const o={...t};for(const i in e)Object.prototype.hasOwnProperty.call(t,i)||(o[i]=e[i]);return o}(Zb[e.name],e);"string"==typeof e.icon&&(e.icon=Qb[e.icon]||e.icon);return e}(e))).filter((t=>function(e,{isBlockPluginLoaded:t,isInlinePluginLoaded:o}){const{modelElements:i,name:n}=e;if(!(i&&i.length&&n))return Xb({style:e}),!1;{const n=[t?"imageBlock":null,o?"imageInline":null];if(!i.some((e=>n.includes(e))))return be("image-style-missing-dependency",{style:e,missingPlugins:i.map((e=>"imageBlock"===e?"ImageBlockEditing":"ImageInlineEditing"))}),!1}return!0}(t,e)));return t},getDefaultStylesConfiguration:function(e,t){return e&&t?{options:["inline","alignLeft","alignRight","alignCenter","alignBlockLeft","alignBlockRight","block","side"]}:e?{options:["block","side"]}:t?{options:["inline","alignLeft","alignRight"]}:{}},getDefaultDropdownDefinitions:function(e){return e.has("ImageBlockEditing")&&e.has("ImageInlineEditing")?[...Yb]:[]},warnInvalidStyle:Xb};function tw(e){const t={imageInline:e.filter((e=>!e.isDefault&&e.modelElements.includes("imageInline"))),imageBlock:e.filter((e=>!e.isDefault&&e.modelElements.includes("imageBlock")))};return(o,i,n)=>{if(!i.modelRange)return;const s=i.viewItem,r=to(i.modelRange.getItems());if(r&&n.schema.checkAttribute(r,"imageStyle")){for(const e of t[r.name])n.consumable.consume(s,{classes:e.className})&&n.writer.setAttribute("imageStyle",e.name,r);!function(e,t,o,i){if(!e.consumable.test(t,{styles:["float"]}))return;let n=null;switch(t.getStyle("float")){case"left":n="alignLeft";break;case"right":n="alignRight"}if(!n)return;const s=ow(n,i);if(!s)return;const r=Zb[s.name];if(!Ko(s,r))return;e.writer.setAttribute("imageStyle",n,o),e.consumable.consume(t,{styles:["float"]})}(n,s,r,e)}}}function ow(e,t){for(const o of t)if(o.name===e)return o}class iw extends fc{static get pluginName(){return"ImageStyleEditing"}static get isOfficialPlugin(){return!0}static get requires(){return[Gf]}normalizedStyles;init(){const e=this.editor,t=e.plugins.has("ImageBlockEditing"),o=e.plugins.has("ImageInlineEditing");e.config.define("image.styles",ew.getDefaultStylesConfiguration(t,o)),this.normalizedStyles=ew.normalizeStyles({configuredStyles:e.config.get("image.styles"),isBlockPluginLoaded:t,isInlinePluginLoaded:o}),this._setupConversion(t,o),this._setupPostFixer(),e.commands.add("imageStyle",new Jb(e,this.normalizedStyles))}_setupConversion(e,t){const o=this.editor,i=o.model.schema,n=(s=this.normalizedStyles,(e,t,o)=>{if(!o.consumable.consume(t.item,e.name))return;const i=ow(t.attributeNewValue,s),n=ow(t.attributeOldValue,s),r=o.mapper.toViewElement(t.item),a=o.writer;n&&a.removeClass(n.className,r),i&&a.addClass(i.className,r)});var s;const r=tw(this.normalizedStyles);o.editing.downcastDispatcher.on("attribute:imageStyle",n),o.data.downcastDispatcher.on("attribute:imageStyle",n),e&&(i.extend("imageBlock",{allowAttributes:"imageStyle"}),i.setAttributeProperties("imageStyle",{isFormatting:!0}),o.data.upcastDispatcher.on("element:figure",r,{priority:"low"})),t&&(i.extend("imageInline",{allowAttributes:"imageStyle"}),i.setAttributeProperties("imageStyle",{isFormatting:!0}),o.data.upcastDispatcher.on("element:img",r,{priority:"low"}))}_setupPostFixer(){const e=this.editor,t=e.model.document,o=e.plugins.get(Gf),i=new Map(this.normalizedStyles.map((e=>[e.name,e])));t.registerPostFixer((e=>{let n=!1;for(const s of t.differ.getChanges())if("insert"==s.type||"attribute"==s.type&&"imageStyle"==s.attributeKey){let t="insert"==s.type?s.position.nodeAfter:s.range.start.nodeAfter;if(t&&t.is("element","paragraph")&&t.childCount>0&&(t=t.getChild(0)),!o.isImage(t))continue;const r=t.getAttribute("imageStyle");if(!r)continue;const a=i.get(r);a&&a.modelElements.includes(t.name)||(e.removeAttribute("imageStyle",t),n=!0)}return n}))}}class nw extends fc{static get requires(){return[iw]}static get pluginName(){return"ImageStyleUI"}static get isOfficialPlugin(){return!0}get localizedDefaultStylesTitles(){const e=this.editor.t;return{"Wrap text":e("Wrap text"),"Break text":e("Break text"),"In line":e("In line"),"Full size image":e("Full size image"),"Side image":e("Side image"),"Left aligned image":e("Left aligned image"),"Centered image":e("Centered image"),"Right aligned image":e("Right aligned image")}}init(){const e=this.editor.plugins,t=this.editor.config.get("image.toolbar")||[],o=sw(e.get("ImageStyleEditing").normalizedStyles,this.localizedDefaultStylesTitles);for(const e of o)this._createButton(e);const i=sw([...t.filter(s),...ew.getDefaultDropdownDefinitions(e)],this.localizedDefaultStylesTitles);for(const e of i)this._createDropdown(e,o)}_createDropdown(e,t){const o=this.editor.ui.componentFactory;o.add(e.name,(i=>{let n;const{defaultItem:s,items:r,title:a}=e,l=r.filter((e=>t.find((({name:t})=>rw(t)===e)))).map((e=>{const t=o.create(e);return e===s&&(n=t),t}));r.length!==l.length&&ew.warnInvalidStyle({dropdown:e});const c=Zh(i,Jh),d=c.buttonView,u=d.arrowView;return Qh(c,l,{enableActiveItemFocusOnDropdownOpen:!0}),d.set({label:aw(a,n.label),class:null,tooltip:!0}),u.unbind("label"),u.set({label:a}),d.bind("icon").toMany(l,"isOn",((...e)=>{const t=e.findIndex(jf);return t<0?n.icon:l[t].icon})),d.bind("label").toMany(l,"isOn",((...e)=>{const t=e.findIndex(jf);return aw(a,t<0?n.label:l[t].label)})),d.bind("isOn").toMany(l,"isOn",((...e)=>e.some(jf))),d.bind("class").toMany(l,"isOn",((...e)=>e.some(jf)?"ck-splitbutton_flatten":void 0)),d.on("execute",(()=>{l.some((({isOn:e})=>e))?c.isOpen=!c.isOpen:n.fire("execute")})),c.bind("isEnabled").toMany(l,"isEnabled",((...e)=>e.some(jf))),this.listenTo(c,"execute",(()=>{this.editor.editing.view.focus()})),c}))}_createButton(e){const t=e.name;this.editor.ui.componentFactory.add(rw(t),(o=>{const i=this.editor.commands.get("imageStyle"),n=new Lu(o);return n.set({label:e.title,icon:e.icon,tooltip:!0,isToggleable:!0}),n.bind("isEnabled").to(i,"isEnabled"),n.bind("isOn").to(i,"value",(e=>e===t)),n.on("execute",this._executeCommand.bind(this,t)),n}))}_executeCommand(e){this.editor.execute("imageStyle",{value:e}),this.editor.editing.view.focus()}}function sw(e,t){for(const o of e)t[o.title]&&(o.title=t[o.title]);return e}function rw(e){return`imageStyle:${e}`}function aw(e,t){return(e?e+": ":"")+t}function lw(e){return e.map((e=>s(e)?e.name:e))}const cw=Symbol("isWpButtonMacroSymbol");function dw(e){const t=e.getSelectedElement();return!(!t||!function(e){return!!e.getCustomProperty(cw)&&ip(e)}(t))}class uw extends fc{static get pluginName(){return"OPChildPagesEditing"}static get buttonName(){return"insertChildPages"}init(){const e=this.editor,t=e.model,o=e.conversion;t.schema.register("op-macro-child-pages",{allowWhere:["$block"],allowAttributes:["page"],isBlock:!0,isLimit:!0}),o.for("upcast").elementToElement({view:{name:"macro",classes:"child_pages"},model:(e,{writer:t})=>{const o=e.getAttribute("data-page")||"",i="true"==e.getAttribute("data-include-parent");return t.createElement("op-macro-child-pages",{page:o,includeParent:i})}}),o.for("editingDowncast").elementToElement({model:"op-macro-child-pages",view:(e,{writer:t})=>this.createMacroViewElement(e,t)}).add((e=>e.on("attribute:page",this.modelAttributeToView.bind(this)))).add((e=>e.on("attribute:includeParent",this.modelAttributeToView.bind(this)))),o.for("dataDowncast").elementToElement({model:"op-macro-child-pages",view:(e,{writer:t})=>t.createContainerElement("macro",{class:"child_pages","data-page":e.getAttribute("page")||"","data-include-parent":e.getAttribute("includeParent")||""})}),e.ui.componentFactory.add(uw.buttonName,(t=>{const o=new Lu(t);return o.set({label:window.I18n.t("js.editor.macro.child_pages.button"),withText:!0}),o.on("execute",(()=>{e.model.change((t=>{const o=t.createElement("op-macro-child-pages",{});e.model.insertContent(o,e.model.document.selection)}))})),o}))}modelAttributeToView(e,t,o){const i=t.item;if(!i.is("element","op-macro-child-pages"))return;o.consumable.consume(t.item,e.name);const n=o.mapper.toViewElement(i);o.writer.remove(o.writer.createRangeIn(n)),this.setPlaceholderContent(o.writer,i,n)}macroLabel(){return window.I18n.t("js.editor.macro.child_pages.text")}pageLabel(e){return e&&e.length>0?e:window.I18n.t("js.editor.macro.child_pages.this_page")}includeParentText(e){return e?` (${window.I18n.t("js.editor.macro.child_pages.include_parent")})`:""}createMacroViewElement(e,t){const o=t.createContainerElement("div");return this.setPlaceholderContent(t,e,o),function(e,t,o){return t.setCustomProperty(cw,!0,e),np(e,t,{label:o})}(o,t,{label:this.macroLabel()})}setPlaceholderContent(e,t,o){const i=t.getAttribute("page"),n=t.getAttribute("includeParent"),s=this.macroLabel(),r=this.pageLabel(i),a=e.createContainerElement("span",{class:"macro-value"});let l=[e.createText(`${s} `)];e.insert(e.createPositionAt(a,0),e.createText(`${r}`)),l.push(a),l.push(e.createText(this.includeParentText(n))),e.insert(e.createPositionAt(o,0),l)}}class hw extends fc{static get requires(){return[Qm]}static get pluginName(){return"OPChildPagesToolbar"}init(){const e=this.editor,t=this.editor.model,o=Mp(e);jp(e,"opEditChildPagesMacroButton",(e=>{const i=o.services.macros,n=e.getAttribute("page"),s=e.getAttribute("includeParent"),r=n&&n.length>0?n:"";i.configureChildPages(r,s).then((o=>t.change((t=>{t.setAttribute("page",o.page,e),t.setAttribute("includeParent",o.includeParent,e)}))))}))}afterInit(){$p(this,this.editor,"OPChildPages",dw)}}class mw extends wc{constructor(e){super(e),this.affectsData=!1}execute(){const e=this.editor.model,t=e.document.selection;let o=e.schema.getLimitElement(t);if(t.containsEntireContent(o)||!gw(e.schema,o))do{if(o=o.parent,!o)return}while(!gw(e.schema,o));e.change((e=>{e.setSelection(o,"in")}))}}function gw(e,t){return e.isLimit(t)&&(e.checkChild(t,"$text")||e.checkChild(t,"paragraph"))}const pw=Wt("Ctrl+A");class fw extends fc{static get pluginName(){return"SelectAllEditing"}static get isOfficialPlugin(){return!0}init(){const e=this.editor,t=e.t,o=e.editing.view.document;e.commands.add("selectAll",new mw(e)),this.listenTo(o,"keydown",((t,o)=>{Ht(o)===pw&&(e.execute("selectAll"),o.preventDefault())})),e.accessibility.addKeystrokeInfos({keystrokes:[{label:t("Select all"),keystroke:"CTRL+A"}]})}}class bw extends fc{static get pluginName(){return"SelectAllUI"}static get isOfficialPlugin(){return!0}init(){const e=this.editor;e.ui.componentFactory.add("selectAll",(()=>{const e=this._createButton(Lu);return e.set({tooltip:!0}),e})),e.ui.componentFactory.add("menuBar:selectAll",(()=>this._createButton(sh)))}_createButton(e){const t=this.editor,o=t.locale,i=t.commands.get("selectAll"),n=new e(t.locale),s=o.t;return n.set({label:s("Select all"),icon:'',keystroke:"Ctrl+A"}),n.bind("isEnabled").to(i,"isEnabled"),this.listenTo(n,"execute",(()=>{t.execute("selectAll"),t.editing.view.focus()})),n}}class ww extends fc{static get requires(){return[fw,bw]}static get pluginName(){return"SelectAll"}static get isOfficialPlugin(){return!0}}const yw="ckCsrfToken",_w="abcdefghijklmnopqrstuvwxyz0123456789";function kw(){let e=function(e){e=e.toLowerCase();const t=document.cookie.split(";");for(const o of t){const t=o.split("=");if(decodeURIComponent(t[0].trim().toLowerCase())===e)return decodeURIComponent(t[1])}return null}(yw);var t,o;return e&&40==e.length||(e=function(e){let t="";const o=new Uint8Array(e);window.crypto.getRandomValues(o);for(let e=0;e.5?i.toUpperCase():i}return t}(40),t=yw,o=e,document.cookie=encodeURIComponent(t)+"="+encodeURIComponent(o)+";path=/"),e}class vw{loader;url;t;xhr;constructor(e,t,o){this.loader=e,this.url=t,this.t=o}upload(){return this.loader.file.then((e=>new Promise(((t,o)=>{this._initRequest(),this._initListeners(t,o,e),this._sendRequest(e)}))))}abort(){this.xhr&&this.xhr.abort()}_initRequest(){const e=this.xhr=new XMLHttpRequest;e.open("POST",this.url,!0),e.responseType="json"}_initListeners(e,t,o){const i=this.xhr,n=this.loader,s=(0,this.t)("Cannot upload file:")+` ${o.name}.`;i.addEventListener("error",(()=>t(s))),i.addEventListener("abort",(()=>t())),i.addEventListener("load",(()=>{const o=i.response;if(!o||!o.uploaded)return t(o&&o.error&&o.error.message?o.error.message:s);e({default:o.url})})),i.upload&&i.upload.addEventListener("progress",(e=>{e.lengthComputable&&(n.uploadTotal=e.total,n.uploaded=e.loaded)}))}_sendRequest(e){const t=new FormData;t.append("upload",e),t.append("ckCsrfToken",kw()),this.xhr.send(t)}}function Cw(e,t,o,i){let n,s=null;"function"==typeof i?n=i:(s=e.commands.get(i),n=()=>{e.execute(i)}),e.model.document.on("change:data",((r,a)=>{if(s&&!s.isEnabled||!t.isEnabled)return;const l=to(e.model.document.selection.getRanges());if(!l.isCollapsed)return;if(a.isUndo||!a.isLocal)return;const c=Array.from(e.model.document.differ.getChanges()),d=c[0];if(1!=c.length||"insert"!==d.type||"$text"!=d.name||1!=d.length)return;const u=d.position.parent;if(u.is("element","codeBlock"))return;if(u.is("element","listItem")&&"function"!=typeof i&&!["numberedList","bulletedList","todoList"].includes(i))return;if(s&&!0===s.value)return;const h=u.getChild(0),m=e.model.createRangeOn(h);if(!m.containsRange(l)&&!l.end.isEqual(m.end))return;const g=o.exec(h.data.substr(0,l.end.offset));g&&e.model.enqueueChange((t=>{const o=e.model.document.selection,i=t.createPositionAt(u,0),s=t.createPositionAt(u,g[0].length),r=new Ts(i,s);if(!1!==n({match:g})){const e=Array.from(o.getAttributes());t.remove(r);const i=o.getFirstRange(),n=t.createRangeIn(u);!u.isEmpty||n.isEqual(i)||n.containsRange(i,!0)||t.remove(u),function(e,t,o){const i=e.model.schema,n=t.getFirstPosition();let s=new gr(n);i.checkChild(s,"$text")&&(s=s.push("$text"));for(const[t,n]of o)i.checkAttribute(s,t)&&e.setSelectionAttribute(t,n)}(t,o,e)}r.detach(),e.model.enqueueChange((()=>{e.plugins.get("Delete").requestUndoOnBackspace()}))}))}))}function Aw(e,t,o,i){let n,s;o instanceof RegExp?n=o:s=o,s=s||(e=>{let t;const o=[],i=[];for(;null!==(t=n.exec(e))&&!(t&&t.length<4);){let{index:e,1:n,2:s,3:r}=t;const a=n+s+r;e+=t[0].length-a.length;const l=[e,e+n.length],c=[e+n.length+s.length,e+n.length+s.length+r.length];o.push(l),o.push(c),i.push([e+n.length,e+n.length+s.length])}return{remove:o,format:i}}),e.model.document.on("change:data",((o,n)=>{if(n.isUndo||!n.isLocal||!t.isEnabled)return;const r=e.model,a=r.document.selection;if(!a.isCollapsed)return;const l=Array.from(r.document.differ.getChanges()),c=l[0];if(1!=l.length||"insert"!==c.type||"$text"!=c.name||1!=c.length)return;const d=a.focus,u=d.parent,{text:h,range:m}=function(e,t){let o=e.start;const i=Array.from(e.getItems()).reduce(((e,i)=>!i.is("$text")&&!i.is("$textProxy")||i.getAttribute("code")?(o=t.createPositionAfter(i),""):e+i.data),"");return{text:i,range:t.createRange(o,e.end)}}(r.createRange(r.createPositionAt(u,0),d),r),g=s(h),p=xw(m.start,g.format,r),f=xw(m.start,g.remove,r);p.length&&f.length&&r.enqueueChange((t=>{if(!1!==i(t,p)){for(const e of f.reverse())t.remove(e);r.enqueueChange((()=>{e.plugins.get("Delete").requestUndoOnBackspace()}))}}))}))}function xw(e,t,o){return t.filter((e=>void 0!==e[0]&&void 0!==e[1])).map((t=>o.createRange(e.getShiftedBy(t[0]),e.getShiftedBy(t[1]))))}function Ew(e,t){return(o,i)=>{if(!e.commands.get(t).isEnabled)return!1;const n=e.model.schema.getValidRanges(i,t);for(const e of n)o.setAttribute(t,!0,e);o.removeSelectionAttribute(t)}}class Tw extends wc{attributeKey;constructor(e,t){super(e),this.attributeKey=t}refresh(){const e=this.editor.model,t=e.document;this.value=this._getValueFromFirstAllowedNode(),this.isEnabled=e.schema.checkAttributeInSelection(t.selection,this.attributeKey)}execute(e={}){const t=this.editor.model,o=t.document.selection,i=void 0===e.forceValue?!this.value:e.forceValue;t.change((e=>{if(o.isCollapsed)i?e.setSelectionAttribute(this.attributeKey,!0):e.removeSelectionAttribute(this.attributeKey);else{const n=t.schema.getValidRanges(o.getRanges(),this.attributeKey,{includeEmptyRanges:!0});for(const t of n){let o=t,n=this.attributeKey;t.isCollapsed&&(o=t.start.parent,n=Os._getStoreAttributeKey(this.attributeKey)),i?e.setAttribute(n,i,o):e.removeAttribute(n,o)}}}))}_getValueFromFirstAllowedNode(){const e=this.editor.model,t=e.schema,o=e.document.selection;if(o.isCollapsed)return o.hasAttribute(this.attributeKey);for(const e of o.getRanges())for(const o of e.getItems())if(t.checkAttribute(o,this.attributeKey))return o.hasAttribute(this.attributeKey);return!1}}const Pw="bold";class Sw extends fc{static get pluginName(){return"BoldEditing"}static get isOfficialPlugin(){return!0}init(){const e=this.editor,t=this.editor.t;e.model.schema.extend("$text",{allowAttributes:Pw}),e.model.schema.setAttributeProperties(Pw,{isFormatting:!0,copyOnEnter:!0}),e.conversion.attributeToElement({model:Pw,view:"strong",upcastAlso:["b",e=>{const t=e.getStyle("font-weight");return t&&("bold"==t||Number(t)>=600)?{name:!0,styles:["font-weight"]}:null}]}),e.commands.add(Pw,new Tw(e,Pw)),e.keystrokes.set("CTRL+B",Pw),e.accessibility.addKeystrokeInfos({keystrokes:[{label:t("Bold text"),keystroke:"CTRL+B"}]})}}function Iw({editor:e,commandName:t,plugin:o,icon:i,label:n,keystroke:s}){return r=>{const a=e.commands.get(t),l=new r(e.locale);return l.set({label:n,icon:i,keystroke:s,isToggleable:!0}),l.bind("isEnabled").to(a,"isEnabled"),l.bind("isOn").to(a,"value"),l instanceof sh?l.set({role:"menuitemcheckbox"}):l.set({tooltip:!0}),o.listenTo(l,"execute",(()=>{e.execute(t),e.editing.view.focus()})),l}}const Rw="bold";class Ow extends fc{static get pluginName(){return"BoldUI"}static get isOfficialPlugin(){return!0}init(){const e=this.editor,t=e.locale.t,o=Iw({editor:e,commandName:Rw,plugin:this,icon:qc,label:t("Bold"),keystroke:"CTRL+B"});e.ui.componentFactory.add(Rw,(()=>o(Lu))),e.ui.componentFactory.add("menuBar:"+Rw,(()=>o(sh)))}}const Vw="code";class Dw extends fc{static get pluginName(){return"CodeEditing"}static get isOfficialPlugin(){return!0}static get requires(){return[Rg]}init(){const e=this.editor,t=this.editor.t;e.model.schema.extend("$text",{allowAttributes:Vw}),e.model.schema.setAttributeProperties(Vw,{isFormatting:!0,copyOnEnter:!1}),e.conversion.attributeToElement({model:Vw,view:"code"}),e.commands.add(Vw,new Tw(e,Vw)),e.plugins.get(Rg).registerAttribute(Vw),jg(e,Vw,"code","ck-code_selected"),e.accessibility.addKeystrokeInfos({keystrokes:[{label:t("Move out of an inline code style"),keystroke:[["arrowleft","arrowleft"],["arrowright","arrowright"]]}]})}}const Fw="code";class Mw extends fc{static get pluginName(){return"CodeUI"}static get isOfficialPlugin(){return!0}init(){const e=this.editor,t=e.locale.t,o=Iw({editor:e,commandName:Fw,plugin:this,icon:'',label:t("Code")});e.ui.componentFactory.add(Fw,(()=>o(Lu))),e.ui.componentFactory.add("menuBar:"+Fw,(()=>o(sh)))}}const Nw="italic";class Bw extends fc{static get pluginName(){return"ItalicEditing"}static get isOfficialPlugin(){return!0}init(){const e=this.editor,t=this.editor.t;e.model.schema.extend("$text",{allowAttributes:Nw}),e.model.schema.setAttributeProperties(Nw,{isFormatting:!0,copyOnEnter:!0}),e.conversion.attributeToElement({model:Nw,view:"i",upcastAlso:["em",{styles:{"font-style":"italic"}}]}),e.commands.add(Nw,new Tw(e,Nw)),e.keystrokes.set("CTRL+I",Nw),e.accessibility.addKeystrokeInfos({keystrokes:[{label:t("Italic text"),keystroke:"CTRL+I"}]})}}const Lw="italic";class zw extends fc{static get pluginName(){return"ItalicUI"}static get isOfficialPlugin(){return!0}init(){const e=this.editor,t=e.locale.t,o=Iw({editor:e,commandName:Lw,plugin:this,icon:'',keystroke:"CTRL+I",label:t("Italic")});e.ui.componentFactory.add(Lw,(()=>o(Lu))),e.ui.componentFactory.add("menuBar:"+Lw,(()=>o(sh)))}}const jw="strikethrough";class qw extends fc{static get pluginName(){return"StrikethroughEditing"}static get isOfficialPlugin(){return!0}init(){const e=this.editor,t=this.editor.t;e.model.schema.extend("$text",{allowAttributes:jw}),e.model.schema.setAttributeProperties(jw,{isFormatting:!0,copyOnEnter:!0}),e.conversion.attributeToElement({model:jw,view:"s",upcastAlso:["del","strike",{styles:{"text-decoration":"line-through"}}]}),e.commands.add(jw,new Tw(e,jw)),e.keystrokes.set("CTRL+SHIFT+X","strikethrough"),e.accessibility.addKeystrokeInfos({keystrokes:[{label:t("Strikethrough text"),keystroke:"CTRL+SHIFT+X"}]})}}const $w="strikethrough";class Hw extends fc{static get pluginName(){return"StrikethroughUI"}static get isOfficialPlugin(){return!0}init(){const e=this.editor,t=e.locale.t,o=Iw({editor:e,commandName:$w,plugin:this,icon:'',keystroke:"CTRL+SHIFT+X",label:t("Strikethrough")});e.ui.componentFactory.add($w,(()=>o(Lu))),e.ui.componentFactory.add("menuBar:"+$w,(()=>o(sh)))}}class Ww extends wc{refresh(){this.value=this._getValue(),this.isEnabled=this._checkEnabled()}execute(e={}){const t=this.editor.model,o=t.schema,i=t.document.selection,n=Array.from(i.getSelectedBlocks()),s=void 0===e.forceValue?!this.value:e.forceValue;t.change((e=>{if(s){const t=n.filter((e=>Uw(e)||Gw(o,e)));this._applyQuote(e,t)}else this._removeQuote(e,n.filter(Uw))}))}_getValue(){const e=to(this.editor.model.document.selection.getSelectedBlocks());return!(!e||!Uw(e))}_checkEnabled(){if(this.value)return!0;const e=this.editor.model.document.selection,t=this.editor.model.schema,o=to(e.getSelectedBlocks());return!!o&&Gw(t,o)}_removeQuote(e,t){Kw(e,t).reverse().forEach((t=>{if(t.start.isAtStart&&t.end.isAtEnd)return void e.unwrap(t.start.parent);if(t.start.isAtStart){const o=e.createPositionBefore(t.start.parent);return void e.move(t,o)}t.end.isAtEnd||e.split(t.end);const o=e.createPositionAfter(t.end.parent);e.move(t,o)}))}_applyQuote(e,t){const o=[];Kw(e,t).reverse().forEach((t=>{let i=Uw(t.start);i||(i=e.createElement("blockQuote"),e.wrap(t,i)),o.push(i)})),o.reverse().reduce(((t,o)=>t.nextSibling==o?(e.merge(e.createPositionAfter(t)),t):o))}}function Uw(e){return"blockQuote"==e.parent.name?e.parent:null}function Kw(e,t){let o,i=0;const n=[];for(;i{const i=e.model.document.differ.getChanges();for(const e of i)if("insert"==e.type){const i=e.position.nodeAfter;if(!i)continue;if(i.is("element","blockQuote")&&i.isEmpty)return o.remove(i),!0;if(i.is("element","blockQuote")&&!t.checkChild(e.position,i))return o.unwrap(i),!0;if(i.is("element")){const e=o.createRangeIn(i);for(const i of e.getItems())if(i.is("element","blockQuote")&&!t.checkChild(o.createPositionBefore(i),i))return o.unwrap(i),!0}}else if("remove"==e.type){const t=e.position.parent;if(t.is("element","blockQuote")&&t.isEmpty)return o.remove(t),!0}return!1}));const o=this.editor.editing.view.document,i=e.model.document.selection,n=e.commands.get("blockQuote");this.listenTo(o,"enter",((t,o)=>{if(!i.isCollapsed||!n.value)return;i.getLastPosition().parent.isEmpty&&(e.execute("blockQuote"),e.editing.view.scrollToTheSelection(),o.preventDefault(),t.stop())}),{context:"blockquote"}),this.listenTo(o,"delete",((t,o)=>{if("backward"!=o.direction||!i.isCollapsed||!n.value)return;const s=i.getLastPosition().parent;s.isEmpty&&!s.previousSibling&&(e.execute("blockQuote"),e.editing.view.scrollToTheSelection(),o.preventDefault(),t.stop())}),{context:"blockquote"})}}class Zw extends fc{static get pluginName(){return"BlockQuoteUI"}static get isOfficialPlugin(){return!0}init(){const e=this.editor;e.ui.componentFactory.add("blockQuote",(()=>{const e=this._createButton(Lu);return e.set({tooltip:!0}),e})),e.ui.componentFactory.add("menuBar:blockQuote",(()=>{const e=this._createButton(sh);return e.set({role:"menuitemcheckbox"}),e}))}_createButton(e){const t=this.editor,o=t.locale,i=t.commands.get("blockQuote"),n=new e(t.locale),s=o.t;return n.set({label:s("Block quote"),icon:'',isToggleable:!0}),n.bind("isEnabled").to(i,"isEnabled"),n.bind("isOn").to(i,"value"),this.listenTo(n,"execute",(()=>{t.execute("blockQuote"),t.editing.view.focus()})),n}}class Qw extends wc{constructor(e){super(e),this._isEnabledBasedOnSelection=!1}refresh(){const e=this.editor.model,t=to(e.document.selection.getSelectedBlocks());this.value=!!t&&t.is("element","paragraph"),this.isEnabled=!!t&&Yw(t,e.schema)}execute(e={}){const t=this.editor.model,o=t.document,i=e.selection||o.selection;t.canEditAt(i)&&t.change((e=>{const o=i.getSelectedBlocks();for(const i of o)!i.is("element","paragraph")&&Yw(i,t.schema)&&e.rename(i,"paragraph")}))}}function Yw(e,t){return t.checkChild(e.parent,"paragraph")&&!t.isObject(e)}class Xw extends wc{constructor(e){super(e),this._isEnabledBasedOnSelection=!1}execute(e){const t=this.editor.model,o=e.attributes;let i=e.position;return t.canEditAt(i)?t.change((e=>{if(i=this._findPositionToInsertParagraph(i,e),!i)return null;const n=e.createElement("paragraph");return o&&t.schema.setAllowedAttributes(n,o,e),t.insertContent(n,i),e.setSelection(n,"in"),e.createPositionAt(n,0)})):null}_findPositionToInsertParagraph(e,t){const o=this.editor.model;if(o.schema.checkChild(e,"paragraph"))return e;const i=o.schema.findAllowedParent(e,"paragraph");if(!i)return null;const n=e.parent,s=o.schema.checkChild(n,"$text");return n.isEmpty||s&&e.isAtEnd?o.createPositionAfter(n):!n.isEmpty&&s&&e.isAtStart?o.createPositionBefore(n):t.split(e,i).position}}class ey extends fc{static get pluginName(){return"Paragraph"}static get isOfficialPlugin(){return!0}init(){const e=this.editor,t=e.model;e.commands.add("paragraph",new Qw(e)),e.commands.add("insertParagraph",new Xw(e)),t.schema.register("paragraph",{inheritAllFrom:"$block"}),e.conversion.elementToElement({model:"paragraph",view:"p"}),e.conversion.for("upcast").elementToElement({model:(e,{writer:t})=>ey.paragraphLikeElements.has(e.name)?e.isEmpty?null:t.createElement("paragraph"):null,view:/.+/,converterPriority:"low"})}static paragraphLikeElements=new Set(["blockquote","dd","div","dt","h1","h2","h3","h4","h5","h6","li","p","td","th"])}class ty extends wc{modelElements;constructor(e,t){super(e),this.modelElements=t}refresh(){const e=to(this.editor.model.document.selection.getSelectedBlocks());this.value=!!e&&this.modelElements.includes(e.name)&&e.name,this.isEnabled=!!e&&this.modelElements.some((t=>oy(e,t,this.editor.model.schema)))}execute(e){const t=this.editor.model,o=t.document,i=e.value;t.change((e=>{const n=Array.from(o.selection.getSelectedBlocks()).filter((e=>oy(e,i,t.schema)));for(const t of n)t.is("element",i)||e.rename(t,i)}))}}function oy(e,t,o){return o.checkChild(e.parent,t)&&!o.isObject(e)}const iy="paragraph";class ny extends fc{static get pluginName(){return"HeadingEditing"}static get isOfficialPlugin(){return!0}constructor(e){super(e),e.config.define("heading",{options:[{model:"paragraph",title:"Paragraph",class:"ck-heading_paragraph"},{model:"heading1",view:"h2",title:"Heading 1",class:"ck-heading_heading1"},{model:"heading2",view:"h3",title:"Heading 2",class:"ck-heading_heading2"},{model:"heading3",view:"h4",title:"Heading 3",class:"ck-heading_heading3"}]})}static get requires(){return[ey]}init(){const e=this.editor,t=e.config.get("heading.options"),o=[];for(const i of t)"paragraph"!==i.model&&(e.model.schema.register(i.model,{inheritAllFrom:"$block"}),e.conversion.elementToElement(i),o.push(i.model));this._addDefaultH1Conversion(e),e.commands.add("heading",new ty(e,o))}afterInit(){const e=this.editor,t=e.commands.get("enter"),o=e.config.get("heading.options");t&&this.listenTo(t,"afterExecute",((t,i)=>{const n=e.model.document.selection.getFirstPosition().parent;o.some((e=>n.is("element",e.model)))&&!n.is("element",iy)&&0===n.childCount&&i.writer.rename(n,iy)}))}_addDefaultH1Conversion(e){e.conversion.for("upcast").elementToElement({model:"heading1",view:"h1",converterPriority:ge.low+1})}}function sy(e){const t=e.t,o={Paragraph:t("Paragraph"),"Heading 1":t("Heading 1"),"Heading 2":t("Heading 2"),"Heading 3":t("Heading 3"),"Heading 4":t("Heading 4"),"Heading 5":t("Heading 5"),"Heading 6":t("Heading 6")};return e.config.get("heading.options").map((e=>{const t=o[e.title];return t&&t!=e.title&&(e.title=t),e}))}class ry extends fc{static get pluginName(){return"HeadingUI"}static get isOfficialPlugin(){return!0}init(){const e=this.editor,t=e.t,o=sy(e),i=t("Choose heading"),n=t("Heading");e.ui.componentFactory.add("heading",(t=>{const s={},r=new eo,a=e.commands.get("heading"),l=e.commands.get("paragraph"),c=[a];for(const e of o){const t={type:"button",model:new Jm({label:e.title,class:e.class,role:"menuitemradio",withText:!0})};"paragraph"===e.model?(t.model.bind("isOn").to(l,"value"),t.model.set("commandName","paragraph"),c.push(l)):(t.model.bind("isOn").to(a,"value",(t=>t===e.model)),t.model.set({commandName:"heading",commandValue:e.model})),r.add(t),s[e.model]=e.title}const d=Zh(t);return Xh(d,r,{ariaLabel:n,role:"menu"}),d.buttonView.set({ariaLabel:n,ariaLabelledBy:void 0,isOn:!1,withText:!0,tooltip:n}),d.extendTemplate({attributes:{class:["ck-heading-dropdown"]}}),d.bind("isEnabled").toMany(c,"isEnabled",((...e)=>e.some((e=>e)))),d.buttonView.bind("label").to(a,"value",l,"value",((e,t)=>{const o=t?"paragraph":e;return"boolean"==typeof o?i:s[o]?s[o]:i})),d.buttonView.bind("ariaLabel").to(a,"value",l,"value",((e,t)=>{const o=t?"paragraph":e;return"boolean"==typeof o?n:s[o]?`${s[o]}, ${n}`:n})),this.listenTo(d,"execute",(t=>{const{commandName:o,commandValue:i}=t.source;e.execute(o,i?{value:i}:void 0),e.editing.view.focus()})),d})),e.ui.componentFactory.add("menuBar:heading",(i=>{const n=new og(i),s=e.commands.get("heading"),r=e.commands.get("paragraph"),a=[s],l=new ig(i);n.set({class:"ck-heading-dropdown"}),l.set({ariaLabel:t("Heading"),role:"menu"}),n.buttonView.set({label:t("Heading")}),n.panelView.children.add(l);for(const t of o){const o=new Em(i,n),c=new sh(i);o.children.add(c),l.items.add(o),c.set({isToggleable:!0,label:t.title,role:"menuitemradio",class:t.class}),c.delegate("execute").to(n),c.on("execute",(()=>{const o="paragraph"===t.model?"paragraph":"heading";e.execute(o,{value:t.model}),e.editing.view.focus()})),"paragraph"===t.model?(c.bind("isOn").to(r,"value"),a.push(r)):c.bind("isOn").to(s,"value",(e=>e===t.model))}return n.bind("isEnabled").toMany(a,"isEnabled",((...e)=>e.some((e=>e)))),n}))}}new Set(["paragraph","heading1","heading2","heading3","heading4","heading5","heading6"]);class ay{_definitions=new Set;_conflictChecker;get length(){return this._definitions.size}setConflictChecker(e){this._conflictChecker=e}add(e){Array.isArray(e)?e.forEach((e=>this._definitions.add(e))):this._definitions.add(e)}getDispatcher(){return e=>{const t=(e,t)=>{const o=t.createAttributeElement("a",e.attributes,{priority:5});e.classes&&t.addClass(e.classes,o);for(const i in e.styles)t.setStyle(i,e.styles[i],o);return t.setCustomProperty("link",!0,o),o},o=e=>(o,i,n)=>{if(i.attributeKey.startsWith("link")&&("linkHref"!=i.attributeKey||n.consumable.test(i.item,"attribute:linkHref"))&&(i.item.is("selection")||n.schema.isInline(i.item)))for(const o of this._definitions)o.callback(i.item.getAttribute("linkHref"))&&!this._conflictChecker?.(o,i.item)&&e?i.item.is("selection")?n.writer.wrap(n.writer.document.selection.getFirstRange(),t(o,n.writer)):n.writer.wrap(n.mapper.toViewRange(i.range),t(o,n.writer)):n.writer.unwrap(n.mapper.toViewRange(i.range),t(o,n.writer))};e.on("attribute",o(!1),{priority:ge.high-1}),e.on("attribute",o(!0),{priority:ge.high-2})}}getDispatcherForLinkedImage(){return e=>{const t=e=>(t,o,{writer:i,mapper:n})=>{if(!o.item.is("element","imageBlock")||!o.attributeKey.startsWith("link"))return;const s=n.toViewElement(o.item),r=Array.from(s.getChildren()).find((e=>e.is("element","a")));if(r)for(const t of this._definitions){const n=ao(t.attributes);if(t.callback(o.item.getAttribute("linkHref"))&&!this._conflictChecker?.(t,o.item)&&e){for(const[e,t]of n)"class"===e?i.addClass(t,r):i.setAttribute(e,t,!1,r);t.classes&&i.addClass(t.classes,r);for(const e in t.styles)i.setStyle(e,t.styles[e],r)}else{for(const[e,t]of n)"class"===e?i.removeClass(t,r):i.removeAttribute(e,t,r);t.classes&&i.removeClass(t.classes,r);for(const e in t.styles)i.removeStyle(e,r)}}};e.on("attribute",t(!1),{priority:ge.high-1}),e.on("attribute",t(!0),{priority:ge.high-2})}}}const ly=/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205f\u3000]/g,cy=/^[\S]+@((?![-_])(?:[-\w\u00a1-\uffff]{0,63}[^-_]\.))+(?:[a-z\u00a1-\uffff]{2,})$/i,dy=/^((\w+:(\/{2,})?)|(\W))/i,uy=["https?","ftps?","mailto"],hy="Ctrl+K";function my(e,{writer:t}){const o=t.createAttributeElement("a",{href:e},{priority:5});return t.setCustomProperty("link",!0,o),o}function gy(e,t=uy){const o=String(e),i=t.join("|");return function(e,t){const o=e.replace(ly,"");return!!o.match(t)}(o,new RegExp(`${"^(?:(?:):|[^a-z]|[a-z+.-]+(?:[^a-z+.:-]|$))".replace("",i)}`,"i"))?o:"#"}function py(e,t){return!!e&&t.checkAttribute(e.name,"linkHref")}function fy(e,t){const o=(i=e,cy.test(i)?"mailto:":t);var i;const n=!!o&&!by(e);return e&&n?o+e:e}function by(e){return dy.test(e)}function wy(e){let t="";for(const o of e.getItems()){if(!o.is("$text")&&!o.is("$textProxy"))return;t+=o.data}return t}function yy(e,t){if(e.attributes&&t.attributes){if(Object.keys(e.attributes).some((e=>!function(e){return"class"===e||"style"===e||"rel"===e}(e)&&e in t.attributes)))return!0}if(e.styles&&t.styles){if(Object.keys(e.styles).some((e=>e in t.styles)))return!0}return!1}function _y(e,t){const o=t.find((t=>t.id===e));return o?t.filter((t=>t.id!==e&&yy(o,t))).map((e=>e.id)):[]}class ky extends wc{manualDecorators=new eo;automaticDecorators=new ay;restoreManualDecoratorStates(){for(const e of this.manualDecorators)e.value=this._getDecoratorStateFromModel(e.id)}refresh(){const e=this.editor.model,t=e.document.selection,o=t.getSelectedElement()||to(t.getSelectedBlocks());py(o,e.schema)?(this.value=o.getAttribute("linkHref"),this.isEnabled=e.schema.checkAttribute(o,"linkHref")):(this.value=t.getAttribute("linkHref"),this.isEnabled=e.schema.checkAttributeInSelection(t,"linkHref"));for(const e of this.manualDecorators)e.value=this._getDecoratorStateFromModel(e.id)}execute(e,t={},o){const i=this.editor.model,n=i.document.selection,s=function({decoratorStates:e,allDecorators:t}){const o={...e};for(const n in e)if(e[n]&&i(n)){const e=_y(n,t);for(const t of e)o[t]=!1}function i(e){return t.some((t=>t.id===e&&!t.value))}return o}({allDecorators:Array.from(this.manualDecorators),decoratorStates:t}),r=[],a=[];for(const e in s)s[e]?r.push(e):a.push(e);i.change((t=>{const s=o=>{t.setAttribute("linkHref",e,o),r.forEach((e=>t.setAttribute(e,!0,o))),a.forEach((e=>t.removeAttribute(e,o)))},l=(n,r)=>{const a=wy(n);if(!a)return n;let l=o;if(l||(l=r&&r==a?e:a),l!=a){const e=t.createDocumentFragment();for(const o of n.getItems()){const i=o;t.append(t.createText(i.data,i.getAttributes()),e)}const o=t.createRangeIn(e),r=function(e,t){const o=de(e,t),i={equal:0,insert:0,delete:0},n=[];let s="",r="";for(const a of[...o,null])"insert"==a?r+=t[i.equal+i.insert]:"delete"==a?s+=e[i.equal+i.delete]:(s.length||r.length)&&(n.push({offset:i.equal,actual:s,expected:r}),s="",r=""),a&&i[a]++;return n}(a,l);let c=0;for(const{offset:e,actual:n,expected:a}of r){const r=e+c,l=t.createRange(o.start.getShiftedBy(r),o.start.getShiftedBy(r+n.length)),d=vy(l,o).getAttributes(),u=Array.from(d).filter((([e])=>i.schema.getAttributeProperties(e).isFormatting)),h=t.createText(a,u);s(h),t.remove(l),t.insert(h,l.start),c+=a.length}return i.insertContent(e,n),t.createRange(n.start,n.start.getShiftedBy(l.length))}},c=e=>{const{plugins:o}=this.editor;if(t.setSelection(e.end),o.has("TwoStepCaretMovement"))o.get("TwoStepCaretMovement")._handleForwardMovement();else for(const e of["linkHref",...r,...a])t.removeSelectionAttribute(e)};if(n.isCollapsed){const a=n.getFirstPosition();if(n.hasAttribute("linkHref")){const e=n.getAttribute("linkHref"),t=Lg(a,"linkHref",e,i),o=l(t,e);s(o||t),o&&c(o)}else if(""!==e){const s=ao(n.getAttributes());s.set("linkHref",e),r.forEach((e=>{s.set(e,!0)}));c(i.insertContent(t.createText(o||e,s),a))}}else{const e=Array.from(n.getRanges()),o=i.schema.getValidRanges(e,"linkHref"),r=[];for(const e of n.getSelectedBlocks())i.schema.checkAttribute(e,"linkHref")&&r.push(t.createRangeOn(e));const a=r.slice();for(const e of o)this._isRangeToUpdate(e,r)&&a.push(e);const c=e.map((e=>({start:ma.fromPosition(e.start,"toPrevious"),end:ma.fromPosition(e.end,"toNext")})));for(let e of a){e=l(e,(e.start.textNode||e.start.nodeAfter).getAttribute("linkHref"))||e,s(e)}t.setSelection(c.map((e=>{const t=e.start.toPosition(),o=e.end.toPosition();return e.start.detach(),e.end.detach(),i.createRange(t,o)})))}})),this.restoreManualDecoratorStates()}_getDecoratorStateFromModel(e){const t=this.editor.model,o=t.document.selection,i=o.getSelectedElement();return py(i,t.schema)?i.getAttribute(e):o.getAttribute(e)}_isRangeToUpdate(e,t){for(const o of t)if(o.containsRange(e))return!1;return!0}}function vy(e,t){if(!e.isCollapsed)return to(e.getItems());const o=e.start;return o.textNode?o.textNode:!o.nodeBefore||o.isEqual(t.start)?o.nodeAfter:o.nodeBefore}class Cy extends wc{refresh(){const e=this.editor.model,t=e.document.selection,o=t.getSelectedElement();py(o,e.schema)?this.isEnabled=e.schema.checkAttribute(o,"linkHref"):this.isEnabled=e.schema.checkAttributeInSelection(t,"linkHref")}execute(){const e=this.editor,t=this.editor.model,o=t.document.selection,i=e.commands.get("link");t.change((e=>{const n=o.isCollapsed?[Lg(o.getFirstPosition(),"linkHref",o.getAttribute("linkHref"),t)]:t.schema.getValidRanges(o.getRanges(),"linkHref");for(const t of n)if(e.removeAttribute("linkHref",t),i)for(const o of i.manualDecorators)e.removeAttribute(o.id,t)}))}}class Ay extends(Be()){id;defaultValue;label;attributes;classes;styles;constructor({id:e,label:t,attributes:o,classes:i,styles:n,defaultValue:s}){super(),this.id=e,this.set("value",void 0),this.defaultValue=s,this.label=t,this.attributes=o,this.classes=i,this.styles=n}_createPattern(){return{attributes:this.attributes,classes:this.classes,styles:this.styles}}}const xy="automatic",Ey=/^(https?:)?\/\//;class Ty extends fc{_linkOpeners=[];static get pluginName(){return"LinkEditing"}static get isOfficialPlugin(){return!0}static get requires(){return[Rg,fg,bf]}constructor(e){super(e),e.config.define("link",{allowCreatingEmptyLinks:!1,addTargetToExternalLinks:!1,toolbar:["linkPreview","|","editLink","linkProperties","unlink"]})}init(){const e=this.editor,t=this.editor.config.get("link.allowedProtocols");e.model.schema.extend("$text",{allowAttributes:"linkHref"}),e.conversion.for("dataDowncast").attributeToElement({model:"linkHref",view:my}),e.conversion.for("editingDowncast").attributeToElement({model:"linkHref",view:(e,o)=>my(gy(e,t),o)}),e.conversion.for("upcast").elementToAttribute({view:{name:"a",attributes:{href:!0}},model:{key:"linkHref",value:e=>e.getAttribute("href")}}),e.commands.add("link",new ky(e)),e.commands.add("unlink",new Cy(e));const o=function(e,t){const o={"Open in a new tab":e("Open in a new tab"),Downloadable:e("Downloadable")};return t.forEach((e=>("label"in e&&o[e.label]&&(e.label=o[e.label]),e))),t}(e.t,function(e){const t=[];if(e)for(const[i,n]of Object.entries(e)){const e=Object.assign({},n,{id:`link${o=i,function(e){return e.substring(0,1).toUpperCase()+e.substring(1)}(_o(o))}`});t.push(e)}var o;return t}(e.config.get("link.decorators")));this._enableAutomaticDecorators(o.filter((e=>e.mode===xy))),this._enableManualDecorators(o.filter((e=>"manual"===e.mode)));e.plugins.get(Rg).registerAttribute("linkHref"),jg(e,"linkHref","a","ck-link_selected"),this._enableLinkOpen(),this._enableSelectionAttributesFixer(),this._enableClipboardIntegration(),this._enableDecoratorConflictPostfixer()}_registerLinkOpener(e){this._linkOpeners.push(e)}_enableAutomaticDecorators(e){const t=this.editor,o=t.commands.get("link"),i=o.automaticDecorators;t.config.get("link.addTargetToExternalLinks")&&i.add({id:"linkIsExternal",mode:xy,callback:e=>!!e&&Ey.test(e),attributes:{target:"_blank",rel:"noopener noreferrer"}}),i.add(e),i.setConflictChecker(((e,t)=>{for(const i of o.manualDecorators)if(t.hasAttribute(i.id)&&yy(e,i))return!0})),i.length&&t.conversion.for("downcast").add(i.getDispatcher())}_enableManualDecorators(e){if(!e.length)return;const t=this.editor,o=t.commands.get("link").manualDecorators;e.forEach((e=>{t.model.schema.extend("$text",{allowAttributes:e.id});const i=new Ay(e);o.add(i),t.conversion.for("downcast").add((e=>{const t=e=>{const t=e.createAttributeElement("a",i.attributes,{priority:5});i.classes&&e.addClass(i.classes,t);for(const o in i.styles)e.setStyle(o,i.styles[o],t);return e.setCustomProperty("link",!0,t),t},o=e=>(o,i,n)=>{if(i.item.is("selection")||n.schema.isInline(i.item)){if(!e&&i.attributeOldValue){if(!n.consumable.test(i.item,o.name))return;n.writer.unwrap(n.mapper.toViewRange(i.range),t(n.writer))}if(e&&i.attributeNewValue){if(!n.consumable.consume(i.item,o.name))return;i.item.is("selection")?n.writer.wrap(n.writer.document.selection.getFirstRange(),t(n.writer)):n.writer.wrap(n.mapper.toViewRange(i.range),t(n.writer))}}};e.on(`attribute:${i.id}`,o(!1),{priority:ge.high-1}),e.on(`attribute:${i.id}`,o(!0),{priority:ge.high-2})})),t.conversion.for("upcast").elementToAttribute({view:{name:"a",...i._createPattern()},model:{key:i.id}})}))}_enableLinkOpen(){const e=this.editor,t=e.editing.view.document,o=e=>{var t;this._linkOpeners.some((t=>t(e)))||(t=e,window.open(t,"_blank","noopener"))};this.listenTo(t,"click",((e,t)=>{if(!(Y.isMac?t.domEvent.metaKey:t.domEvent.ctrlKey))return;let i=t.domTarget;if("a"!=i.tagName.toLowerCase()&&(i=i.closest("a")),!i)return;const n=i.getAttribute("href");n&&(e.stop(),t.preventDefault(),o(n))}),{context:"$capture"}),this.listenTo(t,"keydown",((t,i)=>{const n=e.commands.get("link").value;!!n&&i.keyCode===qt.enter&&i.altKey&&(t.stop(),o(n))}))}_enableSelectionAttributesFixer(){const e=this.editor.model,t=e.document.selection;this.listenTo(t,"change:attribute",((o,{attributeKeys:i})=>{i.includes("linkHref")&&!t.hasAttribute("linkHref")&&e.change((t=>{var o;!function(e,t){e.removeSelectionAttribute("linkHref");for(const o of t)e.removeSelectionAttribute(o)}(t,(o=e.schema,o.getDefinition("$text").allowAttributes.filter((e=>e.startsWith("link")))))}))}))}_enableClipboardIntegration(){const e=this.editor,t=e.model,o=this.editor.config.get("link.defaultProtocol");o&&this.listenTo(e.plugins.get("ClipboardPipeline"),"contentInsertion",((e,i)=>{t.change((e=>{const t=e.createRangeIn(i.content);for(const i of t.getItems())if(i.hasAttribute("linkHref")){const t=fy(i.getAttribute("linkHref"),o);e.setAttribute("linkHref",t,i)}}))}))}_enableDecoratorConflictPostfixer(){const e=this.editor,t=e.model,o=e.commands.get("link");t.document.registerPostFixer((e=>{let i=!1;const n=t.document.differ.getChanges(),s=new Set,r=new Set(o.manualDecorators.map((e=>e.id)));for(const e of n){if("attribute"===e.type){if("linkHref"!==e.attributeKey&&!r.has(e.attributeKey))continue;for(const t of e.range.getItems())t.hasAttribute("linkHref")&&s.add(t)}"insert"===e.type&&e.attributes.has("linkHref")&&e.position.nodeAfter&&s.add(e.position.nodeAfter)}for(const t of s){const n=[];for(const s of o.manualDecorators)if(t.hasAttribute(s.id)){for(let o=n.length-1;o>=0;o--){const r=n[o];yy(r,s)&&(e.removeAttribute(r.id,t),n.splice(o,1),i=!0)}n.push(s)}}return i}))}}class Py extends Lu{constructor(e){super(e);const t=this.bindTemplate;this.set({href:void 0,withText:!0}),this.extendTemplate({attributes:{class:["ck-link-toolbar__preview"],href:t.to("href"),target:"_blank",rel:"noopener noreferrer"},on:{click:t.to((e=>{if(this.href){const t=()=>e.preventDefault();this.fire("navigate",this.href,t)}}))}}),this.template.tag="a"}}class Sy extends Au{focusTracker=new oo;keystrokes=new ro;backButtonView;saveButtonView;displayedTextInputView;urlInputView;children;providersListChildren;_validators;_focusables=new tu;_focusCycler;constructor(e,t){super(e),this._validators=t,this.backButtonView=this._createBackButton(),this.saveButtonView=this._createSaveButton(),this.displayedTextInputView=this._createDisplayedTextInput(),this.urlInputView=this._createUrlInput(),this.providersListChildren=this.createCollection(),this.children=this.createCollection([this._createHeaderView()]),this._createFormChildren(),this.listenTo(this.providersListChildren,"add",(()=>{this.stopListening(this.providersListChildren,"add"),this.children.add(this._createProvidersListView())})),this._focusCycler=new qu({focusables:this._focusables,focusTracker:this.focusTracker,keystrokeHandler:this.keystrokes,actions:{focusPrevious:"shift + tab",focusNext:"tab"}}),this.setTemplate({tag:"form",attributes:{class:["ck","ck-form","ck-link-form","ck-responsive-form"],tabindex:"-1"},children:this.children})}render(){super.render(),Ou({view:this});[this.urlInputView,this.saveButtonView,...this.providersListChildren,this.backButtonView,this.displayedTextInputView].forEach((e=>{this._focusables.add(e),this.focusTracker.add(e.element)})),this.keystrokes.listenTo(this.element)}destroy(){super.destroy(),this.focusTracker.destroy(),this.keystrokes.destroy()}focus(){this._focusCycler.focusFirst()}isValid(){this.resetFormStatus();for(const e of this._validators){const t=e(this);if(t)return this.urlInputView.errorText=t,!1}return!0}resetFormStatus(){this.urlInputView.errorText=null}_createBackButton(){const e=this.locale.t,t=new Lu(this.locale);return t.set({class:"ck-button-back",label:e("Back"),icon:ed,tooltip:!0}),t.delegate("execute").to(this,"cancel"),t}_createSaveButton(){const e=this.locale.t,t=new Lu(this.locale);return t.set({label:e("Insert"),tooltip:!1,withText:!0,type:"submit",class:"ck-button-action ck-button-bold"}),t}_createHeaderView(){const e=this.locale.t,t=new ju(this.locale,{label:e("Link")});return t.children.add(this.backButtonView,0),t}_createProvidersListView(){const e=new zh(this.locale);return e.extendTemplate({attributes:{class:["ck-link-form__providers-list"]}}),e.items.bindTo(this.providersListChildren).using((e=>{const t=new Nh(this.locale);return t.children.add(e),t})),e}_createDisplayedTextInput(){const e=this.locale.t,t=new Sh(this.locale,nm);return t.label=e("Displayed text"),t.class="ck-labeled-field-view_full-width",t}_createUrlInput(){const e=this.locale.t,t=new Sh(this.locale,nm);return t.fieldView.inputMode="url",t.label=e("Link URL"),t.class="ck-labeled-field-view_full-width",t}_createFormChildren(){this.children.add(new Km(this.locale,{children:[this.displayedTextInputView],class:["ck-form__row_large-top-padding"]})),this.children.add(new Km(this.locale,{children:[this.urlInputView,this.saveButtonView],class:["ck-form__row_with-submit","ck-form__row_large-top-padding","ck-form__row_large-bottom-padding"]}))}get url(){const{element:e}=this.urlInputView.fieldView;return e?e.value.trim():null}}class Iy extends Au{focusTracker=new oo;keystrokes=new ro;backButtonView;listView;listChildren;emptyListInformation;children;_focusables=new tu;_focusCycler;constructor(e){super(e),this.listChildren=this.createCollection(),this.backButtonView=this._createBackButton(),this.listView=this._createListView(),this.emptyListInformation=this._createEmptyLinksListItemView(),this.children=this.createCollection([this._createHeaderView(),this.emptyListInformation]),this.set("title",""),this.set("emptyListPlaceholder",""),this.set("hasItems",!1),this.listenTo(this.listChildren,"change",(()=>{this.hasItems=this.listChildren.length>0})),this.on("change:hasItems",((e,t,o)=>{o?(this.children.remove(this.emptyListInformation),this.children.add(this.listView)):(this.children.remove(this.listView),this.children.add(this.emptyListInformation))})),this.keystrokes.set("Esc",((e,t)=>{this.fire("cancel"),t()})),this._focusCycler=new qu({focusables:this._focusables,focusTracker:this.focusTracker,keystrokeHandler:this.keystrokes,actions:{focusPrevious:"shift + tab",focusNext:"tab"}}),this.setTemplate({tag:"div",attributes:{class:["ck","ck-link-providers"],tabindex:"-1"},children:this.children})}render(){super.render();[this.listView,this.backButtonView].forEach((e=>{this._focusables.add(e),this.focusTracker.add(e.element)})),this.keystrokes.listenTo(this.element)}destroy(){super.destroy(),this.focusTracker.destroy(),this.keystrokes.destroy()}focus(){this._focusCycler.focusFirst()}_createListView(){const e=new zh(this.locale);return e.extendTemplate({attributes:{class:["ck-link-providers__list"]}}),e.items.bindTo(this.listChildren).using((e=>{const t=new Nh(this.locale);return t.children.add(e),t})),e}_createBackButton(){const e=this.locale.t,t=new Lu(this.locale);return t.set({class:"ck-button-back",label:e("Back"),icon:ed,tooltip:!0}),t.delegate("execute").to(this,"cancel"),t}_createHeaderView(){const e=new ju(this.locale);return e.bind("label").to(this,"title"),e.children.add(this.backButtonView,0),e}_createEmptyLinksListItemView(){const e=new Au(this.locale);return e.setTemplate({tag:"p",attributes:{class:["ck","ck-link__empty-list-info"]},children:[{text:this.bindTemplate.to("emptyListPlaceholder")}]}),e}}class Ry extends Au{focusTracker=new oo;keystrokes=new ro;backButtonView;children;listChildren;_focusables=new tu;_focusCycler;constructor(e){super(e),this.backButtonView=this._createBackButton(),this.listChildren=this.createCollection(),this.children=this.createCollection([this._createHeaderView(),this._createListView()]),this._focusCycler=new qu({focusables:this._focusables,focusTracker:this.focusTracker,keystrokeHandler:this.keystrokes,actions:{focusPrevious:"shift + tab",focusNext:"tab"}}),this.setTemplate({tag:"div",attributes:{class:["ck","ck-link-properties"],tabindex:"-1"},children:this.children}),this.keystrokes.set("Esc",((e,t)=>{this.fire("back"),t()}))}render(){super.render();[...this.listChildren,this.backButtonView].forEach((e=>{this._focusables.add(e),this.focusTracker.add(e.element)})),this.keystrokes.listenTo(this.element)}destroy(){super.destroy(),this.focusTracker.destroy(),this.keystrokes.destroy()}focus(){this._focusCycler.focusFirst()}_createBackButton(){const e=this.locale.t,t=new Lu(this.locale);return t.set({class:"ck-button-back",label:e("Back"),icon:ed,tooltip:!0}),t.delegate("execute").to(this,"back"),t}_createHeaderView(){const e=this.locale.t,t=new ju(this.locale,{label:e("Link properties")});return t.children.add(this.backButtonView,0),t}_createListView(){const e=new zh(this.locale);return e.extendTemplate({attributes:{class:["ck-link__list"]}}),e.items.bindTo(this.listChildren).using((e=>{const t=new Nh(this.locale);return t.children.add(e),t})),e}}class Oy extends Lu{arrowView;constructor(e){super(e),this.set({withText:!0}),this.arrowView=this._createArrowView(),this.extendTemplate({attributes:{class:["ck-link__button"]}})}render(){super.render(),this.children.add(this.arrowView)}_createArrowView(){const e=new Nu;return e.content=Kc,e}}const Vy="link-ui";class Dy extends fc{toolbarView=null;formView=null;linkProviderItemsView=null;propertiesView=null;_balloon;_linksProviders=new eo;static get requires(){return[Qm,Ty]}static get pluginName(){return"LinkUI"}static get isOfficialPlugin(){return!0}init(){const e=this.editor,t=this.editor.t;this.set("selectedLinkableText",void 0),e.editing.view.addObserver(ol),this._balloon=e.plugins.get(Qm),this._registerComponents(),this._registerEditingOpeners(),this._enableBalloonActivators(),e.conversion.for("editingDowncast").markerToHighlight({model:Vy,view:{classes:["ck-fake-link-selection"]}}),e.conversion.for("editingDowncast").markerToElement({model:Vy,view:(e,{writer:t})=>{if(!e.markerRange.isCollapsed)return null;const o=t.createUIElement("span");return t.addClass(["ck-fake-link-selection","ck-fake-link-selection_collapsed"],o),o}}),e.accessibility.addKeystrokeInfos({keystrokes:[{label:t("Create link"),keystroke:hy},{label:t("Move out of a link"),keystroke:[["arrowleft","arrowleft"],["arrowright","arrowright"]]}]})}destroy(){super.destroy(),this.propertiesView&&this.propertiesView.destroy(),this.formView&&this.formView.destroy(),this.toolbarView&&this.toolbarView.destroy(),this.linkProviderItemsView&&this.linkProviderItemsView.destroy()}registerLinksListProvider(e){const t=this._linksProviders.filter((t=>(t.order||0)<=(e.order||0))).length;this._linksProviders.add(e,t)}_createViews(){const e=this.editor.commands.get("link");this.toolbarView=this._createToolbarView(),this.formView=this._createFormView(),e.manualDecorators.length&&(this.propertiesView=this._createPropertiesView()),this._enableUserBalloonInteractions()}_createToolbarView(){const e=this.editor,t=new Wh(e.locale),o=e.commands.get("link");t.class="ck-link-toolbar";let i=e.config.get("link.toolbar");return o.manualDecorators.length||(i=i.filter((e=>"linkProperties"!==e))),t.fillFromConfig(i,e.ui.componentFactory),t.keystrokes.set("Esc",((e,t)=>{this._hideUI(),t()})),t.keystrokes.set(hy,((e,t)=>{this._addFormView(),t()})),e.ui.addToolbar(t,{isContextual:!0,beforeFocus:()=>{this._getSelectedLinkElement()&&!this._isToolbarVisible&&this._showUI(!0)},afterBlur:()=>{this._hideUI(!1)}}),t}_createFormView(){const e=this.editor,t=e.locale.t,o=e.commands.get("link"),i=e.config.get("link.defaultProtocol"),n=new(Iu(Sy))(e.locale,function(e){const t=e.t,o=e.config.get("link.allowCreatingEmptyLinks");return[e=>{if(!o&&!e.url.length)return t("Link URL must not be empty.")}]}(e));return n.displayedTextInputView.bind("isEnabled").to(this,"selectedLinkableText",(e=>void 0!==e)),n.urlInputView.bind("isEnabled").to(o,"isEnabled"),n.saveButtonView.bind("isEnabled").to(o,"isEnabled"),n.saveButtonView.bind("label").to(o,"value",(e=>t(e?"Update":"Insert"))),this.listenTo(n,"submit",(()=>{if(n.isValid()){const t=fy(n.urlInputView.fieldView.element.value,i),o=n.displayedTextInputView.fieldView.element.value;e.execute("link",t,this._getDecoratorSwitchesState(),o!==this.selectedLinkableText?o:void 0),this._closeFormView()}})),this.listenTo(n.urlInputView,"change:errorText",(()=>{e.ui.update()})),this.listenTo(n,"cancel",(()=>{this._closeFormView()})),n.keystrokes.set("Esc",((e,t)=>{this._closeFormView(),t()})),n.providersListChildren.bindTo(this._linksProviders).using((e=>this._createLinksListProviderButton(e))),n}_createLinkProviderListView(e){return e.getListItems().map((({href:e,label:t,icon:o})=>{const i=new Lu;return i.set({label:t,icon:o,tooltip:!1,withText:!0}),i.on("execute",(()=>{this.formView.resetFormStatus(),this.formView.urlInputView.fieldView.value=e,this.editor.editing.view.focus(),this._removeLinksProviderView(),this.formView.focus()})),i}))}_createLinkProviderItemsView(e){const t=this.editor,o=t.locale.t,i=new Iy(t.locale),{emptyListPlaceholder:n,label:s}=e;return i.emptyListPlaceholder=n||o("No links available"),i.title=s,this.listenTo(i,"cancel",(()=>{t.editing.view.focus(),this._removeLinksProviderView(),this.formView.focus()})),i}_createPropertiesView(){const e=this.editor,t=this.editor.commands.get("link"),o=new(Iu(Ry))(e.locale);return this.listenTo(o,"back",(()=>{e.editing.view.focus(),this._removePropertiesView()})),o.listChildren.bindTo(t.manualDecorators).using((o=>{const i=new fh(e.locale);return i.set({label:o.label,withText:!0}),i.bind("isOn").toMany([o,t],"value",((e,t)=>void 0===t&&void 0===e?!!o.defaultValue:!!e)),i.on("execute",(()=>{e.execute("link",t.value,{...this._getDecoratorSwitchesState(),[o.id]:!i.isOn})})),i})),o}_getDecoratorSwitchesState(){const e=this.editor.commands.get("link");return Array.from(e.manualDecorators).reduce(((t,o)=>{const i=void 0===e.value&&void 0===o.value?o.defaultValue:o.value;return{...t,[o.id]:!!i}}),{})}_registerEditingOpeners(){this.editor.plugins.get(Ty)._registerLinkOpener((e=>{const t=this._getLinkProviderLinkByHref(e);if(!t)return!1;const{item:o,provider:i}=t;return!!i.navigate&&i.navigate(o)}))}_registerComponents(){const e=this.editor;e.ui.componentFactory.add("link",(()=>{const e=this._createButton(Lu);return e.set({tooltip:!0}),e})),e.ui.componentFactory.add("menuBar:link",(()=>{const e=this._createButton(sh);return e.set({role:"menuitemcheckbox"}),e})),e.ui.componentFactory.add("linkPreview",(t=>{const o=new Py(t),i=e.config.get("link.allowedProtocols"),n=e.commands.get("link"),s=t.t;o.bind("isEnabled").to(n,"value",(e=>!!e)),o.bind("href").to(n,"value",(e=>e&&gy(e,i)));const r=e=>{if(!e)return o.label=void 0,o.icon=void 0,void(o.tooltip=s("Open link in new tab"));const t=this._getLinkProviderLinkByHref(e);if(t){const{label:e,tooltip:i,icon:n}=t.item;o.label=e,o.tooltip=i||!1,o.icon=n}else o.label=e,o.icon=void 0,o.tooltip=s("Open link in new tab")};return r(n.value),this.listenTo(n,"change:value",((e,t,o)=>{r(o)})),this.listenTo(o,"navigate",((e,t,o)=>{const i=this._getLinkProviderLinkByHref(t);if(!i)return;const{provider:n,item:s}=i,{navigate:r}=n;r&&r(s)&&(e.stop(),o())})),o})),e.ui.componentFactory.add("unlink",(t=>{const o=e.commands.get("unlink"),i=new Lu(t),n=t.t;return i.set({label:n("Unlink"),icon:'',tooltip:!0}),i.bind("isEnabled").to(o),this.listenTo(i,"execute",(()=>{e.execute("unlink"),this._hideUI()})),i})),e.ui.componentFactory.add("editLink",(t=>{const o=e.commands.get("link"),i=new Lu(t),n=t.t;return i.set({label:n("Edit link"),icon:'',tooltip:!0}),i.bind("isEnabled").to(o),this.listenTo(i,"execute",(()=>{this._addFormView()})),i})),e.ui.componentFactory.add("linkProperties",(t=>{const o=e.commands.get("link"),i=new Lu(t),n=t.t;return i.set({label:n("Link properties"),icon:'\n',tooltip:!0}),i.bind("isEnabled").to(o,"isEnabled",o,"value",o,"manualDecorators",((e,t,o)=>e&&!!t&&o.length>0)),this.listenTo(i,"execute",(()=>{this._addPropertiesView()})),i}))}_createLinksListProviderButton(e){const t=this.editor.locale,o=new Oy(t);return o.set({label:e.label}),this.listenTo(o,"execute",(()=>{this._showLinksProviderView(e)})),o}_createButton(e){const t=this.editor,o=t.locale,i=t.commands.get("link"),n=new e(t.locale),s=o.t;return n.set({label:s("Link"),icon:'',keystroke:hy,isToggleable:!0}),n.bind("isEnabled").to(i,"isEnabled"),n.bind("isOn").to(i,"value",(e=>!!e)),this.listenTo(n,"execute",(()=>{t.editing.view.scrollToTheSelection(),this._showUI(!0),this._getSelectedLinkElement()&&this._addFormView()})),n}_enableBalloonActivators(){const e=this.editor,t=e.editing.view.document;this.listenTo(t,"click",(()=>{this._getSelectedLinkElement()&&this._showUI()})),e.keystrokes.set(hy,((t,o)=>{o(),e.commands.get("link").isEnabled&&(e.editing.view.scrollToTheSelection(),this._showUI(!0))}))}_enableUserBalloonInteractions(){this.editor.keystrokes.set("Tab",((e,t)=>{this._isToolbarVisible&&!this.toolbarView.focusTracker.isFocused&&(this.toolbarView.focus(),t())}),{priority:"high"}),this.editor.keystrokes.set("Esc",((e,t)=>{this._isUIVisible&&(this._hideUI(),t())})),Su({emitter:this.formView,activator:()=>this._isUIInPanel,contextElements:()=>[this._balloon.view.element],callback:()=>{this._hideUI(!1)}})}_addToolbarView(){this.toolbarView||this._createViews(),this._isToolbarInPanel||this._balloon.add({view:this.toolbarView,position:this._getBalloonPositionData(),balloonClassName:"ck-toolbar-container"})}_addFormView(){if(this.formView||this._createViews(),this._isFormInPanel)return;const e=this.editor.commands.get("link");this.formView.disableCssTransitions(),this.formView.resetFormStatus(),this.formView.backButtonView.isVisible=e.isEnabled&&!!e.value,this._balloon.add({view:this.formView,position:this._getBalloonPositionData()}),this.selectedLinkableText=this._getSelectedLinkableText(),this.formView.displayedTextInputView.fieldView.value=this.selectedLinkableText||"",this.formView.urlInputView.fieldView.value=e.value||"",this._balloon.visibleView===this.formView&&this.formView.urlInputView.fieldView.select(),this.formView.enableCssTransitions()}_addPropertiesView(){this.propertiesView||this._createViews(),this._arePropertiesInPanel||(this.propertiesView.disableCssTransitions(),this._balloon.add({view:this.propertiesView,position:this._getBalloonPositionData()}),this.propertiesView.enableCssTransitions(),this.propertiesView.focus())}_showLinksProviderView(e){this.linkProviderItemsView&&this._removeLinksProviderView(),this.linkProviderItemsView=this._createLinkProviderItemsView(e),this._addLinkProviderItemsView(e)}_addLinkProviderItemsView(e){this.linkProviderItemsView.listChildren.clear(),this.linkProviderItemsView.listChildren.addMany(this._createLinkProviderListView(e)),this._balloon.add({view:this.linkProviderItemsView,position:this._getBalloonPositionData()}),this.linkProviderItemsView.focus()}_closeFormView(){const e=this.editor.commands.get("link");this.selectedLinkableText=void 0,void 0!==e.value?this._removeFormView():this._hideUI()}_removePropertiesView(){this._arePropertiesInPanel&&this._balloon.remove(this.propertiesView)}_removeLinksProviderView(){this._isLinksListInPanel&&this._balloon.remove(this.linkProviderItemsView)}_removeFormView(e=!0){this._isFormInPanel&&(this.formView.saveButtonView.focus(),this.formView.displayedTextInputView.fieldView.reset(),this.formView.urlInputView.fieldView.reset(),this._balloon.remove(this.formView),e&&this.editor.editing.view.focus(),this._hideFakeVisualSelection())}_showUI(e=!1){this.formView||this._createViews(),this._getSelectedLinkElement()?(this._isToolbarVisible?this._addFormView():this._addToolbarView(),e&&this._balloon.showStack("main")):(this._showFakeVisualSelection(),this._addToolbarView(),e&&this._balloon.showStack("main"),this._addFormView()),this._startUpdatingUI()}_hideUI(e=!0){const t=this.editor;this._isUIInPanel&&(this.stopListening(t.ui,"update"),this.stopListening(this._balloon,"change:visibleView"),e&&t.editing.view.focus(),this._removeLinksProviderView(),this._removePropertiesView(),this._removeFormView(e),this._isToolbarInPanel&&this._balloon.remove(this.toolbarView),this._hideFakeVisualSelection())}_startUpdatingUI(){const e=this.editor,t=e.editing.view.document;let o=this._getSelectedLinkElement(),i=s();const n=()=>{const e=this._getSelectedLinkElement(),t=s();o&&!e||!o&&t!==i?this._hideUI():this._isUIVisible&&this._balloon.updatePosition(this._getBalloonPositionData()),o=e,i=t};function s(){return t.selection.focus.getAncestors().reverse().find((e=>e.is("element")))}this.listenTo(e.ui,"update",n),this.listenTo(this._balloon,"change:visibleView",n)}get _arePropertiesInPanel(){return!!this.propertiesView&&this._balloon.hasView(this.propertiesView)}get _isLinksListInPanel(){return!!this.linkProviderItemsView&&this._balloon.hasView(this.linkProviderItemsView)}get _isFormInPanel(){return!!this.formView&&this._balloon.hasView(this.formView)}get _isToolbarInPanel(){return!!this.toolbarView&&this._balloon.hasView(this.toolbarView)}get _isPropertiesVisible(){return!!this.propertiesView&&this._balloon.visibleView===this.propertiesView}get _isFormVisible(){return!!this.formView&&this._balloon.visibleView==this.formView}get _isToolbarVisible(){return!!this.toolbarView&&this._balloon.visibleView===this.toolbarView}get _isUIInPanel(){return this._arePropertiesInPanel||this._isLinksListInPanel||this._isFormInPanel||this._isToolbarInPanel}get _isUIVisible(){return this._isPropertiesVisible||this._isLinksListInPanel||this._isFormVisible||this._isToolbarVisible}_getBalloonPositionData(){const e=this.editor.editing.view,t=e.document;if(this.editor.model.markers.has(Vy)){const t=this.editor.editing.mapper.markerNameToElements(Vy);if(t){const o=Array.from(t),i=e.createRange(e.createPositionBefore(o[0]),e.createPositionAfter(o[o.length-1]));return{target:e.domConverter.viewRangeToDom(i)}}}return{target:()=>{const o=this._getSelectedLinkElement();return o?e.domConverter.mapViewToDom(o):e.domConverter.viewRangeToDom(t.selection.getFirstRange())}}}_getSelectedLinkElement(){const e=this.editor.editing.view,t=e.document.selection,o=t.getSelectedElement();if(t.isCollapsed||o&&ip(o))return Fy(t.getFirstPosition());{const o=t.getFirstRange().getTrimmed(),i=Fy(o.start),n=Fy(o.end);return i&&i==n&&e.createRangeIn(i).getTrimmed().isEqual(o)?i:null}}_getSelectedLinkableText(){const e=this.editor.model,t=this.editor.editing,o=this._getSelectedLinkElement();if(!o)return wy(e.document.selection.getFirstRange());const i=t.view.createRangeOn(o);return wy(t.mapper.toModelRange(i))}_getLinkProviderLinkByHref(e){if(!e)return null;for(const t of this._linksProviders){const o=t.getItem?t.getItem(e):t.getListItems().find((t=>t.href===e));if(o)return{provider:t,item:o}}return null}_showFakeVisualSelection(){const e=this.editor.model;e.change((t=>{const o=e.document.selection.getFirstRange();if(e.markers.has(Vy))t.updateMarker(Vy,{range:o});else if(o.start.isAtEnd){const i=o.start.getLastMatchingPosition((({item:t})=>!e.schema.isContent(t)),{boundaries:o});t.addMarker(Vy,{usingOperation:!1,affectsData:!1,range:t.createRange(i,o.end)})}else t.addMarker(Vy,{usingOperation:!1,affectsData:!1,range:o})}))}_hideFakeVisualSelection(){const e=this.editor.model;e.markers.has(Vy)&&e.change((e=>{e.removeMarker(Vy)}))}}function Fy(e){return e.getAncestors().find((e=>{return(t=e).is("attributeElement")&&!!t.getCustomProperty("link");var t}))||null}const My=new RegExp("(^|\\s)(((?:(?:(?:https?|ftp):)?\\/\\/)(?:\\S+(?::\\S*)?@)?(?:(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}(?:\\.(?:[1-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))|(((?!www\\.)|(www\\.))(?![-_])(?:[-_a-z0-9\\u00a1-\\uffff]{1,63}\\.)+(?:[a-z\\u00a1-\\uffff]{2,63}))|localhost)(?::\\d{2,5})?(?:[/?#]\\S*)?)|((www.|(\\S+@))((?![-_])(?:[-_a-z0-9\\u00a1-\\uffff]{1,63}\\.))+(?:[a-z\\u00a1-\\uffff]{2,63})))$","i");class Ny extends fc{static get requires(){return[Tg,Ty]}static get pluginName(){return"AutoLink"}static get isOfficialPlugin(){return!0}init(){const e=this.editor.model.document.selection;e.on("change:range",(()=>{this.isEnabled=!e.anchor.parent.is("element","codeBlock")})),this._enableTypingHandling()}afterInit(){this._enableEnterHandling(),this._enableShiftEnterHandling(),this._enablePasteLinking()}_expandLinkRange(e,t){return t.textNode&&t.textNode.hasAttribute("linkHref")?Lg(t,"linkHref",t.textNode.getAttribute("linkHref"),e):null}_selectEntireLinks(e,t){const o=this.editor.model,i=o.document.selection,n=i.getFirstPosition(),s=i.getLastPosition();let r=t.getJoined(this._expandLinkRange(o,n)||t);r&&(r=r.getJoined(this._expandLinkRange(o,s)||t)),r&&(r.start.isBefore(n)||r.end.isAfter(s))&&e.setSelection(r)}_enablePasteLinking(){const e=this.editor,t=e.model,o=t.document.selection,i=e.plugins.get("ClipboardPipeline"),n=e.commands.get("link");i.on("inputTransformation",((e,i)=>{if(!this.isEnabled||!n.isEnabled||o.isCollapsed||"paste"!==i.method)return;if(o.rangeCount>1)return;const s=o.getFirstRange(),r=i.dataTransfer.getData("text/plain");if(!r)return;const a=r.match(My);a&&a[2]===r&&(t.change((e=>{this._selectEntireLinks(e,s),n.execute(r)})),e.stop())}),{priority:"high"})}_enableTypingHandling(){const e=this.editor,t=new Ig(e.model,(e=>{let t=e;if(!function(e){return e.length>4&&" "===e[e.length-1]&&" "!==e[e.length-2]}(t))return;t=t.slice(0,-1),"!.:,;?".includes(t[t.length-1])&&(t=t.slice(0,-1));const o=By(t);return o?{url:o,removedTrailingCharacters:e.length-t.length}:void 0}));t.on("matched:data",((t,o)=>{const{batch:i,range:n,url:s,removedTrailingCharacters:r}=o;if(!i.isTyping)return;const a=n.end.getShiftedBy(-r),l=a.getShiftedBy(-s.length),c=e.model.createRange(l,a);this._applyAutoLink(s,c)})),t.bind("isEnabled").to(this)}_enableEnterHandling(){const e=this.editor,t=e.model,o=e.commands.get("enter");o&&o.on("execute",(()=>{const e=t.document.selection.getFirstPosition();let o;o=e.parent.previousSibling?.is("element")?t.createRangeIn(e.parent.previousSibling):t.createRange(t.createPositionAt(e.parent,0),e),this._checkAndApplyAutoLinkOnRange(o)}))}_enableShiftEnterHandling(){const e=this.editor,t=e.model,o=e.commands.get("shiftEnter");o&&o.on("execute",(()=>{const e=t.document.selection.getFirstPosition(),o=t.createRange(t.createPositionAt(e.parent,0),e.getShiftedBy(-1));this._checkAndApplyAutoLinkOnRange(o)}))}_checkAndApplyAutoLinkOnRange(e){const t=this.editor.model,{text:o,range:i}=Sg(e,t),n=By(o);if(n){const e=t.createRange(i.end.getShiftedBy(-n.length),i.end);this._applyAutoLink(n,e)}}_applyAutoLink(e,t){const o=this.editor.model,i=fy(e,this.editor.config.get("link.defaultProtocol"));this.isEnabled&&function(e,t){return t.schema.checkAttributeInSelection(t.createSelection(e),"linkHref")}(t,o)&&by(i)&&!function(e){const t=e.start.nodeAfter;return!!t&&t.hasAttribute("linkHref")}(t)&&this._persistAutoLink(i,t)}_persistAutoLink(e,t){const o=this.editor.model,i=this.editor.plugins.get("Delete");o.enqueueChange((n=>{n.setAttribute("linkHref",e,t),o.enqueueChange((()=>{i.requestUndoOnBackspace()}))}))}}function By(e){const t=My.exec(e);return t?t[2]:null}function Ly(e){return e.map((e=>function(e){"number"==typeof e&&(e=String(e));if("object"==typeof e&&(t=e,t.title&&t.model&&t.view))return jy(e);var t;const o=function(e){return"string"==typeof e?zy[e]:zy[e.model]}(e);if(o)return jy(o);if("default"===e)return{model:void 0,title:"Default"};if(function(e){let t;if("object"==typeof e){if(!e.model)throw new fe("font-size-invalid-definition",null,e);t=parseFloat(e.model)}else t=parseFloat(e);return isNaN(t)}(e))return;return function(e){"string"==typeof e&&(e={title:e,model:`${parseFloat(e)}px`});return e.view={name:"span",styles:{"font-size":e.model}},jy(e)}(e)}(e))).filter((e=>void 0!==e))}const zy={get tiny(){return{title:"Tiny",model:"tiny",view:{name:"span",classes:"text-tiny",priority:7}}},get small(){return{title:"Small",model:"small",view:{name:"span",classes:"text-small",priority:7}}},get big(){return{title:"Big",model:"big",view:{name:"span",classes:"text-big",priority:7}}},get huge(){return{title:"Huge",model:"huge",view:{name:"span",classes:"text-huge",priority:7}}}};function jy(e){return e.view&&"string"!=typeof e.view&&!e.view.priority&&(e.view.priority=7),e}class qy{_startElement;_referenceIndent;_isForward;_includeSelf;_sameAttributes;_sameIndent;_lowerIndent;_higherIndent;constructor(e,t){this._startElement=e,this._referenceIndent=e.getAttribute("listIndent"),this._isForward="forward"==t.direction,this._includeSelf=!!t.includeSelf,this._sameAttributes=Qt(t.sameAttributes||[]),this._sameIndent=!!t.sameIndent,this._lowerIndent=!!t.lowerIndent,this._higherIndent=!!t.higherIndent}static first(e,t){return to(new this(e,t)[Symbol.iterator]())}*[Symbol.iterator](){const e=[];for(const{node:t}of new $y(this._getStartNode(),this._isForward?"forward":"backward")){const o=t.getAttribute("listIndent");if(othis._referenceIndent){if(!this._higherIndent)continue;if(!this._isForward){e.push(t);continue}}else{if(!this._sameIndent){if(this._higherIndent){e.length&&(yield*e,e.length=0);break}continue}if(this._sameAttributes.some((e=>t.getAttribute(e)!==this._startElement.getAttribute(e))))break}e.length&&(yield*e,e.length=0),yield t}}_getStartNode(){return this._includeSelf?this._startElement:this._isForward?this._startElement.nextSibling:this._startElement.previousSibling}}class $y{_node;_isForward;_previousNodesByIndent=[];_previous=null;_previousNodeIndent=null;constructor(e,t="forward"){this._node=e,this._isForward="forward"===t}[Symbol.iterator](){return this}next(){if(!Uy(this._node))return{done:!0,value:void 0};const e=this._node.getAttribute("listIndent");let t=null;if(this._previous){const o=this._previousNodeIndent;e>o?this._previousNodesByIndent[o]=this._previous:ee.getAttribute("listItemId")!=t))}function s_(e){return Array.from(e).filter((e=>"$graveyard"!==e.root.rootName)).sort(((e,t)=>e.index-t.index))}function r_(e){const t=e.document.selection.getSelectedElement();return t&&e.schema.isObject(t)&&e.schema.isBlock(t)?t:null}function a_(e,t){return t.checkChild(e.parent,"listItem")&&t.checkChild(e,"$text")&&!t.isObject(e)}function l_(e){return"numbered"==e||"customNumbered"==e}function c_(e,t,o){return Gy(t,{direction:"forward"}).pop().index>e.index?t_(e,t,o):[]}class d_ extends wc{_direction;constructor(e,t){super(e),this._direction=t}refresh(){this.isEnabled=this._checkEnabled()}execute(){const e=this.editor,t=e.model,o=u_(t.document.selection),i=e.plugins.get("ListEditing").getListAttributeNames();t.change((e=>{const t=[];n_(o)&&!Zy(o[0])?("forward"==this._direction&&t.push(...o_(o,e,{attributeNames:i})),t.push(...e_(o[0],e))):"forward"==this._direction?t.push(...o_(o,e,{expand:!0,attributeNames:i})):t.push(...function(e,t,{attributeNames:o}){const i=Yy(e=Qt(e)),n=new Set,s=Math.min(...i.map((e=>e.getAttribute("listIndent")))),r=new Map;for(const e of i)r.set(e,qy.first(e,{lowerIndent:!0}));for(const e of i){if(n.has(e))continue;n.add(e);const i=e.getAttribute("listIndent")-1;if(i<0)i_(e,t,o);else{if(e.getAttribute("listIndent")==s){const o=c_(e,r.get(e),t);for(const e of o)n.add(e);if(o.length)continue}t.setAttribute("listIndent",i,e)}}return s_(n)}(o,e,{attributeNames:i}));for(const o of t){if(!o.hasAttribute("listType"))continue;const t=qy.first(o,{sameIndent:!0});t&&e.setAttribute("listType",t.getAttribute("listType"),o)}this._fireAfterExecute(t)}))}_fireAfterExecute(e){this.fire("afterExecute",s_(new Set(e)))}_checkEnabled(){let e=u_(this.editor.model.document.selection),t=e[0];if(!t)return!1;if("backward"==this._direction)return!0;if(n_(e)&&!Zy(e[0]))return!0;e=Yy(e),t=e[0];const o=qy.first(t,{sameIndent:!0});return!!o&&o.getAttribute("listType")==t.getAttribute("listType")}}function u_(e){const t=Array.from(e.getSelectedBlocks()),o=t.findIndex((e=>!Uy(e)));return-1!=o&&(t.length=o),t}class h_ extends wc{type;_listWalkerOptions;constructor(e,t,o={}){super(e),this.type=t,this._listWalkerOptions=o.multiLevel?{higherIndent:!0,lowerIndent:!0,sameAttributes:[]}:void 0}refresh(){this.value=this._getValue(),this.isEnabled=this._checkEnabled()}execute(e={}){const t=this.editor.model,o=t.document,i=r_(t),n=Array.from(o.selection.getSelectedBlocks()).filter((e=>t.schema.checkAttribute(e,"listType")||a_(e,t.schema))),s=void 0!==e.forceValue?!e.forceValue:this.value;t.change((r=>{if(s){const e=n[n.length-1],t=this.editor.plugins.get("ListEditing").getListAttributeNames(),o=Gy(e,{direction:"forward"}),i=[];o.length>1&&i.push(...e_(o[1],r)),i.push(...i_(n,r,t)),i.push(...function(e,t){const o=[];let i=Number.POSITIVE_INFINITY;for(const{node:n}of new $y(e.nextSibling)){const e=n.getAttribute("listIndent");if(0==e)break;e{const{firstElement:r,lastElement:a}=this._getMergeSubjectElements(i,e),l=r.getAttribute("listIndent")||0,c=a.getAttribute("listIndent"),d=a.getAttribute("listItemId");if(l!=c){const e=(u=a,Array.from(new qy(u,{direction:"forward",higherIndent:!0})));n.push(...o_([a,...e],t,{indentBy:l-c,expand:l{const t=e_(this._getStartBlock(),e);this._fireAfterExecute(t)}))}_fireAfterExecute(e){this.fire("afterExecute",s_(new Set(e)))}_checkEnabled(){const e=this.editor.model.document.selection,t=this._getStartBlock();return e.isCollapsed&&Uy(t)&&!Zy(t)}_getStartBlock(){const e=this.editor.model.document.selection.getFirstPosition().parent;return"before"==this._direction?e:e.nextSibling}}class p_ extends fc{static get pluginName(){return"ListItemBoldIntegration"}static get isOfficialPlugin(){return!0}static get requires(){return[z_]}init(){const e=this.editor,t=e.plugins.get("ListFormatting"),o=e.plugins.get(z_);e.plugins.has("BoldEditing")&&this.editor.config.get("list.enableListItemMarkerFormatting")&&(t.registerFormatAttribute("bold","listItemBold"),o.registerDowncastStrategy({scope:"item",attributeName:"listItemBold",setAttributeOnDowncast(e,t,o,i){t&&(e.addClass("ck-list-marker-bold",o),!Y.isSafari||i&&i.dataPipeline||e.setStyle("--ck-content-list-marker-dummy-bold","0",o))}}))}afterInit(){const e=this.editor,t=e.model;e.plugins.has("BoldEditing")&&this.editor.config.get("list.enableListItemMarkerFormatting")&&(t.schema.extend("$listItem",{allowAttributes:"listItemBold"}),t.schema.setAttributeProperties("listItemBold",{isFormatting:!0}),t.schema.addAttributeCheck((e=>{if(!e.last.getAttribute("listItemId"))return!1}),"listItemBold"),e.conversion.for("upcast").attributeToAttribute({model:"listItemBold",view:{name:"li",classes:"ck-list-marker-bold"}}))}}class f_ extends fc{static get pluginName(){return"ListItemItalicIntegration"}static get isOfficialPlugin(){return!0}static get requires(){return[z_]}init(){const e=this.editor,t=e.plugins.get("ListFormatting"),o=e.plugins.get(z_);e.plugins.has("ItalicEditing")&&this.editor.config.get("list.enableListItemMarkerFormatting")&&(t.registerFormatAttribute("italic","listItemItalic"),o.registerDowncastStrategy({scope:"item",attributeName:"listItemItalic",setAttributeOnDowncast(e,t,o,i){t&&(e.addClass("ck-list-marker-italic",o),!Y.isSafari||i&&i.dataPipeline||e.setStyle("--ck-content-list-marker-dummy-italic","0",o))}}))}afterInit(){const e=this.editor,t=e.model;e.plugins.has("ItalicEditing")&&this.editor.config.get("list.enableListItemMarkerFormatting")&&(t.schema.extend("$listItem",{allowAttributes:"listItemItalic"}),t.schema.setAttributeProperties("listItemItalic",{isFormatting:!0}),t.schema.addAttributeCheck((e=>{if(!e.last.getAttribute("listItemId"))return!1}),"listItemItalic"),e.conversion.for("upcast").attributeToAttribute({model:"listItemItalic",view:{name:"li",classes:"ck-list-marker-italic"}}))}}class b_ extends fc{static get pluginName(){return"ListItemFontSizeIntegration"}static get isOfficialPlugin(){return!0}static get requires(){return[z_]}init(){const e=this.editor,t=e.plugins.get("ListFormatting"),o=e.plugins.get(z_);if(!e.plugins.has("FontSizeEditing")||!this.editor.config.get("list.enableListItemMarkerFormatting"))return;const i=Ly(e.config.get("fontSize.options"));t.registerFormatAttribute("fontSize","listItemFontSize"),o.registerDowncastStrategy({scope:"item",attributeName:"listItemFontSize",setAttributeOnDowncast(e,t,o,n){if(t){const s=i.find((e=>e.model==t));s&&s.view&&"string"!=typeof s.view?s.view.styles?(e.addClass("ck-list-marker-font-size",o),e.setStyle("--ck-content-list-marker-font-size",s.view.styles["font-size"],o)):s.view.classes&&(e.addClass(`ck-list-marker-font-size-${t}`,o),!Y.isSafari||n&&n.dataPipeline||e.setStyle("--ck-content-list-marker-dummy-font-size","0",o)):(e.addClass("ck-list-marker-font-size",o),e.setStyle("--ck-content-list-marker-font-size",t,o))}}})}afterInit(){const e=this.editor,t=e.model;if(!e.plugins.has("FontSizeEditing")||!this.editor.config.get("list.enableListItemMarkerFormatting"))return;t.schema.extend("$listItem",{allowAttributes:"listItemFontSize"}),t.schema.setAttributeProperties("listItemFontSize",{isFormatting:!0}),t.schema.addAttributeCheck((e=>{if(!e.last.getAttribute("listItemId"))return!1}),"listItemFontSize"),e.conversion.for("upcast").elementToAttribute({model:{key:"listItemFontSize",value:e=>e.getStyle("--ck-content-list-marker-font-size")},view:{name:"li",classes:"ck-list-marker-font-size",styles:{"--ck-content-list-marker-font-size":/.*/}}});const o=Ly(e.config.get("fontSize.options"));for(const t of o)t.model&&t.view&&e.conversion.for("upcast").elementToAttribute({model:{key:"listItemFontSize",value:t.model},view:{name:"li",classes:`ck-list-marker-font-size-${t.model}`}})}}class w_ extends fc{static get pluginName(){return"ListItemFontColorIntegration"}static get isOfficialPlugin(){return!0}static get requires(){return[z_]}init(){const e=this.editor,t=e.plugins.get("ListFormatting"),o=e.plugins.get(z_);e.plugins.has("FontColorEditing")&&this.editor.config.get("list.enableListItemMarkerFormatting")&&(t.registerFormatAttribute("fontColor","listItemFontColor"),o.registerDowncastStrategy({scope:"item",attributeName:"listItemFontColor",setAttributeOnDowncast(e,t,o){t&&(e.addClass("ck-list-marker-color",o),e.setStyle("--ck-content-list-marker-color",t,o))}}))}afterInit(){const e=this.editor,t=e.model;e.plugins.has("FontColorEditing")&&this.editor.config.get("list.enableListItemMarkerFormatting")&&(t.schema.extend("$listItem",{allowAttributes:"listItemFontColor"}),t.schema.setAttributeProperties("listItemFontColor",{isFormatting:!0}),t.schema.addAttributeCheck((e=>{if(!e.last.getAttribute("listItemId"))return!1}),"listItemFontColor"),e.conversion.for("upcast").attributeToAttribute({model:{key:"listItemFontColor",value:e=>e.getStyle("--ck-content-list-marker-color")},view:{name:"li",classes:"ck-list-marker-color",styles:{"--ck-content-list-marker-color":/.*/}}}))}}class y_ extends fc{static get pluginName(){return"ListItemFontFamilyIntegration"}static get isOfficialPlugin(){return!0}static get requires(){return[z_]}init(){const e=this.editor,t=e.plugins.get("ListFormatting"),o=e.plugins.get(z_);e.plugins.has("FontFamilyEditing")&&this.editor.config.get("list.enableListItemMarkerFormatting")&&(t.registerFormatAttribute("fontFamily","listItemFontFamily"),o.registerDowncastStrategy({scope:"item",attributeName:"listItemFontFamily",setAttributeOnDowncast(e,t,o){t&&(e.addClass("ck-list-marker-font-family",o),e.setStyle("--ck-content-list-marker-font-family",t,o))}}))}afterInit(){const e=this.editor,t=e.model;e.plugins.has("FontFamilyEditing")&&this.editor.config.get("list.enableListItemMarkerFormatting")&&(t.schema.extend("$listItem",{allowAttributes:"listItemFontFamily"}),t.schema.setAttributeProperties("listItemFontFamily",{isFormatting:!0}),t.schema.addAttributeCheck((e=>{if(!e.last.getAttribute("listItemId"))return!1}),"listItemFontFamily"),e.conversion.for("upcast").attributeToAttribute({model:{key:"listItemFontFamily",value:e=>e.getStyle("--ck-content-list-marker-font-family")},view:{name:"li",classes:"ck-list-marker-font-family",styles:{"--ck-content-list-marker-font-family":/.*/}}}))}}class __ extends fc{_loadedFormatting={};static get pluginName(){return"ListFormatting"}static get isOfficialPlugin(){return!0}static get requires(){return[p_,f_,b_,w_,y_]}constructor(e){super(e),e.config.define("list.enableListItemMarkerFormatting",!0)}afterInit(){this.editor.config.get("list.enableListItemMarkerFormatting")&&this._registerPostfixerForListItemFormatting()}_registerPostfixerForListItemFormatting(){const e=this.editor.model;e.document.registerPostFixer((t=>{const o=e.document.differ.getChanges(),i=new Set;let n=!1;for(const e of o)if("attribute"===e.type)("listItemId"==e.attributeKey||"listType"==e.attributeKey||this._isInlineOrSelectionFormatting(e.attributeKey)||Object.values(this._loadedFormatting).includes(e.attributeKey))&&(Uy(e.range.start.nodeAfter)?i.add(e.range.start.nodeAfter):Uy(e.range.start.parent)&&i.add(e.range.start.parent));else if(Uy(e.position.nodeAfter)&&i.add(e.position.nodeAfter),Uy(e.position.nodeBefore)&&i.add(e.position.nodeBefore),Uy(e.position.parent)&&i.add(e.position.parent),"insert"==e.type&&"$text"!=e.name){const o=t.createRangeIn(e.position.nodeAfter);for(const e of o.getItems())Uy(e)&&i.add(e)}for(const o of i){const i=k_(e,o,Object.keys(this._loadedFormatting));for(const[e,s]of Object.entries(i)){const i=this._loadedFormatting[e];(s&&C_(t,o,i,s)||!s&&A_(t,o,i))&&(n=!0)}}return n}))}registerFormatAttribute(e,t){this._loadedFormatting[e]=t}_isInlineOrSelectionFormatting(e){return e.replace(/^selection:/,"")in this._loadedFormatting}}function k_(e,t,o){if(Zy(t))return v_(e,t,o);return v_(e,Ky(t)[0],o)}function v_(e,t,o){if(!function(e){return["numbered","bulleted","customNumbered","customBulleted"].includes(e.getAttribute("listType"))}(t)||e.schema.isLimit(t))return Object.fromEntries(o.map((e=>[e])));if(t.isEmpty)return Object.fromEntries(o.map((e=>[e,t.getAttribute(`selection:${e}`)])));const i=new Set(o),n={},s=e.createRangeIn(t).getWalker({ignoreElementEnd:!0});for(const{item:t}of s){for(const o of i)if(e.schema.checkAttribute(t,o)){const e=t.getAttribute(o);void 0===e?(i.delete(o),n[o]=void 0):void 0===n[o]?n[o]=e:n[o]!==e&&(i.delete(o),n[o]=void 0)}else o in n||(n[o]=void 0);if(!i.size)break;e.schema.isLimit(t)&&s.jumpTo(e.createPositionAfter(t))}return n}function C_(e,t,o,i){const n=Ky(t);let s=!1;for(const t of n)t.hasAttribute(o)&&t.getAttribute(o)===i||(e.setAttribute(o,i,t),s=!0);return s}function A_(e,t,o){const i=Ky(t);let n=!1;for(const t of i)t.hasAttribute(o)&&(e.removeAttribute(o,t),n=!0);return n}class x_ extends fc{static get pluginName(){return"ListUtils"}static get isOfficialPlugin(){return!0}expandListBlocksToCompleteList(e){return Xy(e)}isFirstBlockOfListItem(e){return Zy(e)}isListItemBlock(e){return Uy(e)}expandListBlocksToCompleteItems(e,t={}){return Yy(e,t)}isNumberedListType(e){return l_(e)}isFirstListItemInList(e){return function(e){return!qy.first(e,{sameIndent:!0,sameAttributes:"listType"})}(e)}}function E_(e){return e.is("element","ol")||e.is("element","ul")}function T_(e){return e.is("element","li")}function P_(e,t,o,i=R_(o,t)){return e.createAttributeElement(I_(o),null,{priority:2*t/100-100,id:i})}function S_(e,t,o){return e.createAttributeElement("li",null,{priority:(2*t+1)/100-100,id:o})}function I_(e){return"numbered"==e||"customNumbered"==e?"ol":"ul"}function R_(e,t){return`list-${e}-${t}`}function O_(e,t,o){const i=e.nodeBefore;if(Uy(i)){let e=i;for(const{node:n}of new $y(e,"backward")){if(e=n,o.has(e))return;if(o.add(e),t.has(i))return}t.add(e)}else{const o=e.nodeAfter;Uy(o)&&t.add(o)}}function V_(){return(e,t,o)=>{const{writer:i,schema:n}=o;if(!t.modelRange)return;const s=Array.from(t.modelRange.getItems({shallow:!0})).filter((e=>n.checkAttribute(e,"listItemId")));if(!s.length)return;const r=t.viewItem.getAttribute("data-list-item-id")||Wy.next();o.consumable.consume(t.viewItem,{attributes:"data-list-item-id"});const a=function(e){let t=0,o=e.parent;for(;o;){if(T_(o))t++;else{const e=o.previousSibling;e&&T_(e)&&t++}o=o.parent}return t}(t.viewItem);let l=t.viewItem.parent&&t.viewItem.parent.is("element","ol")?"numbered":"bulleted";const c=s[0].getAttribute("listType");c&&(l=c);const d={listItemId:r,listIndent:a,listType:l};for(const e of s)e.hasAttribute("listItemId")||i.setAttributes(d,e);s.length>1&&s[1].getAttribute("listItemId")!=d.listItemId&&o.keepEmptyElement(s[0])}}function D_(e,t,o,i){return()=>{const i=e.document.differ.getChanges(),r=[],a=new Set,l=new Set,c=new Set;for(const e of i)if("insert"==e.type&&"$text"!=e.name)O_(e.position,a,c),e.attributes.has("listItemId")?l.add(e.position.nodeAfter):O_(e.position.getShiftedBy(e.length),a,c);else if("remove"==e.type&&e.attributes.has("listItemId"))O_(e.position,a,c);else if("attribute"==e.type){const t=e.range.start.nodeAfter;o.includes(e.attributeKey)?(O_(e.range.start,a,c),null===e.attributeNewValue?(O_(e.range.start.getShiftedBy(1),a,c),s(t)&&r.push(t)):l.add(t)):Uy(t)&&s(t)&&r.push(t)}for(const e of a.values())r.push(...n(e,l));for(const e of new Set(r))t.reconvertItem(e)};function n(e,t){const i=[],n=new Set,a=[];for(const{node:l,previous:c}of new $y(e)){if(n.has(l))continue;const e=l.getAttribute("listIndent");c&&eo.includes(e)))),modelElement:l};const d=Gy(l,{direction:"forward"});for(const e of d)n.add(e),(s(e,d)||r(e,a,t))&&i.push(e)}return i}function s(e,n){const s=t.mapper.toViewElement(e);if(!s)return!1;if(function(e){e=e.parent;for(;e.is("attributeElement")&&["ol","ul","li"].includes(e.name);)e=e.parent;if(e.getCustomProperty("$structureSlotParent")&&!t.mapper.toModelElement(e))return!0;return!1}(s))return!0;if(i.fire("checkElement",{modelElement:e,viewElement:s}))return!0;if(!e.is("element","paragraph")&&!e.is("element","listItem"))return!1;const r=B_(e,o,n);return!(!r||!s.is("element","p"))||!(r||!s.is("element","span"))}function r(e,o,n){if(n.has(e))return!1;const s=t.mapper.toViewElement(e);let r=o.length-1;for(let e=s.parent;!e.is("editableElement");e=e.parent){const t=T_(e),n=E_(e);if(!n&&!t)continue;const s="checkAttributes:"+(t?"item":"list");if(i.fire(s,{viewElement:e,modelAttributes:o[r].modelAttributes,modelReferenceElement:o[r].modelElement}))break;if(n&&(r--,r<0))return!1}return!0}}function F_(e,t,o,{dataPipeline:i}={}){const n=function(e,t){const o=t.filter((e=>!1===e.consume)).map((e=>e.attributeName));return(t,i)=>{const n=[];for(const i of e)t.hasAttribute(i)&&!o.includes(i)&&n.push(`attribute:${i}`);return!!n.every((e=>!1!==i.test(t,e)))&&(n.forEach((e=>i.consume(t,e))),!0)}}(e,t);return(s,r,a)=>{const{writer:l,mapper:c,consumable:d}=a,u=r.item;if(!e.includes(r.attributeKey))return;if(!n(u,d))return;const h={...a.options,dataPipeline:i},m=function(e,t,o,i){const n=o.createRangeOn(e),s=t.toViewRange(n).getTrimmed(),r=s.getWalker();for(const{item:e}of r)if(e.is("element")&&e.getCustomProperty("listItemMarker"))r.jumpTo(i.createPositionAfter(e));else if(e.is("element")&&!e.getCustomProperty("listItemWrapper"))return e}(u,c,o,l);N_(m,l,c),function(e,t){let o=e.parent;for(;o.is("attributeElement")&&["ul","ol","li"].includes(o.name);){const i=o.parent;t.unwrap(t.createRangeOn(e),o),o=i}}(m,l);const g=function(e,t,o,i,{dataPipeline:n}){let s=i.createRangeOn(t);if(!Zy(e))return s;for(const r of o){if("itemMarker"!=r.scope)continue;const o=r.createElement(i,e,{dataPipeline:n});if(!o)continue;if(i.setCustomProperty("listItemMarker",!0,o),r.canInjectMarkerIntoElement&&r.canInjectMarkerIntoElement(e)?i.insert(i.createPositionAt(t,0),o):(i.insert(s.start,o),s=i.createRange(i.createPositionBefore(o),i.createPositionAfter(t))),!r.createWrapperElement||!r.canWrapElement)continue;const a=r.createWrapperElement(i,e,{dataPipeline:n});i.setCustomProperty("listItemWrapper",!0,a),r.canWrapElement(e)?s=i.wrap(s,a):(s=i.wrap(i.createRangeOn(o),a),s=i.createRange(s.start,i.createPositionAfter(t)))}return s}(u,m,t,l,h);!function(e,t,o,i,n){if(!e.hasAttribute("listIndent"))return;const s=e.getAttribute("listIndent");let r=e;for(let e=s;e>=0;e--){const s=S_(i,e,r.getAttribute("listItemId")),a=P_(i,e,r.getAttribute("listType"));for(const e of o)"list"!=e.scope&&"item"!=e.scope||!r.hasAttribute(e.attributeName)||e.setAttributeOnDowncast(i,r.getAttribute(e.attributeName),"list"==e.scope?a:s,n,r);if(t=i.wrap(t,s),t=i.wrap(t,a),0==e)break;if(r=qy.first(r,{lowerIndent:!0}),!r)break}}(u,g,t,l,h)}}function M_(e,{dataPipeline:t}={}){return(o,{writer:i})=>{if(!B_(o,e))return null;if(!t)return i.createContainerElement("span",{class:"ck-list-bogus-paragraph"});const n=i.createContainerElement("p");return i.setCustomProperty("dataPipeline:transparentRendering",!0,n),n}}function N_(e,t,o){for(;e.parent.is("attributeElement")&&e.parent.getCustomProperty("listItemWrapper");)t.unwrap(t.createRangeOn(e),e.parent);const i=[];n(t.createPositionBefore(e).getWalker({direction:"backward"})),n(t.createRangeIn(e).getWalker());for(const e of i)t.remove(e);function n(e){for(const{item:t}of e){if(t.is("element")&&o.toModelElement(t))break;t.is("element")&&t.getCustomProperty("listItemMarker")&&i.push(t)}}}function B_(e,t,o=Ky(e)){if(!Uy(e))return!1;for(const o of e.getAttributeKeys())if(!o.startsWith("selection:")&&"htmlEmptyBlock"!=o&&!t.includes(o))return!1;return o.length<2}const L_=["listType","listIndent","listItemId"];class z_ extends fc{_downcastStrategies=[];static get pluginName(){return"ListEditing"}static get isOfficialPlugin(){return!0}static get requires(){return[Kg,Tg,x_,bf,__]}constructor(e){super(e),e.config.define("list.multiBlock",!0)}init(){const e=this.editor,t=e.model,o=e.config.get("list.multiBlock");if(e.plugins.has("LegacyListEditing"))throw new fe("list-feature-conflict",this,{conflictPlugin:"LegacyListEditing"});t.schema.register("$listItem",{allowAttributes:L_}),o?(t.schema.extend("$container",{allowAttributesOf:"$listItem"}),t.schema.extend("$block",{allowAttributesOf:"$listItem"}),t.schema.extend("$blockObject",{allowAttributesOf:"$listItem"})):t.schema.register("listItem",{inheritAllFrom:"$block",allowAttributesOf:"$listItem"});for(const e of L_)t.schema.setAttributeProperties(e,{copyOnReplace:!0});e.commands.add("numberedList",new h_(e,"numbered")),e.commands.add("bulletedList",new h_(e,"bulleted")),e.commands.add("customNumberedList",new h_(e,"customNumbered",{multiLevel:!0})),e.commands.add("customBulletedList",new h_(e,"customBulleted",{multiLevel:!0})),e.commands.add("indentList",new d_(e,"forward")),e.commands.add("outdentList",new d_(e,"backward")),e.commands.add("splitListItemBefore",new g_(e,"before")),e.commands.add("splitListItemAfter",new g_(e,"after")),o&&(e.commands.add("mergeListItemBackward",new m_(e,"backward")),e.commands.add("mergeListItemForward",new m_(e,"forward"))),this._setupDeleteIntegration(),this._setupEnterIntegration(),this._setupTabIntegration(),this._setupClipboardIntegration(),this._setupAccessibilityIntegration(),this._setupListItemIdConversionStrategy()}afterInit(){const e=this.editor.commands,t=e.get("indent"),o=e.get("outdent");t&&t.registerChildCommand(e.get("indentList"),{priority:"high"}),o&&o.registerChildCommand(e.get("outdentList"),{priority:"lowest"}),this._setupModelPostFixing(),this._setupConversion()}registerDowncastStrategy(e){this._downcastStrategies.push(e)}getListAttributeNames(){return[...L_,...this._downcastStrategies.map((e=>e.attributeName))]}_setupDeleteIntegration(){const e=this.editor,t=e.commands.get("mergeListItemBackward"),o=e.commands.get("mergeListItemForward");this.listenTo(e.editing.view.document,"delete",((i,n)=>{const s=e.model.document.selection;r_(e.model)||e.model.change((()=>{const r=s.getFirstPosition();if(s.isCollapsed&&"backward"==n.direction){if(!r.isAtStart)return;const o=r.parent;if(!Uy(o))return;if(qy.first(o,{sameAttributes:"listType",sameIndent:!0})||0!==o.getAttribute("listIndent")){if(!t||!t.isEnabled)return;t.execute({shouldMergeOnBlocksContentLevel:j_(e.model,"backward")})}else Qy(o)||e.execute("splitListItemAfter"),e.execute("outdentList");n.preventDefault(),i.stop()}else{if(s.isCollapsed&&!s.getLastPosition().isAtEnd)return;if(!o||!o.isEnabled)return;o.execute({shouldMergeOnBlocksContentLevel:j_(e.model,"forward")}),n.preventDefault(),i.stop()}}))}),{context:"li"})}_setupEnterIntegration(){const e=this.editor,t=e.model,o=e.commands,i=o.get("enter");this.listenTo(e.editing.view.document,"enter",((o,i)=>{const n=t.document,s=n.selection.getFirstPosition().parent;if(n.selection.isCollapsed&&Uy(s)&&s.isEmpty&&!i.isSoft){const t=Zy(s),n=Qy(s);t&&n?(e.execute("outdentList"),i.preventDefault(),o.stop()):t&&!n?(e.execute("splitListItemAfter"),i.preventDefault(),o.stop()):n&&(e.execute("splitListItemBefore"),i.preventDefault(),o.stop())}}),{context:"li"}),this.listenTo(i,"afterExecute",(()=>{const t=o.get("splitListItemBefore");if(t.refresh(),!t.isEnabled)return;2===Ky(e.model.document.selection.getLastPosition().parent).length&&t.execute()}))}_setupTabIntegration(){const e=this.editor;this.listenTo(e.editing.view.document,"tab",((t,o)=>{const i=o.shiftKey?"outdentList":"indentList";this.editor.commands.get(i).isEnabled&&(e.execute(i),o.stopPropagation(),o.preventDefault(),t.stop())}),{context:"li"})}_setupConversion(){const e=this.editor,t=e.model,o=this.getListAttributeNames(),i=e.config.get("list.multiBlock"),n=i?"paragraph":"listItem";e.conversion.for("upcast").elementToElement({view:"li",model:(e,{writer:t})=>t.createElement(n,{listType:""})}).elementToElement({view:"p",model:(e,{writer:t})=>e.parent&&e.parent.is("element","li")?t.createElement(n,{listType:""}):null,converterPriority:"high"}).add((e=>{e.on("element:li",V_())})),i||e.conversion.for("downcast").elementToElement({model:"listItem",view:"p"}),e.conversion.for("editingDowncast").elementToElement({model:n,view:M_(o),converterPriority:"high"}).add((e=>{var i;e.on("attribute",F_(o,this._downcastStrategies,t)),e.on("remove",(i=t.schema,(e,t,o)=>{const{writer:n,mapper:s}=o,r=e.name.split(":")[1];if(!i.checkAttribute(r,"listItemId"))return;const a=s.toViewPosition(t.position),l=t.position.getShiftedBy(t.length),c=s.toViewPosition(l,{isPhantom:!0}),d=n.createRange(a,c).getTrimmed().end.nodeBefore;d&&N_(d,n,s)}))})),e.conversion.for("dataDowncast").elementToElement({model:n,view:M_(o,{dataPipeline:!0}),converterPriority:"high"}).add((e=>{e.on("attribute",F_(o,this._downcastStrategies,t,{dataPipeline:!0}))}));const s=(r=this._downcastStrategies,a=e.editing.view,(e,t)=>{if(t.modelPosition.offset>0)return;const o=t.modelPosition.parent;if(!Uy(o))return;if(!r.some((e=>"itemMarker"==e.scope&&e.canInjectMarkerIntoElement&&e.canInjectMarkerIntoElement(o))))return;const i=t.mapper.toViewElement(o),n=a.createRangeIn(i),s=n.getWalker();let l=n.start;for(const{item:e}of s){if(e.is("element")&&t.mapper.toModelElement(e)||e.is("$textProxy"))break;e.is("element")&&e.getCustomProperty("listItemMarker")&&(l=a.createPositionAfter(e),s.skip((({previousPosition:e})=>!e.isEqual(l))))}t.viewPosition=l});var r,a;e.editing.mapper.on("modelToViewPosition",s),e.data.mapper.on("modelToViewPosition",s),this.listenTo(t.document,"change:data",D_(t,e.editing,o,this),{priority:"high"}),this.on("checkAttributes:item",((e,{viewElement:t,modelAttributes:o})=>{t.id!=o.listItemId&&(e.return=!0,e.stop())})),this.on("checkAttributes:list",((e,{viewElement:t,modelAttributes:o})=>{t.name==I_(o.listType)&&t.id==R_(o.listType,o.listIndent)||(e.return=!0,e.stop())}))}_setupModelPostFixing(){const e=this.editor.model,t=this.getListAttributeNames();e.document.registerPostFixer((o=>function(e,t,o,i){const n=e.document.differ.getChanges(),s=new Set,r=new Set,a=i.editor.config.get("list.multiBlock");let l=!1;for(const i of n){if("insert"==i.type&&"$text"!=i.name){const n=i.position.nodeAfter;if(!e.schema.checkAttribute(n,"listItemId"))for(const e of Array.from(n.getAttributeKeys()))o.includes(e)&&(t.removeAttribute(e,n),l=!0);O_(i.position,r,s),i.attributes.has("listItemId")||O_(i.position.getShiftedBy(i.length),r,s);for(const{item:t,previousPosition:o}of e.createRangeIn(n))Uy(t)&&O_(o,r,s)}else"remove"==i.type?O_(i.position,r,s):"attribute"==i.type&&o.includes(i.attributeKey)&&(O_(i.range.start,r,s),null===i.attributeNewValue&&O_(i.range.start.getShiftedBy(1),r,s));if(!a&&"attribute"==i.type&&L_.includes(i.attributeKey)){const e=i.range.start.nodeAfter;null===i.attributeNewValue&&e&&e.is("element","listItem")?(t.rename(e,"paragraph"),l=!0):null===i.attributeOldValue&&e&&e.is("element")&&"listItem"!=e.name&&(t.rename(e,"listItem"),l=!0)}}const c=new Set;for(const e of r.values())l=i.fire("postFixer",{listNodes:new Hy(e),listHead:e,writer:t,seenIds:c})||l;return l}(e,o,t,this))),this.on("postFixer",((e,{listNodes:t,writer:o})=>{e.return=function(e,t){let o=0,i=-1,n=null,s=!1;for(const{node:r}of e){const e=r.getAttribute("listIndent");if(e>o){let a;null===n?(n=e-o,a=o):(n>e&&(n=e),a=e-n),a>i+1&&(a=i+1),t.setAttribute("listIndent",a,r),s=!0,i=a}else n=null,o=e+1,i=e}return s}(t,o)||e.return}),{priority:"high"}),this.on("postFixer",((e,{listNodes:t,writer:o,seenIds:i})=>{e.return=function(e,t,o){const i=new Set;let n=!1;for(const{node:s}of e){if(i.has(s))continue;let e=s.getAttribute("listType"),r=s.getAttribute("listItemId");if(t.has(r)&&(r=Wy.next()),t.add(r),s.is("element","listItem"))s.getAttribute("listItemId")!=r&&(o.setAttribute("listItemId",r,s),n=!0);else for(const t of Gy(s,{direction:"forward"}))i.add(t),t.getAttribute("listType")!=e&&(r=Wy.next(),e=t.getAttribute("listType")),t.getAttribute("listItemId")!=r&&(o.setAttribute("listItemId",r,t),n=!0)}return n}(t,i,o)||e.return}),{priority:"high"})}_setupClipboardIntegration(){const e=this.editor.model,t=this.editor.plugins.get("ClipboardPipeline");this.listenTo(e,"insertContent",function(e){return(t,[o,i])=>{const n=o.is("documentFragment")?Array.from(o.getChildren()):[o];if(!n.length)return;const s=(i?e.createSelection(i):e.document.selection).getFirstPosition();let r;if(Uy(s.parent))r=s.parent;else{if(!Uy(s.nodeBefore)||!Uy(s.nodeAfter))return;r=s.nodeBefore}e.change((e=>{const t=r.getAttribute("listType"),o=r.getAttribute("listIndent"),i=n[0].getAttribute("listIndent")||0,s=Math.max(o-i,0);for(const o of n){const i=Uy(o);r.is("element","listItem")&&o.is("element","paragraph")&&e.rename(o,"listItem"),e.setAttributes({listIndent:(i?o.getAttribute("listIndent"):0)+s,listItemId:i?o.getAttribute("listItemId"):Wy.next(),listType:t},o)}}))}}(e),{priority:"high"}),this.listenTo(t,"outputTransformation",((t,o)=>{e.change((e=>{const t=Array.from(o.content.getChildren()),i=t[t.length-1];if(t.length>1&&i.is("element")&&i.isEmpty){t.slice(0,-1).every(Uy)&&e.remove(i)}if("copy"==o.method||"cut"==o.method){const t=Array.from(o.content.getChildren());n_(t)&&i_(t,e,this.getListAttributeNames())}}))}))}_setupAccessibilityIntegration(){const e=this.editor,t=e.t;e.accessibility.addKeystrokeInfoGroup({id:"list",label:t("Keystrokes that can be used in a list"),keystrokes:[{label:t("Increase list item indent"),keystroke:"Tab"},{label:t("Decrease list item indent"),keystroke:"Shift+Tab"}]})}_setupListItemIdConversionStrategy(){this.registerDowncastStrategy({scope:"item",attributeName:"listItemId",setAttributeOnDowncast(e,t,o,i){i&&(i.skipListItemIds||i.isClipboardPipeline)||e.setAttribute("data-list-item-id",t,o)}})}}function j_(e,t){const o=e.document.selection;if(!o.isCollapsed)return!r_(e);if("forward"===t)return!0;const i=o.getFirstPosition().parent,n=i.previousSibling;return!e.schema.isObject(n)&&(!!n.isEmpty||n_([i,n]))}function q_(e,t,o,i){e.ui.componentFactory.add(t,(()=>{const n=$_(Lu,e,t,o,i);return n.set({tooltip:!0,isToggleable:!0}),n})),e.ui.componentFactory.add(`menuBar:${t}`,(()=>{const n=$_(sh,e,t,o,i);return n.set({role:"menuitemcheckbox",isToggleable:!0}),n}))}function $_(e,t,o,i,n){const s=t.commands.get(o),r=new e(t.locale);return r.set({label:i,icon:n}),r.bind("isOn","isEnabled").to(s,"value","isEnabled"),r.on("execute",(()=>{t.execute(o),t.editing.view.focus()})),r}class H_ extends fc{static get pluginName(){return"ListUI"}static get isOfficialPlugin(){return!0}init(){const e=this.editor.t;this.editor.ui.componentFactory.has("numberedList")||q_(this.editor,"numberedList",e("Numbered List"),''),this.editor.ui.componentFactory.has("bulletedList")||q_(this.editor,"bulletedList",e("Bulleted List"),'')}}const W_={},U_={},K_={},G_=[{listStyle:"disc",typeAttribute:"disc",listType:"bulleted"},{listStyle:"circle",typeAttribute:"circle",listType:"bulleted"},{listStyle:"square",typeAttribute:"square",listType:"bulleted"},{listStyle:"decimal",typeAttribute:"1",listType:"numbered"},{listStyle:"decimal-leading-zero",typeAttribute:null,listType:"numbered"},{listStyle:"lower-roman",typeAttribute:"i",listType:"numbered"},{listStyle:"upper-roman",typeAttribute:"I",listType:"numbered"},{listStyle:"lower-alpha",typeAttribute:"a",listType:"numbered"},{listStyle:"upper-alpha",typeAttribute:"A",listType:"numbered"},{listStyle:"lower-latin",typeAttribute:"a",listType:"numbered"},{listStyle:"upper-latin",typeAttribute:"A",listType:"numbered"},{listStyle:"arabic-indic",typeAttribute:null,listType:"numbered"}];for(const{listStyle:e,typeAttribute:t,listType:o}of G_)W_[e]=o,U_[e]=t,t&&(K_[t]=e);class J_ extends wc{constructor(e){super(e),this.on("execute",(()=>{this.refresh()}),{priority:"highest"})}refresh(){const e=this._getSelectedItems();this.value=this._getValue(e),this.isEnabled=!!e.length}execute(e={}){this.editor.model.change((t=>{const o=this._getSelectedItems(),i=void 0===e.forceValue?!this._getValue(o):e.forceValue;for(const e of o)i?t.setAttribute("todoListChecked",!0,e):t.removeAttribute("todoListChecked",e)}))}_getValue(e){return e.every((e=>e.getAttribute("todoListChecked")))}_getSelectedItems(){const e=this.editor.model,t=e.schema,o=e.document.selection.getFirstRange(),i=o.start.parent,n=[];t.checkAttribute(i,"todoListChecked")&&n.push(...Ky(i));for(const e of o.getItems({shallow:!0}))t.checkAttribute(e,"todoListChecked")&&!n.includes(e)&&n.push(...Ky(e));return n}}class Z_ extends jn{domEventType=["change"];onDomEvent(e){if(e.target){const t=this.view.domConverter.mapDomToView(e.target);t&&t.is("element","input")&&"checkbox"==t.getAttribute("type")&&t.findAncestor({classes:"todo-list__label"})&&this.fire("todoCheckboxChange",e)}}}const Q_=Wt("Ctrl+Enter");class Y_ extends fc{static get pluginName(){return"TodoListEditing"}static get isOfficialPlugin(){return!0}static get requires(){return[z_]}init(){const e=this.editor,t=e.model,o=e.editing,i=e.plugins.get(z_),n=e.config.get("list.multiBlock")?"paragraph":"listItem";e.commands.add("todoList",new h_(e,"todo")),e.commands.add("checkTodoList",new J_(e)),o.view.addObserver(Z_),t.schema.extend("$listItem",{allowAttributes:"todoListChecked"}),t.schema.addAttributeCheck((e=>{const t=e.last;if(!t.getAttribute("listItemId")||"todo"!=t.getAttribute("listType"))return!1}),"todoListChecked"),e.conversion.for("upcast").add((e=>{e.on("element:input",((e,t,o)=>{const i=t.modelCursor,n=i.parent,s=t.viewItem;if(!o.consumable.test(s,{name:!0}))return;if("checkbox"!=s.getAttribute("type")||!i.isAtStart||!n.hasAttribute("listType"))return;o.consumable.consume(s,{name:!0});const r=o.writer;r.setAttribute("listType","todo",n),t.viewItem.hasAttribute("checked")&&r.setAttribute("todoListChecked",!0,n),t.modelRange=r.createRange(i)})),e.on("element:li",((e,t,o)=>{const{writer:i,schema:n}=o;if(!t.modelRange)return;const s=Array.from(t.modelRange.getItems({shallow:!0})).filter((e=>"todo"===e.getAttribute("listType")&&n.checkAttribute(e,"listItemId"))).reduce(((e,t)=>{const o=t.getAttribute("listItemId");return e.has(o)||e.set(o,Ky(t)),e}),new Map);for(const[,e]of s.entries())if(e.some((e=>e.getAttribute("todoListChecked"))))for(const t of e)i.setAttribute("todoListChecked",!0,t)}),{priority:"low"}),e.on("element:label",X_({name:"label",classes:"todo-list__label"})),e.on("element:label",X_({name:"label",classes:["todo-list__label","todo-list__label_without-description"]})),e.on("element:span",X_({name:"span",classes:"todo-list__label__description"})),e.on("element:ul",function(e){const t=new ui(e);return(e,o,i)=>{const n=t.match(o.viewItem);if(!n)return;const s=n.match;s.name=!1,i.consumable.consume(o.viewItem,s)}}({name:"ul",classes:"todo-list"}))})),e.conversion.for("downcast").elementToElement({model:n,view:(e,{writer:t})=>{if(ek(e,i.getListAttributeNames()))return t.createContainerElement("span",{class:"todo-list__label__description"})},converterPriority:"highest"}),i.registerDowncastStrategy({scope:"list",attributeName:"listType",setAttributeOnDowncast(e,t,o){"todo"==t?e.addClass("todo-list",o):e.removeClass("todo-list",o)}}),i.registerDowncastStrategy({scope:"itemMarker",attributeName:"todoListChecked",createElement(e,t,{dataPipeline:o}){if("todo"!=t.getAttribute("listType"))return null;const i=e.createUIElement("input",{type:"checkbox",...t.getAttribute("todoListChecked")?{checked:"checked"}:null,...o?{disabled:"disabled"}:{tabindex:"-1"}});if(o)return i;const n=e.createContainerElement("span",{contenteditable:"false"},i);return n.getFillerOffset=()=>null,n},canWrapElement:e=>ek(e,i.getListAttributeNames()),createWrapperElement(e,t,{dataPipeline:o}){const n=["todo-list__label"];return ek(t,i.getListAttributeNames())||n.push("todo-list__label_without-description"),e.createAttributeElement(o?"label":"span",{class:n.join(" ")})}}),i.on("checkElement",((e,{modelElement:t,viewElement:o})=>{const n=ek(t,i.getListAttributeNames());o.hasClass("todo-list__label__description")!=n&&(e.return=!0,e.stop())})),i.on("checkElement",((t,{modelElement:o,viewElement:i})=>{const n="todo"==o.getAttribute("listType")&&Zy(o);let s=!1;const r=e.editing.view.createPositionBefore(i).getWalker({direction:"backward"});for(const{item:t}of r){if(t.is("element")&&e.editing.mapper.toModelElement(t))break;t.is("element","input")&&"checkbox"==t.getAttribute("type")&&(s=!0)}s!=n&&(t.return=!0,t.stop())})),i.on("postFixer",((e,{listNodes:t,writer:o})=>{for(const{node:i,previousNodeInList:n}of t){if(!n)continue;if(n.getAttribute("listItemId")!=i.getAttribute("listItemId"))continue;const t=n.hasAttribute("todoListChecked"),s=i.hasAttribute("todoListChecked");s&&!t?(o.removeAttribute("todoListChecked",i),e.return=!0):!s&&t&&(o.setAttribute("todoListChecked",!0,i),e.return=!0)}})),t.document.registerPostFixer((e=>{const o=t.document.differ.getChanges();let i=!1;for(const t of o)if("attribute"==t.type&&"listType"==t.attributeKey){const o=t.range.start.nodeAfter;"todo"==t.attributeOldValue&&o.hasAttribute("todoListChecked")&&(e.removeAttribute("todoListChecked",o),i=!0)}else if("insert"==t.type&&"$text"!=t.name)for(const{item:o}of e.createRangeOn(t.position.nodeAfter))o.is("element")&&"todo"!=o.getAttribute("listType")&&o.hasAttribute("todoListChecked")&&(e.removeAttribute("todoListChecked",o),i=!0);return i})),this.listenTo(o.view.document,"keydown",((t,o)=>{Ht(o)===Q_&&(e.execute("checkTodoList"),t.stop())}),{priority:"high"}),this.listenTo(o.view.document,"todoCheckboxChange",((e,t)=>{const i=t.target;if(!i||!i.is("element","input"))return;const n=o.view.createPositionAfter(i),s=o.mapper.toModelPosition(n).parent;s&&Uy(s)&&"todo"==s.getAttribute("listType")&&this._handleCheckmarkChange(s)})),this.listenTo(o.view.document,"arrowKey",function(e,t){return(o,i)=>{const n=Kt(i.keyCode,t.contentLanguageDirection),s=e.schema,r=e.document.selection;if(!r.isCollapsed)return;const a=r.getFirstPosition(),l=a.parent;if("right"==n&&a.isAtEnd){const t=s.getNearestSelectionRange(e.createPositionAfter(l),"forward");if(!t)return;const n=t.start.parent;n&&Uy(n)&&"todo"==n.getAttribute("listType")&&(e.change((e=>e.setSelection(t))),i.preventDefault(),i.stopPropagation(),o.stop())}else if("left"==n&&a.isAtStart&&Uy(l)&&"todo"==l.getAttribute("listType")){const t=s.getNearestSelectionRange(e.createPositionBefore(l),"backward");if(!t)return;e.change((e=>e.setSelection(t))),i.preventDefault(),i.stopPropagation(),o.stop()}}}(t,e.locale),{context:"$text"}),this.listenTo(o.mapper,"viewToModelPosition",((e,o)=>{const i=o.viewPosition.parent,n=i.is("attributeElement","li")&&0==o.viewPosition.offset,s=tk(i)&&o.viewPosition.offset<=1,r=i.is("element","span")&&"false"==i.getAttribute("contenteditable")&&tk(i.parent);if(!n&&!s&&!r)return;const a=o.modelPosition.nodeAfter;a&&"todo"==a.getAttribute("listType")&&(o.modelPosition=t.createPositionAt(a,0))}),{priority:"low"}),this._initAriaAnnouncements()}_handleCheckmarkChange(e){const t=this.editor,o=t.model,i=Array.from(o.document.selection.getRanges());o.change((o=>{o.setSelection(e,"end"),t.execute("checkTodoList"),o.setSelection(i)}))}_initAriaAnnouncements(){const{model:e,ui:t,t:o}=this.editor;let i=null;t&&e.document.selection.on("change:range",(()=>{const n=e.document.selection.focus.parent,s=ok(i),r=ok(n);s&&!r?t.ariaLiveAnnouncer.announce(o("Leaving a to-do list")):!s&&r&&t.ariaLiveAnnouncer.announce(o("Entering a to-do list")),i=n}))}}function X_(e){const t=new ui(e);return(e,o,i)=>{const n=t.match(o.viewItem);n&&i.consumable.consume(o.viewItem,n.match)&&Object.assign(o,i.convertChildren(o.viewItem,o.modelCursor))}}function ek(e,t){return(e.is("element","paragraph")||e.is("element","listItem"))&&"todo"==e.getAttribute("listType")&&Zy(e)&&function(e,t){for(const o of e.getAttributeKeys())if(!o.startsWith("selection:")&&!t.includes(o))return!1;return!0}(e,t)}function tk(e){return!!e&&e.is("attributeElement")&&e.hasClass("todo-list__label")}function ok(e){return!!e&&(!(!e.is("element","paragraph")&&!e.is("element","listItem"))&&"todo"==e.getAttribute("listType"))}class ik extends fc{static get pluginName(){return"TodoListUI"}static get isOfficialPlugin(){return!0}init(){const e=this.editor.t;q_(this.editor,"todoList",e("To-do List"),'')}}const nk=Symbol("isOPCodeBlock");function sk(e){return!!e.getCustomProperty(nk)&&ip(e)}function rk(e){const t=e.getSelectedElement();return!(!t||!sk(t))}function ak(e,t,o){const i=t.createContainerElement("pre",{title:window.I18n.t("js.editor.macro.toolbar_help")});return lk(t,e,i),function(e,t,o){return t.setCustomProperty(nk,!0,e),np(e,t,{label:o})}(i,t,o)}function lk(e,t,o){const i=(t.getAttribute("opCodeblockLanguage")||"language-text").replace(/^language-/,""),n=e.createContainerElement("div",{class:"op-uc-code-block--language"});ck(e,i,n,"text"),e.insert(e.createPositionAt(o,0),n);ck(e,t.getAttribute("opCodeblockContent"),o,"(empty)")}function ck(e,t,o,i){const n=e.createText(t||i);e.insert(e.createPositionAt(o,0),n)}class dk extends jn{constructor(e){super(e),this.domEventType="dblclick"}onDomEvent(e){this.fire(e.type,e)}}class uk extends fc{static get pluginName(){return"CodeBlockEditing"}init(){const e=this.editor,t=e.model.schema,o=e.conversion,i=e.editing.view,n=i.document,s=Mp(e);var r,a;t.register("codeblock",{isObject:!0,isBlock:!0,allowContentOf:"$block",allowWhere:["$root","$block"],allowIn:["$root"],allowAttributes:["opCodeblockLanguage","opCodeblockContent"]}),o.for("upcast").add(function(){return t=>{t.on("element:pre",e,{priority:"high"})};function e(e,t,o){if(!o.consumable.test(t.viewItem,{name:!0}))return;const i=Array.from(t.viewItem.getChildren()).find((e=>e.is("element","code")));if(!i||!o.consumable.consume(i,{name:!0}))return;const n=o.writer.createElement("codeblock");o.writer.setAttribute("opCodeblockLanguage",i.getAttribute("class"),n);const s=o.splitToAllowedParent(n,t.modelCursor);if(s){o.writer.insert(n,s.position);const e=i.getChild(0);if(e){o.consumable.consume(e,{name:!0});const t=e.data.replace(/\n$/,"");o.writer.setAttribute("opCodeblockContent",t,n)}t.modelRange=o.writer.createRange(o.writer.createPositionBefore(n),o.writer.createPositionAfter(n)),t.modelCursor=t.modelRange.end}}}()),o.for("editingDowncast").elementToElement({model:"codeblock",view:(e,{writer:t})=>ak(e,t,"Code block")}).add(function(){return t=>{t.on("attribute:opCodeblockContent",e),t.on("attribute:opCodeblockLanguage",e)};function e(e,t,o){const i=t.item;o.consumable.consume(t.item,e.name);const n=o.mapper.toViewElement(i);o.writer.remove(o.writer.createRangeOn(n.getChild(1))),o.writer.remove(o.writer.createRangeOn(n.getChild(0))),lk(o.writer,i,n)}}()),o.for("dataDowncast").add(function(){return t=>{t.on("insert:codeblock",e,{priority:"high"})};function e(e,t,o){const i=t.item,n=i.getAttribute("opCodeblockLanguage")||"language-text",s=i.getAttribute("opCodeblockContent");o.consumable.consume(i,"insert");const r=o.writer,a=r.createContainerElement("pre"),l=r.createContainerElement("div",{class:"op-uc-code-block--language"}),c=r.createContainerElement("code",{class:n}),d=r.createText(n),u=r.createText(s);r.insert(r.createPositionAt(c,0),u),r.insert(r.createPositionAt(l,0),d),r.insert(r.createPositionAt(a,0),l),r.insert(r.createPositionAt(a,0),c),o.mapper.bindElements(i,c),o.mapper.bindElements(i,a),o.mapper.bindElements(i,l);const h=o.mapper.toViewPosition(t.range.start);r.insert(h,a),e.stop()}}()),this.editor.editing.mapper.on("viewToModelPosition",(r=this.editor.model,a=e=>e.hasClass("op-uc-code-block"),(e,t)=>{const{mapper:o,viewPosition:i}=t,n=o.findMappedViewAncestor(i);if(!a(n))return;const s=o.toModelElement(n);t.modelPosition=r.createPositionAt(s,i.isAtStart?"before":"after")})),i.addObserver(dk),this.listenTo(n,"dblclick",((t,o)=>{let i=o.target,n=o.domEvent;if(n.shiftKey||n.altKey||n.metaKey)return;if(!sk(i)&&(i=i.findAncestor(sk),!i))return;o.preventDefault(),o.stopPropagation();const r=e.editing.mapper.toModelElement(i),a=s.services.macros,l=r.getAttribute("opCodeblockLanguage"),c=r.getAttribute("opCodeblockContent");a.editCodeBlock(c,l).then((t=>e.model.change((e=>{e.setAttribute("opCodeblockLanguage",t.languageClass,r),e.setAttribute("opCodeblockContent",t.content,r)}))))})),e.ui.componentFactory.add("insertCodeBlock",(t=>{const o=new Lu(t);return o.set({label:window.I18n.t("js.editor.macro.code_block.button"),icon:'\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n image/svg+xml\n \n \n \n \n\n',tooltip:!0}),o.on("execute",(()=>{s.services.macros.editCodeBlock().then((t=>e.model.change((o=>{const i=o.createElement("codeblock");o.setAttribute("opCodeblockLanguage",t.languageClass,i),o.setAttribute("opCodeblockContent",t.content,i),e.model.insertContent(i,e.model.document.selection)}))))})),o}))}}class hk extends fc{static get requires(){return[Qm]}static get pluginName(){return"CodeBlockToolbar"}init(){const e=this.editor,t=this.editor.model,o=Mp(e);jp(e,"opEditCodeBlock",(e=>{const i=o.services.macros,n=e.getAttribute("opCodeblockLanguage"),s=e.getAttribute("opCodeblockContent");i.editCodeBlock(s,n).then((o=>t.change((t=>{t.setAttribute("opCodeblockLanguage",o.languageClass,e),t.setAttribute("opCodeblockContent",o.content,e)}))))}))}afterInit(){$p(this,this.editor,"OPCodeBlock",rk)}}function mk(e){return e.__currentlyDisabled=e.__currentlyDisabled||[],e.ui.view.toolbar?e.ui.view.toolbar.items._items:[]}function gk(e,t){mk(e).forEach((o=>{let i=o;o instanceof bh?i=o.buttonView:o!==t&&Object.prototype.hasOwnProperty.call(o,"isEnabled")||(i=null),i&&(i.isEnabled?i.isEnabled=!1:e.__currentlyDisabled.push(i))}))}function pk(e){mk(e).forEach((t=>{let o=t;t instanceof bh&&(o=t.buttonView),e.__currentlyDisabled.indexOf(o)<0&&(o.isEnabled=!0)})),e.__currentlyDisabled=[]}class fk{constructor(e){this.response=e}get statusCode(){return this.response.status}get redirected(){return this.response.redirected}get ok(){return this.response.ok}get unauthenticated(){return 401===this.statusCode}get unprocessableEntity(){return 422===this.statusCode}get authenticationURL(){return this.response.headers.get("WWW-Authenticate")}get contentType(){return(this.response.headers.get("Content-Type")||"").replace(/;.*$/,"")}get headers(){return this.response.headers}get html(){return this.contentType.match(/^(application|text)\/(html|xhtml\+xml)$/)?this.text:Promise.reject(new Error(`Expected an HTML response but got "${this.contentType}" instead`))}get json(){return this.contentType.match(/^application\/.*json$/)?this.responseJson||(this.responseJson=this.response.json()):Promise.reject(new Error(`Expected a JSON response but got "${this.contentType}" instead`))}get text(){return this.responseText||(this.responseText=this.response.text())}get isTurboStream(){return this.contentType.match(/^text\/vnd\.turbo-stream\.html/)}get isScript(){return this.contentType.match(/\b(?:java|ecma)script\b/)}async renderTurboStream(){if(!this.isTurboStream)return Promise.reject(new Error(`Expected a Turbo Stream response but got "${this.contentType}" instead`));window.Turbo?await window.Turbo.renderStreamMessage(await this.text):console.warn("You must set `window.Turbo = Turbo` to automatically process Turbo Stream events with request.js")}async activeScript(){if(!this.isScript)return Promise.reject(new Error(`Expected a Script response but got "${this.contentType}" instead`));{const e=document.createElement("script"),t=document.querySelector("meta[name=csp-nonce]");if(t){const o=""===t.nonce?t.content:t.nonce;o&&e.setAttribute("nonce",o)}e.innerHTML=await this.text,document.body.appendChild(e)}}}class bk{static register(e){this.interceptor=e}static get(){return this.interceptor}static reset(){this.interceptor=void 0}}function wk(e){const t=document.head.querySelector(`meta[name="${e}"]`);return t&&t.content}class yk{constructor(e,t,o={}){this.method=e,this.options=o,this.originalUrl=t.toString()}async perform(){try{const e=bk.get();e&&await e(this)}catch(e){console.error(e)}const e=window.Turbo?window.Turbo.fetch:window.fetch,t=new fk(await e(this.url,this.fetchOptions));if(t.unauthenticated&&t.authenticationURL)return Promise.reject(window.location.href=t.authenticationURL);t.isScript&&await t.activeScript();return(t.ok||t.unprocessableEntity)&&t.isTurboStream&&await t.renderTurboStream(),t}addHeader(e,t){const o=this.additionalHeaders;o[e]=t,this.options.headers=o}sameHostname(){if(!this.originalUrl.startsWith("http:")&&!this.originalUrl.startsWith("https:"))return!0;try{return new URL(this.originalUrl).hostname===window.location.hostname}catch(e){return!0}}get fetchOptions(){return{method:this.method.toUpperCase(),headers:this.headers,body:this.formattedBody,signal:this.signal,credentials:this.credentials,redirect:this.redirect,keepalive:this.keepalive}}get headers(){const e={"X-Requested-With":"XMLHttpRequest","Content-Type":this.contentType,Accept:this.accept};return this.sameHostname()&&(e["X-CSRF-Token"]=this.csrfToken),function(e){const t={};for(const o in e){const i=e[o];void 0!==i&&(t[o]=i)}return t}(Object.assign(e,this.additionalHeaders))}get csrfToken(){return function(e){const t=document.cookie?document.cookie.split("; "):[],o=`${encodeURIComponent(e)}=`,i=t.find((e=>e.startsWith(o)));if(i){const e=i.split("=").slice(1).join("=");if(e)return decodeURIComponent(e)}}(wk("csrf-param"))||wk("csrf-token")}get contentType(){return this.options.contentType?this.options.contentType:null==this.body||this.body instanceof window.FormData?void 0:this.body instanceof window.File?this.body.type:"application/json"}get accept(){switch(this.responseKind){case"html":return"text/html, application/xhtml+xml";case"turbo-stream":return"text/vnd.turbo-stream.html, text/html, application/xhtml+xml";case"json":return"application/json, application/vnd.api+json";case"script":return"text/javascript, application/javascript";default:return"*/*"}}get body(){return this.options.body}get query(){const e=(this.originalUrl.split("?")[1]||"").split("#")[0],t=new URLSearchParams(e);let o=this.options.query;var i;o instanceof window.FormData?(i=o,o=[...i].reduce(((e,[t,o])=>e.concat("string"==typeof o?[[t,o]]:[])),[])):o=o instanceof window.URLSearchParams?o.entries():Object.entries(o||{}),function(e,t){for(const[o,i]of t)i instanceof window.File||(e.has(o)&&!o.includes("[]")?(e.delete(o),e.set(o,i)):e.append(o,i))}(t,o);const n=t.toString();return n.length>0?`?${n}`:""}get url(){return this.originalUrl.split("?")[0].split("#")[0]+this.query}get responseKind(){return this.options.responseKind||"html"}get signal(){return this.options.signal}get redirect(){return this.options.redirect||"follow"}get credentials(){return this.options.credentials||"same-origin"}get keepalive(){return this.options.keepalive||!1}get additionalHeaders(){return this.options.headers||{}}get formattedBody(){const e="[object String]"===Object.prototype.toString.call(this.body);return"application/json"===this.headers["Content-Type"]&&!e?JSON.stringify(this.body):this.body}}async function _k(e,t){return new yk("get",e,t).perform()}function kk(e,t){const{modelAttribute:o,styleName:i,attributeName:n,attributeType:s,viewElement:r,defaultValue:a,shouldUpcast:l=()=>!0,reduceBoxSides:c=!1}=t;e.for("upcast").attributeToAttribute({view:{name:r,styles:{[i]:/[\s\S]+/}},model:{key:o,value:(e,t,o)=>{if(!l(e))return;const n=xk(a,"",o),s=e.getNormalizedStyle(i),r=c?Ek(s):s;if(n!==r)return r;t.consumable.consume(e,{styles:i})}}}),n&&e.for("upcast").attributeToAttribute({view:{name:r,attributes:{[n]:/.+/}},model:{key:o,value:(e,t,o)=>{if("figure"==e.name||e.hasStyle(i)||"table"==e.name&&"figure"==e.parent.name&&e.parent.hasStyle(i))return;const r=xk(a,"",o);let l=e.getAttribute(n);if(l&&"length"==s){const e=parseFloat(l);l=isNaN(e)?r:e+(l.includes("%")?"%":"px")}if(r!==l)return l;t.consumable.consume(e,{attributes:n})}}})}function vk(e,t,o,i){const{conversion:n}=e;n.for("upcast").add((e=>{e.on(`element:${t}`,((e,t,n)=>{const{modelRange:s,viewItem:r}=t;if(!s)return;const a=["border-top-width","border-top-color","border-top-style","border-bottom-width","border-bottom-color","border-bottom-style","border-right-width","border-right-color","border-right-style","border-left-width","border-left-color","border-left-style"].filter((e=>r.hasStyle(e))),l=r.is("element","table")?r:r.findAncestor("table"),c=l.hasAttribute("border");if(!a.length&&!c)return;const d={styles:a};if(!n.consumable.test(r,d))return;const u=to(s.getItems({shallow:!0})),h=u.findAncestor("table",{includeSelf:!0});let m=i;h&&"layout"==h.getAttribute("tableType")&&(m={style:"none",color:"",width:""}),n.consumable.consume(r,d);const g={style:r.getNormalizedStyle("border-style"),color:r.getNormalizedStyle("border-color"),width:r.getNormalizedStyle("border-width")};if(c&&n.consumable.test(l,{attributes:"border"})){const e=parseFloat(l.getAttribute("border")||"1"),t=Number.isNaN(e)||!Number.isFinite(e)||e<0||"table"!=r.name&&e>1?"1px":`${e}px`;g.width={top:t,bottom:t,right:t,left:t,...g.width||{}},r.is("element","table")&&n.consumable.consume(l,{attributes:"border"})}const p={style:Ek(g.style),color:Ek(g.color),width:Ek(g.width)};p.style!==m.style&&n.writer.setAttribute(o.style,p.style,u),p.color!==m.color&&n.writer.setAttribute(o.color,p.color,u),p.width!==m.width&&n.writer.setAttribute(o.width,p.width,u)}))}))}function Ck(e,t){const{modelElement:o,modelAttribute:i,styleName:n}=t;e.for("downcast").attributeToAttribute({model:{name:o,key:i},view:e=>({key:"style",value:{[n]:e}})})}function Ak(e,t){const{modelAttribute:o,styleName:i}=t;e.for("downcast").add((e=>{e.on(`attribute:${o}:table`,((e,t,o)=>{const{item:n,attributeNewValue:s}=t,{mapper:r,writer:a}=o;if(!o.consumable.consume(t.item,e.name))return;const l=Array.from(r.toViewElement(n).getChildren()).find((e=>e.is("element","table")));s?a.setStyle(i,s,l):a.removeStyle(i,l)}))}))}function xk(e,t,o){const i=o.modelRange&&to(o.modelRange.getItems({shallow:!0})),n=i&&i.is("element")&&i.findAncestor("table",{includeSelf:!0});return n&&"layout"===n.getAttribute("tableType")?t:e}function Ek(e){if(!e)return;const t=["top","right","bottom","left"];if(!t.every((t=>e[t])))return e;const o=e.top;return t.every((t=>e[t]===o))?o:e}function Tk(e,t,o){const{conversion:i}=e;i.for("upcast").add((e=>{e.on(`element:${t}`,((e,t,i)=>{const{modelRange:n,viewItem:s}=t;if(!n)return;if(s.is("element","table"))return void i.consumable.consume(s,{attributes:"cellpadding"});const r=s.findAncestor("table");if(!r.hasAttribute("cellpadding")||!i.consumable.test(r,{attributes:"cellpadding"}))return;const a=n?.start?.nodeAfter,l=parseFloat(r.getAttribute("cellpadding")||"1"),c=Number.isNaN(l)||!Number.isFinite(l)||l<0?"0px":`${l}px`,d=a.getAttribute("tableCellPadding");if(d){if("object"==typeof d){const e={...o!==c&&{top:c},...o!==c&&{right:c},...o!==c&&{bottom:c},...o!==c&&{left:c},...d};i.writer.setAttribute("tableCellPadding",e,a)}}else o!==c&&i.writer.setAttribute("tableCellPadding",c,a)}),{priority:"low"})}))}const Pk={className:"table-style-align-left"},Sk={className:"table-style-align-center"},Ik={className:"table-style-align-right"},Rk={className:"table-style-block-align-left"},Ok={className:"table-style-block-align-right"},Vk=[{view:{name:/^(table|figure)$/,styles:{float:/^(left|none|right)$/}},getAlign:e=>{let t=e.getStyle("float");return"none"===t&&(t="center"),t},getConsumables(e){const t=e.getStyle("float"),o=["float"];return"left"===t&&e.hasStyle("margin-right")?o.push("margin-right"):"right"===t&&e.hasStyle("margin-left")&&o.push("margin-left"),{styles:o}}},{view:{name:/^(table|figure)$/,styles:{"margin-left":"auto","margin-right":"auto"}},getAlign:()=>"center",getConsumables:()=>({styles:["margin-left","margin-right"]})},{view:{name:/^(table|figure)$/,key:"class",value:"table-style-align-left"},getAlign:()=>"left",getConsumables:()=>({classes:Pk.className})},{view:{name:/^(table|figure)$/,key:"class",value:Ik.className},getAlign:()=>"right",getConsumables:()=>({classes:Ik.className})},{view:{name:/^(table|figure)$/,key:"class",value:Sk.className},getAlign:()=>"center",getConsumables:()=>({classes:Sk.className})},{view:{name:/^(table|figure)$/,key:"class",value:Rk.className},getAlign:()=>"blockLeft",getConsumables:()=>({classes:Rk.className})},{view:{name:/^(table|figure)$/,key:"class",value:Ok.className},getAlign:()=>"blockRight",getConsumables:()=>({classes:Ok.className})},{view:{name:/^(table|figure)$/,styles:{"margin-left":"0","margin-right":"auto"}},getAlign:()=>"blockLeft",getConsumables:()=>({styles:["margin-left","margin-right"]})},{view:{name:/^(table|figure)$/,styles:{"margin-left":"auto","margin-right":"0"}},getAlign:()=>"blockRight",getConsumables:()=>({styles:["margin-left","margin-right"]})},{view:{name:"table",attributes:{align:/^(left|center|right)$/}},getAlign:e=>e.getAttribute("align"),getConsumables:()=>({attributes:"align"})}],Dk={center:{align:"center",style:"margin-left: auto; margin-right: auto;",className:"table-style-align-center"},left:{align:"left",style:"float: left;",className:"table-style-align-left"},right:{align:"right",style:"float: right;",className:"table-style-align-right"},blockLeft:{align:void 0,style:"margin-left: 0; margin-right: auto;",className:Rk.className},blockRight:{align:void 0,style:"margin-left: auto; margin-right: 0;",className:Ok.className}};class Fk{_table;_startRow;_endRow;_startColumn;_endColumn;_includeAllSlots;_skipRows;_row;_rowIndex;_column;_cellIndex;_spannedCells;_nextCellAtColumn;_jumpedToStartRow=!1;constructor(e,t={}){this._table=e,this._startRow=void 0!==t.row?t.row:t.startRow||0,this._endRow=void 0!==t.row?t.row:t.endRow,this._startColumn=void 0!==t.column?t.column:t.startColumn||0,this._endColumn=void 0!==t.column?t.column:t.endColumn,this._includeAllSlots=!!t.includeAllSlots,this._skipRows=new Set,this._row=0,this._rowIndex=0,this._column=0,this._cellIndex=0,this._spannedCells=new Map,this._nextCellAtColumn=-1}[Symbol.iterator](){return this}next(){this._canJumpToStartRow()&&this._jumpToNonSpannedRowClosestToStartRow();const e=this._table.getChild(this._rowIndex);if(!e||this._isOverEndRow())return{done:!0,value:void 0};if(!e.is("element","tableRow"))return this._rowIndex++,this.next();if(this._isOverEndColumn())return this._advanceToNextRow();let t=null;const o=this._getSpanned();if(o)this._includeAllSlots&&!this._shouldSkipSlot()&&(t=this._formatOutValue(o.cell,o.row,o.column));else{const o=e.getChild(this._cellIndex);if(!o)return this._advanceToNextRow();const i=parseInt(o.getAttribute("colspan")||"1"),n=parseInt(o.getAttribute("rowspan")||"1");(i>1||n>1)&&this._recordSpans(o,n,i),this._shouldSkipSlot()||(t=this._formatOutValue(o)),this._nextCellAtColumn=this._column+i}return this._column++,this._column==this._nextCellAtColumn&&this._cellIndex++,t||this.next()}skipRow(e){this._skipRows.add(e)}_advanceToNextRow(){return this._row++,this._rowIndex++,this._column=0,this._cellIndex=0,this._nextCellAtColumn=-1,this.next()}_isOverEndRow(){return void 0!==this._endRow&&this._row>this._endRow}_isOverEndColumn(){return void 0!==this._endColumn&&this._column>this._endColumn}_formatOutValue(e,t=this._row,o=this._column){return{done:!1,value:new Mk(this,e,t,o)}}_shouldSkipSlot(){const e=this._skipRows.has(this._row),t=this._rowthis._endColumn;return e||t||o||i}_getSpanned(){const e=this._spannedCells.get(this._row);return e&&e.get(this._column)||null}_recordSpans(e,t,o){const i={cell:e,row:this._row,column:this._column};for(let e=this._row;e0&&!this._jumpedToStartRow}_jumpToNonSpannedRowClosestToStartRow(){const e=this._getRowLength(0);for(let t=this._startRow;!this._jumpedToStartRow;t--)e===this._getRowLength(t)&&(this._row=t,this._rowIndex=t,this._jumpedToStartRow=!0)}_getRowLength(e){return[...this._table.getChild(e).getChildren()].reduce(((e,t)=>e+parseInt(t.getAttribute("colspan")||"1")),0)}}class Mk{cell;row;column;cellAnchorRow;cellAnchorColumn;_cellIndex;_rowIndex;_table;constructor(e,t,o,i){this.cell=t,this.row=e._row,this.column=e._column,this.cellAnchorRow=o,this.cellAnchorColumn=i,this._cellIndex=e._cellIndex,this._rowIndex=e._rowIndex,this._table=e._table}get isAnchor(){return this.row===this.cellAnchorRow&&this.column===this.cellAnchorColumn}get cellWidth(){return parseInt(this.cell.getAttribute("colspan")||"1")}get cellHeight(){return parseInt(this.cell.getAttribute("rowspan")||"1")}get rowIndex(){return this._rowIndex}getPositionBefore(){return this._table.root.document.model.createPositionAt(this._table.getChild(this.row),this._cellIndex)}}function Nk(e){return"header"===e||"header-row"===e||"header-column"===e}function Bk(e,t,o,i,n=1){null!=t&&null!=n&&t>n?i.setAttribute(e,t,o):i.removeAttribute(e,o)}function Lk(e,t,o={}){const i=e.createElement("tableCell",o);return e.insertElement("paragraph",i),e.insert(i,t),i}function zk(e,t){const o=t.parent.parent,i=parseInt(o.getAttribute("headingColumns")||"0"),{column:n}=e.getCellLocation(t);return!!i&&n0){Bk("headingRows",s-o,e,n,0)}const r=parseInt(t.getAttribute("headingColumns")||"0");if(r>0){Bk("headingColumns",r-i,e,n,0)}}(a,e,i,n,o),function(e,t,o,i,n){const s=Array.from(t.getChildren()).reduce(((e,t)=>t.is("element","tableRow")?e+1:e),0),r=parseInt(t.getAttribute("footerRows")||"0"),a=s-r;if(r<1)return;let l=0;i>=a&&(l=i-Math.max(a,o)+1);Bk("footerRows",l,e,n,0)}(a,e,i,s,o),a}function Uk(e,t,o=0){const i=[],n=new Fk(e,{startRow:o,endRow:t-1});for(const e of n){const{row:o,cellHeight:n}=e;o1&&(a.rowspan=l);const c=parseInt(e.getAttribute("colspan")||"1");c>1&&(a.colspan=c);const d=s+r,u=[...new Fk(n,{startRow:s,endRow:d,includeAllSlots:!0})];let h,m=null;for(const t of u){const{row:i,column:n,cell:s}=t;s===e&&void 0===h&&(h=n),void 0!==h&&h===n&&i===d&&(m=Lk(o,t.getPositionBefore(),a))}return Bk("rowspan",r,e,o),m}function Gk(e,t){const o=[],i=new Fk(e);for(const e of i){const{column:i,cellWidth:n}=e;i1&&(s.colspan=r);const a=parseInt(e.getAttribute("rowspan")||"1");a>1&&(s.rowspan=a);const l=Lk(i,i.createPositionAfter(e),s);return Bk("colspan",n,e,i),l}function Zk(e,t,o,i,n,s){const r=parseInt(e.getAttribute("colspan")||"1"),a=parseInt(e.getAttribute("rowspan")||"1");if(o+r-1>n){Bk("colspan",n-o+1,e,s,1)}if(t+a-1>i){Bk("rowspan",i-t+1,e,s,1)}}function Qk(e,t){const o=t.getColumns(e),i=new Array(o).fill(0);for(const{column:t}of new Fk(e))i[t]++;const n=i.reduce(((e,t,o)=>t?e:[...e,o]),[]);if(n.length>0){const o=n[n.length-1];return t.removeColumns(e,{at:o}),!0}return!1}function Yk(e,t){const o=[],i=t.getRows(e);for(let t=0;t0){const i=o[o.length-1];return t.removeRows(e,{at:i}),!0}return!1}function Xk(e,t){Qk(e,t)||Yk(e,t)}function ev(e,t){const o=Array.from(new Fk(e,{startColumn:t.firstColumn,endColumn:t.lastColumn,row:t.lastRow}));if(o.every((({cellHeight:e})=>1===e)))return t.lastRow;const i=o[0].cellHeight-1;return t.lastRow+i}function tv(e,t){const o=Array.from(new Fk(e,{startRow:t.firstRow,endRow:t.lastRow,column:t.lastColumn}));if(o.every((({cellWidth:e})=>1===e)))return t.lastColumn;const i=o[0].cellWidth-1;return t.lastColumn+i}function ov(e){for(const t of e.getChildren())if(t.is("element","table"))return t}function iv(e){return t=>{t.on("element:table",((t,o,i)=>{const n=o.viewItem;if(!i.consumable.test(n,{name:!0}))return;const{rows:s,headingRows:r,headingColumns:a,footerRows:l}=function(e){let t,o=!0;const i=[],n=[],s=[];let r=null,a=null;const l=Array.from(e.getChildren());for(let e=0;ee.is("element","tr")));let d=null,u=null;for(const h of c){const m=Array.from(h.getChildren()).filter((e=>e.is("element","td")||e.is("element","th")));if("tfoot"===t.name){a||={element:t,rows:c},o=!1;const i=a.element===t;if(!i&&null===u)for(let t=e;t0&&(null===d||m.length===d)&&m.every((e=>e.is("element","th")))&&o?(i.push(h),o=!0):(n.push(h),o=!1),d=Math.max(d||0,m.length)}}const c=function(e){let t=new Map,o=0;const i=e.map((e=>{const i=[],n=Array.from(e.getChildren()).filter((e=>"th"===e.name||"td"===e.name)),s=new Map;for(;n.length||i.length0)i.push(e.cell);else{const e=n.shift();if(!e){i.push(null);continue}{const t=parseInt(e.getAttribute("colspan")||"1"),o=parseInt(e.getAttribute("rowspan")||"1");for(let n=0;n1&&s.set(i.length,{cell:e,remaining:o-1}),i.push(e)}}}for(const[e,o]of t.entries())o.remaining-=1,o.remaining>0&&!s.has(e)&&s.set(e,o);return t=s,o=Math.max(o,i.length),i}));for(const e of i)for(;e.lengthi.convertItem(e,i.writer.createPositionAt(d,"end")))),i.convertChildren(n,i.writer.createPositionAt(d,"end")),d.isEmpty){const e=i.writer.createElement("tableRow");i.writer.insert(e,i.writer.createPositionAt(d,"end")),Lk(i.writer,i.writer.createPositionAt(e,"end"))}i.updateConversionResult(d,o)}}))}}function nv(e){return t=>{t.on(`element:${e}`,((e,t,{writer:o})=>{if(!t.modelRange)return;const i=t.modelRange.start.nodeAfter,n=o.createPositionAt(i,0);if(t.viewItem.isEmpty)return void o.insertElement("paragraph",n);const s=Array.from(i.getChildren());if(s.every((e=>e.is("element","$marker")))){const e=o.createElement("paragraph");o.insert(e,o.createPositionAt(i,0));for(const t of s)o.move(o.createRangeOn(t),o.createPositionAt(e,"end"))}}),{priority:"low"})}}function sv(e){if(e.is("element","tableColumnGroup"))return e;const t=e.getChildren();return Array.from(t).find((e=>e.is("element","tableColumnGroup")))}function rv(e){const t=sv(e);return t?Array.from(t.getChildren()):[]}class av extends fc{static get pluginName(){return"TableUtils"}static get isOfficialPlugin(){return!0}init(){this.decorate("insertColumns"),this.decorate("insertRows")}getCellLocation(e){const t=e.parent,o=t.parent,i=o.getChildIndex(t),n=new Fk(o,{row:i});for(const{cell:t,row:o,column:i}of n)if(t===e)return{row:o,column:i}}createTable(e,t){const o=e.createElement("table");return lv(e,o,0,t.rows||2,t.columns||2),t.footerRows&&this.setFooterRowsCount(e,o,t.footerRows),t.headingRows&&this.setHeadingRowsCount(e,o,t.headingRows),t.headingColumns&&this.setHeadingColumnsCount(e,o,t.headingColumns),o}insertRows(e,t={}){const o=this.editor.model,i=t.at||0,n=t.rows||1,s=void 0!==t.copyStructureFromAbove,r=t.copyStructureFromAbove?i-1:i,a=Hk(this.editor),l=!!this.editor.config.get("table.tableCellProperties.scopedHeaders"),c=this.getRows(e),d=this.getColumns(e);if(i>c)throw new fe("tableutils-insertrows-insert-out-of-range",this,{options:t});o.change((t=>{let o=e.getAttribute("headingRows")||0,u=e.getAttribute("footerRows")||0;if(o>i&&(o+=n),u&&i>c-u&&(u+=n),s||0!==i&&i!==c){const o=s?Math.max(i,r):i,c=new Fk(e,{endRow:o}),u=new Array(d).fill(1);for(const{row:e,column:o,cellHeight:a,cellWidth:l,cell:d}of c){const c=e+a-1,h=e<=r&&r<=c;e0){const n=Lk(t,c,r>1?{colspan:r}:void 0);a&&hv({table:e,writer:t,cell:n,row:i+o,column:s,scopedHeaders:l})}s+=Math.abs(r)-1}}}else{const o=lv(t,e,i,n,d);if(a)for(let n=0;n{let o=e.getAttribute("headingColumns");in-1)throw new fe("tableutils-removerows-row-index-out-of-range",this,{table:e,options:t});o.change((t=>{const o={first:s,last:r},{cellsToMove:i,cellsToTrim:a}=function(e,{first:t,last:o}){const i=new Map,n=[];for(const{row:s,column:r,cellHeight:a,cell:l}of new Fk(e,{endRow:o})){const e=s+a-1;if(s>=t&&s<=o&&e>o){const e=a-(o-s+1);i.set(r,{cell:l,rowspan:e})}if(s=t){let i;i=e>=o?o-t+1:e-t+1,n.push({cell:l,rowspan:a-i})}}return{cellsToMove:i,cellsToTrim:n}}(e,o);if(i.size){!function(e,t,o,i){const n=new Fk(e,{includeAllSlots:!0,row:t}),s=[...n],r=e.getChild(t);let a;for(const{column:e,cell:t,isAnchor:n}of s)if(o.has(e)){const{cell:t,rowspan:n}=o.get(e),s=a?i.createPositionAfter(a):i.createPositionAt(r,0);i.move(i.createRangeOn(t),s),Bk("rowspan",n,t,i),a=t}else n&&(a=t)}(e,r+1,i,t)}for(let o=r;o>=s;o--)t.remove(e.getChild(o));for(const{rowspan:e,cell:o}of a)Bk("rowspan",e,o,t);if(function(e,{first:t,last:o},i){const n=e.getAttribute("headingRows")||0;if(t=r){Bk("footerRows",o>=r?s-(i-o+1):t-1-i,e,n,0)}}(e,n,o,t),Qk(e,this)||Yk(e,this),Hk(this.editor)){let o=e.getAttribute("headingRows")||0;const i=this.getRows(e);for(;o{!function(e,t,o){const i=e.getAttribute("headingColumns")||0;if(i&&t.first=i;n--){for(const{cell:o,column:i,cellWidth:s}of[...new Fk(e)])i<=n&&s>1&&i+s>n?Bk("colspan",s-1,o,t):i===n&&t.remove(o);if(o[n]){const e=0===n?o[1]:o[n-1],i=parseFloat(o[n].getAttribute("columnWidth")),s=parseFloat(e.getAttribute("columnWidth"));t.remove(o[n]),t.setAttribute("columnWidth",i+s+"%",e)}}if(Yk(e,this)||Qk(e,this),Hk(this.editor)){let o=e.getAttribute("headingColumns")||0;const i=this.getColumns(e);for(;o{if(s>1){const{newCellsSpan:i,updatedSpan:r}=dv(s,t);Bk("colspan",r,e,o);const a={};i>1&&(a.colspan=i),n>1&&(a.rowspan=n);cv(s>t?t-1:s-1,o,o.createPositionAfter(e),a)}if(st===e)),c=a.filter((({cell:t,cellWidth:o,column:i})=>t!==e&&i===l||il));for(const{cell:e,cellWidth:t}of c)o.setAttribute("colspan",t+r,e);const d={};n>1&&(d.rowspan=n),cv(r,o,o.createPositionAfter(e),d);const u=i.getAttribute("headingColumns")||0;u>l&&Bk("headingColumns",u+r,i,o)}}))}splitCellHorizontally(e,t=2){const o=this.editor.model,i=e.parent,n=i.parent,s=n.getChildIndex(i),r=parseInt(e.getAttribute("rowspan")||"1"),a=parseInt(e.getAttribute("colspan")||"1");o.change((o=>{if(r>1){const i=[...new Fk(n,{startRow:s,endRow:s+r-1,includeAllSlots:!0})],{newCellsSpan:l,updatedSpan:c}=dv(r,t);Bk("rowspan",c,e,o);const{column:d}=i.find((({cell:t})=>t===e)),u={};l>1&&(u.rowspan=l),a>1&&(u.colspan=a);let h=0;for(const e of i){const{column:t,row:i}=e,n=t===d;h>=l&&n&&(h=0),i>=s+c&&n&&(h||cv(1,o,e.getPositionBefore(),u),h++)}}if(rs){const e=n+i;o.setAttribute("rowspan",e,t)}const d={};a>1&&(d.colspan=a),lv(o,n,s+1,i,1,d);const u=n.getAttribute("headingRows")||0;u>s&&Bk("headingRows",u+i,n,o);const h=n.getAttribute("footerRows")||0;l-h<=s&&Bk("footerRows",h+i,n,o)}}))}getColumns(e){return[...e.getChild(0).getChildren()].filter((e=>e.is("element","tableCell"))).reduce(((e,t)=>e+parseInt(t.getAttribute("colspan")||"1")),0)}getRows(e){return Array.from(e.getChildren()).reduce(((e,t)=>t.is("element","tableRow")?e+1:e),0)}createTableWalker(e,t={}){return new Fk(e,t)}getSelectedTableCells(e){const t=[];for(const o of this.sortRanges(e.getRanges())){const e=o.getContainedElement();e&&e.is("element","tableCell")&&t.push(e)}return t}setFooterRowsCount(e,t,o){if(!this.editor.config.get("table.enableFooters"))return;const i=t.getAttribute("headingRows")||0,n=this.getRows(t),s=Math.min(o,n);if(Bk("footerRows",s,t,e,0),i+s>n){const o=n-s;this.setHeadingRowsCount(e,t,o)}}setHeadingRowsCount(e,t,o,i={}){const{updateCellType:n=!0,resetFormerHeadingCells:s=!0,autoExpand:r=!0}=i,a=this.getRows(t),l=!!this.editor.config.get("table.tableCellProperties.scopedHeaders"),c=t.getAttribute("headingRows")||0;let d=Math.min(o,a);if(d===c)return;Bk("headingRows",d,t,e,0);if(d+(t.getAttribute("footerRows")||0)>a){const o=a-d;this.setFooterRowsCount(e,t,o)}if(Hk(this.editor)){if(n){for(const{cell:o,row:i,column:n}of new Fk(t,{endRow:d-1}))hv({table:t,writer:e,cell:o,row:i,column:n,scopedHeaders:l});if(s&&dc){for(;dl){for(;de.parent.index));return this._getFirstLastIndexesObject(t)}getColumnIndexes(e){const t=e[0].findAncestor("table"),o=[...new Fk(t)].filter((t=>e.includes(t.cell))).map((e=>e.column));return this._getFirstLastIndexesObject(o)}isSelectionRectangular(e){if(e.length<2||!this._areCellInTheSameTableSection(e))return!1;const t=new Set,o=new Set;let i=0;for(const n of e){const{row:e,column:s}=this.getCellLocation(n),r=parseInt(n.getAttribute("rowspan"))||1,a=parseInt(n.getAttribute("colspan"))||1;t.add(e),o.add(s),r>1&&t.add(e+r-1),a>1&&o.add(s+a-1),i+=r*a}const n=function(e,t){const o=Array.from(e.values()),i=Array.from(t.values()),n=Math.max(...o),s=Math.min(...o),r=Math.max(...i),a=Math.min(...i);return(n-s+1)*(r-a+1)}(t,o);return n==i}sortRanges(e){return Array.from(e).sort(uv)}_getFirstLastIndexesObject(e){const t=e.sort(((e,t)=>e-t));return{first:t[0],last:t[t.length-1]}}_areCellInTheSameTableSection(e){const t=e[0].findAncestor("table"),o=this.getRows(t),i=this.getRowIndexes(e),n=parseInt(t.getAttribute("headingRows"))||0,s=parseInt(t.getAttribute("footerRows"))||0;if(!this._areIndexesInSameHeadingSection(i,n)||!this._areIndexesInSameFooterSection(i,o,s))return!1;const r=this.getColumnIndexes(e),a=parseInt(t.getAttribute("headingColumns"))||0;return this._areIndexesInSameHeadingSection(r,a)}_areIndexesInSameHeadingSection({first:e,last:t},o){return e=n===t>=n}}function lv(e,t,o,i,n,s={}){const r=[];for(let a=0;a=r&&i>=a)return void e.removeAttribute("tableCellType",n);let l="header";s&&(l=o{const n=o.getAttribute("headingRows")||0,s=o.getAttribute("footerRows")||0,r=i.createContainerElement("table",null,[]),a=i.createContainerElement("figure",{class:"table"},r),l=e.getRows(o);n>0&&i.insert(i.createPositionAt(r,"end"),i.createContainerElement("thead",null,i.createSlot((e=>e.is("element","tableRow")&&e.indexe.is("element","tableRow")&&e.index>=n&&e.index0&&i.insert(i.createPositionAt(r,"end"),i.createContainerElement("tfoot",null,i.createSlot((e=>e.is("element","tableRow")&&e.index>=l-s))));for(const{positionOffset:e,filter:o}of t.additionalSlots)i.insert(i.createPositionAt(r,e),i.createSlot(o));return i.insert(i.createPositionAt(r,"after"),i.createSlot((e=>!e.is("element","tableRow")&&!t.additionalSlots.some((({filter:t})=>t(e)))))),t.asWidget?function(e,t){return t.setCustomProperty("table",!0,e),np(e,t,{hasSelectionHandle:!0})}(a,i):a}}function yv(e){return(o,{writer:i})=>{if(e.cellTypeEnabled?.()){return t(i,Nk(o.getAttribute("tableCellType"))?"th":"td")}const n=o.parent,s=n.parent,r=s.getChildIndex(n),a=new Fk(s,{row:r}),l=s.getAttribute("headingRows")||0,c=s.getAttribute("headingColumns")||0;let d=null;for(const e of a)if(e.cell==o){d=t(i,e.row{if(!t.parent.is("element","tableCell"))return null;if(!kv(t))return null;if(e.asWidget)return o.createContainerElement("span",{class:"ck-table-bogus-paragraph"});{const e=o.createContainerElement("p");return o.setCustomProperty("dataPipeline:transparentRendering",!0,e),e}}}function kv(e){return 1==e.parent.childCount&&!function(e){for(const t of e.getAttributeKeys())if(!t.startsWith("selection:")&&"htmlEmptyBlock"!=t)return!0;return!1}(e)}function vv(e){return(t,o)=>{const i=e.plugins.has("PlainTableOutput"),n=o.options.isClipboardPipeline,s=Av(e,t);return i||s||n?function(e,t,o){const i=o.plugins.get(av),n=t.writer,s=i.getRows(e),r=e.getAttribute("headingRows")||0,a=e.getAttribute("footerRows")||0,l=s-a,c=n.createSlot((e=>e.is("element","tableRow")&&e.indexe.is("element","tableRow")&&e.index>=r&&e.indexe.is("element","tableRow")&&e.index>=l)),h=n.createSlot((e=>!e.is("element","tableRow"))),m=n.createContainerElement("thead",null,c),g=n.createContainerElement("tbody",null,d),p=n.createContainerElement("tfoot",null,u),f=[];r&&f.push(m);r+a{const n=e.plugins.has("PlainTableOutput"),s=i.isClipboardPipeline,r=Av(e,t);return(n||r||s)&&"table"===t.parent.name?o.createContainerElement("caption"):null}}function Av(e,t){const o=e.plugins.has("TableLayoutEditing"),i=e.config.get("table.tableLayout.stripFigureFromContentTable")??!1,n=t.findAncestor("table",{includeSelf:!0}),s=n?.getAttribute("tableType");return o&&(i||"layout"===s)}class xv extends wc{refresh(){const e=this.editor.model,t=e.document.selection,o=e.schema;this.isEnabled=function(e,t){const o=e.getFirstPosition().parent,i=o===o.root?o:o.parent;return t.checkChild(i,"table")}(t,o)}execute(e={}){const t=this.editor,o=t.model,i=t.plugins.get("TableUtils"),n=!!t.config.get("table.enableFooters"),s=t.config.get("table.defaultHeadings.rows"),r=t.config.get("table.defaultHeadings.columns"),a=t.config.get("table.defaultFooters");void 0===e.headingRows&&s&&(e.headingRows=s),void 0===e.headingColumns&&r&&(e.headingColumns=r),n&&void 0===e.footerRows&&a&&(e.footerRows=a),!n&&"footerRows"in e&&delete e.footerRows,o.change((t=>{const n=i.createTable(t,e);o.insertObject(n,null,null,{findOptimalPosition:"auto"}),t.setSelection(t.createPositionAt(n.getNodeByPath([0,0,0]),0))}))}}class Ev extends wc{order;constructor(e,t={}){super(e),this.order=t.order||"below"}refresh(){const e=this.editor.model.document.selection,t=!!this.editor.plugins.get("TableUtils").getSelectionAffectedTableCells(e).length;this.isEnabled=t}execute(){const e=this.editor,t=e.model.document.selection,o=e.plugins.get("TableUtils"),i="above"===this.order,n=o.getSelectionAffectedTableCells(t),s=o.getRowIndexes(n),r=i?s.first:s.last,a=n[0].findAncestor("table");o.insertRows(a,{at:i?r:r+1,copyStructureFromAbove:!i})}}class Tv extends wc{order;constructor(e,t={}){super(e),this.order=t.order||"right"}refresh(){const e=this.editor.model.document.selection,t=!!this.editor.plugins.get("TableUtils").getSelectionAffectedTableCells(e).length;this.isEnabled=t}execute(){const e=this.editor,t=e.model.document.selection,o=e.plugins.get("TableUtils"),i="left"===this.order,n=o.getSelectionAffectedTableCells(t),s=o.getColumnIndexes(n),r=i?s.first:s.last,a=n[0].findAncestor("table");o.insertColumns(a,{columns:1,at:i?r:r+1})}}class Pv extends wc{direction;constructor(e,t={}){super(e),this.direction=t.direction||"horizontally"}refresh(){const e=this.editor.plugins.get("TableUtils").getSelectionAffectedTableCells(this.editor.model.document.selection);this.isEnabled=1===e.length}execute(){const e=this.editor.plugins.get("TableUtils"),t=e.getSelectionAffectedTableCells(this.editor.model.document.selection)[0];"horizontally"===this.direction?e.splitCellHorizontally(t,2):e.splitCellVertically(t,2)}}class Sv extends wc{direction;isHorizontal;constructor(e,t){super(e),this.direction=t.direction,this.isHorizontal="right"==this.direction||"left"==this.direction}refresh(){const e=this._getMergeableCell();this.value=e,this.isEnabled=!!e}execute(){const e=this.editor.model,t=e.document,o=this.editor.plugins.get("TableUtils").getTableCellsContainingSelection(t.selection)[0],i=this.value,n=this.direction;e.change((e=>{const t="right"==n||"down"==n,s=t?o:i,r=t?i:o,a=r.parent;!function(e,t,o){Iv(e)||(Iv(t)&&o.remove(o.createRangeIn(t)),o.move(o.createRangeIn(e),o.createPositionAt(t,"end")));o.remove(e)}(r,s,e);const l=this.isHorizontal?"colspan":"rowspan",c=parseInt(o.getAttribute(l)||"1"),d=parseInt(i.getAttribute(l)||"1");e.setAttribute(l,c+d,s),e.setSelection(e.createRangeIn(s));const u=this.editor.plugins.get("TableUtils");Xk(a.findAncestor("table"),u)}))}_getMergeableCell(){const e=this.editor.model.document,t=this.editor.plugins.get("TableUtils"),o=t.getTableCellsContainingSelection(e.selection)[0];if(!o)return;const i=this.isHorizontal?function(e,t,o){const i=e.parent,n=i.parent,s="right"==t?e.nextSibling:e.previousSibling,r=(n.getAttribute("headingColumns")||0)>0;if(!s)return;const a="right"==t?e:s,l="right"==t?s:e,{column:c}=o.getCellLocation(a),{column:d}=o.getCellLocation(l),u=parseInt(a.getAttribute("colspan")||"1"),h=zk(o,a),m=zk(o,l);if(r&&h!=m)return;return c+u===d?s:void 0}(o,this.direction,t):function(e,t,o){const i=e.parent,n=i.parent,s=n.getChildIndex(i),r=o.getRows(n);if("down"==t&&s===r-1||"up"==t&&0===s)return null;const a=parseInt(e.getAttribute("rowspan")||"1"),l=n.getAttribute("headingRows")||0,c=n.getAttribute("footerRows")||0,d=r-c,u="up"==t&&s===d,h="up"==t&&s===l,m="down"==t&&s+a===l,g="down"==t&&s+a===d;if(l&&(m||h))return null;if(c&&(u||g))return null;const p=parseInt(e.getAttribute("rowspan")||"1"),f="down"==t?s+p:s,b=[...new Fk(n,{endRow:f})],w=b.find((t=>t.cell===e)),y=w.column,_=b.find((({row:e,cellHeight:o,column:i})=>i===y&&("down"==t?e===f:f===e+o)));return _&&_.cell?_.cell:null}(o,this.direction,t);if(!i)return;const n=this.isHorizontal?"rowspan":"colspan",s=parseInt(o.getAttribute(n)||"1");return parseInt(i.getAttribute(n)||"1")===s?i:void 0}}function Iv(e){const t=e.getChild(0);return 1==e.childCount&&t.is("element","paragraph")&&t.isEmpty}class Rv extends wc{refresh(){const e=this.editor.plugins.get("TableUtils"),t=e.getSelectionAffectedTableCells(this.editor.model.document.selection),o=t[0];if(o){const i=o.findAncestor("table"),n=e.getRows(i)-1,s=e.getRowIndexes(t),r=0===s.first&&s.last===n;this.isEnabled=!r}else this.isEnabled=!1}execute(){const e=this.editor.model,t=this.editor.plugins.get("TableUtils"),o=t.getSelectionAffectedTableCells(e.document.selection),i=t.getRowIndexes(o),n=o[0],s=n.findAncestor("table"),r=t.getCellLocation(n).column;e.change((e=>{const o=i.last-i.first+1;t.removeRows(s,{at:i.first,rows:o});const n=function(e,t,o,i){const n=e.getChild(Math.min(t,i-1));let s=n.getChild(0),r=0;for(const e of n.getChildren()){if(r>o)return s;s=e,r+=parseInt(e.getAttribute("colspan")||"1")}return s}(s,i.first,r,t.getRows(s));e.setSelection(e.createPositionAt(n,0))}))}}class Ov extends wc{refresh(){const e=this.editor.plugins.get("TableUtils"),t=e.getSelectionAffectedTableCells(this.editor.model.document.selection),o=t[0];if(o){const i=o.findAncestor("table"),n=e.getColumns(i),{first:s,last:r}=e.getColumnIndexes(t);this.isEnabled=r-se.cell===t)).column,last:n.find((e=>e.cell===o)).column},r=function(e,t,o,i){const n=parseInt(o.getAttribute("colspan")||"1");return n>1?o:t.previousSibling||o.nextSibling?o.nextSibling||t.previousSibling:i.first?e.reverse().find((({column:e})=>ee>i.last)).cell}(n,t,o,s);this.editor.model.change((t=>{const o=s.last-s.first+1;e.removeColumns(i,{at:s.first,columns:o}),t.setSelection(t.createPositionAt(r,0))}))}}class Vv extends wc{refresh(){const e=this.editor.plugins.get("TableUtils"),t=this.editor.model,o=e.getSelectionAffectedTableCells(t.document.selection);if(0===o.length)return this.isEnabled=!1,void(this.value=!1);const i=o[0].findAncestor("table");this.isEnabled=t.schema.checkAttribute(i,"headingRows"),this.value=o.every((e=>this._isInHeading(e,e.parent.parent)))}execute(e={}){if(e.forceValue===this.value)return;const t=this.editor.plugins.get("TableUtils"),o=this.editor.model,i=t.getSelectionAffectedTableCells(o.document.selection),n=i[0].findAncestor("table"),{first:s,last:r}=t.getRowIndexes(i),a=this.value?s:r+1,l=n.getAttribute("headingRows")||0;o.change((e=>{if(a){const t=Uk(n,a,a>l?l:0);for(const{cell:o}of t)Kk(o,a,e)}t.setHeadingRowsCount(e,n,a)}))}_isInHeading(e,t){const o=parseInt(t.getAttribute("headingRows")||"0");return!!o&&e.parent.indexthis._isInFooter(e,i)))}execute(e={}){if(e.forceValue===this.value)return;const t=this.editor.plugins.get("TableUtils"),o=this.editor.model,i=t.getSelectionAffectedTableCells(o.document.selection),n=i[0].findAncestor("table"),{first:s,last:r}=t.getRowIndexes(i),a=t.getRows(n),l=this.value?a-(r+1):a-s,c=n.getAttribute("footerRows")||0;o.change((e=>{if(l){const t=a-l,o=a-c,i=Uk(n,t,t>o?o:0);for(const{cell:o}of i)Kk(o,t,e)}t.setFooterRowsCount(e,n,l)}))}_isInFooter(e,t){const o=parseInt(t.getAttribute("footerRows")||"0"),i=this.editor.plugins.get("TableUtils").getRows(t),n=e.parent.index;return!!o&&n>=i-o}}class Fv extends wc{refresh(){const e=this.editor.plugins.get("TableUtils"),t=this.editor.model,o=e.getSelectionAffectedTableCells(t.document.selection);if(0===o.length)return this.isEnabled=!1,void(this.value=!1);const i=o[0].findAncestor("table");this.isEnabled=t.schema.checkAttribute(i,"headingColumns"),this.value=o.every((t=>zk(e,t)))}execute(e={}){if(e.forceValue===this.value)return;const t=this.editor.plugins.get("TableUtils"),o=this.editor.model,i=t.getSelectionAffectedTableCells(o.document.selection),n=i[0].findAncestor("table"),{first:s,last:r}=t.getColumnIndexes(i),a=this.value?s:r+1;o.change((e=>{if(a){const t=Gk(n,a);for(const{cell:o,column:i}of t)Jk(o,i,a,e)}t.setHeadingColumnsCount(e,n,a)}))}}class Mv extends wc{refresh(){const e=this.editor.plugins.get(av),t=e.getSelectedTableCells(this.editor.model.document.selection);this.isEnabled=e.isSelectionRectangular(t)}execute(){const e=this.editor.model,t=this.editor.plugins.get(av);e.change((o=>{const i=t.getSelectedTableCells(e.document.selection),n=i.shift(),{mergeWidth:s,mergeHeight:r}=function(e,t,o){let i=0,n=0;for(const e of t){const{row:t,column:s}=o.getCellLocation(e);i=Lv(e,s,i,"colspan"),n=Lv(e,t,n,"rowspan")}const{row:s,column:r}=o.getCellLocation(e),a=i-r,l=n-s;return{mergeWidth:a,mergeHeight:l}}(n,i,t);Bk("colspan",s,n,o),Bk("rowspan",r,n,o);for(const e of i)Nv(e,n,o);Xk(n.findAncestor("table"),t),o.setSelection(n,"in")}))}}function Nv(e,t,o){Bv(e)||(Bv(t)&&o.remove(o.createRangeIn(t)),o.move(o.createRangeIn(e),o.createPositionAt(t,"end"))),o.remove(e)}function Bv(e){const t=e.getChild(0);return 1==e.childCount&&t.is("element","paragraph")&&t.isEmpty}function Lv(e,t,o,i){const n=parseInt(e.getAttribute(i)||"1");return Math.max(o,t+n)}class zv extends wc{constructor(e){super(e),this.affectsData=!1}refresh(){const e=this.editor.plugins.get("TableUtils").getSelectionAffectedTableCells(this.editor.model.document.selection);this.isEnabled=e.length>0}execute(){const e=this.editor.model,t=this.editor.plugins.get("TableUtils"),o=t.getSelectionAffectedTableCells(e.document.selection),i=t.getRowIndexes(o),n=o[0].findAncestor("table"),s=[];for(let t=i.first;t<=i.last;t++)for(const o of n.getChild(t).getChildren())s.push(e.createRangeOn(o));e.change((e=>{e.setSelection(s)}))}}class jv extends wc{constructor(e){super(e),this.affectsData=!1}refresh(){const e=this.editor.plugins.get("TableUtils").getSelectionAffectedTableCells(this.editor.model.document.selection);this.isEnabled=e.length>0}execute(){const e=this.editor.plugins.get("TableUtils"),t=this.editor.model,o=e.getSelectionAffectedTableCells(t.document.selection),i=o[0],n=o.pop(),s=i.findAncestor("table"),r=e.getCellLocation(i),a=e.getCellLocation(n),l=Math.min(r.column,a.column),c=Math.max(r.column,a.column),d=[];for(const e of new Fk(s,{startColumn:l,endColumn:c}))d.push(t.createRangeOn(e.cell));t.change((e=>{e.setSelection(d)}))}}function qv(e){e.document.registerPostFixer((t=>function(e,t){const o=t.document.differ.getChanges();let i=!1;const n=new Set;for(const t of o){let o=null;"insert"==t.type&&"table"==t.name&&(o=t.position.nodeAfter),"insert"!=t.type&&"remove"!=t.type||"tableRow"!=t.name&&"tableCell"!=t.name||(o=t.position.findAncestor("table")),Wv(t)&&(o=t.range.start.findAncestor("table")),o&&!n.has(o)&&(i=$v(o,e)||i,i=Hv(o,e)||i,n.add(o))}return i}(t,e)))}function $v(e,t){let o=!1;const i=function(e){const t=parseInt(e.getAttribute("headingRows")||"0"),o=parseInt(e.getAttribute("footerRows")||"0"),i=Array.from(e.getChildren()).reduce(((e,t)=>t.is("element","tableRow")?e+1:e),0),n=i-o,s=[];for(const{row:o,cell:r,cellHeight:a}of new Fk(e)){if(a<2)continue;let e;if(e=o=n?i:n,o+a>e){const t=e-o;s.push({cell:r,rowspan:t})}}return s}(e);if(i.length){o=!0;for(const e of i)Bk("rowspan",e.rowspan,e.cell,t,1)}return o}function Hv(e,t){let o=!1;const i=function(e){const t=new Array(e.childCount).fill(0);for(const{rowIndex:o}of new Fk(e,{includeAllSlots:!0}))t[o]++;return t}(e),n=[];for(const[t,o]of i.entries())!o&&e.getChild(t).is("element","tableRow")&&n.push(t);if(n.length){o=!0;for(const o of n.reverse())t.remove(e.getChild(o)),i.splice(o,1)}const s=i.filter(((t,o)=>e.getChild(o).is("element","tableRow"))),r=s[0];if(!s.every((e=>e===r))){const i=s.reduce(((e,t)=>t>e?t:e),0);for(const[n,r]of s.entries()){const s=i-r;if(s){for(let o=0;ofunction(e,t){const o=t.document.differ.getChanges();let i=!1;for(const t of o)"insert"==t.type&&"table"==t.name&&(i=Kv(t.position.nodeAfter,e)||i),"insert"==t.type&&"tableRow"==t.name&&(i=Gv(t.position.nodeAfter,e)||i),"insert"==t.type&&"tableCell"==t.name&&(i=Jv(t.position.nodeAfter,e)||i),"remove"!=t.type&&"insert"!=t.type||!Zv(t)||(i=Jv(t.position.parent,e)||i);return i}(t,e)))}function Kv(e,t){let o=!1;for(const i of e.getChildren())i.is("element","tableRow")&&(o=Gv(i,t)||o);return o}function Gv(e,t){let o=!1;for(const i of e.getChildren())o=Jv(i,t)||o;return o}function Jv(e,t){if(0==e.childCount)return t.insertElement("paragraph",e),!0;const o=Array.from(e.getChildren()).filter((e=>e.is("$text")));for(const e of o)t.wrap(t.createRangeOn(e),"paragraph");return!!o.length}function Zv(e){return!!e.position.parent.is("element","tableCell")&&("insert"==e.type&&"$text"==e.name||"remove"==e.type)}function Qv(e,t,o){const i=o.getAttribute("headingRows")||0,n=o.getAttribute("footerRows")||0,s=e.getRows(o);if(i+n>s){return Bk("footerRows",Math.max(0,s-i),o,t,0),!0}return!1}function Yv(e,t){if(!e.is("element","paragraph"))return!1;const o=t.toViewElement(e);return!!o&&kv(e)!==o.is("element","span")}class Xv extends fc{_additionalSlots;static get pluginName(){return"TableEditing"}static get isOfficialPlugin(){return!0}static get requires(){return[av]}constructor(e){super(e),this._additionalSlots=[]}init(){const e=this.editor,t=e.model,o=t.schema,i=e.conversion,n=e.plugins.get(av);e.config.define("table.enableFooters",!1);const s=!!e.config.get("table.enableFooters");o.register("table",{inheritAllFrom:"$blockObject",allowAttributes:["headingRows","headingColumns",...s?["footerRows"]:[]]}),o.register("tableRow",{allowIn:"table",isLimit:!0}),o.register("tableCell",{allowContentOf:"$container",allowIn:"tableRow",allowAttributes:["colspan","rowspan"],isLimit:!0,isSelectable:!0}),i.for("upcast").add((e=>{e.on("element:figure",((e,t,o)=>{if(!o.consumable.test(t.viewItem,{name:!0,classes:"table"}))return;const i=ov(t.viewItem);if(!i||!o.consumable.test(i,{name:!0}))return;o.consumable.consume(t.viewItem,{name:!0,classes:"table"});const n=o.convertItem(i,t.modelCursor),s=to(n.modelRange.getItems());if(!s||!s.is("element","table"))return o.consumable.revert(t.viewItem,{name:!0,classes:"table"}),void(n.modelRange&&!n.modelRange.isCollapsed&&(t.modelRange=n.modelRange,t.modelCursor=n.modelCursor));o.convertChildren(t.viewItem,o.writer.createPositionAt(s,"end")),o.updateConversionResult(s,t)}))})),i.for("upcast").add(iv({enableFooters:s})),i.for("editingDowncast").elementToStructure({model:{name:"table",attributes:["headingRows",...s?["footerRows"]:[]]},view:wv(n,{asWidget:!0,additionalSlots:this._additionalSlots})}),i.for("dataDowncast").elementToStructure({model:{name:"table",attributes:["headingRows",...s?["footerRows"]:[]]},view:wv(n,{additionalSlots:this._additionalSlots})}),i.for("upcast").elementToElement({model:"tableRow",view:"tr"}),i.for("upcast").add((e=>{e.on("element:tr",((e,t)=>{t.viewItem.isEmpty&&0==t.modelCursor.index&&e.stop()}),{priority:"high"})})),i.for("downcast").elementToElement({model:"tableRow",view:(e,{writer:t})=>e.isEmpty?t.createEmptyElement("tr"):t.createContainerElement("tr")}),i.for("upcast").elementToElement({model:"tableCell",view:"td"}),i.for("upcast").elementToElement({model:"tableCell",view:"th"}),i.for("upcast").add(nv("td")),i.for("upcast").add(nv("th")),i.for("editingDowncast").elementToElement({model:"tableCell",view:yv({asWidget:!0,cellTypeEnabled:()=>Hk(this.editor)})}),i.for("dataDowncast").elementToElement({model:"tableCell",view:yv({cellTypeEnabled:()=>Hk(this.editor)})}),i.for("editingDowncast").elementToElement({model:"paragraph",view:_v({asWidget:!0}),converterPriority:"high"}),i.for("dataDowncast").elementToElement({model:"paragraph",view:_v(),converterPriority:"high"}),i.for("downcast").attributeToAttribute({model:"colspan",view:"colspan"}),i.for("upcast").attributeToAttribute({model:{key:"colspan",value:eC("colspan")},view:"colspan"}),i.for("downcast").attributeToAttribute({model:"rowspan",view:"rowspan"}),i.for("upcast").attributeToAttribute({model:{key:"rowspan",value:eC("rowspan")},view:"rowspan"}),this._addPlainTableOutputConverters(),e.config.define("table.defaultHeadings.rows",0),e.config.define("table.defaultHeadings.columns",0),e.config.define("table.defaultFooters",0),e.config.define("table.showHiddenBorders",!0),e.config.get("table.showHiddenBorders")&&e.editing.view.change((t=>{for(const o of e.editing.view.document.roots)t.addClass("ck-table-show-hidden-borders",o)})),e.commands.add("insertTable",new xv(e)),e.commands.add("insertTableRowAbove",new Ev(e,{order:"above"})),e.commands.add("insertTableRowBelow",new Ev(e,{order:"below"})),e.commands.add("insertTableColumnLeft",new Tv(e,{order:"left"})),e.commands.add("insertTableColumnRight",new Tv(e,{order:"right"})),e.commands.add("removeTableRow",new Rv(e)),e.commands.add("removeTableColumn",new Ov(e)),e.commands.add("splitTableCellVertically",new Pv(e,{direction:"vertically"})),e.commands.add("splitTableCellHorizontally",new Pv(e,{direction:"horizontally"})),e.commands.add("mergeTableCells",new Mv(e)),e.commands.add("mergeTableCellRight",new Sv(e,{direction:"right"})),e.commands.add("mergeTableCellLeft",new Sv(e,{direction:"left"})),e.commands.add("mergeTableCellDown",new Sv(e,{direction:"down"})),e.commands.add("mergeTableCellUp",new Sv(e,{direction:"up"})),e.commands.add("setTableColumnHeader",new Fv(e)),e.commands.add("setTableRowHeader",new Vv(e)),s&&e.commands.add("setTableFooterRow",new Dv(e)),e.commands.add("selectTableRow",new zv(e)),e.commands.add("selectTableColumn",new jv(e)),qv(t),Uv(t),s&&function(e){const{model:t}=e,o=e.plugins.get(av);t.document.registerPostFixer((e=>{let i=!1;const n=t.document.differ.getChanges(),s=new Set;for(const e of n){let t=null;"attribute"!=e.type||"headingRows"!=e.attributeKey&&"footerRows"!=e.attributeKey?("insert"==e.type&&"tableRow"==e.name||"remove"==e.type&&"tableRow"==e.name)&&(t=e.position.parent):t=e.range.start.nodeAfter,t&&t.is("element","table")&&s.add(t)}for(const t of s)Qv(o,e,t)&&(i=!0);return i}))}(e),this.listenTo(t.document,"change:data",(()=>{Hk(e)||function(e,t){const o=e.document.differ,i=new Set,n=new Set,s=new Set;for(const e of o.getChanges()){let o;if("attribute"==e.type){const t=e.range.start.nodeAfter;if(!t||!t.is("element","table"))continue;if("headingRows"!=e.attributeKey&&"headingColumns"!=e.attributeKey&&"footerRows"!=e.attributeKey)continue;o=t}else"tableRow"!=e.name&&"tableCell"!=e.name||(o=e.position.findAncestor("table"));if(!o)continue;"insert"==e.type&&"tableRow"==e.name&&t.mapper.toViewElement(e.position.nodeAfter)&&i.add(e.position.nodeAfter);const r=o.getAttribute("headingRows")||0,a=o.getAttribute("headingColumns")||0,l=new Fk(o);for(const e of l){const o=t.mapper.toViewElement(e.cell);if(!o||!o.is("element"))continue;const l=e.rowYv(e,t.mapper)));for(const e of o)t.reconvertItem(e)}}(t,e.editing)}))}registerAdditionalSlot(e){this._additionalSlots.push(e)}_addPlainTableOutputConverters(){const e=this.editor;e.conversion.for("dataDowncast").elementToStructure({model:"table",view:vv(e),converterPriority:"high"}),e.plugins.has("TableCaptionEditing")&&e.conversion.for("dataDowncast").elementToElement({model:"caption",view:Cv(e),converterPriority:"high"}),e.plugins.has("TablePropertiesEditing")&&function(e){const t={"border-width":"tableBorderWidth","border-color":"tableBorderColor","border-style":"tableBorderStyle","background-color":"tableBackgroundColor"};for(const[o,i]of Object.entries(t))e.conversion.for("dataDowncast").add((t=>t.on(`attribute:${i}:table`,((t,i,n)=>{const{item:s,attributeNewValue:r}=i,{mapper:a,writer:l}=n,c=e.plugins.has("PlainTableOutput"),d=n.options.isClipboardPipeline,u=Av(e,s);if(!(c||u||d))return;if(!n.consumable.consume(s,t.name))return;const h=a.toViewElement(s);r?l.setStyle(o,r,h):l.removeStyle(o,h)}),{priority:"high"})))}(e)}}function eC(e){return t=>{const o=parseInt(t.getAttribute(e));return Number.isNaN(o)||o<=0?null:o}}class tC extends Au{items;keystrokes;focusTracker;constructor(e){super(e);const t=this.bindTemplate;this.items=this._createGridCollection(),this.keystrokes=new ro,this.focusTracker=new oo,this.set("rows",0),this.set("columns",0),this.bind("label").to(this,"columns",this,"rows",((e,t)=>`${t} × ${e}`)),this.setTemplate({tag:"div",attributes:{class:["ck"]},children:[{tag:"div",attributes:{class:["ck-insert-table-dropdown__grid"]},on:{"mouseover@.ck-insert-table-dropdown-grid-box":t.to("boxover")},children:this.items},{tag:"div",attributes:{class:["ck","ck-insert-table-dropdown__label"],"aria-hidden":!0},children:[{text:t.to("label")}]}],on:{mousedown:t.to((e=>{e.preventDefault()})),click:t.to((()=>{this.fire("execute")}))}}),this.on("boxover",((e,t)=>{const{row:o,column:i}=t.target.dataset;this.items.get(10*(parseInt(o,10)-1)+(parseInt(i,10)-1)).focus()})),this.focusTracker.on("change:focusedElement",((e,t,o)=>{if(!o)return;const{row:i,column:n}=o.dataset;this.set({rows:parseInt(i),columns:parseInt(n)})})),this.on("change:columns",(()=>this._highlightGridBoxes())),this.on("change:rows",(()=>this._highlightGridBoxes()))}render(){super.render(),Vu({keystrokeHandler:this.keystrokes,focusTracker:this.focusTracker,gridItems:this.items,numberOfColumns:10,uiLanguageDirection:this.locale&&this.locale.uiLanguageDirection});for(const e of this.items)this.focusTracker.add(e.element);this.keystrokes.listenTo(this.element)}reset(){this.set({rows:1,columns:1})}focus(){this.items.get(0).focus()}focusLast(){this.items.get(0).focus()}_highlightGridBoxes(){const e=this.rows,t=this.columns;this.items.map(((o,i)=>{const n=Math.floor(i/10){const i=e.commands.get("insertTable"),n=Zh(o);let s;return n.bind("isEnabled").to(i),n.buttonView.set({icon:od,label:t("Insert table"),tooltip:!0}),n.on("change:isOpen",(()=>{s||(s=new tC(o),n.panelView.children.add(s),s.delegate("execute").to(n),n.on("execute",(()=>{e.execute("insertTable",{rows:s.rows,columns:s.columns}),e.editing.view.focus()})))})),n})),e.ui.componentFactory.add("menuBar:insertTable",(o=>{const i=e.commands.get("insertTable"),n=new og(o),s=new tC(o);return s.delegate("execute").to(n),n.on("change:isOpen",((e,t,o)=>{o||s.reset()})),s.on("execute",(()=>{e.execute("insertTable",{rows:s.rows,columns:s.columns}),e.editing.view.focus()})),n.buttonView.set({label:t("Table"),icon:od}),n.panelView.children.add(s),n.bind("isEnabled").to(i),n})),e.ui.componentFactory.add("tableColumn",(e=>{const i=[{type:"switchbutton",model:{commandName:"setTableColumnHeader",label:t("Header column"),bindIsOn:!0}},{type:"separator"},{type:"button",model:{commandName:o?"insertTableColumnLeft":"insertTableColumnRight",label:t("Insert column left")}},{type:"button",model:{commandName:o?"insertTableColumnRight":"insertTableColumnLeft",label:t("Insert column right")}},{type:"button",model:{commandName:"removeTableColumn",label:t("Delete column")}},{type:"button",model:{commandName:"selectTableColumn",label:t("Select column")}}];return this._prepareDropdown(t("Column"),'',i,e)})),e.ui.componentFactory.add("tableRow",(e=>{const o=[{type:"switchbutton",model:{commandName:"setTableRowHeader",label:t("Header row"),bindIsOn:!0}},i&&{type:"switchbutton",model:{commandName:"setTableFooterRow",label:t("Footer row"),bindIsOn:!0}},{type:"separator"},{type:"button",model:{commandName:"insertTableRowAbove",label:t("Insert row above")}},{type:"button",model:{commandName:"insertTableRowBelow",label:t("Insert row below")}},{type:"button",model:{commandName:"removeTableRow",label:t("Delete row")}},{type:"button",model:{commandName:"selectTableRow",label:t("Select row")}}].filter(Boolean);return this._prepareDropdown(t("Row"),'',o,e)})),e.ui.componentFactory.add("mergeTableCells",(e=>{const i=[{type:"button",model:{commandName:"mergeTableCellUp",label:t("Merge cell up")}},{type:"button",model:{commandName:o?"mergeTableCellRight":"mergeTableCellLeft",label:t("Merge cell right")}},{type:"button",model:{commandName:"mergeTableCellDown",label:t("Merge cell down")}},{type:"button",model:{commandName:o?"mergeTableCellLeft":"mergeTableCellRight",label:t("Merge cell left")}},{type:"separator"},{type:"button",model:{commandName:"splitTableCellVertically",label:t("Split cell vertically")}},{type:"button",model:{commandName:"splitTableCellHorizontally",label:t("Split cell horizontally")}}];return this._prepareMergeSplitButtonDropdown(t("Merge cells"),'',i,e)}))}_prepareDropdown(e,t,o,i){const n=this.editor,s=Zh(i),r=this._fillDropdownWithListOptions(s,o);return s.buttonView.set({label:e,icon:t,tooltip:!0}),s.bind("isEnabled").toMany(r,"isEnabled",((...e)=>e.some((e=>e)))),this.listenTo(s,"execute",(e=>{n.execute(e.source.commandName),e.source instanceof fh||n.editing.view.focus()})),s}_prepareMergeSplitButtonDropdown(e,t,o,i){const n=this.editor,s=Zh(i,Jh),r="mergeTableCells",a=n.commands.get(r),l=this._fillDropdownWithListOptions(s,o);return s.buttonView.set({label:e,icon:t,tooltip:!0,isEnabled:!0}),s.bind("isEnabled").toMany([a,...l],"isEnabled",((...e)=>e.some((e=>e)))),this.listenTo(s.buttonView,"execute",(()=>{n.execute(r),n.editing.view.focus()})),this.listenTo(s,"execute",(e=>{n.execute(e.source.commandName),n.editing.view.focus()})),s}_fillDropdownWithListOptions(e,t){const o=this.editor,i=[],n=new eo;for(const e of t)iC(e,o,i,n);return Xh(e,n),i}}function iC(e,t,o,i){if("button"===e.type||"switchbutton"===e.type){const i=e.model=new Jm(e.model),{commandName:n,bindIsOn:s}=e.model,r=t.commands.get(n);o.push(r),i.set({commandName:n}),i.bind("isEnabled").to(r),s&&i.bind("isOn").to(r,"value"),i.set({withText:!0})}i.add(e)}class nC extends fc{static get pluginName(){return"TableSelection"}static get isOfficialPlugin(){return!0}static get requires(){return[av,av]}init(){const e=this.editor,t=e.model,o=e.editing.view;this.listenTo(t,"deleteContent",((e,t)=>this._handleDeleteContent(e,t)),{priority:"high"}),this.listenTo(o.document,"insertText",((e,t)=>this._handleInsertTextEvent(e,t)),{priority:"high"}),this._defineSelectionConverter(),this._enablePluginDisabling()}getSelectedTableCells(){const e=this.editor.plugins.get(av),t=this.editor.model.document.selection,o=e.getSelectedTableCells(t);return 0==o.length?null:o}getSelectionAsFragment(){const e=this.editor.plugins.get(av),t=this.getSelectedTableCells();return t?this.editor.model.change((o=>{const i=o.createDocumentFragment(),{first:n,last:s}=e.getColumnIndexes(t),{first:r,last:a}=e.getRowIndexes(t),l=t[0].findAncestor("table");let c=a,d=s;if(e.isSelectionRectangular(t)){const e={firstColumn:n,lastColumn:s,firstRow:r,lastRow:a};c=ev(l,e),d=tv(l,e)}const u=Wk(l,{startRow:r,startColumn:n,endRow:c,endColumn:d},o);return o.insert(u,i,0),i})):null}setCellSelection(e,t){const o=this._getCellsToSelect(e,t);this.editor.model.change((e=>{e.setSelection(o.cells.map((t=>e.createRangeOn(t))),{backward:o.backward})}))}getFocusCell(){const e=[...this.editor.model.document.selection.getRanges()].pop().getContainedElement();return e&&e.is("element","tableCell")?e:null}getAnchorCell(){const e=to(this.editor.model.document.selection.getRanges()).getContainedElement();return e&&e.is("element","tableCell")?e:null}_defineSelectionConverter(){const e=this.editor,t=new Set;e.conversion.for("editingDowncast").add((e=>e.on("selection",((e,o,i)=>{const n=i.writer;!function(e){for(const o of t)e.removeClass("ck-editor__editable_selected",o);t.clear()}(n);const s=this.getSelectedTableCells();if(!s)return;for(const e of s){const o=i.mapper.toViewElement(e);n.addClass("ck-editor__editable_selected",o),t.add(o)}const r=i.mapper.toViewElement(s[s.length-1]);n.setSelection(r,0)}),{priority:"lowest"})))}_enablePluginDisabling(){const e=this.editor;this.on("change:isEnabled",(()=>{if(!this.isEnabled){const t=this.getSelectedTableCells();if(!t)return;e.model.change((o=>{const i=o.createPositionAt(t[0],0),n=e.model.schema.getNearestSelectionRange(i);o.setSelection(n)}))}}))}_handleDeleteContent(e,t){const o=this.editor.plugins.get(av),i=t[0],n=t[1],s=this.editor.model,r=!n||"backward"==n.direction,a=o.getSelectedTableCells(i);a.length&&(e.stop(),s.change((e=>{const t=a[r?a.length-1:0];s.change((e=>{for(const t of a)s.deleteContent(e.createSelection(t,"in"))}));const o=s.schema.getNearestSelectionRange(e.createPositionAt(t,0));i.is("documentSelection")?e.setSelection(o):i.setTo(o)})))}_handleInsertTextEvent(e,t){const o=this.editor,i=this.getSelectedTableCells();if(!i)return;const n=o.editing.view,s=o.editing.mapper,r=i.map((e=>n.createRangeOn(s.toViewElement(e))));t.selection=n.createSelection(r),t.preventDefault()}_getCellsToSelect(e,t){const o=this.editor.plugins.get("TableUtils"),i=o.getCellLocation(e),n=o.getCellLocation(t),s=Math.min(i.row,n.row),r=Math.max(i.row,n.row),a=Math.min(i.column,n.column),l=parseInt(t.getAttribute("colspan")||"1")-1,c=Math.max(i.column,n.column+l),d=new Array(r-s+1).fill(null).map((()=>[])),u={startRow:s,endRow:r,startColumn:a,endColumn:c};for(const{row:t,cell:o}of new Fk(e.findAncestor("table"),u))d[t-s].push(o);const h=n.rowe.reverse())),{cells:d.flat(),backward:h||m}}}class sC extends fc{static get pluginName(){return"TableClipboard"}static get isOfficialPlugin(){return!0}static get requires(){return[ff,bf,nC,av]}init(){const e=this.editor.editing.view.document;this.listenTo(e,"copy",((e,t)=>this._onCopyCut(e,t))),this.listenTo(e,"cut",((e,t)=>this._onCopyCut(e,t))),this._listenToContentInsertion(),this.decorate("_replaceTableSlotCell")}_listenToContentInsertion(){const{editor:e}=this,t=e.plugins.get(bf),o=e.plugins.get(nC);let i=!1;t.on("contentInsertion",((e,t)=>{i="paste"===t.method})),this.listenTo(e.model,"insertContent",((e,[t,n])=>{(i||null!==o.getSelectedTableCells())&&this._onInsertContent(e,t,n)}),{priority:"high"}),t.on("contentInsertion",(()=>{i=!1}),{priority:"lowest"})}_onCopyCut(e,t){const o=this.editor.editing.view,i=this.editor.plugins.get(nC),n=this.editor.plugins.get(ff);i.getSelectedTableCells()&&("cut"!=e.name||this.editor.model.canEditAt(this.editor.model.document.selection))&&(t.preventDefault(),e.stop(),this.editor.model.enqueueChange({isUndoable:"cut"===e.name},(()=>{const s=n._copySelectedFragmentWithMarkers(e.name,this.editor.model.document.selection,(()=>i.getSelectionAsFragment()));o.document.fire("clipboardOutput",{dataTransfer:t.dataTransfer,content:this.editor.data.toView(s),method:e.name})})))}_onInsertContent(e,t,o){if(o&&!o.is("documentSelection"))return;const i=this.editor.model,n=this.editor.plugins.get(av),s=this.editor.plugins.get(ff),r=this.getTableIfOnlyTableInContent(t,i);if(!r)return;const a=n.getSelectionAffectedTableCells(i.document.selection);a.length?(e.stop(),t.is("documentFragment")?s._pasteMarkersIntoTransformedElement(t.markers,(e=>this._replaceSelectedCells(r,a,e))):this.editor.model.change((e=>{this._replaceSelectedCells(r,a,e)}))):Xk(r,n)}_replaceSelectedCells(e,t,o){const i=this.editor.plugins.get(av),n={width:i.getColumns(e),height:i.getRows(e)},s=function(e,t,o,i){const n=e[0].findAncestor("table"),s=i.getColumnIndexes(e),r=i.getRowIndexes(e),a={firstColumn:s.first,lastColumn:s.last,firstRow:r.first,lastRow:r.last},l=1===e.length;l&&(a.lastRow+=t.height-1,a.lastColumn+=t.width-1,function(e,t,o,i){const n=i.getColumns(e),s=i.getRows(e);o>n&&i.insertColumns(e,{at:n,columns:o-n});t>s&&i.insertRows(e,{at:s,rows:t-s})}(n,a.lastRow+1,a.lastColumn+1,i));l||!i.isSelectionRectangular(e)?function(e,t,o){const{firstRow:i,lastRow:n,firstColumn:s,lastColumn:r}=t,a={first:i,last:n},l={first:s,last:r};aC(e,s,a,o),aC(e,r+1,a,o),rC(e,i,l,o),rC(e,n+1,l,o,i)}(n,a,o):(a.lastRow=ev(n,a),a.lastColumn=tv(n,a));return a}(t,n,o,i),r=s.lastRow-s.firstRow+1,a=s.lastColumn-s.firstColumn+1;e=Wk(e,{startRow:0,startColumn:0,endRow:Math.min(r,n.height)-1,endColumn:Math.min(a,n.width)-1},o);const l=t[0].findAncestor("table"),c=this._replaceSelectedCellsWithPasted(e,n,l,s,o,i);if(this.editor.plugins.get("TableSelection").isEnabled){const e=i.sortRanges(c.map((e=>o.createRangeOn(e))));o.setSelection(e)}else o.setSelection(c[0],0);return l}_replaceSelectedCellsWithPasted(e,t,o,i,n,s){const{width:r,height:a}=t,l=function(e,t,o){const i=new Array(o).fill(null).map((()=>new Array(t).fill(null)));for(const{column:t,row:o,cell:n}of new Fk(e))i[o][t]=n;return i}(e,r,a),c=[...new Fk(o,{startRow:i.firstRow,endRow:i.lastRow,startColumn:i.firstColumn,endColumn:i.lastColumn,includeAllSlots:!0})],d=[];let u;for(const e of c){const{row:t,column:o}=e;o===i.firstColumn&&(u=e.getPositionBefore());const s=t-i.firstRow,c=o-i.firstColumn,h=l[s%a][c%r],m=h?n.cloneElement(h):null,g=this._replaceTableSlotCell(e,m,u,n);g&&(Zk(g,t,o,i.lastRow,i.lastColumn,n),d.push(g),u=n.createPositionAfter(g))}const h=parseInt(o.getAttribute("headingRows")||"0"),m=parseInt(o.getAttribute("headingColumns")||"0"),g=parseInt(o.getAttribute("footerRows")||"0"),p=s.getRows(o)-g,f=i.firstRowlC(e,t,o))).map((({cell:e})=>Kk(e,t,i)))}function aC(e,t,o,i){if(t<1)return;return Gk(e,t).filter((({row:e,cellHeight:t})=>lC(e,t,o))).map((({cell:e,column:o})=>Jk(e,o,t,i)))}function lC(e,t,o){const i=e+t-1,{first:n,last:s}=o;return e>=n&&e<=s||e=n}class cC extends fc{static get pluginName(){return"TableKeyboard"}static get isOfficialPlugin(){return!0}static get requires(){return[nC,av]}init(){const e=this.editor,t=e.editing.view.document,o=e.t;this.listenTo(t,"arrowKey",((...e)=>this._onArrowKey(...e)),{context:"table"}),this.listenTo(t,"tab",((...e)=>this._handleTabOnSelectedTable(...e)),{context:"figure"}),this.listenTo(t,"tab",((...e)=>this._handleTab(...e)),{context:["th","td"]}),e.accessibility.addKeystrokeInfoGroup({id:"table",label:o("Keystrokes that can be used in a table cell"),keystrokes:[{label:o("Move the selection to the next cell"),keystroke:"Tab"},{label:o("Move the selection to the previous cell"),keystroke:"Shift+Tab"},{label:o("Insert a new table row (when in the last cell of a table)"),keystroke:"Tab"},{label:o("Navigate through the table"),keystroke:[["arrowup"],["arrowright"],["arrowdown"],["arrowleft"]]}]})}_handleTabOnSelectedTable(e,t){const o=this.editor.model.document.selection.getSelectedElement();o&&o.is("element","table")&&t.stopPropagation()}_handleTab(e,t){const o=this.editor,i=this.editor.plugins.get(av),n=this.editor.plugins.get("TableSelection"),s=o.model.document.selection,r=!t.shiftKey;let a=i.getTableCellsContainingSelection(s)[0];if(a||(a=n.getFocusCell()),!a)return;t.stopPropagation();const l=a.parent,c=l.parent,d=c.getChildIndex(l),u=l.getChildIndex(a)===l.childCount-1,h=d===i.getRows(c)-1;r&&h&&u&&o.execute("insertTableRowBelow")}_onArrowKey(e,t){const o=this.editor,i=Kt(t.keyCode,o.locale.contentLanguageDirection);this._handleArrowKeys(i,t.shiftKey)&&(t.preventDefault(),t.stopPropagation(),e.stop())}_handleArrowKeys(e,t){const o=this.editor.plugins.get(av),i=this.editor.plugins.get("TableSelection"),n=this.editor.model,s=n.document.selection,r=["right","down"].includes(e),a=o.getSelectedTableCells(s);if(a.length){let o;return o=t?i.getFocusCell():r?a[a.length-1]:a[0],this._navigateFromCellInDirection(o,e,t),!0}const l=s.focus.findAncestor("tableCell");if(!l)return!1;if(!s.isCollapsed)if(t){if(s.isBackward==r&&!s.containsEntireContent(l))return!1}else{const e=s.getSelectedElement();if(!e||!n.schema.isObject(e))return!1}return!!this._isSelectionAtCellEdge(s,l,r)&&(this._navigateFromCellInDirection(l,e,t),!0)}_isSelectionAtCellEdge(e,t,o){const i=this.editor.model,n=this.editor.model.schema,s=o?e.getLastPosition():e.getFirstPosition();if(!n.getLimitElement(s).is("element","tableCell")){return i.createPositionAt(t,o?"end":0).isTouching(s)}const r=i.createSelection(s);return i.modifySelection(r,{direction:o?"forward":"backward"}),s.isEqual(r.focus)}_navigateFromCellInDirection(e,t,o=!1){const i=this.editor.model,n=e.findAncestor("table"),s=[...new Fk(n,{includeAllSlots:!0})],{row:r,column:a}=s[s.length-1],l=s.find((({cell:t})=>t==e));let{row:c,column:d}=l;switch(t){case"left":d--;break;case"up":c--;break;case"right":d+=l.cellWidth;break;case"down":c+=l.cellHeight}if(c<0||c>r||d<0&&c<=0||d>a&&c>=r)return void i.change((e=>{e.setSelection(e.createRangeOn(n))}));d<0?(d=o?0:a,c--):d>a&&(d=o?a:0,c++);const u=s.find((e=>e.row==c&&e.column==d)).cell,h=["right","down"].includes(t),m=this.editor.plugins.get("TableSelection");if(o&&m.isEnabled){const t=m.getAnchorCell()||e;m.setCellSelection(t,u)}else{const e=i.createPositionAt(u,h?0:"end");i.change((t=>{t.setSelection(e)}))}}}class dC extends jn{domEventType=["mousemove","mouseleave"];onDomEvent(e){this.fire(e.type,e)}}class uC extends fc{static get pluginName(){return"TableMouse"}static get isOfficialPlugin(){return!0}static get requires(){return[nC,av]}init(){this.editor.editing.view.addObserver(dC),this._enableShiftClickSelection(),this._enableMouseDragSelection()}_enableShiftClickSelection(){const e=this.editor,t=e.plugins.get(av);let o=!1;const i=e.plugins.get(nC);this.listenTo(e.editing.view.document,"mousedown",((n,s)=>{const r=e.model.document.selection;if(!this.isEnabled||!i.isEnabled)return;if(!s.domEvent.shiftKey)return;const a=i.getAnchorCell()||t.getTableCellsContainingSelection(r)[0];if(!a)return;const l=this._getModelTableCellFromDomEvent(s);l&&hC(a,l)&&(o=!0,i.setCellSelection(a,l),s.preventDefault())})),this.listenTo(e.editing.view.document,"mouseup",(()=>{o=!1})),this.listenTo(e.editing.view.document,"selectionChange",(e=>{o&&e.stop()}),{priority:"highest"})}_enableMouseDragSelection(){const e=this.editor;let t,o,i=!1,n=!1;const s=e.plugins.get(nC);this.listenTo(e.editing.view.document,"mousedown",((e,o)=>{this.isEnabled&&s.isEnabled&&(o.domEvent.shiftKey||o.domEvent.ctrlKey||o.domEvent.altKey||(t=this._getModelTableCellFromDomEvent(o)))})),this.listenTo(e.editing.view.document,"mousemove",((e,r)=>{if(!r.domEvent.buttons)return;if(!t)return;const a=this._getModelTableCellFromDomEvent(r);a&&hC(t,a)&&(o=a,i||o==t||(i=!0)),i&&(n=!0,s.setCellSelection(t,o),r.preventDefault())})),this.listenTo(e.editing.view.document,"mouseup",(()=>{i=!1,n=!1,t=null,o=null})),this.listenTo(e.editing.view.document,"selectionChange",(e=>{n&&e.stop()}),{priority:"highest"})}_getModelTableCellFromDomEvent(e){const t=e.target,o=this.editor.editing.view.createPositionAt(t,0);return this.editor.editing.mapper.toModelPosition(o).parent.findAncestor("tableCell",{includeSelf:!0})}}function hC(e,t){return e.parent.parent==t.parent.parent}class mC extends fc{static get requires(){return[Xv,oC,nC,uC,cC,sC,vp]}static get pluginName(){return"Table"}static get isOfficialPlugin(){return!0}}function gC(e){const t=pC(e);return t||fC(e)}function pC(e){const t=e.getSelectedElement();return t&&bC(t)?t:null}function fC(e){const t=e.getFirstPosition();if(!t)return null;let o=t.parent;for(;o;){if(o.is("element")&&bC(o))return o;o=o.parent}return null}function bC(e){return e.is("element")&&!!e.getCustomProperty("table")&&ip(e)}class wC extends Au{options;focusTracker;focusCycler;_focusables;dropdownView;inputView;keystrokes;_stillTyping;constructor(e,t){super(e),this.set("value",""),this.set("isReadOnly",!1),this.set("isFocused",!1),this.set("isEmpty",!0),this.options=t,this.focusTracker=new oo,this._focusables=new tu,this.dropdownView=this._createDropdownView(),this.inputView=this._createInputTextView(),this.keystrokes=new ro,this._stillTyping=!1,this.focusCycler=new qu({focusables:this._focusables,focusTracker:this.focusTracker,keystrokeHandler:this.keystrokes,actions:{focusPrevious:"shift + tab",focusNext:"tab"}}),this.setTemplate({tag:"div",attributes:{class:["ck","ck-input-color"]},children:[this.dropdownView,this.inputView]}),this.on("change:value",((e,t,o)=>this._setInputValue(o)))}render(){super.render(),[this.inputView,this.dropdownView.buttonView].forEach((e=>{this.focusTracker.add(e.element),this._focusables.add(e)})),this.keystrokes.listenTo(this.element)}focus(e){-1===e?this.focusCycler.focusLast():this.focusCycler.focusFirst()}destroy(){super.destroy(),this.focusTracker.destroy(),this.keystrokes.destroy()}_createDropdownView(){const e=this.locale,t=e.t,o=this.bindTemplate,i=this._createColorSelector(e),n=Zh(e),s=new Au;return s.setTemplate({tag:"span",attributes:{class:["ck","ck-input-color__button__preview"],style:{backgroundColor:o.to("value")}},children:[{tag:"span",attributes:{class:["ck","ck-input-color__button__preview__no-color-indicator",o.if("value","ck-hidden",(e=>""!=e))]}}]}),n.buttonView.extendTemplate({attributes:{class:"ck-input-color__button"}}),n.buttonView.children.add(s),n.buttonView.label=t("Color picker"),n.buttonView.tooltip=!0,n.panelPosition="rtl"===e.uiLanguageDirection?"se":"sw",n.panelView.children.add(i),n.bind("isEnabled").to(this,"isReadOnly",(e=>!e)),n.on("change:isOpen",((e,t,o)=>{o&&(i.updateSelectedColors(),i.showColorGridsFragment())})),n}_createInputTextView(){const e=this.locale,t=new Oh(e);return t.extendTemplate({on:{blur:t.bindTemplate.to("blur")}}),t.value=this.value,t.bind("isReadOnly","hasError").to(this),this.bind("isFocused","isEmpty").to(t),t.on("input",(()=>{const e=t.element.value,o=this.options.colorDefinitions.find((t=>e===t.label));this._stillTyping=!0,this.value=o&&o.color||e})),t.on("blur",(()=>{this._stillTyping=!1,this._setInputValue(t.element.value)})),t.delegate("input").to(this),t}_createColorSelector(e){const t=e.t,o=this.options.defaultColorValue||"",i=t(o?"Restore default":"Remove color"),n=new fm(e,{colors:this.options.colorDefinitions,columns:this.options.columns,removeButtonLabel:i,colorPickerLabel:t("Color picker"),colorPickerViewConfig:!1!==this.options.colorPickerConfig&&{...this.options.colorPickerConfig,hideInput:!0}});n.appendUI(),n.on("execute",((e,t)=>{"colorPickerSaveButton"!==t.source?(this.value=t.value||o,this.fire("input"),"colorPicker"!==t.source&&(this.dropdownView.isOpen=!1)):this.dropdownView.isOpen=!1}));let s=this.value;return n.on("colorPicker:cancel",(()=>{this.value=s,this.fire("input"),this.dropdownView.isOpen=!1})),n.colorGridsFragmentView.colorPickerButtonView.on("execute",(()=>{s=this.value})),n.bind("selectedColor").to(this,"value"),n}_setInputValue(e){if(!this._stillTyping){const t=yC(e),o=this.options.colorDefinitions.find((e=>t===yC(e.color)));this.inputView.value=o?o.label:e||""}}}function yC(e){return e.replace(/([(,])\s+/g,"$1").replace(/^\s+|\s+(?=[),\s]|$)/g,"").replace(/,|\s/g," ")}const _C=e=>""===e;function kC(e){return{none:e("None"),solid:e("Solid"),dotted:e("Dotted"),dashed:e("Dashed"),double:e("Double"),groove:e("Groove"),ridge:e("Ridge"),inset:e("Inset"),outset:e("Outset")}}function vC(e){return e('The color is invalid. Try "#FF0000" or "rgb(255,0,0)" or "red".')}function CC(e){return e('The value is invalid. Try "10px" or "2em" or simply "2".')}function AC(e){return e=e.trim().toLowerCase(),_C(e)||gl(e)}function xC(e){return e=e.trim(),_C(e)||RC(e)||wl(e)||_l(e)}function EC(e){return e=e.trim(),_C(e)||RC(e)||wl(e)}function TC(e,t){const o=new eo,i=kC(e.t);for(const n in i){const s={type:"button",model:new Jm({_borderStyleValue:n,label:i[n],role:"menuitemradio",withText:!0})};"none"===n?s.model.bind("isOn").to(e,"borderStyle",(e=>"none"===t?!e:e===n)):s.model.bind("isOn").to(e,"borderStyle",(e=>e===n)),o.add(s)}return o}function PC(e){const{view:t,icons:o,toolbar:i,labels:n,propertyName:s,nameToValue:r,defaultValue:a}=e;for(const e in n){const l=new Lu(t.locale);l.set({role:"radio",isToggleable:!0,label:n[e],icon:o[e],tooltip:n[e]});const c=r?r(e):e;l.bind("isOn").to(t,s,(e=>{let t=e;return""===e&&a&&(t=a),c===t})),l.on("execute",(()=>{!a&&c&&t[s]===c?t[s]=void 0:t[s]=c})),i.items.add(l)}}const SC=[{color:"hsl(0, 0%, 0%)",label:"Black"},{color:"hsl(0, 0%, 30%)",label:"Dim grey"},{color:"hsl(0, 0%, 60%)",label:"Grey"},{color:"hsl(0, 0%, 90%)",label:"Light grey"},{color:"hsl(0, 0%, 100%)",label:"White",hasBorder:!0},{color:"hsl(0, 75%, 60%)",label:"Red"},{color:"hsl(30, 75%, 60%)",label:"Orange"},{color:"hsl(60, 75%, 60%)",label:"Yellow"},{color:"hsl(90, 75%, 60%)",label:"Light green"},{color:"hsl(120, 75%, 60%)",label:"Green"},{color:"hsl(150, 75%, 60%)",label:"Aquamarine"},{color:"hsl(180, 75%, 60%)",label:"Turquoise"},{color:"hsl(210, 75%, 60%)",label:"Light blue"},{color:"hsl(240, 75%, 60%)",label:"Blue"},{color:"hsl(270, 75%, 60%)",label:"Purple"}];function IC(e){return(t,o,i)=>{const n=new wC(t.locale,{colorDefinitions:(s=e.colorConfig,s.map((e=>({color:e.model,label:e.label,options:{hasBorder:e.hasBorder}})))),columns:e.columns,defaultColorValue:e.defaultColorValue,colorPickerConfig:e.colorPickerConfig});var s;return n.inputView.set({id:o,ariaDescribedById:i}),n.bind("isReadOnly").to(t,"isEnabled",(e=>!e)),n.bind("hasError").to(t,"errorText",(e=>!!e)),n.on("input",(()=>{t.errorText=null})),t.bind("isEmpty","isFocused").to(n),n}}function RC(e){const t=parseFloat(e);return!Number.isNaN(t)&&e===String(t)}class OC extends Au{options;focusTracker;keystrokes;children;borderStyleDropdown;borderWidthInput;borderColorInput;backgroundInput;cellTypeDropdown;paddingInput;widthInput;heightInput;horizontalAlignmentToolbar;verticalAlignmentToolbar;saveButtonView;cancelButtonView;backButtonView;_focusables;_focusCycler;constructor(e,t){super(e),this.set({borderStyle:"",borderWidth:"",borderColor:"",padding:"",backgroundColor:"",width:"",height:"",horizontalAlignment:"",verticalAlignment:"",cellType:""}),this.options=t;const{borderStyleDropdown:o,borderWidthInput:i,borderColorInput:n,borderRowLabel:s}=this._createBorderFields(),{backgroundRowLabel:r,backgroundInput:a}=this._createBackgroundFields(),{cellTypeRowLabel:l,cellTypeDropdown:c}=this._createCellTypeField(),{widthInput:d,operatorLabel:u,heightInput:h,dimensionsLabel:m}=this._createDimensionFields(),{horizontalAlignmentToolbar:g,verticalAlignmentToolbar:p,alignmentLabel:f}=this._createAlignmentFields();this.focusTracker=new oo,this.keystrokes=new ro,this.children=this.createCollection(),this.borderStyleDropdown=o,this.borderWidthInput=i,this.borderColorInput=n,this.backgroundInput=a,this.cellTypeDropdown=c,this.paddingInput=this._createPaddingField(),this.widthInput=d,this.heightInput=h,this.horizontalAlignmentToolbar=g,this.verticalAlignmentToolbar=p;const{saveButtonView:b,cancelButtonView:w}=this._createActionButtons();this.saveButtonView=b,this.cancelButtonView=w,this.backButtonView=this._createBackButton(),this._focusables=new tu,this._focusCycler=new qu({focusables:this._focusables,focusTracker:this.focusTracker,keystrokeHandler:this.keystrokes,actions:{focusPrevious:"shift + tab",focusNext:"tab"}});const y=new ju(e,{label:this.t("Cell properties")});y.children.add(this.backButtonView,0),this.children.add(y),this.children.add(new Km(e,{labelView:s,children:[s,o,i,n],class:"ck-table-form__border-row"})),this.children.add(new Km(e,{children:[new Km(e,{labelView:l,children:[l,c],class:"ck-table-form__cell-type-row"}),new Km(e,{labelView:r,children:[r,a],class:"ck-table-form__background-row"})]})),this.children.add(new Km(e,{children:[new Km(e,{labelView:m,children:[m,d,u,h],class:"ck-table-form__dimensions-row"}),new Km(e,{children:[this.paddingInput],class:"ck-table-cell-properties-form__padding-row"})]})),this.children.add(new Km(e,{labelView:f,children:[f,g,p],class:"ck-table-cell-properties-form__alignment-row"})),this.children.add(new Km(e,{children:[this.cancelButtonView,this.saveButtonView],class:"ck-table-form__action-row"})),this.setTemplate({tag:"form",attributes:{class:["ck","ck-form","ck-table-form","ck-table-cell-properties-form"],tabindex:"-1"},children:this.children})}render(){super.render(),Ou({view:this}),[this.borderColorInput,this.backgroundInput].forEach((e=>{this._focusCycler.chain(e.fieldView.focusCycler)})),[this.borderStyleDropdown,this.borderColorInput,this.borderWidthInput,this.cellTypeDropdown,this.backgroundInput,this.widthInput,this.heightInput,this.paddingInput,this.horizontalAlignmentToolbar,this.verticalAlignmentToolbar,this.cancelButtonView,this.saveButtonView,this.backButtonView].forEach((e=>{this._focusables.add(e),this.focusTracker.add(e.element)})),this.keystrokes.listenTo(this.element)}destroy(){super.destroy(),this.focusTracker.destroy(),this.keystrokes.destroy()}focus(){this._focusCycler.focusFirst()}_createBorderFields(){const e=this.options.defaultTableCellProperties,t={style:e.borderStyle,width:e.borderWidth,color:e.borderColor},o=IC({colorConfig:this.options.borderColors,columns:5,defaultColorValue:t.color,colorPickerConfig:this.options.colorPickerConfig}),i=this.locale,n=this.t,s=n("Style"),r=new Du(i);r.text=n("Border");const a=kC(n),l=new Sh(i,rm);l.set({label:s,class:"ck-table-form__border-style"}),l.fieldView.buttonView.set({ariaLabel:s,ariaLabelledBy:void 0,isOn:!1,withText:!0,tooltip:s}),l.fieldView.buttonView.bind("label").to(this,"borderStyle",(e=>a[e||"none"])),l.fieldView.on("execute",(e=>{this.borderStyle=e.source._borderStyleValue})),l.bind("isEmpty").to(this,"borderStyle",(e=>!e)),Xh(l.fieldView,TC(this,t.style),{role:"menu",ariaLabel:s});const c=new Sh(i,nm);c.set({label:n("Width"),class:"ck-table-form__border-width"}),c.fieldView.bind("value").to(this,"borderWidth"),c.bind("isEnabled").to(this,"borderStyle",VC),c.fieldView.on("input",(()=>{this.borderWidth=c.fieldView.element.value}));const d=new Sh(i,o);return d.set({label:n("Color"),class:"ck-table-form__border-color"}),d.fieldView.bind("value").to(this,"borderColor"),d.bind("isEnabled").to(this,"borderStyle",VC),d.fieldView.on("input",(()=>{this.borderColor=d.fieldView.value})),this.on("change:borderStyle",((e,o,i,n)=>{VC(i)||(this.borderColor="",this.borderWidth=""),VC(n)||(this.borderColor=t.color,this.borderWidth=t.width)})),{borderRowLabel:r,borderStyleDropdown:l,borderColorInput:d,borderWidthInput:c}}_createBackgroundFields(){const e=this.locale,t=this.t,o=new Du(e);o.text=t("Background");const i=IC({colorConfig:this.options.backgroundColors,columns:5,defaultColorValue:this.options.defaultTableCellProperties.backgroundColor,colorPickerConfig:this.options.colorPickerConfig}),n=new Sh(e,i);return n.set({label:t("Color"),class:"ck-table-cell-properties-form__background"}),n.fieldView.bind("value").to(this,"backgroundColor"),n.fieldView.on("input",(()=>{this.backgroundColor=n.fieldView.value})),{backgroundRowLabel:o,backgroundInput:n}}_createCellTypeField(){const e=this.locale,t=this.t,o=new Du(e);o.text=t("Cell type");const i=this._cellTypeLabels,n=new Sh(e,rm);return n.set({label:t("Cell type"),class:"ck-table-cell-properties-form__cell-type"}),n.fieldView.buttonView.set({ariaLabel:t("Cell type"),ariaLabelledBy:void 0,isOn:!1,withText:!0,tooltip:t("Cell type")}),n.fieldView.buttonView.bind("label").to(this,"cellType",(e=>i[e||"data"])),n.fieldView.on("execute",(e=>{this.cellType=e.source._cellTypeValue})),n.bind("isEmpty").to(this,"cellType",(e=>!e)),Xh(n.fieldView,this._getCellTypeDefinitions(),{role:"menu",ariaLabel:t("Cell type")}),{cellTypeRowLabel:o,cellTypeDropdown:n}}_createDimensionFields(){const e=this.locale,t=this.t,o=new Du(e);o.text=t("Dimensions");const i=new Sh(e,nm);i.set({label:t("Width"),class:"ck-table-form__dimensions-row__width"}),i.fieldView.bind("value").to(this,"width"),i.fieldView.on("input",(()=>{this.width=i.fieldView.element.value}));const n=new Au(e);n.setTemplate({tag:"span",attributes:{class:["ck-table-form__dimension-operator"]},children:[{text:"×"}]});const s=new Sh(e,nm);return s.set({label:t("Height"),class:"ck-table-form__dimensions-row__height"}),s.fieldView.bind("value").to(this,"height"),s.fieldView.on("input",(()=>{this.height=s.fieldView.element.value})),{dimensionsLabel:o,widthInput:i,operatorLabel:n,heightInput:s}}_createPaddingField(){const e=this.locale,t=this.t,o=new Sh(e,nm);return o.set({label:t("Padding"),class:"ck-table-cell-properties-form__padding"}),o.fieldView.bind("value").to(this,"padding"),o.fieldView.on("input",(()=>{this.padding=o.fieldView.element.value})),o}_createAlignmentFields(){const e=this.locale,t=this.t,o=new Du(e),i={left:jc,center:'',right:'',justify:'',top:'',middle:'',bottom:''};o.text=t("Table cell text alignment");const n=new Wh(e),s="rtl"===e.contentLanguageDirection;n.set({isCompact:!0,role:"radiogroup",ariaLabel:t("Horizontal text alignment toolbar"),class:"ck-table-cell-properties-form__horizontal-alignment-toolbar"}),PC({view:this,icons:i,toolbar:n,labels:this._horizontalAlignmentLabels,propertyName:"horizontalAlignment",nameToValue:e=>{if(s){if("left"===e)return"right";if("right"===e)return"left"}return e},defaultValue:this.options.defaultTableCellProperties.horizontalAlignment});const r=new Wh(e);return r.set({isCompact:!0,role:"radiogroup",ariaLabel:t("Vertical text alignment toolbar"),class:"ck-table-cell-properties-form__vertical-alignment-toolbar"}),PC({view:this,icons:i,toolbar:r,labels:this._verticalAlignmentLabels,propertyName:"verticalAlignment",defaultValue:this.options.defaultTableCellProperties.verticalAlignment}),{horizontalAlignmentToolbar:n,verticalAlignmentToolbar:r,alignmentLabel:o}}_createActionButtons(){const e=this.locale,t=this.t,o=new Lu(e),i=new Lu(e),n=[this.borderWidthInput,this.borderColorInput,this.backgroundInput,this.paddingInput];return o.set({label:t("Save"),class:"ck-button-action",type:"submit",withText:!0}),o.bind("isEnabled").toMany(n,"errorText",((...e)=>e.every((e=>!e)))),i.set({label:t("Cancel"),withText:!0}),i.delegate("execute").to(this,"cancel"),{saveButtonView:o,cancelButtonView:i}}_createBackButton(){const e=this.locale.t,t=new Lu(this.locale);return t.set({class:"ck-button-back",label:e("Back"),icon:ed,tooltip:!0}),t.delegate("execute").to(this,"cancel"),t}_getCellTypeDefinitions(){const e=new eo,t=this._cellTypeLabels,o=["data","header"];this.options.showScopedHeaderOptions&&o.push("header-column","header-row");for(const i of o){const o={type:"button",model:new Jm({_cellTypeValue:i,label:t[i],role:"menuitemradio",withText:!0})};o.model.bind("isOn").to(this,"cellType",(e=>e===i)),e.add(o)}return e}get _horizontalAlignmentLabels(){const e=this.locale,t=this.t,o=t("Align cell text to the left"),i=t("Align cell text to the center"),n=t("Align cell text to the right"),s=t("Justify cell text");return"rtl"===e.uiLanguageDirection?{right:n,center:i,left:o,justify:s}:{left:o,center:i,right:n,justify:s}}get _verticalAlignmentLabels(){const e=this.t;return{top:e("Align cell text to the top"),middle:e("Align cell text to the middle"),bottom:e("Align cell text to the bottom")}}get _cellTypeLabels(){const e=this.t;return{data:e("Data cell"),header:e("Header cell"),"header-column":e("Column header"),"header-row":e("Row header")}}}function VC(e){return"none"!==e}const DC=(()=>[dh.defaultPositions.northArrowSouth,dh.defaultPositions.northArrowSouthWest,dh.defaultPositions.northArrowSouthEast,dh.defaultPositions.southArrowNorth,dh.defaultPositions.southArrowNorthWest,dh.defaultPositions.southArrowNorthEast,dh.defaultPositions.viewportStickyNorth])();function FC(e,t){const o=e.plugins.get("ContextualBalloon"),i=e.editing.view.document.selection;let n;"cell"===t?fC(i)&&(n=NC(e)):gC(i)&&(n=MC(e)),n&&o.updatePosition(n)}function MC(e){const t=qk(e.model.document.selection),o=e.editing.mapper.toViewElement(t);return{target:e.editing.view.domConverter.mapViewToDom(o),positions:DC}}function NC(e){const t=e.editing.mapper,o=e.editing.view.domConverter,i=e.model.document.selection;if(i.rangeCount>1)return{target:()=>function(e,t){const o=t.editing.mapper,i=t.editing.view.domConverter,n=Array.from(e).map((e=>{const t=BC(e.start),n=o.toViewElement(t);return new ut(i.mapViewToDom(n))}));return ut.getBoundingRect(n)}(i.getRanges(),e),positions:DC};const n=BC(i.getFirstPosition()),s=t.toViewElement(n);return{target:o.mapViewToDom(s),positions:DC}}function BC(e){return e.nodeAfter&&e.nodeAfter.is("element","tableCell")?e.nodeAfter:e.findAncestor("tableCell")}const LC={borderStyle:"tableCellBorderStyle",borderColor:"tableCellBorderColor",borderWidth:"tableCellBorderWidth",height:"tableCellHeight",width:"tableCellWidth",padding:"tableCellPadding",backgroundColor:"tableCellBackgroundColor",horizontalAlignment:"tableCellHorizontalAlignment",verticalAlignment:"tableCellVerticalAlignment",cellType:"tableCellType"};class zC extends fc{_defaultContentTableCellProperties;_defaultLayoutTableCellProperties;_balloon;view;_viewWithContentTableDefaults;_viewWithLayoutTableDefaults;_undoStepBatch;_isReady;static get requires(){return[Qm]}static get pluginName(){return"TableCellPropertiesUI"}static get isOfficialPlugin(){return!0}constructor(e){super(e),e.config.define("table.tableCellProperties",{borderColors:SC,backgroundColors:SC})}init(){const e=this.editor,t=e.t;this._defaultContentTableCellProperties=bv(e.config.get("table.tableCellProperties.defaultProperties"),{includeVerticalAlignmentProperty:!0,includeHorizontalAlignmentProperty:!0,includePaddingProperty:!0,isRightToLeftContent:"rtl"===e.locale.contentLanguageDirection}),this._defaultLayoutTableCellProperties=pv(void 0,{includeVerticalAlignmentProperty:!0,includeHorizontalAlignmentProperty:!0,isRightToLeftContent:"rtl"===e.locale.contentLanguageDirection}),this._balloon=e.plugins.get(Qm),this.view=null,this._isReady=!1,e.ui.componentFactory.add("tableCellProperties",(o=>{const i=new Lu(o);i.set({label:t("Cell properties"),icon:'',tooltip:!0}),this.listenTo(i,"execute",(()=>this._showView()));const n=Object.values(LC).map((t=>e.commands.get(t))).filter((e=>!!e));return i.bind("isEnabled").toMany(n,"isEnabled",((...e)=>e.some((e=>e)))),i}))}destroy(){super.destroy(),this.view&&this.view.destroy()}_createPropertiesView(e){const t=this.editor,o=t.config.get("table.tableCellProperties"),i=!!t.config.get("table.tableCellProperties.scopedHeaders"),n=Ch(o.borderColors),s=vh(t.locale,n),r=Ch(o.backgroundColors),a=vh(t.locale,r),l=!1!==o.colorPicker,c=new OC(t.locale,{borderColors:s,backgroundColors:a,defaultTableCellProperties:e,colorPickerConfig:!!l&&(o.colorPicker||{}),showScopedHeaderOptions:i}),d=t.t;c.render(),this.listenTo(c,"submit",(()=>{this._hideView()})),this.listenTo(c,"cancel",(()=>{this._undoStepBatch.operations.length&&t.execute("undo",this._undoStepBatch),this._hideView()})),c.keystrokes.set("Esc",((e,t)=>{this._hideView(),t()})),Su({emitter:c,activator:()=>this._isViewInBalloon,contextElements:[this._balloon.view.element],callback:()=>this._hideView()});const u=vC(d),h=CC(d);c.on("change:borderStyle",this._getPropertyChangeCallback("tableCellBorderStyle")),c.on("change:borderColor",this._getValidatedPropertyChangeCallback({viewField:c.borderColorInput,commandName:"tableCellBorderColor",errorText:u,validator:AC})),c.on("change:borderWidth",this._getValidatedPropertyChangeCallback({viewField:c.borderWidthInput,commandName:"tableCellBorderWidth",errorText:h,validator:EC})),c.on("change:padding",this._getValidatedPropertyChangeCallback({viewField:c.paddingInput,commandName:"tableCellPadding",errorText:h,validator:xC})),c.on("change:width",this._getValidatedPropertyChangeCallback({viewField:c.widthInput,commandName:"tableCellWidth",errorText:h,validator:xC})),c.on("change:height",this._getValidatedPropertyChangeCallback({viewField:c.heightInput,commandName:"tableCellHeight",errorText:h,validator:xC})),c.on("change:backgroundColor",this._getValidatedPropertyChangeCallback({viewField:c.backgroundInput,commandName:"tableCellBackgroundColor",errorText:u,validator:AC})),c.on("change:horizontalAlignment",this._getPropertyChangeCallback("tableCellHorizontalAlignment")),c.on("change:verticalAlignment",this._getPropertyChangeCallback("tableCellVerticalAlignment"));const m=t.commands.get("tableCellType");return m&&(c.cellTypeDropdown.bind("isEnabled").to(m,"isEnabled"),c.on("change:cellType",this._getPropertyChangeCallback("tableCellType"))),c}_fillViewFormFromCommandValues(){const e=this.editor.commands,t=e.get("tableCellBorderStyle");Object.entries(LC).flatMap((([t,o])=>{const i=e.get(o);if(!i)return[];const n=t;let s;s="cellType"===n?"":this.view===this._viewWithContentTableDefaults?this._defaultContentTableCellProperties[n]||"":this._defaultLayoutTableCellProperties[n]||"";return[[t,i.value||s]]})).forEach((([e,o])=>{("borderColor"!==e&&"borderWidth"!==e||"none"!==t.value)&&this.view.set(e,o)})),this._isReady=!0}_showView(){const e=this.editor,t=gC(e.editing.view.document.selection),o=t&&e.editing.mapper.toModelElement(t),i=!o||"layout"!==o.getAttribute("tableType");i&&!this._viewWithContentTableDefaults?this._viewWithContentTableDefaults=this._createPropertiesView(this._defaultContentTableCellProperties):i||this._viewWithLayoutTableDefaults||(this._viewWithLayoutTableDefaults=this._createPropertiesView(this._defaultLayoutTableCellProperties)),this.view=i?this._viewWithContentTableDefaults:this._viewWithLayoutTableDefaults,this.listenTo(e.ui,"update",(()=>{this._updateView()})),this._fillViewFormFromCommandValues(),this._balloon.add({view:this.view,position:NC(e)}),this._undoStepBatch=e.model.createBatch(),this.view.focus()}_hideView(){const e=this.editor;this.stopListening(e.ui,"update"),this._isReady=!1,this.view.saveButtonView.focus(),this._balloon.remove(this.view),this.editor.editing.view.focus()}_updateView(){const e=this.editor;fC(e.editing.view.document.selection)?this._isViewVisible&&FC(e,"cell"):this._hideView()}get _isViewVisible(){return!!this.view&&this._balloon.visibleView===this.view}get _isViewInBalloon(){return!!this.view&&this._balloon.hasView(this.view)}_getPropertyChangeCallback(e){return(t,o,i)=>{this._isReady&&this.editor.execute(e,{value:i,batch:this._undoStepBatch})}}_getValidatedPropertyChangeCallback(e){const{commandName:t,viewField:o,validator:i,errorText:n}=e,s=zo((()=>{o.errorText=n}),500);return(e,n,r)=>{s.cancel(),this._isReady&&(i(r)?(this.editor.execute(t,{value:r,batch:this._undoStepBatch}),o.errorText=null):s())}}}class jC extends wc{attributeName;_defaultValue;_defaultContentTableValue;_defaultLayoutTableValue;constructor(e,t,o){switch(super(e),this.attributeName=t,this._defaultContentTableValue=o,t){case"tableCellType":this._defaultLayoutTableValue="data";break;case"tableCellBorderStyle":this._defaultLayoutTableValue="none";break;case"tableCellHorizontalAlignment":this._defaultLayoutTableValue="left";break;case"tableCellVerticalAlignment":this._defaultLayoutTableValue="middle";break;default:this._defaultLayoutTableValue=void 0}}refresh(){const e=this.editor.model.document.selection,t=this.editor.plugins.get("TableUtils").getSelectionAffectedTableCells(e),o=qk(e);this._defaultValue=o&&"layout"===o.getAttribute("tableType")?this._defaultLayoutTableValue:this._defaultContentTableValue,this.isEnabled=!!t.length,this.value=this._getSingleValue(t)}execute(e={}){const{value:t,batch:o}=e,i=this.editor.model,n=this.editor.plugins.get("TableUtils").getSelectionAffectedTableCells(i.document.selection),s=this._getValueToSet(t);i.enqueueChange(o,(e=>{s?n.forEach((t=>e.setAttribute(this.attributeName,s,t))):n.forEach((t=>e.removeAttribute(this.attributeName,t))),this.fire("afterExecute",{writer:e,tableCells:n,valueToSet:s})}))}_getAttribute(e){if(!e)return;const t=e.getAttribute(this.attributeName);return t!==this._defaultValue?t:void 0}_getValueToSet(e){if(e!==this._defaultValue)return e}_getSingleValue(e){const t=this._getAttribute(e[0]);return e.every((e=>this._getAttribute(e)===t))?t:void 0}}class qC extends jC{constructor(e,t){super(e,"tableCellWidth",t)}_getValueToSet(e){if((e=gv(e,"px"))!==this._defaultValue)return e}}class $C extends fc{static get pluginName(){return"TableCellWidthEditing"}static get isOfficialPlugin(){return!0}static get requires(){return[Xv]}init(){const e=this.editor,t=bv(e.config.get("table.tableCellProperties.defaultProperties"));jk(e.model.schema,e.conversion,{modelAttribute:"tableCellWidth",styleName:"width",attributeName:"width",attributeType:"length",defaultValue:t.width}),e.commands.add("tableCellWidth",new qC(e,t.width))}}class HC extends jC{constructor(e,t){super(e,"tableCellPadding",t)}_getAttribute(e){if(!e)return;const t=mv(e.getAttribute(this.attributeName));return t!==this._defaultValue?t:void 0}_getValueToSet(e){const t=gv(e,"px");if(t!==this._defaultValue)return t}}class WC extends jC{constructor(e,t){super(e,"tableCellHeight",t)}_getValueToSet(e){const t=gv(e,"px");if(t!==this._defaultValue)return t}}class UC extends jC{constructor(e,t){super(e,"tableCellBackgroundColor",t)}}class KC extends jC{constructor(e,t){super(e,"tableCellVerticalAlignment",t)}}class GC extends jC{constructor(e,t){super(e,"tableCellHorizontalAlignment",t)}}class JC extends jC{constructor(e,t){super(e,"tableCellBorderStyle",t)}_getAttribute(e){if(!e)return;const t=mv(e.getAttribute(this.attributeName));return t!==this._defaultValue?t:void 0}}class ZC extends jC{constructor(e,t){super(e,"tableCellBorderColor",t)}_getAttribute(e){if(!e)return;const t=mv(e.getAttribute(this.attributeName));return t!==this._defaultValue?t:void 0}}class QC extends jC{constructor(e,t){super(e,"tableCellBorderWidth",t)}_getAttribute(e){if(!e)return;const t=mv(e.getAttribute(this.attributeName));return t!==this._defaultValue?t:void 0}_getValueToSet(e){const t=gv(e,"px");if(t!==this._defaultValue)return t}}class YC extends jC{constructor(e){super(e,"tableCellType","data"),this.on("afterExecute",((e,t)=>{const{writer:o,tableCells:i}=t,n=this.editor.plugins.get(av),s=function(e){const t=new Map;for(const o of e){const e=o.findAncestor("table");t.has(e)||t.set(e,[]),t.get(e).push(o)}return t}(i);XC(n,o,s.keys())}))}refresh(){super.refresh();const e=qk(this.editor.model.document.selection);this.isEnabled&&e&&"layout"===e.getAttribute("tableType")&&(this.isEnabled=!1)}_getAttribute(e){return e?.getAttribute(this.attributeName)||"data"}}function XC(e,t,o){let i=!1;for(const n of o){let o=n.getAttribute("headingRows")||0,s=n.getAttribute("headingColumns")||0;const r=n.getAttribute("footerRows")||0,a=e.getRows(n)-r,l=s>o;if(l){const r=eA(e,n,"column",s,o);r!==s&&(e.setHeadingColumnsCount(t,n,r,{updateCellType:!1}),s=r,i=!0)}let c=eA(e,n,"row",o,s);if(r>0&&(c=Math.min(c,a)),c!==o&&(e.setHeadingRowsCount(t,n,c,{updateCellType:!1}),o=c,i=!0),!l){const r=eA(e,n,"column",s,o);r!==s&&(e.setHeadingColumnsCount(t,n,r,{updateCellType:!1}),i=!0)}}return i}function eA(e,t,o,i,n){const s="row"===o?e.getRows(t):e.getColumns(t);let r=i;for(let e=0;e=n&&(a=!0)}if(!s)return Math.min(r,e);a&&(r=Math.max(r,e+1))}return Math.min(r,s)}const tA=/^(top|middle|bottom)$/,oA=/^(left|center|right|justify)$/;class iA extends fc{static get pluginName(){return"TableCellPropertiesEditing"}static get licenseFeatureCode(){return"TCP"}static get isOfficialPlugin(){return!0}static get isPremiumPlugin(){return!0}static get requires(){return[Xv,$C]}init(){const e=this.editor,t=e.model.schema,o=e.conversion;e.config.define("table.tableCellProperties.defaultProperties",{});const i=bv(e.config.get("table.tableCellProperties.defaultProperties"),{includeVerticalAlignmentProperty:!0,includeHorizontalAlignmentProperty:!0,includePaddingProperty:!0,isRightToLeftContent:"rtl"===e.locale.contentLanguageDirection});e.data.addStyleProcessorRules(Hl),function(e,t){const{conversion:o}=e,{schema:i}=e.model,n={width:"tableCellBorderWidth",color:"tableCellBorderColor",style:"tableCellBorderStyle"};i.extend("tableCell",{allowAttributes:Object.values(n)});for(const e of Object.values(n))i.setAttributeProperties(e,{isFormatting:!0});vk(e,"td",n,t),vk(e,"th",n,t),Ck(o,{modelElement:"tableCell",modelAttribute:n.style,styleName:"border-style"}),Ck(o,{modelElement:"tableCell",modelAttribute:n.color,styleName:"border-color"}),Ck(o,{modelElement:"tableCell",modelAttribute:n.width,styleName:"border-width"})}(e,{color:i.borderColor,style:i.borderStyle,width:i.borderWidth}),e.commands.add("tableCellBorderStyle",new JC(e,i.borderStyle)),e.commands.add("tableCellBorderColor",new ZC(e,i.borderColor)),e.commands.add("tableCellBorderWidth",new QC(e,i.borderWidth)),jk(t,o,{modelAttribute:"tableCellHeight",styleName:"height",attributeName:"height",attributeType:"length",defaultValue:i.height}),e.commands.add("tableCellHeight",new WC(e,i.height)),e.data.addStyleProcessorRules(tc),jk(t,o,{modelAttribute:"tableCellPadding",styleName:"padding",reduceBoxSides:!0,defaultValue:i.padding}),function(e,t){Tk(e,"td",t),Tk(e,"th",t)}(e,i.padding),e.commands.add("tableCellPadding",new HC(e,i.padding)),e.data.addStyleProcessorRules(Bl),jk(t,o,{modelAttribute:"tableCellBackgroundColor",styleName:"background-color",attributeName:"bgcolor",attributeType:"color",defaultValue:i.backgroundColor}),e.commands.add("tableCellBackgroundColor",new UC(e,i.backgroundColor)),function(e,t,o){e.extend("tableCell",{allowAttributes:["tableCellHorizontalAlignment"]}),e.setAttributeProperties("tableCellHorizontalAlignment",{isFormatting:!0}),t.for("downcast").attributeToAttribute({model:{name:"tableCell",key:"tableCellHorizontalAlignment"},view:e=>({key:"style",value:{"text-align":e}})}),t.for("upcast").attributeToAttribute({view:{name:/^(td|th)$/,styles:{"text-align":oA}},model:{key:"tableCellHorizontalAlignment",value:(e,t,i)=>{const n=xk(o,"left",i),s=e.getStyle("text-align");if(s!==n)return s;t.consumable.consume(e,{styles:"text-align"})}}}).attributeToAttribute({view:{name:/^(td|th)$/,attributes:{align:oA}},model:{key:"tableCellHorizontalAlignment",value:(e,t,i)=>{const n=xk(o,"left",i),s=e.getAttribute("align");if(s!==n)return s;t.consumable.consume(e,{attributes:"align"})}}})}(t,o,i.horizontalAlignment),e.commands.add("tableCellHorizontalAlignment",new GC(e,i.horizontalAlignment)),function(e,t,o){e.extend("tableCell",{allowAttributes:["tableCellVerticalAlignment"]}),e.setAttributeProperties("tableCellVerticalAlignment",{isFormatting:!0}),t.for("downcast").attributeToAttribute({model:{name:"tableCell",key:"tableCellVerticalAlignment"},view:e=>({key:"style",value:{"vertical-align":e}})}),t.for("upcast").attributeToAttribute({view:{name:/^(td|th)$/,styles:{"vertical-align":tA}},model:{key:"tableCellVerticalAlignment",value:(e,t,i)=>{const n=xk(o,"middle",i),s=e.getStyle("vertical-align");if(s!==n)return s;t.consumable.consume(e,{styles:"vertical-align"})}}}).attributeToAttribute({view:{name:/^(td|th)$/,attributes:{valign:tA}},model:{key:"tableCellVerticalAlignment",value:(e,t,i)=>{const n=xk(o,"middle",i),s=e.getAttribute("valign");if(s!==n)return s;t.consumable.consume(e,{attributes:"valign"})}}})}(t,o,i.verticalAlignment),e.commands.add("tableCellVerticalAlignment",new KC(e,i.verticalAlignment)),function(e){const{model:t,conversion:o,editing:i,config:n}=e,{schema:s}=t;n.define("table.tableCellProperties.scopedHeaders",!0);const r=!!n.get("table.tableCellProperties.scopedHeaders"),a=e.plugins.get(av);s.extend("tableCell",{allowAttributes:["tableCellType"]}),s.setAttributeProperties("tableCellType",{isFormatting:!0}),s.addAttributeCheck((e=>{const t=Array.from(e).reverse().find((e=>"table"===e.name));if("layout"===t?.getAttribute("tableType"))return!1}),"tableCellType"),o.for("upcast").add((e=>{e.on("element:th",((e,t,o)=>{const{writer:i}=o,{modelRange:n}=t,s=n?.start.nodeAfter;s?.is("element","tableCell")&&!s.hasAttribute("tableCellType")&&i.setAttribute("tableCellType","header",s)})),e.on("element:table",((e,t,o)=>{const{writer:i}=o,{modelRange:n}=t,s=n?.start.nodeAfter;if(s?.is("element","table")&&"layout"===s.getAttribute("tableType"))for(const{cell:e}of new Fk(s)){if(Nk(e.getAttribute("tableCellType"))){i.setAttribute("tableType","content",s);break}}}),{priority:ge.low-1})})),r&&(o.for("downcast").attributeToAttribute({model:{name:"tableCell",key:"tableCellType"},view:e=>{switch(e){case"header-row":return{key:"scope",value:"row"};case"header-column":return{key:"scope",value:"col"}}}}),o.for("upcast").add((e=>{e.on("element:th",((e,t,o)=>{const{writer:i,consumable:n}=o,{viewItem:s,modelRange:r}=t,a=r.start.nodeAfter,l=a?.getAttribute("tableCellType");if("header"===l&&n.consume(s,{attributes:["scope"]})){switch(s.getAttribute("scope")){case"row":i.setAttribute("tableCellType","header-row",a);break;case"col":i.setAttribute("tableCellType","header-column",a)}}}))})));t.document.registerPostFixer((e=>{const o=t.document.differ.getChanges(),i=new Set;for(const e of o){if("attribute"===e.type&&("headingRows"===e.attributeKey||"headingColumns"===e.attributeKey)){const t=e.range.start.nodeAfter;t?.is("element","table")&&"$graveyard"!==t.root.rootName&&i.add(t)}if("attribute"===e.type&&"tableCellType"===e.attributeKey){const t=e.range.start.nodeAfter;if(t?.is("element","tableCell")&&"$graveyard"!==t.root.rootName){const e=t.findAncestor("table");e&&i.add(e)}}if("insert"===e.type&&e.position.nodeAfter)for(const{item:o}of t.createRangeOn(e.position.nodeAfter))if(o.is("element","tableCell")&&o.getAttribute("tableCellType")&&"$graveyard"!==o.root.rootName){const e=o.findAncestor("table");e&&i.add(e)}}return XC(a,e,i)})),t.document.on("change:data",(()=>{const{differ:e}=t.document,o=new Set;for(const t of e.getChanges())if("attribute"===t.type&&"tableCellType"===t.attributeKey){const e=t.range.start.nodeAfter;e.is("element","tableCell")&&o.add(e)}for(const e of o){const t=i.mapper.toViewElement(e),o=Nk(e.getAttribute("tableCellType"))?"th":"td";t?.name!==o&&i.reconvertItem(e)}}))}(e),e.commands.add("tableCellType",new YC(e))}}class nA extends wc{attributeName;_defaultValue;_defaultContentTableValue;_defaultLayoutTableValue;constructor(e,t,o){super(e),this.attributeName=t,this._defaultContentTableValue=o,this._defaultLayoutTableValue="tableBorderStyle"===t?"none":void 0}refresh(){const e=qk(this.editor.model.document.selection);this._defaultValue=e&&"layout"===e.getAttribute("tableType")?this._defaultLayoutTableValue:this._defaultContentTableValue,this.isEnabled=!!e,this.value=this._getValue(e)}execute(e={}){const t=this.editor.model,o=t.document.selection,{value:i,batch:n}=e,s=qk(o),r=this._getValueToSet(i);t.enqueueChange(n,(e=>{r?e.setAttribute(this.attributeName,r,s):e.removeAttribute(this.attributeName,s)}))}_getValue(e){if(!e)return;const t=e.getAttribute(this.attributeName);return t!==this._defaultValue?t:void 0}_getValueToSet(e){if(e!==this._defaultValue)return e}}class sA extends nA{constructor(e,t){super(e,"tableBackgroundColor",t)}}class rA extends nA{constructor(e,t){super(e,"tableBorderColor",t)}_getValue(e){if(!e)return;const t=mv(e.getAttribute(this.attributeName));return t!==this._defaultValue?t:void 0}}class aA extends nA{constructor(e,t){super(e,"tableBorderStyle",t)}_getValue(e){if(!e)return;const t=mv(e.getAttribute(this.attributeName));return t!==this._defaultValue?t:void 0}}class lA extends nA{constructor(e,t){super(e,"tableBorderWidth",t)}_getValue(e){if(!e)return;const t=mv(e.getAttribute(this.attributeName));return t!==this._defaultValue?t:void 0}_getValueToSet(e){const t=gv(e,"px");if(t!==this._defaultValue)return t}}class cA extends nA{constructor(e,t){super(e,"tableWidth",t)}_getValueToSet(e){if((e=gv(e,"px"))!==this._defaultValue)return e}}class dA extends nA{constructor(e,t){super(e,"tableHeight",t)}_getValueToSet(e){if((e=gv(e,"px"))!==this._defaultValue)return e}}class uA extends nA{constructor(e,t){super(e,"tableAlignment",t)}}class hA extends fc{static get pluginName(){return"TablePropertiesEditing"}static get licenseFeatureCode(){return"TCP"}static get isOfficialPlugin(){return!0}static get isPremiumPlugin(){return!0}static get requires(){return[Xv]}init(){const e=this.editor,t=e.model.schema,o=e.conversion;e.config.define("table.tableProperties.defaultProperties",{});const i=fv(e.config.get("table.tableProperties.defaultProperties"),{includeAlignmentProperty:!0}),n=!0===e.config.get("table.tableProperties.alignment.useInlineStyles");e.data.addStyleProcessorRules(ec),e.data.addStyleProcessorRules(Hl),function(e,t){const{conversion:o}=e,{schema:i}=e.model,n={width:"tableBorderWidth",color:"tableBorderColor",style:"tableBorderStyle"};i.extend("table",{allowAttributes:Object.values(n)});for(const e of Object.values(n))i.setAttributeProperties(e,{isFormatting:!0});vk(e,"table",n,t),Ak(o,{modelAttribute:n.color,styleName:"border-color"}),Ak(o,{modelAttribute:n.style,styleName:"border-style"}),Ak(o,{modelAttribute:n.width,styleName:"border-width"})}(e,{color:i.borderColor,style:i.borderStyle,width:i.borderWidth}),e.commands.add("tableBorderColor",new rA(e,i.borderColor)),e.commands.add("tableBorderStyle",new aA(e,i.borderStyle)),e.commands.add("tableBorderWidth",new lA(e,i.borderWidth)),function(e,t,o,i){e.extend("table",{allowAttributes:["tableAlignment"]}),e.setAttributeProperties("tableAlignment",{isFormatting:!0}),t.for("downcast").attributeToAttribute({model:{name:"table",key:"tableAlignment",values:["left","center","right","blockLeft","blockRight"]},view:{left:i?{key:"style",value:{float:"left","margin-right":"var(--ck-content-table-style-spacing, 1.5em)"}}:{key:"class",value:Pk.className},right:i?{key:"style",value:{float:"right","margin-left":"var(--ck-content-table-style-spacing, 1.5em)"}}:{key:"class",value:Ik.className},center:i?{key:"style",value:{"margin-left":"auto","margin-right":"auto"}}:{key:"class",value:Sk.className},blockLeft:i?{key:"style",value:{"margin-left":"0","margin-right":"auto"}}:{key:"class",value:Rk.className},blockRight:i?{key:"style",value:{"margin-left":"auto","margin-right":"0"}}:{key:"class",value:Ok.className}},converterPriority:"high"}),Vk.forEach((e=>{t.for("upcast").attributeToAttribute({view:e.view,model:{key:"tableAlignment",value:(t,i,n)=>{if(function(e){return"figure"==e.name&&!e.hasClass("table")}(t))return;const s=xk(o,"",n),r=e.getAlign(t),a=e.getConsumables(t);return i.consumable.consume(t,a),r!==s?r:void 0}}})})),t.for("upcast").add(function(e){return t=>{t.on("element:div",((t,o,i)=>{if(!i.consumable.test(o.viewItem,{name:!0,attributes:"align"}))return;const n=ov(o.viewItem);if(!n||!i.consumable.test(n,{name:!0}))return;i.consumable.consume(o.viewItem,{name:!0,attributes:"align"});const s=i.convertItem(n,o.modelCursor),r=to(s.modelRange.getItems());if(!r||!r.is("element","table"))return i.consumable.revert(o.viewItem,{name:!0,attributes:"align"}),void(s.modelRange&&!s.modelRange.isCollapsed&&(o.modelRange=s.modelRange,o.modelCursor=s.modelCursor));const a=function(e,t,o){if(e)switch(e){case"right":return"right"===t?"right":"left"===t?"left":"blockRight";case"center":return"center";case"left":return void 0===t?"blockLeft":"left";default:return o}return}(o.viewItem.getAttribute("align"),n.getAttribute("align"),xk(e,"",o));a&&i.writer.setAttribute("tableAlignment",a,r),i.convertChildren(o.viewItem,i.writer.createPositionAt(r,"end")),i.updateConversionResult(r,o)}))}}(o))}(t,o,i.alignment,n),e.commands.add("tableAlignment",new uA(e,i.alignment)),pA(t,o,{modelAttribute:"tableWidth",styleName:"width",attributeName:"width",attributeType:"length",defaultValue:i.width}),e.commands.add("tableWidth",new cA(e,i.width)),pA(t,o,{modelAttribute:"tableHeight",styleName:"height",attributeName:"height",attributeType:"length",defaultValue:i.height}),e.commands.add("tableHeight",new dA(e,i.height)),e.data.addStyleProcessorRules(Bl),function(e,t,o){const{modelAttribute:i}=o;e.extend("table",{allowAttributes:[i]}),e.setAttributeProperties(i,{isFormatting:!0}),kk(t,{viewElement:"table",...o}),Ak(t,o)}(t,o,{modelAttribute:"tableBackgroundColor",styleName:"background-color",attributeName:"bgcolor",attributeType:"color",defaultValue:i.backgroundColor}),e.commands.add("tableBackgroundColor",new sA(e,i.backgroundColor)),Tk(e,"table");const s=e.editing.view.document;this.listenTo(s,"clipboardOutput",((t,o)=>{e.editing.view.change((e=>{for(const{item:t}of e.createRangeIn(o.content))mA(t,e);o.dataTransfer.setData("text/html",this.editor.data.htmlProcessor.toData(o.content))}))}),{priority:"lowest"})}}function mA(e,t){if(!e.is("element","table"))return;const o=e.getAttribute("align"),i=e.getStyle("float"),n=e.getStyle("margin-left"),s=e.getStyle("margin-right");o&&"center"===o||i&&"right"===i&&o&&"right"===o?gA(t,o,e):void 0===i&&"auto"===n&&"0"===s&&gA(t,"right",e)}function gA(e,t,o){const i=e.createPositionBefore(o),n=e.createContainerElement("div",{align:t},o);e.insert(i,n)}function pA(e,t,o){const{modelAttribute:i}=o;e.extend("table",{allowAttributes:[i]}),e.setAttributeProperties(i,{isFormatting:!0}),kk(t,{viewElement:/^(table|figure)$/,shouldUpcast:e=>!("table"==e.name&&"figure"==e.parent.name||"figure"==e.name&&!e.hasClass("table")),...o}),Ck(t,{modelElement:"table",...o})}class fA extends Au{options;focusTracker;keystrokes;children;borderStyleDropdown;borderWidthInput;borderColorInput;backgroundInput;widthInput;heightInput;alignmentToolbar;saveButtonView;cancelButtonView;backButtonView;_focusables;_focusCycler;constructor(e,t){super(e),this.set({borderStyle:"",borderWidth:"",borderColor:"",backgroundColor:"",width:"",height:"",alignment:""}),this.options=t;const{borderStyleDropdown:o,borderWidthInput:i,borderColorInput:n,borderRowLabel:s}=this._createBorderFields(),{backgroundRowLabel:r,backgroundInput:a}=this._createBackgroundFields(),{widthInput:l,operatorLabel:c,heightInput:d,dimensionsLabel:u}=this._createDimensionFields(),{alignmentToolbar:h,alignmentLabel:m}=this._createAlignmentFields();this.focusTracker=new oo,this.keystrokes=new ro,this.children=this.createCollection(),this.borderStyleDropdown=o,this.borderWidthInput=i,this.borderColorInput=n,this.backgroundInput=a,this.widthInput=l,this.heightInput=d,this.alignmentToolbar=h;const{saveButtonView:g,cancelButtonView:p}=this._createActionButtons();this.saveButtonView=g,this.cancelButtonView=p,this.backButtonView=this._createBackButton(),this._focusables=new tu,this._focusCycler=new qu({focusables:this._focusables,focusTracker:this.focusTracker,keystrokeHandler:this.keystrokes,actions:{focusPrevious:"shift + tab",focusNext:"tab"}});const f=new ju(e,{label:this.t("Table properties")});f.children.add(this.backButtonView,0),this.children.add(f),this.children.add(new Km(e,{labelView:s,children:[s,o,i,n],class:"ck-table-form__border-row"})),this.children.add(new Km(e,{children:[new Km(e,{labelView:u,children:[u,l,c,d],class:"ck-table-form__dimensions-row"}),new Km(e,{labelView:r,children:[r,a],class:"ck-table-form__background-row"})]})),this.children.add(new Km(e,{labelView:m,children:[m,h],class:"ck-table-properties-form__alignment-row"})),this.children.add(new Km(e,{children:[this.cancelButtonView,this.saveButtonView],class:"ck-table-form__action-row"})),this.setTemplate({tag:"form",attributes:{class:["ck","ck-form","ck-table-form","ck-table-properties-form"],tabindex:"-1"},children:this.children})}render(){super.render(),Ou({view:this}),[this.borderColorInput,this.backgroundInput].forEach((e=>{this._focusCycler.chain(e.fieldView.focusCycler)})),[this.borderStyleDropdown,this.borderWidthInput,this.borderColorInput,this.widthInput,this.heightInput,this.backgroundInput,this.alignmentToolbar,this.cancelButtonView,this.saveButtonView,this.backButtonView].forEach((e=>{this._focusables.add(e),this.focusTracker.add(e.element)})),this.keystrokes.listenTo(this.element)}destroy(){super.destroy(),this.focusTracker.destroy(),this.keystrokes.destroy()}focus(){this._focusCycler.focusFirst()}_createBorderFields(){const e=this.options.defaultTableProperties,t={style:e.borderStyle,width:e.borderWidth,color:e.borderColor},o=IC({colorConfig:this.options.borderColors,columns:5,defaultColorValue:t.color,colorPickerConfig:this.options.colorPickerConfig}),i=this.locale,n=this.t,s=n("Style"),r=new Du(i);r.text=n("Border");const a=kC(n),l=new Sh(i,rm);l.set({label:s,class:"ck-table-form__border-style"}),l.fieldView.buttonView.set({ariaLabel:s,ariaLabelledBy:void 0,isOn:!1,withText:!0,tooltip:s}),l.fieldView.buttonView.bind("label").to(this,"borderStyle",(e=>a[e||"none"])),l.fieldView.on("execute",(e=>{this.borderStyle=e.source._borderStyleValue})),l.bind("isEmpty").to(this,"borderStyle",(e=>!e)),Xh(l.fieldView,TC(this,t.style),{role:"menu",ariaLabel:s});const c=new Sh(i,nm);c.set({label:n("Width"),class:"ck-table-form__border-width"}),c.fieldView.bind("value").to(this,"borderWidth"),c.bind("isEnabled").to(this,"borderStyle",bA),c.fieldView.on("input",(()=>{this.borderWidth=c.fieldView.element.value}));const d=new Sh(i,o);return d.set({label:n("Color"),class:"ck-table-form__border-color"}),d.fieldView.bind("value").to(this,"borderColor"),d.bind("isEnabled").to(this,"borderStyle",bA),d.fieldView.on("input",(()=>{this.borderColor=d.fieldView.value})),this.on("change:borderStyle",((e,o,i,n)=>{bA(i)||(this.borderColor="",this.borderWidth=""),bA(n)||(this.borderColor=t.color,this.borderWidth=t.width)})),{borderRowLabel:r,borderStyleDropdown:l,borderColorInput:d,borderWidthInput:c}}_createBackgroundFields(){const e=this.locale,t=this.t,o=new Du(e);o.text=t("Background");const i=IC({colorConfig:this.options.backgroundColors,columns:5,defaultColorValue:this.options.defaultTableProperties.backgroundColor,colorPickerConfig:this.options.colorPickerConfig}),n=new Sh(e,i);return n.set({label:t("Color"),class:"ck-table-properties-form__background"}),n.fieldView.bind("value").to(this,"backgroundColor"),n.fieldView.on("input",(()=>{this.backgroundColor=n.fieldView.value})),{backgroundRowLabel:o,backgroundInput:n}}_createDimensionFields(){const e=this.locale,t=this.t,o=new Du(e);o.text=t("Dimensions");const i=new Sh(e,nm);i.set({label:t("Width"),class:"ck-table-form__dimensions-row__width"}),i.fieldView.bind("value").to(this,"width"),i.fieldView.on("input",(()=>{this.width=i.fieldView.element.value}));const n=new Au(e);n.setTemplate({tag:"span",attributes:{class:["ck-table-form__dimension-operator"]},children:[{text:"×"}]});const s=new Sh(e,nm);return s.set({label:t("Height"),class:"ck-table-form__dimensions-row__height"}),s.fieldView.bind("value").to(this,"height"),s.fieldView.on("input",(()=>{this.height=s.fieldView.element.value})),{dimensionsLabel:o,widthInput:i,operatorLabel:n,heightInput:s}}_createAlignmentFields(){const e=this.locale,t=this.t,o=new Du(e);o.text=t("Table Alignment");const i=new Wh(e);return i.set({role:"radiogroup",isCompact:!0,ariaLabel:t("Table alignment toolbar")}),PC({view:this,icons:{left:Jc,center:Gc,right:Zc,blockLeft:Yc,blockRight:Xc},toolbar:i,labels:this._alignmentLabels,propertyName:"alignment",defaultValue:this.options.defaultTableProperties.alignment}),{alignmentLabel:o,alignmentToolbar:i}}_createActionButtons(){const e=this.locale,t=this.t,o=new Lu(e),i=new Lu(e),n=[this.borderWidthInput,this.borderColorInput,this.backgroundInput,this.widthInput,this.heightInput];return o.set({label:t("Save"),class:"ck-button-action",type:"submit",withText:!0}),o.bind("isEnabled").toMany(n,"errorText",((...e)=>e.every((e=>!e)))),i.set({label:t("Cancel"),withText:!0}),i.delegate("execute").to(this,"cancel"),{saveButtonView:o,cancelButtonView:i}}_createBackButton(){const e=this.locale.t,t=new Lu(this.locale);return t.set({class:"ck-button-back",label:e("Back"),icon:ed,tooltip:!0}),t.delegate("execute").to(this,"cancel"),t}get _alignmentLabels(){const e=this.locale,t=this.t,o=t("Align table to the left with no text wrapping"),i=t("Align table to the right with no text wrapping"),n=t("Align table to the left with text wrapping"),s=t("Center table with no text wrapping"),r=t("Align table to the right with text wrapping");return"rtl"===e.uiLanguageDirection?{right:r,left:n,blockRight:i,center:s,blockLeft:o}:{blockLeft:o,center:s,blockRight:i,left:n,right:r}}}function bA(e){return"none"!==e}const wA={borderStyle:"tableBorderStyle",borderColor:"tableBorderColor",borderWidth:"tableBorderWidth",backgroundColor:"tableBackgroundColor",width:"tableWidth",height:"tableHeight",alignment:"tableAlignment"};class yA extends fc{_defaultContentTableProperties;_defaultLayoutTableProperties;_balloon;view=null;_viewWithContentTableDefaults=null;_viewWithLayoutTableDefaults=null;_undoStepBatch;_isReady;static get requires(){return[Qm]}static get pluginName(){return"TablePropertiesUI"}static get isOfficialPlugin(){return!0}constructor(e){super(e),e.config.define("table.tableProperties",{borderColors:SC,backgroundColors:SC})}init(){const e=this.editor;this._defaultContentTableProperties=fv(e.config.get("table.tableProperties.defaultProperties"),{includeAlignmentProperty:!0}),this._defaultLayoutTableProperties=pv(),this._balloon=e.plugins.get(Qm),e.ui.componentFactory.add("tableProperties",(()=>this._createTablePropertiesButton()))}_createTablePropertiesButton(){const e=this.editor,t=e.t,o=new Lu(e.locale);o.set({label:t("Table properties"),icon:'',tooltip:!0}),this.listenTo(o,"execute",(()=>this._showView()));const i=Object.values(wA).map((t=>e.commands.get(t)));return o.bind("isEnabled").toMany(i,"isEnabled",((...e)=>e.some((e=>e)))),o}destroy(){super.destroy(),this.view&&this.view.destroy()}_createPropertiesView(e){const t=this.editor,o=t.config.get("table.tableProperties"),i=Ch(o.borderColors),n=vh(t.locale,i),s=Ch(o.backgroundColors),r=vh(t.locale,s),a=!1!==o.colorPicker,l=new fA(t.locale,{borderColors:n,backgroundColors:r,defaultTableProperties:e,colorPickerConfig:!!a&&(o.colorPicker||{})}),c=t.t;l.render(),this.listenTo(l,"submit",(()=>{this._hideView()})),this.listenTo(l,"cancel",(()=>{this._undoStepBatch.operations.length&&t.execute("undo",this._undoStepBatch),this._hideView()})),l.keystrokes.set("Esc",((e,t)=>{this._hideView(),t()})),Su({emitter:l,activator:()=>this._isViewInBalloon,contextElements:[this._balloon.view.element],callback:()=>this._hideView()});const d=vC(c),u=CC(c);return l.on("change:borderStyle",this._getPropertyChangeCallback("tableBorderStyle")),l.on("change:borderColor",this._getValidatedPropertyChangeCallback({viewField:l.borderColorInput,commandName:"tableBorderColor",errorText:d,validator:AC})),l.on("change:borderWidth",this._getValidatedPropertyChangeCallback({viewField:l.borderWidthInput,commandName:"tableBorderWidth",errorText:u,validator:EC})),l.on("change:backgroundColor",this._getValidatedPropertyChangeCallback({viewField:l.backgroundInput,commandName:"tableBackgroundColor",errorText:d,validator:AC})),l.on("change:width",this._getValidatedPropertyChangeCallback({viewField:l.widthInput,commandName:"tableWidth",errorText:u,validator:xC})),l.on("change:height",this._getValidatedPropertyChangeCallback({viewField:l.heightInput,commandName:"tableHeight",errorText:u,validator:xC})),l.on("change:alignment",this._getPropertyChangeCallback("tableAlignment")),l}_fillViewFormFromCommandValues(){const e=this.editor.commands,t=e.get("tableBorderStyle");Object.entries(wA).map((([t,o])=>{const i=t,n=this.view===this._viewWithContentTableDefaults?this._defaultContentTableProperties[i]||"":this._defaultLayoutTableProperties[i]||"";return[i,e.get(o).value||n]})).forEach((([e,o])=>{("borderColor"!==e&&"borderWidth"!==e||"none"!==t.value)&&this.view.set(e,o)})),this._isReady=!0}_showView(){const e=this.editor,t=gC(e.editing.view.document.selection),o=t&&e.editing.mapper.toModelElement(t),i=!o||"layout"!==o.getAttribute("tableType");i&&!this._viewWithContentTableDefaults?this._viewWithContentTableDefaults=this._createPropertiesView(this._defaultContentTableProperties):i||this._viewWithLayoutTableDefaults||(this._viewWithLayoutTableDefaults=this._createPropertiesView(this._defaultLayoutTableProperties)),this.view=i?this._viewWithContentTableDefaults:this._viewWithLayoutTableDefaults,this.listenTo(e.ui,"update",(()=>{this._updateView()})),this._fillViewFormFromCommandValues(),this._balloon.add({view:this.view,position:MC(e)}),this._undoStepBatch=e.model.createBatch(),this.view.focus()}_hideView(){const e=this.editor;this.stopListening(e.ui,"update"),this._isReady=!1,this.view.saveButtonView.focus(),this._balloon.remove(this.view),this.editor.editing.view.focus()}_updateView(){const e=this.editor;gC(e.editing.view.document.selection)?this._isViewVisible&&FC(e,"table"):this._hideView()}get _isViewVisible(){return!!this.view&&this._balloon.visibleView===this.view}get _isViewInBalloon(){return!!this.view&&this._balloon.hasView(this.view)}_getPropertyChangeCallback(e){return(t,o,i)=>{this._isReady&&this.editor.execute(e,{value:i,batch:this._undoStepBatch})}}_getValidatedPropertyChangeCallback(e){const{commandName:t,viewField:o,validator:i,errorText:n}=e,s=zo((()=>{o.errorText=n}),500);return(e,n,r)=>{s.cancel(),this._isReady&&(i(r)?(this.editor.execute(t,{value:r,batch:this._undoStepBatch}),o.errorText=null):s())}}}function _A(e){const t=parseFloat(e);return e.endsWith("pt")?kA(96*t/72):e.endsWith("pc")?kA(12*t*96/72):e.endsWith("in")?kA(96*t):e.endsWith("cm")?kA(96*t/2.54):e.endsWith("mm")?kA(t/10*96/2.54):e}function kA(e){return Math.round(e)+"px"}function vA(e,t,o){if(!e.childCount)return;const i=new rl(e.document),n=function(e,t){const o=t.createRangeIn(e),i=[],n=new Set;for(const e of o.getItems()){if(!e.is("element")||!e.name.match(/^(p|h\d+|li|div)$/))continue;let t=VA(e);if(void 0===t||0!=parseFloat(t)||Array.from(e.getClassNames()).find((e=>e.startsWith("MsoList")))||(t=void 0),e.hasStyle("mso-list")&&"none"!==e.getStyle("mso-list")||void 0!==t&&n.has(t)){const o=RA(e);i.push({element:e,id:o.id,order:o.order,indent:o.indent,marginLeft:t}),void 0!==t&&n.add(t)}else n.clear()}return i}(e,i);if(!n.length)return;const s={},r=[];let a=AA();for(const e of n)if(void 0!==e.indent){EA(e)||(xA(i,r,a),a=AA(),r.length=0);const n=`${e.id}:${e.indent}`,l=Math.min(e.indent-1,r.length);if(lr.length-1||r[l].listElement.name!=a.type){0==l&&"ol"==a.type&&void 0!==e.id&&s[n]&&(a.startIndex=s[n]);const t=IA(a,i,o);if(0==r.length){const o=e.element.parent,n=o.getChildIndex(e.element)+1;i.insertChild(n,t,o)}else{const e=r[l-1].listItemElements;i.appendChild(t,e[e.length-1])}r[l]={...e,listElement:t,listItemElements:[]},0==l&&void 0!==e.id&&(s[n]=a.startIndex||1)}}const c="li"==e.element.name?e.element:i.createElement("li");CA(i,r,a,e,c,l),i.appendChild(c,r[l].listElement),r[l].listItemElements.push(c),0==l&&void 0!==e.id&&s[n]++,e.element!=c&&i.appendChild(e.element,c),OA(e.element,i),i.removeStyle("text-indent",e.element),i.removeStyle("margin-left",e.element)}else{const t=r.find((t=>t.marginLeft==e.marginLeft));if(t){const o=t.listItemElements;i.appendChild(e.element,o[o.length-1]),i.removeStyle("margin-left",e.element)}else r.length=0}xA(i,r,a)}function CA(e,t,o,i,n,s){if(void 0===i.marginLeft)return void(0==s&&(o.canApplyMarginOnList=!1));const r=parseFloat(i.marginLeft);let a=0;if(t.length>1){const e=t[t.length-2].listItemElements;if(e.length>0){const t=e[e.length-1].getStyle("margin-left");void 0!==t&&(a+=parseFloat(t))}}a+=40*t.length;const l=r-a,c=0!==l?kA(l):void 0;c&&(e.setStyle("margin-left",c,n),0==s&&o.canApplyMarginOnList&&(void 0===o.marginLeft&&(o.marginLeft=c),c!==o.marginLeft&&(o.canApplyMarginOnList=!1),o.topLevelListItemElements.push(n)))}function AA(){return{marginLeft:void 0,canApplyMarginOnList:!0,topLevelListItemElements:[]}}function xA(e,t,o){if(o.canApplyMarginOnList&&o.marginLeft&&o.topLevelListItemElements.length>0){e.setStyle("margin-left",o.marginLeft,t[0].listElement);for(const t of o.topLevelListItemElements)e.removeStyle("margin-left",t)}}function EA(e){const t=e.element.previousSibling;if(!t){const t=e.element.parent;return TA(t)&&(!t.previousSibling||TA(t.previousSibling))}return TA(t)}function TA(e){return e.is("element","ol")||e.is("element","ul")}function PA(e,t){const o=new RegExp(`@list l${e.id}:level${e.indent}\\s*({[^}]*)`,"gi"),i=/mso-level-number-format:([^;]{0,100});/gi,n=/mso-level-start-at:\s{0,100}([0-9]{0,10})\s{0,100};/gi,s=new RegExp(`@list\\s+l${e.id}:level\\d\\s*{[^{]*mso-level-text:"%\\d\\\\.`,"gi"),r=new RegExp(`@list l${e.id}:level\\d\\s*{[^{]*mso-level-number-format:`,"gi"),a=s.exec(t),l=r.exec(t),c=a&&!l,d=o.exec(t);let u="decimal",h="ol",m=null;if(d&&d[1]){const t=i.exec(d[1]);if(t&&t[1]&&(u=t[1].trim(),h="bullet"!==u&&"image"!==u?"ol":"ul"),"bullet"===u){const t=function(e){if("li"==e.name&&"ul"==e.parent.name&&e.parent.hasAttribute("type"))return e.parent.getAttribute("type");const t=function(e){if(e.getChild(0).is("$text"))return null;for(const t of e.getChildren()){if(!t.is("element","span"))continue;const e=t.getChild(0);if(e)return e.is("$text")?e:e.getChild(0)}return null}(e);if(!t)return null;const o=t._data;if("o"===o)return"circle";if("·"===o)return"disc";if("§"===o)return"square";return null}(e.element);t&&(u=t)}else{const e=n.exec(d[1]);e&&e[1]&&(m=parseInt(e[1]))}c&&(h="ol")}return{type:h,startIndex:m,style:SA(u),isLegalStyleList:c}}function SA(e){if(e.startsWith("arabic-leading-zero"))return"decimal-leading-zero";switch(e){case"alpha-upper":return"upper-alpha";case"alpha-lower":return"lower-alpha";case"roman-upper":return"upper-roman";case"roman-lower":return"lower-roman";case"circle":case"disc":case"square":return e;default:return null}}function IA(e,t,o){const i=t.createElement(e.type);return e.style&&t.setStyle("list-style-type",e.style,i),e.startIndex&&e.startIndex>1&&t.setAttribute("start",e.startIndex,i),e.isLegalStyleList&&o&&t.addClass("legal-list",i),i}function RA(e){const t=e.getStyle("mso-list");if(void 0===t)return{};const o=t.match(/(^|\s{1,100})l(\d+)/i),i=t.match(/\s{0,100}lfo(\d+)/i),n=t.match(/\s{0,100}level(\d+)/i);return o&&i&&n?{id:o[2],order:i[1],indent:parseInt(n[1])}:{indent:1}}function OA(e,t){const o=new ui({name:"span",styles:{"mso-list":"Ignore"}}),i=t.createRangeIn(e);for(const e of i)"elementStart"===e.type&&o.match(e.item)&&t.remove(e.item)}function VA(e){const t=e.getStyle("margin-left");return void 0===t||t.endsWith("px")?t:_A(t)}function DA(e,t){if(!e.childCount)return;const o=new rl(e.document),i=function(e,t){const o=t.createRangeIn(e),i=new ui({name:/v:(.+)/}),n=[];for(const e of o){if("elementStart"!=e.type)continue;const t=e.item,o=t.previousSibling,s=o&&o.is("element")?o.name:null,r=["Chart"],a=i.match(t),l=t.getAttribute("o:gfxdata"),c="v:shapetype"===s,d=l&&r.some((e=>t.getAttribute("id").includes(e)));a&&l&&!c&&!d&&n.push(e.item.getAttribute("id"))}return n}(e,o);!function(e,t,o){const i=o.createRangeIn(t),n=new ui({name:"img"}),s=[];for(const t of i)if(t.item.is("element")&&n.match(t.item)){const o=t.item,i=o.getAttribute("v:shapes")?o.getAttribute("v:shapes").split(" "):[];i.length&&i.every((t=>e.indexOf(t)>-1))?s.push(o):o.getAttribute("src")||s.push(o)}for(const e of s)o.remove(e)}(i,e,o),function(e,t,o){const i=o.createRangeIn(t),n=[];for(const t of i)if("elementStart"==t.type&&t.item.is("element","v:shape")){const o=t.item.getAttribute("id");if(e.includes(o))continue;s(t.item.parent.getChildren(),o)||n.push(t.item)}for(const e of n){const t={src:r(e)};e.hasAttribute("alt")&&(t.alt=e.getAttribute("alt"));const i=o.createElement("img",t);o.insertChild(e.index+1,i,e.parent)}function s(e,t){for(const o of e)if(o.is("element")){if("img"==o.name&&o.getAttribute("v:shapes")==t)return!0;if(s(o.getChildren(),t))return!0}return!1}function r(e){for(const t of e.getChildren())if(t.is("element")&&t.getAttribute("src"))return t.getAttribute("src")}}(i,e,o),function(e,t){const o=t.createRangeIn(e),i=new ui({name:/v:(.+)/}),n=[];for(const e of o)"elementStart"==e.type&&i.match(e.item)&&n.push(e.item);for(const e of n)t.remove(e)}(e,o);const n=function(e,t){const o=t.createRangeIn(e),i=new ui({name:"img"}),n=[];let s=0;for(const e of o)e.item.is("element")&&i.match(e.item)&&(e.item.getAttribute("src").startsWith("file://")&&n.push({element:e.item,imageIndex:s}),s++);return n}(e,o);n.length&&function(e,t,o){for(let i=0;iString.fromCharCode(parseInt(e,16)))).join(""))}function MA(e,t){for(const o of t.createRangeIn(e).getItems())o.is("element","table")&&("0px"===o.getStyle("width")&&t.removeStyle("width",o),"0"===o.getAttribute("width")&&t.removeAttribute("width",o))}function NA(e,t){const o=[],i=[];for(const{item:n}of e.createRangeIn(t))if(n.is("element")&&n.getStyle("mso-footnote-id")){o.unshift(n);const{nextSibling:e}=n;e?.is("$text")&&e.data.startsWith(" ")&&i.unshift(e)}for(const t of o)e.remove(t);for(const t of i){const o=t.data.substring(1);if(o.length>0){const i=t.parent,n=i.getChildIndex(t),s=e.createText(o);e.remove(t),e.insertChild(n,s,i)}else e.remove(t)}return t}function BA(e,t){const o=e.createElement("sup",{class:"footnote"}),i=e.createElement("a",{id:`ref-${t}`,href:`#${t}`});return e.appendChild(i,o),o}function LA(e,t){const o=e.createElement("li",{id:t,class:"footnote-definition"}),i=e.createElement("a",{href:`#ref-${t}`,class:"footnote-backlink"}),n=e.createElement("div",{class:"footnote-content"});return e.appendChild(e.createText("^"),i),e.appendChild(i,o),e.appendChild(n,o),{listItem:o,content:n}}const zA=//i,jA=/xmlns:o="urn:schemas-microsoft-com/i;class qA{document;hasMultiLevelListPlugin;hasTablePropertiesPlugin;constructor(e,t=!1,o=!1){this.document=e,this.hasMultiLevelListPlugin=t,this.hasTablePropertiesPlugin=o}isActive(e){return zA.test(e)||jA.test(e)}execute(e){const t=new rl(this.document),{body:o,stylesString:i}=e._parsedData;!function(e,t){const o=[];for(const i of t.createRangeIn(e)){const e=i.item;e.is("element","a")&&!e.hasAttribute("href")&&(e.hasAttribute("id")||e.hasAttribute("name"))&&o.push(e)}for(const e of o){const o=e.parent.getChildIndex(e)+1,i=e.getChildren();t.insertChild(o,i,e.parent)}}(o,t),vA(o,i,this.hasMultiLevelListPlugin),DA(o,e.dataTransfer.getData("text/rtf")),function(e,t,o=!1){for(const i of t.createRangeIn(e).getItems()){if(!i.is("element","table")&&!i.is("element","td")&&!i.is("element","th"))continue;if(o&&i.is("element","table")){const e=i.parent?.is("element","div")?i.parent:null,o=i.parent?.parent?.is("element","div")?i.parent.parent:null,n=e??o;n&&"center"===n.getAttribute("align")&&!i.getAttribute("align")?(t.setStyle("margin-left","auto",i),t.setStyle("margin-right","auto",i)):n&&"right"===n.getAttribute("align")&&!i.getAttribute("align")?(t.setStyle("margin-left","auto",i),t.setStyle("margin-right","0",i)):n||i.getAttribute("align")||(t.setStyle("margin-left","0",i),t.setStyle("margin-right","auto",i))}const e=["left","top","right","bottom"];if(e.every((e=>!i.hasStyle(`border-${e}-style`))))t.setStyle("border-style","none",i);else for(const o of e)i.hasStyle(`border-${o}-style`)||t.setStyle(`border-${o}-style`,"none",i);const n=["width","height",...e.map((e=>`border-${e}-width`)),...e.map((e=>`padding-${e}`))];for(const e of n)i.hasStyle(e)&&t.setStyle(e,_A(i.getStyle(e)),i)}}(o,t,this.hasTablePropertiesPlugin),MA(o,t),function(e,t){const o=new Map,i=new Map;let n=null;for(const{item:s}of t.createRangeIn(e))if(s.is("element"))if("footnote-list"!==s.getStyle("mso-element")){if(s.hasStyle("mso-footnote-id")){const e=s.findAncestor("element",(e=>"footnote"===e.getStyle("mso-element")));if(e){const t=e.getAttribute("id");i.set(t,e)}else{const e=s.getStyle("mso-footnote-id");o.set(e,s)}}}else n=s;if(!o.size||!n)return;const s=function(e){return e.createElement("ol",{class:"footnotes"})}(t);t.replace(n,s);for(const[e,n]of o){const o=i.get(e);if(!o)continue;t.replace(n,BA(t,e));const r=LA(t,e);NA(t,o);for(const e of o.getChildren()){let o=e;e.is("element")&&(o=t.clone(e,!0)),t.appendChild(o,r.content)}t.appendChild(r.listItem,s)}}(o,t),function(e){const t=[],o=new rl(e.document);for(const{item:i}of o.createRangeIn(e))if(i.is("element")){for(const e of i.getClassNames())/\bmso/gi.exec(e)&&o.removeClass(e,i);for(const e of i.getStyleNames())/\bmso/gi.exec(e)&&o.removeStyle(e,i);(i.is("element","w:sdt")||i.is("element","w:sdtpr")&&i.isEmpty||i.is("element","o:p")&&i.isEmpty)&&t.push(i)}for(const e of t){const t=e.parent,i=t.getChildIndex(e);o.insertChild(i,e.getChildren(),t),o.remove(e)}}(o),e.content=o}}function $A(e,t,o,{blockElements:i,inlineObjectElements:n}){let s=o.createPositionAt(e,"forward"==t?"after":"before");return s=s.getLastMatchingPosition((({item:e})=>e.is("element")&&!i.includes(e.name)&&!n.includes(e.name)),{direction:t}),"forward"==t?s.nodeAfter:s.nodeBefore}function HA(e,t){return!!e&&e.is("element")&&t.includes(e.name)}function WA(e){let t=e;for(;t;){if(t.is("element")){const e=t.getStyle?.("white-space");if("pre-wrap"===e)return!0}t=t.parent}return!1}function UA(e,t,o){const{parent:i,data:n}=e,s=n.replaceAll("\t"," ".repeat(o)),r=i.getChildIndex(e);t.remove(e),t.insertChild(r,t.createText(s),i)}const KA=/id=("|')docs-internal-guid-[-0-9a-f]+("|')/i;class GA{document;constructor(e){this.document=e}isActive(e){return KA.test(e)}execute(e){const t=new rl(this.document),{body:o}=e._parsedData;!function(e,t){for(const o of e.getChildren())if(o.is("element","b")&&"normal"===o.getStyle("font-weight")){const i=e.getChildIndex(o);t.remove(o),t.insertChild(i,o.getChildren(),e)}}(o,t),function(e,t){for(const o of t.createRangeIn(e)){const e=o.item;if(e.is("element","li")){const o=e.getChild(0);o&&o.is("element","p")&&t.unwrapElement(o)}}}(o,t),function(e,t){const o=new Hi(t.document.stylesProcessor),i=new Rn(o,{renderingMode:"data"}),n=i.blockElements,s=i.inlineObjectElements,r=[];for(const o of t.createRangeIn(e)){const e=o.item;if(e.is("element","br")){const o=$A(e,"forward",t,{blockElements:n,inlineObjectElements:s}),i=$A(e,"backward",t,{blockElements:n,inlineObjectElements:s}),a=HA(o,n);(HA(i,n)||a)&&r.push(e)}}for(const e of r)e.hasClass("Apple-interchange-newline")?t.remove(e):t.replace(e,t.createElement("p"))}(o,t),function(e,t,o){const i=new Set;for(const o of t.createRangeIn(e).getItems())o.is("view:$textProxy")&&o.data.includes("\t")&&WA(o.parent)&&i.add(o.textNode);for(const e of i)UA(e,t,o)}(o,t,8),e.content=o}}const JA=/(\s+)<\/span>/g,((e,t)=>1===t.length?" ":Array(t.length+1).join("  ").substr(0,t.length)))}function YA(e,t){const o=new DOMParser,i=function(e){return QA(QA(e)).replace(/([^\S\r\n]*?)[\r\n]+([^\S\r\n]*<\/span>)/g,"$1$2").replace(/<\/span>/g,"").replace(/()[\r\n]+(<\/span>)/g,"$1 $2").replace(/ <\//g," <\/o:p>/g," ").replace(/( |\u00A0)<\/o:p>/g,"").replace(/>([^\S\r\n]*[\r\n]\s*)<")}(function(e){const t="",o="",i=e.indexOf(t);if(i<0)return e;const n=e.indexOf(o,i+t.length);return e.substring(0,i+t.length)+(n>=0?e.substring(n):"")}(e=(e=e.replace(//,!0],[/^<\?/,/\?>/,!0],[/^/,!0],[/^/,!0],[new RegExp("^|$))","i"),/^$/,!0],[new RegExp(HT.source+"\\s*$"),/^$/,!1]];const UT=[["table",function(e,t,o,i){if(t+2>o)return!1;let n=t+1;if(e.sCount[n]=4)return!1;let s=e.bMarks[n]+e.tShift[n];if(s>=e.eMarks[n])return!1;const r=e.src.charCodeAt(s++);if(124!==r&&45!==r&&58!==r)return!1;if(s>=e.eMarks[n])return!1;const a=e.src.charCodeAt(s++);if(124!==a&&45!==a&&58!==a&&!eT(a))return!1;if(45===r&&eT(a))return!1;for(;s=4)return!1;c=BT(l),c.length&&""===c[0]&&c.shift(),c.length&&""===c[c.length-1]&&c.pop();const u=c.length;if(0===u||u!==d.length)return!1;if(i)return!0;const h=e.parentType;e.parentType="table";const m=e.md.block.ruler.getRules("blockquote"),g=[t,0];e.push("table_open","table",1).map=g,e.push("thead_open","thead",1).map=[t,t+1],e.push("tr_open","tr",1).map=[t,t+1];for(let t=0;t=4)break;if(c=BT(l),c.length&&""===c[0]&&c.shift(),c.length&&""===c[c.length-1]&&c.pop(),f+=u-c.length,f>65536)break;if(n===t+2){e.push("tbody_open","tbody",1).map=p=[t+2,0]}e.push("tr_open","tr",1).map=[n,n+1];for(let t=0;t=4))break;i++,n=i}e.line=n;const s=e.push("code_block","code",0);return s.content=e.getLines(t,n,4+e.blkIndent,!1)+"\n",s.map=[t,e.line],!0}],["fence",function(e,t,o,i){let n=e.bMarks[t]+e.tShift[t],s=e.eMarks[t];if(e.sCount[t]-e.blkIndent>=4)return!1;if(n+3>s)return!1;const r=e.src.charCodeAt(n);if(126!==r&&96!==r)return!1;let a=n;n=e.skipChars(n,r);let l=n-a;if(l<3)return!1;const c=e.src.slice(a,n),d=e.src.slice(n,s);if(96===r&&d.indexOf(String.fromCharCode(r))>=0)return!1;if(i)return!0;let u=t,h=!1;for(;(u++,!(u>=o))&&(n=a=e.bMarks[u]+e.tShift[u],s=e.eMarks[u],!(n=4||(n=e.skipChars(n,r),n-a=4)return!1;if(62!==e.src.charCodeAt(n))return!1;if(i)return!0;const a=[],l=[],c=[],d=[],u=e.md.block.ruler.getRules("blockquote"),h=e.parentType;e.parentType="blockquote";let m,g=!1;for(m=t;m=s)break;if(62===e.src.charCodeAt(n++)&&!t){let t,o,i=e.sCount[m]+1;32===e.src.charCodeAt(n)?(n++,i++,o=!1,t=!0):9===e.src.charCodeAt(n)?(t=!0,(e.bsCount[m]+i)%4==3?(n++,i++,o=!1):o=!0):t=!1;let r=i;for(a.push(e.bMarks[m]),e.bMarks[m]=n;n=s,l.push(e.bsCount[m]),e.bsCount[m]=e.sCount[m]+1+(t?1:0),c.push(e.sCount[m]),e.sCount[m]=r-i,d.push(e.tShift[m]),e.tShift[m]=n-e.bMarks[m];continue}if(g)break;let i=!1;for(let t=0,n=u.length;t";const b=[t,0];f.map=b,e.md.block.tokenize(e,t,m),e.push("blockquote_close","blockquote",-1).markup=">",e.lineMax=r,e.parentType=h,b[1]=e.line;for(let o=0;o=4)return!1;let s=e.bMarks[t]+e.tShift[t];const r=e.src.charCodeAt(s++);if(42!==r&&45!==r&&95!==r)return!1;let a=1;for(;s=4)return!1;if(e.listIndent>=0&&e.sCount[l]-e.listIndent>=4&&e.sCount[l]=e.blkIndent&&(m=!0),(h=zT(e,l))>=0){if(d=!0,r=e.bMarks[l]+e.tShift[l],u=Number(e.src.slice(r,h-1)),m&&1!==u)return!1}else{if(!((h=LT(e,l))>=0))return!1;d=!1}if(m&&e.skipSpaces(h)>=e.eMarks[l])return!1;if(i)return!0;const g=e.src.charCodeAt(h-1),p=e.tokens.length;d?(a=e.push("ordered_list_open","ol",1),1!==u&&(a.attrs=[["start",u]])):a=e.push("bullet_list_open","ul",1);const f=[l,0];a.map=f,a.markup=String.fromCharCode(g);let b=!1;const w=e.md.block.ruler.getRules("list"),y=e.parentType;for(e.parentType="list";l=n?1:i-t,m>4&&(m=1);const p=t+m;a=e.push("list_item_open","li",1),a.markup=String.fromCharCode(g);const f=[l,0];a.map=f,d&&(a.info=e.src.slice(r,h-1));const y=e.tight,_=e.tShift[l],k=e.sCount[l],v=e.listIndent;if(e.listIndent=e.blkIndent,e.blkIndent=p,e.tight=!0,e.tShift[l]=u-e.bMarks[l],e.sCount[l]=i,u>=n&&e.isEmpty(l+1)?e.line=Math.min(e.line+2,o):e.md.block.tokenize(e,l,o,!0),e.tight&&!b||(c=!1),b=e.line-l>1&&e.isEmpty(e.line-1),e.blkIndent=e.listIndent,e.listIndent=v,e.tShift[l]=_,e.sCount[l]=k,e.tight=y,a=e.push("list_item_close","li",-1),a.markup=String.fromCharCode(g),l=e.line,f[1]=l,l>=o)break;if(e.sCount[l]=4)break;let C=!1;for(let t=0,i=w.length;t=4)return!1;if(91!==e.src.charCodeAt(n))return!1;function a(t){const o=e.lineMax;if(t>=o||e.isEmpty(t))return null;let i=!1;if(e.sCount[t]-e.blkIndent>3&&(i=!0),e.sCount[t]<0&&(i=!0),!i){const i=e.md.block.ruler.getRules("reference"),n=e.parentType;e.parentType="reference";let s=!1;for(let n=0,r=i.length;n=4)return!1;if(!e.md.options.html)return!1;if(60!==e.src.charCodeAt(n))return!1;let r=e.src.slice(n,s),a=0;for(;a=4)return!1;let r=e.src.charCodeAt(n);if(35!==r||n>=s)return!1;let a=1;for(r=e.src.charCodeAt(++n);35===r&&n6||nn&&eT(e.src.charCodeAt(l-1))&&(s=l),e.line=t+1;const c=e.push("heading_open","h"+String(a),1);c.markup="########".slice(0,a),c.map=[t,e.line];const d=e.push("inline","",0);return d.content=e.src.slice(n,s).trim(),d.map=[t,e.line],d.children=[],e.push("heading_close","h"+String(a),-1).markup="########".slice(0,a),!0},["paragraph","reference","blockquote"]],["lheading",function(e,t,o){const i=e.md.block.ruler.getRules("paragraph");if(e.sCount[t]-e.blkIndent>=4)return!1;const n=e.parentType;e.parentType="paragraph";let s,r=0,a=t+1;for(;a3)continue;if(e.sCount[a]>=e.blkIndent){let t=e.bMarks[a]+e.tShift[a];const o=e.eMarks[a];if(t=o))){r=61===s?1:2;break}}if(e.sCount[a]<0)continue;let t=!1;for(let n=0,s=i.length;n3)continue;if(e.sCount[s]<0)continue;let t=!1;for(let n=0,r=i.length;n=o))&&!(e.sCount[r]=s){e.line=o;break}const t=e.line;let l=!1;for(let s=0;s=e.line)throw new Error("block rule didn't increment state.line");break}if(!l)throw new Error("none of the block rules matched");e.tight=!a,e.isEmpty(e.line-1)&&(a=!0),r=e.line,r0&&(this.level++,this._prev_delimiters.push(this.delimiters),this.delimiters=[],n={delimiters:this.delimiters}),this.pendingLevel=this.level,this.tokens.push(i),this.tokens_meta.push(n),i},JT.prototype.scanDelims=function(e,t){const o=this.posMax,i=this.src.charCodeAt(e),n=e>0?this.src.charCodeAt(e-1):32;let s=e;for(;s?@[]^_`{|}~-".split("").forEach((function(e){XT[e.charCodeAt(0)]=1}));const tP={tokenize:function(e,t){const o=e.pos,i=e.src.charCodeAt(o);if(t)return!1;if(126!==i)return!1;const n=e.scanDelims(e.pos,!0);let s=n.length;const r=String.fromCharCode(i);if(s<2)return!1;let a;s%2&&(a=e.push("text","",0),a.content=r,s--);for(let t=0;t=0;o--){const i=t[o];if(95!==i.marker&&42!==i.marker)continue;if(-1===i.end)continue;const n=t[i.end],s=o>0&&t[o-1].end===i.end+1&&t[o-1].marker===i.marker&&t[o-1].token===i.token-1&&t[i.end+1].token===n.token+1,r=String.fromCharCode(i.marker),a=e.tokens[i.token];a.type=s?"strong_open":"em_open",a.tag=s?"strong":"em",a.nesting=1,a.markup=s?r+r:r,a.content="";const l=e.tokens[n.token];l.type=s?"strong_close":"em_close",l.tag=s?"strong":"em",l.nesting=-1,l.markup=s?r+r:r,l.content="",s&&(e.tokens[t[o-1].token].content="",e.tokens[t[i.end+1].token].content="",o--)}}const iP={tokenize:function(e,t){const o=e.pos,i=e.src.charCodeAt(o);if(t)return!1;if(95!==i&&42!==i)return!1;const n=e.scanDelims(e.pos,42===i);for(let t=0;t\x00-\x20]*)$/;const rP=/^&#((?:x[a-f0-9]{1,6}|[0-9]{1,7}));/i,aP=/^&([a-z][a-z0-9]{1,31});/i;function lP(e){const t={},o=e.length;if(!o)return;let i=0,n=-2;const s=[];for(let r=0;ra;l-=s[l]+1){const t=e[l];if(t.marker===o.marker&&(t.open&&t.end<0)){let i=!1;if((t.close||o.open)&&(t.length+o.length)%3==0&&(t.length%3==0&&o.length%3==0||(i=!0)),!i){const i=l>0&&!e[l-1].open?s[l-1]+1:0;s[r]=r-l+i,s[l]=i,o.open=!1,t.end=r,t.close=!1,c=-1,n=-2;break}}}-1!==c&&(t[o.marker][(o.open?3:0)+(o.length||0)%3]=c)}}const cP=[["text",function(e,t){let o=e.pos;for(;o0)return!1;const o=e.pos;if(o+3>e.posMax)return!1;if(58!==e.src.charCodeAt(o))return!1;if(47!==e.src.charCodeAt(o+1))return!1;if(47!==e.src.charCodeAt(o+2))return!1;const i=e.pending.match(YT);if(!i)return!1;const n=i[1],s=e.md.linkify.matchAtStart(e.src.slice(o-n.length));if(!s)return!1;let r=s.url;if(r.length<=n.length)return!1;r=r.replace(/\*+$/,"");const a=e.md.normalizeLink(r);if(!e.md.validateLink(a))return!1;if(!t){e.pending=e.pending.slice(0,-n.length);const t=e.push("link_open","a",1);t.attrs=[["href",a]],t.markup="linkify",t.info="auto";e.push("text","",0).content=e.md.normalizeLinkText(r);const o=e.push("link_close","a",-1);o.markup="linkify",o.info="auto"}return e.pos+=r.length-n.length,!0}],["newline",function(e,t){let o=e.pos;if(10!==e.src.charCodeAt(o))return!1;const i=e.pending.length-1,n=e.posMax;if(!t)if(i>=0&&32===e.pending.charCodeAt(i))if(i>=1&&32===e.pending.charCodeAt(i-1)){let t=i-1;for(;t>=1&&32===e.pending.charCodeAt(t-1);)t--;e.pending=e.pending.slice(0,t),e.push("hardbreak","br",0)}else e.pending=e.pending.slice(0,-1),e.push("softbreak","br",0);else e.push("softbreak","br",0);for(o++;o=i)return!1;let n=e.src.charCodeAt(o);if(10===n){for(t||e.push("hardbreak","br",0),o++;o=55296&&n<=56319&&o+1=56320&&t<=57343&&(s+=e.src[o+1],o++)}const r="\\"+s;if(!t){const t=e.push("text_special","",0);n<256&&0!==XT[n]?t.content=s:t.content=r,t.markup=r,t.info="escape"}return e.pos=o+1,!0}],["backticks",function(e,t){let o=e.pos;if(96!==e.src.charCodeAt(o))return!1;const i=o;o++;const n=e.posMax;for(;o=u)return!1;if(l=g,n=e.md.helpers.parseLinkDestination(e.src,g,e.posMax),n.ok){for(r=e.md.normalizeLink(n.str),e.md.validateLink(r)?g=n.pos:r="",l=g;g=u||41!==e.src.charCodeAt(g))&&(c=!0),g++}if(c){if(void 0===e.env.references)return!1;if(g=0?i=e.src.slice(l,g++):g=m+1):g=m+1,i||(i=e.src.slice(h,m)),s=e.env.references[nT(i)],!s)return e.pos=d,!1;r=s.href,a=s.title}if(!t){e.pos=h,e.posMax=m;const t=[["href",r]];e.push("link_open","a",1).attrs=t,a&&t.push(["title",a]),e.linkLevel++,e.md.inline.tokenize(e),e.linkLevel--,e.push("link_close","a",-1)}return e.pos=g,e.posMax=u,!0}],["image",function(e,t){let o,i,n,s,r,a,l,c,d="";const u=e.pos,h=e.posMax;if(33!==e.src.charCodeAt(e.pos))return!1;if(91!==e.src.charCodeAt(e.pos+1))return!1;const m=e.pos+2,g=e.md.helpers.parseLinkLabel(e,e.pos+1,!1);if(g<0)return!1;if(s=g+1,s=h)return!1;for(c=s,a=e.md.helpers.parseLinkDestination(e.src,s,e.posMax),a.ok&&(d=e.md.normalizeLink(a.str),e.md.validateLink(d)?s=a.pos:d=""),c=s;s=h||41!==e.src.charCodeAt(s))return e.pos=u,!1;s++}else{if(void 0===e.env.references)return!1;if(s=0?n=e.src.slice(c,s++):s=g+1):s=g+1,n||(n=e.src.slice(m,g)),r=e.env.references[nT(n)],!r)return e.pos=u,!1;d=r.href,l=r.title}if(!t){i=e.src.slice(m,g);const t=[];e.md.inline.parse(i,e.md,e.env,t);const o=e.push("image","img",0),n=[["src",d],["alt",""]];o.attrs=n,o.children=t,o.content=i,l&&n.push(["title",l])}return e.pos=s,e.posMax=h,!0}],["autolink",function(e,t){let o=e.pos;if(60!==e.src.charCodeAt(o))return!1;const i=e.pos,n=e.posMax;for(;;){if(++o>=n)return!1;const t=e.src.charCodeAt(o);if(60===t)return!1;if(62===t)break}const s=e.src.slice(i+1,o);if(sP.test(s)){const o=e.md.normalizeLink(s);if(!e.md.validateLink(o))return!1;if(!t){const t=e.push("link_open","a",1);t.attrs=[["href",o]],t.markup="autolink",t.info="auto";e.push("text","",0).content=e.md.normalizeLinkText(s);const i=e.push("link_close","a",-1);i.markup="autolink",i.info="auto"}return e.pos+=s.length+2,!0}if(nP.test(s)){const o=e.md.normalizeLink("mailto:"+s);if(!e.md.validateLink(o))return!1;if(!t){const t=e.push("link_open","a",1);t.attrs=[["href",o]],t.markup="autolink",t.info="auto";e.push("text","",0).content=e.md.normalizeLinkText(s);const i=e.push("link_close","a",-1);i.markup="autolink",i.info="auto"}return e.pos+=s.length+2,!0}return!1}],["html_inline",function(e,t){if(!e.md.options.html)return!1;const o=e.posMax,i=e.pos;if(60!==e.src.charCodeAt(i)||i+2>=o)return!1;const n=e.src.charCodeAt(i+1);if(33!==n&&63!==n&&47!==n&&!function(e){const t=32|e;return t>=97&&t<=122}(n))return!1;const s=e.src.slice(i).match($T);if(!s)return!1;if(!t){const t=e.push("html_inline","",0);t.content=s[0],r=t.content,/^\s]/i.test(r)&&e.linkLevel++,function(e){return/^<\/a\s*>/i.test(e)}(t.content)&&e.linkLevel--}var r;return e.pos+=s[0].length,!0}],["entity",function(e,t){const o=e.pos,i=e.posMax;if(38!==e.src.charCodeAt(o))return!1;if(o+1>=i)return!1;if(35===e.src.charCodeAt(o+1)){const i=e.src.slice(o).match(rP);if(i){if(!t){const t="x"===i[1][0].toLowerCase()?parseInt(i[1].slice(1),16):parseInt(i[1],10),o=e.push("text_special","",0);o.content=zE(t)?jE(t):jE(65533),o.markup=i[0],o.info="entity"}return e.pos+=i[0].length,!0}}else{const i=e.src.slice(o).match(aP);if(i){const o=SE(i[0]);if(o!==i[0]){if(!t){const t=e.push("text_special","",0);t.content=o,t.markup=i[0],t.info="entity"}return e.pos+=i[0].length,!0}}}return!1}]],dP=[["balance_pairs",function(e){const t=e.tokens_meta,o=e.tokens_meta.length;lP(e.delimiters);for(let e=0;e0&&i++,"text"===n[t].type&&t+1=e.pos)throw new Error("inline rule didn't increment state.pos");break}}else e.pos=e.posMax;r||e.pos++,s[t]=e.pos},uP.prototype.tokenize=function(e){const t=this.ruler.getRules(""),o=t.length,i=e.posMax,n=e.md.options.maxNesting;for(;e.pos=e.pos)throw new Error("inline rule didn't increment state.pos");break}if(r){if(e.pos>=i)break}else e.pending+=e.src[e.pos++]}e.pending&&e.pushPending()},uP.prototype.parse=function(e,t,o,i){const n=new this.State(e,t,o,i);this.tokenize(n);const s=this.ruler2.getRules(""),r=s.length;for(let e=0;e=3&&":"===e[t-3]||t>=3&&"/"===e[t-3]?0:i.match(o.re.no_http)[0].length:0}},"mailto:":{validate:function(e,t,o){const i=e.slice(t);return o.re.mailto||(o.re.mailto=new RegExp("^"+o.re.src_email_name+"@"+o.re.src_host_strict,"i")),o.re.mailto.test(i)?i.match(o.re.mailto)[0].length:0}}},yP="biz|com|edu|gov|net|org|pro|web|xxx|aero|asia|coop|info|museum|name|shop|рф".split("|");function _P(e){const t=e.re=function(e){const t={};e=e||{},t.src_Any=lE.source,t.src_Cc=cE.source,t.src_Z=uE.source,t.src_P=rE.source,t.src_ZPCc=[t.src_Z,t.src_P,t.src_Cc].join("|"),t.src_ZCc=[t.src_Z,t.src_Cc].join("|");const o="[><|]";return t.src_pseudo_letter="(?:(?![><|]|"+t.src_ZPCc+")"+t.src_Any+")",t.src_ip4="(?:(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)",t.src_auth="(?:(?:(?!"+t.src_ZCc+"|[@/\\[\\]()]).)+@)?",t.src_port="(?::(?:6(?:[0-4]\\d{3}|5(?:[0-4]\\d{2}|5(?:[0-2]\\d|3[0-5])))|[1-5]?\\d{1,4}))?",t.src_host_terminator="(?=$|[><|]|"+t.src_ZPCc+")(?!"+(e["---"]?"-(?!--)|":"-|")+"_|:\\d|\\.-|\\.(?!$|"+t.src_ZPCc+"))",t.src_path="(?:[/?#](?:(?!"+t.src_ZCc+"|"+o+"|[()[\\]{}.,\"'?!\\-;]).|\\[(?:(?!"+t.src_ZCc+"|\\]).)*\\]|\\((?:(?!"+t.src_ZCc+"|[)]).)*\\)|\\{(?:(?!"+t.src_ZCc+'|[}]).)*\\}|\\"(?:(?!'+t.src_ZCc+'|["]).)+\\"|\\\'(?:(?!'+t.src_ZCc+"|[']).)+\\'|\\'(?="+t.src_pseudo_letter+"|[-])|\\.{2,}[a-zA-Z0-9%/&]|\\.(?!"+t.src_ZCc+"|[.]|$)|"+(e["---"]?"\\-(?!--(?:[^-]|$))(?:-*)|":"\\-+|")+",(?!"+t.src_ZCc+"|$)|;(?!"+t.src_ZCc+"|$)|\\!+(?!"+t.src_ZCc+"|[!]|$)|\\?(?!"+t.src_ZCc+"|[?]|$))+|\\/)?",t.src_email_name='[\\-;:&=\\+\\$,\\.a-zA-Z0-9_][\\-;:&=\\+\\$,\\"\\.a-zA-Z0-9_]*',t.src_xn="xn--[a-z0-9\\-]{1,59}",t.src_domain_root="(?:"+t.src_xn+"|"+t.src_pseudo_letter+"{1,63})",t.src_domain="(?:"+t.src_xn+"|(?:"+t.src_pseudo_letter+")|(?:"+t.src_pseudo_letter+"(?:-|"+t.src_pseudo_letter+"){0,61}"+t.src_pseudo_letter+"))",t.src_host="(?:(?:(?:(?:"+t.src_domain+")\\.)*"+t.src_domain+"))",t.tpl_host_fuzzy="(?:"+t.src_ip4+"|(?:(?:(?:"+t.src_domain+")\\.)+(?:%TLDS%)))",t.tpl_host_no_ip_fuzzy="(?:(?:(?:"+t.src_domain+")\\.)+(?:%TLDS%))",t.src_host_strict=t.src_host+t.src_host_terminator,t.tpl_host_fuzzy_strict=t.tpl_host_fuzzy+t.src_host_terminator,t.src_host_port_strict=t.src_host+t.src_port+t.src_host_terminator,t.tpl_host_port_fuzzy_strict=t.tpl_host_fuzzy+t.src_port+t.src_host_terminator,t.tpl_host_port_no_ip_fuzzy_strict=t.tpl_host_no_ip_fuzzy+t.src_port+t.src_host_terminator,t.tpl_host_fuzzy_test="localhost|www\\.|\\.\\d{1,3}\\.|(?:\\.(?:%TLDS%)(?:"+t.src_ZPCc+"|>|$))",t.tpl_email_fuzzy='(^|[><|]|"|\\(|'+t.src_ZCc+")("+t.src_email_name+"@"+t.tpl_host_fuzzy_strict+")",t.tpl_link_fuzzy="(^|(?![.:/\\-_@])(?:[$+<=>^`||]|"+t.src_ZPCc+"))((?![$+<=>^`||])"+t.tpl_host_port_fuzzy_strict+t.src_path+")",t.tpl_link_no_ip_fuzzy="(^|(?![.:/\\-_@])(?:[$+<=>^`||]|"+t.src_ZPCc+"))((?![$+<=>^`||])"+t.tpl_host_port_no_ip_fuzzy_strict+t.src_path+")",t}(e.__opts__),o=e.__tlds__.slice();function i(e){return e.replace("%TLDS%",t.src_tlds)}e.onCompile(),e.__tlds_replaced__||o.push("a[cdefgilmnoqrstuwxz]|b[abdefghijmnorstvwyz]|c[acdfghiklmnoruvwxyz]|d[ejkmoz]|e[cegrstu]|f[ijkmor]|g[abdefghilmnpqrstuwy]|h[kmnrtu]|i[delmnoqrst]|j[emop]|k[eghimnprwyz]|l[abcikrstuvy]|m[acdeghklmnopqrstuvwxyz]|n[acefgilopruz]|om|p[aefghklmnrstwy]|qa|r[eosuw]|s[abcdeghijklmnortuvxyz]|t[cdfghjklmnortvwz]|u[agksyz]|v[aceginu]|w[fs]|y[et]|z[amw]"),o.push(t.src_xn),t.src_tlds=o.join("|"),t.email_fuzzy=RegExp(i(t.tpl_email_fuzzy),"i"),t.link_fuzzy=RegExp(i(t.tpl_link_fuzzy),"i"),t.link_no_ip_fuzzy=RegExp(i(t.tpl_link_no_ip_fuzzy),"i"),t.host_fuzzy_test=RegExp(i(t.tpl_host_fuzzy_test),"i");const n=[];function s(e,t){throw new Error('(LinkifyIt) Invalid schema "'+e+'": '+t)}e.__compiled__={},Object.keys(e.__schemas__).forEach((function(t){const o=e.__schemas__[t];if(null===o)return;const i={validate:null,link:null};if(e.__compiled__[t]=i,"[object Object]"===gP(o))return!function(e){return"[object RegExp]"===gP(e)}(o.validate)?pP(o.validate)?i.validate=o.validate:s(t,o):i.validate=function(e){return function(t,o){const i=t.slice(o);return e.test(i)?i.match(e)[0].length:0}}(o.validate),void(pP(o.normalize)?i.normalize=o.normalize:o.normalize?s(t,o):i.normalize=function(e,t){t.normalize(e)});!function(e){return"[object String]"===gP(e)}(o)?s(t,o):n.push(t)})),n.forEach((function(t){e.__compiled__[e.__schemas__[t]]&&(e.__compiled__[t].validate=e.__compiled__[e.__schemas__[t]].validate,e.__compiled__[t].normalize=e.__compiled__[e.__schemas__[t]].normalize)})),e.__compiled__[""]={validate:null,normalize:function(e,t){t.normalize(e)}};const r=Object.keys(e.__compiled__).filter((function(t){return t.length>0&&e.__compiled__[t]})).map(fP).join("|");e.re.schema_test=RegExp("(^|(?!_)(?:[><|]|"+t.src_ZPCc+"))("+r+")","i"),e.re.schema_search=RegExp("(^|(?!_)(?:[><|]|"+t.src_ZPCc+"))("+r+")","ig"),e.re.schema_at_start=RegExp("^"+e.re.schema_search.source,"i"),e.re.pretest=RegExp("("+e.re.schema_test.source+")|("+e.re.host_fuzzy_test.source+")|@","i"),function(e){e.__index__=-1,e.__text_cache__=""}(e)}function kP(e,t){const o=e.__index__,i=e.__last_index__,n=e.__text_cache__.slice(o,i);this.schema=e.__schema__.toLowerCase(),this.index=o+t,this.lastIndex=i+t,this.raw=n,this.text=n,this.url=n}function vP(e,t){const o=new kP(e,t);return e.__compiled__[o.schema].normalize(o,e),o}function CP(e,t){if(!(this instanceof CP))return new CP(e,t);var o;t||(o=e,Object.keys(o||{}).reduce((function(e,t){return e||bP.hasOwnProperty(t)}),!1)&&(t=e,e={})),this.__opts__=mP({},bP,t),this.__index__=-1,this.__last_index__=-1,this.__schema__="",this.__text_cache__="",this.__schemas__=mP({},wP,e),this.__compiled__={},this.__tlds__=yP,this.__tlds_replaced__=!1,this.re={},_P(this)}CP.prototype.add=function(e,t){return this.__schemas__[e]=t,_P(this),this},CP.prototype.set=function(e){return this.__opts__=mP(this.__opts__,e),this},CP.prototype.test=function(e){if(this.__text_cache__=e,this.__index__=-1,!e.length)return!1;let t,o,i,n,s,r,a,l,c;if(this.re.schema_test.test(e))for(a=this.re.schema_search,a.lastIndex=0;null!==(t=a.exec(e));)if(n=this.testSchemaAt(e,t[2],a.lastIndex),n){this.__schema__=t[2],this.__index__=t.index+t[1].length,this.__last_index__=t.index+t[0].length+n;break}return this.__opts__.fuzzyLink&&this.__compiled__["http:"]&&(l=e.search(this.re.host_fuzzy_test),l>=0&&(this.__index__<0||l=0&&null!==(i=e.match(this.re.email_fuzzy))&&(s=i.index+i[1].length,r=i.index+i[0].length,(this.__index__<0||sthis.__last_index__)&&(this.__schema__="mailto:",this.__index__=s,this.__last_index__=r))),this.__index__>=0},CP.prototype.pretest=function(e){return this.re.pretest.test(e)},CP.prototype.testSchemaAt=function(e,t,o){return this.__compiled__[t.toLowerCase()]?this.__compiled__[t.toLowerCase()].validate(e,o,this):0},CP.prototype.match=function(e){const t=[];let o=0;this.__index__>=0&&this.__text_cache__===e&&(t.push(vP(this,o)),o=this.__last_index__);let i=o?e.slice(o):e;for(;this.test(i);)t.push(vP(this,o)),i=i.slice(this.__last_index__),o+=this.__last_index__;return t.length?t:null},CP.prototype.matchAtStart=function(e){if(this.__text_cache__=e,this.__index__=-1,!e.length)return null;const t=this.re.schema_at_start.exec(e);if(!t)return null;const o=this.testSchemaAt(e,t[2],t[0].length);return o?(this.__schema__=t[2],this.__index__=t.index+t[1].length,this.__last_index__=t.index+t[0].length+o,vP(this,0)):null},CP.prototype.tlds=function(e,t){return e=Array.isArray(e)?e:[e],t?(this.__tlds__=this.__tlds__.concat(e).sort().filter((function(e,t,o){return e!==o[t-1]})).reverse(),_P(this),this):(this.__tlds__=e.slice(),this.__tlds_replaced__=!0,_P(this),this)},CP.prototype.normalize=function(e){e.schema||(e.url="http://"+e.url),"mailto:"!==e.schema||/^mailto:/i.test(e.url)||(e.url="mailto:"+e.url)},CP.prototype.onCompile=function(){};const AP=CP,xP=2147483647,EP=36,TP=/^xn--/,PP=/[^\0-\x7F]/,SP=/[\x2E\u3002\uFF0E\uFF61]/g,IP={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},RP=Math.floor,OP=String.fromCharCode;function VP(e){throw new RangeError(IP[e])}function DP(e,t){const o=e.split("@");let i="";o.length>1&&(i=o[0]+"@",e=o[1]);const n=function(e,t){const o=[];let i=e.length;for(;i--;)o[i]=t(e[i]);return o}((e=e.replace(SP,".")).split("."),t).join(".");return i+n}function FP(e){const t=[];let o=0;const i=e.length;for(;o=55296&&n<=56319&&o>1,e+=RP(e/t);e>455;i+=EP)e=RP(e/35);return RP(i+36*e/(e+38))},BP=function(e){const t=[],o=e.length;let i=0,n=128,s=72,r=e.lastIndexOf("-");r<0&&(r=0);for(let o=0;o=128&&VP("not-basic"),t.push(e.charCodeAt(o));for(let l=r>0?r+1:0;l=o&&VP("invalid-input");const r=(a=e.charCodeAt(l++))>=48&&a<58?a-48+26:a>=65&&a<91?a-65:a>=97&&a<123?a-97:EP;r>=EP&&VP("invalid-input"),r>RP((xP-i)/t)&&VP("overflow"),i+=r*t;const c=n<=s?1:n>=s+26?26:n-s;if(rRP(xP/d)&&VP("overflow"),t*=d}const c=t.length+1;s=NP(i-r,c,0==r),RP(i/c)>xP-n&&VP("overflow"),n+=RP(i/c),i%=c,t.splice(i++,0,n)}var a;return String.fromCodePoint(...t)},LP=function(e){const t=[],o=(e=FP(e)).length;let i=128,n=0,s=72;for(const o of e)o<128&&t.push(OP(o));const r=t.length;let a=r;for(r&&t.push("-");a=i&&tRP((xP-n)/l)&&VP("overflow"),n+=(o-i)*l,i=o;for(const o of e)if(oxP&&VP("overflow"),o===i){let e=n;for(let o=EP;;o+=EP){const i=o<=s?1:o>=s+26?26:o-s;if(eString.fromCodePoint(...e)},decode:BP,encode:LP,toASCII:function(e){return DP(e,(function(e){return PP.test(e)?"xn--"+LP(e):e}))},toUnicode:function(e){return DP(e,(function(e){return TP.test(e)?BP(e.slice(4).toLowerCase()):e}))}},jP={default:{options:{html:!1,xhtmlOut:!1,breaks:!1,langPrefix:"language-",linkify:!1,typographer:!1,quotes:"“”‘’",highlight:null,maxNesting:100},components:{core:{},block:{},inline:{}}},zero:{options:{html:!1,xhtmlOut:!1,breaks:!1,langPrefix:"language-",linkify:!1,typographer:!1,quotes:"“”‘’",highlight:null,maxNesting:20},components:{core:{rules:["normalize","block","inline","text_join"]},block:{rules:["paragraph"]},inline:{rules:["text"],rules2:["balance_pairs","fragments_join"]}}},commonmark:{options:{html:!0,xhtmlOut:!0,breaks:!1,langPrefix:"language-",linkify:!1,typographer:!1,quotes:"“”‘’",highlight:null,maxNesting:20},components:{core:{rules:["normalize","block","inline","text_join"]},block:{rules:["blockquote","code","fence","heading","hr","html_block","lheading","list","reference","paragraph"]},inline:{rules:["autolink","backticks","emphasis","entity","escape","html_inline","image","link","newline","text"],rules2:["balance_pairs","emphasis","fragments_join"]}}}},qP=/^(vbscript|javascript|file|data):/,$P=/^data:image\/(gif|png|jpeg|webp);/;function HP(e){const t=e.trim().toLowerCase();return!qP.test(t)||$P.test(t)}const WP=["http:","https:","mailto:"];function UP(e){const t=sE(e,!0);if(t.hostname&&(!t.protocol||WP.indexOf(t.protocol)>=0))try{t.hostname=zP.toASCII(t.hostname)}catch(e){}return Wx(Ux(t))}function KP(e){const t=sE(e,!0);if(t.hostname&&(!t.protocol||WP.indexOf(t.protocol)>=0))try{t.hostname=zP.toUnicode(t.hostname)}catch(e){}return qx(Ux(t),qx.defaultChars+"%")}function GP(e,t){if(!(this instanceof GP))return new GP(e,t);t||FE(e)||(t=e||{},e="default"),this.inline=new hP,this.block=new GT,this.core=new DT,this.renderer=new uT,this.linkify=new AP,this.validateLink=HP,this.normalizeLink=UP,this.normalizeLinkText=KP,this.utils=i,this.helpers=BE({},n),this.options={},this.configure(e),t&&this.set(t)}GP.prototype.set=function(e){return BE(this.options,e),this},GP.prototype.configure=function(e){const t=this;if(FE(e)){const t=e;if(!(e=jP[t]))throw new Error('Wrong `markdown-it` preset "'+t+'", check name')}if(!e)throw new Error("Wrong `markdown-it` preset, can't be empty");return e.options&&t.set(e.options),e.components&&Object.keys(e.components).forEach((function(o){e.components[o].rules&&t[o].ruler.enableOnly(e.components[o].rules),e.components[o].rules2&&t[o].ruler2.enableOnly(e.components[o].rules2)})),this},GP.prototype.enable=function(e,t){let o=[];Array.isArray(e)||(e=[e]),["core","block","inline"].forEach((function(t){o=o.concat(this[t].ruler.enable(e,!0))}),this),o=o.concat(this.inline.ruler2.enable(e,!0));const i=e.filter((function(e){return o.indexOf(e)<0}));if(i.length&&!t)throw new Error("MarkdownIt. Failed to enable unknown rule(s): "+i);return this},GP.prototype.disable=function(e,t){let o=[];Array.isArray(e)||(e=[e]),["core","block","inline"].forEach((function(t){o=o.concat(this[t].ruler.disable(e,!0))}),this),o=o.concat(this.inline.ruler2.disable(e,!0));const i=e.filter((function(e){return o.indexOf(e)<0}));if(i.length&&!t)throw new Error("MarkdownIt. Failed to disable unknown rule(s): "+i);return this},GP.prototype.use=function(e){const t=[this].concat(Array.prototype.slice.call(arguments,1));return e.apply(e,t),this},GP.prototype.parse=function(e,t){if("string"!=typeof e)throw new Error("Input data should be a String");const o=new this.core.State(e,this,t);return this.core.process(o),o.tokens},GP.prototype.render=function(e,t){return t=t||{},this.renderer.render(this.parse(e,t),this.options,t)},GP.prototype.parseInline=function(e,t){const o=new this.core.State(e,this,t);return o.inlineMode=!0,this.core.process(o),o.tokens},GP.prototype.renderInline=function(e,t){return t=t||{},this.renderer.render(this.parseInline(e,t),this.options,t)};const JP=GP;var ZP=o(428),QP=o.n(ZP);const YP=/^(#{1,3})(\d+)(?!\w)/;function XP(e,t){const o=e.pos,i=e.src;if(35!==i.charCodeAt(o))return!1;if(o>0&&/[\w#]/.test(i[o-1]))return!1;const n=YP.exec(i.slice(o));if(!n)return!1;if(t)return!0;const s=n[1].length,r=n[2],a=n[0],l=1===s?`${a}`:`${a}`;return e.push("html_inline","",0).content=l,e.pos=o+n[0].length,!0}class eS{constructor(e){this._htmlDP=new Ir(e),this._domConverter=new Rn(e)}toView(e){const t=JP({html:!0,breaks:!0,langPrefix:"language-"});let o=t.use(QP(),{label:!0});o.inline.ruler.before("text","op_workpackage_ref",XP);const i=o.renderer.rules.code_block;t.renderer.rules.code_block=function(e,t,o,n,s){return e[t].content=e[t].content.replace(/\n$/,""),i(e,t,o,n,s)};const n=o.render(e),s=this._htmlDP._toDom(n);!function(e){let t,o=document.createNodeIterator(e,NodeFilter.SHOW_TEXT);for(;t=o.nextNode();)t.previousElementSibling&&t.previousElementSibling.classList.contains("task-list-item-checkbox")&&(t.textContent=t.textContent.replace(/^\s+/,""))}(s),function(e){let t,o=document.createNodeIterator(e,NodeFilter.SHOW_ELEMENT,{acceptNode:function(e){if("BR"===e.tagName&&!e.parentElement)return NodeFilter.FILTER_ACCEPT}}),i=[];for(;t=o.nextNode();)i.push(t);for(const t of i){const o=document.createElement("p");e.insertBefore(o,t),Lx(t)?o.appendChild(t):t.remove()}}(s),function(e){const t=document.createNodeIterator(e,NodeFilter.SHOW_ELEMENT,{acceptNode:function(e){if("P"===e.tagName&&e.parentElement&&"TD"===e.parentElement.tagName&&1===e.childNodes.length&&"BR"===e.childNodes[0].nodeName)return NodeFilter.FILTER_ACCEPT}});let o;for(;o=t.nextNode();)o.childNodes[0].remove()}(s),function(e){const t=document.createNodeIterator(e,NodeFilter.SHOW_ELEMENT,{acceptNode:function(e){if("BR"===e.tagName&&e.parentElement&&"LI"===e.parentElement.tagName)return NodeFilter.FILTER_ACCEPT}});let o,i=[];for(;o=t.nextNode();)i.push(o);for(const e of i)e.parentElement.insertBefore(document.createElement("p"),e),e.remove()}(s),s.querySelectorAll("input.task-list-item-checkbox").forEach((e=>{const t=e.closest("li.task-list-item");t&&e.parentElement!==t&&(e.parentElement&&e.parentElement.removeChild(e),t.insertBefore(e,t.firstChild))}));return this._domConverter.domToView(s)}toData(e){const t=this._domConverter.viewToDom(e,document);!function(e,t,o){t=t.map((e=>e.toUpperCase())),o=o.map((e=>e.toUpperCase()));let i,n=document.createNodeIterator(e,NodeFilter.SHOW_TEXT);for(;i=n.nextNode();)i.parentElement&&t.indexOf(i.parentElement.nodeName)>=0&&(i.nodeValue=i.nodeValue.replace(/^[\u00a0]+/g," ").replace(/[\u00a0]+$/g," ")),Nx(i,o)||(i.nodeValue=_.escape(i.nodeValue))}(t,["strong","em"],["pre","code","table"]),function(e){let t,o=document.createNodeIterator(e,NodeFilter.SHOW_ELEMENT,(function(e){return"a"===e.nodeName.toLowerCase()?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_REJECT}));for(;t=o.nextNode();)t.setAttribute("href",t.href)}(t),function(e){let t,o=document.createNodeIterator(e,NodeFilter.SHOW_ELEMENT,{acceptNode:function(e){if("P"===e.tagName&&0===e.childNodes.length&&(!e.parentElement||"LI"===e.parentElement.tagName))return NodeFilter.FILTER_ACCEPT}});for(;t=o.nextNode();)t.appendChild(document.createElement("br"))}(t);const o=new Mx({headingStyle:"atx",codeBlockStyle:"fenced",blankReplacement:function(e,t){if("CODE"===t.tagName){const e=(t.getAttribute("class")||"").replace("language-",""),o=t.textContent||"";return"```"+e+"\n"+(o.length?o:"\n")+"```\n"}return"PRE"===t.tagName?e:t.isBlock?"\n\n":""}});return o.use([ex]),o.addRule("taskListItems",{filter:function(e){const t="checkbox"===e.type,o=e.parentNode&&"LI"===e.parentNode.nodeName,i=e.parentNode&&e.parentNode.parentNode&&"LI"===e.parentNode.parentNode.nodeName;return t&&(o||i)},replacement:function(e,t){return(t.checked?"[x]":"[ ]")+" "}}),o.addRule("orderedListItems",{filter:function(e){return"LI"===e.nodeName&&!!e.closest("ol")},replacement:function(e,t,o){e=e.replace(/^\n+/,"").replace(/\n+$/,"\n");var i=t.parentNode,n=o.bulletListMarker+" ";if("OL"===i.nodeName){var s=i.getAttribute("start"),r=Array.prototype.indexOf.call(i.children,t);n=(s?Number(s)+r:r+1)+". "}var a=n.length,l=" ".repeat(a);return n+(e=e.replace(/\n/gm,"\n"+l))+(t.nextSibling&&!/\n$/.test(e)?"\n":"")}}),o.addRule("imageFigure",{filter:"img",replacement:function(e,t){const o=t.parentElement;return o&&o.classList.contains("op-uc-figure--content")?o.parentElement.outerHTML:t.outerHTML}}),o.addRule("figcaption",{filter:"figcaption",replacement:function(e,t){return""}}),o.addRule("markdownTables",{filter:function(e){return"TABLE"===e.nodeName&&(!e.parentElement||"FIGURE"!==e.parentElement.nodeName)},replacement:function(e,t){return t.outerHTML}}),o.addRule("htmlTables",{filter:function(e){const t=e.getElementsByTagName("table");return"FIGURE"===e.nodeName&&t.length},replacement:function(e,t){return t.querySelectorAll("td br[data-cke-filler]").forEach((e=>{e.nextElementSibling&&e.removeAttribute("data-cke-filler")})),t.outerHTML}}),o.addRule("strikethrough",{filter:["del","s","strike"],replacement:function(e){return"~~"+e+"~~"}}),o.addRule("workPackageQuickinfo",{filter:e=>"OPCE-MACRO-WP-QUICKINFO"===e.nodeName,replacement:(e,t)=>{const o=t.getAttribute("data-id")||"";if(!o)return"";return"true"===t.getAttribute("data-detailed")?`###${o}`:`##${o}`}}),o.addRule("openProjectMacros",{filter:["macro"],replacement:(e,t)=>{t.innerHTML="";return t.outerHTML.replace("","\n")}}),o.addRule("mentions",{filter:e=>"MENTION"===e.nodeName&&e.classList.contains("mention"),replacement:(e,t)=>"work_package"===t.getAttribute("data-type")?t.getAttribute("data-text")||t.textContent||"":t.outerHTML}),o.addRule("emptyParagraphs",{filter:e=>"P"===e.nodeName&&(0===e.childNodes.length||1===e.childNodes.length&&"BR"===e.childNodes[0].nodeName),replacement:(e,t)=>t.parentElement||t.nextSibling||t.previousSibling?1===t.childNodes.length&&Lx(t.childNodes[0])?Bx+"\n\n":"
    \n\n":""}),o.addRule("openProjectPageBreak",{filter:e=>"DIV"===e.nodeName&&e.classList.contains("page-break"),replacement:(e,t)=>Bx}),o.turndown(t).replace(/\u00A0/," ").replace("###turndown-ignore###\n","")}}const tS='\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n image/svg+xml\n \n \n \n \n \n\n';const oS={"(":")","[":"]","{":"}"};class iS extends wc{constructor(e){super(e),this._isEnabledBasedOnSelection=!1}refresh(){const e=this.editor.model,t=e.document;this.isEnabled=e.schema.checkAttributeInSelection(t.selection,"mention")}execute(e){const t=this.editor.model,o=t.document.selection,i="string"==typeof e.mention?{id:e.mention}:e.mention,n=i.id,s=e.range||o.getFirstRange();if(!t.canEditAt(s))return;const r=e.text||n,a=sS({_text:r,id:n},i);if(!n.startsWith(e.marker))throw new fe("mentioncommand-incorrect-id",this);t.change((e=>{const i=ao(o.getAttributes()),n=new Map(i.entries());n.set("mention",a);const l=t.insertContent(e.createText(r,n),s),c=l.start.nodeBefore,d=l.end.nodeAfter,u=d&&d.is("$text")&&d.data.startsWith(" ");let h=!1;if(c&&d&&c.is("$text")&&d.is("$text")){const e=c.data.slice(-1),t=e in oS,o=t&&d.data.startsWith(oS[e]);h=t&&o}h||u||t.insertContent(e.createText(" ",i),s.start.getShiftedBy(r.length))}))}}class nS extends fc{static get pluginName(){return"MentionEditing"}static get isOfficialPlugin(){return!0}init(){const e=this.editor,t=e.model,o=t.document;t.schema.extend("$text",{allowAttributes:"mention"}),e.conversion.for("upcast").elementToAttribute({view:{name:"span",attributes:"data-mention",classes:"mention"},model:{key:"mention",value:e=>rS(e)}}),e.conversion.for("downcast").attributeToElement({model:"mention",view:lS}),e.conversion.for("downcast").add(aS),o.registerPostFixer((e=>function(e,t,o){const i=t.differ.getChanges();let n=!1;for(const t of i){if("attribute"==t.type)continue;const i=t.position;if("$text"==t.name){const t=i.textNode&&i.textNode.nextSibling;n=dS(i.textNode,e)||n,n=dS(t,e)||n,n=dS(i.nodeBefore,e)||n,n=dS(i.nodeAfter,e)||n}if("$text"!=t.name&&"insert"==t.type){const t=i.nodeAfter;for(const o of e.createRangeIn(t).getItems())n=dS(o,e)||n}if("insert"==t.type&&o.isInline(t.name)){const t=i.nodeAfter&&i.nodeAfter.nextSibling;n=dS(i.nodeBefore,e)||n,n=dS(t,e)||n}}return n}(e,o,t.schema))),o.registerPostFixer((e=>function(e,t){const o=t.differ.getChanges();let i=!1;for(const t of o)if("attribute"===t.type&&"mention"!=t.attributeKey){const o=t.range.start.nodeBefore,n=t.range.end.nodeAfter;for(const s of[o,n])cS(s)&&s.getAttribute(t.attributeKey)!=t.attributeNewValue&&(e.setAttribute(t.attributeKey,t.attributeNewValue,s),i=!0)}return i}(e,o))),o.registerPostFixer((e=>function(e,t){const o=t.selection,i=o.focus;if(o.isCollapsed&&o.hasAttribute("mention")&&function(e){const t=e.isAtStart;return e.nodeBefore&&e.nodeBefore.is("$text")||t}(i))return e.removeSelectionAttribute("mention"),!0;return!1}(e,o))),e.commands.add("mention",new iS(e))}}function sS(e,t){return Object.assign({uid:me().slice(0,8)},e,t||{})}function rS(e,t){const o=e.getAttribute("data-mention"),i=e.getChild(0);if(!i)return;const n=e.getAttribute("data-mention-uid");return sS({id:o,_text:i.data},n?{uid:n,...t}:t)}function aS(e){e.on("attribute:mention",((e,t,o)=>{const i=t.attributeNewValue;if(!t.item.is("$textProxy")||!i)return;const n=t.range.start;(n.textNode||n.nodeAfter).data!=i._text&&o.consumable.consume(t.item,e.name)}),{priority:"highest"})}function lS(e,{writer:t,options:o}){if(e)return t.createAttributeElement("span",{class:"mention","data-mention":e.id,...!o.isClipboardPipeline&&{"data-mention-uid":e.uid}},{id:e.uid,priority:20})}function cS(e){if(!e||!e.is("$text")&&!e.is("$textProxy")||!e.hasAttribute("mention"))return!1;return e.data!=e.getAttribute("mention")._text}function dS(e,t){return!!cS(e)&&(t.removeAttribute("mention",e),!0)}class uS extends zh{selected;position;constructor(e){super(e),this.extendTemplate({attributes:{class:["ck-mentions"],tabindex:"-1"}})}selectFirst(){this.select(0)}selectNext(){const e=this.selected,t=this.items.getIndex(e);this.select(t+1)}selectPrevious(){const e=this.selected,t=this.items.getIndex(e);this.select(t-1)}select(e){let t=0;e>0&&e{o?(this.domElement.classList.add("ck-on"),this.domElement.classList.remove("ck-off")):(this.domElement.classList.add("ck-off"),this.domElement.classList.remove("ck-on"))})),this.listenTo(this.domElement,"click",(()=>{this.fire("execute")}))}render(){super.render(),this.element=this.domElement}focus(){this.domElement.focus()}}class mS extends Nh{item;marker;highlight(){this.children.first.isOn=!0}removeHighlight(){this.children.first.isOn=!1}}const gS=[qt.arrowup,qt.arrowdown,qt.esc],pS=[qt.enter,qt.tab];class fS extends fc{_mentionsView;_mentionsConfigurations;_balloon;_items=new eo;_lastRequested;_requestFeedDebounced;static get pluginName(){return"MentionUI"}static get isOfficialPlugin(){return!0}static get requires(){return[Qm]}constructor(e){super(e),this._mentionsView=this._createMentionView(),this._mentionsConfigurations=new Map,this._requestFeedDebounced=zo(this._requestFeed,100),e.config.define("mention",{feeds:[]})}init(){const e=this.editor,t=e.config.get("mention.commitKeys")||pS,o=gS.concat(t);this._balloon=e.plugins.get(Qm),e.editing.view.document.on("keydown",((e,i)=>{var n;n=i.keyCode,o.includes(n)&&this._isUIVisible&&(i.preventDefault(),e.stop(),i.keyCode==qt.arrowdown&&this._mentionsView.selectNext(),i.keyCode==qt.arrowup&&this._mentionsView.selectPrevious(),t.includes(i.keyCode)&&this._mentionsView.executeSelected(),i.keyCode==qt.esc&&this._hideUIAndRemoveMarker())}),{priority:"highest"}),Su({emitter:this._mentionsView,activator:()=>this._isUIVisible,contextElements:()=>[this._balloon.view.element],callback:()=>this._hideUIAndRemoveMarker()});const i=e.config.get("mention.feeds");for(const e of i){const{feed:t,marker:o,dropdownLimit:i}=e;if(!kS(o))throw new fe("mentionconfig-incorrect-marker",null,{marker:o});const n={marker:o,feedCallback:"function"==typeof t?t.bind(this.editor):_S(t),itemRenderer:e.itemRenderer,dropdownLimit:i};this._mentionsConfigurations.set(o,n)}this._setupTextWatcher(i),this.listenTo(e,"change:isReadOnly",(()=>{this._hideUIAndRemoveMarker()})),this.on("requestFeed:response",((e,t)=>this._handleFeedResponse(t))),this.on("requestFeed:error",(()=>this._hideUIAndRemoveMarker()))}destroy(){super.destroy(),this._mentionsView.destroy()}get _isUIVisible(){return this._balloon.visibleView===this._mentionsView}_createMentionView(){const e=this.editor.locale,t=new uS(e);return t.items.bindTo(this._items).using((o=>{const{item:i,marker:n}=o,{dropdownLimit:s}=this._mentionsConfigurations.get(n),r=s||this.editor.config.get("mention.dropdownLimit")||10;if(t.items.length>=r)return null;const a=new mS(e),l=this._renderItem(i,n);return l.delegate("execute").to(a),a.children.add(l),a.item=i,a.marker=n,a.on("execute",(()=>{t.fire("execute",{item:i,marker:n})})),a})),t.on("execute",((e,t)=>{const o=this.editor,i=o.model,n=t.item,s=t.marker,r=o.model.markers.get("mention"),a=i.createPositionAt(i.document.selection.focus),l=i.createPositionAt(r.getStart()),c=i.createRange(l,a);this._hideUIAndRemoveMarker(),o.execute("mention",{mention:n,text:n.text,marker:s,range:c}),o.editing.view.focus()})),t}_getItemRenderer(e){const{itemRenderer:t}=this._mentionsConfigurations.get(e);return t}_requestFeed(e,t){this._lastRequested=t;const{feedCallback:o}=this._mentionsConfigurations.get(e),i=o(t);i instanceof Promise?i.then((o=>{this._lastRequested==t?this.fire("requestFeed:response",{feed:o,marker:e,feedText:t}):this.fire("requestFeed:discarded",{feed:o,marker:e,feedText:t})})).catch((t=>{this.fire("requestFeed:error",{error:t}),be("mention-feed-callback-error",{marker:e})})):this.fire("requestFeed:response",{feed:i,marker:e,feedText:t})}_setupTextWatcher(e){const t=this.editor,o=e.map((e=>({...e,pattern:yS(e.marker,e.minimumCharacters||0)}))),i=new Ig(t.model,function(e){const t=t=>{const o=wS(e,t);if(!o)return!1;let i=0;0!==o.position&&(i=o.position-1);const n=t.substring(i);return o.pattern.test(n)};return t}(o));i.on("matched",((e,i)=>{const n=wS(o,i.text),s=t.model.document.selection.focus,r=t.model.createPositionAt(s.parent,n.position);if(function(e){const t=e.textNode&&e.textNode.hasAttribute("mention"),o=e.nodeBefore;return t||o&&o.is("$text")&&o.hasAttribute("mention")}(s)||function(e){const t=e.nodeAfter;return t&&t.is("$text")&&t.hasAttribute("mention")}(r))return void this._hideUIAndRemoveMarker();const a=function(e,t){let o=0;0!==e.position&&(o=e.position-1);const i=yS(e.marker,0),n=t.substring(o);return n.match(i)[2]}(n,i.text),l=n.marker.length+a.length,c=s.getShiftedBy(-l),d=s.getShiftedBy(-a.length),u=t.model.createRange(c,d);if(vS(t)){const e=t.model.markers.get("mention");t.model.change((t=>{t.updateMarker(e,{range:u})}))}else t.model.change((e=>{e.addMarker("mention",{range:u,usingOperation:!1,affectsData:!1})}));this._requestFeedDebounced(n.marker,a)})),i.on("unmatched",(()=>{this._hideUIAndRemoveMarker()}));const n=t.commands.get("mention");return i.bind("isEnabled").to(n),i}_handleFeedResponse(e){const{feed:t,marker:o}=e;if(!vS(this.editor))return;this._items.clear();for(const e of t){const t="object"!=typeof e?{id:e,text:e}:e;this._items.add({item:t,marker:o})}const i=this.editor.model.markers.get("mention");this._items.length?this._showOrUpdateUI(i):this._hideUIAndRemoveMarker()}_showOrUpdateUI(e){this._isUIVisible?this._balloon.updatePosition(this._getBalloonPanelPositionData(e,this._mentionsView.position)):this._balloon.add({view:this._mentionsView,position:this._getBalloonPanelPositionData(e,this._mentionsView.position),singleViewMode:!0,balloonClassName:"ck-mention-balloon"}),this._mentionsView.position=this._balloon.view.position,this._mentionsView.selectFirst()}_hideUIAndRemoveMarker(){this._balloon.hasView(this._mentionsView)&&this._balloon.remove(this._mentionsView),vS(this.editor)&&this.editor.model.change((e=>e.removeMarker("mention"))),this._mentionsView.position=void 0}_renderItem(e,t){const o=this.editor;let i,n=e.id;const s=this._getItemRenderer(t);if(s){const t=s(e);"string"!=typeof t?i=new hS(o.locale,t):n=t}if(!i){const e=new Lu(o.locale);e.label=n,e.withText=!0,i=e}return i}_getBalloonPanelPositionData(e,t){const o=this.editor,i=o.editing,n=i.view.domConverter,s=i.mapper;return{target:()=>{let t=e.getRange();"$graveyard"==t.start.root.rootName&&(t=o.model.document.selection.getFirstRange());const i=s.toViewRange(t);return ut.getDomRangeRects(n.viewRangeToDom(i)).pop()},limiter:()=>{const e=this.editor.editing.view,t=e.document.selection.editableElement;return t?e.domConverter.mapViewToDom(t.root):null},positions:bS(t,o.locale.uiLanguageDirection)}}}function bS(e,t){const o={caret_se:e=>({top:e.bottom+3,left:e.right,name:"caret_se",config:{withArrow:!1}}),caret_ne:(e,t)=>({top:e.top-t.height-3,left:e.right,name:"caret_ne",config:{withArrow:!1}}),caret_sw:(e,t)=>({top:e.bottom+3,left:e.right-t.width,name:"caret_sw",config:{withArrow:!1}}),caret_nw:(e,t)=>({top:e.top-t.height-3,left:e.right-t.width,name:"caret_nw",config:{withArrow:!1}})};return Object.prototype.hasOwnProperty.call(o,e)?[o[e]]:"rtl"!==t?[o.caret_se,o.caret_sw,o.caret_ne,o.caret_nw]:[o.caret_sw,o.caret_se,o.caret_nw,o.caret_ne]}function wS(e,t){let o;for(const i of e){const e=t.lastIndexOf(i.marker);e>0&&!t.substring(e-1).match(i.pattern)||(!o||e>=o.position)&&(o={marker:i.marker,position:e,minimumCharacters:i.minimumCharacters,pattern:i.pattern})}return o}function yS(e,t){const o=0==t?"*":`{${t},}`,i=Y.features.isRegExpUnicodePropertySupported?"\\p{Ps}\\p{Pi}\"'":"\\(\\[{\"'";e=e.replace(/[.*+?^${}()\-|[\]\\]/g,"\\$&");return new RegExp(`(?:^|[ ${i}])(${e})([^#@]${o})$`,"u")}function _S(e){return t=>e.filter((e=>("string"==typeof e?e:String(e.id)).toLowerCase().includes(t.toLowerCase())))}function kS(e){return!!e}function vS(e){return e.model.markers.has("mention")}class CS extends wc{refresh(){const e=this.editor.model,t=e.schema,o=e.document.selection;this.isEnabled=function(e,t,o){const i=function(e,t){const o=cp(e,t),i=o.start.parent;if(i.isEmpty&&!i.is("element","$root"))return i.parent;return i}(e,o);return t.checkChild(i,"pageBreak")}(o,t,e)}execute(){const e=this.editor.model;e.change((t=>{const o=t.createElement("pageBreak");e.insertObject(o,null,null,{setSelection:"after"})}))}}class AS extends fc{static get pluginName(){return"PageBreakEditing"}static get licenseFeatureCode(){return"PB"}static get isOfficialPlugin(){return!0}static get isPremiumPlugin(){return!0}init(){const e=this.editor,t=e.model.schema,o=e.t,i=e.conversion;t.register("pageBreak",{inheritAllFrom:"$blockObject"}),i.for("dataDowncast").elementToStructure({model:"pageBreak",view:(e,{writer:t})=>t.createContainerElement("div",{class:"page-break",style:"page-break-after: always"},t.createContainerElement("span",{style:"display: none"}))}),i.for("editingDowncast").elementToStructure({model:"pageBreak",view:(e,{writer:t})=>{const i=o("Page break"),n=t.createContainerElement("div"),s=t.createRawElement("span",{class:"page-break__label"},(function(e){e.innerText=o("Page break")}));return t.addClass("page-break",n),t.insert(t.createPositionAt(n,0),s),function(e,t,o){return t.setCustomProperty("pageBreak",!0,e),np(e,t,{label:o})}(n,t,i)}}),i.for("upcast").elementToElement({view:e=>{const t="always"==e.getStyle("page-break-before"),o="always"==e.getStyle("page-break-after");if(!t&&!o)return null;if(1==e.childCount){const t=e.getChild(0);if(!t.is("element","span")||"none"!=t.getStyle("display"))return null}else if(e.childCount>1)return null;return{name:!0,styles:[...t?["page-break-before"]:[],...o?["page-break-after"]:[]],...e.hasClass("page-break")&&{classes:["page-break"]}}},model:"pageBreak",converterPriority:"high"}),e.commands.add("pageBreak",new CS(e))}}class xS extends fc{static get pluginName(){return"PageBreakUI"}static get isOfficialPlugin(){return!0}init(){const e=this.editor;e.ui.componentFactory.add("pageBreak",(()=>{const e=this._createButton(Lu);return e.set({tooltip:!0}),e})),e.ui.componentFactory.add("menuBar:pageBreak",(()=>this._createButton(sh)))}_createButton(e){const t=this.editor,o=t.locale,i=t.commands.get("pageBreak"),n=new e(t.locale),s=o.t;return n.set({label:s("Page break"),icon:''}),n.bind("isEnabled").to(i,"isEnabled"),this.listenTo(n,"execute",(()=>{t.execute("pageBreak"),t.editing.view.focus()})),n}}class ES extends fc{adapter;_debouncedSave;_lastDocumentVersion;_savePromise;_domEmitter;_config;_pendingActions;_makeImmediateSave;_action=null;static get pluginName(){return"Autosave"}static get isOfficialPlugin(){return!0}static get requires(){return[Lc]}constructor(e){super(e);const t=e.config.get("autosave")||{},o=t.waitingTime||1e3;this.set("state","synchronized"),this._debouncedSave=zo(this._save.bind(this),o),this._lastDocumentVersion=e.model.document.version,this._savePromise=null,this._domEmitter=new(et()),this._config=t,this._pendingActions=e.plugins.get(Lc),this._makeImmediateSave=!1}init(){const e=this.editor,t=e.model.document;this.listenTo(e,"ready",(()=>{this.listenTo(t,"change:data",((e,t)=>{this._saveCallbacks.length&&t.isLocal&&("synchronized"===this.state&&(this.state="waiting",this._setPendingAction()),"waiting"===this.state&&this._debouncedSave())}))})),this.listenTo(e,"destroy",(()=>this._flush()),{priority:"highest"}),this._domEmitter.listenTo(window,"beforeunload",((e,t)=>{this._pendingActions.hasAny&&(t.returnValue=this._pendingActions.first.message)}))}destroy(){this._domEmitter.stopListening(),super.destroy()}save(){return this._debouncedSave.cancel(),this._save()}_flush(){this._debouncedSave.flush()}_save(){return this._savePromise?(this._makeImmediateSave=this.editor.model.document.version>this._lastDocumentVersion,this._savePromise):(this._setPendingAction(),this.state="saving",this._lastDocumentVersion=this.editor.model.document.version,this._savePromise=Promise.resolve().then((()=>Promise.all(this._saveCallbacks.map((e=>e(this.editor)))))).finally((()=>{this._savePromise=null})).then((()=>{if(this._makeImmediateSave)return this._makeImmediateSave=!1,this._save();this.editor.model.document.version>this._lastDocumentVersion?(this.state="waiting",this._debouncedSave()):(this.state="synchronized",this._pendingActions.remove(this._action),this._action=null)})).catch((e=>{throw this.state="error",this.state="saving",this._debouncedSave(),e})),this._savePromise)}_setPendingAction(){const e=this.editor.t;this._action||(this._action=this._pendingActions.add(e("Saving changes")))}get _saveCallbacks(){const e=[];return this.adapter&&this.adapter.save&&e.push(this.adapter.save),this._config.save&&e.push(this._config.save),e}}var TS=o(992);function PS(e){return e.trim().split(/\s+/).length}function SS(e){const t=e.length;let o=5381;for(let i=0;i>>0}function IS(e){const t=localStorage.getItem(e);if(!t)return null;try{return JSON.parse(TS.decompress(t))}catch(e){return console.error("Failed to load CKEditor revisions from localStorage: "+e.toString()),null}}class RS extends fc{init(){const e=this.editor,t=Lp(e);e.ui.componentFactory.add("opContentRevisions",(o=>{const i=Zh(o),n=new eo;return Xh(i,n,{role:"menu",ariaLabel:t.t("js.editor.revisions")}),i.buttonView.set({label:t.t("js.editor.revisions"),icon:'\n\n\n',tooltip:!0}),this.listenTo(i.buttonView,"execute",(async()=>{n.clear(),function(e,t){const o=e.config.get(VS),i=IS(o),n=Lp(e),s=Np(e,"timezone");if(!i?.items||i.items.count<=0){const e={type:"button",model:{label:n.t("js.editor.no_revisions"),withText:!0}};return void t.add(e)}const r=e.getData(),a=SS(r);for(let e=i.items.length;e>0;){e--;const o=i.items[e],r=s.formattedRelativeDateTime(o.timestamp),l=n.t("js.units.word",{count:PS(o.content)}),c=`${o.hash===a?`${n.t("js.label_current")} - `:""}${r} (${l})`,d={type:"button",model:{timestamp:o.timestamp,label:c,withText:!0}};t.add(d)}}(e,n)})),i.on("execute",(t=>{const{timestamp:o}=t.source;o&&e.execute("opContentRevisionApply",o)})),i}))}}class OS extends wc{async execute(e){const t=this.editor,o=t.config.get(VS),i=await IS(o);if(!i)return void console.error(`Trying to load revision ${e} but no record present.`);const n=i.items.find((t=>t.timestamp===e));n&&(t.setData(n.content),setTimeout((()=>{t.editing.view.focus()})))}}const VS="opContentRevisionKey",DS="op_ckeditor_rev";const FS="opce-macro-wp-quickinfo";const MS=[Op,class extends fc{static get requires(){return[zp,vp,Wp]}static get pluginName(){return"OPMacroEmbeddedTable"}static get buttonName(){return zp.buttonName}},class extends fc{static get requires(){return[Gp,vp,Jp]}static get pluginName(){return"OPMacroWpButton"}static get buttonName(){return Gp.buttonName}},class extends fc{static get requires(){return[uw,vp,hw]}static get pluginName(){return"OPChildPages"}static get buttonName(){return uw.buttonName}}],NS=[class extends fc{static get requires(){return[Qp,Db]}static get pluginName(){return"OpUploadPlugin"}init(){this.editor.plugins.get("FileRepository").createUploadAdapter=e=>{const t=Fp(this.editor);return new Xp(e,t,this.editor)}}},class extends fc{static get pluginName(){return"OPAttachmentListener"}init(){this.editor.model.on("op:attachment-removed",((e,t)=>{this.removeDeletedImage(t)}))}removeDeletedImage(e){let t=this.editor.model.document.getRoot();for(const o of Array.from(t.getChildren()))if("image"===o.name&&e.indexOf(o.getAttribute("src"))>-1){const e=this.editor.model.createSelection(o,"on");this.editor.model.deleteContent(e)}}}],BS=[class extends fc{static get requires(){return[rh,Of,Kg,ww,Qg,Pg,zf]}static get pluginName(){return"Essentials"}static get isOfficialPlugin(){return!0}},class extends fc{static get requires(){return[Qp]}static get pluginName(){return"CKFinderUploadAdapter"}static get isOfficialPlugin(){return!0}init(){const e=this.editor.config.get("ckfinder.uploadUrl");e&&(this.editor.plugins.get(Qp).createUploadAdapter=t=>new vw(t,e,this.editor.t))}},class extends fc{static get requires(){return[Tg]}static get pluginName(){return"Autoformat"}static get isOfficialPlugin(){return!0}afterInit(){const e=this.editor,t=this.editor.t;this._addListAutoformats(),this._addBasicStylesAutoformats(),this._addHeadingAutoformats(),this._addBlockQuoteAutoformats(),this._addCodeBlockAutoformats(),this._addHorizontalLineAutoformats(),e.accessibility.addKeystrokeInfos({keystrokes:[{label:t("Revert autoformatting action"),keystroke:"Backspace"}]})}_addListAutoformats(){const e=this.editor.commands;e.get("bulletedList")&&Cw(this.editor,this,/^[*-]\s$/,"bulletedList"),e.get("numberedList")&&Cw(this.editor,this,/^1[.|)]\s$/,"numberedList"),e.get("todoList")&&Cw(this.editor,this,/^\[\s?\]\s$/,"todoList"),e.get("checkTodoList")&&Cw(this.editor,this,/^\[\s?x\s?\]\s$/,(()=>{this.editor.execute("todoList"),this.editor.execute("checkTodoList")}))}_addBasicStylesAutoformats(){const e=this.editor.commands;if(e.get("bold")){const e=Ew(this.editor,"bold");Aw(this.editor,this,/(?:^|\s)(\*\*)([^*]+)(\*\*)$/g,e),Aw(this.editor,this,/(?:^|\s)(__)([^_]+)(__)$/g,e)}if(e.get("italic")){const e=Ew(this.editor,"italic");Aw(this.editor,this,/(?:^|\s)(\*)([^*_]+)(\*)$/g,e),Aw(this.editor,this,/(?:^|\s)(_)([^_]+)(_)$/g,e)}if(e.get("code")){const e=Ew(this.editor,"code");Aw(this.editor,this,/(`)([^`]+)(`)$/g,e)}if(e.get("strikethrough")){const e=Ew(this.editor,"strikethrough");Aw(this.editor,this,/(~~)([^~]+)(~~)$/g,e)}}_addHeadingAutoformats(){const e=this.editor.commands.get("heading");e&&e.modelElements.filter((e=>e.match(/^heading[1-6]$/))).forEach((t=>{const o=t[7],i=new RegExp(`^(#{${o}})\\s$`);Cw(this.editor,this,i,(()=>{if(!e.isEnabled||e.value===t)return!1;this.editor.execute("heading",{value:t})}))}))}_addBlockQuoteAutoformats(){this.editor.commands.get("blockQuote")&&Cw(this.editor,this,/^>\s$/,"blockQuote")}_addCodeBlockAutoformats(){const e=this.editor,t=e.model.document.selection;e.commands.get("codeBlock")&&Cw(e,this,/^```$/,(()=>{if(t.getFirstPosition().parent.is("element","listItem"))return!1;this.editor.execute("codeBlock",{usePreviousLanguageChoice:!0})}))}_addHorizontalLineAutoformats(){this.editor.commands.get("horizontalLine")&&Cw(this.editor,this,/^---$/,"horizontalLine")}},ES,class extends fc{static get requires(){return[Sw,Ow]}static get pluginName(){return"Bold"}static get isOfficialPlugin(){return!0}},class extends fc{static get requires(){return[Dw,Mw]}static get pluginName(){return"Code"}static get isOfficialPlugin(){return!0}},class extends fc{static get requires(){return[Bw,zw]}static get pluginName(){return"Italic"}static get isOfficialPlugin(){return!0}},class extends fc{static get requires(){return[qw,Hw]}static get pluginName(){return"Strikethrough"}static get isOfficialPlugin(){return!0}},class extends fc{static get requires(){return[Jw,Zw]}static get pluginName(){return"BlockQuote"}static get isOfficialPlugin(){return!0}},class extends fc{static get requires(){return[ny,ry]}static get pluginName(){return"Heading"}static get isOfficialPlugin(){return!0}},gb,fb,class extends fc{static get requires(){return[yb,_b]}static get pluginName(){return"ImageCaption"}static get isOfficialPlugin(){return!0}},class extends fc{static get requires(){return[iw,nw]}static get pluginName(){return"ImageStyle"}static get isOfficialPlugin(){return!0}},class extends fc{static get requires(){return[Mb,$b,Gb,Bb]}static get pluginName(){return"ImageResize"}static get isOfficialPlugin(){return!0}},class extends fc{static get requires(){return[Ap,Gf]}static get pluginName(){return"ImageToolbar"}static get isOfficialPlugin(){return!0}afterInit(){const e=this.editor,t=e.t,o=e.plugins.get(Ap),i=e.plugins.get("ImageUtils");o.register("image",{ariaLabel:t("Image toolbar"),items:lw(e.config.get("image.toolbar")||[]),getRelatedElement:e=>i.getClosestSelectedImageWidget(e)})}},class extends fc{static get pluginName(){return"OpImageAttachmentLookup"}init(){const e=this.editor,t=e.conversion,o=Fp(e);t.for("editingDowncast").add(function(e){return e=>{e.on("attribute:src:imageBlock",t,{priority:"highest"}),e.on("attribute:src:imageInline",t,{priority:"highest"})};function t(t,o,i){let n=o.attributeNewValue;if(!n||!e.lookupDownloadLocationByName)return;const s=e.lookupDownloadLocationByName(n);o.attributeNewValue=s||n}}(o)),t.for("dataDowncast").add(function(e){return e=>{e.on("attribute:src:imageBlock",t,{priority:"highest"}),e.on("attribute:src:imageInline",t,{priority:"highest"})};function t(t,o,i){let n=o.attributeNewValue;if(!n||!e.lookupDownloadLocationByName)return;const s=e.lookupDownloadLocationByName(n);o.attributeNewValue=s||n;const r=i.writer,a=i.mapper.toViewElement(o.item);let l;l="imageInline"===o.item.name?a:a.getChild(0),s&&r.setAttribute("data-original-src",n,l)}}(o));const i=e.plugins.get("ImageUtils");i.decorate("setImageNaturalSizeAttributes"),i.on("setImageNaturalSizeAttributes",((e,[t])=>{console.log("model image element:",{element:t}),e.stop()}),{priority:"highest"})}},class extends fc{static get requires(){return[Ty,Dy,Ny]}static get pluginName(){return"Link"}static get isOfficialPlugin(){return!0}},class extends fc{static get requires(){return[z_,H_]}static get pluginName(){return"List"}static get isOfficialPlugin(){return!0}},class extends fc{static get requires(){return[Y_,ik]}static get pluginName(){return"TodoList"}static get isOfficialPlugin(){return!0}},class extends fc{static get requires(){return[AS,xS,vp]}static get pluginName(){return"PageBreak"}static get isOfficialPlugin(){return!0}},ey,Pg,class extends fc{toMentionAttribute(e,t){return rS(e,t)}static get pluginName(){return"Mention"}static get isOfficialPlugin(){return!0}static get requires(){return[nS,fS]}},function(e){const t=Mp(e),o=e.editing.view,i=o.document;o.addObserver(ol),e.listenTo(i,"click",((e,t)=>{if("A"===t.domTarget.nodeName&&t.domTarget.classList.contains("mention")){const e=document.createElement("a");e.target="_blank",e.href=t.domTarget.attributes.href.value,e.click()}})),e.conversion.for("upcast").elementToAttribute({view:{name:"mention",key:"data-mention",classes:"mention"},model:{key:"mention",value:o=>{const i=o.getAttribute("data-id"),n=o.getAttribute("data-type"),s=o.getAttribute("data-text"),r=function(e,o){const i=t.services.apiV3Service[`${o}s`].segment,n=window.OpenProject.urlRoot;return`${n}/${i}/${e}`}(i,n);return e.plugins.get("Mention").toMentionAttribute(o,{idNumber:i,link:r,text:s,type:n})}},converterPriority:"high"}),e.conversion.for("upcast").elementToAttribute({view:{name:"span",key:"data-mention",classes:"mention"},model:{key:"mention",value:e=>{const t=[...e.getChildren()][0],o=t&&t.data;if(o){const e=`[Invalid mention: ${o}]`;t._data=e}}},converterPriority:"high"}),e.conversion.for("editingDowncast").attributeToElement({model:"mention",converterPriority:"high",view:(e,{writer:t})=>{if(!e)return;if("emoji"===e.type)return t.createAttributeElement("span");return t.createAttributeElement("a",{class:"mention",href:e.link,"data-mention":e.text,title:e.text})}}),e.conversion.for("dataDowncast").attributeToElement({model:"mention",converterPriority:"high",view:(e,{writer:t})=>{if(!e)return;if("emoji"===e.type)return t.createAttributeElement("span");return t.createAttributeElement("mention",{class:"mention","data-id":e.idNumber,"data-type":e.type,"data-text":e.text})}})},class extends fc{static get pluginName(){return"PasteFromOffice"}static get licenseFeatureCode(){return"PFO"}static get isOfficialPlugin(){return!0}static get isPremiumPlugin(){return!0}static get requires(){return[bf]}init(){const e=this.editor,t=e.plugins.get("ClipboardPipeline"),o=e.editing.view.document,i=[],n=this.editor.plugins.has("MultiLevelListEditing"),s=this.editor.plugins.has("TablePropertiesEditing");i.push(new qA(o,n,s)),i.push(new GA(o)),i.push(new ZA(o)),t.on("inputTransformation",((t,n)=>{if(n._isTransformedWithPasteFromOffice)return;if(e.model.document.selection.getFirstPosition().parent.is("element","codeBlock"))return;const s=n.dataTransfer.getData("text/html"),r=i.find((e=>e.isActive(s)));r&&(n._parsedData||(n._parsedData=YA(s,o.stylesProcessor)),r.execute(n),n._isTransformedWithPasteFromOffice=!0)}),{priority:"high"})}},class extends fc{static get pluginName(){return"OPHelpLinkPlugin"}init(){const e=this.editor,t=e.config.get("openProject.helpURL");e.ui.componentFactory.add("openProjectShowFormattingHelp",(e=>{const o=new Lu(e);return o.set({label:window.I18n.t("js.inplace.link_formatting_help"),icon:'',tooltip:!0}),o.on("execute",(()=>{window.open(t,"_blank")})),o}))}},class extends fc{static get pluginName(){return"OPPreview"}init(){const e=this.editor;let t=!1,o=null;e.ui.componentFactory.add("preview",(i=>{const n=new Lu(i);n.set({label:this.label,icon:'\n',tooltip:!0});let s=function(t){const i=e.ui.getEditableElement(),s=i?.parentElement;if(!s?.parentElement)return void console.error("Cannot show preview: invalid editor structure");const r=document.createElement("div");r.className="ck-editor__preview op-uc-container";Array.from(s.parentElement.children).filter((e=>e!==s&&e.classList.contains("ck-editor__preview"))).forEach((e=>e.remove()));const a=Np(e,"ckEditorPreview");o=a.render(r,t),s.style.display="none",s.parentElement.insertBefore(r,s.nextSibling),gk(e,n)},r=function(){let o=function(e){return _.get(e.config,"_config.openProject.context.previewContext")}(e);(async function(e,t){return new yk("post",e,t).perform()})(Bp(e).api.v3.previewMarkup(o),{contentType:"text/plain; charset=UTF-8",responseKind:"html",body:e.getData()}).then((e=>e.html)).then(s).catch((o=>{console.error("Error fetching preview:",o),t=!1,pk(e)}))};return n.on("execute",(()=>{t?(t=!1,function(){const t=e.ui.getEditableElement(),i=t?.parentElement;if(!i?.parentElement)return void console.error("Cannot disable preview: invalid editor structure");o&&o(),Array.from(i.parentElement.children).filter((e=>e!==i&&e.classList.contains("ck-editor__preview"))).forEach((e=>e.remove())),i.style.display="",pk(e)}()):(t=!0,r())})),n}))}get label(){return window.I18n.t("js.editor.preview")}},class extends fc{static get pluginName(){return"OPSourceCode"}init(){const e=this.editor;let t=!1,o={source:window.I18n.t("js.editor.mode.manual"),wysiwyg:window.I18n.t("js.editor.mode.wysiwyg")};e.ui.componentFactory.add("opShowSource",(i=>{const n=new Lu(i);n.set({label:o.source,class:"",icon:tS,tooltip:!0});return n.on("execute",(()=>{t?(t=!1,function(){const t=e.ui.getEditableElement(),i=t?.parentElement;if(!i?.parentElement)return void console.error("Cannot hide source: invalid editor structure");e.fire("op:source-code-disabled"),Array.from(i.parentElement.children).filter((e=>e!==i&&e.classList.contains("ck-editor__source"))).forEach((e=>e.remove())),i.style.display="",pk(e),n.set({label:o.source,class:"",icon:tS,tooltip:!0})}()):(t=!0,function(){const t=e.ui.getEditableElement(),i=t?.parentElement;if(!i?.parentElement)return void console.error("Cannot show source: invalid editor structure");const s=document.createElement("div");s.className="ck-editor__source",Array.from(i.parentElement.children).filter((e=>e!==i&&e.classList.contains("ck-editor__source"))).forEach((e=>e.remove())),i.style.display="none",i.parentElement.insertBefore(s,i.nextSibling),gk(e,n),e.fire("op:source-code-enabled"),n.set({label:o.wysiwyg,class:"-source-enabled",icon:'\n\n \n \n \n image/svg+xml\n \n \n \n \n \n \n \n \n\n',tooltip:!0})}())})),n}))}},class extends fc{static get requires(){return[ES,RS]}static get pluginName(){return"OpContentRevisions"}constructor(e){super(e);const t=this.getStorageKey(e);e.config.define(VS,t)}init(){const e=this.editor;e.commands.add("opContentRevisionApply",new OS(e)),e.once("ready",(()=>{const t=Date.now();e.plugins.get("Autosave")._domEmitter.stopListening(window,"beforeunload"),Object.keys(localStorage).forEach((e=>{if(e.startsWith(DS)){const o=IS(e);o?.updatedAt&&t-o.updatedAt>=288e5&&localStorage.removeItem(e)}}))}))}getStorageKey(e){const t=e.config.get("storageKey");return t||this.createLocalStorageKey(e)}createLocalStorageKey(e){const t=Fp(e),o=function(e){return _.get(e.config,"_config.openProject.context.field")}(e);let i="";return i=t?.href?t.href:location.pathname,o&&(i+=`_${o}`),`${DS}_${i}`}},class extends fc{static get requires(){return[vp]}static get pluginName(){return"OPMacroWpQuickinfo"}init(){const e=this.editor,t=e.model,o=e.conversion;t.schema.register("op-macro-wp-quickinfo",{allowWhere:"$text",isInline:!0,isObject:!0,allowAttributes:["wpId","detailed"]}),o.for("upcast").elementToElement({view:{name:FS},model:(e,{writer:t})=>{const o=e.getAttribute("data-id")||"",i="true"===e.getAttribute("data-detailed");return t.createElement("op-macro-wp-quickinfo",{wpId:o,detailed:i})},converterPriority:"high"}),o.for("editingDowncast").elementToElement({model:"op-macro-wp-quickinfo",view:(e,{writer:t})=>{const o=e.getAttribute("wpId")||"",i=!!e.getAttribute("detailed"),n=t.createContainerElement("span",{class:"op-macro-wp-quickinfo-widget"}),s=t.createRawElement(FS,{"data-id":o,"data-detailed":String(i)},(()=>{}));return t.insert(t.createPositionAt(n,0),s),np(n,t,{label:`#${o}`})}}),o.for("dataDowncast").elementToElement({model:"op-macro-wp-quickinfo",view:(e,{writer:t})=>{const o=e.getAttribute("wpId")||"",i=!!e.getAttribute("detailed"),n=t.createContainerElement(FS,{"data-id":o,"data-detailed":String(i)}),s=(i?"###":"##")+o;return t.insert(t.createPositionAt(n,0),t.createText(s)),n}})}afterInit(){const e=this.editor,t=e.commands.get("mention");t&&t.on("execute",((t,o)=>{const i=o&&o[0];if(!i||!i.mention)return;if("work_package"!==i.mention.type)return;const n=i.marker;if("##"!==n&&"###"!==n)return;t.stop();const s="###"===n,r=String(i.mention.idNumber);e.model.change((t=>{const o=i.range||e.model.document.selection.getFirstRange();o&&t.remove(o);const n=t.createElement("op-macro-wp-quickinfo",{wpId:r,detailed:s});e.model.insertContent(n,e.model.document.selection),t.setSelection(t.createPositionAfter(n))}))}),{priority:"high"})}},class extends fc{static get pluginName(){return"CodeBlock"}static get requires(){return[uk,hk]}},function(e){e.data.processor=new eS(e.editing.view.document)},mC,class extends fc{static get requires(){return[Ap]}static get pluginName(){return"TableToolbar"}static get isOfficialPlugin(){return!0}afterInit(){const e=this.editor,t=e.t,o=e.plugins.get(Ap),i=e.config.get("table.contentToolbar"),n=e.config.get("table.tableToolbar");i&&o.register("tableContent",{ariaLabel:t("Table toolbar"),items:i,getRelatedElement:fC}),n&&o.register("table",{ariaLabel:t("Table toolbar"),items:n,getRelatedElement:pC})}},class extends fc{static get pluginName(){return"TableProperties"}static get isOfficialPlugin(){return!0}static get requires(){return[hA,yA]}},class extends fc{static get pluginName(){return"TableCellProperties"}static get isOfficialPlugin(){return!0}static get requires(){return[iA,zC]}},class extends fc{init(){const e=this.editor,t=(e.config.get("removePlugins")||[]).map((e=>e.pluginName)),o=window.I18n.t("js.editor.macro.dropdown.chose_macro");!0!==e.config.get("openProject.disableAllMacros")&&e.ui.componentFactory.add("macroList",(i=>{const n=[];for(const o of MS){if(-1!==t.indexOf(o.pluginName))continue;const i=e.ui.componentFactory.create(o.buttonName);n.push(i)}const s=Zh(i);return Qh(s,n,{isVertical:!0,class:"op-macro-list-button"}),s.buttonView.set({isOn:!1,withText:!0,tooltip:o,label:window.I18n.t("js.editor.macro.dropdown.macros")}),s}))}},class extends fc{get config(){const e="op-uc-";return{preFix:e,editorClasses:[`${e}container`,`${e}container_editing`],elementsWithCustomClassesMap:{paragraph:`${e}p`,heading1:`${e}h1`,heading2:`${e}h2`,heading3:`${e}h3`,heading4:`${e}h4`,heading5:`${e}h5`,heading6:`${e}h6`,blockQuote:`${e}blockquote`,figure:`${e}figure`,table:`${e}table`,thead:`${e}table--head`,tr:`${e}table--row`,td:`${e}table--cell`,th:[`${e}table--cell`,`${e}table--cell_head`],tableCell:`${e}table--cell`,tableRow:`${e}table--row`,ol:`${e}list`,ul:`${e}list`,list:`${e}list`,todo:`${e}list ${e}list_task-list`,listItem:`${e}list--item`,li:`${e}list--item`,imageInline:`${e}image ${e}image_inline`,imageBlock:`${e}image`,img:`${e}image`,codeblock:`${e}code-block`,caption:`${e}figure--description`,"op-macro-embedded-table":[`${e}placeholder`,`${e}embedded-table`],"op-macro-wp-button":[`${e}placeholder`,`${e}wp-button`],"op-macro-child-pages":[`${e}placeholder`,`${e}child-pages`],"op-macro-toc":[`${e}placeholder`,`${e}toc`],content:`${e}figure--content`},attributesWithCustomClassesMap:{code:`${e}code`,linkHref:`${e}link`,alignment:`${e}figure_align-`,tableAlignment:`${e}figure_align-`,todo:`${e}list_task-list`,numbered:`${e}list`,bulleted:`${e}list`,listType:null,headingColumns:null,width:null,uploadStatus:null},alignmentValuesMap:{left:"start",right:"end",blockLeft:"start",blockRight:"end",center:"center",default:"center"}}}init(){this._addCustomCSSClassesToTheEditorContainer(this.editor),this._addCustomCSSClassesToElements(this.config),this._addCustomCSSClassesToAttributes(this.config)}_addCustomCSSClassesToTheEditorContainer(e){e.sourceElement.classList.add(...this.config.editorClasses)}_addCustomCSSClassesToElements(e){this.editor.model.schema.extend("table",{allowAttributes:["figureClasses"]}),this.editor.conversion.for("upcast").add((t=>t.on("element:table",this._manageTableUpcast(e))),{priority:"high"}),this.editor.conversion.for("downcast").add((t=>t.on("insert",this._manageElementsInsertion(e),{priority:"low"})))}_addCustomCSSClassesToAttributes(e){this.editor.conversion.for("downcast").add((t=>t.on("attribute",this._manageAttributesInsertion(e),{priority:"low"})))}_manageTableUpcast(e){return(t,o,i)=>{const n=i.writer,s=o.viewItem,r=o.modelRange,a=r&&r.start.nodeAfter;if(!a)return;let l=a.getAttribute("figureClasses")||[],c=s.parent.getClassNames&&s.parent.getClassNames();const d=c?[...c].filter((e=>!!e)):[];l=[...l,...d];const u=d.filter((t=>t.startsWith(e.attributesWithCustomClassesMap.alignment)))[0],h=u&&u.replace(e.attributesWithCustomClassesMap.alignment,"")||e.alignmentValuesMap.default,m=Object.keys(e.alignmentValuesMap).find((t=>e.alignmentValuesMap[t]===h))||"center";if(!u){const t=`${e.attributesWithCustomClassesMap.alignment}${h}`;l=[...l,t]}n.setAttribute("figureClasses",l,a),"center"===m?n.setAttribute("alignment",null,a):n.setAttribute("alignment",m,a)}}_manageElementsInsertion(e){return(t,o,i)=>{const n=Object.keys(e.elementsWithCustomClassesMap),s=i.writer,r=o.item.name,a=o.item,l=i.mapper.toViewElement(a);let c=[l];const d=["imageBlock","table","tableCell","tableRow","listItem"].includes(r);if(n.includes(r)&&l){if(d)if("listItem"===r)c=this._manageListItems(s,a,l,c,e);else{const t=l,o=Array.from(s.createRangeIn(l).getItems());if("imageBlock"===r){const i=o.find((e=>e.is("element","img")));this._wrapInFigureContentContainer(i,t,e,s),c=[...c,i]}else if("table"===r||"tableRow"===r){const i=o.filter((e=>n.includes(e.name)));if(c=[...c,...i],"table"===r){if(!a.getAttribute("tableAlignment")){const o=`${e.attributesWithCustomClassesMap.alignment}${e.alignmentValuesMap.default}`;s.addClass(o,t)}}}}c.forEach((t=>{const o=d?t.name:r,i=e.elementsWithCustomClassesMap[o];s.addClass(i,t)}))}}}_manageAttributesInsertion(e){return(t,o,i)=>{const n=Object.keys(e.attributesWithCustomClassesMap),s=o.attributeKey,r=i.writer,a=o.item,l=i.mapper.toViewElement(a);if(n.includes(s))if("linkHref"===s||"code"===s){const t="linkHref"===s?"a":s,n="linkHref"===s?5:10,l=r.document.selection,c=r.createAttributeElement(t,{class:e.attributesWithCustomClassesMap[s]},{priority:n});a.is("selection")?r.wrap(l.getFirstRange(),c):r.wrap(i.mapper.toViewRange(o.range),c)}else if("tableAlignment"===s){const t=l,i=e.alignmentValuesMap[o.attributeNewValue]||e.alignmentValuesMap.default;Array.from(new Set(Object.values(e.alignmentValuesMap))).map((t=>`${e.attributesWithCustomClassesMap[s]}${t}`)).filter((e=>t.hasClass(e))).forEach((e=>r.removeClass(e,t))),t.hasStyle("float")&&r.removeStyle("float",t),r.addClass(`${e.attributesWithCustomClassesMap[s]}${i}`,t)}else if("listType"===s){this._manageListItems(r,a,l,[l],e).forEach((t=>{const o=t.name,i=e.elementsWithCustomClassesMap[o];r.addClass(i,t)}))}else if("headingColumns"===s){const t=o.attributeNewValue,i=Array.from(r.createRangeIn(l).getItems()).filter((t=>Object.keys(e.elementsWithCustomClassesMap).includes(t.name)));t?i.forEach((t=>{const o=t.name,i=e.elementsWithCustomClassesMap[o];r.addClass(i,t)})):i.filter((t=>t.hasClass(e.elementsWithCustomClassesMap.th[1]))).forEach((t=>{const o=t.nextSibling;o&&"th"!==o.name&&r.removeClass(e.elementsWithCustomClassesMap.th[1],t)}))}else if("width"===s)l.hasClass("image_resized")&&r.removeClass("image_resized",l);else if("uploadStatus"===s&&"complete"===o.attributeNewValue){let e=Array.from(r.createRangeIn(l).getItems()).find((e=>e.hasClass("ck-upload-placeholder-loader")));e&&r.remove(r.createRangeOn(e))}}}_manageListItems(e,t,o,i,n){const s=o.findAncestor("li"),r=o.findAncestor(/^(ul|ol)$/);if(!r)return i;const a=t.getAttribute("listType"),l=n.attributesWithCustomClassesMap[a];if("todo"===a)e.addClass(l,r);else{const t=n.attributesWithCustomClassesMap.todo;r.hasClass(t)&&e.removeClass(t,r)}return[...i,r,s]}_wrapInFigureContentContainer(e,t,o,i){const n=i.createContainerElement("div",{class:o.elementsWithCustomClassesMap.content});i.insert(i.createPositionAt(n,0),e),i.insert(i.createPositionAt(t,0),n)}}].concat(MS,NS);function LS(e){return function(t){const o=window.OpenProject.urlRoot+"/work_packages/auto_complete.json";let i=window.OpenProject.urlRoot+"/work_packages/";return this.config.get("disabledMentions").includes("work_package")?[]:new Promise(((n,s)=>{_k(o,{responseKind:"json",query:{q:t,scope:"all"}}).then((e=>e.json)).then((t=>{n(t.map((t=>{const o=`${e}${t.id}`;return{id:o,idNumber:t.id,type:"work_package",text:o,name:t.to_s,link:i+t.id}})))})).catch((e=>{console.error("Error fetching work package mentions:",e),s(e)}))}))}}function zS(e){const t=document.createElement("span");return"user"!==e.type&&"work_package"!==e.type||(t.setAttribute("data-hover-card-trigger-target","trigger"),t.setAttribute("data-hover-card-url",`${e.link}/hover_card`)),t.classList.add("mention-list-item"),t.textContent=e.name,t}const jS=JSON.parse('[{"id":":grinning_face:","symbol":"😀","group":"people","keywords":["face","grin","grinning face"]},{"id":":beaming_face_with_smiling_eyes:","symbol":"😁","group":"people","keywords":["beaming face with smiling eyes","eye","face","grin","smile"]},{"id":":face_with_tears_of_joy:","symbol":"😂","group":"people","keywords":["face","face with tears of joy","joy","laugh","tear"]},{"id":":rolling_on_the_floor_laughing:","symbol":"🤣","group":"people","keywords":["face","floor","laugh","rolling","rolling on the floor laughing"]},{"id":":grinning_face_with_big_eyes:","symbol":"😃","group":"people","keywords":["face","grinning face with big eyes","mouth","open","smile"]},{"id":":grinning_face_with_smiling_eyes:","symbol":"😄","group":"people","keywords":["eye","face","grinning face with smiling eyes","mouth","open","smile"]},{"id":":grinning_face_with_sweat:","symbol":"😅","group":"people","keywords":["cold","face","grinning face with sweat","open","smile","sweat"]},{"id":":grinning_squinting_face:","symbol":"😆","group":"people","keywords":["face","grinning squinting face","laugh","mouth","satisfied","smile"]},{"id":":winking_face:","symbol":"😉","group":"people","keywords":["face","wink","winking face"]},{"id":":smiling_face_with_smiling_eyes:","symbol":"😊","group":"people","keywords":["blush","eye","face","smile","smiling face with smiling eyes"]},{"id":":face_savoring_food:","symbol":"😋","group":"people","keywords":["delicious","face","face savoring food","savouring","smile","yum"]},{"id":":smiling_face_with_sunglasses:","symbol":"😎","group":"people","keywords":["bright","cool","face","smiling face with sunglasses","sun","sunglasses"]},{"id":":smiling_face_with_heart-eyes:","symbol":"😍","group":"people","keywords":["eye","face","love","smile","smiling face with heart-eyes"]},{"id":":face_blowing_a_kiss:","symbol":"😘","group":"people","keywords":["face","face blowing a kiss","kiss"]},{"id":":kissing_face:","symbol":"😗","group":"people","keywords":["face","kiss","kissing face"]},{"id":":kissing_face_with_smiling_eyes:","symbol":"😙","group":"people","keywords":["eye","face","kiss","kissing face with smiling eyes","smile"]},{"id":":kissing_face_with_closed_eyes:","symbol":"😚","group":"people","keywords":["closed","eye","face","kiss","kissing face with closed eyes"]},{"id":":smiling_face:","symbol":"☺","group":"people","keywords":["face","outlined","relaxed","smile","smiling face"]},{"id":":slightly_smiling_face:","symbol":"🙂","group":"people","keywords":["face","slightly smiling face","smile"]},{"id":":hugging_face:","symbol":"🤗","group":"people","keywords":["face","hug","hugging"]},{"id":":star-struck:","symbol":"🤩","group":"people","keywords":["eyes","face","grinning","star","star-struck",""]},{"id":":thinking_face:","symbol":"🤔","group":"people","keywords":["face","thinking"]},{"id":":face_with_raised_eyebrow:","symbol":"🤨","group":"people","keywords":["distrust","face with raised eyebrow","skeptic",""]},{"id":":neutral_face:","symbol":"😐","group":"people","keywords":["deadpan","face","neutral"]},{"id":":expressionless_face:","symbol":"😑","group":"people","keywords":["expressionless","face","inexpressive","unexpressive"]},{"id":":face_without_mouth:","symbol":"😶","group":"people","keywords":["face","face without mouth","mouth","quiet","silent"]},{"id":":face_with_rolling_eyes:","symbol":"🙄","group":"people","keywords":["eyes","face","face with rolling eyes","rolling"]},{"id":":smirking_face:","symbol":"😏","group":"people","keywords":["face","smirk","smirking face"]},{"id":":persevering_face:","symbol":"😣","group":"people","keywords":["face","persevere","persevering face"]},{"id":":sad_but_relieved_face:","symbol":"😥","group":"people","keywords":["disappointed","face","relieved","sad but relieved face","whew"]},{"id":":face_with_open_mouth:","symbol":"😮","group":"people","keywords":["face","face with open mouth","mouth","open","sympathy"]},{"id":":zipper-mouth_face:","symbol":"🤐","group":"people","keywords":["face","mouth","zipper","zipper-mouth face"]},{"id":":hushed_face:","symbol":"😯","group":"people","keywords":["face","hushed","stunned","surprised"]},{"id":":sleepy_face:","symbol":"😪","group":"people","keywords":["face","sleep","sleepy face"]},{"id":":tired_face:","symbol":"😫","group":"people","keywords":["face","tired"]},{"id":":sleeping_face:","symbol":"😴","group":"people","keywords":["face","sleep","sleeping face","zzz"]},{"id":":relieved_face:","symbol":"😌","group":"people","keywords":["face","relieved"]},{"id":":face_with_tongue:","symbol":"😛","group":"people","keywords":["face","face with tongue","tongue"]},{"id":":winking_face_with_tongue:","symbol":"😜","group":"people","keywords":["eye","face","joke","tongue","wink","winking face with tongue"]},{"id":":squinting_face_with_tongue:","symbol":"😝","group":"people","keywords":["eye","face","horrible","squinting face with tongue","taste","tongue"]},{"id":":drooling_face:","symbol":"🤤","group":"people","keywords":["drooling","face"]},{"id":":unamused_face:","symbol":"😒","group":"people","keywords":["face","unamused","unhappy"]},{"id":":downcast_face_with_sweat:","symbol":"😓","group":"people","keywords":["cold","downcast face with sweat","face","sweat"]},{"id":":pensive_face:","symbol":"😔","group":"people","keywords":["dejected","face","pensive"]},{"id":":confused_face:","symbol":"😕","group":"people","keywords":["confused","face"]},{"id":":upside-down_face:","symbol":"🙃","group":"people","keywords":["face","upside-down"]},{"id":":money-mouth_face:","symbol":"🤑","group":"people","keywords":["face","money","money-mouth face","mouth"]},{"id":":astonished_face:","symbol":"😲","group":"people","keywords":["astonished","face","shocked","totally"]},{"id":":frowning_face:","symbol":"☹","group":"people","keywords":["face","frown","frowning face"]},{"id":":slightly_frowning_face:","symbol":"🙁","group":"people","keywords":["face","frown","slightly frowning face"]},{"id":":confounded_face:","symbol":"😖","group":"people","keywords":["confounded","face"]},{"id":":disappointed_face:","symbol":"😞","group":"people","keywords":["disappointed","face"]},{"id":":worried_face:","symbol":"😟","group":"people","keywords":["face","worried"]},{"id":":face_with_steam_from_nose:","symbol":"😤","group":"people","keywords":["face","face with steam from nose","triumph","won"]},{"id":":crying_face:","symbol":"😢","group":"people","keywords":["cry","crying face","face","sad","tear"]},{"id":":loudly_crying_face:","symbol":"😭","group":"people","keywords":["cry","face","loudly crying face","sad","sob","tear"]},{"id":":frowning_face_with_open_mouth:","symbol":"😦","group":"people","keywords":["face","frown","frowning face with open mouth","mouth","open"]},{"id":":anguished_face:","symbol":"😧","group":"people","keywords":["anguished","face"]},{"id":":fearful_face:","symbol":"😨","group":"people","keywords":["face","fear","fearful","scared"]},{"id":":weary_face:","symbol":"😩","group":"people","keywords":["face","tired","weary"]},{"id":":exploding_head:","symbol":"🤯","group":"people","keywords":["exploding head","shocked"]},{"id":":grimacing_face:","symbol":"😬","group":"people","keywords":["face","grimace","grimacing face"]},{"id":":anxious_face_with_sweat:","symbol":"😰","group":"people","keywords":["anxious face with sweat","blue","cold","face","rushed","sweat"]},{"id":":face_screaming_in_fear:","symbol":"😱","group":"people","keywords":["face","face screaming in fear","fear","munch","scared","scream"]},{"id":":flushed_face:","symbol":"😳","group":"people","keywords":["dazed","face","flushed"]},{"id":":zany_face:","symbol":"🤪","group":"people","keywords":["eye","goofy","large","small","zany face"]},{"id":":dizzy_face:","symbol":"😵","group":"people","keywords":["dizzy","face"]},{"id":":pouting_face:","symbol":"😡","group":"people","keywords":["angry","face","mad","pouting","rage","red"]},{"id":":angry_face:","symbol":"😠","group":"people","keywords":["angry","face","mad"]},{"id":":face_with_symbols_on_mouth:","symbol":"🤬","group":"people","keywords":["face with symbols on mouth","swearing",""]},{"id":":face_with_medical_mask:","symbol":"😷","group":"people","keywords":["cold","doctor","face","face with medical mask","mask","sick"]},{"id":":face_with_thermometer:","symbol":"🤒","group":"people","keywords":["face","face with thermometer","ill","sick","thermometer"]},{"id":":face_with_head-bandage:","symbol":"🤕","group":"people","keywords":["bandage","face","face with head-bandage","hurt","injury"]},{"id":":nauseated_face:","symbol":"🤢","group":"people","keywords":["face","nauseated","vomit"]},{"id":":face_vomiting:","symbol":"🤮","group":"people","keywords":["face vomiting","sick","vomit"]},{"id":":sneezing_face:","symbol":"🤧","group":"people","keywords":["face","gesundheit","sneeze","sneezing face"]},{"id":":smiling_face_with_halo:","symbol":"😇","group":"people","keywords":["angel","face","fantasy","halo","innocent","smiling face with halo"]},{"id":":cowboy_hat_face:","symbol":"🤠","group":"people","keywords":["cowboy","cowgirl","face","hat"]},{"id":":lying_face:","symbol":"🤥","group":"people","keywords":["face","lie","lying face","pinocchio"]},{"id":":shushing_face:","symbol":"🤫","group":"people","keywords":["quiet","shush","shushing face"]},{"id":":face_with_hand_over_mouth:","symbol":"🤭","group":"people","keywords":["face with hand over mouth","whoops",""]},{"id":":face_with_monocle:","symbol":"🧐","group":"people","keywords":["face with monocle","stuffy",""]},{"id":":nerd_face:","symbol":"🤓","group":"people","keywords":["face","geek","nerd"]},{"id":":smiling_face_with_horns:","symbol":"😈","group":"people","keywords":["face","fairy tale","fantasy","horns","smile","smiling face with horns"]},{"id":":angry_face_with_horns:","symbol":"👿","group":"people","keywords":["angry face with horns","demon","devil","face","fantasy","imp"]},{"id":":clown_face:","symbol":"🤡","group":"people","keywords":["clown","face"]},{"id":":ogre:","symbol":"👹","group":"people","keywords":["creature","face","fairy tale","fantasy","monster","ogre",""]},{"id":":goblin:","symbol":"👺","group":"people","keywords":["creature","face","fairy tale","fantasy","goblin","monster"]},{"id":":skull:","symbol":"💀","group":"people","keywords":["death","face","fairy tale","monster","skull"]},{"id":":skull_and_crossbones:","symbol":"☠","group":"people","keywords":["crossbones","death","face","monster","skull","skull and crossbones"]},{"id":":ghost:","symbol":"👻","group":"people","keywords":["creature","face","fairy tale","fantasy","ghost","monster"]},{"id":":alien:","symbol":"👽","group":"people","keywords":["alien","creature","extraterrestrial","face","fantasy","ufo"]},{"id":":alien_monster:","symbol":"👾","group":"people","keywords":["alien","creature","extraterrestrial","face","monster","ufo"]},{"id":":robot_face:","symbol":"🤖","group":"people","keywords":["face","monster","robot"]},{"id":":pile_of_poo:","symbol":"💩","group":"people","keywords":["dung","face","monster","pile of poo","poo","poop"]},{"id":":grinning_cat_face:","symbol":"😺","group":"people","keywords":["cat","face","grinning cat face","mouth","open","smile"]},{"id":":grinning_cat_face_with_smiling_eyes:","symbol":"😸","group":"people","keywords":["cat","eye","face","grin","grinning cat face with smiling eyes","smile"]},{"id":":cat_face_with_tears_of_joy:","symbol":"😹","group":"people","keywords":["cat","cat face with tears of joy","face","joy","tear"]},{"id":":smiling_cat_face_with_heart-eyes:","symbol":"😻","group":"people","keywords":["cat","eye","face","love","smile","smiling cat face with heart-eyes"]},{"id":":cat_face_with_wry_smile:","symbol":"😼","group":"people","keywords":["cat","cat face with wry smile","face","ironic","smile","wry"]},{"id":":kissing_cat_face:","symbol":"😽","group":"people","keywords":["cat","eye","face","kiss","kissing cat face"]},{"id":":weary_cat_face:","symbol":"🙀","group":"people","keywords":["cat","face","oh","surprised","weary"]},{"id":":crying_cat_face:","symbol":"😿","group":"people","keywords":["cat","cry","crying cat face","face","sad","tear"]},{"id":":pouting_cat_face:","symbol":"😾","group":"people","keywords":["cat","face","pouting"]},{"id":":see-no-evil_monkey:","symbol":"🙈","group":"people","keywords":["evil","face","forbidden","monkey","see","see-no-evil monkey"]},{"id":":hear-no-evil_monkey:","symbol":"🙉","group":"people","keywords":["evil","face","forbidden","hear","hear-no-evil monkey","monkey"]},{"id":":speak-no-evil_monkey:","symbol":"🙊","group":"people","keywords":["evil","face","forbidden","monkey","speak","speak-no-evil monkey"]},{"id":":baby:","symbol":"👶","group":"people","keywords":["baby","young"]},{"id":":child:","symbol":"🧒","group":"people","keywords":["child","gender-neutral","unspecified gender","young"]},{"id":":boy:","symbol":"👦","group":"people","keywords":["boy","young"]},{"id":":girl:","symbol":"👧","group":"people","keywords":["girl","Virgo","young","zodiac"]},{"id":":person:","symbol":"🧑","group":"people","keywords":["adult","gender-neutral","person","unspecified gender"]},{"id":":person_blond_hair:","symbol":"👱","group":"people","keywords":["blond","blond-haired person","person: blond hair"]},{"id":":man:","symbol":"👨","group":"people","keywords":["adult","man"]},{"id":":man_blond_hair:","symbol":"👱‍♂️","group":"people","keywords":["blond","blond-haired man","man","man: blond hair"]},{"id":":man_beard:","symbol":"🧔","group":"people","keywords":["beard","man: beard","person",""]},{"id":":woman:","symbol":"👩","group":"people","keywords":["adult","woman"]},{"id":":woman_blond_hair:","symbol":"👱‍♀️","group":"people","keywords":["blond-haired woman","blonde","woman","woman: blond hair"]},{"id":":older_person:","symbol":"🧓","group":"people","keywords":["adult","gender-neutral","old","older person","unspecified gender"]},{"id":":old_man:","symbol":"👴","group":"people","keywords":["adult","man","old"]},{"id":":old_woman:","symbol":"👵","group":"people","keywords":["adult","old","woman"]},{"id":":man_health_worker:","symbol":"👨‍⚕️","group":"people","keywords":["doctor","healthcare","man","man health worker","nurse","therapist"]},{"id":":woman_health_worker:","symbol":"👩‍⚕️","group":"people","keywords":["doctor","healthcare","nurse","therapist","woman","woman health worker"]},{"id":":man_student:","symbol":"👨‍🎓","group":"people","keywords":["graduate","man","student"]},{"id":":woman_student:","symbol":"👩‍🎓","group":"people","keywords":["graduate","student","woman"]},{"id":":man_teacher:","symbol":"👨‍🏫","group":"people","keywords":["instructor","man","professor","teacher"]},{"id":":woman_teacher:","symbol":"👩‍🏫","group":"people","keywords":["instructor","professor","teacher","woman"]},{"id":":man_judge:","symbol":"👨‍⚖️","group":"people","keywords":["justice","man","man judge","scales"]},{"id":":woman_judge:","symbol":"👩‍⚖️","group":"people","keywords":["judge","scales","woman"]},{"id":":man_farmer:","symbol":"👨‍🌾","group":"people","keywords":["farmer","gardener","man","rancher"]},{"id":":woman_farmer:","symbol":"👩‍🌾","group":"people","keywords":["farmer","gardener","rancher","woman"]},{"id":":man_cook:","symbol":"👨‍🍳","group":"people","keywords":["chef","cook","man"]},{"id":":woman_cook:","symbol":"👩‍🍳","group":"people","keywords":["chef","cook","woman"]},{"id":":man_mechanic:","symbol":"👨‍🔧","group":"people","keywords":["electrician","man","mechanic","plumber","tradesperson"]},{"id":":woman_mechanic:","symbol":"👩‍🔧","group":"people","keywords":["electrician","mechanic","plumber","tradesperson","woman"]},{"id":":man_factory_worker:","symbol":"👨‍🏭","group":"people","keywords":["assembly","factory","industrial","man","worker"]},{"id":":woman_factory_worker:","symbol":"👩‍🏭","group":"people","keywords":["assembly","factory","industrial","woman","worker"]},{"id":":man_office_worker:","symbol":"👨‍💼","group":"people","keywords":["architect","business","man","man office worker","manager","white-collar"]},{"id":":woman_office_worker:","symbol":"👩‍💼","group":"people","keywords":["architect","business","manager","white-collar","woman","woman office worker"]},{"id":":man_scientist:","symbol":"👨‍🔬","group":"people","keywords":["biologist","chemist","engineer","man","physicist","scientist"]},{"id":":woman_scientist:","symbol":"👩‍🔬","group":"people","keywords":["biologist","chemist","engineer","physicist","scientist","woman"]},{"id":":man_technologist:","symbol":"👨‍💻","group":"people","keywords":["coder","developer","inventor","man","software","technologist"]},{"id":":woman_technologist:","symbol":"👩‍💻","group":"people","keywords":["coder","developer","inventor","software","technologist","woman"]},{"id":":man_singer:","symbol":"👨‍🎤","group":"people","keywords":["actor","entertainer","man","rock","singer","star"]},{"id":":woman_singer:","symbol":"👩‍🎤","group":"people","keywords":["actor","entertainer","rock","singer","star","woman"]},{"id":":man_artist:","symbol":"👨‍🎨","group":"people","keywords":["artist","man","palette"]},{"id":":woman_artist:","symbol":"👩‍🎨","group":"people","keywords":["artist","palette","woman"]},{"id":":man_pilot:","symbol":"👨‍✈️","group":"people","keywords":["man","pilot","plane"]},{"id":":woman_pilot:","symbol":"👩‍✈️","group":"people","keywords":["pilot","plane","woman"]},{"id":":man_astronaut:","symbol":"👨‍🚀","group":"people","keywords":["astronaut","man","rocket"]},{"id":":woman_astronaut:","symbol":"👩‍🚀","group":"people","keywords":["astronaut","rocket","woman"]},{"id":":man_firefighter:","symbol":"👨‍🚒","group":"people","keywords":["firefighter","firetruck","man"]},{"id":":woman_firefighter:","symbol":"👩‍🚒","group":"people","keywords":["firefighter","firetruck","woman"]},{"id":":police_officer:","symbol":"👮","group":"people","keywords":["cop","officer","police"]},{"id":":man_police_officer:","symbol":"👮‍♂️","group":"people","keywords":["cop","man","officer","police"]},{"id":":woman_police_officer:","symbol":"👮‍♀️","group":"people","keywords":["cop","officer","police","woman"]},{"id":":detective:","symbol":"🕵","group":"people","keywords":["detective","sleuth","spy"]},{"id":":man_detective:","symbol":"🕵️‍♂️","group":"people","keywords":["detective","man","sleuth","spy"]},{"id":":woman_detective:","symbol":"🕵️‍♀️","group":"people","keywords":["detective","sleuth","spy","woman"]},{"id":":guard:","symbol":"💂","group":"people","keywords":["guard"]},{"id":":man_guard:","symbol":"💂‍♂️","group":"people","keywords":["guard","man"]},{"id":":woman_guard:","symbol":"💂‍♀️","group":"people","keywords":["guard","woman"]},{"id":":construction_worker:","symbol":"👷","group":"people","keywords":["construction","hat","worker"]},{"id":":man_construction_worker:","symbol":"👷‍♂️","group":"people","keywords":["construction","man","worker"]},{"id":":woman_construction_worker:","symbol":"👷‍♀️","group":"people","keywords":["construction","woman","worker"]},{"id":":prince:","symbol":"🤴","group":"people","keywords":["prince"]},{"id":":princess:","symbol":"👸","group":"people","keywords":["fairy tale","fantasy","princess"]},{"id":":person_wearing_turban:","symbol":"👳","group":"people","keywords":["person wearing turban","turban"]},{"id":":man_wearing_turban:","symbol":"👳‍♂️","group":"people","keywords":["man","man wearing turban","turban"]},{"id":":woman_wearing_turban:","symbol":"👳‍♀️","group":"people","keywords":["turban","woman","woman wearing turban"]},{"id":":man_with_chinese_cap:","symbol":"👲","group":"people","keywords":["gua pi mao","hat","man","man with Chinese cap"]},{"id":":woman_with_headscarf:","symbol":"🧕","group":"people","keywords":["headscarf","hijab","mantilla","tichel","woman with headscarf",""]},{"id":":man_in_tuxedo:","symbol":"🤵","group":"people","keywords":["groom","man","man in tuxedo","tuxedo"]},{"id":":bride_with_veil:","symbol":"👰","group":"people","keywords":["bride","bride with veil","veil","wedding"]},{"id":":pregnant_woman:","symbol":"🤰","group":"people","keywords":["pregnant","woman"]},{"id":":breast-feeding:","symbol":"🤱","group":"people","keywords":["baby","breast","breast-feeding","nursing"]},{"id":":baby_angel:","symbol":"👼","group":"people","keywords":["angel","baby","face","fairy tale","fantasy"]},{"id":":santa_claus:","symbol":"🎅","group":"people","keywords":["celebration","Christmas","claus","father","santa","Santa Claus"]},{"id":":mrs._claus:","symbol":"🤶","group":"people","keywords":["celebration","Christmas","claus","mother","Mrs.","Mrs. Claus"]},{"id":":mage:","symbol":"🧙","group":"people","keywords":["mage","sorcerer","sorceress","witch","wizard"]},{"id":":man_mage:","symbol":"🧙‍♂️","group":"people","keywords":["man mage","sorcerer","wizard"]},{"id":":woman_mage:","symbol":"🧙‍♀️","group":"people","keywords":["sorceress","witch","woman mage"]},{"id":":fairy:","symbol":"🧚","group":"people","keywords":["fairy","Oberon","Puck","Titania"]},{"id":":man_fairy:","symbol":"🧚‍♂️","group":"people","keywords":["man fairy","Oberon","Puck"]},{"id":":woman_fairy:","symbol":"🧚‍♀️","group":"people","keywords":["Titania","woman fairy"]},{"id":":vampire:","symbol":"🧛","group":"people","keywords":["Dracula","undead","vampire"]},{"id":":man_vampire:","symbol":"🧛‍♂️","group":"people","keywords":["Dracula","man vampire","undead"]},{"id":":woman_vampire:","symbol":"🧛‍♀️","group":"people","keywords":["undead","woman vampire"]},{"id":":merperson:","symbol":"🧜","group":"people","keywords":["mermaid","merman","merperson","merwoman"]},{"id":":merman:","symbol":"🧜‍♂️","group":"people","keywords":["merman","Triton"]},{"id":":mermaid:","symbol":"🧜‍♀️","group":"people","keywords":["mermaid","merwoman"]},{"id":":elf:","symbol":"🧝","group":"people","keywords":["elf","magical",""]},{"id":":man_elf:","symbol":"🧝‍♂️","group":"people","keywords":["magical","man elf"]},{"id":":woman_elf:","symbol":"🧝‍♀️","group":"people","keywords":["magical","woman elf"]},{"id":":genie:","symbol":"🧞","group":"people","keywords":["djinn","genie",""]},{"id":":man_genie:","symbol":"🧞‍♂️","group":"people","keywords":["djinn","man genie"]},{"id":":woman_genie:","symbol":"🧞‍♀️","group":"people","keywords":["djinn","woman genie"]},{"id":":zombie:","symbol":"🧟","group":"people","keywords":["undead","walking dead","zombie",""]},{"id":":man_zombie:","symbol":"🧟‍♂️","group":"people","keywords":["man zombie","undead","walking dead"]},{"id":":woman_zombie:","symbol":"🧟‍♀️","group":"people","keywords":["undead","walking dead","woman zombie"]},{"id":":person_frowning:","symbol":"🙍","group":"people","keywords":["frown","gesture","person frowning"]},{"id":":man_frowning:","symbol":"🙍‍♂️","group":"people","keywords":["frowning","gesture","man"]},{"id":":woman_frowning:","symbol":"🙍‍♀️","group":"people","keywords":["frowning","gesture","woman"]},{"id":":person_pouting:","symbol":"🙎","group":"people","keywords":["gesture","person pouting","pouting"]},{"id":":man_pouting:","symbol":"🙎‍♂️","group":"people","keywords":["gesture","man","pouting"]},{"id":":woman_pouting:","symbol":"🙎‍♀️","group":"people","keywords":["gesture","pouting","woman"]},{"id":":person_gesturing_no:","symbol":"🙅","group":"people","keywords":["forbidden","gesture","hand","person gesturing NO","prohibited"]},{"id":":man_gesturing_no:","symbol":"🙅‍♂️","group":"people","keywords":["forbidden","gesture","hand","man","man gesturing NO","prohibited"]},{"id":":woman_gesturing_no:","symbol":"🙅‍♀️","group":"people","keywords":["forbidden","gesture","hand","prohibited","woman","woman gesturing NO"]},{"id":":person_gesturing_ok:","symbol":"🙆","group":"people","keywords":["gesture","hand","OK","person gesturing OK"]},{"id":":man_gesturing_ok:","symbol":"🙆‍♂️","group":"people","keywords":["gesture","hand","man","man gesturing OK","OK"]},{"id":":woman_gesturing_ok:","symbol":"🙆‍♀️","group":"people","keywords":["gesture","hand","OK","woman","woman gesturing OK"]},{"id":":person_tipping_hand:","symbol":"💁","group":"people","keywords":["hand","help","information","person tipping hand","sassy","tipping"]},{"id":":man_tipping_hand:","symbol":"💁‍♂️","group":"people","keywords":["man","man tipping hand","sassy","tipping hand"]},{"id":":woman_tipping_hand:","symbol":"💁‍♀️","group":"people","keywords":["sassy","tipping hand","woman","woman tipping hand"]},{"id":":person_raising_hand:","symbol":"🙋","group":"people","keywords":["gesture","hand","happy","person raising hand","raised"]},{"id":":man_raising_hand:","symbol":"🙋‍♂️","group":"people","keywords":["gesture","man","man raising hand","raising hand"]},{"id":":woman_raising_hand:","symbol":"🙋‍♀️","group":"people","keywords":["gesture","raising hand","woman","woman raising hand"]},{"id":":person_bowing:","symbol":"🙇","group":"people","keywords":["apology","bow","gesture","person bowing","sorry"]},{"id":":man_bowing:","symbol":"🙇‍♂️","group":"people","keywords":["apology","bowing","favor","gesture","man","sorry"]},{"id":":woman_bowing:","symbol":"🙇‍♀️","group":"people","keywords":["apology","bowing","favor","gesture","sorry","woman"]},{"id":":person_facepalming:","symbol":"🤦","group":"people","keywords":["disbelief","exasperation","face","palm","person facepalming"]},{"id":":man_facepalming:","symbol":"🤦‍♂️","group":"people","keywords":["disbelief","exasperation","facepalm","man","man facepalming"]},{"id":":woman_facepalming:","symbol":"🤦‍♀️","group":"people","keywords":["disbelief","exasperation","facepalm","woman","woman facepalming"]},{"id":":person_shrugging:","symbol":"🤷","group":"people","keywords":["doubt","ignorance","indifference","person shrugging","shrug"]},{"id":":man_shrugging:","symbol":"🤷‍♂️","group":"people","keywords":["doubt","ignorance","indifference","man","man shrugging","shrug"]},{"id":":woman_shrugging:","symbol":"🤷‍♀️","group":"people","keywords":["doubt","ignorance","indifference","shrug","woman","woman shrugging"]},{"id":":person_getting_massage:","symbol":"💆","group":"people","keywords":["face","massage","person getting massage","salon"]},{"id":":man_getting_massage:","symbol":"💆‍♂️","group":"people","keywords":["face","man","man getting massage","massage"]},{"id":":woman_getting_massage:","symbol":"💆‍♀️","group":"people","keywords":["face","massage","woman","woman getting massage"]},{"id":":person_getting_haircut:","symbol":"💇","group":"people","keywords":["barber","beauty","haircut","parlor","person getting haircut"]},{"id":":man_getting_haircut:","symbol":"💇‍♂️","group":"people","keywords":["haircut","man","man getting haircut"]},{"id":":woman_getting_haircut:","symbol":"💇‍♀️","group":"people","keywords":["haircut","woman","woman getting haircut"]},{"id":":person_walking:","symbol":"🚶","group":"people","keywords":["hike","person walking","walk","walking"]},{"id":":man_walking:","symbol":"🚶‍♂️","group":"people","keywords":["hike","man","man walking","walk"]},{"id":":woman_walking:","symbol":"🚶‍♀️","group":"people","keywords":["hike","walk","woman","woman walking"]},{"id":":person_running:","symbol":"🏃","group":"people","keywords":["marathon","person running","running"]},{"id":":man_running:","symbol":"🏃‍♂️","group":"people","keywords":["man","marathon","racing","running"]},{"id":":woman_running:","symbol":"🏃‍♀️","group":"people","keywords":["marathon","racing","running","woman"]},{"id":":woman_dancing:","symbol":"💃","group":"people","keywords":["dancing","woman"]},{"id":":man_dancing:","symbol":"🕺","group":"people","keywords":["dance","man","man dancing"]},{"id":":people_with_bunny_ears:","symbol":"👯","group":"people","keywords":["bunny ear","dancer","partying","people with bunny ears"]},{"id":":men_with_bunny_ears:","symbol":"👯‍♂️","group":"people","keywords":["bunny ear","dancer","men","men with bunny ears","partying"]},{"id":":women_with_bunny_ears:","symbol":"👯‍♀️","group":"people","keywords":["bunny ear","dancer","partying","women","women with bunny ears"]},{"id":":person_in_steamy_room:","symbol":"🧖","group":"people","keywords":["person in steamy room","sauna","steam room",""]},{"id":":man_in_steamy_room:","symbol":"🧖‍♂️","group":"people","keywords":["man in steamy room","sauna","steam room"]},{"id":":woman_in_steamy_room:","symbol":"🧖‍♀️","group":"people","keywords":["sauna","steam room","woman in steamy room"]},{"id":":person_climbing:","symbol":"🧗","group":"people","keywords":["climber","person climbing"]},{"id":":man_climbing:","symbol":"🧗‍♂️","group":"people","keywords":["climber","man climbing"]},{"id":":woman_climbing:","symbol":"🧗‍♀️","group":"people","keywords":["climber","woman climbing"]},{"id":":person_in_lotus_position:","symbol":"🧘","group":"people","keywords":["meditation","person in lotus position","yoga",""]},{"id":":man_in_lotus_position:","symbol":"🧘‍♂️","group":"people","keywords":["man in lotus position","meditation","yoga"]},{"id":":woman_in_lotus_position:","symbol":"🧘‍♀️","group":"people","keywords":["meditation","woman in lotus position","yoga"]},{"id":":person_taking_bath:","symbol":"🛀","group":"people","keywords":["bath","bathtub","person taking bath"]},{"id":":person_in_bed:","symbol":"🛌","group":"people","keywords":["hotel","person in bed","sleep"]},{"id":":man_in_suit_levitating:","symbol":"🕴","group":"people","keywords":["business","man","man in suit levitating","suit"]},{"id":":speaking_head:","symbol":"🗣","group":"people","keywords":["face","head","silhouette","speak","speaking"]},{"id":":bust_in_silhouette:","symbol":"👤","group":"people","keywords":["bust","bust in silhouette","silhouette"]},{"id":":busts_in_silhouette:","symbol":"👥","group":"people","keywords":["bust","busts in silhouette","silhouette"]},{"id":":person_fencing:","symbol":"🤺","group":"people","keywords":["fencer","fencing","person fencing","sword"]},{"id":":horse_racing:","symbol":"🏇","group":"people","keywords":["horse","jockey","racehorse","racing"]},{"id":":skier:","symbol":"⛷","group":"people","keywords":["ski","skier","snow"]},{"id":":snowboarder:","symbol":"🏂","group":"people","keywords":["ski","snow","snowboard","snowboarder"]},{"id":":person_golfing:","symbol":"🏌","group":"people","keywords":["ball","golf","person golfing"]},{"id":":man_golfing:","symbol":"🏌️‍♂️","group":"people","keywords":["golf","man","man golfing"]},{"id":":woman_golfing:","symbol":"🏌️‍♀️","group":"people","keywords":["golf","woman","woman golfing"]},{"id":":person_surfing:","symbol":"🏄","group":"people","keywords":["person surfing","surfing"]},{"id":":man_surfing:","symbol":"🏄‍♂️","group":"people","keywords":["man","surfing"]},{"id":":woman_surfing:","symbol":"🏄‍♀️","group":"people","keywords":["surfing","woman"]},{"id":":person_rowing_boat:","symbol":"🚣","group":"people","keywords":["boat","person rowing boat","rowboat"]},{"id":":man_rowing_boat:","symbol":"🚣‍♂️","group":"people","keywords":["boat","man","man rowing boat","rowboat"]},{"id":":woman_rowing_boat:","symbol":"🚣‍♀️","group":"people","keywords":["boat","rowboat","woman","woman rowing boat"]},{"id":":person_swimming:","symbol":"🏊","group":"people","keywords":["person swimming","swim"]},{"id":":man_swimming:","symbol":"🏊‍♂️","group":"people","keywords":["man","man swimming","swim"]},{"id":":woman_swimming:","symbol":"🏊‍♀️","group":"people","keywords":["swim","woman","woman swimming"]},{"id":":person_bouncing_ball:","symbol":"⛹","group":"people","keywords":["ball","person bouncing ball"]},{"id":":man_bouncing_ball:","symbol":"⛹️‍♂️","group":"people","keywords":["ball","man","man bouncing ball"]},{"id":":woman_bouncing_ball:","symbol":"⛹️‍♀️","group":"people","keywords":["ball","woman","woman bouncing ball"]},{"id":":person_lifting_weights:","symbol":"🏋","group":"people","keywords":["lifter","person lifting weights","weight"]},{"id":":man_lifting_weights:","symbol":"🏋️‍♂️","group":"people","keywords":["man","man lifting weights","weight lifter"]},{"id":":woman_lifting_weights:","symbol":"🏋️‍♀️","group":"people","keywords":["weight lifter","woman","woman lifting weights"]},{"id":":person_biking:","symbol":"🚴","group":"people","keywords":["bicycle","biking","cyclist","person biking"]},{"id":":man_biking:","symbol":"🚴‍♂️","group":"people","keywords":["bicycle","biking","cyclist","man"]},{"id":":woman_biking:","symbol":"🚴‍♀️","group":"people","keywords":["bicycle","biking","cyclist","woman"]},{"id":":person_mountain_biking:","symbol":"🚵","group":"people","keywords":["bicycle","bicyclist","bike","cyclist","mountain","person mountain biking"]},{"id":":man_mountain_biking:","symbol":"🚵‍♂️","group":"people","keywords":["bicycle","bike","cyclist","man","man mountain biking","mountain"]},{"id":":woman_mountain_biking:","symbol":"🚵‍♀️","group":"people","keywords":["bicycle","bike","biking","cyclist","mountain","woman"]},{"id":":racing_car:","symbol":"🏎","group":"people","keywords":["car","racing"]},{"id":":motorcycle:","symbol":"🏍","group":"people","keywords":["motorcycle","racing"]},{"id":":person_cartwheeling:","symbol":"🤸","group":"people","keywords":["cartwheel","gymnastics","person cartwheeling"]},{"id":":man_cartwheeling:","symbol":"🤸‍♂️","group":"people","keywords":["cartwheel","gymnastics","man","man cartwheeling"]},{"id":":woman_cartwheeling:","symbol":"🤸‍♀️","group":"people","keywords":["cartwheel","gymnastics","woman","woman cartwheeling"]},{"id":":people_wrestling:","symbol":"🤼","group":"people","keywords":["people wrestling","wrestle","wrestler"]},{"id":":men_wrestling:","symbol":"🤼‍♂️","group":"people","keywords":["men","men wrestling","wrestle"]},{"id":":women_wrestling:","symbol":"🤼‍♀️","group":"people","keywords":["women","women wrestling","wrestle"]},{"id":":person_playing_water_polo:","symbol":"🤽","group":"people","keywords":["person playing water polo","polo","water"]},{"id":":man_playing_water_polo:","symbol":"🤽‍♂️","group":"people","keywords":["man","man playing water polo","water polo"]},{"id":":woman_playing_water_polo:","symbol":"🤽‍♀️","group":"people","keywords":["water polo","woman","woman playing water polo"]},{"id":":person_playing_handball:","symbol":"🤾","group":"people","keywords":["ball","handball","person playing handball"]},{"id":":man_playing_handball:","symbol":"🤾‍♂️","group":"people","keywords":["handball","man","man playing handball"]},{"id":":woman_playing_handball:","symbol":"🤾‍♀️","group":"people","keywords":["handball","woman","woman playing handball"]},{"id":":person_juggling:","symbol":"🤹","group":"people","keywords":["balance","juggle","multitask","person juggling","skill"]},{"id":":man_juggling:","symbol":"🤹‍♂️","group":"people","keywords":["juggling","man","multitask"]},{"id":":woman_juggling:","symbol":"🤹‍♀️","group":"people","keywords":["juggling","multitask","woman"]},{"id":":man_and_woman_holding_hands:","symbol":"👫","group":"people","keywords":["couple","hand","hold","man","man and woman holding hands","woman"]},{"id":":two_men_holding_hands:","symbol":"👬","group":"people","keywords":["couple","Gemini","man","twins","two men holding hands","zodiac"]},{"id":":two_women_holding_hands:","symbol":"👭","group":"people","keywords":["couple","hand","two women holding hands","woman"]},{"id":":kiss:","symbol":"💏","group":"people","keywords":["couple","kiss"]},{"id":":kiss_woman_man:","symbol":"👩‍❤️‍💋‍👨","group":"people","keywords":["couple","kiss","man","woman"]},{"id":":kiss_man_man:","symbol":"👨‍❤️‍💋‍👨","group":"people","keywords":["couple","kiss","man"]},{"id":":kiss_woman_woman:","symbol":"👩‍❤️‍💋‍👩","group":"people","keywords":["couple","kiss","woman"]},{"id":":couple_with_heart:","symbol":"💑","group":"people","keywords":["couple","couple with heart","love"]},{"id":":couple_with_heart_woman_man:","symbol":"👩‍❤️‍👨","group":"people","keywords":["couple","couple with heart","love","man","woman"]},{"id":":couple_with_heart_man_man:","symbol":"👨‍❤️‍👨","group":"people","keywords":["couple","couple with heart","love","man"]},{"id":":couple_with_heart_woman_woman:","symbol":"👩‍❤️‍👩","group":"people","keywords":["couple","couple with heart","love","woman"]},{"id":":family:","symbol":"👪","group":"people","keywords":["family"]},{"id":":family_man_woman_boy:","symbol":"👨‍👩‍👦","group":"people","keywords":["boy","family","man","woman"]},{"id":":family_man_woman_girl:","symbol":"👨‍👩‍👧","group":"people","keywords":["family","girl","man","woman"]},{"id":":family_man_woman_girl_boy:","symbol":"👨‍👩‍👧‍👦","group":"people","keywords":["boy","family","girl","man","woman"]},{"id":":family_man_woman_boy_boy:","symbol":"👨‍👩‍👦‍👦","group":"people","keywords":["boy","family","man","woman"]},{"id":":family_man_woman_girl_girl:","symbol":"👨‍👩‍👧‍👧","group":"people","keywords":["family","girl","man","woman"]},{"id":":family_man_man_boy:","symbol":"👨‍👨‍👦","group":"people","keywords":["boy","family","man"]},{"id":":family_man_man_girl:","symbol":"👨‍👨‍👧","group":"people","keywords":["family","girl","man"]},{"id":":family_man_man_girl_boy:","symbol":"👨‍👨‍👧‍👦","group":"people","keywords":["boy","family","girl","man"]},{"id":":family_man_man_boy_boy:","symbol":"👨‍👨‍👦‍👦","group":"people","keywords":["boy","family","man"]},{"id":":family_man_man_girl_girl:","symbol":"👨‍👨‍👧‍👧","group":"people","keywords":["family","girl","man"]},{"id":":family_woman_woman_boy:","symbol":"👩‍👩‍👦","group":"people","keywords":["boy","family","woman"]},{"id":":family_woman_woman_girl:","symbol":"👩‍👩‍👧","group":"people","keywords":["family","girl","woman"]},{"id":":family_woman_woman_girl_boy:","symbol":"👩‍👩‍👧‍👦","group":"people","keywords":["boy","family","girl","woman"]},{"id":":family_woman_woman_boy_boy:","symbol":"👩‍👩‍👦‍👦","group":"people","keywords":["boy","family","woman"]},{"id":":family_woman_woman_girl_girl:","symbol":"👩‍👩‍👧‍👧","group":"people","keywords":["family","girl","woman"]},{"id":":family_man_boy:","symbol":"👨‍👦","group":"people","keywords":["boy","family","man"]},{"id":":family_man_boy_boy:","symbol":"👨‍👦‍👦","group":"people","keywords":["boy","family","man"]},{"id":":family_man_girl:","symbol":"👨‍👧","group":"people","keywords":["family","girl","man"]},{"id":":family_man_girl_boy:","symbol":"👨‍👧‍👦","group":"people","keywords":["boy","family","girl","man"]},{"id":":family_man_girl_girl:","symbol":"👨‍👧‍👧","group":"people","keywords":["family","girl","man"]},{"id":":family_woman_boy:","symbol":"👩‍👦","group":"people","keywords":["boy","family","woman"]},{"id":":family_woman_boy_boy:","symbol":"👩‍👦‍👦","group":"people","keywords":["boy","family","woman"]},{"id":":family_woman_girl:","symbol":"👩‍👧","group":"people","keywords":["family","girl","woman"]},{"id":":family_woman_girl_boy:","symbol":"👩‍👧‍👦","group":"people","keywords":["boy","family","girl","woman"]},{"id":":family_woman_girl_girl:","symbol":"👩‍👧‍👧","group":"people","keywords":["family","girl","woman"]},{"id":":selfie:","symbol":"🤳","group":"people","keywords":["camera","phone","selfie"]},{"id":":flexed_biceps:","symbol":"💪","group":"people","keywords":["biceps","comic","flex","flexed biceps","muscle"]},{"id":":backhand_index_pointing_left:","symbol":"👈","group":"people","keywords":["backhand","backhand index pointing left","finger","hand","index","point"]},{"id":":backhand_index_pointing_right:","symbol":"👉","group":"people","keywords":["backhand","backhand index pointing right","finger","hand","index","point"]},{"id":":index_pointing_up:","symbol":"☝","group":"people","keywords":["finger","hand","index","index pointing up","point","up"]},{"id":":backhand_index_pointing_up:","symbol":"👆","group":"people","keywords":["backhand","backhand index pointing up","finger","hand","point","up"]},{"id":":middle_finger:","symbol":"🖕","group":"people","keywords":["finger","hand","middle finger"]},{"id":":backhand_index_pointing_down:","symbol":"👇","group":"people","keywords":["backhand","backhand index pointing down","down","finger","hand","point"]},{"id":":victory_hand:","symbol":"✌","group":"people","keywords":["hand","v","victory"]},{"id":":crossed_fingers:","symbol":"🤞","group":"people","keywords":["cross","crossed fingers","finger","hand","luck"]},{"id":":vulcan_salute:","symbol":"🖖","group":"people","keywords":["finger","hand","spock","vulcan","vulcan salute"]},{"id":":sign_of_the_horns:","symbol":"🤘","group":"people","keywords":["finger","hand","horns","rock-on","sign of the horns"]},{"id":":call_me_hand:","symbol":"🤙","group":"people","keywords":["call","call me hand","hand"]},{"id":":hand_with_fingers_splayed:","symbol":"🖐","group":"people","keywords":["finger","hand","hand with fingers splayed","splayed"]},{"id":":raised_hand:","symbol":"✋","group":"people","keywords":["hand","raised hand"]},{"id":":ok_hand:","symbol":"👌","group":"people","keywords":["hand","OK"]},{"id":":thumbs_up:","symbol":"👍","group":"people","keywords":["+1","hand","thumb","thumbs up","up"]},{"id":":thumbs_down:","symbol":"👎","group":"people","keywords":["-1","down","hand","thumb","thumbs down"]},{"id":":raised_fist:","symbol":"✊","group":"people","keywords":["clenched","fist","hand","punch","raised fist"]},{"id":":oncoming_fist:","symbol":"👊","group":"people","keywords":["clenched","fist","hand","oncoming fist","punch"]},{"id":":left-facing_fist:","symbol":"🤛","group":"people","keywords":["fist","left-facing fist","leftwards"]},{"id":":right-facing_fist:","symbol":"🤜","group":"people","keywords":["fist","right-facing fist","rightwards"]},{"id":":raised_back_of_hand:","symbol":"🤚","group":"people","keywords":["backhand","raised","raised back of hand"]},{"id":":waving_hand:","symbol":"👋","group":"people","keywords":["hand","wave","waving"]},{"id":":love-you_gesture:","symbol":"🤟","group":"people","keywords":["hand","ILY","love-you gesture"]},{"id":":writing_hand:","symbol":"✍","group":"people","keywords":["hand","write","writing hand"]},{"id":":clapping_hands:","symbol":"👏","group":"people","keywords":["clap","clapping hands","hand"]},{"id":":open_hands:","symbol":"👐","group":"people","keywords":["hand","open","open hands"]},{"id":":raising_hands:","symbol":"🙌","group":"people","keywords":["celebration","gesture","hand","hooray","raised","raising hands"]},{"id":":palms_up_together:","symbol":"🤲","group":"people","keywords":["palms up together","prayer",""]},{"id":":folded_hands:","symbol":"🙏","group":"people","keywords":["ask","folded hands","hand","please","pray","thanks"]},{"id":":handshake:","symbol":"🤝","group":"people","keywords":["agreement","hand","handshake","meeting","shake"]},{"id":":nail_polish:","symbol":"💅","group":"people","keywords":["care","cosmetics","manicure","nail","polish"]},{"id":":ear:","symbol":"👂","group":"people","keywords":["body","ear"]},{"id":":nose:","symbol":"👃","group":"people","keywords":["body","nose"]},{"id":":footprints:","symbol":"👣","group":"people","keywords":["clothing","footprint","footprints","print"]},{"id":":eyes:","symbol":"👀","group":"people","keywords":["eye","eyes","face"]},{"id":":eye:","symbol":"👁","group":"people","keywords":["body","eye"]},{"id":":eye_in_speech_bubble:","symbol":"👁️‍🗨️","group":"people","keywords":["eye","eye in speech bubble","speech bubble","witness"]},{"id":":brain:","symbol":"🧠","group":"people","keywords":["brain","intelligent"]},{"id":":tongue:","symbol":"👅","group":"people","keywords":["body","tongue"]},{"id":":mouth:","symbol":"👄","group":"people","keywords":["lips","mouth"]},{"id":":kiss_mark:","symbol":"💋","group":"people","keywords":["kiss","kiss mark","lips"]},{"id":":heart_with_arrow:","symbol":"💘","group":"people","keywords":["arrow","cupid","heart with arrow"]},{"id":":heart_with_ribbon:","symbol":"💝","group":"people","keywords":["heart with ribbon","ribbon","valentine"]},{"id":":sparkling_heart:","symbol":"💖","group":"people","keywords":["excited","sparkle","sparkling heart"]},{"id":":growing_heart:","symbol":"💗","group":"people","keywords":["excited","growing","growing heart","nervous","pulse"]},{"id":":beating_heart:","symbol":"💓","group":"people","keywords":["beating","beating heart","heartbeat","pulsating"]},{"id":":revolving_hearts:","symbol":"💞","group":"people","keywords":["revolving","revolving hearts"]},{"id":":two_hearts:","symbol":"💕","group":"people","keywords":["love","two hearts"]},{"id":":love_letter:","symbol":"💌","group":"people","keywords":["heart","letter","love","mail"]},{"id":":heavy_heart_exclamation:","symbol":"❣","group":"people","keywords":["exclamation","heavy heart exclamation","mark","punctuation"]},{"id":":broken_heart:","symbol":"💔","group":"people","keywords":["break","broken","broken heart"]},{"id":":red_heart:","symbol":"❤","group":"people","keywords":["heart","red heart"]},{"id":":orange_heart:","symbol":"🧡","group":"people","keywords":["orange","orange heart"]},{"id":":yellow_heart:","symbol":"💛","group":"people","keywords":["yellow","yellow heart"]},{"id":":green_heart:","symbol":"💚","group":"people","keywords":["green","green heart"]},{"id":":blue_heart:","symbol":"💙","group":"people","keywords":["blue","blue heart"]},{"id":":purple_heart:","symbol":"💜","group":"people","keywords":["purple","purple heart"]},{"id":":black_heart:","symbol":"🖤","group":"people","keywords":["black","black heart","evil","wicked"]},{"id":":heart_decoration:","symbol":"💟","group":"people","keywords":["heart","heart decoration"]},{"id":":zzz:","symbol":"💤","group":"people","keywords":["comic","sleep","zzz"]},{"id":":anger_symbol:","symbol":"💢","group":"people","keywords":["anger symbol","angry","comic","mad"]},{"id":":bomb:","symbol":"💣","group":"people","keywords":["bomb","comic"]},{"id":":collision:","symbol":"💥","group":"people","keywords":["boom","collision","comic"]},{"id":":sweat_droplets:","symbol":"💦","group":"people","keywords":["comic","splashing","sweat","sweat droplets"]},{"id":":dashing_away:","symbol":"💨","group":"people","keywords":["comic","dash","dashing away","running"]},{"id":":dizzy:","symbol":"💫","group":"people","keywords":["comic","dizzy","star"]},{"id":":speech_balloon:","symbol":"💬","group":"people","keywords":["balloon","bubble","comic","dialog","speech"]},{"id":":left_speech_bubble:","symbol":"🗨","group":"people","keywords":["dialog","left speech bubble","speech"]},{"id":":right_anger_bubble:","symbol":"🗯","group":"people","keywords":["angry","balloon","bubble","mad","right anger bubble"]},{"id":":thought_balloon:","symbol":"💭","group":"people","keywords":["balloon","bubble","comic","thought"]},{"id":":hole:","symbol":"🕳","group":"people","keywords":["hole"]},{"id":":glasses:","symbol":"👓","group":"people","keywords":["clothing","eye","eyeglasses","eyewear","glasses"]},{"id":":sunglasses:","symbol":"🕶","group":"people","keywords":["dark","eye","eyewear","glasses","sunglasses"]},{"id":":necktie:","symbol":"👔","group":"people","keywords":["clothing","necktie","tie"]},{"id":":t-shirt:","symbol":"👕","group":"people","keywords":["clothing","shirt","t-shirt","tshirt"]},{"id":":jeans:","symbol":"👖","group":"people","keywords":["clothing","jeans","pants","trousers"]},{"id":":scarf:","symbol":"🧣","group":"people","keywords":["neck","scarf"]},{"id":":gloves:","symbol":"🧤","group":"people","keywords":["gloves","hand"]},{"id":":coat:","symbol":"🧥","group":"people","keywords":["coat","jacket"]},{"id":":socks:","symbol":"🧦","group":"people","keywords":["socks","stocking"]},{"id":":dress:","symbol":"👗","group":"people","keywords":["clothing","dress"]},{"id":":kimono:","symbol":"👘","group":"people","keywords":["clothing","kimono"]},{"id":":bikini:","symbol":"👙","group":"people","keywords":["bikini","clothing","swim"]},{"id":":woman’s_clothes:","symbol":"👚","group":"people","keywords":["clothing","woman","woman’s clothes"]},{"id":":purse:","symbol":"👛","group":"people","keywords":["clothing","coin","purse"]},{"id":":handbag:","symbol":"👜","group":"people","keywords":["bag","clothing","handbag","purse"]},{"id":":clutch_bag:","symbol":"👝","group":"people","keywords":["bag","clothing","clutch bag","pouch"]},{"id":":shopping_bags:","symbol":"🛍","group":"people","keywords":["bag","hotel","shopping","shopping bags"]},{"id":":backpack:","symbol":"🎒","group":"people","keywords":["backpack","bag","rucksack","satchel","school"]},{"id":":man’s_shoe:","symbol":"👞","group":"people","keywords":["clothing","man","man’s shoe","shoe"]},{"id":":running_shoe:","symbol":"👟","group":"people","keywords":["athletic","clothing","running shoe","shoe","sneaker"]},{"id":":high-heeled_shoe:","symbol":"👠","group":"people","keywords":["clothing","heel","high-heeled shoe","shoe","woman"]},{"id":":woman’s_sandal:","symbol":"👡","group":"people","keywords":["clothing","sandal","shoe","woman","woman’s sandal"]},{"id":":woman’s_boot:","symbol":"👢","group":"people","keywords":["boot","clothing","shoe","woman","woman’s boot"]},{"id":":crown:","symbol":"👑","group":"people","keywords":["clothing","crown","king","queen"]},{"id":":woman’s_hat:","symbol":"👒","group":"people","keywords":["clothing","hat","woman","woman’s hat"]},{"id":":top_hat:","symbol":"🎩","group":"people","keywords":["clothing","hat","top","tophat"]},{"id":":graduation_cap:","symbol":"🎓","group":"people","keywords":["cap","celebration","clothing","graduation","hat"]},{"id":":billed_cap:","symbol":"🧢","group":"people","keywords":["baseball cap","billed cap"]},{"id":":rescue_worker’s_helmet:","symbol":"⛑","group":"people","keywords":["aid","cross","face","hat","helmet","rescue worker’s helmet"]},{"id":":prayer_beads:","symbol":"📿","group":"people","keywords":["beads","clothing","necklace","prayer","religion"]},{"id":":lipstick:","symbol":"💄","group":"people","keywords":["cosmetics","lipstick","makeup"]},{"id":":ring:","symbol":"💍","group":"people","keywords":["diamond","ring"]},{"id":":gem_stone:","symbol":"💎","group":"people","keywords":["diamond","gem","gem stone","jewel"]},{"id":":monkey_face:","symbol":"🐵","group":"nature","keywords":["face","monkey"]},{"id":":monkey:","symbol":"🐒","group":"nature","keywords":["monkey"]},{"id":":gorilla:","symbol":"🦍","group":"nature","keywords":["gorilla"]},{"id":":dog_face:","symbol":"🐶","group":"nature","keywords":["dog","face","pet"]},{"id":":dog:","symbol":"🐕","group":"nature","keywords":["dog","pet"]},{"id":":poodle:","symbol":"🐩","group":"nature","keywords":["dog","poodle"]},{"id":":wolf_face:","symbol":"🐺","group":"nature","keywords":["face","wolf"]},{"id":":fox_face:","symbol":"🦊","group":"nature","keywords":["face","fox"]},{"id":":cat_face:","symbol":"🐱","group":"nature","keywords":["cat","face","pet"]},{"id":":cat:","symbol":"🐈","group":"nature","keywords":["cat","pet"]},{"id":":lion_face:","symbol":"🦁","group":"nature","keywords":["face","Leo","lion","zodiac"]},{"id":":tiger_face:","symbol":"🐯","group":"nature","keywords":["face","tiger"]},{"id":":tiger:","symbol":"🐅","group":"nature","keywords":["tiger"]},{"id":":leopard:","symbol":"🐆","group":"nature","keywords":["leopard"]},{"id":":horse_face:","symbol":"🐴","group":"nature","keywords":["face","horse"]},{"id":":horse:","symbol":"🐎","group":"nature","keywords":["equestrian","horse","racehorse","racing"]},{"id":":unicorn_face:","symbol":"🦄","group":"nature","keywords":["face","unicorn"]},{"id":":zebra:","symbol":"🦓","group":"nature","keywords":["stripe","zebra"]},{"id":":deer:","symbol":"🦌","group":"nature","keywords":["deer"]},{"id":":cow_face:","symbol":"🐮","group":"nature","keywords":["cow","face"]},{"id":":ox:","symbol":"🐂","group":"nature","keywords":["bull","ox","Taurus","zodiac"]},{"id":":water_buffalo:","symbol":"🐃","group":"nature","keywords":["buffalo","water"]},{"id":":cow:","symbol":"🐄","group":"nature","keywords":["cow"]},{"id":":pig_face:","symbol":"🐷","group":"nature","keywords":["face","pig"]},{"id":":pig:","symbol":"🐖","group":"nature","keywords":["pig","sow"]},{"id":":boar:","symbol":"🐗","group":"nature","keywords":["boar","pig"]},{"id":":pig_nose:","symbol":"🐽","group":"nature","keywords":["face","nose","pig"]},{"id":":ram:","symbol":"🐏","group":"nature","keywords":["Aries","male","ram","sheep","zodiac"]},{"id":":ewe:","symbol":"🐑","group":"nature","keywords":["ewe","female","sheep"]},{"id":":goat:","symbol":"🐐","group":"nature","keywords":["Capricorn","goat","zodiac"]},{"id":":camel:","symbol":"🐪","group":"nature","keywords":["camel","dromedary","hump"]},{"id":":two-hump_camel:","symbol":"🐫","group":"nature","keywords":["bactrian","camel","hump","two-hump camel"]},{"id":":giraffe:","symbol":"🦒","group":"nature","keywords":["giraffe","spots"]},{"id":":elephant:","symbol":"🐘","group":"nature","keywords":["elephant"]},{"id":":rhinoceros:","symbol":"🦏","group":"nature","keywords":["rhinoceros"]},{"id":":mouse_face:","symbol":"🐭","group":"nature","keywords":["face","mouse"]},{"id":":mouse:","symbol":"🐁","group":"nature","keywords":["mouse"]},{"id":":rat:","symbol":"🐀","group":"nature","keywords":["rat"]},{"id":":hamster_face:","symbol":"🐹","group":"nature","keywords":["face","hamster","pet"]},{"id":":rabbit_face:","symbol":"🐰","group":"nature","keywords":["bunny","face","pet","rabbit"]},{"id":":rabbit:","symbol":"🐇","group":"nature","keywords":["bunny","pet","rabbit"]},{"id":":chipmunk:","symbol":"🐿","group":"nature","keywords":["chipmunk","squirrel"]},{"id":":hedgehog:","symbol":"🦔","group":"nature","keywords":["hedgehog","spiny"]},{"id":":bat:","symbol":"🦇","group":"nature","keywords":["bat","vampire"]},{"id":":bear_face:","symbol":"🐻","group":"nature","keywords":["bear","face"]},{"id":":koala:","symbol":"🐨","group":"nature","keywords":["bear","koala"]},{"id":":panda_face:","symbol":"🐼","group":"nature","keywords":["face","panda"]},{"id":":paw_prints:","symbol":"🐾","group":"nature","keywords":["feet","paw","paw prints","print"]},{"id":":turkey:","symbol":"🦃","group":"nature","keywords":["bird","turkey"]},{"id":":chicken:","symbol":"🐔","group":"nature","keywords":["bird","chicken"]},{"id":":rooster:","symbol":"🐓","group":"nature","keywords":["bird","rooster"]},{"id":":hatching_chick:","symbol":"🐣","group":"nature","keywords":["baby","bird","chick","hatching"]},{"id":":baby_chick:","symbol":"🐤","group":"nature","keywords":["baby","bird","chick"]},{"id":":front-facing_baby_chick:","symbol":"🐥","group":"nature","keywords":["baby","bird","chick","front-facing baby chick"]},{"id":":bird:","symbol":"🐦","group":"nature","keywords":["bird"]},{"id":":penguin:","symbol":"🐧","group":"nature","keywords":["bird","penguin"]},{"id":":dove:","symbol":"🕊","group":"nature","keywords":["bird","dove","fly","peace"]},{"id":":eagle:","symbol":"🦅","group":"nature","keywords":["bird","eagle"]},{"id":":duck:","symbol":"🦆","group":"nature","keywords":["bird","duck"]},{"id":":owl:","symbol":"🦉","group":"nature","keywords":["bird","owl","wise"]},{"id":":frog_face:","symbol":"🐸","group":"nature","keywords":["face","frog"]},{"id":":crocodile:","symbol":"🐊","group":"nature","keywords":["crocodile"]},{"id":":turtle:","symbol":"🐢","group":"nature","keywords":["terrapin","tortoise","turtle"]},{"id":":lizard:","symbol":"🦎","group":"nature","keywords":["lizard","reptile"]},{"id":":snake:","symbol":"🐍","group":"nature","keywords":["bearer","Ophiuchus","serpent","snake","zodiac"]},{"id":":dragon_face:","symbol":"🐲","group":"nature","keywords":["dragon","face","fairy tale"]},{"id":":dragon:","symbol":"🐉","group":"nature","keywords":["dragon","fairy tale"]},{"id":":sauropod:","symbol":"🦕","group":"nature","keywords":["brachiosaurus","brontosaurus","diplodocus","sauropod"]},{"id":":t-rex:","symbol":"🦖","group":"nature","keywords":["T-Rex","Tyrannosaurus Rex"]},{"id":":spouting_whale:","symbol":"🐳","group":"nature","keywords":["face","spouting","whale"]},{"id":":whale:","symbol":"🐋","group":"nature","keywords":["whale"]},{"id":":dolphin:","symbol":"🐬","group":"nature","keywords":["dolphin","flipper"]},{"id":":fish:","symbol":"🐟","group":"nature","keywords":["fish","Pisces","zodiac"]},{"id":":tropical_fish:","symbol":"🐠","group":"nature","keywords":["fish","tropical"]},{"id":":blowfish:","symbol":"🐡","group":"nature","keywords":["blowfish","fish"]},{"id":":shark:","symbol":"🦈","group":"nature","keywords":["fish","shark"]},{"id":":octopus:","symbol":"🐙","group":"nature","keywords":["octopus"]},{"id":":spiral_shell:","symbol":"🐚","group":"nature","keywords":["shell","spiral"]},{"id":":crab:","symbol":"🦀","group":"nature","keywords":["Cancer","crab","zodiac"]},{"id":":shrimp:","symbol":"🦐","group":"nature","keywords":["food","shellfish","shrimp","small"]},{"id":":squid:","symbol":"🦑","group":"nature","keywords":["food","molusc","squid"]},{"id":":snail:","symbol":"🐌","group":"nature","keywords":["snail"]},{"id":":butterfly:","symbol":"🦋","group":"nature","keywords":["butterfly","insect","pretty"]},{"id":":bug:","symbol":"🐛","group":"nature","keywords":["bug","insect"]},{"id":":ant:","symbol":"🐜","group":"nature","keywords":["ant","insect"]},{"id":":honeybee:","symbol":"🐝","group":"nature","keywords":["bee","honeybee","insect"]},{"id":":lady_beetle:","symbol":"🐞","group":"nature","keywords":["beetle","insect","lady beetle","ladybird","ladybug"]},{"id":":cricket:","symbol":"🦗","group":"nature","keywords":["cricket","grasshopper",""]},{"id":":spider:","symbol":"🕷","group":"nature","keywords":["insect","spider"]},{"id":":spider_web:","symbol":"🕸","group":"nature","keywords":["spider","web"]},{"id":":scorpion:","symbol":"🦂","group":"nature","keywords":["scorpio","Scorpio","scorpion","zodiac"]},{"id":":bouquet:","symbol":"💐","group":"nature","keywords":["bouquet","flower"]},{"id":":cherry_blossom:","symbol":"🌸","group":"nature","keywords":["blossom","cherry","flower"]},{"id":":white_flower:","symbol":"💮","group":"nature","keywords":["flower","white flower"]},{"id":":rosette:","symbol":"🏵","group":"nature","keywords":["plant","rosette"]},{"id":":rose:","symbol":"🌹","group":"nature","keywords":["flower","rose"]},{"id":":wilted_flower:","symbol":"🥀","group":"nature","keywords":["flower","wilted"]},{"id":":hibiscus:","symbol":"🌺","group":"nature","keywords":["flower","hibiscus"]},{"id":":sunflower:","symbol":"🌻","group":"nature","keywords":["flower","sun","sunflower"]},{"id":":blossom:","symbol":"🌼","group":"nature","keywords":["blossom","flower"]},{"id":":tulip:","symbol":"🌷","group":"nature","keywords":["flower","tulip"]},{"id":":seedling:","symbol":"🌱","group":"nature","keywords":["seedling","young"]},{"id":":evergreen_tree:","symbol":"🌲","group":"nature","keywords":["evergreen tree","tree"]},{"id":":deciduous_tree:","symbol":"🌳","group":"nature","keywords":["deciduous","shedding","tree"]},{"id":":palm_tree:","symbol":"🌴","group":"nature","keywords":["palm","tree"]},{"id":":cactus:","symbol":"🌵","group":"nature","keywords":["cactus","plant"]},{"id":":sheaf_of_rice:","symbol":"🌾","group":"nature","keywords":["ear","grain","rice","sheaf of rice"]},{"id":":herb:","symbol":"🌿","group":"nature","keywords":["herb","leaf"]},{"id":":shamrock:","symbol":"☘","group":"nature","keywords":["plant","shamrock"]},{"id":":four_leaf_clover:","symbol":"🍀","group":"nature","keywords":["4","clover","four","four-leaf clover","leaf"]},{"id":":maple_leaf:","symbol":"🍁","group":"nature","keywords":["falling","leaf","maple"]},{"id":":fallen_leaf:","symbol":"🍂","group":"nature","keywords":["fallen leaf","falling","leaf"]},{"id":":leaf_fluttering_in_wind:","symbol":"🍃","group":"nature","keywords":["blow","flutter","leaf","leaf fluttering in wind","wind"]},{"id":":grapes:","symbol":"🍇","group":"food","keywords":["fruit","grape","grapes"]},{"id":":melon:","symbol":"🍈","group":"food","keywords":["fruit","melon"]},{"id":":watermelon:","symbol":"🍉","group":"food","keywords":["fruit","watermelon"]},{"id":":tangerine:","symbol":"🍊","group":"food","keywords":["fruit","orange","tangerine"]},{"id":":lemon:","symbol":"🍋","group":"food","keywords":["citrus","fruit","lemon"]},{"id":":banana:","symbol":"🍌","group":"food","keywords":["banana","fruit"]},{"id":":pineapple:","symbol":"🍍","group":"food","keywords":["fruit","pineapple"]},{"id":":red_apple:","symbol":"🍎","group":"food","keywords":["apple","fruit","red"]},{"id":":green_apple:","symbol":"🍏","group":"food","keywords":["apple","fruit","green"]},{"id":":pear:","symbol":"🍐","group":"food","keywords":["fruit","pear"]},{"id":":peach:","symbol":"🍑","group":"food","keywords":["fruit","peach"]},{"id":":cherries:","symbol":"🍒","group":"food","keywords":["berries","cherries","cherry","fruit","red"]},{"id":":strawberry:","symbol":"🍓","group":"food","keywords":["berry","fruit","strawberry"]},{"id":":kiwi_fruit:","symbol":"🥝","group":"food","keywords":["food","fruit","kiwi"]},{"id":":tomato:","symbol":"🍅","group":"food","keywords":["fruit","tomato","vegetable"]},{"id":":coconut:","symbol":"🥥","group":"food","keywords":["coconut","palm","piña colada"]},{"id":":avocado:","symbol":"🥑","group":"food","keywords":["avocado","food","fruit"]},{"id":":eggplant:","symbol":"🍆","group":"food","keywords":["aubergine","eggplant","vegetable"]},{"id":":potato:","symbol":"🥔","group":"food","keywords":["food","potato","vegetable"]},{"id":":carrot:","symbol":"🥕","group":"food","keywords":["carrot","food","vegetable"]},{"id":":ear_of_corn:","symbol":"🌽","group":"food","keywords":["corn","ear","ear of corn","maize","maze"]},{"id":":hot_pepper:","symbol":"🌶","group":"food","keywords":["hot","pepper"]},{"id":":cucumber:","symbol":"🥒","group":"food","keywords":["cucumber","food","pickle","vegetable"]},{"id":":broccoli:","symbol":"🥦","group":"food","keywords":["broccoli","wild cabbage"]},{"id":":mushroom:","symbol":"🍄","group":"food","keywords":["mushroom","toadstool"]},{"id":":peanuts:","symbol":"🥜","group":"food","keywords":["food","nut","peanut","peanuts","vegetable"]},{"id":":chestnut:","symbol":"🌰","group":"food","keywords":["chestnut","plant"]},{"id":":bread:","symbol":"🍞","group":"food","keywords":["bread","loaf"]},{"id":":croissant:","symbol":"🥐","group":"food","keywords":["bread","crescent roll","croissant","food","french"]},{"id":":baguette_bread:","symbol":"🥖","group":"food","keywords":["baguette","bread","food","french"]},{"id":":pretzel:","symbol":"🥨","group":"food","keywords":["pretzel","twisted",""]},{"id":":pancakes:","symbol":"🥞","group":"food","keywords":["crêpe","food","hotcake","pancake","pancakes"]},{"id":":cheese_wedge:","symbol":"🧀","group":"food","keywords":["cheese","cheese wedge"]},{"id":":meat_on_bone:","symbol":"🍖","group":"food","keywords":["bone","meat","meat on bone"]},{"id":":poultry_leg:","symbol":"🍗","group":"food","keywords":["bone","chicken","drumstick","leg","poultry"]},{"id":":cut_of_meat:","symbol":"🥩","group":"food","keywords":["chop","cut of meat","lambchop","porkchop","steak"]},{"id":":bacon:","symbol":"🥓","group":"food","keywords":["bacon","food","meat"]},{"id":":hamburger:","symbol":"🍔","group":"food","keywords":["burger","hamburger"]},{"id":":french_fries:","symbol":"🍟","group":"food","keywords":["french","fries"]},{"id":":pizza:","symbol":"🍕","group":"food","keywords":["cheese","pizza","slice"]},{"id":":hot_dog:","symbol":"🌭","group":"food","keywords":["frankfurter","hot dog","hotdog","sausage"]},{"id":":sandwich:","symbol":"🥪","group":"food","keywords":["bread","sandwich"]},{"id":":taco:","symbol":"🌮","group":"food","keywords":["mexican","taco"]},{"id":":burrito:","symbol":"🌯","group":"food","keywords":["burrito","mexican","wrap"]},{"id":":stuffed_flatbread:","symbol":"🥙","group":"food","keywords":["falafel","flatbread","food","gyro","kebab","stuffed"]},{"id":":egg:","symbol":"🥚","group":"food","keywords":["egg","food"]},{"id":":cooking:","symbol":"🍳","group":"food","keywords":["cooking","egg","frying","pan"]},{"id":":shallow_pan_of_food:","symbol":"🥘","group":"food","keywords":["casserole","food","paella","pan","shallow","shallow pan of food"]},{"id":":pot_of_food:","symbol":"🍲","group":"food","keywords":["pot","pot of food","stew"]},{"id":":bowl_with_spoon:","symbol":"🥣","group":"food","keywords":["bowl with spoon","breakfast","cereal","congee",""]},{"id":":green_salad:","symbol":"🥗","group":"food","keywords":["food","green","salad"]},{"id":":popcorn:","symbol":"🍿","group":"food","keywords":["popcorn"]},{"id":":canned_food:","symbol":"🥫","group":"food","keywords":["can","canned food"]},{"id":":bento_box:","symbol":"🍱","group":"food","keywords":["bento","box"]},{"id":":rice_cracker:","symbol":"🍘","group":"food","keywords":["cracker","rice"]},{"id":":rice_ball:","symbol":"🍙","group":"food","keywords":["ball","Japanese","rice"]},{"id":":cooked_rice:","symbol":"🍚","group":"food","keywords":["cooked","rice"]},{"id":":curry_rice:","symbol":"🍛","group":"food","keywords":["curry","rice"]},{"id":":steaming_bowl:","symbol":"🍜","group":"food","keywords":["bowl","noodle","ramen","steaming"]},{"id":":spaghetti:","symbol":"🍝","group":"food","keywords":["pasta","spaghetti"]},{"id":":roasted_sweet_potato:","symbol":"🍠","group":"food","keywords":["potato","roasted","sweet"]},{"id":":oden:","symbol":"🍢","group":"food","keywords":["kebab","oden","seafood","skewer","stick"]},{"id":":sushi:","symbol":"🍣","group":"food","keywords":["sushi"]},{"id":":fried_shrimp:","symbol":"🍤","group":"food","keywords":["fried","prawn","shrimp","tempura"]},{"id":":fish_cake_with_swirl:","symbol":"🍥","group":"food","keywords":["cake","fish","fish cake with swirl","pastry","swirl"]},{"id":":dango:","symbol":"🍡","group":"food","keywords":["dango","dessert","Japanese","skewer","stick","sweet"]},{"id":":dumpling:","symbol":"🥟","group":"food","keywords":["dumpling","empanada","gyōza","jiaozi","pierogi","potsticker"]},{"id":":fortune_cookie:","symbol":"🥠","group":"food","keywords":["fortune cookie","prophecy"]},{"id":":takeout_box:","symbol":"🥡","group":"food","keywords":["oyster pail","takeout box"]},{"id":":soft_ice_cream:","symbol":"🍦","group":"food","keywords":["cream","dessert","ice","icecream","soft","sweet"]},{"id":":shaved_ice:","symbol":"🍧","group":"food","keywords":["dessert","ice","shaved","sweet"]},{"id":":ice_cream:","symbol":"🍨","group":"food","keywords":["cream","dessert","ice","sweet"]},{"id":":doughnut:","symbol":"🍩","group":"food","keywords":["dessert","donut","doughnut","sweet"]},{"id":":cookie:","symbol":"🍪","group":"food","keywords":["cookie","dessert","sweet"]},{"id":":birthday_cake:","symbol":"🎂","group":"food","keywords":["birthday","cake","celebration","dessert","pastry","sweet"]},{"id":":shortcake:","symbol":"🍰","group":"food","keywords":["cake","dessert","pastry","shortcake","slice","sweet"]},{"id":":pie:","symbol":"🥧","group":"food","keywords":["filling","pastry","pie",""]},{"id":":chocolate_bar:","symbol":"🍫","group":"food","keywords":["bar","chocolate","dessert","sweet"]},{"id":":candy:","symbol":"🍬","group":"food","keywords":["candy","dessert","sweet"]},{"id":":lollipop:","symbol":"🍭","group":"food","keywords":["candy","dessert","lollipop","sweet"]},{"id":":custard:","symbol":"🍮","group":"food","keywords":["custard","dessert","pudding","sweet"]},{"id":":honey_pot:","symbol":"🍯","group":"food","keywords":["honey","honeypot","pot","sweet"]},{"id":":baby_bottle:","symbol":"🍼","group":"food","keywords":["baby","bottle","drink","milk"]},{"id":":glass_of_milk:","symbol":"🥛","group":"food","keywords":["drink","glass","glass of milk","milk"]},{"id":":hot_beverage:","symbol":"☕","group":"food","keywords":["beverage","coffee","drink","hot","steaming","tea"]},{"id":":teacup_without_handle:","symbol":"🍵","group":"food","keywords":["beverage","cup","drink","tea","teacup","teacup without handle"]},{"id":":sake:","symbol":"🍶","group":"food","keywords":["bar","beverage","bottle","cup","drink","sake"]},{"id":":bottle_with_popping_cork:","symbol":"🍾","group":"food","keywords":["bar","bottle","bottle with popping cork","cork","drink","popping"]},{"id":":wine_glass:","symbol":"🍷","group":"food","keywords":["bar","beverage","drink","glass","wine"]},{"id":":cocktail_glass:","symbol":"🍸","group":"food","keywords":["bar","cocktail","drink","glass"]},{"id":":tropical_drink:","symbol":"🍹","group":"food","keywords":["bar","drink","tropical"]},{"id":":beer_mug:","symbol":"🍺","group":"food","keywords":["bar","beer","drink","mug"]},{"id":":clinking_beer_mugs:","symbol":"🍻","group":"food","keywords":["bar","beer","clink","clinking beer mugs","drink","mug"]},{"id":":clinking_glasses:","symbol":"🥂","group":"food","keywords":["celebrate","clink","clinking glasses","drink","glass"]},{"id":":tumbler_glass:","symbol":"🥃","group":"food","keywords":["glass","liquor","shot","tumbler","whisky"]},{"id":":cup_with_straw:","symbol":"🥤","group":"food","keywords":["cup with straw","juice","soda",""]},{"id":":chopsticks:","symbol":"🥢","group":"food","keywords":["chopsticks","hashi",""]},{"id":":fork_and_knife_with_plate:","symbol":"🍽","group":"food","keywords":["cooking","fork","fork and knife with plate","knife","plate"]},{"id":":fork_and_knife:","symbol":"🍴","group":"food","keywords":["cooking","cutlery","fork","fork and knife","knife"]},{"id":":spoon:","symbol":"🥄","group":"food","keywords":["spoon","tableware"]},{"id":":kitchen_knife:","symbol":"🔪","group":"food","keywords":["cooking","hocho","kitchen knife","knife","tool","weapon"]},{"id":":amphora:","symbol":"🏺","group":"food","keywords":["amphora","Aquarius","cooking","drink","jug","zodiac"]},{"id":":globe_showing_europe-africa:","symbol":"🌍","group":"travel","keywords":["Africa","earth","Europe","globe","globe showing Europe-Africa","world"]},{"id":":globe_showing_americas:","symbol":"🌎","group":"travel","keywords":["Americas","earth","globe","globe showing Americas","world"]},{"id":":globe_showing_asia-australia:","symbol":"🌏","group":"travel","keywords":["Asia","Australia","earth","globe","globe showing Asia-Australia","world"]},{"id":":globe_with_meridians:","symbol":"🌐","group":"travel","keywords":["earth","globe","globe with meridians","meridians","world"]},{"id":":world_map:","symbol":"🗺","group":"travel","keywords":["map","world"]},{"id":":map_of_japan:","symbol":"🗾","group":"travel","keywords":["Japan","map","map of Japan"]},{"id":":snow-capped_mountain:","symbol":"🏔","group":"travel","keywords":["cold","mountain","snow","snow-capped mountain"]},{"id":":mountain:","symbol":"⛰","group":"travel","keywords":["mountain"]},{"id":":volcano:","symbol":"🌋","group":"travel","keywords":["eruption","mountain","volcano"]},{"id":":mount_fuji:","symbol":"🗻","group":"travel","keywords":["fuji","mount fuji","mountain"]},{"id":":camping:","symbol":"🏕","group":"travel","keywords":["camping"]},{"id":":beach_with_umbrella:","symbol":"🏖","group":"travel","keywords":["beach","beach with umbrella","umbrella"]},{"id":":desert:","symbol":"🏜","group":"travel","keywords":["desert"]},{"id":":desert_island:","symbol":"🏝","group":"travel","keywords":["desert","island"]},{"id":":national_park:","symbol":"🏞","group":"travel","keywords":["national park","park"]},{"id":":stadium:","symbol":"🏟","group":"travel","keywords":["stadium"]},{"id":":classical_building:","symbol":"🏛","group":"travel","keywords":["classical","classical building"]},{"id":":building_construction:","symbol":"🏗","group":"travel","keywords":["building construction","construction"]},{"id":":houses:","symbol":"🏘","group":"travel","keywords":["houses"]},{"id":":derelict_house:","symbol":"🏚","group":"travel","keywords":["derelict","house"]},{"id":":house:","symbol":"🏠","group":"travel","keywords":["home","house"]},{"id":":house_with_garden:","symbol":"🏡","group":"travel","keywords":["garden","home","house","house with garden"]},{"id":":office_building:","symbol":"🏢","group":"travel","keywords":["building","office building"]},{"id":":japanese_post_office:","symbol":"🏣","group":"travel","keywords":["Japanese","Japanese post office","post"]},{"id":":post_office:","symbol":"🏤","group":"travel","keywords":["European","post","post office"]},{"id":":hospital:","symbol":"🏥","group":"travel","keywords":["doctor","hospital","medicine"]},{"id":":bank:","symbol":"🏦","group":"travel","keywords":["bank","building"]},{"id":":hotel:","symbol":"🏨","group":"travel","keywords":["building","hotel"]},{"id":":love_hotel:","symbol":"🏩","group":"travel","keywords":["hotel","love"]},{"id":":convenience_store:","symbol":"🏪","group":"travel","keywords":["convenience","store"]},{"id":":school:","symbol":"🏫","group":"travel","keywords":["building","school"]},{"id":":department_store:","symbol":"🏬","group":"travel","keywords":["department","store"]},{"id":":factory:","symbol":"🏭","group":"travel","keywords":["building","factory"]},{"id":":japanese_castle:","symbol":"🏯","group":"travel","keywords":["castle","Japanese"]},{"id":":castle:","symbol":"🏰","group":"travel","keywords":["castle","European"]},{"id":":wedding:","symbol":"💒","group":"travel","keywords":["chapel","romance","wedding"]},{"id":":tokyo_tower:","symbol":"🗼","group":"travel","keywords":["Tokyo","tower"]},{"id":":statue_of_liberty:","symbol":"🗽","group":"travel","keywords":["liberty","statue","Statue of Liberty"]},{"id":":church:","symbol":"⛪","group":"travel","keywords":["Christian","church","cross","religion"]},{"id":":mosque:","symbol":"🕌","group":"travel","keywords":["islam","mosque","Muslim","religion"]},{"id":":synagogue:","symbol":"🕍","group":"travel","keywords":["Jew","Jewish","religion","synagogue","temple"]},{"id":":shinto_shrine:","symbol":"⛩","group":"travel","keywords":["religion","shinto","shrine"]},{"id":":kaaba:","symbol":"🕋","group":"travel","keywords":["islam","kaaba","Muslim","religion"]},{"id":":fountain:","symbol":"⛲","group":"travel","keywords":["fountain"]},{"id":":tent:","symbol":"⛺","group":"travel","keywords":["camping","tent"]},{"id":":foggy:","symbol":"🌁","group":"travel","keywords":["fog","foggy"]},{"id":":night_with_stars:","symbol":"🌃","group":"travel","keywords":["night","night with stars","star"]},{"id":":cityscape:","symbol":"🏙","group":"travel","keywords":["city","cityscape"]},{"id":":sunrise_over_mountains:","symbol":"🌄","group":"travel","keywords":["morning","mountain","sun","sunrise","sunrise over mountains"]},{"id":":sunrise:","symbol":"🌅","group":"travel","keywords":["morning","sun","sunrise"]},{"id":":cityscape_at_dusk:","symbol":"🌆","group":"travel","keywords":["city","cityscape at dusk","dusk","evening","landscape","sunset"]},{"id":":sunset:","symbol":"🌇","group":"travel","keywords":["dusk","sun","sunset"]},{"id":":bridge_at_night:","symbol":"🌉","group":"travel","keywords":["bridge","bridge at night","night"]},{"id":":hot_springs:","symbol":"♨","group":"travel","keywords":["hot","hotsprings","springs","steaming"]},{"id":":milky_way:","symbol":"🌌","group":"travel","keywords":["milky way","space"]},{"id":":carousel_horse:","symbol":"🎠","group":"travel","keywords":["carousel","horse"]},{"id":":ferris_wheel:","symbol":"🎡","group":"travel","keywords":["amusement park","ferris","wheel"]},{"id":":roller_coaster:","symbol":"🎢","group":"travel","keywords":["amusement park","coaster","roller"]},{"id":":barber_pole:","symbol":"💈","group":"travel","keywords":["barber","haircut","pole"]},{"id":":circus_tent:","symbol":"🎪","group":"travel","keywords":["circus","tent"]},{"id":":locomotive:","symbol":"🚂","group":"travel","keywords":["engine","locomotive","railway","steam","train"]},{"id":":railway_car:","symbol":"🚃","group":"travel","keywords":["car","electric","railway","train","tram","trolleybus"]},{"id":":high-speed_train:","symbol":"🚄","group":"travel","keywords":["high-speed train","railway","shinkansen","speed","train"]},{"id":":bullet_train:","symbol":"🚅","group":"travel","keywords":["bullet","railway","shinkansen","speed","train"]},{"id":":train:","symbol":"🚆","group":"travel","keywords":["railway","train"]},{"id":":metro:","symbol":"🚇","group":"travel","keywords":["metro","subway"]},{"id":":light_rail:","symbol":"🚈","group":"travel","keywords":["light rail","railway"]},{"id":":station:","symbol":"🚉","group":"travel","keywords":["railway","station","train"]},{"id":":tram:","symbol":"🚊","group":"travel","keywords":["tram","trolleybus"]},{"id":":monorail:","symbol":"🚝","group":"travel","keywords":["monorail","vehicle"]},{"id":":mountain_railway:","symbol":"🚞","group":"travel","keywords":["car","mountain","railway"]},{"id":":tram_car:","symbol":"🚋","group":"travel","keywords":["car","tram","trolleybus"]},{"id":":bus:","symbol":"🚌","group":"travel","keywords":["bus","vehicle"]},{"id":":oncoming_bus:","symbol":"🚍","group":"travel","keywords":["bus","oncoming"]},{"id":":trolleybus:","symbol":"🚎","group":"travel","keywords":["bus","tram","trolley","trolleybus"]},{"id":":minibus:","symbol":"🚐","group":"travel","keywords":["bus","minibus"]},{"id":":ambulance:","symbol":"🚑","group":"travel","keywords":["ambulance","vehicle"]},{"id":":fire_engine:","symbol":"🚒","group":"travel","keywords":["engine","fire","truck"]},{"id":":police_car:","symbol":"🚓","group":"travel","keywords":["car","patrol","police"]},{"id":":oncoming_police_car:","symbol":"🚔","group":"travel","keywords":["car","oncoming","police"]},{"id":":taxi:","symbol":"🚕","group":"travel","keywords":["taxi","vehicle"]},{"id":":oncoming_taxi:","symbol":"🚖","group":"travel","keywords":["oncoming","taxi"]},{"id":":automobile:","symbol":"🚗","group":"travel","keywords":["automobile","car"]},{"id":":oncoming_automobile:","symbol":"🚘","group":"travel","keywords":["automobile","car","oncoming"]},{"id":":sport_utility_vehicle:","symbol":"🚙","group":"travel","keywords":["recreational","sport utility","sport utility vehicle"]},{"id":":delivery_truck:","symbol":"🚚","group":"travel","keywords":["delivery","truck"]},{"id":":articulated_lorry:","symbol":"🚛","group":"travel","keywords":["articulated lorry","lorry","semi","truck"]},{"id":":tractor:","symbol":"🚜","group":"travel","keywords":["tractor","vehicle"]},{"id":":bicycle:","symbol":"🚲","group":"travel","keywords":["bicycle","bike"]},{"id":":kick_scooter:","symbol":"🛴","group":"travel","keywords":["kick","scooter"]},{"id":":motor_scooter:","symbol":"🛵","group":"travel","keywords":["motor","scooter"]},{"id":":bus_stop:","symbol":"🚏","group":"travel","keywords":["bus","busstop","stop"]},{"id":":motorway:","symbol":"🛣","group":"travel","keywords":["highway","motorway","road"]},{"id":":railway_track:","symbol":"🛤","group":"travel","keywords":["railway","railway track","train"]},{"id":":oil_drum:","symbol":"🛢","group":"travel","keywords":["drum","oil"]},{"id":":fuel_pump:","symbol":"⛽","group":"travel","keywords":["diesel","fuel","fuelpump","gas","pump","station"]},{"id":":police_car_light:","symbol":"🚨","group":"travel","keywords":["beacon","car","light","police","revolving"]},{"id":":horizontal_traffic_light:","symbol":"🚥","group":"travel","keywords":["horizontal traffic light","light","signal","traffic"]},{"id":":vertical_traffic_light:","symbol":"🚦","group":"travel","keywords":["light","signal","traffic","vertical traffic light"]},{"id":":stop_sign:","symbol":"🛑","group":"travel","keywords":["octagonal","sign","stop"]},{"id":":construction:","symbol":"🚧","group":"travel","keywords":["barrier","construction"]},{"id":":anchor:","symbol":"⚓","group":"travel","keywords":["anchor","ship","tool"]},{"id":":sailboat:","symbol":"⛵","group":"travel","keywords":["boat","resort","sailboat","sea","yacht"]},{"id":":canoe:","symbol":"🛶","group":"travel","keywords":["boat","canoe"]},{"id":":speedboat:","symbol":"🚤","group":"travel","keywords":["boat","speedboat"]},{"id":":passenger_ship:","symbol":"🛳","group":"travel","keywords":["passenger","ship"]},{"id":":ferry:","symbol":"⛴","group":"travel","keywords":["boat","ferry","passenger"]},{"id":":motor_boat:","symbol":"🛥","group":"travel","keywords":["boat","motor boat","motorboat"]},{"id":":ship:","symbol":"🚢","group":"travel","keywords":["boat","passenger","ship"]},{"id":":airplane:","symbol":"✈","group":"travel","keywords":["aeroplane","airplane"]},{"id":":small_airplane:","symbol":"🛩","group":"travel","keywords":["aeroplane","airplane","small airplane"]},{"id":":airplane_departure:","symbol":"🛫","group":"travel","keywords":["aeroplane","airplane","check-in","departure","departures"]},{"id":":airplane_arrival:","symbol":"🛬","group":"travel","keywords":["aeroplane","airplane","airplane arrival","arrivals","arriving","landing"]},{"id":":seat:","symbol":"💺","group":"travel","keywords":["chair","seat"]},{"id":":helicopter:","symbol":"🚁","group":"travel","keywords":["helicopter","vehicle"]},{"id":":suspension_railway:","symbol":"🚟","group":"travel","keywords":["railway","suspension"]},{"id":":mountain_cableway:","symbol":"🚠","group":"travel","keywords":["cable","gondola","mountain","mountain cableway"]},{"id":":aerial_tramway:","symbol":"🚡","group":"travel","keywords":["aerial","cable","car","gondola","tramway"]},{"id":":satellite:","symbol":"🛰","group":"travel","keywords":["satellite","space"]},{"id":":rocket:","symbol":"🚀","group":"travel","keywords":["rocket","space"]},{"id":":flying_saucer:","symbol":"🛸","group":"travel","keywords":["flying saucer","UFO"]},{"id":":bellhop_bell:","symbol":"🛎","group":"travel","keywords":["bell","bellhop","hotel"]},{"id":":hourglass_done:","symbol":"⌛","group":"travel","keywords":["hourglass done","sand","timer"]},{"id":":hourglass_not_done:","symbol":"⏳","group":"travel","keywords":["hourglass","hourglass not done","sand","timer"]},{"id":":watch:","symbol":"⌚","group":"travel","keywords":["clock","watch"]},{"id":":alarm_clock:","symbol":"⏰","group":"travel","keywords":["alarm","clock"]},{"id":":stopwatch:","symbol":"⏱","group":"travel","keywords":["clock","stopwatch"]},{"id":":timer_clock:","symbol":"⏲","group":"travel","keywords":["clock","timer"]},{"id":":mantelpiece_clock:","symbol":"🕰","group":"travel","keywords":["clock","mantelpiece clock"]},{"id":":twelve_o’clock:","symbol":"🕛","group":"travel","keywords":["00","12","12:00","clock","o’clock","twelve"]},{"id":":twelve-thirty:","symbol":"🕧","group":"travel","keywords":["12","12:30","clock","thirty","twelve","twelve-thirty"]},{"id":":one_o’clock:","symbol":"🕐","group":"travel","keywords":["00","1","1:00","clock","o’clock","one"]},{"id":":one-thirty:","symbol":"🕜","group":"travel","keywords":["1","1:30","clock","one","one-thirty","thirty"]},{"id":":two_o’clock:","symbol":"🕑","group":"travel","keywords":["00","2","2:00","clock","o’clock","two"]},{"id":":two-thirty:","symbol":"🕝","group":"travel","keywords":["2","2:30","clock","thirty","two","two-thirty"]},{"id":":three_o’clock:","symbol":"🕒","group":"travel","keywords":["00","3","3:00","clock","o’clock","three"]},{"id":":three-thirty:","symbol":"🕞","group":"travel","keywords":["3","3:30","clock","thirty","three","three-thirty"]},{"id":":four_o’clock:","symbol":"🕓","group":"travel","keywords":["00","4","4:00","clock","four","o’clock"]},{"id":":four-thirty:","symbol":"🕟","group":"travel","keywords":["4","4:30","clock","four","four-thirty","thirty"]},{"id":":five_o’clock:","symbol":"🕔","group":"travel","keywords":["00","5","5:00","clock","five","o’clock"]},{"id":":five-thirty:","symbol":"🕠","group":"travel","keywords":["5","5:30","clock","five","five-thirty","thirty"]},{"id":":six_o’clock:","symbol":"🕕","group":"travel","keywords":["00","6","6:00","clock","o’clock","six"]},{"id":":six-thirty:","symbol":"🕡","group":"travel","keywords":["6","6:30","clock","six","six-thirty","thirty"]},{"id":":seven_o’clock:","symbol":"🕖","group":"travel","keywords":["00","7","7:00","clock","o’clock","seven"]},{"id":":seven-thirty:","symbol":"🕢","group":"travel","keywords":["7","7:30","clock","seven","seven-thirty","thirty"]},{"id":":eight_o’clock:","symbol":"🕗","group":"travel","keywords":["00","8","8:00","clock","eight","o’clock"]},{"id":":eight-thirty:","symbol":"🕣","group":"travel","keywords":["8","8:30","clock","eight","eight-thirty","thirty"]},{"id":":nine_o’clock:","symbol":"🕘","group":"travel","keywords":["00","9","9:00","clock","nine","o’clock"]},{"id":":nine-thirty:","symbol":"🕤","group":"travel","keywords":["9","9:30","clock","nine","nine-thirty","thirty"]},{"id":":ten_o’clock:","symbol":"🕙","group":"travel","keywords":["00","10","10:00","clock","o’clock","ten"]},{"id":":ten-thirty:","symbol":"🕥","group":"travel","keywords":["10","10:30","clock","ten","ten-thirty","thirty"]},{"id":":eleven_o’clock:","symbol":"🕚","group":"travel","keywords":["00","11","11:00","clock","eleven","o’clock"]},{"id":":eleven-thirty:","symbol":"🕦","group":"travel","keywords":["11","11:30","clock","eleven","eleven-thirty","thirty"]},{"id":":new_moon:","symbol":"🌑","group":"travel","keywords":["dark","moon","new moon"]},{"id":":waxing_crescent_moon:","symbol":"🌒","group":"travel","keywords":["crescent","moon","waxing"]},{"id":":first_quarter_moon:","symbol":"🌓","group":"travel","keywords":["first quarter moon","moon","quarter"]},{"id":":waxing_gibbous_moon:","symbol":"🌔","group":"travel","keywords":["gibbous","moon","waxing"]},{"id":":full_moon:","symbol":"🌕","group":"travel","keywords":["full","moon"]},{"id":":waning_gibbous_moon:","symbol":"🌖","group":"travel","keywords":["gibbous","moon","waning"]},{"id":":last_quarter_moon:","symbol":"🌗","group":"travel","keywords":["last quarter moon","moon","quarter"]},{"id":":waning_crescent_moon:","symbol":"🌘","group":"travel","keywords":["crescent","moon","waning"]},{"id":":crescent_moon:","symbol":"🌙","group":"travel","keywords":["crescent","moon"]},{"id":":new_moon_face:","symbol":"🌚","group":"travel","keywords":["face","moon","new moon face"]},{"id":":first_quarter_moon_face:","symbol":"🌛","group":"travel","keywords":["face","first quarter moon face","moon","quarter"]},{"id":":last_quarter_moon_face:","symbol":"🌜","group":"travel","keywords":["face","last quarter moon face","moon","quarter"]},{"id":":thermometer:","symbol":"🌡","group":"travel","keywords":["thermometer","weather"]},{"id":":sun:","symbol":"☀","group":"travel","keywords":["bright","rays","sun","sunny"]},{"id":":full_moon_face:","symbol":"🌝","group":"travel","keywords":["bright","face","full","moon"]},{"id":":sun_with_face:","symbol":"🌞","group":"travel","keywords":["bright","face","sun","sun with face"]},{"id":":star:","symbol":"⭐","group":"travel","keywords":["star"]},{"id":":glowing_star:","symbol":"🌟","group":"travel","keywords":["glittery","glow","glowing star","shining","sparkle","star"]},{"id":":shooting_star:","symbol":"🌠","group":"travel","keywords":["falling","shooting","star"]},{"id":":cloud:","symbol":"☁️","group":"travel","keywords":["cloud","weather"]},{"id":":sun_behind_cloud:","symbol":"⛅","group":"travel","keywords":["cloud","sun","sun behind cloud"]},{"id":":cloud_with_lightning_and_rain:","symbol":"⛈️","group":"travel","keywords":["cloud","cloud with lightning and rain","rain","thunder"]},{"id":":sun_behind_small_cloud:","symbol":"🌤","group":"travel","keywords":["cloud","sun","sun behind small cloud"]},{"id":":sun_behind_large_cloud:","symbol":"🌥","group":"travel","keywords":["cloud","sun","sun behind large cloud"]},{"id":":sun_behind_rain_cloud:","symbol":"🌦","group":"travel","keywords":["cloud","rain","sun","sun behind rain cloud"]},{"id":":cloud_with_rain:","symbol":"🌧","group":"travel","keywords":["cloud","cloud with rain","rain"]},{"id":":cloud_with_snow:","symbol":"🌨","group":"travel","keywords":["cloud","cloud with snow","cold","snow"]},{"id":":cloud_with_lightning:","symbol":"🌩","group":"travel","keywords":["cloud","cloud with lightning","lightning"]},{"id":":tornado:","symbol":"🌪","group":"travel","keywords":["cloud","tornado","whirlwind"]},{"id":":fog:","symbol":"🌫","group":"travel","keywords":["cloud","fog"]},{"id":":wind_face:","symbol":"🌬","group":"travel","keywords":["blow","cloud","face","wind"]},{"id":":cyclone:","symbol":"🌀","group":"travel","keywords":["cyclone","dizzy","hurricane","twister","typhoon"]},{"id":":rainbow:","symbol":"🌈","group":"travel","keywords":["rain","rainbow"]},{"id":":closed_umbrella:","symbol":"🌂","group":"travel","keywords":["closed umbrella","clothing","rain","umbrella"]},{"id":":umbrella:","symbol":"☂","group":"travel","keywords":["clothing","rain","umbrella"]},{"id":":umbrella_with_rain_drops:","symbol":"☔","group":"travel","keywords":["clothing","drop","rain","umbrella","umbrella with rain drops"]},{"id":":umbrella_on_ground:","symbol":"⛱","group":"travel","keywords":["rain","sun","umbrella","umbrella on ground"]},{"id":":high_voltage:","symbol":"⚡","group":"travel","keywords":["danger","electric","high voltage","lightning","voltage","zap"]},{"id":":snowflake:","symbol":"❄","group":"travel","keywords":["cold","snow","snowflake"]},{"id":":snowman:","symbol":"☃","group":"travel","keywords":["cold","snow","snowman"]},{"id":":snowman_without_snow:","symbol":"⛄","group":"travel","keywords":["cold","snow","snowman","snowman without snow"]},{"id":":comet:","symbol":"☄","group":"travel","keywords":["comet","space"]},{"id":":fire:","symbol":"🔥","group":"travel","keywords":["fire","flame","tool"]},{"id":":droplet:","symbol":"💧","group":"travel","keywords":["cold","comic","drop","droplet","sweat"]},{"id":":water_wave:","symbol":"🌊","group":"travel","keywords":["ocean","water","wave"]},{"id":":jack-o-lantern:","symbol":"🎃","group":"activities","keywords":["celebration","halloween","jack","jack-o-lantern","lantern"]},{"id":":christmas_tree:","symbol":"🎄","group":"activities","keywords":["celebration","Christmas","tree"]},{"id":":fireworks:","symbol":"🎆","group":"activities","keywords":["celebration","fireworks"]},{"id":":sparkler:","symbol":"🎇","group":"activities","keywords":["celebration","fireworks","sparkle","sparkler"]},{"id":":sparkles:","symbol":"✨","group":"activities","keywords":["sparkle","sparkles","star"]},{"id":":balloon:","symbol":"🎈","group":"activities","keywords":["balloon","celebration"]},{"id":":party_popper:","symbol":"🎉","group":"activities","keywords":["celebration","party","popper","tada"]},{"id":":confetti_ball:","symbol":"🎊","group":"activities","keywords":["ball","celebration","confetti"]},{"id":":tanabata_tree:","symbol":"🎋","group":"activities","keywords":["banner","celebration","Japanese","tanabata tree","tree"]},{"id":":pine_decoration:","symbol":"🎍","group":"activities","keywords":["bamboo","celebration","Japanese","pine","pine decoration"]},{"id":":japanese_dolls:","symbol":"🎎","group":"activities","keywords":["celebration","doll","festival","Japanese","Japanese dolls"]},{"id":":carp_streamer:","symbol":"🎏","group":"activities","keywords":["carp","celebration","streamer"]},{"id":":wind_chime:","symbol":"🎐","group":"activities","keywords":["bell","celebration","chime","wind"]},{"id":":moon_viewing_ceremony:","symbol":"🎑","group":"activities","keywords":["celebration","ceremony","moon","moon viewing ceremony"]},{"id":":ribbon:","symbol":"🎀","group":"activities","keywords":["celebration","ribbon"]},{"id":":wrapped_gift:","symbol":"🎁","group":"activities","keywords":["box","celebration","gift","present","wrapped"]},{"id":":reminder_ribbon:","symbol":"🎗","group":"activities","keywords":["celebration","reminder","ribbon"]},{"id":":admission_tickets:","symbol":"🎟","group":"activities","keywords":["admission","admission tickets","ticket"]},{"id":":ticket:","symbol":"🎫","group":"activities","keywords":["admission","ticket"]},{"id":":military_medal:","symbol":"🎖","group":"activities","keywords":["celebration","medal","military"]},{"id":":trophy:","symbol":"🏆","group":"activities","keywords":["prize","trophy"]},{"id":":sports_medal:","symbol":"🏅","group":"activities","keywords":["medal","sports medal"]},{"id":":1st_place_medal:","symbol":"🥇","group":"activities","keywords":["1st place medal","first","gold","medal"]},{"id":":2nd_place_medal:","symbol":"🥈","group":"activities","keywords":["2nd place medal","medal","second","silver"]},{"id":":3rd_place_medal:","symbol":"🥉","group":"activities","keywords":["3rd place medal","bronze","medal","third"]},{"id":":soccer_ball:","symbol":"⚽","group":"activities","keywords":["ball","football","soccer"]},{"id":":baseball:","symbol":"⚾","group":"activities","keywords":["ball","baseball"]},{"id":":basketball:","symbol":"🏀","group":"activities","keywords":["ball","basketball","hoop"]},{"id":":volleyball:","symbol":"🏐","group":"activities","keywords":["ball","game","volleyball"]},{"id":":american_football:","symbol":"🏈","group":"activities","keywords":["american","ball","football"]},{"id":":rugby_football:","symbol":"🏉","group":"activities","keywords":["ball","football","rugby"]},{"id":":tennis:","symbol":"🎾","group":"activities","keywords":["ball","racquet","tennis"]},{"id":":bowling:","symbol":"🎳","group":"activities","keywords":["ball","bowling","game"]},{"id":":cricket_game:","symbol":"🏏","group":"activities","keywords":["ball","bat","cricket game","game"]},{"id":":field_hockey:","symbol":"🏑","group":"activities","keywords":["ball","field","game","hockey","stick"]},{"id":":ice_hockey:","symbol":"🏒","group":"activities","keywords":["game","hockey","ice","puck","stick"]},{"id":":ping_pong:","symbol":"🏓","group":"activities","keywords":["ball","bat","game","paddle","ping pong","table tennis"]},{"id":":badminton:","symbol":"🏸","group":"activities","keywords":["badminton","birdie","game","racquet","shuttlecock"]},{"id":":boxing_glove:","symbol":"🥊","group":"activities","keywords":["boxing","glove"]},{"id":":martial_arts_uniform:","symbol":"🥋","group":"activities","keywords":["judo","karate","martial arts","martial arts uniform","taekwondo","uniform"]},{"id":":goal_net:","symbol":"🥅","group":"activities","keywords":["goal","net"]},{"id":":flag_in_hole:","symbol":"⛳","group":"activities","keywords":["flag in hole","golf","hole"]},{"id":":ice_skate:","symbol":"⛸","group":"activities","keywords":["ice","skate"]},{"id":":fishing_pole:","symbol":"🎣","group":"activities","keywords":["fish","fishing pole","pole"]},{"id":":running_shirt:","symbol":"🎽","group":"activities","keywords":["athletics","running","sash","shirt"]},{"id":":skis:","symbol":"🎿","group":"activities","keywords":["ski","skis","snow"]},{"id":":sled:","symbol":"🛷","group":"activities","keywords":["sled","sledge","sleigh",""]},{"id":":curling_stone:","symbol":"🥌","group":"activities","keywords":["curling stone","game","rock"]},{"id":":direct_hit:","symbol":"🎯","group":"activities","keywords":["bullseye","dart","direct hit","game","hit","target"]},{"id":":pool_8_ball:","symbol":"🎱","group":"activities","keywords":["8","ball","billiard","eight","game","pool 8 ball"]},{"id":":crystal_ball:","symbol":"🔮","group":"activities","keywords":["ball","crystal","fairy tale","fantasy","fortune","tool"]},{"id":":video_game:","symbol":"🎮","group":"activities","keywords":["controller","game","video game"]},{"id":":joystick:","symbol":"🕹","group":"activities","keywords":["game","joystick","video game"]},{"id":":slot_machine:","symbol":"🎰","group":"activities","keywords":["game","slot","slot machine"]},{"id":":game_die:","symbol":"🎲","group":"activities","keywords":["dice","die","game"]},{"id":":spade_suit:","symbol":"♠","group":"activities","keywords":["card","game","spade suit"]},{"id":":heart_suit:","symbol":"♥","group":"activities","keywords":["card","game","heart suit"]},{"id":":diamond_suit:","symbol":"♦","group":"activities","keywords":["card","diamond suit","game"]},{"id":":club_suit:","symbol":"♣","group":"activities","keywords":["card","club suit","game"]},{"id":":joker:","symbol":"🃏","group":"activities","keywords":["card","game","joker","wildcard"]},{"id":":mahjong_red_dragon:","symbol":"🀄","group":"activities","keywords":["game","mahjong","mahjong red dragon","red"]},{"id":":flower_playing_cards:","symbol":"🎴","group":"activities","keywords":["card","flower","flower playing cards","game","Japanese","playing"]},{"id":":performing_arts:","symbol":"🎭","group":"activities","keywords":["art","mask","performing","performing arts","theater","theatre"]},{"id":":framed_picture:","symbol":"🖼","group":"activities","keywords":["art","frame","framed picture","museum","painting","picture"]},{"id":":artist_palette:","symbol":"🎨","group":"activities","keywords":["art","artist palette","museum","painting","palette"]},{"id":":muted_speaker:","symbol":"🔇","group":"objects","keywords":["mute","muted speaker","quiet","silent","speaker"]},{"id":":speaker_low_volume:","symbol":"🔈","group":"objects","keywords":["soft","speaker low volume"]},{"id":":speaker_medium_volume:","symbol":"🔉","group":"objects","keywords":["medium","speaker medium volume"]},{"id":":speaker_high_volume:","symbol":"🔊","group":"objects","keywords":["loud","speaker high volume"]},{"id":":loudspeaker:","symbol":"📢","group":"objects","keywords":["loud","loudspeaker","public address"]},{"id":":megaphone:","symbol":"📣","group":"objects","keywords":["cheering","megaphone"]},{"id":":postal_horn:","symbol":"📯","group":"objects","keywords":["horn","post","postal"]},{"id":":bell:","symbol":"🔔","group":"objects","keywords":["bell"]},{"id":":bell_with_slash:","symbol":"🔕","group":"objects","keywords":["bell","bell with slash","forbidden","mute","quiet","silent"]},{"id":":musical_score:","symbol":"🎼","group":"objects","keywords":["music","musical score","score"]},{"id":":musical_note:","symbol":"🎵","group":"objects","keywords":["music","musical note","note"]},{"id":":musical_notes:","symbol":"🎶","group":"objects","keywords":["music","musical notes","note","notes"]},{"id":":studio_microphone:","symbol":"🎙","group":"objects","keywords":["mic","microphone","music","studio"]},{"id":":level_slider:","symbol":"🎚","group":"objects","keywords":["level","music","slider"]},{"id":":control_knobs:","symbol":"🎛","group":"objects","keywords":["control","knobs","music"]},{"id":":microphone:","symbol":"🎤","group":"objects","keywords":["karaoke","mic","microphone"]},{"id":":headphone:","symbol":"🎧","group":"objects","keywords":["earbud","headphone"]},{"id":":radio:","symbol":"📻","group":"objects","keywords":["radio","video"]},{"id":":saxophone:","symbol":"🎷","group":"objects","keywords":["instrument","music","sax","saxophone"]},{"id":":guitar:","symbol":"🎸","group":"objects","keywords":["guitar","instrument","music"]},{"id":":musical_keyboard:","symbol":"🎹","group":"objects","keywords":["instrument","keyboard","music","musical keyboard","piano"]},{"id":":trumpet:","symbol":"🎺","group":"objects","keywords":["instrument","music","trumpet"]},{"id":":violin:","symbol":"🎻","group":"objects","keywords":["instrument","music","violin"]},{"id":":drum:","symbol":"🥁","group":"objects","keywords":["drum","drumsticks","music"]},{"id":":mobile_phone:","symbol":"📱","group":"objects","keywords":["cell","mobile","phone","telephone"]},{"id":":mobile_phone_with_arrow:","symbol":"📲","group":"objects","keywords":["arrow","cell","mobile","mobile phone with arrow","phone","receive"]},{"id":":telephone:","symbol":"☎","group":"objects","keywords":["phone","telephone"]},{"id":":telephone_receiver:","symbol":"📞","group":"objects","keywords":["phone","receiver","telephone"]},{"id":":pager:","symbol":"📟","group":"objects","keywords":["pager"]},{"id":":fax_machine:","symbol":"📠","group":"objects","keywords":["fax","fax machine"]},{"id":":battery:","symbol":"🔋","group":"objects","keywords":["battery"]},{"id":":electric_plug:","symbol":"🔌","group":"objects","keywords":["electric","electricity","plug"]},{"id":":laptop_computer:","symbol":"💻","group":"objects","keywords":["computer","laptop computer","pc","personal"]},{"id":":desktop_computer:","symbol":"🖥","group":"objects","keywords":["computer","desktop"]},{"id":":printer:","symbol":"🖨","group":"objects","keywords":["computer","printer"]},{"id":":keyboard:","symbol":"⌨","group":"objects","keywords":["computer","keyboard"]},{"id":":computer_mouse:","symbol":"🖱","group":"objects","keywords":["computer","computer mouse"]},{"id":":trackball:","symbol":"🖲","group":"objects","keywords":["computer","trackball"]},{"id":":computer_disk:","symbol":"💽","group":"objects","keywords":["computer","disk","minidisk","optical"]},{"id":":floppy_disk:","symbol":"💾","group":"objects","keywords":["computer","disk","floppy"]},{"id":":optical_disk:","symbol":"💿","group":"objects","keywords":["cd","computer","disk","optical"]},{"id":":dvd:","symbol":"📀","group":"objects","keywords":["blu-ray","computer","disk","dvd","optical"]},{"id":":movie_camera:","symbol":"🎥","group":"objects","keywords":["camera","cinema","movie"]},{"id":":film_frames:","symbol":"🎞","group":"objects","keywords":["cinema","film","frames","movie"]},{"id":":film_projector:","symbol":"📽","group":"objects","keywords":["cinema","film","movie","projector","video"]},{"id":":clapper_board:","symbol":"🎬","group":"objects","keywords":["clapper","clapper board","movie"]},{"id":":television:","symbol":"📺","group":"objects","keywords":["television","tv","video"]},{"id":":camera:","symbol":"📷","group":"objects","keywords":["camera","video"]},{"id":":camera_with_flash:","symbol":"📸","group":"objects","keywords":["camera","camera with flash","flash","video"]},{"id":":video_camera:","symbol":"📹","group":"objects","keywords":["camera","video"]},{"id":":videocassette:","symbol":"📼","group":"objects","keywords":["tape","vhs","video","videocassette"]},{"id":":magnifying_glass_tilted_left:","symbol":"🔍","group":"objects","keywords":["glass","magnifying","magnifying glass tilted left","search","tool"]},{"id":":magnifying_glass_tilted_right:","symbol":"🔎","group":"objects","keywords":["glass","magnifying","magnifying glass tilted right","search","tool"]},{"id":":candle:","symbol":"🕯","group":"objects","keywords":["candle","light"]},{"id":":light_bulb:","symbol":"💡","group":"objects","keywords":["bulb","comic","electric","idea","light"]},{"id":":flashlight:","symbol":"🔦","group":"objects","keywords":["electric","flashlight","light","tool","torch"]},{"id":":red_paper_lantern:","symbol":"🏮","group":"objects","keywords":["bar","lantern","light","red","red paper lantern"]},{"id":":notebook_with_decorative_cover:","symbol":"📔","group":"objects","keywords":["book","cover","decorated","notebook","notebook with decorative cover"]},{"id":":closed_book:","symbol":"📕","group":"objects","keywords":["book","closed"]},{"id":":open_book:","symbol":"📖","group":"objects","keywords":["book","open"]},{"id":":green_book:","symbol":"📗","group":"objects","keywords":["book","green"]},{"id":":blue_book:","symbol":"📘","group":"objects","keywords":["blue","book"]},{"id":":orange_book:","symbol":"📙","group":"objects","keywords":["book","orange"]},{"id":":books:","symbol":"📚","group":"objects","keywords":["book","books"]},{"id":":notebook:","symbol":"📓","group":"objects","keywords":["notebook"]},{"id":":ledger:","symbol":"📒","group":"objects","keywords":["ledger","notebook"]},{"id":":page_with_curl:","symbol":"📃","group":"objects","keywords":["curl","document","page","page with curl"]},{"id":":scroll:","symbol":"📜","group":"objects","keywords":["paper","scroll"]},{"id":":page_facing_up:","symbol":"📄","group":"objects","keywords":["document","page","page facing up"]},{"id":":newspaper:","symbol":"📰","group":"objects","keywords":["news","newspaper","paper"]},{"id":":rolled-up_newspaper:","symbol":"🗞","group":"objects","keywords":["news","newspaper","paper","rolled","rolled-up newspaper"]},{"id":":bookmark_tabs:","symbol":"📑","group":"objects","keywords":["bookmark","mark","marker","tabs"]},{"id":":bookmark:","symbol":"🔖","group":"objects","keywords":["bookmark","mark"]},{"id":":label:","symbol":"🏷","group":"objects","keywords":["label"]},{"id":":money_bag:","symbol":"💰","group":"objects","keywords":["bag","dollar","money","moneybag"]},{"id":":yen_banknote:","symbol":"💴","group":"objects","keywords":["banknote","bill","currency","money","note","yen"]},{"id":":dollar_banknote:","symbol":"💵","group":"objects","keywords":["banknote","bill","currency","dollar","money","note"]},{"id":":euro_banknote:","symbol":"💶","group":"objects","keywords":["banknote","bill","currency","euro","money","note"]},{"id":":pound_banknote:","symbol":"💷","group":"objects","keywords":["banknote","bill","currency","money","note","pound"]},{"id":":money_with_wings:","symbol":"💸","group":"objects","keywords":["banknote","bill","fly","money","money with wings","wings"]},{"id":":credit_card:","symbol":"💳","group":"objects","keywords":["card","credit","money"]},{"id":":chart_increasing_with_yen:","symbol":"💹","group":"objects","keywords":["chart","chart increasing with yen","graph","growth","money","yen"]},{"id":":currency_exchange:","symbol":"💱","group":"objects","keywords":["bank","currency","exchange","money"]},{"id":":heavy_dollar_sign:","symbol":"💲","group":"objects","keywords":["currency","dollar","heavy dollar sign","money"]},{"id":":envelope:","symbol":"✉","group":"objects","keywords":["email","envelope","letter"]},{"id":":e-mail:","symbol":"📧","group":"objects","keywords":["e-mail","email","letter","mail"]},{"id":":incoming_envelope:","symbol":"📨","group":"objects","keywords":["e-mail","email","envelope","incoming","letter","receive"]},{"id":":envelope_with_arrow:","symbol":"📩","group":"objects","keywords":["arrow","e-mail","email","envelope","envelope with arrow","outgoing"]},{"id":":outbox_tray:","symbol":"📤","group":"objects","keywords":["box","letter","mail","outbox","sent","tray"]},{"id":":inbox_tray:","symbol":"📥","group":"objects","keywords":["box","inbox","letter","mail","receive","tray"]},{"id":":package:","symbol":"📦","group":"objects","keywords":["box","package","parcel"]},{"id":":closed_mailbox_with_raised_flag:","symbol":"📫","group":"objects","keywords":["closed","closed mailbox with raised flag","mail","mailbox","postbox"]},{"id":":closed_mailbox_with_lowered_flag:","symbol":"📪","group":"objects","keywords":["closed","closed mailbox with lowered flag","lowered","mail","mailbox","postbox"]},{"id":":open_mailbox_with_raised_flag:","symbol":"📬","group":"objects","keywords":["mail","mailbox","open","open mailbox with raised flag","postbox"]},{"id":":open_mailbox_with_lowered_flag:","symbol":"📭","group":"objects","keywords":["lowered","mail","mailbox","open","open mailbox with lowered flag","postbox"]},{"id":":postbox:","symbol":"📮","group":"objects","keywords":["mail","mailbox","postbox"]},{"id":":ballot_box_with_ballot:","symbol":"🗳","group":"objects","keywords":["ballot","ballot box with ballot","box"]},{"id":":pencil:","symbol":"✏","group":"objects","keywords":["pencil"]},{"id":":black_nib:","symbol":"✒","group":"objects","keywords":["black nib","nib","pen"]},{"id":":fountain_pen:","symbol":"🖋","group":"objects","keywords":["fountain","pen"]},{"id":":pen:","symbol":"🖊","group":"objects","keywords":["ballpoint","pen"]},{"id":":paintbrush:","symbol":"🖌","group":"objects","keywords":["paintbrush","painting"]},{"id":":crayon:","symbol":"🖍","group":"objects","keywords":["crayon"]},{"id":":memo:","symbol":"📝","group":"objects","keywords":["memo","pencil"]},{"id":":briefcase:","symbol":"💼","group":"objects","keywords":["briefcase"]},{"id":":file_folder:","symbol":"📁","group":"objects","keywords":["file","folder"]},{"id":":open_file_folder:","symbol":"📂","group":"objects","keywords":["file","folder","open"]},{"id":":card_index_dividers:","symbol":"🗂","group":"objects","keywords":["card","dividers","index"]},{"id":":calendar:","symbol":"📅","group":"objects","keywords":["calendar","date"]},{"id":":tear-off_calendar:","symbol":"📆","group":"objects","keywords":["calendar","tear-off calendar"]},{"id":":spiral_notepad:","symbol":"🗒","group":"objects","keywords":["note","pad","spiral","spiral notepad"]},{"id":":spiral_calendar:","symbol":"🗓","group":"objects","keywords":["calendar","pad","spiral"]},{"id":":card_index:","symbol":"📇","group":"objects","keywords":["card","index","rolodex"]},{"id":":chart_increasing:","symbol":"📈","group":"objects","keywords":["chart","chart increasing","graph","growth","trend","upward"]},{"id":":chart_decreasing:","symbol":"📉","group":"objects","keywords":["chart","chart decreasing","down","graph","trend"]},{"id":":bar_chart:","symbol":"📊","group":"objects","keywords":["bar","chart","graph"]},{"id":":clipboard:","symbol":"📋","group":"objects","keywords":["clipboard"]},{"id":":pushpin:","symbol":"📌","group":"objects","keywords":["pin","pushpin"]},{"id":":round_pushpin:","symbol":"📍","group":"objects","keywords":["pin","pushpin","round pushpin"]},{"id":":paperclip:","symbol":"📎","group":"objects","keywords":["paperclip"]},{"id":":linked_paperclips:","symbol":"🖇","group":"objects","keywords":["link","linked paperclips","paperclip"]},{"id":":straight_ruler:","symbol":"📏","group":"objects","keywords":["ruler","straight edge","straight ruler"]},{"id":":triangular_ruler:","symbol":"📐","group":"objects","keywords":["ruler","set","triangle","triangular ruler"]},{"id":":scissors:","symbol":"✂","group":"objects","keywords":["cutting","scissors","tool"]},{"id":":card_file_box:","symbol":"🗃","group":"objects","keywords":["box","card","file"]},{"id":":file_cabinet:","symbol":"🗄","group":"objects","keywords":["cabinet","file","filing"]},{"id":":wastebasket:","symbol":"🗑","group":"objects","keywords":["wastebasket"]},{"id":":locked:","symbol":"🔒","group":"objects","keywords":["closed","locked"]},{"id":":unlocked:","symbol":"🔓","group":"objects","keywords":["lock","open","unlock","unlocked"]},{"id":":locked_with_pen:","symbol":"🔏","group":"objects","keywords":["ink","lock","locked with pen","nib","pen","privacy"]},{"id":":locked_with_key:","symbol":"🔐","group":"objects","keywords":["closed","key","lock","locked with key","secure"]},{"id":":key:","symbol":"🔑","group":"objects","keywords":["key","lock","password"]},{"id":":old_key:","symbol":"🗝","group":"objects","keywords":["clue","key","lock","old"]},{"id":":hammer:","symbol":"🔨","group":"objects","keywords":["hammer","tool"]},{"id":":pick:","symbol":"⛏","group":"objects","keywords":["mining","pick","tool"]},{"id":":hammer_and_pick:","symbol":"⚒","group":"objects","keywords":["hammer","hammer and pick","pick","tool"]},{"id":":hammer_and_wrench:","symbol":"🛠","group":"objects","keywords":["hammer","hammer and wrench","spanner","tool","wrench"]},{"id":":dagger:","symbol":"🗡","group":"objects","keywords":["dagger","knife","weapon"]},{"id":":crossed_swords:","symbol":"⚔","group":"objects","keywords":["crossed","swords","weapon"]},{"id":":pistol:","symbol":"🔫","group":"objects","keywords":["gun","handgun","pistol","revolver","tool","weapon"]},{"id":":bow_and_arrow:","symbol":"🏹","group":"objects","keywords":["archer","arrow","bow","bow and arrow","Sagittarius","zodiac"]},{"id":":shield:","symbol":"🛡","group":"objects","keywords":["shield","weapon"]},{"id":":wrench:","symbol":"🔧","group":"objects","keywords":["spanner","tool","wrench"]},{"id":":nut_and_bolt:","symbol":"🔩","group":"objects","keywords":["bolt","nut","nut and bolt","tool"]},{"id":":gear:","symbol":"⚙","group":"objects","keywords":["cog","cogwheel","gear","tool"]},{"id":":clamp:","symbol":"🗜","group":"objects","keywords":["clamp","compress","tool","vice"]},{"id":":balance_scale:","symbol":"⚖","group":"objects","keywords":["balance","justice","Libra","scale","zodiac"]},{"id":":link:","symbol":"🔗","group":"objects","keywords":["link"]},{"id":":chains:","symbol":"⛓","group":"objects","keywords":["chain","chains"]},{"id":":alembic:","symbol":"⚗","group":"objects","keywords":["alembic","chemistry","tool"]},{"id":":microscope:","symbol":"🔬","group":"objects","keywords":["microscope","science","tool"]},{"id":":telescope:","symbol":"🔭","group":"objects","keywords":["science","telescope","tool"]},{"id":":satellite_antenna:","symbol":"📡","group":"objects","keywords":["antenna","dish","satellite"]},{"id":":syringe:","symbol":"💉","group":"objects","keywords":["medicine","needle","shot","sick","syringe"]},{"id":":pill:","symbol":"💊","group":"objects","keywords":["doctor","medicine","pill","sick"]},{"id":":door:","symbol":"🚪","group":"objects","keywords":["door"]},{"id":":bed:","symbol":"🛏","group":"objects","keywords":["bed","hotel","sleep"]},{"id":":couch_and_lamp:","symbol":"🛋","group":"objects","keywords":["couch","couch and lamp","hotel","lamp"]},{"id":":toilet:","symbol":"🚽","group":"objects","keywords":["toilet"]},{"id":":shower:","symbol":"🚿","group":"objects","keywords":["shower","water"]},{"id":":bathtub:","symbol":"🛁","group":"objects","keywords":["bath","bathtub"]},{"id":":shopping_cart:","symbol":"🛒","group":"objects","keywords":["cart","shopping","trolley"]},{"id":":cigarette:","symbol":"🚬","group":"objects","keywords":["cigarette","smoking"]},{"id":":coffin:","symbol":"⚰","group":"objects","keywords":["coffin","death"]},{"id":":funeral_urn:","symbol":"⚱","group":"objects","keywords":["ashes","death","funeral","urn"]},{"id":":moai:","symbol":"🗿","group":"objects","keywords":["face","moai","moyai","statue"]},{"id":":atm_sign:","symbol":"🏧","group":"symbols","keywords":["atm","ATM sign","automated","bank","teller"]},{"id":":litter_in_bin_sign:","symbol":"🚮","group":"symbols","keywords":["litter","litter bin","litter in bin sign"]},{"id":":potable_water:","symbol":"🚰","group":"symbols","keywords":["drinking","potable","water"]},{"id":":wheelchair_symbol:","symbol":"♿","group":"symbols","keywords":["access","wheelchair symbol"]},{"id":":men’s_room:","symbol":"🚹","group":"symbols","keywords":["lavatory","man","men’s room","restroom","wc"]},{"id":":women’s_room:","symbol":"🚺","group":"symbols","keywords":["lavatory","restroom","wc","woman","women’s room"]},{"id":":restroom:","symbol":"🚻","group":"symbols","keywords":["lavatory","restroom","WC"]},{"id":":baby_symbol:","symbol":"🚼","group":"symbols","keywords":["baby","baby symbol","changing"]},{"id":":water_closet:","symbol":"🚾","group":"symbols","keywords":["closet","lavatory","restroom","water","wc"]},{"id":":passport_control:","symbol":"🛂","group":"symbols","keywords":["control","passport"]},{"id":":customs:","symbol":"🛃","group":"symbols","keywords":["customs"]},{"id":":baggage_claim:","symbol":"🛄","group":"symbols","keywords":["baggage","claim"]},{"id":":left_luggage:","symbol":"🛅","group":"symbols","keywords":["baggage","left luggage","locker","luggage"]},{"id":":warning:","symbol":"⚠","group":"symbols","keywords":["warning"]},{"id":":children_crossing:","symbol":"🚸","group":"symbols","keywords":["child","children crossing","crossing","pedestrian","traffic"]},{"id":":no_entry:","symbol":"⛔","group":"symbols","keywords":["entry","forbidden","no","not","prohibited","traffic"]},{"id":":prohibited:","symbol":"🚫","group":"symbols","keywords":["entry","forbidden","no","not","prohibited"]},{"id":":no_bicycles:","symbol":"🚳","group":"symbols","keywords":["bicycle","bike","forbidden","no","no bicycles","prohibited"]},{"id":":no_smoking:","symbol":"🚭","group":"symbols","keywords":["forbidden","no","not","prohibited","smoking"]},{"id":":no_littering:","symbol":"🚯","group":"symbols","keywords":["forbidden","litter","no","no littering","not","prohibited"]},{"id":":non-potable_water:","symbol":"🚱","group":"symbols","keywords":["non-drinking","non-potable","water"]},{"id":":no_pedestrians:","symbol":"🚷","group":"symbols","keywords":["forbidden","no","no pedestrians","not","pedestrian","prohibited"]},{"id":":no_mobile_phones:","symbol":"📵","group":"symbols","keywords":["cell","forbidden","mobile","no","no mobile phones","phone"]},{"id":":no_one_under_eighteen:","symbol":"🔞","group":"symbols","keywords":["18","age restriction","eighteen","no one under eighteen","prohibited","underage"]},{"id":":radioactive:","symbol":"☢","group":"symbols","keywords":["radioactive","sign"]},{"id":":biohazard:","symbol":"☣","group":"symbols","keywords":["biohazard","sign"]},{"id":":up_arrow:","symbol":"⬆","group":"symbols","keywords":["arrow","cardinal","direction","north","up arrow"]},{"id":":up-right_arrow:","symbol":"↗","group":"symbols","keywords":["arrow","direction","intercardinal","northeast","up-right arrow"]},{"id":":right_arrow:","symbol":"➡","group":"symbols","keywords":["arrow","cardinal","direction","east","right arrow"]},{"id":":down-right_arrow:","symbol":"↘","group":"symbols","keywords":["arrow","direction","down-right arrow","intercardinal","southeast"]},{"id":":down_arrow:","symbol":"⬇","group":"symbols","keywords":["arrow","cardinal","direction","down","south"]},{"id":":down-left_arrow:","symbol":"↙","group":"symbols","keywords":["arrow","direction","down-left arrow","intercardinal","southwest"]},{"id":":left_arrow:","symbol":"⬅","group":"symbols","keywords":["arrow","cardinal","direction","left arrow","west"]},{"id":":up-left_arrow:","symbol":"↖","group":"symbols","keywords":["arrow","direction","intercardinal","northwest","up-left arrow"]},{"id":":up-down_arrow:","symbol":"↕","group":"symbols","keywords":["arrow","up-down arrow"]},{"id":":left-right_arrow:","symbol":"↔","group":"symbols","keywords":["arrow","left-right arrow"]},{"id":":right_arrow_curving_left:","symbol":"↩","group":"symbols","keywords":["arrow","right arrow curving left"]},{"id":":left_arrow_curving_right:","symbol":"↪","group":"symbols","keywords":["arrow","left arrow curving right"]},{"id":":right_arrow_curving_up:","symbol":"⤴","group":"symbols","keywords":["arrow","right arrow curving up"]},{"id":":right_arrow_curving_down:","symbol":"⤵","group":"symbols","keywords":["arrow","down","right arrow curving down"]},{"id":":clockwise_vertical_arrows:","symbol":"🔃","group":"symbols","keywords":["arrow","clockwise","clockwise vertical arrows","reload"]},{"id":":counterclockwise_arrows_button:","symbol":"🔄","group":"symbols","keywords":["anticlockwise","arrow","counterclockwise","counterclockwise arrows button","withershins"]},{"id":":back_arrow:","symbol":"🔙","group":"symbols","keywords":["arrow","back","BACK arrow"]},{"id":":end_arrow:","symbol":"🔚","group":"symbols","keywords":["arrow","end","END arrow"]},{"id":":on!_arrow:","symbol":"🔛","group":"symbols","keywords":["arrow","mark","on","ON! arrow"]},{"id":":soon_arrow:","symbol":"🔜","group":"symbols","keywords":["arrow","soon","SOON arrow"]},{"id":":top_arrow:","symbol":"🔝","group":"symbols","keywords":["arrow","top","TOP arrow","up"]},{"id":":place_of_worship:","symbol":"🛐","group":"symbols","keywords":["place of worship","religion","worship"]},{"id":":atom_symbol:","symbol":"⚛","group":"symbols","keywords":["atheist","atom","atom symbol"]},{"id":":om:","symbol":"🕉","group":"symbols","keywords":["Hindu","om","religion"]},{"id":":star_of_david:","symbol":"✡","group":"symbols","keywords":["David","Jew","Jewish","religion","star","star of David"]},{"id":":wheel_of_dharma:","symbol":"☸","group":"symbols","keywords":["Buddhist","dharma","religion","wheel","wheel of dharma"]},{"id":":yin_yang:","symbol":"☯","group":"symbols","keywords":["religion","tao","taoist","yang","yin"]},{"id":":latin_cross:","symbol":"✝","group":"symbols","keywords":["Christian","cross","latin cross","religion"]},{"id":":orthodox_cross:","symbol":"☦","group":"symbols","keywords":["Christian","cross","orthodox cross","religion"]},{"id":":star_and_crescent:","symbol":"☪","group":"symbols","keywords":["islam","Muslim","religion","star and crescent"]},{"id":":peace_symbol:","symbol":"☮","group":"symbols","keywords":["peace","peace symbol"]},{"id":":menorah:","symbol":"🕎","group":"symbols","keywords":["candelabrum","candlestick","menorah","religion"]},{"id":":dotted_six-pointed_star:","symbol":"🔯","group":"symbols","keywords":["dotted six-pointed star","fortune","star"]},{"id":":aries:","symbol":"♈","group":"symbols","keywords":["Aries","ram","zodiac"]},{"id":":taurus:","symbol":"♉","group":"symbols","keywords":["bull","ox","Taurus","zodiac"]},{"id":":gemini:","symbol":"♊","group":"symbols","keywords":["Gemini","twins","zodiac"]},{"id":":cancer:","symbol":"♋","group":"symbols","keywords":["Cancer","crab","zodiac"]},{"id":":leo:","symbol":"♌","group":"symbols","keywords":["Leo","lion","zodiac"]},{"id":":virgo:","symbol":"♍","group":"symbols","keywords":["Virgo","zodiac"]},{"id":":libra:","symbol":"♎","group":"symbols","keywords":["balance","justice","Libra","scales","zodiac"]},{"id":":scorpio:","symbol":"♏","group":"symbols","keywords":["Scorpio","scorpion","scorpius","zodiac"]},{"id":":sagittarius:","symbol":"♐","group":"symbols","keywords":["archer","Sagittarius","zodiac"]},{"id":":capricorn:","symbol":"♑","group":"symbols","keywords":["Capricorn","goat","zodiac"]},{"id":":aquarius:","symbol":"♒","group":"symbols","keywords":["Aquarius","bearer","water","zodiac"]},{"id":":pisces:","symbol":"♓","group":"symbols","keywords":["fish","Pisces","zodiac"]},{"id":":ophiuchus:","symbol":"⛎","group":"symbols","keywords":["bearer","Ophiuchus","serpent","snake","zodiac"]},{"id":":shuffle_tracks_button:","symbol":"🔀","group":"symbols","keywords":["arrow","crossed","shuffle tracks button"]},{"id":":repeat_button:","symbol":"🔁","group":"symbols","keywords":["arrow","clockwise","repeat","repeat button"]},{"id":":repeat_single_button:","symbol":"🔂","group":"symbols","keywords":["arrow","clockwise","once","repeat single button"]},{"id":":play_button:","symbol":"▶","group":"symbols","keywords":["arrow","play","play button","right","triangle"]},{"id":":fast-forward_button:","symbol":"⏩","group":"symbols","keywords":["arrow","double","fast","fast-forward button","forward"]},{"id":":next_track_button:","symbol":"⏭","group":"symbols","keywords":["arrow","next scene","next track","next track button","triangle"]},{"id":":play_or_pause_button:","symbol":"⏯","group":"symbols","keywords":["arrow","pause","play","play or pause button","right","triangle"]},{"id":":reverse_button:","symbol":"◀","group":"symbols","keywords":["arrow","left","reverse","reverse button","triangle"]},{"id":":fast_reverse_button:","symbol":"⏪","group":"symbols","keywords":["arrow","double","fast reverse button","rewind"]},{"id":":last_track_button:","symbol":"⏮","group":"symbols","keywords":["arrow","last track button","previous scene","previous track","triangle"]},{"id":":upwards_button:","symbol":"🔼","group":"symbols","keywords":["arrow","button","red","upwards button"]},{"id":":fast_up_button:","symbol":"⏫","group":"symbols","keywords":["arrow","double","fast up button"]},{"id":":downwards_button:","symbol":"🔽","group":"symbols","keywords":["arrow","button","down","downwards button","red"]},{"id":":fast_down_button:","symbol":"⏬","group":"symbols","keywords":["arrow","double","down","fast down button"]},{"id":":pause_button:","symbol":"⏸","group":"symbols","keywords":["bar","double","pause","pause button","vertical"]},{"id":":stop_button:","symbol":"⏹","group":"symbols","keywords":["square","stop","stop button"]},{"id":":record_button:","symbol":"⏺","group":"symbols","keywords":["circle","record","record button"]},{"id":":eject_button:","symbol":"⏏","group":"symbols","keywords":["eject","eject button"]},{"id":":cinema:","symbol":"🎦","group":"symbols","keywords":["camera","cinema","film","movie"]},{"id":":dim_button:","symbol":"🔅","group":"symbols","keywords":["brightness","dim","dim button","low"]},{"id":":bright_button:","symbol":"🔆","group":"symbols","keywords":["bright","bright button","brightness"]},{"id":":antenna_bars:","symbol":"📶","group":"symbols","keywords":["antenna","antenna bars","bar","cell","mobile","phone"]},{"id":":vibration_mode:","symbol":"📳","group":"symbols","keywords":["cell","mobile","mode","phone","telephone","vibration"]},{"id":":mobile_phone_off:","symbol":"📴","group":"symbols","keywords":["cell","mobile","off","phone","telephone"]},{"id":":female_sign:","symbol":"♀","group":"symbols","keywords":["female sign","woman"]},{"id":":male_sign:","symbol":"♂","group":"symbols","keywords":["male sign","man"]},{"id":":medical_symbol:","symbol":"⚕","group":"symbols","keywords":["aesculapius","medical symbol","medicine","staff"]},{"id":":recycling_symbol:","symbol":"♻","group":"symbols","keywords":["recycle","recycling symbol"]},{"id":":fleur-de-lis:","symbol":"⚜","group":"symbols","keywords":["fleur-de-lis"]},{"id":":trident_emblem:","symbol":"🔱","group":"symbols","keywords":["anchor","emblem","ship","tool","trident"]},{"id":":name_badge:","symbol":"📛","group":"symbols","keywords":["badge","name"]},{"id":":japanese_symbol_for_beginner:","symbol":"🔰","group":"symbols","keywords":["beginner","chevron","Japanese","Japanese symbol for beginner","leaf"]},{"id":":heavy_large_circle:","symbol":"⭕","group":"symbols","keywords":["circle","heavy large circle","o"]},{"id":":white_heavy_check_mark:","symbol":"✅","group":"symbols","keywords":["check","mark","white heavy check mark"]},{"id":":ballot_box_with_check:","symbol":"☑","group":"symbols","keywords":["ballot","ballot box with check","box","check"]},{"id":":heavy_check_mark:","symbol":"✔","group":"symbols","keywords":["check","heavy check mark","mark"]},{"id":":heavy_multiplication_x:","symbol":"✖","group":"symbols","keywords":["cancel","heavy multiplication x","multiplication","multiply","x"]},{"id":":cross_mark:","symbol":"❌","group":"symbols","keywords":["cancel","cross mark","mark","multiplication","multiply","x"]},{"id":":cross_mark_button:","symbol":"❎","group":"symbols","keywords":["cross mark button","mark","square"]},{"id":":heavy_plus_sign:","symbol":"➕","group":"symbols","keywords":["heavy plus sign","math","plus"]},{"id":":heavy_minus_sign:","symbol":"➖","group":"symbols","keywords":["heavy minus sign","math","minus"]},{"id":":heavy_division_sign:","symbol":"➗","group":"symbols","keywords":["division","heavy division sign","math"]},{"id":":curly_loop:","symbol":"➰","group":"symbols","keywords":["curl","curly loop","loop"]},{"id":":double_curly_loop:","symbol":"➿","group":"symbols","keywords":["curl","double","double curly loop","loop"]},{"id":":part_alternation_mark:","symbol":"〽","group":"symbols","keywords":["mark","part","part alternation mark"]},{"id":":eight-spoked_asterisk:","symbol":"✳","group":"symbols","keywords":["asterisk","eight-spoked asterisk"]},{"id":":eight-pointed_star:","symbol":"✴","group":"symbols","keywords":["eight-pointed star","star"]},{"id":":sparkle:","symbol":"❇","group":"symbols","keywords":["sparkle"]},{"id":":double_exclamation_mark:","symbol":"‼","group":"symbols","keywords":["bangbang","double exclamation mark","exclamation","mark","punctuation"]},{"id":":exclamation_question_mark:","symbol":"⁉","group":"symbols","keywords":["exclamation","interrobang","mark","punctuation","question"]},{"id":":question_mark:","symbol":"❓","group":"symbols","keywords":["mark","punctuation","question"]},{"id":":white_question_mark:","symbol":"❔","group":"symbols","keywords":["mark","outlined","punctuation","question","white question mark"]},{"id":":white_exclamation_mark:","symbol":"❕","group":"symbols","keywords":["exclamation","mark","outlined","punctuation","white exclamation mark"]},{"id":":exclamation_mark:","symbol":"❗","group":"symbols","keywords":["exclamation","mark","punctuation"]},{"id":":wavy_dash:","symbol":"〰","group":"symbols","keywords":["dash","punctuation","wavy"]},{"id":":copyright:","symbol":"©","group":"symbols","keywords":["copyright"]},{"id":":registered:","symbol":"®","group":"symbols","keywords":["registered"]},{"id":":trade_mark:","symbol":"™","group":"symbols","keywords":["mark","tm","trade mark","trademark"]},{"id":":keycap_#:","symbol":"#️⃣","group":"symbols","keywords":["keycap"]},{"id":":keycap_*:","symbol":"*️⃣","group":"symbols","keywords":["keycap"]},{"id":":keycap_0:","symbol":"0️⃣","group":"symbols","keywords":["keycap"]},{"id":":keycap_1:","symbol":"1️⃣","group":"symbols","keywords":["keycap"]},{"id":":keycap_2:","symbol":"2️⃣","group":"symbols","keywords":["keycap"]},{"id":":keycap_3:","symbol":"3️⃣","group":"symbols","keywords":["keycap"]},{"id":":keycap_4:","symbol":"4️⃣","group":"symbols","keywords":["keycap"]},{"id":":keycap_5:","symbol":"5️⃣","group":"symbols","keywords":["keycap"]},{"id":":keycap_6:","symbol":"6️⃣","group":"symbols","keywords":["keycap"]},{"id":":keycap_7:","symbol":"7️⃣","group":"symbols","keywords":["keycap"]},{"id":":keycap_8:","symbol":"8️⃣","group":"symbols","keywords":["keycap"]},{"id":":keycap_9:","symbol":"9️⃣","group":"symbols","keywords":["keycap"]},{"id":":keycap_10:","symbol":"🔟","group":"symbols","keywords":["keycap"]},{"id":":hundred_points:","symbol":"💯","group":"symbols","keywords":["100","full","hundred","hundred points","score"]},{"id":":input_latin_uppercase:","symbol":"🔠","group":"symbols","keywords":["ABCD","input","latin","letters","uppercase"]},{"id":":input_latin_lowercase:","symbol":"🔡","group":"symbols","keywords":["abcd","input","latin","letters","lowercase"]},{"id":":input_numbers:","symbol":"🔢","group":"symbols","keywords":["1234","input","numbers"]},{"id":":input_symbols:","symbol":"🔣","group":"symbols","keywords":["〒♪&%","input","input symbols"]},{"id":":input_latin_letters:","symbol":"🔤","group":"symbols","keywords":["abc","alphabet","input","latin","letters"]},{"id":":a_button_(blood_type):","symbol":"🅰","group":"symbols","keywords":["a","A button (blood type)","blood type"]},{"id":":ab_button_(blood_type):","symbol":"🆎","group":"symbols","keywords":["ab","AB button (blood type)","blood type"]},{"id":":b_button_(blood_type):","symbol":"🅱","group":"symbols","keywords":["b","B button (blood type)","blood type"]},{"id":":cl_button:","symbol":"🆑","group":"symbols","keywords":["cl","CL button"]},{"id":":cool_button:","symbol":"🆒","group":"symbols","keywords":["cool","COOL button"]},{"id":":free_button:","symbol":"🆓","group":"symbols","keywords":["free","FREE button"]},{"id":":information:","symbol":"ℹ","group":"symbols","keywords":["i","information"]},{"id":":id_button:","symbol":"🆔","group":"symbols","keywords":["id","ID button","identity"]},{"id":":circled_m:","symbol":"Ⓜ","group":"symbols","keywords":["circle","circled M","m"]},{"id":":new_button:","symbol":"🆕","group":"symbols","keywords":["new","NEW button"]},{"id":":ng_button:","symbol":"🆖","group":"symbols","keywords":["ng","NG button"]},{"id":":o_button_(blood_type):","symbol":"🅾","group":"symbols","keywords":["blood type","o","O button (blood type)"]},{"id":":ok_button:","symbol":"🆗","group":"symbols","keywords":["OK","OK button"]},{"id":":p_button:","symbol":"🅿","group":"symbols","keywords":["P button","parking"]},{"id":":sos_button:","symbol":"🆘","group":"symbols","keywords":["help","sos","SOS button"]},{"id":":up!_button:","symbol":"🆙","group":"symbols","keywords":["mark","up","UP! button"]},{"id":":vs_button:","symbol":"🆚","group":"symbols","keywords":["versus","vs","VS button"]},{"id":":japanese_“here”_button:","symbol":"🈁","group":"symbols","keywords":["“here”","Japanese","Japanese “here” button","katakana","ココ"]},{"id":":japanese_“service_charge”_button:","symbol":"🈂","group":"symbols","keywords":["“service charge”","Japanese","Japanese “service charge” button","katakana","サ"]},{"id":":japanese_“monthly_amount”_button:","symbol":"🈷","group":"symbols","keywords":["“monthly amount”","ideograph","Japanese","Japanese “monthly amount” button","月"]},{"id":":japanese_“not_free_of_charge”_button:","symbol":"🈶","group":"symbols","keywords":["“not free of charge”","ideograph","Japanese","Japanese “not free of charge” button","有"]},{"id":":japanese_“reserved”_button:","symbol":"🈯","group":"symbols","keywords":["“reserved”","ideograph","Japanese","Japanese “reserved” button","指"]},{"id":":japanese_“bargain”_button:","symbol":"🉐","group":"symbols","keywords":["“bargain”","ideograph","Japanese","Japanese “bargain” button","得"]},{"id":":japanese_“discount”_button:","symbol":"🈹","group":"symbols","keywords":["“discount”","ideograph","Japanese","Japanese “discount” button","割"]},{"id":":japanese_“free_of_charge”_button:","symbol":"🈚","group":"symbols","keywords":["“free of charge”","ideograph","Japanese","Japanese “free of charge” button","無"]},{"id":":japanese_“prohibited”_button:","symbol":"🈲","group":"symbols","keywords":["“prohibited”","ideograph","Japanese","Japanese “prohibited” button","禁"]},{"id":":japanese_“acceptable”_button:","symbol":"🉑","group":"symbols","keywords":["“acceptable”","ideograph","Japanese","Japanese “acceptable” button","可"]},{"id":":japanese_“application”_button:","symbol":"🈸","group":"symbols","keywords":["“application”","ideograph","Japanese","Japanese “application” button","申"]},{"id":":japanese_“passing_grade”_button:","symbol":"🈴","group":"symbols","keywords":["“passing grade”","ideograph","Japanese","Japanese “passing grade” button","合"]},{"id":":japanese_“vacancy”_button:","symbol":"🈳","group":"symbols","keywords":["“vacancy”","ideograph","Japanese","Japanese “vacancy” button","空"]},{"id":":japanese_“congratulations”_button:","symbol":"㊗","group":"symbols","keywords":["“congratulations”","ideograph","Japanese","Japanese “congratulations” button","祝"]},{"id":":japanese_“secret”_button:","symbol":"㊙","group":"symbols","keywords":["“secret”","ideograph","Japanese","Japanese “secret” button","秘"]},{"id":":japanese_“open_for_business”_button:","symbol":"🈺","group":"symbols","keywords":["“open for business”","ideograph","Japanese","Japanese “open for business” button","営"]},{"id":":japanese_“no_vacancy”_button:","symbol":"🈵","group":"symbols","keywords":["“no vacancy”","ideograph","Japanese","Japanese “no vacancy” button","満"]},{"id":":red_circle:","symbol":"🔴","group":"symbols","keywords":["circle","geometric","red"]},{"id":":blue_circle:","symbol":"🔵","group":"symbols","keywords":["blue","circle","geometric"]},{"id":":white_circle:","symbol":"⚪","group":"symbols","keywords":["circle","geometric","white circle"]},{"id":":black_circle:","symbol":"⚫","group":"symbols","keywords":["black circle","circle","geometric"]},{"id":":white_large_square:","symbol":"⬜","group":"symbols","keywords":["geometric","square","white large square"]},{"id":":black_large_square:","symbol":"⬛","group":"symbols","keywords":["black large square","geometric","square"]},{"id":":black_medium_square:","symbol":"◼","group":"symbols","keywords":["black medium square","geometric","square"]},{"id":":white_medium_square:","symbol":"◻","group":"symbols","keywords":["geometric","square","white medium square"]},{"id":":white_medium-small_square:","symbol":"◽","group":"symbols","keywords":["geometric","square","white medium-small square"]},{"id":":black_medium-small_square:","symbol":"◾","group":"symbols","keywords":["black medium-small square","geometric","square"]},{"id":":white_small_square:","symbol":"▫","group":"symbols","keywords":["geometric","square","white small square"]},{"id":":black_small_square:","symbol":"▪","group":"symbols","keywords":["black small square","geometric","square"]},{"id":":large_orange_diamond:","symbol":"🔶","group":"symbols","keywords":["diamond","geometric","large orange diamond","orange"]},{"id":":large_blue_diamond:","symbol":"🔷","group":"symbols","keywords":["blue","diamond","geometric","large blue diamond"]},{"id":":small_orange_diamond:","symbol":"🔸","group":"symbols","keywords":["diamond","geometric","orange","small orange diamond"]},{"id":":small_blue_diamond:","symbol":"🔹","group":"symbols","keywords":["blue","diamond","geometric","small blue diamond"]},{"id":":red_triangle_pointed_up:","symbol":"🔺","group":"symbols","keywords":["geometric","red","red triangle pointed up"]},{"id":":red_triangle_pointed_down:","symbol":"🔻","group":"symbols","keywords":["down","geometric","red","red triangle pointed down"]},{"id":":diamond_with_a_dot:","symbol":"💠","group":"symbols","keywords":["comic","diamond","diamond with a dot","geometric","inside"]},{"id":":radio_button:","symbol":"🔘","group":"symbols","keywords":["button","geometric","radio"]},{"id":":black_square_button:","symbol":"🔲","group":"symbols","keywords":["black square button","button","geometric","square"]},{"id":":white_square_button:","symbol":"🔳","group":"symbols","keywords":["button","geometric","outlined","square","white square button"]},{"id":":chequered_flag:","symbol":"🏁","group":"flags","keywords":["checkered","chequered","chequered flag","racing"]},{"id":":triangular_flag:","symbol":"🚩","group":"flags","keywords":["post","triangular flag"]},{"id":":crossed_flags:","symbol":"🎌","group":"flags","keywords":["celebration","cross","crossed","crossed flags","Japanese"]},{"id":":black_flag:","symbol":"🏴","group":"flags","keywords":["black flag","waving"]},{"id":":white_flag:","symbol":"🏳","group":"flags","keywords":["waving","white flag"]},{"id":":rainbow_flag:","symbol":"🏳️‍🌈","group":"flags","keywords":["rainbow","rainbow flag"]},{"id":":flag_ascension_island:","symbol":"🇦🇨","group":"flags","keywords":["flag"]},{"id":":flag_andorra:","symbol":"🇦🇩","group":"flags","keywords":["flag"]},{"id":":flag_united_arab_emirates:","symbol":"🇦🇪","group":"flags","keywords":["flag"]},{"id":":flag_afghanistan:","symbol":"🇦🇫","group":"flags","keywords":["flag"]},{"id":":flag_antigua_&_barbuda:","symbol":"🇦🇬","group":"flags","keywords":["flag"]},{"id":":flag_anguilla:","symbol":"🇦🇮","group":"flags","keywords":["flag"]},{"id":":flag_albania:","symbol":"🇦🇱","group":"flags","keywords":["flag"]},{"id":":flag_armenia:","symbol":"🇦🇲","group":"flags","keywords":["flag"]},{"id":":flag_angola:","symbol":"🇦🇴","group":"flags","keywords":["flag"]},{"id":":flag_antarctica:","symbol":"🇦🇶","group":"flags","keywords":["flag"]},{"id":":flag_argentina:","symbol":"🇦🇷","group":"flags","keywords":["flag"]},{"id":":flag_american_samoa:","symbol":"🇦🇸","group":"flags","keywords":["flag"]},{"id":":flag_austria:","symbol":"🇦🇹","group":"flags","keywords":["flag"]},{"id":":flag_australia:","symbol":"🇦🇺","group":"flags","keywords":["flag"]},{"id":":flag_aruba:","symbol":"🇦🇼","group":"flags","keywords":["flag"]},{"id":":flag_åland_islands:","symbol":"🇦🇽","group":"flags","keywords":["flag"]},{"id":":flag_azerbaijan:","symbol":"🇦🇿","group":"flags","keywords":["flag"]},{"id":":flag_bosnia_&_herzegovina:","symbol":"🇧🇦","group":"flags","keywords":["flag"]},{"id":":flag_barbados:","symbol":"🇧🇧","group":"flags","keywords":["flag"]},{"id":":flag_bangladesh:","symbol":"🇧🇩","group":"flags","keywords":["flag"]},{"id":":flag_belgium:","symbol":"🇧🇪","group":"flags","keywords":["flag"]},{"id":":flag_burkina_faso:","symbol":"🇧🇫","group":"flags","keywords":["flag"]},{"id":":flag_bulgaria:","symbol":"🇧🇬","group":"flags","keywords":["flag"]},{"id":":flag_bahrain:","symbol":"🇧🇭","group":"flags","keywords":["flag"]},{"id":":flag_burundi:","symbol":"🇧🇮","group":"flags","keywords":["flag"]},{"id":":flag_benin:","symbol":"🇧🇯","group":"flags","keywords":["flag"]},{"id":":flag_st._barthélemy:","symbol":"🇧🇱","group":"flags","keywords":["flag"]},{"id":":flag_bermuda:","symbol":"🇧🇲","group":"flags","keywords":["flag"]},{"id":":flag_brunei:","symbol":"🇧🇳","group":"flags","keywords":["flag"]},{"id":":flag_bolivia:","symbol":"🇧🇴","group":"flags","keywords":["flag"]},{"id":":flag_caribbean_netherlands:","symbol":"🇧🇶","group":"flags","keywords":["flag"]},{"id":":flag_brazil:","symbol":"🇧🇷","group":"flags","keywords":["flag"]},{"id":":flag_bahamas:","symbol":"🇧🇸","group":"flags","keywords":["flag"]},{"id":":flag_bhutan:","symbol":"🇧🇹","group":"flags","keywords":["flag"]},{"id":":flag_bouvet_island:","symbol":"🇧🇻","group":"flags","keywords":["flag"]},{"id":":flag_botswana:","symbol":"🇧🇼","group":"flags","keywords":["flag"]},{"id":":flag_belarus:","symbol":"🇧🇾","group":"flags","keywords":["flag"]},{"id":":flag_belize:","symbol":"🇧🇿","group":"flags","keywords":["flag"]},{"id":":flag_canada:","symbol":"🇨🇦","group":"flags","keywords":["flag"]},{"id":":flag_cocos_(keeling)_islands:","symbol":"🇨🇨","group":"flags","keywords":["flag"]},{"id":":flag_congo_-_kinshasa:","symbol":"🇨🇩","group":"flags","keywords":["flag"]},{"id":":flag_central_african_republic:","symbol":"🇨🇫","group":"flags","keywords":["flag"]},{"id":":flag_congo_-_brazzaville:","symbol":"🇨🇬","group":"flags","keywords":["flag"]},{"id":":flag_switzerland:","symbol":"🇨🇭","group":"flags","keywords":["flag"]},{"id":":flag_côte_d’ivoire:","symbol":"🇨🇮","group":"flags","keywords":["flag"]},{"id":":flag_cook_islands:","symbol":"🇨🇰","group":"flags","keywords":["flag"]},{"id":":flag_chile:","symbol":"🇨🇱","group":"flags","keywords":["flag"]},{"id":":flag_cameroon:","symbol":"🇨🇲","group":"flags","keywords":["flag"]},{"id":":flag_china:","symbol":"🇨🇳","group":"flags","keywords":["flag"]},{"id":":flag_colombia:","symbol":"🇨🇴","group":"flags","keywords":["flag"]},{"id":":flag_clipperton_island:","symbol":"🇨🇵","group":"flags","keywords":["flag"]},{"id":":flag_costa_rica:","symbol":"🇨🇷","group":"flags","keywords":["flag"]},{"id":":flag_cuba:","symbol":"🇨🇺","group":"flags","keywords":["flag"]},{"id":":flag_cape_verde:","symbol":"🇨🇻","group":"flags","keywords":["flag"]},{"id":":flag_curaçao:","symbol":"🇨🇼","group":"flags","keywords":["flag"]},{"id":":flag_christmas_island:","symbol":"🇨🇽","group":"flags","keywords":["flag"]},{"id":":flag_cyprus:","symbol":"🇨🇾","group":"flags","keywords":["flag"]},{"id":":flag_czechia:","symbol":"🇨🇿","group":"flags","keywords":["flag"]},{"id":":flag_germany:","symbol":"🇩🇪","group":"flags","keywords":["flag"]},{"id":":flag_diego_garcia:","symbol":"🇩🇬","group":"flags","keywords":["flag"]},{"id":":flag_djibouti:","symbol":"🇩🇯","group":"flags","keywords":["flag"]},{"id":":flag_denmark:","symbol":"🇩🇰","group":"flags","keywords":["flag"]},{"id":":flag_dominica:","symbol":"🇩🇲","group":"flags","keywords":["flag"]},{"id":":flag_dominican_republic:","symbol":"🇩🇴","group":"flags","keywords":["flag"]},{"id":":flag_algeria:","symbol":"🇩🇿","group":"flags","keywords":["flag"]},{"id":":flag_ceuta_&_melilla:","symbol":"🇪🇦","group":"flags","keywords":["flag"]},{"id":":flag_ecuador:","symbol":"🇪🇨","group":"flags","keywords":["flag"]},{"id":":flag_estonia:","symbol":"🇪🇪","group":"flags","keywords":["flag"]},{"id":":flag_egypt:","symbol":"🇪🇬","group":"flags","keywords":["flag"]},{"id":":flag_western_sahara:","symbol":"🇪🇭","group":"flags","keywords":["flag"]},{"id":":flag_eritrea:","symbol":"🇪🇷","group":"flags","keywords":["flag"]},{"id":":flag_spain:","symbol":"🇪🇸","group":"flags","keywords":["flag"]},{"id":":flag_ethiopia:","symbol":"🇪🇹","group":"flags","keywords":["flag"]},{"id":":flag_european_union:","symbol":"🇪🇺","group":"flags","keywords":["flag"]},{"id":":flag_finland:","symbol":"🇫🇮","group":"flags","keywords":["flag"]},{"id":":flag_fiji:","symbol":"🇫🇯","group":"flags","keywords":["flag"]},{"id":":flag_falkland_islands:","symbol":"🇫🇰","group":"flags","keywords":["flag"]},{"id":":flag_micronesia:","symbol":"🇫🇲","group":"flags","keywords":["flag"]},{"id":":flag_faroe_islands:","symbol":"🇫🇴","group":"flags","keywords":["flag"]},{"id":":flag_france:","symbol":"🇫🇷","group":"flags","keywords":["flag"]},{"id":":flag_gabon:","symbol":"🇬🇦","group":"flags","keywords":["flag"]},{"id":":flag_united_kingdom:","symbol":"🇬🇧","group":"flags","keywords":["flag"]},{"id":":flag_grenada:","symbol":"🇬🇩","group":"flags","keywords":["flag"]},{"id":":flag_georgia:","symbol":"🇬🇪","group":"flags","keywords":["flag"]},{"id":":flag_french_guiana:","symbol":"🇬🇫","group":"flags","keywords":["flag"]},{"id":":flag_guernsey:","symbol":"🇬🇬","group":"flags","keywords":["flag"]},{"id":":flag_ghana:","symbol":"🇬🇭","group":"flags","keywords":["flag"]},{"id":":flag_gibraltar:","symbol":"🇬🇮","group":"flags","keywords":["flag"]},{"id":":flag_greenland:","symbol":"🇬🇱","group":"flags","keywords":["flag"]},{"id":":flag_gambia:","symbol":"🇬🇲","group":"flags","keywords":["flag"]},{"id":":flag_guinea:","symbol":"🇬🇳","group":"flags","keywords":["flag"]},{"id":":flag_guadeloupe:","symbol":"🇬🇵","group":"flags","keywords":["flag"]},{"id":":flag_equatorial_guinea:","symbol":"🇬🇶","group":"flags","keywords":["flag"]},{"id":":flag_greece:","symbol":"🇬🇷","group":"flags","keywords":["flag"]},{"id":":flag_south_georgia_&_south_sandwich_islands:","symbol":"🇬🇸","group":"flags","keywords":["flag"]},{"id":":flag_guatemala:","symbol":"🇬🇹","group":"flags","keywords":["flag"]},{"id":":flag_guam:","symbol":"🇬🇺","group":"flags","keywords":["flag"]},{"id":":flag_guinea-bissau:","symbol":"🇬🇼","group":"flags","keywords":["flag"]},{"id":":flag_guyana:","symbol":"🇬🇾","group":"flags","keywords":["flag"]},{"id":":flag_hong_kong_sar_china:","symbol":"🇭🇰","group":"flags","keywords":["flag"]},{"id":":flag_heard_&_mcdonald_islands:","symbol":"🇭🇲","group":"flags","keywords":["flag"]},{"id":":flag_honduras:","symbol":"🇭🇳","group":"flags","keywords":["flag"]},{"id":":flag_croatia:","symbol":"🇭🇷","group":"flags","keywords":["flag"]},{"id":":flag_haiti:","symbol":"🇭🇹","group":"flags","keywords":["flag"]},{"id":":flag_hungary:","symbol":"🇭🇺","group":"flags","keywords":["flag"]},{"id":":flag_canary_islands:","symbol":"🇮🇨","group":"flags","keywords":["flag"]},{"id":":flag_indonesia:","symbol":"🇮🇩","group":"flags","keywords":["flag"]},{"id":":flag_ireland:","symbol":"🇮🇪","group":"flags","keywords":["flag"]},{"id":":flag_israel:","symbol":"🇮🇱","group":"flags","keywords":["flag"]},{"id":":flag_isle_of_man:","symbol":"🇮🇲","group":"flags","keywords":["flag"]},{"id":":flag_india:","symbol":"🇮🇳","group":"flags","keywords":["flag"]},{"id":":flag_british_indian_ocean_territory:","symbol":"🇮🇴","group":"flags","keywords":["flag"]},{"id":":flag_iraq:","symbol":"🇮🇶","group":"flags","keywords":["flag"]},{"id":":flag_iran:","symbol":"🇮🇷","group":"flags","keywords":["flag"]},{"id":":flag_iceland:","symbol":"🇮🇸","group":"flags","keywords":["flag"]},{"id":":flag_italy:","symbol":"🇮🇹","group":"flags","keywords":["flag"]},{"id":":flag_jersey:","symbol":"🇯🇪","group":"flags","keywords":["flag"]},{"id":":flag_jamaica:","symbol":"🇯🇲","group":"flags","keywords":["flag"]},{"id":":flag_jordan:","symbol":"🇯🇴","group":"flags","keywords":["flag"]},{"id":":flag_japan:","symbol":"🇯🇵","group":"flags","keywords":["flag"]},{"id":":flag_kenya:","symbol":"🇰🇪","group":"flags","keywords":["flag"]},{"id":":flag_kyrgyzstan:","symbol":"🇰🇬","group":"flags","keywords":["flag"]},{"id":":flag_cambodia:","symbol":"🇰🇭","group":"flags","keywords":["flag"]},{"id":":flag_kiribati:","symbol":"🇰🇮","group":"flags","keywords":["flag"]},{"id":":flag_comoros:","symbol":"🇰🇲","group":"flags","keywords":["flag"]},{"id":":flag_st._kitts_&_nevis:","symbol":"🇰🇳","group":"flags","keywords":["flag"]},{"id":":flag_north_korea:","symbol":"🇰🇵","group":"flags","keywords":["flag"]},{"id":":flag_south_korea:","symbol":"🇰🇷","group":"flags","keywords":["flag"]},{"id":":flag_kuwait:","symbol":"🇰🇼","group":"flags","keywords":["flag"]},{"id":":flag_cayman_islands:","symbol":"🇰🇾","group":"flags","keywords":["flag"]},{"id":":flag_kazakhstan:","symbol":"🇰🇿","group":"flags","keywords":["flag"]},{"id":":flag_laos:","symbol":"🇱🇦","group":"flags","keywords":["flag"]},{"id":":flag_lebanon:","symbol":"🇱🇧","group":"flags","keywords":["flag"]},{"id":":flag_st._lucia:","symbol":"🇱🇨","group":"flags","keywords":["flag"]},{"id":":flag_liechtenstein:","symbol":"🇱🇮","group":"flags","keywords":["flag"]},{"id":":flag_sri_lanka:","symbol":"🇱🇰","group":"flags","keywords":["flag"]},{"id":":flag_liberia:","symbol":"🇱🇷","group":"flags","keywords":["flag"]},{"id":":flag_lesotho:","symbol":"🇱🇸","group":"flags","keywords":["flag"]},{"id":":flag_lithuania:","symbol":"🇱🇹","group":"flags","keywords":["flag"]},{"id":":flag_luxembourg:","symbol":"🇱🇺","group":"flags","keywords":["flag"]},{"id":":flag_latvia:","symbol":"🇱🇻","group":"flags","keywords":["flag"]},{"id":":flag_libya:","symbol":"🇱🇾","group":"flags","keywords":["flag"]},{"id":":flag_morocco:","symbol":"🇲🇦","group":"flags","keywords":["flag"]},{"id":":flag_monaco:","symbol":"🇲🇨","group":"flags","keywords":["flag"]},{"id":":flag_moldova:","symbol":"🇲🇩","group":"flags","keywords":["flag"]},{"id":":flag_montenegro:","symbol":"🇲🇪","group":"flags","keywords":["flag"]},{"id":":flag_st._martin:","symbol":"🇲🇫","group":"flags","keywords":["flag"]},{"id":":flag_madagascar:","symbol":"🇲🇬","group":"flags","keywords":["flag"]},{"id":":flag_marshall_islands:","symbol":"🇲🇭","group":"flags","keywords":["flag"]},{"id":":flag_macedonia:","symbol":"🇲🇰","group":"flags","keywords":["flag"]},{"id":":flag_mali:","symbol":"🇲🇱","group":"flags","keywords":["flag"]},{"id":":flag_myanmar_(burma):","symbol":"🇲🇲","group":"flags","keywords":["flag"]},{"id":":flag_mongolia:","symbol":"🇲🇳","group":"flags","keywords":["flag"]},{"id":":flag_macau_sar_china:","symbol":"🇲🇴","group":"flags","keywords":["flag"]},{"id":":flag_northern_mariana_islands:","symbol":"🇲🇵","group":"flags","keywords":["flag"]},{"id":":flag_martinique:","symbol":"🇲🇶","group":"flags","keywords":["flag"]},{"id":":flag_mauritania:","symbol":"🇲🇷","group":"flags","keywords":["flag"]},{"id":":flag_montserrat:","symbol":"🇲🇸","group":"flags","keywords":["flag"]},{"id":":flag_malta:","symbol":"🇲🇹","group":"flags","keywords":["flag"]},{"id":":flag_mauritius:","symbol":"🇲🇺","group":"flags","keywords":["flag"]},{"id":":flag_maldives:","symbol":"🇲🇻","group":"flags","keywords":["flag"]},{"id":":flag_malawi:","symbol":"🇲🇼","group":"flags","keywords":["flag"]},{"id":":flag_mexico:","symbol":"🇲🇽","group":"flags","keywords":["flag"]},{"id":":flag_malaysia:","symbol":"🇲🇾","group":"flags","keywords":["flag"]},{"id":":flag_mozambique:","symbol":"🇲🇿","group":"flags","keywords":["flag"]},{"id":":flag_namibia:","symbol":"🇳🇦","group":"flags","keywords":["flag"]},{"id":":flag_new_caledonia:","symbol":"🇳🇨","group":"flags","keywords":["flag"]},{"id":":flag_niger:","symbol":"🇳🇪","group":"flags","keywords":["flag"]},{"id":":flag_norfolk_island:","symbol":"🇳🇫","group":"flags","keywords":["flag"]},{"id":":flag_nigeria:","symbol":"🇳🇬","group":"flags","keywords":["flag"]},{"id":":flag_nicaragua:","symbol":"🇳🇮","group":"flags","keywords":["flag"]},{"id":":flag_netherlands:","symbol":"🇳🇱","group":"flags","keywords":["flag"]},{"id":":flag_norway:","symbol":"🇳🇴","group":"flags","keywords":["flag"]},{"id":":flag_nepal:","symbol":"🇳🇵","group":"flags","keywords":["flag"]},{"id":":flag_nauru:","symbol":"🇳🇷","group":"flags","keywords":["flag"]},{"id":":flag_niue:","symbol":"🇳🇺","group":"flags","keywords":["flag"]},{"id":":flag_new_zealand:","symbol":"🇳🇿","group":"flags","keywords":["flag"]},{"id":":flag_oman:","symbol":"🇴🇲","group":"flags","keywords":["flag"]},{"id":":flag_panama:","symbol":"🇵🇦","group":"flags","keywords":["flag"]},{"id":":flag_peru:","symbol":"🇵🇪","group":"flags","keywords":["flag"]},{"id":":flag_french_polynesia:","symbol":"🇵🇫","group":"flags","keywords":["flag"]},{"id":":flag_papua_new_guinea:","symbol":"🇵🇬","group":"flags","keywords":["flag"]},{"id":":flag_philippines:","symbol":"🇵🇭","group":"flags","keywords":["flag"]},{"id":":flag_pakistan:","symbol":"🇵🇰","group":"flags","keywords":["flag"]},{"id":":flag_poland:","symbol":"🇵🇱","group":"flags","keywords":["flag"]},{"id":":flag_st._pierre_&_miquelon:","symbol":"🇵🇲","group":"flags","keywords":["flag"]},{"id":":flag_pitcairn_islands:","symbol":"🇵🇳","group":"flags","keywords":["flag"]},{"id":":flag_puerto_rico:","symbol":"🇵🇷","group":"flags","keywords":["flag"]},{"id":":flag_palestinian_territories:","symbol":"🇵🇸","group":"flags","keywords":["flag"]},{"id":":flag_portugal:","symbol":"🇵🇹","group":"flags","keywords":["flag"]},{"id":":flag_palau:","symbol":"🇵🇼","group":"flags","keywords":["flag"]},{"id":":flag_paraguay:","symbol":"🇵🇾","group":"flags","keywords":["flag"]},{"id":":flag_qatar:","symbol":"🇶🇦","group":"flags","keywords":["flag"]},{"id":":flag_réunion:","symbol":"🇷🇪","group":"flags","keywords":["flag"]},{"id":":flag_romania:","symbol":"🇷🇴","group":"flags","keywords":["flag"]},{"id":":flag_serbia:","symbol":"🇷🇸","group":"flags","keywords":["flag"]},{"id":":flag_russia:","symbol":"🇷🇺","group":"flags","keywords":["flag"]},{"id":":flag_rwanda:","symbol":"🇷🇼","group":"flags","keywords":["flag"]},{"id":":flag_saudi_arabia:","symbol":"🇸🇦","group":"flags","keywords":["flag"]},{"id":":flag_solomon_islands:","symbol":"🇸🇧","group":"flags","keywords":["flag"]},{"id":":flag_seychelles:","symbol":"🇸🇨","group":"flags","keywords":["flag"]},{"id":":flag_sudan:","symbol":"🇸🇩","group":"flags","keywords":["flag"]},{"id":":flag_sweden:","symbol":"🇸🇪","group":"flags","keywords":["flag"]},{"id":":flag_singapore:","symbol":"🇸🇬","group":"flags","keywords":["flag"]},{"id":":flag_st._helena:","symbol":"🇸🇭","group":"flags","keywords":["flag"]},{"id":":flag_slovenia:","symbol":"🇸🇮","group":"flags","keywords":["flag"]},{"id":":flag_svalbard_&_jan_mayen:","symbol":"🇸🇯","group":"flags","keywords":["flag"]},{"id":":flag_slovakia:","symbol":"🇸🇰","group":"flags","keywords":["flag"]},{"id":":flag_sierra_leone:","symbol":"🇸🇱","group":"flags","keywords":["flag"]},{"id":":flag_san_marino:","symbol":"🇸🇲","group":"flags","keywords":["flag"]},{"id":":flag_senegal:","symbol":"🇸🇳","group":"flags","keywords":["flag"]},{"id":":flag_somalia:","symbol":"🇸🇴","group":"flags","keywords":["flag"]},{"id":":flag_suriname:","symbol":"🇸🇷","group":"flags","keywords":["flag"]},{"id":":flag_south_sudan:","symbol":"🇸🇸","group":"flags","keywords":["flag"]},{"id":":flag_são_tomé_&_príncipe:","symbol":"🇸🇹","group":"flags","keywords":["flag"]},{"id":":flag_el_salvador:","symbol":"🇸🇻","group":"flags","keywords":["flag"]},{"id":":flag_sint_maarten:","symbol":"🇸🇽","group":"flags","keywords":["flag"]},{"id":":flag_syria:","symbol":"🇸🇾","group":"flags","keywords":["flag"]},{"id":":flag_swaziland:","symbol":"🇸🇿","group":"flags","keywords":["flag"]},{"id":":flag_tristan_da_cunha:","symbol":"🇹🇦","group":"flags","keywords":["flag"]},{"id":":flag_turks_&_caicos_islands:","symbol":"🇹🇨","group":"flags","keywords":["flag"]},{"id":":flag_chad:","symbol":"🇹🇩","group":"flags","keywords":["flag"]},{"id":":flag_french_southern_territories:","symbol":"🇹🇫","group":"flags","keywords":["flag"]},{"id":":flag_togo:","symbol":"🇹🇬","group":"flags","keywords":["flag"]},{"id":":flag_thailand:","symbol":"🇹🇭","group":"flags","keywords":["flag"]},{"id":":flag_tajikistan:","symbol":"🇹🇯","group":"flags","keywords":["flag"]},{"id":":flag_tokelau:","symbol":"🇹🇰","group":"flags","keywords":["flag"]},{"id":":flag_timor-leste:","symbol":"🇹🇱","group":"flags","keywords":["flag"]},{"id":":flag_turkmenistan:","symbol":"🇹🇲","group":"flags","keywords":["flag"]},{"id":":flag_tunisia:","symbol":"🇹🇳","group":"flags","keywords":["flag"]},{"id":":flag_tonga:","symbol":"🇹🇴","group":"flags","keywords":["flag"]},{"id":":flag_turkey:","symbol":"🇹🇷","group":"flags","keywords":["flag"]},{"id":":flag_trinidad_&_tobago:","symbol":"🇹🇹","group":"flags","keywords":["flag"]},{"id":":flag_tuvalu:","symbol":"🇹🇻","group":"flags","keywords":["flag"]},{"id":":flag_taiwan:","symbol":"🇹🇼","group":"flags","keywords":["flag"]},{"id":":flag_tanzania:","symbol":"🇹🇿","group":"flags","keywords":["flag"]},{"id":":flag_ukraine:","symbol":"🇺🇦","group":"flags","keywords":["flag"]},{"id":":flag_uganda:","symbol":"🇺🇬","group":"flags","keywords":["flag"]},{"id":":flag_u.s._outlying_islands:","symbol":"🇺🇲","group":"flags","keywords":["flag"]},{"id":":flag_united_nations:","symbol":"🇺🇳","group":"flags","keywords":["flag"]},{"id":":flag_united_states:","symbol":"🇺🇸","group":"flags","keywords":["flag"]},{"id":":flag_uruguay:","symbol":"🇺🇾","group":"flags","keywords":["flag"]},{"id":":flag_uzbekistan:","symbol":"🇺🇿","group":"flags","keywords":["flag"]},{"id":":flag_vatican_city:","symbol":"🇻🇦","group":"flags","keywords":["flag"]},{"id":":flag_st._vincent_&_grenadines:","symbol":"🇻🇨","group":"flags","keywords":["flag"]},{"id":":flag_venezuela:","symbol":"🇻🇪","group":"flags","keywords":["flag"]},{"id":":flag_british_virgin_islands:","symbol":"🇻🇬","group":"flags","keywords":["flag"]},{"id":":flag_u.s._virgin_islands:","symbol":"🇻🇮","group":"flags","keywords":["flag"]},{"id":":flag_vietnam:","symbol":"🇻🇳","group":"flags","keywords":["flag"]},{"id":":flag_vanuatu:","symbol":"🇻🇺","group":"flags","keywords":["flag"]},{"id":":flag_wallis_&_futuna:","symbol":"🇼🇫","group":"flags","keywords":["flag"]},{"id":":flag_samoa:","symbol":"🇼🇸","group":"flags","keywords":["flag"]},{"id":":flag_kosovo:","symbol":"🇽🇰","group":"flags","keywords":["flag"]},{"id":":flag_yemen:","symbol":"🇾🇪","group":"flags","keywords":["flag"]},{"id":":flag_mayotte:","symbol":"🇾🇹","group":"flags","keywords":["flag"]},{"id":":flag_south_africa:","symbol":"🇿🇦","group":"flags","keywords":["flag"]},{"id":":flag_zambia:","symbol":"🇿🇲","group":"flags","keywords":["flag"]},{"id":":flag_zimbabwe:","symbol":"🇿🇼","group":"flags","keywords":["flag"]},{"id":":flag_england:","symbol":"🏴󠁧󠁢󠁥󠁮󠁧󠁿","group":"flags","keywords":["flag"]},{"id":":flag_scotland:","symbol":"🏴󠁧󠁢󠁳󠁣󠁴󠁿","group":"flags","keywords":["flag"]},{"id":":flag_wales:","symbol":"🏴󠁧󠁢󠁷󠁬󠁳󠁿","group":"flags","keywords":["flag"]}]');const qS={autosave:{waitingTime:5e3,save:e=>async function(e){const t=Date.now(),o=e.config.get(VS),i=await e.getData();i||console.warn("Trying to save snapshot but data is not defined.");const n={timestamp:t,hash:SS(i),content:i},s=IS(o),r=s?.items||[];r.find((e=>n.hash===e.hash))||r.push(n);try{const e=TS.compress(JSON.stringify({items:r,updatedAt:t}));localStorage.setItem(o,e)}catch(t){Np(e,"notifications").addError("Failed to save CKEditor data to localStorage: "+t.toString())}return!0}(e)},heading:{options:[{model:"paragraph",title:"Paragraph",class:"ck-heading_paragraph"},{model:"heading1",view:"h1",title:"Heading 1",class:"ck-heading_heading1"},{model:"heading2",view:"h2",title:"Heading 2",class:"ck-heading_heading2"},{model:"heading3",view:"h3",title:"Heading 3",class:"ck-heading_heading3"},{model:"heading4",view:"h4",title:"Heading 4",class:"ck-heading_heading4"},{model:"heading5",view:"h5",title:"Heading 5",class:"ck-heading_heading5"}]},toolbar:{},OPMacroEmbeddedTable:{toolbar:["opEditEmbeddedTableQuery"]},OPMacroWpButton:{toolbar:["opEditWpMacroButton"]},OPWikiIncludePage:{toolbar:["opEditWikiIncludeMacroButton"]},OPCodeBlock:{toolbar:["opEditCodeBlock"]},OPChildPages:{toolbar:["opEditChildPagesMacroButton"]},image:{insert:{type:"inline"},resizeUnit:"px",resizeOptions:[{name:"imageResize:original",value:null,icon:"original"},{name:"imageResize:50",value:"50",icon:"medium"},{name:"imageResize:75",value:"75",icon:"large"}],toolbar:["toggleImageCaption","imageTextAlternative","|","imageStyle:inline","imageStyle:block","|","imageResize:original"]},table:{contentToolbar:["tableColumn","tableRow","mergeTableCells","tableProperties","tableCellProperties"]},mention:{feeds:[{marker:"@",feed:function(e){const t=this;let o=Fp(t);if(o&&"Activity::Comment"===o._type){const e=o.$embedded.workPackage;e&&(o=e)}if(!o||"WorkPackage"!==o._type)return[];if(t.config.get("disabledMentions").includes("user"))return[];const i=Bp(t).api.v3.principals(o,e),n=Mp(t),s=window.OpenProject.urlRoot;return new Promise(((e,t)=>{_k(i,{responseKind:"json",query:{select:"elements/_type,elements/id,elements/name"}}).then((e=>e.json)).then((t=>{e(_.uniqBy(t._embedded.elements,(e=>e.id)).map((e=>{const t=e._type.toLowerCase(),o=`@${e.name}`,i=`@${e.id}`,r=e.id,a=n.services.apiV3Service[`${t}s`].segment;return{type:t,id:i,text:o,link:`${s}/${a}/${r}`,idNumber:r,name:e.name}})))})).catch((e=>{console.error("Error fetching user mentions:",e),t(e)}))}))},itemRenderer:zS,minimumCharacters:0},{marker:"###",feed:LS("###"),itemRenderer:zS,minimumCharacters:1},{marker:"##",feed:LS("##"),itemRenderer:zS,minimumCharacters:1},{marker:"#",feed:LS("#"),itemRenderer:zS,minimumCharacters:1},{marker:":",feed:function(e){return new Promise(((t,o)=>{const i=jS.filter((t=>function(e,t,o){if(t.includes(e))return!0;if(0!==o.length)for(let t=0;t({id:e.id,name:e.id.replace(/:/g,""),text:e.symbol,type:"emoji"})));t(i)}))},itemRenderer:function(e){const t=document.createElement("span");return t.classList.add("mention-list-item"),t.textContent=`${e.text} ${e.name}`,t},minimumCharacters:1}]},language:"en",licenseKey:"GPL"};function $S(e){return(t,o)=>{const i=o.openProject.context;o.removePlugins=o.removePlugins||[];const n=i.resource;if(n&&n.canAddAttachments||o.removePlugins.push(...NS.map((e=>e.pluginName))),!1===i.macros&&(o.openProject.disableAllMacros=!0,o.removePlugins.push(...MS.map((e=>e.pluginName)))),Array.isArray(i.macros)){const e=MS.filter((e=>-1===i.macros.indexOf(e.pluginName)));o.removePlugins.push(...e)}o.disabledMentions=[];const s=i.disabledMentions;return Array.isArray(s)&&(o.disabledMentions=s),e.create(t,o).then((e=>e))}}class HS extends dg{}class WS extends dg{}window.OPConstrainedEditor=HS,window.OPClassicEditor=WS,window.OPEditorWatchdog=cc,WS.createCustomized=$S(WS),WS.builtinPlugins=BS,WS.defaultConfig=Object.assign({},qS),WS.defaultConfig.toolbar={items:["heading","|","bold","italic","strikethrough","code","insertCodeBlock","link","bulletedList","numberedList","todoList","imageUpload","blockQuote","|","insertTable","macroList","|","opContentRevisions","undo","redo","openProjectShowFormattingHelp","|","pageBreak","|","preview","opShowSource"]},HS.createCustomized=$S(HS),HS.builtinPlugins=BS,HS.defaultConfig=Object.assign({},qS),HS.defaultConfig.toolbar={items:["bold","italic","strikethrough","code","insertCodeBlock","link","bulletedList","numberedList","todoList","imageUpload","blockQuote","|","opContentRevisions","undo","redo","openProjectShowFormattingHelp","preview","opShowSource"]}})(),i=i.default})())); //# sourceMappingURL=ckeditor.js.map \ No newline at end of file diff --git a/frontend/src/vendor/ckeditor/ckeditor.js.map b/frontend/src/vendor/ckeditor/ckeditor.js.map index 9e2c3c13fc7..daff530753e 100644 --- a/frontend/src/vendor/ckeditor/ckeditor.js.map +++ b/frontend/src/vendor/ckeditor/ckeditor.js.map @@ -1 +1 @@ -{"version":3,"file":"ckeditor.js","mappings":"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IC,Y8BrHJ,6R9BsHIC,gB+BtHJ,8O/BuHIC,agCvHJ,0QhCwHIC,gBiCxHJ,sPjCyHIC,iBkCzHJ,sPlC0HIC,iBmC1HJ,mzBnC2HIC,eoC3HJ,kzBpC4HIC,gBqC5HJ,iuBrC6HIC,gBsC7HJ,+tBtC8HIC,iBuC9HJ,+tBvC+HIC,OwC/HJ,ifxCgIIC,QyChIJ,+LzCiIIl+E,M0CjIJ,mZ1CkIIm+E,kB2ClIJ,gL3CmIIC,c4CnIJ,gZ5CoIIC,K6CpIJ,6U7CqIIC,K8CrIJ,6U9CsIIC,a+CtIJ,gc/CuIIC,agDvIJ,6ZhDwIIC,SiDxIJ,6mBjDyIIC,UkDzIJ,ivBlD0IIC,YmD1IJ,6cnD2IIC,SoD3IJ,kQpD4IIC,SqD5IJ,+uBrD6IIC,SsD7IJ,u7BtD8IIC,SuD9IJ,gWvD+IIC,SwD/IJ,0pBxDgJIC,SyDhJJ,03BzDiJIC,e0DjJJ,6F1DkJIp0D,K2DlJJ,kpB3DmJIq0D,O4DnJJ,wY5DoJIC,Q6DpJJ,sY7DqJIC,M8DrJJ,qU9DsJIzyG,O+DtJJ,srB/DuJIrT,OgEvJJ,ifhEwJI+lH,SiExJJ,6XjEyJIC,ekEzJJ,wOlE0JIvlF,MmE1JJ,4jBCgDe,MAAMwlF,WAAuB/rF,GAMxC,WAAA9mB,CAAY8yG,EAAe,IACvBlxG,MAAMkxG,EAAc,CAGhB1rF,WAAY,YAGhBvxB,KAAK4N,GAAG,OAAO,CAACiG,EAAK4gB,EAAMvhC,KACvB8M,KAAKk9G,gCAAgCzoF,EAAMvhC,EAAM,IAGrD8M,KAAK4N,GAAG,UAAU,CAACiG,EAAK4gB,KAChBA,EAAKvlC,SAAW8Q,KAAKm9G,gBACrB1oF,EAAKvlC,QAAQ6H,QACjB,IAEJiJ,KAAKm9G,eAAiB,IAC1B,CAKA,OAAAl3F,GACIjmB,KAAKV,KAAIm1B,GAAQA,EAAKxO,WAC1B,CAQA,SAAAm3F,CAAUC,GACNr9G,KAAKm9G,eAAiBE,EAEtB,IAAK,MAAM5oF,KAAQz0B,KACfA,KAAKk9G,gCAAgCzoF,EAE7C,CAuCA,QAAA3kB,IAAYC,GACR,IAAKA,EAAOtf,SAAyBsf,EAwE9BgF,OAAMhiB,GAAiB,iBAALA,IAlErB,MAAM,IAAI,EAAc,0CAA2Ci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,YAAa,CAAC,GAAI,UAAW,CAAC,EAAG,WAAY,CAAC,EAAG,UAAW,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,SAAU,CAAC,EAAG,YAAa,CAAC,EAAG,UAAW,CAAC,EAAG,SAAU,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,WAAY,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,cAAe,CAAC,EAAG,UAAW,CAAC,EAAG,SAAU,CAAC,EAAG,eAAgB,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,UAAW,CAAC,EAAG,eAAgB,CAAC,EAAG,WAAY,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,UAAW,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,UAAW,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,UAAW,CAAC,EAAG,SAAU,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,UAAW,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,UAAW,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,UAAW,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,UAAW,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,UAAW,CAAC,EAAG,SAAU,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,UAAW,CAAC,EAAG,SAAU,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,UAAW,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,UAAW,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,UAAW,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EA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CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,SAAU,CAAC,EAAG,YAAa,CAAC,EAAG,SAAU,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,SAAU,CAAC,EAAG,YAAa,CAAC,EAAG,SAAU,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,WAAY,CAAC,EAAG,UAAW,CAAC,EAAG,WAAY,CAAC,EAAG,UAAW,CAAC,EAAG,YAAa,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,WAAY,CAAC,EAAG,UAAW,CAAC,EAAG,WAAY,CAAC,EAAG,UAAW,CAAC,KAAM,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,eAAgB,CAAC,EAAG,YAAa,CAAC,EAAG,yBAA0B,CAAC,EAAG,UAAW,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,UAAW,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,WA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","sources":["webpack://OPEditor/webpack/universalModuleDefinition","webpack://OPEditor/webpack/runtime/create fake namespace object","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/theme/components/menubar/menubarmenu.css","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/theme/components/toolbar/toolbar.css","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/theme/components/editorui/editorui.css","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/theme/components/dropdown/dropdown.css","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-list/theme/list.css","webpack://OPEditor/./node_modules/style-loader/dist/runtime/insertStyleElement.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/theme/globals/globals.css","webpack://OPEditor/./node_modules/color-convert/index.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/theme/components/responsive-form/responsiveform.css","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/theme/components/dialog/dialog.css","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-image/theme/imageplaceholder.css","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/theme/components/dropdown/menu/dropdownmenulistitembutton.css","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-engine/theme/placeholder.css","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-image/theme/imageuploadloader.css","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-image/theme/imagecustomresizeform.css","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/theme/components/menubar/menubarmenulistitem.css","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-widget/theme/widget.css","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-image/theme/imageuploadicon.css","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-list/theme/liststyles.css","webpack://OPEditor/./node_modules/css-loader/dist/runtime/sourceMaps.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-mention/theme/mention.css","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-block-quote/theme/blockquote.css","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-image/theme/imageinsert.css","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/theme/components/input/input.css","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/theme/components/arialiveannouncer/arialiveannouncer.css","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/theme/components/collapsible/collapsible.css","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-table/theme/form.css","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-list/theme/listproperties.css","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/theme/components/highlightedtext/highlightedtext.css","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-widget/theme/widgetresize.css","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-link/theme/linkform.css","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/theme/components/dropdown/listdropdown.css","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/theme/components/autocomplete/autocomplete.css","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-table/theme/tableselection.css","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/theme/components/colorselector/colorselector.css","webpack://OPEditor/./node_modules/lz-string/libs/lz-string.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-image/theme/imagecaption.css","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/theme/components/colorpicker/colorpicker.css","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/theme/components/button/listitembutton.css","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/theme/components/panel/fakepanel.css","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-link/theme/linkimage.css","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-table/theme/tableproperties.css","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/theme/components/icon/icon.css","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-table/theme/tablecolumnresize.css","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-image/theme/imageresize.css","webpack://OPEditor/./node_modules/style-loader/dist/runtime/singletonStyleDomAPI.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-table/theme/colorinput.css","webpack://OPEditor/./node_modules/css-loader/dist/runtime/getUrl.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/theme/components/label/label.css","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/theme/components/tooltip/tooltip.css","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/theme/components/dropdown/menu/dropdownmenulistitem.css","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/theme/components/menubar/menubar.css","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/theme/components/formheader/formheader.css","webpack://OPEditor/./node_modules/style-loader/dist/runtime/setAttributesWithAttributesAndNonce.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/theme/components/menubar/menubarmenupanel.css","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/theme/components/dropdown/menu/dropdownmenubutton.css","webpack://OPEditor/./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/theme/components/menubar/menubarmenulistitembutton.css","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-page-break/theme/pagebreak.css","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-list/theme/todolist.css","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/theme/components/search/search.css","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/theme/components/panel/balloonpanel.css","webpack://OPEditor/./node_modules/color-convert/conversions.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/theme/components/menubar/menubarmenubutton.css","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-table/theme/tableform.css","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/theme/components/spinner/spinner.css","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-table/theme/formrow.css","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/theme/components/list/list.css","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-heading/theme/heading.css","webpack://OPEditor/./node_modules/css-loader/dist/runtime/api.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/theme/components/labeledfield/labeledfieldview.css","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-engine/theme/renderer.css","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/theme/components/dropdown/menu/dropdownmenu.css","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-table/theme/tablecellproperties.css","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-widget/theme/widgettypearound.css","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/theme/components/dropdown/splitbutton.css","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-mention/theme/mentionui.css","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/theme/components/dropdown/menu/dropdownmenupanel.css","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/theme/components/panel/stickypanel.css","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-table/theme/tablecaption.css","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-link/theme/link.css","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/theme/components/dropdown/toolbardropdown.css","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-image/theme/imageuploadprogress.css","webpack://OPEditor/./node_modules/style-loader/dist/runtime/insertBySelector.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-list/theme/documentlist.css","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-image/theme/imagestyle.css","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/theme/components/colorgrid/colorgrid.css","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-link/theme/linkactions.css","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/theme/components/dialog/dialogactions.css","webpack://OPEditor/./node_modules/color-name/index.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/theme/components/textarea/textarea.css","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-image/theme/textalternativeform.css","webpack://OPEditor/./node_modules/color-convert/route.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-image/theme/image.css","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-table/theme/inserttable.css","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-table/theme/tableediting.css","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/theme/components/button/button.css","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-basic-styles/theme/code.css","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-clipboard/theme/clipboard.css","webpack://OPEditor/./node_modules/markdown-it-task-lists/index.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/theme/components/editorui/accessibilityhelp.css","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/theme/components/button/switchbutton.css","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/theme/components/panel/balloonrotator.css","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/theme/components/toolbar/blocktoolbar.css","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-table/theme/table.css","webpack://OPEditor/webpack/bootstrap","webpack://OPEditor/webpack/runtime/compat get default export","webpack://OPEditor/webpack/runtime/define property getters","webpack://OPEditor/webpack/runtime/hasOwnProperty shorthand","webpack://OPEditor/webpack/runtime/make namespace object","webpack://OPEditor/webpack/runtime/jsonp chunk loading","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-utils/src/dom/global.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-utils/src/env.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-utils/src/fastdiff.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-utils/src/diff.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-utils/src/spy.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-utils/src/eventinfo.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-utils/src/uid.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-utils/src/priorities.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-utils/src/inserttopriorityarray.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-utils/src/ckeditorerror.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-utils/src/version.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-utils/src/emittermixin.js","webpack://OPEditor/./node_modules/lodash-es/isObject.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-utils/src/observablemixin.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-utils/src/count.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-utils/src/comparearrays.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-utils/src/isiterable.js","webpack://OPEditor/./node_modules/lodash-es/_freeGlobal.js","webpack://OPEditor/./node_modules/lodash-es/_root.js","webpack://OPEditor/./node_modules/lodash-es/_Symbol.js","webpack://OPEditor/./node_modules/lodash-es/_getRawTag.js","webpack://OPEditor/./node_modules/lodash-es/_objectToString.js","webpack://OPEditor/./node_modules/lodash-es/_baseGetTag.js","webpack://OPEditor/./node_modules/lodash-es/isArray.js","webpack://OPEditor/./node_modules/lodash-es/isObjectLike.js","webpack://OPEditor/./node_modules/lodash-es/isString.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-utils/src/dom/createelement.js","webpack://OPEditor/./node_modules/lodash-es/_overArg.js","webpack://OPEditor/./node_modules/lodash-es/_getPrototype.js","webpack://OPEditor/./node_modules/lodash-es/isPlainObject.js","webpack://OPEditor/./node_modules/lodash-es/_listCacheClear.js","webpack://OPEditor/./node_modules/lodash-es/eq.js","webpack://OPEditor/./node_modules/lodash-es/_assocIndexOf.js","webpack://OPEditor/./node_modules/lodash-es/_listCacheDelete.js","webpack://OPEditor/./node_modules/lodash-es/_listCacheGet.js","webpack://OPEditor/./node_modules/lodash-es/_listCacheHas.js","webpack://OPEditor/./node_modules/lodash-es/_listCacheSet.js","webpack://OPEditor/./node_modules/lodash-es/_ListCache.js","webpack://OPEditor/./node_modules/lodash-es/_stackClear.js","webpack://OPEditor/./node_modules/lodash-es/_stackDelete.js","webpack://OPEditor/./node_modules/lodash-es/_stackGet.js","webpack://OPEditor/./node_modules/lodash-es/_stackHas.js","webpack://OPEditor/./node_modules/lodash-es/isFunction.js","webpack://OPEditor/./node_modules/lodash-es/_coreJsData.js","webpack://OPEditor/./node_modules/lodash-es/_isMasked.js","webpack://OPEditor/./node_modules/lodash-es/_toSource.js","webpack://OPEditor/./node_modules/lodash-es/_baseIsNative.js","webpack://OPEditor/./node_modules/lodash-es/_getValue.js","webpack://OPEditor/./node_modules/lodash-es/_getNative.js","webpack://OPEditor/./node_modules/lodash-es/_Map.js","webpack://OPEditor/./node_modules/lodash-es/_nativeCreate.js","webpack://OPEditor/./node_modules/lodash-es/_hashClear.js","webpack://OPEditor/./node_modules/lodash-es/_hashDelete.js","webpack://OPEditor/./node_modules/lodash-es/_hashGet.js","webpack://OPEditor/./node_modules/lodash-es/_hashHas.js","webpack://OPEditor/./node_modules/lodash-es/_hashSet.js","webpack://OPEditor/./node_modules/lodash-es/_Hash.js","webpack://OPEditor/./node_modules/lodash-es/_mapCacheClear.js","webpack://OPEditor/./node_modules/lodash-es/_isKeyable.js","webpack://OPEditor/./node_modules/lodash-es/_getMapData.js","webpack://OPEditor/./node_modules/lodash-es/_mapCacheDelete.js","webpack://OPEditor/./node_modules/lodash-es/_mapCacheGet.js","webpack://OPEditor/./node_modules/lodash-es/_mapCacheHas.js","webpack://OPEditor/./node_modules/lodash-es/_mapCacheSet.js","webpack://OPEditor/./node_modules/lodash-es/_MapCache.js","webpack://OPEditor/./node_modules/lodash-es/_stackSet.js","webpack://OPEditor/./node_modules/lodash-es/_Stack.js","webpack://OPEditor/./node_modules/lodash-es/_arrayEach.js","webpack://OPEditor/./node_modules/lodash-es/_defineProperty.js","webpack://OPEditor/./node_modules/lodash-es/_baseAssignValue.js","webpack://OPEditor/./node_modules/lodash-es/_assignValue.js","webpack://OPEditor/./node_modules/lodash-es/_copyObject.js","webpack://OPEditor/./node_modules/lodash-es/_baseTimes.js","webpack://OPEditor/./node_modules/lodash-es/_baseIsArguments.js","webpack://OPEditor/./node_modules/lodash-es/isArguments.js","webpack://OPEditor/./node_modules/lodash-es/stubFalse.js","webpack://OPEditor/./node_modules/lodash-es/isBuffer.js","webpack://OPEditor/./node_modules/lodash-es/_isIndex.js","webpack://OPEditor/./node_modules/lodash-es/isLength.js","webpack://OPEditor/./node_modules/lodash-es/_baseIsTypedArray.js","webpack://OPEditor/./node_modules/lodash-es/_baseUnary.js","webpack://OPEditor/./node_modules/lodash-es/_nodeUtil.js","webpack://OPEditor/./node_modules/lodash-es/isTypedArray.js","webpack://OPEditor/./node_modules/lodash-es/_arrayLikeKeys.js","webpack://OPEditor/./node_modules/lodash-es/_isPrototype.js","webpack://OPEditor/./node_modules/lodash-es/_nativeKeys.js","webpack://OPEditor/./node_modules/lodash-es/_baseKeys.js","webpack://OPEditor/./node_modules/lodash-es/isArrayLike.js","webpack://OPEditor/./node_modules/lodash-es/keys.js","webpack://OPEditor/./node_modules/lodash-es/_baseAssign.js","webpack://OPEditor/./node_modules/lodash-es/_nativeKeysIn.js","webpack://OPEditor/./node_modules/lodash-es/_baseKeysIn.js","webpack://OPEditor/./node_modules/lodash-es/keysIn.js","webpack://OPEditor/./node_modules/lodash-es/_baseAssignIn.js","webpack://OPEditor/./node_modules/lodash-es/_cloneBuffer.js","webpack://OPEditor/./node_modules/lodash-es/_copyArray.js","webpack://OPEditor/./node_modules/lodash-es/_arrayFilter.js","webpack://OPEditor/./node_modules/lodash-es/stubArray.js","webpack://OPEditor/./node_modules/lodash-es/_getSymbols.js","webpack://OPEditor/./node_modules/lodash-es/_copySymbols.js","webpack://OPEditor/./node_modules/lodash-es/_arrayPush.js","webpack://OPEditor/./node_modules/lodash-es/_getSymbolsIn.js","webpack://OPEditor/./node_modules/lodash-es/_copySymbolsIn.js","webpack://OPEditor/./node_modules/lodash-es/_baseGetAllKeys.js","webpack://OPEditor/./node_modules/lodash-es/_getAllKeys.js","webpack://OPEditor/./node_modules/lodash-es/_getAllKeysIn.js","webpack://OPEditor/./node_modules/lodash-es/_DataView.js","webpack://OPEditor/./node_modules/lodash-es/_Promise.js","webpack://OPEditor/./node_modules/lodash-es/_Set.js","webpack://OPEditor/./node_modules/lodash-es/_WeakMap.js","webpack://OPEditor/./node_modules/lodash-es/_getTag.js","webpack://OPEditor/./node_modules/lodash-es/_initCloneArray.js","webpack://OPEditor/./node_modules/lodash-es/_Uint8Array.js","webpack://OPEditor/./node_modules/lodash-es/_cloneArrayBuffer.js","webpack://OPEditor/./node_modules/lodash-es/_cloneDataView.js","webpack://OPEditor/./node_modules/lodash-es/_cloneRegExp.js","webpack://OPEditor/./node_modules/lodash-es/_cloneSymbol.js","webpack://OPEditor/./node_modules/lodash-es/_cloneTypedArray.js","webpack://OPEditor/./node_modules/lodash-es/_initCloneByTag.js","webpack://OPEditor/./node_modules/lodash-es/_baseCreate.js","webpack://OPEditor/./node_modules/lodash-es/_initCloneObject.js","webpack://OPEditor/./node_modules/lodash-es/_baseIsMap.js","webpack://OPEditor/./node_modules/lodash-es/isMap.js","webpack://OPEditor/./node_modules/lodash-es/_baseIsSet.js","webpack://OPEditor/./node_modules/lodash-es/isSet.js","webpack://OPEditor/./node_modules/lodash-es/_baseClone.js","webpack://OPEditor/./node_modules/lodash-es/cloneDeepWith.js","webpack://OPEditor/./node_modules/lodash-es/isElement.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-utils/src/config.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-utils/src/dom/isnode.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-utils/src/dom/iswindow.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-utils/src/dom/emittermixin.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-utils/src/dom/getancestors.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-utils/src/dom/getborderwidths.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-utils/src/dom/getrangefrommouseevent.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-utils/src/dom/istext.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-utils/src/dom/isrange.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-utils/src/dom/getpositionedancestor.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-utils/src/dom/rect.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-utils/src/dom/resizeobserver.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-utils/src/dom/setdatainelement.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-utils/src/dom/tounit.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-utils/src/dom/indexof.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-utils/src/dom/insertat.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-utils/src/dom/iscomment.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-utils/src/dom/isvisible.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-utils/src/dom/position.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-utils/src/dom/remove.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-utils/src/dom/scroll.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-utils/src/keyboard.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-utils/src/toarray.js","webpack://OPEditor/./node_modules/lodash-es/_assignMergeValue.js","webpack://OPEditor/./node_modules/lodash-es/_baseFor.js","webpack://OPEditor/./node_modules/lodash-es/_createBaseFor.js","webpack://OPEditor/./node_modules/lodash-es/isArrayLikeObject.js","webpack://OPEditor/./node_modules/lodash-es/_safeGet.js","webpack://OPEditor/./node_modules/lodash-es/toPlainObject.js","webpack://OPEditor/./node_modules/lodash-es/_baseMergeDeep.js","webpack://OPEditor/./node_modules/lodash-es/_baseMerge.js","webpack://OPEditor/./node_modules/lodash-es/identity.js","webpack://OPEditor/./node_modules/lodash-es/_apply.js","webpack://OPEditor/./node_modules/lodash-es/_overRest.js","webpack://OPEditor/./node_modules/lodash-es/constant.js","webpack://OPEditor/./node_modules/lodash-es/_baseSetToString.js","webpack://OPEditor/./node_modules/lodash-es/_shortOut.js","webpack://OPEditor/./node_modules/lodash-es/_setToString.js","webpack://OPEditor/./node_modules/lodash-es/_baseRest.js","webpack://OPEditor/./node_modules/lodash-es/_isIterateeCall.js","webpack://OPEditor/./node_modules/lodash-es/_createAssigner.js","webpack://OPEditor/./node_modules/lodash-es/merge.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-utils/src/translation-service.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-utils/src/language.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-utils/src/locale.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-utils/src/collection.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-utils/src/first.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-utils/src/focustracker.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-utils/src/keystrokehandler.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-utils/src/tomap.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-utils/src/objecttomap.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-utils/src/splicearray.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-utils/src/delay.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-utils/src/parsebase64encodedobject.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-utils/src/unicode.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-core/src/plugin.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-core/src/command.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-core/src/plugincollection.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-core/src/context.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-core/src/contextplugin.js","webpack://OPEditor/./node_modules/lodash-es/isSymbol.js","webpack://OPEditor/./node_modules/lodash-es/_isKey.js","webpack://OPEditor/./node_modules/lodash-es/memoize.js","webpack://OPEditor/./node_modules/lodash-es/_memoizeCapped.js","webpack://OPEditor/./node_modules/lodash-es/_stringToPath.js","webpack://OPEditor/./node_modules/lodash-es/_arrayMap.js","webpack://OPEditor/./node_modules/lodash-es/_baseToString.js","webpack://OPEditor/./node_modules/lodash-es/toString.js","webpack://OPEditor/./node_modules/lodash-es/_castPath.js","webpack://OPEditor/./node_modules/lodash-es/_toKey.js","webpack://OPEditor/./node_modules/lodash-es/_baseGet.js","webpack://OPEditor/./node_modules/lodash-es/get.js","webpack://OPEditor/./node_modules/lodash-es/_baseSet.js","webpack://OPEditor/./node_modules/lodash-es/set.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-engine/theme/placeholder.css?b8f9","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-engine/src/view/placeholder.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-engine/src/view/typecheckable.js","webpack://OPEditor/./node_modules/lodash-es/clone.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-engine/src/view/node.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-engine/src/view/text.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-engine/src/view/textproxy.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-engine/src/conversion/viewconsumable.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-engine/src/view/matcher.js","webpack://OPEditor/./node_modules/lodash-es/last.js","webpack://OPEditor/./node_modules/lodash-es/_baseSlice.js","webpack://OPEditor/./node_modules/lodash-es/_parent.js","webpack://OPEditor/./node_modules/lodash-es/_baseUnset.js","webpack://OPEditor/./node_modules/lodash-es/unset.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-engine/src/view/stylesmap.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-engine/src/view/tokenlist.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-engine/src/view/element.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-engine/src/view/containerelement.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-engine/src/view/editableelement.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-engine/src/view/rooteditableelement.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-engine/src/view/treewalker.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-engine/src/view/position.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-engine/src/view/range.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-engine/src/view/selection.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-engine/src/view/documentselection.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-engine/src/view/observer/bubblingeventinfo.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-engine/src/view/observer/bubblingemittermixin.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-engine/src/view/document.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-engine/src/view/attributeelement.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-engine/src/view/emptyelement.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-engine/src/view/uielement.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-engine/src/view/rawelement.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-engine/src/view/documentfragment.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-engine/src/view/downcastwriter.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-engine/src/view/filler.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-engine/theme/renderer.css?d589","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-engine/src/view/renderer.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-engine/src/view/domconverter.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-utils/src/dom/isvalidattributename.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-engine/src/view/observer/observer.js","webpack://OPEditor/./node_modules/lodash-es/assignIn.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-engine/src/view/observer/domeventdata.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-engine/src/view/observer/domeventobserver.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-engine/src/view/observer/keyobserver.js","webpack://OPEditor/./node_modules/lodash-es/now.js","webpack://OPEditor/./node_modules/lodash-es/_trimmedEndIndex.js","webpack://OPEditor/./node_modules/lodash-es/_baseTrim.js","webpack://OPEditor/./node_modules/lodash-es/toNumber.js","webpack://OPEditor/./node_modules/lodash-es/debounce.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-engine/src/view/observer/fakeselectionobserver.js","webpack://OPEditor/./node_modules/lodash-es/_setCacheAdd.js","webpack://OPEditor/./node_modules/lodash-es/_setCacheHas.js","webpack://OPEditor/./node_modules/lodash-es/_SetCache.js","webpack://OPEditor/./node_modules/lodash-es/_arraySome.js","webpack://OPEditor/./node_modules/lodash-es/_cacheHas.js","webpack://OPEditor/./node_modules/lodash-es/_equalArrays.js","webpack://OPEditor/./node_modules/lodash-es/_mapToArray.js","webpack://OPEditor/./node_modules/lodash-es/_setToArray.js","webpack://OPEditor/./node_modules/lodash-es/_equalByTag.js","webpack://OPEditor/./node_modules/lodash-es/_equalObjects.js","webpack://OPEditor/./node_modules/lodash-es/_baseIsEqualDeep.js","webpack://OPEditor/./node_modules/lodash-es/_baseIsEqual.js","webpack://OPEditor/./node_modules/lodash-es/isEqualWith.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-engine/src/view/observer/mutationobserver.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-engine/src/view/observer/focusobserver.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-engine/src/view/observer/selectionobserver.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-engine/src/view/observer/compositionobserver.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-engine/src/view/datatransfer.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-engine/src/view/observer/inputobserver.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-engine/src/view/observer/arrowkeysobserver.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-engine/src/view/observer/tabobserver.js","webpack://OPEditor/./node_modules/lodash-es/cloneDeep.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-engine/src/view/view.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-engine/src/model/typecheckable.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-engine/src/model/textproxy.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-engine/src/model/treewalker.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-engine/src/model/position.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-engine/src/model/range.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-engine/src/conversion/mapper.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-engine/src/conversion/modelconsumable.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-engine/src/conversion/downcastdispatcher.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-engine/src/model/node.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-engine/src/model/selection.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-engine/src/model/liverange.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-engine/src/model/text.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-engine/src/model/documentselection.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-engine/src/model/nodelist.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-engine/src/model/element.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-engine/src/conversion/conversionhelpers.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-engine/src/conversion/downcasthelpers.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-engine/src/model/utils/autoparagraphing.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-engine/src/conversion/upcasthelpers.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-engine/src/model/utils/selection-post-fixer.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-engine/src/controller/editingcontroller.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-engine/src/model/schema.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-engine/src/conversion/upcastdispatcher.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-engine/src/dataprocessor/basichtmlwriter.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-engine/src/dataprocessor/htmldataprocessor.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-engine/src/controller/datacontroller.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-engine/src/conversion/conversion.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-engine/src/model/operation/operation.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-engine/src/model/operation/utils.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-engine/src/model/operation/moveoperation.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-engine/src/model/operation/insertoperation.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-engine/src/model/operation/splitoperation.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-engine/src/model/operation/mergeoperation.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-engine/src/model/operation/markeroperation.js","webpack://OPEditor/./node_modules/lodash-es/isEqual.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-engine/src/model/operation/attributeoperation.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-engine/src/model/operation/nooperation.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-engine/src/model/operation/renameoperation.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-engine/src/model/operation/rootattributeoperation.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-engine/src/model/operation/rootoperation.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-engine/src/model/operation/operationfactory.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-engine/src/model/operation/transform.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-engine/src/model/liveposition.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-engine/src/model/batch.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-engine/src/model/differ.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-engine/src/model/history.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-engine/src/model/rootelement.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-engine/src/model/document.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-engine/src/model/markercollection.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-engine/src/model/operation/detachoperation.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-engine/src/model/documentfragment.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-engine/src/model/writer.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-engine/src/model/utils/deletecontent.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-engine/src/model/utils/getselectedcontent.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-engine/src/model/utils/insertcontent.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-engine/src/model/utils/insertobject.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-engine/src/model/utils/modifyselection.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-engine/src/model/model.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-engine/src/view/observer/clickobserver.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-engine/src/view/observer/mouseobserver.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-engine/src/view/observer/touchobserver.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-engine/src/view/upcastwriter.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-engine/src/view/styles/utils.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-engine/src/view/styles/background.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-engine/src/view/styles/border.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-engine/src/view/styles/padding.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-watchdog/src/watchdog.js","webpack://OPEditor/./node_modules/lodash-es/throttle.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-watchdog/src/utils/getsubnodes.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-watchdog/src/utils/areconnectedthroughproperties.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-watchdog/src/editorwatchdog.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-watchdog/src/contextwatchdog.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-core/src/commandcollection.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-core/src/editingkeystrokehandler.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-core/src/accessibility.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-core/src/editor/utils/editorusagedata.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-core/src/editor/editor.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-utils/src/crc32.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-core/src/editor/utils/elementapimixin.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-core/src/pendingactions.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-core/theme/icons/cancel.svg","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-core/src/index.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-core/theme/icons/bold.svg","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-core/theme/icons/caption.svg","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-core/theme/icons/check.svg","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-core/theme/icons/cog.svg","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-core/theme/icons/color-palette.svg","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-core/theme/icons/eraser.svg","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-core/theme/icons/history.svg","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-core/theme/icons/image.svg","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-core/theme/icons/image-upload.svg","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-core/theme/icons/image-asset-manager.svg","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-core/theme/icons/image-url.svg","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-core/theme/icons/low-vision.svg","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-core/theme/icons/text-alternative.svg","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-core/theme/icons/loupe.svg","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-core/theme/icons/previous-arrow.svg","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-core/theme/icons/next-arrow.svg","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-core/theme/icons/importexport.svg","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-core/theme/icons/paragraph.svg","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-core/theme/icons/plus.svg","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-core/theme/icons/text.svg","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-core/theme/icons/align-bottom.svg","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-core/theme/icons/align-middle.svg","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-core/theme/icons/align-top.svg","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-core/theme/icons/align-left.svg","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-core/theme/icons/align-center.svg","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-core/theme/icons/align-right.svg","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-core/theme/icons/align-justify.svg","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-core/theme/icons/object-inline-left.svg","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-core/theme/icons/object-center.svg","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-core/theme/icons/object-inline-right.svg","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-core/theme/icons/object-full-width.svg","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-core/theme/icons/object-inline.svg","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-core/theme/icons/object-left.svg","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-core/theme/icons/object-right.svg","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-core/theme/icons/object-size-custom.svg","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-core/theme/icons/object-size-full.svg","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-core/theme/icons/object-size-large.svg","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-core/theme/icons/object-size-small.svg","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-core/theme/icons/object-size-medium.svg","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-core/theme/icons/pencil.svg","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-core/theme/icons/pilcrow.svg","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-core/theme/icons/quote.svg","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-core/theme/icons/three-vertical-dots.svg","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-core/theme/icons/drag-indicator.svg","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-core/theme/icons/redo.svg","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-core/theme/icons/undo.svg","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-core/theme/icons/bulletedlist.svg","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-core/theme/icons/numberedlist.svg","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-core/theme/icons/todolist.svg","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-core/theme/icons/codeblock.svg","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-core/theme/icons/browse-files.svg","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-core/theme/icons/heading1.svg","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-core/theme/icons/heading2.svg","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-core/theme/icons/heading3.svg","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-core/theme/icons/heading4.svg","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-core/theme/icons/heading5.svg","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-core/theme/icons/heading6.svg","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-core/theme/icons/horizontalline.svg","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-core/theme/icons/html.svg","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-core/theme/icons/indent.svg","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-core/theme/icons/outdent.svg","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-core/theme/icons/table.svg","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-core/theme/icons/source.svg","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-core/theme/icons/remove.svg","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-core/theme/icons/bookmark.svg","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-core/theme/icons/bookmark_inline.svg","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-core/theme/icons/emoji.svg","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/src/viewcollection.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/src/template.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/theme/globals/globals.css?9ffd","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/src/view.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/src/bindings/clickoutsidehandler.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/src/bindings/csstransitiondisablermixin.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/src/bindings/submithandler.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/src/bindings/addkeyboardhandlingforgrid.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/theme/components/icon/icon.css?d134","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/src/icon/iconview.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/src/button/buttonlabelview.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/theme/components/button/button.css?e9d2","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/src/button/buttonview.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/theme/components/formheader/formheader.css?0cda","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/src/formheader/formheaderview.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/src/focuscycler.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/src/bindings/draggableviewmixin.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/theme/components/dialog/dialogactions.css?98ab","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/src/dialog/dialogactionsview.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/src/dialog/dialogcontentview.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/theme/components/dialog/dialog.css?d39a","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/src/dialog/dialogview.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/src/dialog/dialog.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/theme/components/button/listitembutton.css?0d4a","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/src/button/listitembuttonview.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/theme/components/menubar/menubarmenulistitembutton.css?13a9","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/src/menubar/menubarmenulistitembuttonview.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/theme/components/label/label.css?8d4e","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/src/label/labelview.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/src/editorui/accessibilityhelp/accessibilityhelpcontentview.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/theme/icons/accessibility.svg","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/theme/components/editorui/accessibilityhelp.css?98ae","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/src/editorui/accessibilityhelp/accessibilityhelp.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/src/editorui/bodycollection.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/theme/components/button/switchbutton.css?aaf0","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/src/button/switchbuttonview.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/src/button/filedialogbuttonview.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/theme/icons/dropdown-arrow.svg","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/theme/components/collapsible/collapsible.css?6641","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/src/collapsible/collapsibleview.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/src/colorgrid/utils.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/src/colorgrid/colortileview.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/theme/icons/color-tile-check.svg","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/theme/components/colorgrid/colorgrid.css?2704","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/src/colorgrid/colorgridview.js","webpack://OPEditor/./node_modules/color-parse/index.mjs","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/src/colorpicker/utils.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/theme/components/labeledfield/labeledfieldview.css?2832","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/src/labeledfield/labeledfieldview.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/src/input/inputbase.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/theme/components/input/input.css?edfa","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/src/input/inputview.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/src/inputtext/inputtextview.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/src/inputnumber/inputnumberview.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/theme/components/textarea/textarea.css?0f0e","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/src/dropdown/dropdownpanelview.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/theme/components/dropdown/dropdown.css?1880","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/src/dropdown/dropdownview.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/src/dropdown/button/dropdownbuttonview.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/theme/components/dropdown/menu/dropdownmenulistitembutton.css?f789","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/theme/components/dropdown/menu/dropdownmenubutton.css?c731","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/src/dropdown/menu/dropdownmenubuttonview.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/src/list/listitemview.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/src/list/listseparatorview.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/src/list/listitemgroupview.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/theme/components/list/list.css?cbd7","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/src/list/listview.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/src/dropdown/menu/dropdownmenulistview.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/src/dropdown/menu/utils.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/theme/components/dropdown/menu/dropdownmenulistitem.css?4ede","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/src/dropdown/menu/dropdownmenubehaviors.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/theme/components/panel/balloonpanel.css?7831","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/src/panel/balloon/balloonpanelview.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/theme/components/dropdown/menu/dropdownmenupanel.css?9831","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/src/dropdown/menu/dropdownmenunestedmenupanelview.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/theme/components/dropdown/menu/dropdownmenu.css?508e","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/src/dropdown/menu/dropdownmenunestedmenuview.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/src/toolbar/toolbarseparatorview.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/src/toolbar/toolbarlinebreakview.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/src/toolbar/normalizetoolbarconfig.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/theme/components/toolbar/toolbar.css?0211","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/src/toolbar/toolbarview.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/src/bindings/preventdefault.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/theme/components/dropdown/splitbutton.css?0497","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/src/dropdown/button/splitbuttonview.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/theme/components/dropdown/toolbardropdown.css?347c","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/theme/components/dropdown/listdropdown.css?1a4d","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/src/dropdown/utils.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/src/labeledfield/utils.js","webpack://OPEditor/./node_modules/vanilla-colorful/lib/utils/math.js","webpack://OPEditor/./node_modules/vanilla-colorful/lib/utils/convert.js","webpack://OPEditor/./node_modules/vanilla-colorful/lib/utils/compare.js","webpack://OPEditor/./node_modules/vanilla-colorful/lib/utils/dom.js","webpack://OPEditor/./node_modules/vanilla-colorful/lib/components/slider.js","webpack://OPEditor/./node_modules/vanilla-colorful/lib/components/hue.js","webpack://OPEditor/./node_modules/vanilla-colorful/lib/components/saturation.js","webpack://OPEditor/./node_modules/vanilla-colorful/lib/styles/color-picker.js","webpack://OPEditor/./node_modules/vanilla-colorful/lib/components/color-picker.js","webpack://OPEditor/./node_modules/vanilla-colorful/lib/styles/hue.js","webpack://OPEditor/./node_modules/vanilla-colorful/lib/styles/saturation.js","webpack://OPEditor/./node_modules/vanilla-colorful/lib/entrypoints/hex.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/theme/components/colorpicker/colorpicker.css?53be","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/src/colorpicker/colorpickerview.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/src/colorselector/documentcolorcollection.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/src/colorselector/colorgridsfragmentview.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/src/colorselector/colorpickerfragmentview.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/theme/components/colorselector/colorselector.css?0542","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/src/colorselector/colorselectorview.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/src/componentfactory.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/theme/components/tooltip/tooltip.css?a08c","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/src/tooltipmanager.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/src/badge/badge.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/src/editorui/poweredby.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/theme/icons/project-logo.svg","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/src/editorui/evaluationbadge.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/theme/components/arialiveannouncer/arialiveannouncer.css?5c0d","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/src/arialiveannouncer.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/theme/components/menubar/menubarmenulistitem.css?b7b4","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/src/menubar/menubarmenulistitemview.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/src/menubar/utils.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/src/editorui/editorui.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/theme/components/editorui/editorui.css?2a16","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/src/editorui/editoruiview.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/src/editableui/editableuiview.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/src/editableui/inline/inlineeditableuiview.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/src/notification/notification.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/src/model.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/theme/components/panel/balloonrotator.css?1baf","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/theme/components/panel/fakepanel.css?17b0","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/src/panel/balloon/contextualballoon.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/theme/components/panel/stickypanel.css?009d","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/src/search/text/searchtextqueryview.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/src/search/searchinfoview.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/src/search/searchresultsview.js","webpack://OPEditor/./node_modules/lodash-es/escapeRegExp.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/theme/components/search/search.css?6651","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/src/search/text/searchtextview.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/theme/components/autocomplete/autocomplete.css?7561","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/src/autocomplete/autocompleteview.js","webpack://OPEditor/./node_modules/lodash-es/_basePropertyOf.js","webpack://OPEditor/./node_modules/lodash-es/_escapeHtmlChar.js","webpack://OPEditor/./node_modules/lodash-es/escape.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/theme/components/highlightedtext/highlightedtext.css?87f2","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/theme/components/spinner/spinner.css?f1a9","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/theme/components/toolbar/blocktoolbar.css?45fd","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/theme/components/menubar/menubarmenubutton.css?b31e","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/src/menubar/menubarmenubuttonview.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/theme/components/menubar/menubarmenupanel.css?c89b","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/src/menubar/menubarmenupanelview.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/theme/components/menubar/menubarmenu.css?8588","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/src/menubar/menubarmenuview.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/src/menubar/menubarmenulistview.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/src/menubar/menubarmenulistitemfiledialogbuttonview.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/theme/components/menubar/menubar.css?a41b","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/src/menubar/menubarview.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-editor-decoupled/src/decouplededitorui.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-editor-decoupled/src/decouplededitoruiview.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-editor-decoupled/src/decouplededitor.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-utils/src/dom/getdatafromelement.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-core/src/editor/utils/securesourceelement.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-widget/src/highlightstack.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-widget/src/widgettypearound/utils.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-widget/theme/icons/drag-handle.svg","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-widget/src/utils.js","webpack://OPEditor/./src/plugins/op-macro-toc-plugin.js","webpack://OPEditor/./src/plugins/op-macro-embedded-table/utils.js","webpack://OPEditor/./src/plugins/op-context/op-context.js","webpack://OPEditor/./src/plugins/op-macro-embedded-table/embedded-table-editing.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-typing/src/utils/changebuffer.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-typing/src/inserttextcommand.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-typing/src/inserttextobserver.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-typing/src/input.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-typing/src/deletecommand.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-typing/src/deleteobserver.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-typing/src/delete.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-typing/src/typing.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-typing/src/utils/getlasttextline.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-typing/src/textwatcher.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-typing/src/twostepcaretmovement.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-typing/src/texttransformation.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-typing/src/utils/findattributerange.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-typing/src/utils/inlinehighlight.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-enter/src/utils.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-enter/src/entercommand.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-enter/src/enterobserver.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-enter/src/enter.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-enter/src/shiftentercommand.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-enter/src/shiftenter.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-widget/theme/widgettypearound.css?abb1","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-widget/src/widgettypearound/widgettypearound.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-widget/theme/icons/return-arrow.svg","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-widget/src/verticalnavigation.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-widget/theme/widget.css?47b7","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-widget/src/widget.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-widget/src/widgettoolbarrepository.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-widget/src/widgetresize/resizerstate.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-widget/src/widgetresize/sizeview.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-widget/src/widgetresize/resizer.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-widget/theme/widgetresize.css?24e6","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-widget/src/widgetresize.js","webpack://OPEditor/./src/helpers/create-toolbar-edit-button.js","webpack://OPEditor/./src/icons/edit.svg","webpack://OPEditor/./src/helpers/create-toolbar.js","webpack://OPEditor/./src/plugins/op-macro-embedded-table/embedded-table-toolbar.js","webpack://OPEditor/./src/plugins/op-macro-wp-button/utils.js","webpack://OPEditor/./src/plugins/op-macro-wp-button/op-macro-wp-button-editing.js","webpack://OPEditor/./src/plugins/op-macro-wp-button/op-macro-wp-button-toolbar.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-upload/src/filereader.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-upload/src/filerepository.js","webpack://OPEditor/./src/plugins/op-upload-resource-adapter.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-clipboard/src/clipboardobserver.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-clipboard/src/utils/viewtoplaintext.js","webpack://OPEditor/./node_modules/lodash-es/_baseForOwn.js","webpack://OPEditor/./node_modules/lodash-es/_baseIsMatch.js","webpack://OPEditor/./node_modules/lodash-es/_isStrictComparable.js","webpack://OPEditor/./node_modules/lodash-es/_getMatchData.js","webpack://OPEditor/./node_modules/lodash-es/_matchesStrictComparable.js","webpack://OPEditor/./node_modules/lodash-es/_baseMatches.js","webpack://OPEditor/./node_modules/lodash-es/_baseHasIn.js","webpack://OPEditor/./node_modules/lodash-es/_hasPath.js","webpack://OPEditor/./node_modules/lodash-es/hasIn.js","webpack://OPEditor/./node_modules/lodash-es/_baseMatchesProperty.js","webpack://OPEditor/./node_modules/lodash-es/_baseProperty.js","webpack://OPEditor/./node_modules/lodash-es/_basePropertyDeep.js","webpack://OPEditor/./node_modules/lodash-es/property.js","webpack://OPEditor/./node_modules/lodash-es/_baseIteratee.js","webpack://OPEditor/./node_modules/lodash-es/mapValues.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-clipboard/src/clipboardmarkersutils.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-clipboard/src/clipboardpipeline.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-clipboard/src/utils/normalizeclipboarddata.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-clipboard/src/utils/plaintexttohtml.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-clipboard/src/lineview.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-clipboard/src/dragdroptarget.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-clipboard/src/dragdropblocktoolbar.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-clipboard/theme/clipboard.css?0a95","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-clipboard/src/dragdrop.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-clipboard/src/pasteplaintext.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-clipboard/src/clipboard.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-undo/src/basecommand.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-undo/src/undocommand.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-undo/src/redocommand.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-undo/src/undoediting.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-undo/src/undoui.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-undo/src/undo.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-image/src/image/utils.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-image/src/imageutils.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-image/src/autoimage.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-image/src/imagetextalternative/imagetextalternativecommand.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-image/src/imagetextalternative/imagetextalternativeediting.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-image/theme/textalternativeform.css?66f4","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/theme/components/responsive-form/responsiveform.css?7101","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-image/src/imagetextalternative/ui/textalternativeformview.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-image/src/image/ui/utils.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-image/src/imagetextalternative/imagetextalternativeui.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-image/src/imagetextalternative.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-image/src/image/converters.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-image/src/image/imageloadobserver.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-image/src/image/insertimagecommand.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-image/src/image/replaceimagesourcecommand.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-image/src/image/imageediting.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-image/src/imagesizeattributes.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-image/src/image/imagetypecommand.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-image/theme/imageplaceholder.css?d310","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-image/src/image/imageplaceholder.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-image/src/image/imageblockediting.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-image/theme/imageinsert.css?2fb5","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-image/src/imageinsert/ui/imageinsertformview.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-image/src/imageinsert/imageinsertui.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-image/theme/image.css?5c96","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-image/src/image/imageinlineediting.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-image/src/imagecaption/imagecaptionutils.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-image/src/imagecaption/toggleimagecaptioncommand.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-image/src/imagecaption/imagecaptionediting.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-image/src/imagecaption/imagecaptionui.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-image/theme/imagecaption.css?5152","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-image/src/imageupload/utils.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-image/src/imageupload/imageuploadui.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-image/theme/imageuploadprogress.css?72d0","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-image/theme/imageuploadicon.css?b791","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-image/theme/imageuploadloader.css?3f3f","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-image/src/imageupload/imageuploadprogress.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-image/src/imageupload/uploadimagecommand.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-image/src/imageupload/imageuploadediting.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-image/src/imageupload.js","webpack://OPEditor/./node_modules/lodash-es/_baseEach.js","webpack://OPEditor/./node_modules/lodash-es/_createBaseEach.js","webpack://OPEditor/./node_modules/lodash-es/_baseMap.js","webpack://OPEditor/./node_modules/lodash-es/map.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-image/src/imageresize/resizeimagecommand.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-image/src/imageresize/imageresizeediting.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-image/src/imageresize/imageresizebuttons.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-image/src/imageresize/imageresizehandles.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-image/src/imageresize/utils/tryparsedimensionwithunit.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-image/src/imageresize/utils/getselectedimageeditornodes.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-image/theme/imagecustomresizeform.css?6f6c","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-image/src/imageresize/ui/imagecustomresizeformview.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-image/src/imageresize/imagecustomresizeui.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-image/src/imageresize/utils/getselectedimagewidthinunits.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-image/src/imageresize/utils/getselectedimagepossibleresizerange.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-image/theme/imageresize.css?a8fb","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-image/src/imagestyle/imagestylecommand.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-image/src/imagestyle/utils.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-image/src/imagestyle/converters.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-image/src/imagestyle/imagestyleediting.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-image/theme/imagestyle.css?a152","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-image/src/imagestyle/imagestyleui.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-image/src/imagetoolbar.js","webpack://OPEditor/./src/plugins/op-macro-child-pages/utils.js","webpack://OPEditor/./src/plugins/op-macro-child-pages/op-macro-child-pages-editing.js","webpack://OPEditor/./src/plugins/op-macro-child-pages/op-macro-child-pages-toolbar.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-select-all/src/selectallcommand.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-select-all/src/selectallediting.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-select-all/src/selectallui.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-select-all/theme/icons/select-all.svg","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-select-all/src/selectall.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-adapter-ckfinder/src/utils.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-adapter-ckfinder/src/uploadadapter.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-autoformat/src/blockautoformatediting.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-autoformat/src/inlineautoformatediting.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-autoformat/src/autoformat.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-basic-styles/src/attributecommand.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-basic-styles/src/bold/boldediting.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-basic-styles/src/utils.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-basic-styles/src/bold/boldui.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-basic-styles/src/code/codeediting.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-basic-styles/theme/code.css?83c4","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-basic-styles/src/code/codeui.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-basic-styles/theme/icons/code.svg","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-basic-styles/src/italic/italicediting.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-basic-styles/theme/icons/italic.svg","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-basic-styles/src/italic/italicui.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-basic-styles/src/strikethrough/strikethroughediting.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-basic-styles/theme/icons/strikethrough.svg","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-basic-styles/src/strikethrough/strikethroughui.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-block-quote/src/blockquotecommand.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-block-quote/src/blockquoteediting.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-block-quote/theme/blockquote.css?66ed","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-block-quote/src/blockquoteui.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-paragraph/src/paragraphcommand.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-paragraph/src/insertparagraphcommand.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-paragraph/src/paragraph.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-heading/src/headingcommand.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-heading/src/headingediting.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-heading/theme/heading.css?2b0a","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-heading/src/headingui.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-heading/src/utils.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-heading/src/title.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-link/src/utils/automaticdecorators.js","webpack://OPEditor/./node_modules/lodash-es/_castSlice.js","webpack://OPEditor/./node_modules/lodash-es/_hasUnicode.js","webpack://OPEditor/./node_modules/lodash-es/_asciiToArray.js","webpack://OPEditor/./node_modules/lodash-es/_unicodeToArray.js","webpack://OPEditor/./node_modules/lodash-es/_stringToArray.js","webpack://OPEditor/./node_modules/lodash-es/upperFirst.js","webpack://OPEditor/./node_modules/lodash-es/_createCaseFirst.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-link/src/utils.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-link/src/linkcommand.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-link/src/unlinkcommand.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-link/src/utils/manualdecorator.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-link/theme/link.css?4da5","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-link/src/linkediting.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-link/theme/linkform.css?837e","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-link/src/ui/linkformview.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-link/theme/linkactions.css?b997","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-link/src/ui/linkactionsview.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-link/theme/icons/unlink.svg","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-link/theme/icons/link.svg","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-link/src/linkui.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-link/src/autolink.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-link/theme/linkimage.css?843b","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-list/src/list/utils/listwalker.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-list/src/list/utils/model.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-list/src/list/listindentcommand.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-list/src/list/listcommand.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-list/src/list/listmergecommand.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-list/src/list/listsplitcommand.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-list/src/list/listutils.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-list/src/list/utils/view.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-list/src/list/utils/postfixers.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-list/src/list/converters.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-list/theme/documentlist.css?0954","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-list/theme/list.css?ef70","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-list/src/list/listediting.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-list/src/list/utils.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-list/src/list/listui.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-list/src/list.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-list/src/listproperties/utils/style.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-list/theme/listproperties.css?c6ab","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-list/theme/liststyles.css?4c65","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-list/src/todolist/checktodolistcommand.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-list/src/todolist/todocheckboxchangeobserver.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-list/src/todolist/todolistediting.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-list/src/todolist/todolistui.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-list/theme/todolist.css?1468","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-list/src/todolist.js","webpack://OPEditor/./src/icons/code-block.svg","webpack://OPEditor/./src/plugins/code-block/widget.js","webpack://OPEditor/./src/plugins/code-block/click-observer.js","webpack://OPEditor/./src/plugins/code-block/code-block-editing.js","webpack://OPEditor/./src/plugins/code-block/converters.js","webpack://OPEditor/./src/plugins/code-block/code-block-toolbar.js","webpack://OPEditor/./src/helpers/button-disabler.js","webpack://OPEditor/./node_modules/@rails/request.js/src/fetch_response.js","webpack://OPEditor/./node_modules/@rails/request.js/src/request_interceptor.js","webpack://OPEditor/./node_modules/@rails/request.js/src/lib/utils.js","webpack://OPEditor/./node_modules/@rails/request.js/src/fetch_request.js","webpack://OPEditor/./node_modules/@rails/request.js/src/verbs.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-table/src/converters/tableproperties.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-table/src/utils/common.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-table/src/converters/upcasttable.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-table/src/tablewalker.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-table/src/converters/downcast.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-table/src/commands/inserttablecommand.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-table/src/commands/insertrowcommand.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-table/src/commands/insertcolumncommand.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-table/src/commands/splitcellcommand.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-table/src/utils/structure.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-table/src/commands/mergecellcommand.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-table/src/commands/removerowcommand.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-table/src/commands/removecolumncommand.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-table/src/commands/setheaderrowcommand.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-table/src/commands/setheadercolumncommand.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-table/src/tablecolumnresize/utils.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-table/src/tableutils.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-table/src/commands/mergecellscommand.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-table/src/commands/selectrowcommand.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-table/src/commands/selectcolumncommand.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-table/src/converters/table-layout-post-fixer.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-table/src/converters/table-cell-paragraph-post-fixer.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-table/src/converters/table-cell-refresh-handler.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-table/theme/tableediting.css?183a","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-table/src/tableediting.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-table/src/converters/table-headings-refresh-handler.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-table/theme/inserttable.css?8f02","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-table/src/ui/inserttableview.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-table/src/tableui.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-table/theme/icons/table-column.svg","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-table/theme/icons/table-row.svg","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-table/theme/icons/table-merge-cell.svg","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-table/theme/tableselection.css?52d0","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-table/src/tableselection.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-table/src/tableclipboard.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-table/src/tablekeyboard.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-table/src/tablemouse/mouseeventsobserver.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-table/src/tablemouse.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-table/theme/table.css?7a76","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-table/src/utils/ui/widget.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-table/theme/colorinput.css?a66f","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-table/src/ui/colorinputview.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-table/src/utils/ui/table-properties.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-table/theme/formrow.css?e9c9","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-table/src/ui/formrowview.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-table/theme/form.css?9b02","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-table/theme/tableform.css?4fab","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-table/theme/tablecellproperties.css?861e","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-table/src/tablecellproperties/ui/tablecellpropertiesview.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-table/src/utils/ui/contextualballoon.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-table/src/utils/table-properties.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-table/src/tablecellproperties/tablecellpropertiesui.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-table/theme/icons/table-cell-properties.svg","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-table/src/tablecellproperties/commands/tablecellpropertycommand.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-table/src/tablecellwidth/commands/tablecellwidthcommand.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-table/src/tablecellwidth/tablecellwidthediting.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-table/src/tablecellproperties/commands/tablecellpaddingcommand.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-table/src/tablecellproperties/commands/tablecellheightcommand.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-table/src/tablecellproperties/commands/tablecellbackgroundcolorcommand.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-table/src/tablecellproperties/commands/tablecellverticalalignmentcommand.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-table/src/tablecellproperties/commands/tablecellhorizontalalignmentcommand.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-table/src/tablecellproperties/commands/tablecellborderstylecommand.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-table/src/tablecellproperties/commands/tablecellbordercolorcommand.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-table/src/tablecellproperties/commands/tablecellborderwidthcommand.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-table/src/tablecellproperties/tablecellpropertiesediting.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-table/src/tableproperties/commands/tablepropertycommand.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-table/src/tableproperties/commands/tablebackgroundcolorcommand.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-table/src/tableproperties/commands/tablebordercolorcommand.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-table/src/tableproperties/commands/tableborderstylecommand.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-table/src/tableproperties/commands/tableborderwidthcommand.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-table/src/tableproperties/commands/tablewidthcommand.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-table/src/tableproperties/commands/tableheightcommand.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-table/src/tableproperties/commands/tablealignmentcommand.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-table/src/tableproperties/tablepropertiesediting.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-table/theme/tableproperties.css?db5b","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-table/src/tableproperties/ui/tablepropertiesview.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-table/theme/icons/table-properties.svg","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-table/src/tableproperties/tablepropertiesui.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-table/theme/tablecaption.css?b30e","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-table/theme/tablecolumnresize.css?9b35","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-paste-from-office/src/filters/utils.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-paste-from-office/src/filters/list.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-paste-from-office/src/filters/image.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-paste-from-office/src/normalizers/mswordnormalizer.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-paste-from-office/src/filters/bookmark.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-paste-from-office/src/filters/removemsattributes.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-paste-from-office/src/filters/br.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-paste-from-office/src/normalizers/googledocsnormalizer.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-paste-from-office/src/filters/removeboldwrapper.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-paste-from-office/src/normalizers/googlesheetsnormalizer.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-paste-from-office/src/filters/removegooglesheetstag.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-paste-from-office/src/filters/removexmlns.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-paste-from-office/src/filters/removeinvalidtablewidth.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-paste-from-office/src/filters/removestyleblock.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-paste-from-office/src/filters/space.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-paste-from-office/src/filters/parse.js","webpack://OPEditor/./node_modules/turndown-plugin-gfm/lib/turndown-plugin-gfm.es.js","webpack://OPEditor/./node_modules/turndown/lib/turndown.browser.es.js","webpack://OPEditor/./src/commonmark/utils/preprocessor.js","webpack://OPEditor/./src/commonmark/utils/page-breaks.js","webpack://OPEditor/./node_modules/mdurl/lib/decode.mjs","webpack://OPEditor/./node_modules/mdurl/lib/encode.mjs","webpack://OPEditor/./node_modules/mdurl/lib/format.mjs","webpack://OPEditor/./node_modules/mdurl/lib/parse.mjs","webpack://OPEditor/./node_modules/uc.micro/categories/P/regex.mjs","webpack://OPEditor/./node_modules/uc.micro/categories/S/regex.mjs","webpack://OPEditor/./node_modules/uc.micro/properties/Any/regex.mjs","webpack://OPEditor/./node_modules/uc.micro/categories/Cc/regex.mjs","webpack://OPEditor/./node_modules/uc.micro/categories/Cf/regex.mjs","webpack://OPEditor/./node_modules/uc.micro/categories/Z/regex.mjs","webpack://OPEditor/./node_modules/entities/lib/esm/generated/decode-data-html.js","webpack://OPEditor/./node_modules/entities/lib/esm/generated/decode-data-xml.js","webpack://OPEditor/./node_modules/entities/lib/esm/decode_codepoint.js","webpack://OPEditor/./node_modules/entities/lib/esm/decode.js","webpack://OPEditor/./node_modules/entities/lib/esm/generated/encode-html.js","webpack://OPEditor/./node_modules/entities/lib/esm/escape.js","webpack://OPEditor/./node_modules/entities/lib/esm/index.js","webpack://OPEditor/./node_modules/markdown-it/lib/common/utils.mjs","webpack://OPEditor/./node_modules/markdown-it/lib/helpers/parse_link_label.mjs","webpack://OPEditor/./node_modules/markdown-it/lib/helpers/parse_link_destination.mjs","webpack://OPEditor/./node_modules/markdown-it/lib/helpers/parse_link_title.mjs","webpack://OPEditor/./node_modules/markdown-it/lib/renderer.mjs","webpack://OPEditor/./node_modules/markdown-it/lib/ruler.mjs","webpack://OPEditor/./node_modules/markdown-it/lib/token.mjs","webpack://OPEditor/./node_modules/markdown-it/lib/rules_core/state_core.mjs","webpack://OPEditor/./node_modules/markdown-it/lib/rules_core/normalize.mjs","webpack://OPEditor/./node_modules/markdown-it/lib/rules_core/linkify.mjs","webpack://OPEditor/./node_modules/markdown-it/lib/rules_core/replacements.mjs","webpack://OPEditor/./node_modules/markdown-it/lib/rules_core/smartquotes.mjs","webpack://OPEditor/./node_modules/markdown-it/lib/parser_core.mjs","webpack://OPEditor/./node_modules/markdown-it/lib/rules_core/block.mjs","webpack://OPEditor/./node_modules/markdown-it/lib/rules_core/inline.mjs","webpack://OPEditor/./node_modules/markdown-it/lib/rules_core/text_join.mjs","webpack://OPEditor/./node_modules/markdown-it/lib/rules_block/state_block.mjs","webpack://OPEditor/./node_modules/markdown-it/lib/rules_block/table.mjs","webpack://OPEditor/./node_modules/markdown-it/lib/rules_block/list.mjs","webpack://OPEditor/./node_modules/markdown-it/lib/common/html_blocks.mjs","webpack://OPEditor/./node_modules/markdown-it/lib/common/html_re.mjs","webpack://OPEditor/./node_modules/markdown-it/lib/rules_block/html_block.mjs","webpack://OPEditor/./node_modules/markdown-it/lib/parser_block.mjs","webpack://OPEditor/./node_modules/markdown-it/lib/rules_block/code.mjs","webpack://OPEditor/./node_modules/markdown-it/lib/rules_block/fence.mjs","webpack://OPEditor/./node_modules/markdown-it/lib/rules_block/blockquote.mjs","webpack://OPEditor/./node_modules/markdown-it/lib/rules_block/hr.mjs","webpack://OPEditor/./node_modules/markdown-it/lib/rules_block/reference.mjs","webpack://OPEditor/./node_modules/markdown-it/lib/rules_block/heading.mjs","webpack://OPEditor/./node_modules/markdown-it/lib/rules_block/lheading.mjs","webpack://OPEditor/./node_modules/markdown-it/lib/rules_block/paragraph.mjs","webpack://OPEditor/./node_modules/markdown-it/lib/rules_inline/state_inline.mjs","webpack://OPEditor/./node_modules/markdown-it/lib/rules_inline/text.mjs","webpack://OPEditor/./node_modules/markdown-it/lib/rules_inline/linkify.mjs","webpack://OPEditor/./node_modules/markdown-it/lib/rules_inline/escape.mjs","webpack://OPEditor/./node_modules/markdown-it/lib/rules_inline/strikethrough.mjs","webpack://OPEditor/./node_modules/markdown-it/lib/rules_inline/emphasis.mjs","webpack://OPEditor/./node_modules/markdown-it/lib/rules_inline/autolink.mjs","webpack://OPEditor/./node_modules/markdown-it/lib/rules_inline/entity.mjs","webpack://OPEditor/./node_modules/markdown-it/lib/rules_inline/balance_pairs.mjs","webpack://OPEditor/./node_modules/markdown-it/lib/parser_inline.mjs","webpack://OPEditor/./node_modules/markdown-it/lib/rules_inline/newline.mjs","webpack://OPEditor/./node_modules/markdown-it/lib/rules_inline/backticks.mjs","webpack://OPEditor/./node_modules/markdown-it/lib/rules_inline/link.mjs","webpack://OPEditor/./node_modules/markdown-it/lib/rules_inline/image.mjs","webpack://OPEditor/./node_modules/markdown-it/lib/rules_inline/html_inline.mjs","webpack://OPEditor/./node_modules/markdown-it/lib/rules_inline/fragments_join.mjs","webpack://OPEditor/./node_modules/linkify-it/index.mjs","webpack://OPEditor/./node_modules/linkify-it/lib/re.mjs","webpack://OPEditor/./node_modules/punycode.js/punycode.es6.js","webpack://OPEditor/./node_modules/markdown-it/lib/index.mjs","webpack://OPEditor/./node_modules/markdown-it/lib/presets/default.mjs","webpack://OPEditor/./node_modules/markdown-it/lib/presets/zero.mjs","webpack://OPEditor/./node_modules/markdown-it/lib/presets/commonmark.mjs","webpack://OPEditor/./src/commonmark/commonmarkdataprocessor.js","webpack://OPEditor/./src/commonmark/utils/fix-tasklist-whitespaces.js","webpack://OPEditor/./src/commonmark/utils/fix-breaks.js","webpack://OPEditor/./src/commonmark/utils/hoist-task-list-checkboxes.js","webpack://OPEditor/./src/icons/source.svg","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-mention/src/mentioncommand.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-mention/src/mentionediting.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-mention/theme/mentionui.css?c111","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-mention/src/ui/mentionsview.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-mention/src/ui/domwrapperview.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-mention/src/ui/mentionlistitemview.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-mention/src/mentionui.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-mention/theme/mention.css?d8de","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-page-break/src/pagebreakcommand.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-page-break/theme/pagebreak.css?7ae9","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-page-break/src/pagebreakediting.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-page-break/src/pagebreakui.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-page-break/theme/icons/pagebreak.svg","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-autosave/src/autosave.js","webpack://OPEditor/./src/plugins/op-content-revisions/utils.js","webpack://OPEditor/./src/plugins/op-content-revisions/storage.js","webpack://OPEditor/./src/plugins/op-content-revisions/ui.js","webpack://OPEditor/./src/icons/revisions.svg","webpack://OPEditor/./src/plugins/op-content-revisions/command.js","webpack://OPEditor/./src/plugins/op-content-revisions/op-content-revisions.js","webpack://OPEditor/./src/op-plugins.js","webpack://OPEditor/./src/plugins/op-macro-embedded-table/embedded-table-plugin.js","webpack://OPEditor/./src/plugins/op-macro-wp-button/op-macro-wp-button-plugin.js","webpack://OPEditor/./src/plugins/op-macro-child-pages/op-macro-child-pages-plugin.js","webpack://OPEditor/./src/plugins/op-upload-plugin.js","webpack://OPEditor/./src/plugins/op-attachment-listener-plugin.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-essentials/src/essentials.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-basic-styles/src/bold.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-basic-styles/src/code.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-basic-styles/src/italic.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-basic-styles/src/strikethrough.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-block-quote/src/blockquote.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-heading/src/heading.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-image/src/imageblock.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-image/src/imageinline.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-image/src/imagecaption.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-image/src/imagestyle.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-image/src/imageresize.js","webpack://OPEditor/./src/plugins/op-image-attachment-lookup/op-image-attachment-lookup-plugin.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-link/src/link.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-page-break/src/pagebreak.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-mention/src/mention.js","webpack://OPEditor/./src/mentions/mentions-caster.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-paste-from-office/src/pastefromoffice.js","webpack://OPEditor/./src/plugins/op-help-link-plugin/op-help-link-plugin.js","webpack://OPEditor/./src/icons/help.svg","webpack://OPEditor/./src/plugins/op-preview.plugin.js","webpack://OPEditor/./src/icons/preview.svg","webpack://OPEditor/./src/plugins/op-source-code.plugin.js","webpack://OPEditor/./src/icons/wysiwyg.svg","webpack://OPEditor/./src/plugins/code-block/code-block.js","webpack://OPEditor/./src/commonmark/commonmark.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-table/src/table.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-table/src/tabletoolbar.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-table/src/tableproperties.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-table/src/tablecellproperties.js","webpack://OPEditor/./src/plugins/op-macro-list-plugin.js","webpack://OPEditor/./src/plugins/op-custom-css-classes-plugin.js","webpack://OPEditor/./src/mentions/work-package-mentions.js","webpack://OPEditor/./src/mentions/mentions-item-renderer.js","webpack://OPEditor/./src/op-ckeditor-config.js","webpack://OPEditor/./src/mentions/user-mentions.js","webpack://OPEditor/./src/mentions/emoji-mentions.js","webpack://OPEditor/./src/op-config-customizer.js","webpack://OPEditor/./src/op-ckeditor.js"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"OPEditor\"] = factory();\n\telse\n\t\troot[\"OPEditor\"] = factory();\n})(self, () => {\nreturn ","var getProto = Object.getPrototypeOf ? (obj) => (Object.getPrototypeOf(obj)) : (obj) => (obj.__proto__);\nvar leafPrototypes;\n// create a fake namespace object\n// mode & 1: value is a module id, require it\n// mode & 2: merge all properties of value into the ns\n// mode & 4: return value when already ns object\n// mode & 16: return value when it's Promise-like\n// mode & 8|1: behave like require\n__webpack_require__.t = function(value, mode) {\n\tif(mode & 1) value = this(value);\n\tif(mode & 8) return value;\n\tif(typeof value === 'object' && value) {\n\t\tif((mode & 4) && value.__esModule) return value;\n\t\tif((mode & 16) && typeof value.then === 'function') return value;\n\t}\n\tvar ns = Object.create(null);\n\t__webpack_require__.r(ns);\n\tvar def = {};\n\tleafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];\n\tfor(var current = mode & 2 && value; typeof current == 'object' && !~leafPrototypes.indexOf(current); current = getProto(current)) {\n\t\tObject.getOwnPropertyNames(current).forEach((key) => (def[key] = () => (value[key])));\n\t}\n\tdef['default'] = () => (value);\n\t__webpack_require__.d(ns, def);\n\treturn ns;\n};","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.ck.ck-menu-bar__menu{display:block;font-size:inherit;position:relative}.ck.ck-menu-bar__menu.ck-menu-bar__menu_top-level{max-width:100%}`, \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/components/menubar/menubarmenu.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-ui/components/menubar/menubarmenu.css\"],\"names\":[],\"mappings\":\"AAKA,sBACC,aAAc,CCCd,iBAAkB,CDAlB,iBACD,CCCC,kDACC,cACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n.ck.ck-menu-bar__menu {\\n\\tdisplay: block;\\n\\tposition: relative;\\n}\\n\",\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n.ck.ck-menu-bar__menu {\\n\\t/* Enable font size inheritance, which allows fluid UI scaling. */\\n\\tfont-size: inherit;\\n\\n\\t&.ck-menu-bar__menu_top-level {\\n\\t\\tmax-width: 100%;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.ck.ck-toolbar{align-items:center;display:flex;flex-flow:row nowrap;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none}.ck.ck-toolbar>.ck-toolbar__items{align-items:center;display:flex;flex-flow:row wrap;flex-grow:1}.ck.ck-toolbar .ck.ck-toolbar__separator{display:inline-block}.ck.ck-toolbar .ck.ck-toolbar__separator:first-child,.ck.ck-toolbar .ck.ck-toolbar__separator:last-child{display:none}.ck.ck-toolbar .ck-toolbar__line-break{flex-basis:100%}.ck.ck-toolbar.ck-toolbar_grouping>.ck-toolbar__items{flex-wrap:nowrap}.ck.ck-toolbar.ck-toolbar_vertical>.ck-toolbar__items{flex-direction:column}.ck.ck-toolbar.ck-toolbar_floating>.ck-toolbar__items{flex-wrap:nowrap}.ck.ck-toolbar>.ck.ck-toolbar__grouped-dropdown>.ck-dropdown__button .ck-dropdown__arrow{display:none}.ck.ck-toolbar{background:var(--ck-color-toolbar-background);border:1px solid var(--ck-color-toolbar-border);border-radius:0;padding:0 var(--ck-spacing-small)}.ck-rounded-corners .ck.ck-toolbar,.ck.ck-toolbar.ck-rounded-corners{border-radius:var(--ck-border-radius)}.ck.ck-toolbar .ck.ck-toolbar__separator{background:var(--ck-color-toolbar-border);height:var(--ck-icon-size);margin-bottom:var(--ck-spacing-small);margin-top:var(--ck-spacing-small);min-width:1px;width:1px}.ck.ck-toolbar .ck-toolbar__line-break{height:0}.ck.ck-toolbar>.ck-toolbar__items>:not(.ck-toolbar__line-break){margin-right:var(--ck-spacing-small)}.ck.ck-toolbar>.ck-toolbar__items:empty+.ck.ck-toolbar__separator{display:none}.ck.ck-toolbar>.ck-toolbar__items>:not(.ck-toolbar__line-break),.ck.ck-toolbar>.ck.ck-toolbar__grouped-dropdown{margin-bottom:var(--ck-spacing-small);margin-top:var(--ck-spacing-small)}.ck.ck-toolbar.ck-toolbar_vertical{padding:0}.ck.ck-toolbar.ck-toolbar_vertical>.ck-toolbar__items>.ck{border-radius:0;margin:0;width:100%}.ck.ck-toolbar.ck-toolbar_compact{padding:0}.ck.ck-toolbar.ck-toolbar_compact>.ck-toolbar__items>*{margin:0}.ck.ck-toolbar.ck-toolbar_compact>.ck-toolbar__items>:not(:first-child):not(:last-child){border-radius:0}.ck.ck-toolbar>.ck.ck-toolbar__grouped-dropdown>.ck.ck-button.ck-dropdown__button{padding-left:var(--ck-spacing-tiny)}.ck.ck-toolbar .ck-toolbar__nested-toolbar-dropdown>.ck-dropdown__panel{min-width:auto}.ck.ck-toolbar .ck-toolbar__nested-toolbar-dropdown>.ck-button>.ck-button__label{max-width:7em;width:auto}.ck.ck-toolbar:focus{outline:none}.ck-toolbar-container .ck.ck-toolbar{border:0}.ck.ck-toolbar[dir=rtl]>.ck-toolbar__items>.ck,[dir=rtl] .ck.ck-toolbar>.ck-toolbar__items>.ck{margin-right:0}.ck.ck-toolbar[dir=rtl]:not(.ck-toolbar_compact)>.ck-toolbar__items>.ck,[dir=rtl] .ck.ck-toolbar:not(.ck-toolbar_compact)>.ck-toolbar__items>.ck{margin-left:var(--ck-spacing-small)}.ck.ck-toolbar[dir=rtl]>.ck-toolbar__items>.ck:last-child,[dir=rtl] .ck.ck-toolbar>.ck-toolbar__items>.ck:last-child{margin-left:0}.ck.ck-toolbar.ck-toolbar_compact[dir=rtl]>.ck-toolbar__items>.ck:first-child,[dir=rtl] .ck.ck-toolbar.ck-toolbar_compact>.ck-toolbar__items>.ck:first-child{border-bottom-left-radius:0;border-top-left-radius:0}.ck.ck-toolbar.ck-toolbar_compact[dir=rtl]>.ck-toolbar__items>.ck:last-child,[dir=rtl] .ck.ck-toolbar.ck-toolbar_compact>.ck-toolbar__items>.ck:last-child{border-bottom-right-radius:0;border-top-right-radius:0}.ck.ck-toolbar.ck-toolbar_grouping[dir=rtl]>.ck-toolbar__items:not(:empty):not(:only-child),.ck.ck-toolbar[dir=rtl]>.ck.ck-toolbar__separator,[dir=rtl] .ck.ck-toolbar.ck-toolbar_grouping>.ck-toolbar__items:not(:empty):not(:only-child),[dir=rtl] .ck.ck-toolbar>.ck.ck-toolbar__separator{margin-left:var(--ck-spacing-small)}.ck.ck-toolbar[dir=ltr]>.ck-toolbar__items>.ck:last-child,[dir=ltr] .ck.ck-toolbar>.ck-toolbar__items>.ck:last-child{margin-right:0}.ck.ck-toolbar.ck-toolbar_compact[dir=ltr]>.ck-toolbar__items>.ck:first-child,[dir=ltr] .ck.ck-toolbar.ck-toolbar_compact>.ck-toolbar__items>.ck:first-child{border-bottom-right-radius:0;border-top-right-radius:0}.ck.ck-toolbar.ck-toolbar_compact[dir=ltr]>.ck-toolbar__items>.ck:last-child,[dir=ltr] .ck.ck-toolbar.ck-toolbar_compact>.ck-toolbar__items>.ck:last-child{border-bottom-left-radius:0;border-top-left-radius:0}.ck.ck-toolbar.ck-toolbar_grouping[dir=ltr]>.ck-toolbar__items:not(:empty):not(:only-child),.ck.ck-toolbar[dir=ltr]>.ck.ck-toolbar__separator,[dir=ltr] .ck.ck-toolbar.ck-toolbar_grouping>.ck-toolbar__items:not(:empty):not(:only-child),[dir=ltr] .ck.ck-toolbar>.ck.ck-toolbar__separator{margin-right:var(--ck-spacing-small)}`, \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/components/toolbar/toolbar.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/mixins/_unselectable.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-ui/components/toolbar/toolbar.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/mixins/_rounded.css\"],\"names\":[],\"mappings\":\"AAOA,eAKC,kBAAmB,CAFnB,YAAa,CACb,oBAAqB,CCFrB,qBAAsB,CACtB,wBAAyB,CACzB,oBAAqB,CACrB,gBD6CD,CA3CC,kCAGC,kBAAmB,CAFnB,YAAa,CACb,kBAAmB,CAEnB,WAED,CAEA,yCACC,oBAWD,CAJC,yGAEC,YACD,CAGD,uCACC,eACD,CAEA,sDACC,gBACD,CAEA,sDACC,qBACD,CAEA,sDACC,gBACD,CAGC,yFACC,YACD,CE/CF,eAGC,6CAA8C,CAE9C,+CAAgD,CCFhD,eAAgB,CDChB,iCAuGD,CCtGC,qEAEC,qCAED,CDFA,yCAIC,yCAA0C,CAH1C,0BAA2B,CAU3B,qCAAsC,CADtC,kCAAmC,CAPnC,aAAc,CADd,SAUD,CAEA,uCACC,QACD,CAGC,gEAEC,oCACD,CAIA,kEACC,YACD,CAGD,gHAIC,qCAAsC,CADtC,kCAED,CAEA,mCAEC,SAaD,CAVC,0DAQC,eAAgB,CAHhB,QAAS,CAHT,UAOD,CAGD,kCAEC,SAWD,CATC,uDAEC,QAMD,CAHC,yFACC,eACD,CASD,kFACC,mCACD,CAMA,wEACC,cACD,CAEA,iFACC,aAAc,CACd,UACD,CAGD,qBACC,YACD,CAEA,qCACC,QACD,CAaA,+FACC,cACD,CAEA,iJAEC,mCACD,CAEA,qHACC,aACD,CAIC,6JAEC,2BAA4B,CAD5B,wBAED,CAGA,2JAEC,4BAA6B,CAD7B,yBAED,CASD,8RACC,mCACD,CAWA,qHACC,cACD,CAIC,6JAEC,4BAA6B,CAD7B,yBAED,CAGA,2JAEC,2BAA4B,CAD5B,wBAED,CASD,8RACC,oCACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n@import \\\"../../mixins/_unselectable.css\\\";\\n\\n.ck.ck-toolbar {\\n\\t@mixin ck-unselectable;\\n\\n\\tdisplay: flex;\\n\\tflex-flow: row nowrap;\\n\\talign-items: center;\\n\\n\\t& > .ck-toolbar__items {\\n\\t\\tdisplay: flex;\\n\\t\\tflex-flow: row wrap;\\n\\t\\talign-items: center;\\n\\t\\tflex-grow: 1;\\n\\n\\t}\\n\\n\\t& .ck.ck-toolbar__separator {\\n\\t\\tdisplay: inline-block;\\n\\n\\t\\t/*\\n\\t\\t * A leading or trailing separator makes no sense (separates from nothing on one side).\\n\\t\\t * For instance, it can happen when toolbar items (also separators) are getting grouped one by one and\\n\\t\\t * moved to another toolbar in the dropdown.\\n\\t\\t */\\n\\t\\t&:first-child,\\n\\t\\t&:last-child {\\n\\t\\t\\tdisplay: none;\\n\\t\\t}\\n\\t}\\n\\n\\t& .ck-toolbar__line-break {\\n\\t\\tflex-basis: 100%;\\n\\t}\\n\\n\\t&.ck-toolbar_grouping > .ck-toolbar__items {\\n\\t\\tflex-wrap: nowrap;\\n\\t}\\n\\n\\t&.ck-toolbar_vertical > .ck-toolbar__items {\\n\\t\\tflex-direction: column;\\n\\t}\\n\\n\\t&.ck-toolbar_floating > .ck-toolbar__items {\\n\\t\\tflex-wrap: nowrap;\\n\\t}\\n\\n\\t& > .ck.ck-toolbar__grouped-dropdown {\\n\\t\\t& > .ck-dropdown__button .ck-dropdown__arrow {\\n\\t\\t\\tdisplay: none;\\n\\t\\t}\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n/**\\n * Makes element unselectable.\\n */\\n@define-mixin ck-unselectable {\\n\\t-moz-user-select: none;\\n\\t-webkit-user-select: none;\\n\\t-ms-user-select: none;\\n\\tuser-select: none\\n}\\n\",\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n@import \\\"../../../mixins/_rounded.css\\\";\\n@import \\\"@ckeditor/ckeditor5-ui/theme/mixins/_dir.css\\\";\\n\\n.ck.ck-toolbar {\\n\\t@mixin ck-rounded-corners;\\n\\n\\tbackground: var(--ck-color-toolbar-background);\\n\\tpadding: 0 var(--ck-spacing-small);\\n\\tborder: 1px solid var(--ck-color-toolbar-border);\\n\\n\\t& .ck.ck-toolbar__separator {\\n\\t\\theight: var(--ck-icon-size);\\n\\t\\twidth: 1px;\\n\\t\\tmin-width: 1px;\\n\\t\\tbackground: var(--ck-color-toolbar-border);\\n\\n\\t\\t/*\\n\\t\\t * These margins make the separators look better in balloon toolbars (when aligned with the \\\"tip\\\").\\n\\t\\t * See https://github.com/ckeditor/ckeditor5/issues/7493.\\n\\t\\t */\\n\\t\\tmargin-top: var(--ck-spacing-small);\\n\\t\\tmargin-bottom: var(--ck-spacing-small);\\n\\t}\\n\\n\\t& .ck-toolbar__line-break {\\n\\t\\theight: 0;\\n\\t}\\n\\n\\t& > .ck-toolbar__items {\\n\\t\\t& > *:not(.ck-toolbar__line-break) {\\n\\t\\t\\t/* (#11) Separate toolbar items. */\\n\\t\\t\\tmargin-right: var(--ck-spacing-small);\\n\\t\\t}\\n\\n\\t\\t/* Don't display a separator after an empty items container, for instance,\\n\\t\\twhen all items were grouped */\\n\\t\\t&:empty + .ck.ck-toolbar__separator {\\n\\t\\t\\tdisplay: none;\\n\\t\\t}\\n\\t}\\n\\n\\t& > .ck-toolbar__items > *:not(.ck-toolbar__line-break),\\n\\t& > .ck.ck-toolbar__grouped-dropdown {\\n\\t\\t/* Make sure items wrapped to the next line have v-spacing */\\n\\t\\tmargin-top: var(--ck-spacing-small);\\n\\t\\tmargin-bottom: var(--ck-spacing-small);\\n\\t}\\n\\n\\t&.ck-toolbar_vertical {\\n\\t\\t/* Items in a vertical toolbar span the entire width. */\\n\\t\\tpadding: 0;\\n\\n\\t\\t/* Specificity matters here. See https://github.com/ckeditor/ckeditor5-theme-lark/issues/168. */\\n\\t\\t& > .ck-toolbar__items > .ck {\\n\\t\\t\\t/* Items in a vertical toolbar should span the horizontal space. */\\n\\t\\t\\twidth: 100%;\\n\\n\\t\\t\\t/* Items in a vertical toolbar should have no margin. */\\n\\t\\t\\tmargin: 0;\\n\\n\\t\\t\\t/* Items in a vertical toolbar span the entire width so rounded corners are pointless. */\\n\\t\\t\\tborder-radius: 0;\\n\\t\\t}\\n\\t}\\n\\n\\t&.ck-toolbar_compact {\\n\\t\\t/* No spacing around items. */\\n\\t\\tpadding: 0;\\n\\n\\t\\t& > .ck-toolbar__items > * {\\n\\t\\t\\t/* Compact toolbar items have no spacing between them. */\\n\\t\\t\\tmargin: 0;\\n\\n\\t\\t\\t/* \\\"Middle\\\" children should have no rounded corners. */\\n\\t\\t\\t&:not(:first-child):not(:last-child) {\\n\\t\\t\\t\\tborder-radius: 0;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n\\t& > .ck.ck-toolbar__grouped-dropdown {\\n\\t\\t/*\\n\\t\\t * Dropdown button has asymmetric padding to fit the arrow.\\n\\t\\t * This button has no arrow so let's revert that padding back to normal.\\n\\t\\t */\\n\\t\\t& > .ck.ck-button.ck-dropdown__button {\\n\\t\\t\\tpadding-left: var(--ck-spacing-tiny);\\n\\t\\t}\\n\\t}\\n\\n\\t/* A drop-down containing the nested toolbar with configured items. */\\n\\t& .ck-toolbar__nested-toolbar-dropdown {\\n\\t\\t/* Prevent empty space in the panel when the dropdown label is visible and long but the toolbar has few items. */\\n\\t\\t& > .ck-dropdown__panel {\\n\\t\\t\\tmin-width: auto;\\n\\t\\t}\\n\\n\\t\\t& > .ck-button > .ck-button__label {\\n\\t\\t\\tmax-width: 7em;\\n\\t\\t\\twidth: auto;\\n\\t\\t}\\n\\t}\\n\\n\\t&:focus {\\n\\t\\toutline: none;\\n\\t}\\n\\n\\t.ck-toolbar-container & {\\n\\t\\tborder: 0;\\n\\t}\\n}\\n\\n/* stylelint-disable */\\n\\n/*\\n * Styles for RTL toolbars.\\n *\\n * Note: In some cases (e.g. a decoupled editor), the toolbar has its own \\\"dir\\\"\\n * because its parent is not controlled by the editor framework.\\n */\\n[dir=\\\"rtl\\\"] .ck.ck-toolbar,\\n.ck.ck-toolbar[dir=\\\"rtl\\\"] {\\n\\t& > .ck-toolbar__items > .ck {\\n\\t\\tmargin-right: 0;\\n\\t}\\n\\n\\t&:not(.ck-toolbar_compact) > .ck-toolbar__items > .ck {\\n\\t\\t/* (#11) Separate toolbar items. */\\n\\t\\tmargin-left: var(--ck-spacing-small);\\n\\t}\\n\\n\\t& > .ck-toolbar__items > .ck:last-child {\\n\\t\\tmargin-left: 0;\\n\\t}\\n\\n\\t&.ck-toolbar_compact > .ck-toolbar__items > .ck {\\n\\t\\t/* No rounded corners on the right side of the first child. */\\n\\t\\t&:first-child {\\n\\t\\t\\tborder-top-left-radius: 0;\\n\\t\\t\\tborder-bottom-left-radius: 0;\\n\\t\\t}\\n\\n\\t\\t/* No rounded corners on the left side of the last child. */\\n\\t\\t&:last-child {\\n\\t\\t\\tborder-top-right-radius: 0;\\n\\t\\t\\tborder-bottom-right-radius: 0;\\n\\t\\t}\\n\\t}\\n\\n\\t/* Separate the the separator form the grouping dropdown when some items are grouped. */\\n\\t& > .ck.ck-toolbar__separator {\\n\\t\\tmargin-left: var(--ck-spacing-small);\\n\\t}\\n\\n\\t/* Some spacing between the items and the separator before the grouped items dropdown. */\\n\\t&.ck-toolbar_grouping > .ck-toolbar__items:not(:empty):not(:only-child) {\\n\\t\\tmargin-left: var(--ck-spacing-small);\\n\\t}\\n}\\n\\n/*\\n * Styles for LTR toolbars.\\n *\\n * Note: In some cases (e.g. a decoupled editor), the toolbar has its own \\\"dir\\\"\\n * because its parent is not controlled by the editor framework.\\n */\\n[dir=\\\"ltr\\\"] .ck.ck-toolbar,\\n.ck.ck-toolbar[dir=\\\"ltr\\\"] {\\n\\t& > .ck-toolbar__items > .ck:last-child {\\n\\t\\tmargin-right: 0;\\n\\t}\\n\\n\\t&.ck-toolbar_compact > .ck-toolbar__items > .ck {\\n\\t\\t/* No rounded corners on the right side of the first child. */\\n\\t\\t&:first-child {\\n\\t\\t\\tborder-top-right-radius: 0;\\n\\t\\t\\tborder-bottom-right-radius: 0;\\n\\t\\t}\\n\\n\\t\\t/* No rounded corners on the left side of the last child. */\\n\\t\\t&:last-child {\\n\\t\\t\\tborder-top-left-radius: 0;\\n\\t\\t\\tborder-bottom-left-radius: 0;\\n\\t\\t}\\n\\t}\\n\\n\\t/* Separate the the separator form the grouping dropdown when some items are grouped. */\\n\\t& > .ck.ck-toolbar__separator {\\n\\t\\tmargin-right: var(--ck-spacing-small);\\n\\t}\\n\\n\\t/* Some spacing between the items and the separator before the grouped items dropdown. */\\n\\t&.ck-toolbar_grouping > .ck-toolbar__items:not(:empty):not(:only-child) {\\n\\t\\tmargin-right: var(--ck-spacing-small);\\n\\t}\\n}\\n\\n/* stylelint-enable */\\n\",\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n/**\\n * Implements rounded corner interface for .ck-rounded-corners class.\\n *\\n * @see $ck-border-radius\\n */\\n@define-mixin ck-rounded-corners {\\n\\tborder-radius: 0;\\n\\n\\t.ck-rounded-corners &,\\n\\t&.ck-rounded-corners {\\n\\t\\tborder-radius: var(--ck-border-radius);\\n\\t\\t@mixin-content;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:root{--ck-color-editable-blur-selection:#d9d9d9}.ck.ck-editor__editable:not(.ck-editor__nested-editable){border-radius:0}.ck-rounded-corners .ck.ck-editor__editable:not(.ck-editor__nested-editable),.ck.ck-editor__editable.ck-rounded-corners:not(.ck-editor__nested-editable){border-radius:var(--ck-border-radius)}.ck.ck-editor__editable.ck-focused:not(.ck-editor__nested-editable){border:var(--ck-focus-ring);box-shadow:var(--ck-inner-shadow),0 0;outline:none}.ck.ck-editor__editable_inline{border:1px solid transparent;overflow:auto;padding:0 var(--ck-spacing-standard)}.ck.ck-editor__editable_inline[dir=ltr]{text-align:left}.ck.ck-editor__editable_inline[dir=rtl]{text-align:right}.ck.ck-editor__editable_inline>:first-child{margin-top:var(--ck-spacing-large)}.ck.ck-editor__editable_inline>:last-child{margin-bottom:var(--ck-spacing-large)}.ck.ck-editor__editable_inline.ck-blurred ::selection{background:var(--ck-color-editable-blur-selection)}.ck.ck-balloon-panel.ck-toolbar-container[class*=arrow_n]:after{border-bottom-color:var(--ck-color-panel-background)}.ck.ck-balloon-panel.ck-toolbar-container[class*=arrow_s]:after{border-top-color:var(--ck-color-panel-background)}`, \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-ui/components/editorui/editorui.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/mixins/_rounded.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/mixins/_focus.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/mixins/_shadow.css\"],\"names\":[],\"mappings\":\"AAWA,MACC,0CACD,CAEA,yDCJC,eDWD,CCTC,yJAEC,qCAED,CDCA,oEEPA,2BAA2B,CCF3B,qCAA8B,CDC9B,YFWA,CAGD,+BAGC,4BAA6B,CAF7B,aAAc,CACd,oCA6BD,CA1BC,wCACC,eACD,CAEA,wCACC,gBACD,CAGA,4CACC,kCACD,CAGA,2CAKC,qCACD,CAGA,sDACC,kDACD,CAKA,gEACC,oDACD,CAIA,gEACC,iDACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n@import \\\"../../../mixins/_rounded.css\\\";\\n@import \\\"../../../mixins/_disabled.css\\\";\\n@import \\\"../../../mixins/_shadow.css\\\";\\n@import \\\"../../../mixins/_focus.css\\\";\\n@import \\\"../../mixins/_button.css\\\";\\n\\n:root {\\n\\t--ck-color-editable-blur-selection: hsl(0, 0%, 85%);\\n}\\n\\n.ck.ck-editor__editable:not(.ck-editor__nested-editable) {\\n\\t@mixin ck-rounded-corners;\\n\\n\\t&.ck-focused {\\n\\t\\t@mixin ck-focus-ring;\\n\\t\\t@mixin ck-box-shadow var(--ck-inner-shadow);\\n\\t}\\n}\\n\\n.ck.ck-editor__editable_inline {\\n\\toverflow: auto;\\n\\tpadding: 0 var(--ck-spacing-standard);\\n\\tborder: 1px solid transparent;\\n\\n\\t&[dir=\\\"ltr\\\"] {\\n\\t\\ttext-align: left;\\n\\t}\\n\\n\\t&[dir=\\\"rtl\\\"] {\\n\\t\\ttext-align: right;\\n\\t}\\n\\n\\t/* https://github.com/ckeditor/ckeditor5-theme-lark/issues/116 */\\n\\t& > *:first-child {\\n\\t\\tmargin-top: var(--ck-spacing-large);\\n\\t}\\n\\n\\t/* https://github.com/ckeditor/ckeditor5/issues/847 */\\n\\t& > *:last-child {\\n\\t\\t/*\\n\\t\\t * This value should match with the default margins of the block elements (like .media or .image)\\n\\t\\t * to avoid a content jumping when the fake selection container shows up (See https://github.com/ckeditor/ckeditor5/issues/9825).\\n\\t\\t */\\n\\t\\tmargin-bottom: var(--ck-spacing-large);\\n\\t}\\n\\n\\t/* https://github.com/ckeditor/ckeditor5/issues/6517 */\\n\\t&.ck-blurred ::selection {\\n\\t\\tbackground: var(--ck-color-editable-blur-selection);\\n\\t}\\n}\\n\\n/* https://github.com/ckeditor/ckeditor5-theme-lark/issues/111 */\\n.ck.ck-balloon-panel.ck-toolbar-container[class*=\\\"arrow_n\\\"] {\\n\\t&::after {\\n\\t\\tborder-bottom-color: var(--ck-color-panel-background);\\n\\t}\\n}\\n\\n.ck.ck-balloon-panel.ck-toolbar-container[class*=\\\"arrow_s\\\"] {\\n\\t&::after {\\n\\t\\tborder-top-color: var(--ck-color-panel-background);\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n/**\\n * Implements rounded corner interface for .ck-rounded-corners class.\\n *\\n * @see $ck-border-radius\\n */\\n@define-mixin ck-rounded-corners {\\n\\tborder-radius: 0;\\n\\n\\t.ck-rounded-corners &,\\n\\t&.ck-rounded-corners {\\n\\t\\tborder-radius: var(--ck-border-radius);\\n\\t\\t@mixin-content;\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n/**\\n * A visual style of focused element's border.\\n */\\n@define-mixin ck-focus-ring {\\n\\t/* Disable native outline. */\\n\\toutline: none;\\n\\tborder: var(--ck-focus-ring)\\n}\\n\",\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n/**\\n * A helper to combine multiple shadows.\\n */\\n@define-mixin ck-box-shadow $shadowA, $shadowB: 0 0 {\\n\\tbox-shadow: $shadowA, $shadowB;\\n}\\n\\n/**\\n * Gives an element a drop shadow so it looks like a floating panel.\\n */\\n@define-mixin ck-drop-shadow {\\n\\t@mixin ck-box-shadow var(--ck-drop-shadow);\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:root{--ck-dropdown-max-width:75vw}.ck.ck-dropdown{display:inline-block;position:relative}.ck.ck-dropdown .ck-dropdown__arrow{pointer-events:none;z-index:var(--ck-z-default)}.ck.ck-dropdown .ck-button.ck-dropdown__button{width:100%}.ck.ck-dropdown .ck-dropdown__panel{display:none;max-width:var(--ck-dropdown-max-width);position:absolute;z-index:var(--ck-z-panel)}.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel-visible{display:inline-block}.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_n,.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_ne,.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_nme,.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_nmw,.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_nw{bottom:100%}.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_s,.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_se,.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_sme,.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_smw,.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_sw{bottom:auto;top:100%}.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_ne,.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_se{left:0}.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_nw,.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_sw{right:0}.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_n,.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_s{left:50%;transform:translateX(-50%)}.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_nmw,.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_smw{left:75%;transform:translateX(-75%)}.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_nme,.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_sme{left:25%;transform:translateX(-25%)}.ck.ck-toolbar .ck-dropdown__panel{z-index:calc(var(--ck-z-panel) + 1)}:root{--ck-dropdown-arrow-size:calc(var(--ck-icon-size)*0.5)}.ck.ck-dropdown{font-size:inherit}.ck.ck-dropdown .ck-dropdown__arrow{width:var(--ck-dropdown-arrow-size)}[dir=ltr] .ck.ck-dropdown .ck-dropdown__arrow{margin-left:var(--ck-spacing-standard);right:var(--ck-spacing-standard)}[dir=rtl] .ck.ck-dropdown .ck-dropdown__arrow{left:var(--ck-spacing-standard);margin-right:var(--ck-spacing-small)}.ck.ck-dropdown.ck-disabled .ck-dropdown__arrow{opacity:var(--ck-disabled-opacity)}[dir=ltr] .ck.ck-dropdown .ck-button.ck-dropdown__button:not(.ck-button_with-text){padding-left:var(--ck-spacing-small)}[dir=rtl] .ck.ck-dropdown .ck-button.ck-dropdown__button:not(.ck-button_with-text){padding-right:var(--ck-spacing-small)}.ck.ck-dropdown .ck-button.ck-dropdown__button .ck-button__label{overflow:hidden;text-overflow:ellipsis;width:7em}.ck.ck-dropdown .ck-button.ck-dropdown__button.ck-disabled .ck-button__label{opacity:var(--ck-disabled-opacity)}.ck.ck-dropdown .ck-button.ck-dropdown__button.ck-on{border-bottom-left-radius:0;border-bottom-right-radius:0}.ck.ck-dropdown .ck-button.ck-dropdown__button.ck-dropdown__button_label-width_auto .ck-button__label{width:auto}.ck.ck-dropdown .ck-button.ck-dropdown__button.ck-off:active,.ck.ck-dropdown .ck-button.ck-dropdown__button.ck-on:active{box-shadow:none}.ck.ck-dropdown .ck-button.ck-dropdown__button.ck-off:active:focus,.ck.ck-dropdown .ck-button.ck-dropdown__button.ck-on:active:focus{box-shadow:var(--ck-focus-outer-shadow),0 0}.ck.ck-dropdown__panel{background:var(--ck-color-dropdown-panel-background);border:1px solid var(--ck-color-dropdown-panel-border);border-radius:0;bottom:0;min-width:100%}.ck-rounded-corners .ck.ck-dropdown__panel,.ck.ck-dropdown__panel.ck-rounded-corners{border-radius:var(--ck-border-radius)}.ck.ck-dropdown__panel{box-shadow:var(--ck-drop-shadow),0 0}.ck.ck-dropdown__panel.ck-dropdown__panel_se{border-top-left-radius:0}.ck.ck-dropdown__panel.ck-dropdown__panel_sw{border-top-right-radius:0}.ck.ck-dropdown__panel.ck-dropdown__panel_ne{border-bottom-left-radius:0}.ck.ck-dropdown__panel.ck-dropdown__panel_nw{border-bottom-right-radius:0}.ck.ck-dropdown__panel:focus{outline:none}`, \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/components/dropdown/dropdown.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-ui/components/dropdown/dropdown.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/mixins/_disabled.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/mixins/_shadow.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/mixins/_rounded.css\"],\"names\":[],\"mappings\":\"AAKA,MACC,4BACD,CAEA,gBACC,oBAAqB,CACrB,iBA2ED,CAzEC,oCACC,mBAAoB,CACpB,2BACD,CAGA,+CACC,UACD,CAEA,oCACC,YAAa,CAEb,sCAAuC,CAEvC,iBAAkB,CAHlB,yBA4DD,CAvDC,+DACC,oBACD,CAEA,mSAKC,WACD,CAEA,mSAUC,WAAY,CADZ,QAED,CAEA,oHAEC,MACD,CAEA,oHAEC,OACD,CAEA,kHAGC,QAAS,CACT,0BACD,CAEA,sHAGC,QAAS,CACT,0BACD,CAEA,sHAGC,QAAS,CACT,0BACD,CAQF,mCACC,mCACD,CCpFA,MACC,sDACD,CAEA,gBAEC,iBA2ED,CAzEC,oCACC,mCACD,CAGC,8CAIC,sCAAuC,CAHvC,gCAID,CAIA,8CACC,+BAAgC,CAGhC,oCACD,CAGD,gDC/BA,kCDiCA,CAIE,mFAEC,oCACD,CAIA,mFAEC,qCACD,CAID,iEAEC,eAAgB,CAChB,sBAAuB,CAFvB,SAGD,CAGA,6EC1DD,kCD4DC,CAGA,qDACC,2BAA4B,CAC5B,4BACD,CAEA,sGACC,UACD,CAGA,yHAEC,eAKD,CAHC,qIE7EF,2CF+EE,CAKH,uBAIC,oDAAqD,CACrD,sDAAuD,CGvFvD,eAAgB,CHwFhB,QAAS,CAGT,cAuBD,CGhHC,qFAEC,qCAED,CH4ED,uBEpFC,oCFoHD,CAnBC,6CACC,wBACD,CAEA,6CACC,yBACD,CAEA,6CACC,2BACD,CAEA,6CACC,4BACD,CAEA,6BACC,YACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n:root {\\n\\t--ck-dropdown-max-width: 75vw;\\n}\\n\\n.ck.ck-dropdown {\\n\\tdisplay: inline-block;\\n\\tposition: relative;\\n\\n\\t& .ck-dropdown__arrow {\\n\\t\\tpointer-events: none;\\n\\t\\tz-index: var(--ck-z-default);\\n\\t}\\n\\n\\t/* Dropdown button should span horizontally, e.g. in vertical toolbars */\\n\\t& .ck-button.ck-dropdown__button {\\n\\t\\twidth: 100%;\\n\\t}\\n\\n\\t& .ck-dropdown__panel {\\n\\t\\tdisplay: none;\\n\\t\\tz-index: var(--ck-z-panel);\\n\\t\\tmax-width: var(--ck-dropdown-max-width);\\n\\n\\t\\tposition: absolute;\\n\\n\\t\\t&.ck-dropdown__panel-visible {\\n\\t\\t\\tdisplay: inline-block;\\n\\t\\t}\\n\\n\\t\\t&.ck-dropdown__panel_ne,\\n\\t\\t&.ck-dropdown__panel_nw,\\n\\t\\t&.ck-dropdown__panel_n,\\n\\t\\t&.ck-dropdown__panel_nmw,\\n\\t\\t&.ck-dropdown__panel_nme {\\n\\t\\t\\tbottom: 100%;\\n\\t\\t}\\n\\n\\t\\t&.ck-dropdown__panel_se,\\n\\t\\t&.ck-dropdown__panel_sw,\\n\\t\\t&.ck-dropdown__panel_smw,\\n\\t\\t&.ck-dropdown__panel_sme,\\n\\t\\t&.ck-dropdown__panel_s {\\n\\t\\t\\t/*\\n\\t\\t\\t * Using transform: translate3d( 0, 100%, 0 ) causes blurry dropdown on Chrome 67-78+ on non-retina displays.\\n\\t\\t\\t * See https://github.com/ckeditor/ckeditor5/issues/1053.\\n\\t\\t\\t */\\n\\t\\t\\ttop: 100%;\\n\\t\\t\\tbottom: auto;\\n\\t\\t}\\n\\n\\t\\t&.ck-dropdown__panel_ne,\\n\\t\\t&.ck-dropdown__panel_se {\\n\\t\\t\\tleft: 0px;\\n\\t\\t}\\n\\n\\t\\t&.ck-dropdown__panel_nw,\\n\\t\\t&.ck-dropdown__panel_sw {\\n\\t\\t\\tright: 0px;\\n\\t\\t}\\n\\n\\t\\t&.ck-dropdown__panel_s,\\n\\t\\t&.ck-dropdown__panel_n {\\n\\t\\t\\t/* Positioning panels relative to the center of the button */\\n\\t\\t\\tleft: 50%;\\n\\t\\t\\ttransform: translateX(-50%);\\n\\t\\t}\\n\\n\\t\\t&.ck-dropdown__panel_nmw,\\n\\t\\t&.ck-dropdown__panel_smw {\\n\\t\\t\\t/* Positioning panels relative to the middle-west of the button */\\n\\t\\t\\tleft: 75%;\\n\\t\\t\\ttransform: translateX(-75%);\\n\\t\\t}\\n\\n\\t\\t&.ck-dropdown__panel_nme,\\n\\t\\t&.ck-dropdown__panel_sme {\\n\\t\\t\\t/* Positioning panels relative to the middle-east of the button */\\n\\t\\t\\tleft: 25%;\\n\\t\\t\\ttransform: translateX(-25%);\\n\\t\\t}\\n\\t}\\n}\\n\\n/*\\n * Toolbar dropdown panels should be always above the UI (eg. other dropdown panels) from the editor's content.\\n * See https://github.com/ckeditor/ckeditor5/issues/7874\\n */\\n.ck.ck-toolbar .ck-dropdown__panel {\\n\\tz-index: calc( var(--ck-z-panel) + 1 );\\n}\\n\",\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n@import \\\"../../../mixins/_rounded.css\\\";\\n@import \\\"../../../mixins/_disabled.css\\\";\\n@import \\\"../../../mixins/_shadow.css\\\";\\n@import \\\"@ckeditor/ckeditor5-ui/theme/mixins/_dir.css\\\";\\n\\n:root {\\n\\t--ck-dropdown-arrow-size: calc(0.5 * var(--ck-icon-size));\\n}\\n\\n.ck.ck-dropdown {\\n\\t/* Enable font size inheritance, which allows fluid UI scaling. */\\n\\tfont-size: inherit;\\n\\n\\t& .ck-dropdown__arrow {\\n\\t\\twidth: var(--ck-dropdown-arrow-size);\\n\\t}\\n\\n\\t@mixin ck-dir ltr {\\n\\t\\t& .ck-dropdown__arrow {\\n\\t\\t\\tright: var(--ck-spacing-standard);\\n\\n\\t\\t\\t/* A space to accommodate the triangle. */\\n\\t\\t\\tmargin-left: var(--ck-spacing-standard);\\n\\t\\t}\\n\\t}\\n\\n\\t@mixin ck-dir rtl {\\n\\t\\t& .ck-dropdown__arrow {\\n\\t\\t\\tleft: var(--ck-spacing-standard);\\n\\n\\t\\t\\t/* A space to accommodate the triangle. */\\n\\t\\t\\tmargin-right: var(--ck-spacing-small);\\n\\t\\t}\\n\\t}\\n\\n\\t&.ck-disabled .ck-dropdown__arrow {\\n\\t\\t@mixin ck-disabled;\\n\\t}\\n\\n\\t& .ck-button.ck-dropdown__button {\\n\\t\\t@mixin ck-dir ltr {\\n\\t\\t\\t&:not(.ck-button_with-text) {\\n\\t\\t\\t\\t/* Make sure dropdowns with just an icon have the right inner spacing */\\n\\t\\t\\t\\tpadding-left: var(--ck-spacing-small);\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t@mixin ck-dir rtl {\\n\\t\\t\\t&:not(.ck-button_with-text) {\\n\\t\\t\\t\\t/* Make sure dropdowns with just an icon have the right inner spacing */\\n\\t\\t\\t\\tpadding-right: var(--ck-spacing-small);\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t/* #23 */\\n\\t\\t& .ck-button__label {\\n\\t\\t\\twidth: 7em;\\n\\t\\t\\toverflow: hidden;\\n\\t\\t\\ttext-overflow: ellipsis;\\n\\t\\t}\\n\\n\\t\\t/* https://github.com/ckeditor/ckeditor5-theme-lark/issues/70 */\\n\\t\\t&.ck-disabled .ck-button__label {\\n\\t\\t\\t@mixin ck-disabled;\\n\\t\\t}\\n\\n\\t\\t/* https://github.com/ckeditor/ckeditor5/issues/816 */\\n\\t\\t&.ck-on {\\n\\t\\t\\tborder-bottom-left-radius: 0;\\n\\t\\t\\tborder-bottom-right-radius: 0;\\n\\t\\t}\\n\\n\\t\\t&.ck-dropdown__button_label-width_auto .ck-button__label {\\n\\t\\t\\twidth: auto;\\n\\t\\t}\\n\\n\\t\\t/* https://github.com/ckeditor/ckeditor5/issues/8699 */\\n\\t\\t&.ck-off:active,\\n\\t\\t&.ck-on:active {\\n\\t\\t\\tbox-shadow: none;\\n\\n\\t\\t\\t&:focus {\\n\\t\\t\\t\\t@mixin ck-box-shadow var(--ck-focus-outer-shadow);\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n}\\n\\n.ck.ck-dropdown__panel {\\n\\t@mixin ck-rounded-corners;\\n\\t@mixin ck-drop-shadow;\\n\\n\\tbackground: var(--ck-color-dropdown-panel-background);\\n\\tborder: 1px solid var(--ck-color-dropdown-panel-border);\\n\\tbottom: 0;\\n\\n\\t/* Make sure the panel is at least as wide as the drop-down's button. */\\n\\tmin-width: 100%;\\n\\n\\t/* Disabled corner border radius to be consistent with the .dropdown__button\\n\\thttps://github.com/ckeditor/ckeditor5/issues/816 */\\n\\t&.ck-dropdown__panel_se {\\n\\t\\tborder-top-left-radius: 0;\\n\\t}\\n\\n\\t&.ck-dropdown__panel_sw {\\n\\t\\tborder-top-right-radius: 0;\\n\\t}\\n\\n\\t&.ck-dropdown__panel_ne {\\n\\t\\tborder-bottom-left-radius: 0;\\n\\t}\\n\\n\\t&.ck-dropdown__panel_nw {\\n\\t\\tborder-bottom-right-radius: 0;\\n\\t}\\n\\n\\t&:focus {\\n\\t\\toutline: none;\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n/**\\n * A class which indicates that an element holding it is disabled.\\n */\\n@define-mixin ck-disabled {\\n\\topacity: var(--ck-disabled-opacity);\\n}\\n\",\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n/**\\n * A helper to combine multiple shadows.\\n */\\n@define-mixin ck-box-shadow $shadowA, $shadowB: 0 0 {\\n\\tbox-shadow: $shadowA, $shadowB;\\n}\\n\\n/**\\n * Gives an element a drop shadow so it looks like a floating panel.\\n */\\n@define-mixin ck-drop-shadow {\\n\\t@mixin ck-box-shadow var(--ck-drop-shadow);\\n}\\n\",\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n/**\\n * Implements rounded corner interface for .ck-rounded-corners class.\\n *\\n * @see $ck-border-radius\\n */\\n@define-mixin ck-rounded-corners {\\n\\tborder-radius: 0;\\n\\n\\t.ck-rounded-corners &,\\n\\t&.ck-rounded-corners {\\n\\t\\tborder-radius: var(--ck-border-radius);\\n\\t\\t@mixin-content;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.ck-content ol{list-style-type:decimal}.ck-content ol ol{list-style-type:lower-latin}.ck-content ol ol ol{list-style-type:lower-roman}.ck-content ol ol ol ol{list-style-type:upper-latin}.ck-content ol ol ol ol ol{list-style-type:upper-roman}.ck-content ul{list-style-type:disc}.ck-content ul ul{list-style-type:circle}.ck-content ul ul ul,.ck-content ul ul ul ul{list-style-type:square}`, \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@ckeditor/ckeditor5-list/theme/list.css\"],\"names\":[],\"mappings\":\"AAKA,eACC,uBAiBD,CAfC,kBACC,2BAaD,CAXC,qBACC,2BASD,CAPC,wBACC,2BAKD,CAHC,2BACC,2BACD,CAMJ,eACC,oBAaD,CAXC,kBACC,sBASD,CAJE,6CACC,sBACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n.ck-content ol {\\n\\tlist-style-type: decimal;\\n\\n\\t& ol {\\n\\t\\tlist-style-type: lower-latin;\\n\\n\\t\\t& ol {\\n\\t\\t\\tlist-style-type: lower-roman;\\n\\n\\t\\t\\t& ol {\\n\\t\\t\\t\\tlist-style-type: upper-latin;\\n\\n\\t\\t\\t\\t& ol {\\n\\t\\t\\t\\t\\tlist-style-type: upper-roman;\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n}\\n\\n.ck-content ul {\\n\\tlist-style-type: disc;\\n\\n\\t& ul {\\n\\t\\tlist-style-type: circle;\\n\\n\\t\\t& ul {\\n\\t\\t\\tlist-style-type: square;\\n\\n\\t\\t\\t& ul {\\n\\t\\t\\t\\tlist-style-type: square;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","\"use strict\";\n\n/* istanbul ignore next */\nfunction insertStyleElement(options) {\n var element = document.createElement(\"style\");\n options.setAttributes(element, options.attributes);\n options.insert(element, options.options);\n return element;\n}\nmodule.exports = insertStyleElement;","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.ck-hidden{display:none!important}:root{--ck-z-default:1;--ck-z-panel:calc(var(--ck-z-default) + 999);--ck-z-dialog:9999}.ck-transitions-disabled,.ck-transitions-disabled *{transition:none!important}:root{--ck-powered-by-font-size:calc(var(--ck-font-size-base)*7.5/13);--ck-powered-by-line-height:calc(var(--ck-font-size-base)*10/13);--ck-powered-by-letter-spacing:calc(var(--ck-font-size-base)*-0.2/13);--ck-powered-by-padding-vertical:2px;--ck-powered-by-padding-horizontal:4px;--ck-powered-by-text-color:#4f4f4f;--ck-powered-by-border-radius:var(--ck-border-radius);--ck-powered-by-background:#fff;--ck-powered-by-border-color:var(--ck-color-focus-border);--ck-powered-by-svg-width:53;--ck-powered-by-svg-height:10;--ck-powered-by-icon-width:calc(var(--ck-font-size-base)*var(--ck-powered-by-svg-width)/13);--ck-powered-by-icon-height:calc(var(--ck-font-size-base)*var(--ck-powered-by-svg-height)/13)}.ck.ck-balloon-panel.ck-powered-by-balloon{--ck-border-radius:var(--ck-powered-by-border-radius);background:var(--ck-powered-by-background);box-shadow:none;min-height:unset;z-index:calc(var(--ck-z-panel) - 1)}.ck.ck-balloon-panel.ck-powered-by-balloon .ck.ck-powered-by{line-height:var(--ck-powered-by-line-height)}.ck.ck-balloon-panel.ck-powered-by-balloon .ck.ck-powered-by a{align-items:center;cursor:pointer;display:flex;filter:grayscale(80%);line-height:var(--ck-powered-by-line-height);opacity:.66;padding:var(--ck-powered-by-padding-vertical) var(--ck-powered-by-padding-horizontal)}.ck.ck-balloon-panel.ck-powered-by-balloon .ck.ck-powered-by .ck-powered-by__label{color:var(--ck-powered-by-text-color);cursor:pointer;font-size:var(--ck-powered-by-font-size);font-weight:700;letter-spacing:var(--ck-powered-by-letter-spacing);line-height:normal;margin-right:4px;padding-left:2px;text-transform:uppercase}.ck.ck-balloon-panel.ck-powered-by-balloon .ck.ck-powered-by .ck-icon{cursor:pointer;display:block;height:var(--ck-powered-by-icon-height);width:var(--ck-powered-by-icon-width)}.ck.ck-balloon-panel.ck-powered-by-balloon .ck.ck-powered-by:hover a{filter:grayscale(0);opacity:1}.ck.ck-balloon-panel.ck-powered-by-balloon[class*=position_inside]{border-color:transparent}.ck.ck-balloon-panel.ck-powered-by-balloon[class*=position_border]{border:var(--ck-focus-ring);border-color:var(--ck-powered-by-border-color)}:root{--ck-evaluation-badge-font-size:calc(var(--ck-font-size-base)*7.5/13);--ck-evaluation-badge-line-height:calc(var(--ck-font-size-base)*7.5/13);--ck-evaluation-badge-letter-spacing:calc(var(--ck-font-size-base)*-0.2/13);--ck-evaluation-badge-padding-vertical:2px;--ck-evaluation-badge-padding-horizontal:4px;--ck-evaluation-badge-text-color:#4f4f4f;--ck-evaluation-badge-border-radius:var(--ck-border-radius);--ck-evaluation-badge-background:#fff;--ck-evaluation-badge-border-color:var(--ck-color-focus-border)}.ck.ck-balloon-panel.ck-evaluation-badge-balloon{--ck-border-radius:var(--ck-evaluation-badge-border-radius);background:var(--ck-evaluation-badge-background);box-shadow:none;min-height:unset;z-index:calc(var(--ck-z-panel) - 1)}.ck.ck-balloon-panel.ck-evaluation-badge-balloon .ck.ck-evaluation-badge{line-height:var(--ck-evaluation-badge-line-height);padding:var(--ck-evaluation-badge-padding-vertical) var(--ck-evaluation-badge-padding-horizontal)}.ck.ck-balloon-panel.ck-evaluation-badge-balloon .ck.ck-evaluation-badge .ck-evaluation-badge__label{color:var(--ck-evaluation-badge-text-color);display:block;font-size:var(--ck-evaluation-badge-font-size);font-weight:700;letter-spacing:var(--ck-evaluation-badge-letter-spacing);line-height:normal;padding:0 2px;text-transform:uppercase}.ck.ck-balloon-panel.ck-evaluation-badge-balloon[class*=position_inside]{border-color:transparent}.ck.ck-balloon-panel.ck-evaluation-badge-balloon[class*=position_border]{border:var(--ck-focus-ring);border-color:var(--ck-evaluation-badge-border-color)}:root{--ck-color-base-foreground:#fafafa;--ck-color-base-background:#fff;--ck-color-base-border:#ccced1;--ck-color-base-action:#53a336;--ck-color-base-focus:#6cb5f9;--ck-color-base-text:#333;--ck-color-base-active:#2977ff;--ck-color-base-active-focus:#0d65ff;--ck-color-base-error:#db3700;--ck-color-focus-border-coordinates:218,81.8%,56.9%;--ck-color-focus-border:hsl(var(--ck-color-focus-border-coordinates));--ck-color-focus-outer-shadow:#cae1fc;--ck-color-focus-disabled-shadow:rgba(119,186,248,.3);--ck-color-focus-error-shadow:rgba(255,64,31,.3);--ck-color-text:var(--ck-color-base-text);--ck-color-shadow-drop:rgba(0,0,0,.15);--ck-color-shadow-drop-active:rgba(0,0,0,.2);--ck-color-shadow-inner:rgba(0,0,0,.1);--ck-color-button-default-background:transparent;--ck-color-button-default-hover-background:#f0f0f0;--ck-color-button-default-active-background:#f0f0f0;--ck-color-button-default-disabled-background:transparent;--ck-color-button-on-background:#f0f7ff;--ck-color-button-on-hover-background:#dbecff;--ck-color-button-on-active-background:#dbecff;--ck-color-button-on-disabled-background:#f0f2f4;--ck-color-button-on-color:#2977ff;--ck-color-button-action-background:var(--ck-color-base-action);--ck-color-button-action-hover-background:#4d9d30;--ck-color-button-action-active-background:#4d9d30;--ck-color-button-action-disabled-background:#7ec365;--ck-color-button-action-text:var(--ck-color-base-background);--ck-color-button-save:#008a00;--ck-color-button-cancel:#db3700;--ck-color-switch-button-off-background:#939393;--ck-color-switch-button-off-hover-background:#7d7d7d;--ck-color-switch-button-on-background:var(--ck-color-button-action-background);--ck-color-switch-button-on-hover-background:#4d9d30;--ck-color-switch-button-inner-background:var(--ck-color-base-background);--ck-color-switch-button-inner-shadow:rgba(0,0,0,.1);--ck-color-dropdown-panel-background:var(--ck-color-base-background);--ck-color-dropdown-panel-border:var(--ck-color-base-border);--ck-color-dialog-background:var(--ck-custom-background);--ck-color-dialog-form-header-border:var(--ck-custom-border);--ck-color-input-background:var(--ck-color-base-background);--ck-color-input-border:var(--ck-color-base-border);--ck-color-input-error-border:var(--ck-color-base-error);--ck-color-input-text:var(--ck-color-base-text);--ck-color-input-disabled-background:#f2f2f2;--ck-color-input-disabled-border:var(--ck-color-base-border);--ck-color-input-disabled-text:#757575;--ck-color-list-background:var(--ck-color-base-background);--ck-color-list-button-hover-background:var(--ck-color-button-default-hover-background);--ck-color-list-button-on-background:var(--ck-color-button-on-color);--ck-color-list-button-on-background-focus:var(--ck-color-button-on-color);--ck-color-list-button-on-text:var(--ck-color-base-background);--ck-color-panel-background:var(--ck-color-base-background);--ck-color-panel-border:var(--ck-color-base-border);--ck-color-toolbar-background:var(--ck-color-base-background);--ck-color-toolbar-border:var(--ck-color-base-border);--ck-color-tooltip-background:var(--ck-color-base-text);--ck-color-tooltip-text:var(--ck-color-base-background);--ck-color-engine-placeholder-text:#707070;--ck-color-upload-bar-background:#6cb5f9;--ck-color-link-default:#0000f0;--ck-color-link-selected-background:rgba(31,176,255,.1);--ck-color-link-fake-selection:rgba(31,176,255,.3);--ck-color-highlight-background:#ff0;--ck-color-light-red:#fcc;--ck-disabled-opacity:.5;--ck-focus-outer-shadow-geometry:0 0 0 3px;--ck-focus-outer-shadow:var(--ck-focus-outer-shadow-geometry) var(--ck-color-focus-outer-shadow);--ck-focus-disabled-outer-shadow:var(--ck-focus-outer-shadow-geometry) var(--ck-color-focus-disabled-shadow);--ck-focus-error-outer-shadow:var(--ck-focus-outer-shadow-geometry) var(--ck-color-focus-error-shadow);--ck-focus-ring:1px solid var(--ck-color-focus-border);--ck-font-size-base:13px;--ck-line-height-base:1.84615;--ck-font-face:Helvetica,Arial,Tahoma,Verdana,Sans-Serif;--ck-font-size-tiny:0.7em;--ck-font-size-small:0.75em;--ck-font-size-normal:1em;--ck-font-size-big:1.4em;--ck-font-size-large:1.8em;--ck-ui-component-min-height:2.3em}.ck-reset_all :not(.ck-reset_all-excluded *),.ck.ck-reset,.ck.ck-reset_all{background:transparent;border:0;box-sizing:border-box;height:auto;margin:0;padding:0;position:static;text-decoration:none;transition:none;vertical-align:middle;width:auto;word-wrap:break-word}.ck-reset_all :not(.ck-reset_all-excluded *),.ck.ck-reset_all{border-collapse:collapse;color:var(--ck-color-text);cursor:auto;float:none;font:normal normal normal var(--ck-font-size-base)/var(--ck-line-height-base) var(--ck-font-face);text-align:left;white-space:nowrap}.ck-reset_all .ck-rtl :not(.ck-reset_all-excluded *){text-align:right}.ck-reset_all iframe:not(.ck-reset_all-excluded *){vertical-align:inherit}.ck-reset_all textarea:not(.ck-reset_all-excluded *){white-space:pre-wrap}.ck-reset_all input[type=password]:not(.ck-reset_all-excluded *),.ck-reset_all input[type=text]:not(.ck-reset_all-excluded *),.ck-reset_all textarea:not(.ck-reset_all-excluded *){cursor:text}.ck-reset_all input[type=password][disabled]:not(.ck-reset_all-excluded *),.ck-reset_all input[type=text][disabled]:not(.ck-reset_all-excluded *),.ck-reset_all textarea[disabled]:not(.ck-reset_all-excluded *){cursor:default}.ck-reset_all fieldset:not(.ck-reset_all-excluded *){border:2px groove #dfdee3;padding:10px}.ck-reset_all button:not(.ck-reset_all-excluded *)::-moz-focus-inner{border:0;padding:0}.ck[dir=rtl],.ck[dir=rtl] .ck{text-align:right}:root{--ck-border-radius:2px;--ck-inner-shadow:2px 2px 3px var(--ck-color-shadow-inner) inset;--ck-drop-shadow:0 1px 2px 1px var(--ck-color-shadow-drop);--ck-drop-shadow-active:0 3px 6px 1px var(--ck-color-shadow-drop-active);--ck-spacing-unit:0.6em;--ck-spacing-large:calc(var(--ck-spacing-unit)*1.5);--ck-spacing-standard:var(--ck-spacing-unit);--ck-spacing-medium:calc(var(--ck-spacing-unit)*0.8);--ck-spacing-small:calc(var(--ck-spacing-unit)*0.5);--ck-spacing-tiny:calc(var(--ck-spacing-unit)*0.3);--ck-spacing-extra-tiny:calc(var(--ck-spacing-unit)*0.16)}`, \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/globals/_hidden.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/globals/_zindex.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/globals/_transition.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/globals/_poweredby.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/globals/_evaluationbadge.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-ui/globals/_colors.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-ui/globals/_disabled.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-ui/globals/_focus.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-ui/globals/_fonts.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-ui/globals/_reset.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-ui/globals/_rounded.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-ui/globals/_shadow.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-ui/globals/_spacing.css\"],\"names\":[],\"mappings\":\"AAQA,WAGC,sBACD,CCPA,MACC,gBAAiB,CACjB,4CAA+C,CAC/C,kBACD,CCDA,oDAEC,yBACD,CCNA,MAEC,+DAAoE,CAEpE,gEAAqE,CAErE,qEAA0E,CAC1E,oCAAqC,CACrC,sCAAuC,CACvC,kCAA2C,CAC3C,qDAAsD,CACtD,+BAA4C,CAC5C,yDAA0D,CAE1D,4BAA6B,CAC7B,6BAA8B,CAC9B,2FAAgG,CAChG,6FACD,CAEA,2CACC,qDAAsD,CAGtD,0CAA2C,CAD3C,eAAgB,CAEhB,gBAAiB,CACjB,mCAmDD,CAjDC,6DACC,4CAsCD,CApCC,+DAGC,kBAAmB,CAFnB,cAAe,CACf,YAAa,CAGb,qBAAsB,CACtB,4CAA6C,CAF7C,WAAY,CAGZ,qFACD,CAEA,mFASC,qCAAsC,CAFtC,cAAe,CANf,wCAAyC,CAIzC,eAAiB,CAHjB,kDAAmD,CAMnD,kBAAmB,CAFnB,gBAAiB,CAHjB,gBAAiB,CACjB,wBAOD,CAEA,sEAEC,cAAe,CADf,aAAc,CAGd,uCAAwC,CADxC,qCAED,CAGC,qEACC,mBAAqB,CACrB,SACD,CAIF,mEACC,wBACD,CAEA,mEACC,2BAA4B,CAC5B,8CACD,CC5ED,MAEC,qEAA0E,CAE1E,uEAA4E,CAE5E,2EAAgF,CAChF,0CAA2C,CAC3C,4CAA6C,CAC7C,wCAAiD,CACjD,2DAA4D,CAC5D,qCAAkD,CAClD,+DACD,CAEA,iDACC,2DAA4D,CAG5D,gDAAiD,CADjD,eAAgB,CAEhB,gBAAiB,CACjB,mCA0BD,CAxBC,yEACC,kDAAmD,CACnD,iGAYD,CAVC,qGAQC,2CAA4C,CAP5C,aAAc,CAEd,8CAA+C,CAE/C,eAAiB,CADjB,wDAAyD,CAEzD,kBAAmB,CAJnB,aAAc,CAKd,wBAED,CAGD,yEACC,wBACD,CAEA,yEACC,2BAA4B,CAC5B,oDACD,CC9CD,MACC,kCAAmD,CACnD,+BAAoD,CACpD,8BAAkD,CAClD,8BAAuD,CACvD,6BAAmD,CACnD,yBAA+C,CAC/C,8BAAsD,CACtD,oCAA4D,CAC5D,6BAAkD,CAIlD,mDAA4D,CAC5D,qEAA+E,CAC/E,qCAA4D,CAC5D,qDAA8D,CAC9D,gDAAyD,CACzD,yCAAqD,CACrD,sCAAsD,CACtD,4CAA0D,CAC1D,sCAAsD,CAItD,gDAAuD,CACvD,kDAAiE,CACjE,mDAAkE,CAClE,yDAA8D,CAE9D,uCAA6D,CAC7D,6CAAoE,CACpE,8CAAoE,CACpE,gDAAiE,CACjE,kCAAyD,CAGzD,+DAAsE,CACtE,iDAAsE,CACtE,kDAAsE,CACtE,oDAAoE,CACpE,6DAAsE,CAEtE,8BAAoD,CACpD,gCAAqD,CAErD,+CAA8D,CAC9D,qDAAiE,CACjE,+EAAqF,CACrF,oDAAuE,CACvE,yEAA8E,CAC9E,oDAAgE,CAIhE,oEAA2E,CAC3E,4DAAoE,CAIpE,wDAAiE,CACjE,4DAAmE,CAInE,2DAAoE,CACpE,mDAA6D,CAC7D,wDAAgE,CAChE,+CAA0D,CAC1D,4CAA2D,CAC3D,4DAAoE,CACpE,sCAAsD,CAItD,0DAAmE,CACnE,uFAA6F,CAC7F,oEAA2E,CAC3E,0EAA+E,CAC/E,8DAAsE,CAItE,2DAAoE,CACpE,mDAA6D,CAI7D,6DAAsE,CACtE,qDAA+D,CAI/D,uDAAgE,CAChE,uDAAiE,CAIjE,0CAAyD,CAIzD,wCAA2D,CAI3D,+BAAoD,CACpD,uDAAmE,CACnE,kDAAgE,CAIhE,oCAAyD,CAIzD,yBAAgD,CChHhD,wBAAyB,CCAzB,0CAA2C,CAK3C,gGAAiG,CAKjG,4GAA6G,CAK7G,sGAAuG,CAKvG,sDAAuD,CCvBvD,wBAAyB,CACzB,6BAA8B,CAC9B,wDAA6D,CAE7D,yBAA0B,CAC1B,2BAA4B,CAC5B,yBAA0B,CAC1B,wBAAyB,CACzB,0BAA2B,CCJ3B,kCJgHD,CI1GA,2EAYC,sBAAuB,CADvB,QAAS,CART,qBAAsB,CAEtB,WAAY,CAIZ,QAAS,CACT,SAAU,CAJV,eAAgB,CAOhB,oBAAqB,CAErB,eAAgB,CADhB,qBAAsB,CAVtB,UAAW,CAcX,oBACD,CAKA,8DAGC,wBAAyB,CAEzB,0BAA2B,CAG3B,WAAY,CACZ,UAAW,CALX,iGAAkG,CAElG,eAAgB,CAChB,kBAGD,CAGC,qDACC,gBACD,CAEA,mDAEC,sBACD,CAEA,qDACC,oBACD,CAEA,mLAGC,WACD,CAEA,iNAGC,cACD,CAEA,qDAEC,yBAAoC,CADpC,YAED,CAEA,qEAGC,QAAQ,CADR,SAED,CAMD,8BAEC,gBACD,CCxFA,MACC,sBAAuB,CCAvB,gEAAiE,CAKjE,0DAA2D,CAK3D,wEAAyE,CCbzE,uBAA8B,CAC9B,mDAA2D,CAC3D,4CAAkD,CAClD,oDAA4D,CAC5D,mDAA2D,CAC3D,kDAA2D,CAC3D,yDFFD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n/**\\n * A class which hides an element in DOM.\\n */\\n.ck-hidden {\\n\\t/* Override selector specificity. Otherwise, all elements with some display\\n\\tstyle defined will override this one, which is not a desired result. */\\n\\tdisplay: none !important;\\n}\\n\",\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n:root {\\n\\t--ck-z-default: 1;\\n\\t--ck-z-panel: calc( var(--ck-z-default) + 999 );\\n\\t--ck-z-dialog: 9999;\\n}\\n\",\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n/**\\n * A class that disables all transitions of the element and its children.\\n */\\n.ck-transitions-disabled,\\n.ck-transitions-disabled * {\\n\\ttransition: none !important;\\n}\\n\",\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n:root {\\n\\t/* where 7.5(px) is the font size of the powered by label and 13(px) is the base font size. */\\n\\t--ck-powered-by-font-size: calc(var(--ck-font-size-base) * 7.5 / 13);\\n\\t/* where 10(px) is the line height of the powered by label and 13(px) is the base font size. */\\n\\t--ck-powered-by-line-height: calc(var(--ck-font-size-base) * 10 / 13);\\n\\t/* where -0.2(px) is the letter spacing of the powered by label and 13(px) is the base font size. */\\n\\t--ck-powered-by-letter-spacing: calc(var(--ck-font-size-base) * -0.2 / 13);\\n\\t--ck-powered-by-padding-vertical: 2px;\\n\\t--ck-powered-by-padding-horizontal: 4px;\\n\\t--ck-powered-by-text-color: hsl(0, 0%, 31%);\\n\\t--ck-powered-by-border-radius: var(--ck-border-radius);\\n\\t--ck-powered-by-background: hsl(0, 0%, 100%);\\n\\t--ck-powered-by-border-color: var(--ck-color-focus-border);\\n\\n\\t--ck-powered-by-svg-width: 53;\\n\\t--ck-powered-by-svg-height: 10;\\n\\t--ck-powered-by-icon-width: calc(var(--ck-font-size-base) * var(--ck-powered-by-svg-width) / 13);\\n\\t--ck-powered-by-icon-height: calc(var(--ck-font-size-base) * var(--ck-powered-by-svg-height) / 13);\\n}\\n\\n.ck.ck-balloon-panel.ck-powered-by-balloon {\\n\\t--ck-border-radius: var(--ck-powered-by-border-radius);\\n\\n\\tbox-shadow: none;\\n\\tbackground: var(--ck-powered-by-background);\\n\\tmin-height: unset;\\n\\tz-index: calc( var(--ck-z-panel) - 1 );\\n\\n\\t& .ck.ck-powered-by {\\n\\t\\tline-height: var(--ck-powered-by-line-height);\\n\\n\\t\\t& a {\\n\\t\\t\\tcursor: pointer;\\n\\t\\t\\tdisplay: flex;\\n\\t\\t\\talign-items: center;\\n\\t\\t\\topacity: .66;\\n\\t\\t\\tfilter: grayscale(80%);\\n\\t\\t\\tline-height: var(--ck-powered-by-line-height);\\n\\t\\t\\tpadding: var(--ck-powered-by-padding-vertical) var(--ck-powered-by-padding-horizontal);\\n\\t\\t}\\n\\n\\t\\t& .ck-powered-by__label {\\n\\t\\t\\tfont-size: var(--ck-powered-by-font-size);\\n\\t\\t\\tletter-spacing: var(--ck-powered-by-letter-spacing);\\n\\t\\t\\tpadding-left: 2px;\\n\\t\\t\\ttext-transform: uppercase;\\n\\t\\t\\tfont-weight: bold;\\n\\t\\t\\tmargin-right: 4px;\\n\\t\\t\\tcursor: pointer;\\n\\t\\t\\tline-height: normal;\\n\\t\\t\\tcolor: var(--ck-powered-by-text-color);\\n\\n\\t\\t}\\n\\n\\t\\t& .ck-icon {\\n\\t\\t\\tdisplay: block;\\n\\t\\t\\tcursor: pointer;\\n\\t\\t\\twidth: var(--ck-powered-by-icon-width);\\n\\t\\t\\theight: var(--ck-powered-by-icon-height);\\n\\t\\t}\\n\\n\\t\\t&:hover {\\n\\t\\t\\t& a {\\n\\t\\t\\t\\tfilter: grayscale(0%);\\n\\t\\t\\t\\topacity: 1;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n\\t&[class*=\\\"position_inside\\\"] {\\n\\t\\tborder-color: transparent;\\n\\t}\\n\\n\\t&[class*=\\\"position_border\\\"] {\\n\\t\\tborder: var(--ck-focus-ring);\\n\\t\\tborder-color: var(--ck-powered-by-border-color);\\n\\t}\\n}\\n\\n\",\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n:root {\\n\\t/* where 7.5(px) is the font size of the evaluation badge label and 13(px) is the base font size. */\\n\\t--ck-evaluation-badge-font-size: calc(var(--ck-font-size-base) * 7.5 / 13);\\n\\t/* where 7.5(px) is the line height of the evaluation badge label and 13(px) is the base font size. */\\n\\t--ck-evaluation-badge-line-height: calc(var(--ck-font-size-base) * 7.5 / 13);\\n\\t/* where -0.2(px) is the letter spacing of the evaluation badge label and 13(px) is the base font size. */\\n\\t--ck-evaluation-badge-letter-spacing: calc(var(--ck-font-size-base) * -0.2 / 13);\\n\\t--ck-evaluation-badge-padding-vertical: 2px;\\n\\t--ck-evaluation-badge-padding-horizontal: 4px;\\n\\t--ck-evaluation-badge-text-color: hsl(0, 0%, 31%);\\n\\t--ck-evaluation-badge-border-radius: var(--ck-border-radius);\\n\\t--ck-evaluation-badge-background: hsl(0, 0%, 100%);\\n\\t--ck-evaluation-badge-border-color: var(--ck-color-focus-border);\\n}\\n\\n.ck.ck-balloon-panel.ck-evaluation-badge-balloon {\\n\\t--ck-border-radius: var(--ck-evaluation-badge-border-radius);\\n\\n\\tbox-shadow: none;\\n\\tbackground: var(--ck-evaluation-badge-background);\\n\\tmin-height: unset;\\n\\tz-index: calc( var(--ck-z-panel) - 1 );\\n\\n\\t& .ck.ck-evaluation-badge {\\n\\t\\tline-height: var(--ck-evaluation-badge-line-height);\\n\\t\\tpadding: var(--ck-evaluation-badge-padding-vertical) var(--ck-evaluation-badge-padding-horizontal);\\n\\n\\t\\t& .ck-evaluation-badge__label {\\n\\t\\t\\tdisplay: block;\\n\\t\\t\\tpadding: 0 2px;\\n\\t\\t\\tfont-size: var(--ck-evaluation-badge-font-size);\\n\\t\\t\\tletter-spacing: var(--ck-evaluation-badge-letter-spacing);\\n\\t\\t\\tfont-weight: bold;\\n\\t\\t\\tline-height: normal;\\n\\t\\t\\ttext-transform: uppercase;\\n\\t\\t\\tcolor: var(--ck-evaluation-badge-text-color);\\n\\t\\t}\\n\\t}\\n\\n\\t&[class*=\\\"position_inside\\\"] {\\n\\t\\tborder-color: transparent;\\n\\t}\\n\\n\\t&[class*=\\\"position_border\\\"] {\\n\\t\\tborder: var(--ck-focus-ring);\\n\\t\\tborder-color: var(--ck-evaluation-badge-border-color);\\n\\t}\\n}\\n\\n\",\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n:root {\\n\\t--ck-color-base-foreground: \\t\\t\\t\\t\\t\\t\\t\\thsl(0, 0%, 98%);\\n\\t--ck-color-base-background: \\t\\t\\t\\t\\t\\t\\t\\thsl(0, 0%, 100%);\\n\\t--ck-color-base-border: \\t\\t\\t\\t\\t\\t\\t\\t\\thsl(220, 6%, 81%);\\n\\t--ck-color-base-action: \\t\\t\\t\\t\\t\\t\\t\\t\\thsl(104, 50.2%, 42.5%);\\n\\t--ck-color-base-focus: \\t\\t\\t\\t\\t\\t\\t\\t\\t\\thsl(209, 92%, 70%);\\n\\t--ck-color-base-text: \\t\\t\\t\\t\\t\\t\\t\\t\\t\\thsl(0, 0%, 20%);\\n\\t--ck-color-base-active: \\t\\t\\t\\t\\t\\t\\t\\t\\thsl(218.1, 100%, 58%);\\n\\t--ck-color-base-active-focus:\\t\\t\\t\\t\\t\\t\\t\\thsl(218.2, 100%, 52.5%);\\n\\t--ck-color-base-error:\\t\\t\\t\\t\\t\\t\\t\\t\\t\\thsl(15, 100%, 43%);\\n\\n\\t/* -- Generic colors ------------------------------------------------------------------------ */\\n\\n\\t--ck-color-focus-border-coordinates: \\t\\t\\t\\t\\t\\t218, 81.8%, 56.9%;\\n\\t--ck-color-focus-border: \\t\\t\\t\\t\\t\\t\\t\\t\\thsl(var(--ck-color-focus-border-coordinates));\\n\\t--ck-color-focus-outer-shadow:\\t\\t\\t\\t\\t\\t\\t\\thsl(212.4, 89.3%, 89%);\\n\\t--ck-color-focus-disabled-shadow:\\t\\t\\t\\t\\t\\t\\thsla(209, 90%, 72%,.3);\\n\\t--ck-color-focus-error-shadow:\\t\\t\\t\\t\\t\\t\\t\\thsla(9,100%,56%,.3);\\n\\t--ck-color-text: \\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tvar(--ck-color-base-text);\\n\\t--ck-color-shadow-drop: \\t\\t\\t\\t\\t\\t\\t\\t\\thsla(0, 0%, 0%, 0.15);\\n\\t--ck-color-shadow-drop-active:\\t\\t\\t\\t\\t\\t\\t\\thsla(0, 0%, 0%, 0.2);\\n\\t--ck-color-shadow-inner: \\t\\t\\t\\t\\t\\t\\t\\t\\thsla(0, 0%, 0%, 0.1);\\n\\n\\t/* -- Buttons ------------------------------------------------------------------------------- */\\n\\n\\t--ck-color-button-default-background: \\t\\t\\t\\t\\t\\ttransparent;\\n\\t--ck-color-button-default-hover-background: \\t\\t\\t\\thsl(0, 0%, 94.1%);\\n\\t--ck-color-button-default-active-background: \\t\\t\\t\\thsl(0, 0%, 94.1%);\\n\\t--ck-color-button-default-disabled-background: \\t\\t\\t\\ttransparent;\\n\\n\\t--ck-color-button-on-background: \\t\\t\\t\\t\\t\\t\\thsl(212, 100%, 97.1%);\\n\\t--ck-color-button-on-hover-background: \\t\\t\\t\\t\\t\\thsl(211.7, 100%, 92.9%);\\n\\t--ck-color-button-on-active-background: \\t\\t\\t\\t\\thsl(211.7, 100%, 92.9%);\\n\\t--ck-color-button-on-disabled-background: \\t\\t\\t\\t\\thsl(211, 15%, 95%);\\n\\t--ck-color-button-on-color:\\t\\t\\t\\t\\t\\t\\t\\t\\thsl(218.1, 100%, 58%);\\n\\n\\n\\t--ck-color-button-action-background: \\t\\t\\t\\t\\t\\tvar(--ck-color-base-action);\\n\\t--ck-color-button-action-hover-background: \\t\\t\\t\\t\\thsl(104, 53.2%, 40.2%);\\n\\t--ck-color-button-action-active-background: \\t\\t\\t\\thsl(104, 53.2%, 40.2%);\\n\\t--ck-color-button-action-disabled-background: \\t\\t\\t\\thsl(104, 44%, 58%);\\n\\t--ck-color-button-action-text: \\t\\t\\t\\t\\t\\t\\t\\tvar(--ck-color-base-background);\\n\\n\\t--ck-color-button-save: \\t\\t\\t\\t\\t\\t\\t\\t\\thsl(120, 100%, 27%);\\n\\t--ck-color-button-cancel: \\t\\t\\t\\t\\t\\t\\t\\t\\thsl(15, 100%, 43%);\\n\\n\\t--ck-color-switch-button-off-background:\\t\\t\\t\\t\\thsl(0, 0%, 57.6%);\\n\\t--ck-color-switch-button-off-hover-background:\\t\\t\\t\\thsl(0, 0%, 49%);\\n\\t--ck-color-switch-button-on-background:\\t\\t\\t\\t\\t\\tvar(--ck-color-button-action-background);\\n\\t--ck-color-switch-button-on-hover-background:\\t\\t\\t\\thsl(104, 53.2%, 40.2%);\\n\\t--ck-color-switch-button-inner-background:\\t\\t\\t\\t\\tvar(--ck-color-base-background);\\n\\t--ck-color-switch-button-inner-shadow:\\t\\t\\t\\t\\t\\thsla(0, 0%, 0%, 0.1);\\n\\n\\t/* -- Dropdown ------------------------------------------------------------------------------ */\\n\\n\\t--ck-color-dropdown-panel-background: \\t\\t\\t\\t\\t\\tvar(--ck-color-base-background);\\n\\t--ck-color-dropdown-panel-border: \\t\\t\\t\\t\\t\\t\\tvar(--ck-color-base-border);\\n\\n\\t/* -- Dialog -------------------------------------------------------------------------------- */\\n\\n\\t--ck-color-dialog-background: \\t\\t\\t\\t\\t\\t\\t\\tvar(--ck-custom-background);\\n\\t--ck-color-dialog-form-header-border: \\t\\t\\t\\t\\t\\tvar(--ck-custom-border);\\n\\n\\t/* -- Input --------------------------------------------------------------------------------- */\\n\\n\\t--ck-color-input-background: \\t\\t\\t\\t\\t\\t\\t\\tvar(--ck-color-base-background);\\n\\t--ck-color-input-border: \\t\\t\\t\\t\\t\\t\\t\\t\\tvar(--ck-color-base-border);\\n\\t--ck-color-input-error-border:\\t\\t\\t\\t\\t\\t\\t\\tvar(--ck-color-base-error);\\n\\t--ck-color-input-text: \\t\\t\\t\\t\\t\\t\\t\\t\\t\\tvar(--ck-color-base-text);\\n\\t--ck-color-input-disabled-background: \\t\\t\\t\\t\\t\\thsl(0, 0%, 95%);\\n\\t--ck-color-input-disabled-border: \\t\\t\\t\\t\\t\\t\\tvar(--ck-color-base-border);\\n\\t--ck-color-input-disabled-text: \\t\\t\\t\\t\\t\\t\\thsl(0, 0%, 46%);\\n\\n\\t/* -- List ---------------------------------------------------------------------------------- */\\n\\n\\t--ck-color-list-background: \\t\\t\\t\\t\\t\\t\\t\\tvar(--ck-color-base-background);\\n\\t--ck-color-list-button-hover-background: \\t\\t\\t\\t\\tvar(--ck-color-button-default-hover-background);\\n\\t--ck-color-list-button-on-background: \\t\\t\\t\\t\\t\\tvar(--ck-color-button-on-color);\\n\\t--ck-color-list-button-on-background-focus: \\t\\t\\t\\tvar(--ck-color-button-on-color);\\n\\t--ck-color-list-button-on-text:\\t\\t\\t\\t\\t\\t\\t\\tvar(--ck-color-base-background);\\n\\n\\t/* -- Panel --------------------------------------------------------------------------------- */\\n\\n\\t--ck-color-panel-background: \\t\\t\\t\\t\\t\\t\\t\\tvar(--ck-color-base-background);\\n\\t--ck-color-panel-border: \\t\\t\\t\\t\\t\\t\\t\\t\\tvar(--ck-color-base-border);\\n\\n\\t/* -- Toolbar ------------------------------------------------------------------------------- */\\n\\n\\t--ck-color-toolbar-background: \\t\\t\\t\\t\\t\\t\\t\\tvar(--ck-color-base-background);\\n\\t--ck-color-toolbar-border: \\t\\t\\t\\t\\t\\t\\t\\t\\tvar(--ck-color-base-border);\\n\\n\\t/* -- Tooltip ------------------------------------------------------------------------------- */\\n\\n\\t--ck-color-tooltip-background: \\t\\t\\t\\t\\t\\t\\t\\tvar(--ck-color-base-text);\\n\\t--ck-color-tooltip-text: \\t\\t\\t\\t\\t\\t\\t\\t\\tvar(--ck-color-base-background);\\n\\n\\t/* -- Engine -------------------------------------------------------------------------------- */\\n\\n\\t--ck-color-engine-placeholder-text: \\t\\t\\t\\t\\t\\thsl(0, 0%, 44%);\\n\\n\\t/* -- Upload -------------------------------------------------------------------------------- */\\n\\n\\t--ck-color-upload-bar-background:\\t\\t \\t\\t\\t\\t\\thsl(209, 92%, 70%);\\n\\n\\t/* -- Link -------------------------------------------------------------------------------- */\\n\\n\\t--ck-color-link-default:\\t\\t\\t\\t\\t\\t\\t\\t\\thsl(240, 100%, 47%);\\n\\t--ck-color-link-selected-background:\\t\\t\\t\\t\\t\\thsla(201, 100%, 56%, 0.1);\\n\\t--ck-color-link-fake-selection:\\t\\t\\t\\t\\t\\t\\t\\thsla(201, 100%, 56%, 0.3);\\n\\n\\t/* -- Search result highlight ---------------------------------------------------------------- */\\n\\n\\t--ck-color-highlight-background:\\t\\t\\t\\t\\t\\t\\thsl(60, 100%, 50%);\\n\\n\\t/* -- Generic colors ------------------------------------------------------------------------- */\\n\\n\\t--ck-color-light-red:\\t\\t\\t\\t\\t\\t\\t\\t\\t\\thsl(0, 100%, 90%);\\n}\\n\",\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n:root {\\n\\t/**\\n\\t * An opacity value of disabled UI item.\\n\\t */\\n\\t--ck-disabled-opacity: .5;\\n}\\n\",\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n:root {\\n\\t/**\\n\\t * The geometry of the of focused element's outer shadow.\\n\\t */\\n\\t--ck-focus-outer-shadow-geometry: 0 0 0 3px;\\n\\n\\t/**\\n\\t * A visual style of focused element's outer shadow.\\n\\t */\\n\\t--ck-focus-outer-shadow: var(--ck-focus-outer-shadow-geometry) var(--ck-color-focus-outer-shadow);\\n\\n\\t/**\\n\\t * A visual style of focused element's outer shadow (when disabled).\\n\\t */\\n\\t--ck-focus-disabled-outer-shadow: var(--ck-focus-outer-shadow-geometry) var(--ck-color-focus-disabled-shadow);\\n\\n\\t/**\\n\\t * A visual style of focused element's outer shadow (when has errors).\\n\\t */\\n\\t--ck-focus-error-outer-shadow: var(--ck-focus-outer-shadow-geometry) var(--ck-color-focus-error-shadow);\\n\\n\\t/**\\n\\t * A visual style of focused element's border or outline.\\n\\t */\\n\\t--ck-focus-ring: 1px solid var(--ck-color-focus-border);\\n}\\n\",\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n:root {\\n\\t--ck-font-size-base: 13px;\\n\\t--ck-line-height-base: 1.84615;\\n\\t--ck-font-face: Helvetica, Arial, Tahoma, Verdana, Sans-Serif;\\n\\n\\t--ck-font-size-tiny: 0.7em;\\n\\t--ck-font-size-small: 0.75em;\\n\\t--ck-font-size-normal: 1em;\\n\\t--ck-font-size-big: 1.4em;\\n\\t--ck-font-size-large: 1.8em;\\n}\\n\",\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n:root {\\n\\t/* This is super-important. This is **manually** adjusted so a button without an icon\\n\\tis never smaller than a button with icon, additionally making sure that text-less buttons\\n\\tare perfect squares. The value is also shared by other components which should stay \\\"in-line\\\"\\n\\twith buttons. */\\n\\t--ck-ui-component-min-height: 2.3em;\\n}\\n\\n/**\\n * Resets an element, ignoring its children.\\n */\\n.ck.ck-reset,\\n.ck.ck-reset_all,\\n.ck-reset_all *:not(.ck-reset_all-excluded *) {\\n\\tbox-sizing: border-box;\\n\\twidth: auto;\\n\\theight: auto;\\n\\tposition: static;\\n\\n\\t/* Do not include inheritable rules here. */\\n\\tmargin: 0;\\n\\tpadding: 0;\\n\\tborder: 0;\\n\\tbackground: transparent;\\n\\ttext-decoration: none;\\n\\tvertical-align: middle;\\n\\ttransition: none;\\n\\n\\t/* https://github.com/ckeditor/ckeditor5-theme-lark/issues/105 */\\n\\tword-wrap: break-word;\\n}\\n\\n/**\\n * Resets an element AND its children.\\n */\\n.ck.ck-reset_all,\\n.ck-reset_all *:not(.ck-reset_all-excluded *) {\\n\\t/* These are rule inherited by all children elements. */\\n\\tborder-collapse: collapse;\\n\\tfont: normal normal normal var(--ck-font-size-base)/var(--ck-line-height-base) var(--ck-font-face);\\n\\tcolor: var(--ck-color-text);\\n\\ttext-align: left;\\n\\twhite-space: nowrap;\\n\\tcursor: auto;\\n\\tfloat: none;\\n}\\n\\n.ck-reset_all {\\n\\t& .ck-rtl *:not(.ck-reset_all-excluded *) {\\n\\t\\ttext-align: right;\\n\\t}\\n\\n\\t& iframe:not(.ck-reset_all-excluded *) {\\n\\t\\t/* For IE */\\n\\t\\tvertical-align: inherit;\\n\\t}\\n\\n\\t& textarea:not(.ck-reset_all-excluded *) {\\n\\t\\twhite-space: pre-wrap;\\n\\t}\\n\\n\\t& textarea:not(.ck-reset_all-excluded *),\\n\\t& input[type=\\\"text\\\"]:not(.ck-reset_all-excluded *),\\n\\t& input[type=\\\"password\\\"]:not(.ck-reset_all-excluded *) {\\n\\t\\tcursor: text;\\n\\t}\\n\\n\\t& textarea[disabled]:not(.ck-reset_all-excluded *),\\n\\t& input[type=\\\"text\\\"][disabled]:not(.ck-reset_all-excluded *),\\n\\t& input[type=\\\"password\\\"][disabled]:not(.ck-reset_all-excluded *) {\\n\\t\\tcursor: default;\\n\\t}\\n\\n\\t& fieldset:not(.ck-reset_all-excluded *) {\\n\\t\\tpadding: 10px;\\n\\t\\tborder: 2px groove hsl(255, 7%, 88%);\\n\\t}\\n\\n\\t& button:not(.ck-reset_all-excluded *)::-moz-focus-inner {\\n\\t\\t/* See http://stackoverflow.com/questions/5517744/remove-extra-button-spacing-padding-in-firefox */\\n\\t\\tpadding: 0;\\n\\t\\tborder: 0\\n\\t}\\n}\\n\\n/**\\n * Default UI rules for RTL languages.\\n */\\n.ck[dir=\\\"rtl\\\"],\\n.ck[dir=\\\"rtl\\\"] .ck {\\n\\ttext-align: right;\\n}\\n\",\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n/**\\n * Default border-radius value.\\n */\\n:root{\\n\\t--ck-border-radius: 2px;\\n}\\n\",\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n:root {\\n\\t/**\\n\\t * A visual style of element's inner shadow (i.e. input).\\n\\t */\\n\\t--ck-inner-shadow: 2px 2px 3px var(--ck-color-shadow-inner) inset;\\n\\n\\t/**\\n\\t * A visual style of element's drop shadow (i.e. panel).\\n\\t */\\n\\t--ck-drop-shadow: 0 1px 2px 1px var(--ck-color-shadow-drop);\\n\\n\\t/**\\n\\t * A visual style of element's active shadow (i.e. comment or suggestion).\\n\\t */\\n\\t--ck-drop-shadow-active: 0 3px 6px 1px var(--ck-color-shadow-drop-active);\\n}\\n\",\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n:root {\\n\\t--ck-spacing-unit: \\t\\t\\t\\t\\t\\t0.6em;\\n\\t--ck-spacing-large: \\t\\t\\t\\t\\tcalc(var(--ck-spacing-unit) * 1.5);\\n\\t--ck-spacing-standard: \\t\\t\\t\\t\\tvar(--ck-spacing-unit);\\n\\t--ck-spacing-medium: \\t\\t\\t\\t\\tcalc(var(--ck-spacing-unit) * 0.8);\\n\\t--ck-spacing-small: \\t\\t\\t\\t\\tcalc(var(--ck-spacing-unit) * 0.5);\\n\\t--ck-spacing-tiny: \\t\\t\\t\\t\\t\\tcalc(var(--ck-spacing-unit) * 0.3);\\n\\t--ck-spacing-extra-tiny: \\t\\t\\t\\tcalc(var(--ck-spacing-unit) * 0.16);\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","const conversions = require('./conversions');\nconst route = require('./route');\n\nconst convert = {};\n\nconst models = Object.keys(conversions);\n\nfunction wrapRaw(fn) {\n\tconst wrappedFn = function (...args) {\n\t\tconst arg0 = args[0];\n\t\tif (arg0 === undefined || arg0 === null) {\n\t\t\treturn arg0;\n\t\t}\n\n\t\tif (arg0.length > 1) {\n\t\t\targs = arg0;\n\t\t}\n\n\t\treturn fn(args);\n\t};\n\n\t// Preserve .conversion property if there is one\n\tif ('conversion' in fn) {\n\t\twrappedFn.conversion = fn.conversion;\n\t}\n\n\treturn wrappedFn;\n}\n\nfunction wrapRounded(fn) {\n\tconst wrappedFn = function (...args) {\n\t\tconst arg0 = args[0];\n\n\t\tif (arg0 === undefined || arg0 === null) {\n\t\t\treturn arg0;\n\t\t}\n\n\t\tif (arg0.length > 1) {\n\t\t\targs = arg0;\n\t\t}\n\n\t\tconst result = fn(args);\n\n\t\t// We're assuming the result is an array here.\n\t\t// see notice in conversions.js; don't use box types\n\t\t// in conversion functions.\n\t\tif (typeof result === 'object') {\n\t\t\tfor (let len = result.length, i = 0; i < len; i++) {\n\t\t\t\tresult[i] = Math.round(result[i]);\n\t\t\t}\n\t\t}\n\n\t\treturn result;\n\t};\n\n\t// Preserve .conversion property if there is one\n\tif ('conversion' in fn) {\n\t\twrappedFn.conversion = fn.conversion;\n\t}\n\n\treturn wrappedFn;\n}\n\nmodels.forEach(fromModel => {\n\tconvert[fromModel] = {};\n\n\tObject.defineProperty(convert[fromModel], 'channels', {value: conversions[fromModel].channels});\n\tObject.defineProperty(convert[fromModel], 'labels', {value: conversions[fromModel].labels});\n\n\tconst routes = route(fromModel);\n\tconst routeModels = Object.keys(routes);\n\n\trouteModels.forEach(toModel => {\n\t\tconst fn = routes[toModel];\n\n\t\tconvert[fromModel][toModel] = wrapRounded(fn);\n\t\tconvert[fromModel][toModel].raw = wrapRaw(fn);\n\t});\n});\n\nmodule.exports = convert;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.ck-vertical-form .ck-button:after{bottom:-1px;content:\"\";position:absolute;right:-1px;top:-1px;width:0;z-index:1}.ck-vertical-form .ck-button:focus:after{display:none}@media screen and (max-width:600px){.ck.ck-responsive-form .ck-button:after{bottom:-1px;content:\"\";position:absolute;right:-1px;top:-1px;width:0;z-index:1}.ck.ck-responsive-form .ck-button:focus:after{display:none}}.ck-vertical-form>.ck-button:nth-last-child(2):after{border-right:1px solid var(--ck-color-base-border)}.ck.ck-responsive-form{padding:var(--ck-spacing-large)}.ck.ck-responsive-form:focus{outline:none}[dir=ltr] .ck.ck-responsive-form>:not(:first-child),[dir=rtl] .ck.ck-responsive-form>:not(:last-child){margin-left:var(--ck-spacing-standard)}@media screen and (max-width:600px){.ck.ck-responsive-form{padding:0;width:calc(var(--ck-input-width)*.8)}.ck.ck-responsive-form .ck-labeled-field-view{margin:var(--ck-spacing-large) var(--ck-spacing-large) 0}.ck.ck-responsive-form .ck-labeled-field-view .ck-input-number,.ck.ck-responsive-form .ck-labeled-field-view .ck-input-text{min-width:0;width:100%}.ck.ck-responsive-form .ck-labeled-field-view .ck-labeled-field-view__error{white-space:normal}.ck.ck-responsive-form>.ck-button:nth-last-child(2):after{border-right:1px solid var(--ck-color-base-border)}.ck.ck-responsive-form>.ck-button:last-child,.ck.ck-responsive-form>.ck-button:nth-last-child(2){border-radius:0;margin-top:var(--ck-spacing-large);padding:var(--ck-spacing-standard)}.ck.ck-responsive-form>.ck-button:last-child:not(:focus),.ck.ck-responsive-form>.ck-button:nth-last-child(2):not(:focus){border-top:1px solid var(--ck-color-base-border)}[dir=ltr] .ck.ck-responsive-form>.ck-button:last-child,[dir=ltr] .ck.ck-responsive-form>.ck-button:nth-last-child(2),[dir=rtl] .ck.ck-responsive-form>.ck-button:last-child,[dir=rtl] .ck.ck-responsive-form>.ck-button:nth-last-child(2){margin-left:0}[dir=rtl] .ck.ck-responsive-form>.ck-button:last-child:last-of-type,[dir=rtl] .ck.ck-responsive-form>.ck-button:nth-last-child(2):last-of-type{border-right:1px solid var(--ck-color-base-border)}}`, \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/components/responsive-form/responsiveform.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/mixins/_rwd.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-ui/components/responsive-form/responsiveform.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/mixins/_dir.css\"],\"names\":[],\"mappings\":\"AAQC,mCAMC,WAAY,CALZ,UAAW,CAEX,iBAAkB,CAClB,UAAW,CACX,QAAS,CAHT,OAAQ,CAKR,SACD,CAEA,yCACC,YACD,CCdA,oCDoBE,wCAMC,WAAY,CALZ,UAAW,CAEX,iBAAkB,CAClB,UAAW,CACX,QAAS,CAHT,OAAQ,CAKR,SACD,CAEA,8CACC,YACD,CC9BF,CCAD,qDACC,kDACD,CAEA,uBACC,+BAoED,CAlEC,6BAEC,YACD,CASC,uGACC,sCACD,CDvBD,oCCMD,uBAqBE,SAAU,CACV,oCA+CF,CA7CE,8CACC,wDAYD,CAVC,4HAEC,WAAY,CACZ,UACD,CAGA,4EACC,kBACD,CAKA,0DACC,kDACD,CAGD,iGAIC,eAAgB,CADhB,kCAAmC,CADnC,kCAmBD,CAfC,yHACC,gDACD,CC5DF,0ODmEG,aCjEH,CDmEG,+IACC,kDACD,CDrEH\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n@import \\\"@ckeditor/ckeditor5-ui/theme/mixins/_rwd.css\\\";\\n\\n.ck-vertical-form .ck-button {\\n\\t&::after {\\n\\t\\tcontent: \\\"\\\";\\n\\t\\twidth: 0;\\n\\t\\tposition: absolute;\\n\\t\\tright: -1px;\\n\\t\\ttop: -1px;\\n\\t\\tbottom: -1px;\\n\\t\\tz-index: 1;\\n\\t}\\n\\n\\t&:focus::after {\\n\\t\\tdisplay: none;\\n\\t}\\n}\\n\\n.ck.ck-responsive-form {\\n\\t@mixin ck-media-phone {\\n\\t\\t& .ck-button {\\n\\t\\t\\t&::after {\\n\\t\\t\\t\\tcontent: \\\"\\\";\\n\\t\\t\\t\\twidth: 0;\\n\\t\\t\\t\\tposition: absolute;\\n\\t\\t\\t\\tright: -1px;\\n\\t\\t\\t\\ttop: -1px;\\n\\t\\t\\t\\tbottom: -1px;\\n\\t\\t\\t\\tz-index: 1;\\n\\t\\t\\t}\\n\\n\\t\\t\\t&:focus::after {\\n\\t\\t\\t\\tdisplay: none;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n@define-mixin ck-media-phone {\\n\\t@media screen and (max-width: 600px) {\\n\\t\\t@mixin-content;\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n@import \\\"@ckeditor/ckeditor5-ui/theme/mixins/_rwd.css\\\";\\n@import \\\"@ckeditor/ckeditor5-ui/theme/mixins/_dir.css\\\";\\n\\n.ck-vertical-form > .ck-button:nth-last-child(2)::after {\\n\\tborder-right: 1px solid var(--ck-color-base-border);\\n}\\n\\n.ck.ck-responsive-form {\\n\\tpadding: var(--ck-spacing-large);\\n\\n\\t&:focus {\\n\\t\\t/* See: https://github.com/ckeditor/ckeditor5/issues/4773 */\\n\\t\\toutline: none;\\n\\t}\\n\\n\\t@mixin ck-dir ltr {\\n\\t\\t& > :not(:first-child) {\\n\\t\\t\\tmargin-left: var(--ck-spacing-standard);\\n\\t\\t}\\n\\t}\\n\\n\\t@mixin ck-dir rtl {\\n\\t\\t& > :not(:last-child) {\\n\\t\\t\\tmargin-left: var(--ck-spacing-standard);\\n\\t\\t}\\n\\t}\\n\\n\\t@mixin ck-media-phone {\\n\\t\\tpadding: 0;\\n\\t\\twidth: calc(.8 * var(--ck-input-width));\\n\\n\\t\\t& .ck-labeled-field-view {\\n\\t\\t\\tmargin: var(--ck-spacing-large) var(--ck-spacing-large) 0;\\n\\n\\t\\t\\t& .ck-input-text,\\n\\t\\t\\t& .ck-input-number {\\n\\t\\t\\t\\tmin-width: 0;\\n\\t\\t\\t\\twidth: 100%;\\n\\t\\t\\t}\\n\\n\\t\\t\\t/* Let the long error messages wrap in the narrow form. */\\n\\t\\t\\t& .ck-labeled-field-view__error {\\n\\t\\t\\t\\twhite-space: normal;\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t/* Styles for two last buttons in the form (save&cancel, edit&unlink, etc.). */\\n\\t\\t& > .ck-button:nth-last-child(2) {\\n\\t\\t\\t&::after {\\n\\t\\t\\t\\tborder-right: 1px solid var(--ck-color-base-border);\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t& > .ck-button:nth-last-child(1),\\n\\t\\t& > .ck-button:nth-last-child(2) {\\n\\t\\t\\tpadding: var(--ck-spacing-standard);\\n\\t\\t\\tmargin-top: var(--ck-spacing-large);\\n\\t\\t\\tborder-radius: 0;\\n\\n\\t\\t\\t&:not(:focus) {\\n\\t\\t\\t\\tborder-top: 1px solid var(--ck-color-base-border);\\n\\t\\t\\t}\\n\\n\\t\\t\\t@mixin ck-dir ltr {\\n\\t\\t\\t\\tmargin-left: 0;\\n\\t\\t\\t}\\n\\n\\t\\t\\t@mixin ck-dir rtl {\\n\\t\\t\\t\\tmargin-left: 0;\\n\\n\\t\\t\\t\\t&:last-of-type {\\n\\t\\t\\t\\t\\tborder-right: 1px solid var(--ck-color-base-border);\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n@define-mixin ck-dir $direction {\\n\\t[dir=\\\"$(direction)\\\"] & {\\n\\t\\t@mixin-content;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.ck.ck-dialog-overlay{bottom:0;left:0;overscroll-behavior:none;position:fixed;right:0;top:0;user-select:none}.ck.ck-dialog-overlay.ck-dialog-overlay__transparent{animation:none;background:none;pointer-events:none}.ck.ck-dialog{overscroll-behavior:none;position:absolute;width:fit-content}.ck.ck-dialog .ck.ck-form__header{flex-shrink:0}.ck.ck-dialog:not(.ck-dialog_modal) .ck.ck-form__header .ck-form__header__label{cursor:grab}.ck.ck-dialog-overlay.ck-dialog-overlay__transparent .ck.ck-dialog{pointer-events:all}:root{--ck-dialog-overlay-background-color:rgba(0,0,0,.5);--ck-dialog-drop-shadow:0px 0px 6px 2px rgba(0,0,0,.15);--ck-dialog-max-width:100vw;--ck-dialog-max-height:90vh;--ck-color-dialog-background:var(--ck-color-base-background);--ck-color-dialog-form-header-border:var(--ck-color-base-border)}.ck.ck-dialog-overlay{animation:ck-dialog-fade-in .3s;background:var(--ck-dialog-overlay-background-color);z-index:var(--ck-z-dialog)}.ck.ck-dialog{border-radius:0;--ck-drop-shadow:var(--ck-dialog-drop-shadow);background:var(--ck-color-dialog-background);border:1px solid var(--ck-color-base-border);max-height:var(--ck-dialog-max-height);max-width:var(--ck-dialog-max-width);overscroll-behavior:contain}.ck-rounded-corners .ck.ck-dialog,.ck.ck-dialog.ck-rounded-corners{border-radius:var(--ck-border-radius)}.ck.ck-dialog{box-shadow:var(--ck-drop-shadow),0 0}.ck.ck-dialog .ck.ck-form__header{border-bottom:1px solid var(--ck-color-dialog-form-header-border)}.ck-dialog-scroll-locked{overflow:hidden}@keyframes ck-dialog-fade-in{0%{background:transparent}to{background:var(--ck-dialog-overlay-background-color)}}`, \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/components/dialog/dialog.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-ui/components/dialog/dialog.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/mixins/_rounded.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/mixins/_shadow.css\"],\"names\":[],\"mappings\":\"AAKA,sBAKC,QAAS,CACT,MAAO,CAJP,wBAAyB,CAEzB,cAAe,CAGf,OAAQ,CACR,KAAM,CAPN,gBAcD,CALC,qDAEC,cAAe,CACf,eAAgB,CAFhB,mBAGD,CAGD,cACC,wBAAyB,CAEzB,iBAAkB,CADlB,iBAiBD,CAdC,kCACC,aACD,CAIC,gFACC,WACD,CAGD,mEACC,kBACD,CC/BD,MACC,mDAA2D,CAC3D,uDAA8D,CAC9D,2BAA4B,CAC5B,2BAA4B,CAC5B,4DAA6D,CAC7D,gEACD,CAEA,sBACC,+BAAgC,CAChC,oDAAqD,CACrD,0BACD,CAEA,cCbC,eAAgB,CDiBhB,6CAA8C,CAE9C,4CAA6C,CAG7C,4CAA6C,CAF7C,sCAAuC,CACvC,oCAAqC,CAErC,2BAKD,CC1BC,mEAEC,qCAED,CDOD,cEfC,oCF8BD,CAHC,kCACC,iEACD,CAGD,yBACC,eACD,CAEA,6BACC,GACC,sBACD,CAEA,GACC,oDACD,CACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n.ck.ck-dialog-overlay {\\n\\tuser-select: none;\\n\\toverscroll-behavior: none;\\n\\n\\tposition: fixed;\\n\\tbottom: 0;\\n\\tleft: 0;\\n\\tright: 0;\\n\\ttop: 0;\\n\\n\\t&.ck-dialog-overlay__transparent {\\n\\t\\tpointer-events: none;\\n\\t\\tanimation: none;\\n\\t\\tbackground: none;\\n\\t}\\n}\\n\\n.ck.ck-dialog {\\n\\toverscroll-behavior: none;\\n\\twidth: fit-content;\\n\\tposition: absolute;\\n\\n\\t& .ck.ck-form__header {\\n\\t\\tflex-shrink: 0;\\n\\t}\\n\\n\\t/* Modals should not be draggable. */\\n\\t&:not(.ck-dialog_modal) {\\n\\t\\t& .ck.ck-form__header .ck-form__header__label {\\n\\t\\t\\tcursor: grab;\\n\\t\\t}\\n\\t}\\n\\n\\t.ck.ck-dialog-overlay.ck-dialog-overlay__transparent & {\\n\\t\\tpointer-events: all;\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n@import \\\"../../../mixins/_rounded.css\\\";\\n@import \\\"../../../mixins/_shadow.css\\\";\\n@import \\\"@ckeditor/ckeditor5-ui/theme/mixins/_rwd.css\\\";\\n\\n:root {\\n\\t--ck-dialog-overlay-background-color: hsla( 0, 0%, 0%, .5 );\\n\\t--ck-dialog-drop-shadow: 0px 0px 6px 2px hsl(0deg 0% 0% / 15%);\\n\\t--ck-dialog-max-width: 100vw;\\n\\t--ck-dialog-max-height: 90vh;\\n\\t--ck-color-dialog-background: var(--ck-color-base-background);\\n\\t--ck-color-dialog-form-header-border: var(--ck-color-base-border);\\n}\\n\\n.ck.ck-dialog-overlay {\\n\\tanimation: ck-dialog-fade-in .3s;\\n\\tbackground: var(--ck-dialog-overlay-background-color);\\n\\tz-index: var(--ck-z-dialog);\\n}\\n\\n.ck.ck-dialog {\\n\\t@mixin ck-rounded-corners;\\n\\t@mixin ck-drop-shadow;\\n\\n\\t--ck-drop-shadow: var(--ck-dialog-drop-shadow);\\n\\n\\tbackground: var(--ck-color-dialog-background);\\n\\tmax-height: var(--ck-dialog-max-height);\\n\\tmax-width: var(--ck-dialog-max-width);\\n\\tborder: 1px solid var(--ck-color-base-border);\\n\\toverscroll-behavior: contain;\\n\\n\\t& .ck.ck-form__header {\\n\\t\\tborder-bottom: 1px solid var(--ck-color-dialog-form-header-border);\\n\\t}\\n}\\n\\n.ck-dialog-scroll-locked {\\n\\toverflow: hidden;\\n}\\n\\n@keyframes ck-dialog-fade-in {\\n\\t0% {\\n\\t\\tbackground: hsla( 0, 0%, 0%, 0 );\\n\\t}\\n\\n\\t100% {\\n\\t\\tbackground: var(--ck-dialog-overlay-background-color);\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n/**\\n * Implements rounded corner interface for .ck-rounded-corners class.\\n *\\n * @see $ck-border-radius\\n */\\n@define-mixin ck-rounded-corners {\\n\\tborder-radius: 0;\\n\\n\\t.ck-rounded-corners &,\\n\\t&.ck-rounded-corners {\\n\\t\\tborder-radius: var(--ck-border-radius);\\n\\t\\t@mixin-content;\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n/**\\n * A helper to combine multiple shadows.\\n */\\n@define-mixin ck-box-shadow $shadowA, $shadowB: 0 0 {\\n\\tbox-shadow: $shadowA, $shadowB;\\n}\\n\\n/**\\n * Gives an element a drop shadow so it looks like a floating panel.\\n */\\n@define-mixin ck-drop-shadow {\\n\\t@mixin ck-box-shadow var(--ck-drop-shadow);\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.ck.ck-editor__editable img.image_placeholder{background-size:100% 100%}`, \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@ckeditor/ckeditor5-image/theme/imageplaceholder.css\"],\"names\":[],\"mappings\":\"AAMC,8CACC,yBACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n.ck.ck-editor__editable {\\n\\t& img.image_placeholder {\\n\\t\\tbackground-size: 100% 100%;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.ck-button.ck-dropdown-menu-list__nested-menu__item__button{border-radius:0}.ck-button.ck-dropdown-menu-list__nested-menu__item__button>.ck-spinner-container,.ck-button.ck-dropdown-menu-list__nested-menu__item__button>.ck-spinner-container .ck-spinner{--ck-toolbar-spinner-size:20px}.ck-button.ck-dropdown-menu-list__nested-menu__item__button>.ck-spinner-container{margin-left:calc(var(--ck-spacing-small)*-1);margin-right:var(--ck-spacing-small)}.ck-button.ck-dropdown-menu-list__nested-menu__item__button:focus{border-color:transparent;box-shadow:none}.ck-button.ck-dropdown-menu-list__nested-menu__item__button:focus:not(.ck-on){background:var(--ck-color-button-default-hover-background)}`, \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-ui/components/dropdown/menu/dropdownmenulistitembutton.css\"],\"names\":[],\"mappings\":\"AAQA,4DACC,eA0BD,CAxBC,gLAGC,8BACD,CAEA,kFAEC,4CAA+C,CAC/C,oCACD,CAMA,kEACC,wBAAyB,CACzB,eAKD,CAHC,8EACC,0DACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n/*\\n * List item buttons.\\n */\\n.ck-button.ck-dropdown-menu-list__nested-menu__item__button {\\n\\tborder-radius: 0;\\n\\n\\t& > .ck-spinner-container,\\n\\t& > .ck-spinner-container .ck-spinner {\\n\\t\\t/* These styles correspond to .ck-icon so that the spinner seamlessly replaces the icon. */\\n\\t\\t--ck-toolbar-spinner-size: 20px;\\n\\t}\\n\\n\\t& > .ck-spinner-container {\\n\\t\\t/* These margins are the same as for .ck-icon. */\\n\\t\\tmargin-left: calc(-1 * var(--ck-spacing-small));\\n\\t\\tmargin-right: var(--ck-spacing-small);\\n\\t}\\n\\n\\t/*\\n\\t * Hovered items automatically get focused. Default focus styles look odd\\n\\t * while moving across a huge list of items so let's get rid of them\\n\\t */\\n\\t&:focus {\\n\\t\\tborder-color: transparent;\\n\\t\\tbox-shadow: none;\\n\\n\\t\\t&:not(.ck-on) {\\n\\t\\t\\tbackground: var(--ck-color-button-default-hover-background);\\n\\t\\t}\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.ck .ck-placeholder,.ck.ck-placeholder{position:relative}.ck .ck-placeholder:before,.ck.ck-placeholder:before{content:attr(data-placeholder);left:0;pointer-events:none;position:absolute;right:0}.ck.ck-read-only .ck-placeholder:before{display:none}.ck.ck-reset_all .ck-placeholder{position:relative}@media (forced-colors:active){.ck .ck-placeholder,.ck.ck-placeholder{forced-color-adjust:preserve-parent-color}}.ck .ck-placeholder:before,.ck.ck-placeholder:before{cursor:text}@media (forced-colors:none){.ck .ck-placeholder:before,.ck.ck-placeholder:before{color:var(--ck-color-engine-placeholder-text)}}@media (forced-colors:active){.ck .ck-placeholder:before,.ck.ck-placeholder:before{font-style:italic;margin-left:1px}}`, \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@ckeditor/ckeditor5-engine/theme/placeholder.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/mixins/_mediacolors.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-engine/placeholder.css\"],\"names\":[],\"mappings\":\"AAMA,uCAEC,iBAWD,CATC,qDAIC,8BAA+B,CAF/B,MAAO,CAKP,mBAAoB,CANpB,iBAAkB,CAElB,OAKD,CAKA,wCACC,YACD,CAQD,iCACC,iBACD,CC7BC,8BACC,uCCOA,yCDLA,CACD,CCOA,qDACC,WAmBD,CDvBA,4BACC,qDCMC,6CDJD,CACD,CAZA,8BACC,qDCsBC,iBAAkB,CAMlB,eD1BD,CACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n/* See ckeditor/ckeditor5#936. */\\n.ck.ck-placeholder,\\n.ck .ck-placeholder {\\n\\tposition: relative;\\n\\n\\t&::before {\\n\\t\\tposition: absolute;\\n\\t\\tleft: 0;\\n\\t\\tright: 0;\\n\\t\\tcontent: attr(data-placeholder);\\n\\n\\t\\t/* See ckeditor/ckeditor5#469. */\\n\\t\\tpointer-events: none;\\n\\t}\\n}\\n\\n/* See ckeditor/ckeditor5#1987. */\\n.ck.ck-read-only .ck-placeholder {\\n\\t&::before {\\n\\t\\tdisplay: none;\\n\\t}\\n}\\n\\n/*\\n * Rules for the `ck-placeholder` are loaded before the rules for `ck-reset_all` in the base CKEditor 5 DLL build.\\n * This fix overwrites the incorrectly set `position: static` from `ck-reset_all`.\\n * See https://github.com/ckeditor/ckeditor5/issues/11418.\\n */\\n.ck.ck-reset_all .ck-placeholder {\\n\\tposition: relative;\\n}\\n\",\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n@define-mixin ck-media-forced-colors {\\n\\t@media (forced-colors: active) {\\n\\t\\t& {\\n\\t\\t\\t@mixin-content;\\n\\t\\t}\\n\\t}\\n}\\n\\n@define-mixin ck-media-default-colors {\\n\\t@media (forced-colors: none) {\\n\\t\\t& {\\n\\t\\t\\t@mixin-content;\\n\\t\\t}\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n@import \\\"@ckeditor/ckeditor5-ui/theme/mixins/_mediacolors.css\\\";\\n\\n/* See ckeditor/ckeditor5#936. */\\n.ck.ck-placeholder, .ck .ck-placeholder {\\n\\t@mixin ck-media-forced-colors {\\n\\t\\t/*\\n\\t\\t * This is needed for Edge on Windows to use the right color for the placeholder content (::before).\\n\\t\\t * See https://github.com/ckeditor/ckeditor5/issues/14907.\\n\\t\\t */\\n\\t\\tforced-color-adjust: preserve-parent-color;\\n\\t}\\n\\n\\t&::before {\\n\\t\\tcursor: text;\\n\\n\\t\\t@mixin ck-media-default-colors {\\n\\t\\t\\tcolor: var(--ck-color-engine-placeholder-text);\\n\\t\\t}\\n\\n\\t\\t@mixin ck-media-forced-colors {\\n\\t\\t\\t/*\\n\\t\\t\\t * In the high contrast mode there is no telling between regular and placeholder text. Using\\n\\t\\t\\t * italic text to address that issue. See https://github.com/ckeditor/ckeditor5/issues/14907.\\n\\t\\t\\t */\\n\\t\\t\\tfont-style: italic;\\n\\n\\t\\t\\t/*\\n\\t\\t\\t * Without this margin, the caret will not show up and blink when the user puts the selection\\n\\t\\t\\t * in the placeholder (Edge on Windows). See https://github.com/ckeditor/ckeditor5/issues/14907.\\n\\t\\t\\t */\\n\\t\\t\\tmargin-left: 1px;\\n\\t\\t}\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.ck .ck-upload-placeholder-loader{align-items:center;display:flex;justify-content:center;left:0;position:absolute;top:0}.ck .ck-upload-placeholder-loader:before{content:\"\";position:relative}:root{--ck-color-upload-placeholder-loader:#b3b3b3;--ck-upload-placeholder-loader-size:32px;--ck-upload-placeholder-image-aspect-ratio:2.8}.ck .ck-image-upload-placeholder{margin:0;width:100%}.ck .ck-image-upload-placeholder.image-inline{width:calc(var(--ck-upload-placeholder-loader-size)*2*var(--ck-upload-placeholder-image-aspect-ratio))}.ck .ck-image-upload-placeholder img{aspect-ratio:var(--ck-upload-placeholder-image-aspect-ratio)}.ck .ck-upload-placeholder-loader{height:100%;width:100%}.ck .ck-upload-placeholder-loader:before{animation:ck-upload-placeholder-loader 1s linear infinite;border-radius:50%;border-right:2px solid transparent;border-top:3px solid var(--ck-color-upload-placeholder-loader);height:var(--ck-upload-placeholder-loader-size);width:var(--ck-upload-placeholder-loader-size)}@keyframes ck-upload-placeholder-loader{to{transform:rotate(1turn)}}`, \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@ckeditor/ckeditor5-image/theme/imageuploadloader.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-image/imageuploadloader.css\"],\"names\":[],\"mappings\":\"AAKA,kCAGC,kBAAmB,CADnB,YAAa,CAEb,sBAAuB,CAEvB,MAAO,CALP,iBAAkB,CAIlB,KAOD,CAJC,yCACC,UAAW,CACX,iBACD,CCXD,MACC,4CAAqD,CACrD,wCAAyC,CACzC,8CACD,CAEA,iCAGC,QAAS,CADT,UAgBD,CAbC,8CACC,sGACD,CAEA,qCAOC,4DACD,CAGD,kCAEC,WAAY,CADZ,UAWD,CARC,yCAMC,yDAA0D,CAH1D,iBAAkB,CAElB,kCAAmC,CADnC,8DAA+D,CAF/D,+CAAgD,CADhD,8CAMD,CAGD,wCACC,GACC,uBACD,CACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n.ck .ck-upload-placeholder-loader {\\n\\tposition: absolute;\\n\\tdisplay: flex;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n\\ttop: 0;\\n\\tleft: 0;\\n\\n\\t&::before {\\n\\t\\tcontent: '';\\n\\t\\tposition: relative;\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n:root {\\n\\t--ck-color-upload-placeholder-loader: hsl(0, 0%, 70%);\\n\\t--ck-upload-placeholder-loader-size: 32px;\\n\\t--ck-upload-placeholder-image-aspect-ratio: 2.8;\\n}\\n\\n.ck .ck-image-upload-placeholder {\\n\\t/* We need to control the full width of the SVG gray background. */\\n\\twidth: 100%;\\n\\tmargin: 0;\\n\\n\\t&.image-inline {\\n\\t\\twidth: calc( 2 * var(--ck-upload-placeholder-loader-size) * var(--ck-upload-placeholder-image-aspect-ratio) );\\n\\t}\\n\\n\\t& img {\\n\\t\\t/*\\n\\t\\t * This is an arbitrary aspect for a 1x1 px GIF to display to the user. Not too tall, not too short.\\n\\t\\t * There's nothing special about this number except that it should make the image placeholder look like\\n\\t\\t * a real image during this short period after the upload started and before the image was read from the\\n\\t\\t * file system (and a rich preview was loaded).\\n\\t\\t */\\n\\t\\taspect-ratio: var(--ck-upload-placeholder-image-aspect-ratio);\\n\\t}\\n}\\n\\n.ck .ck-upload-placeholder-loader {\\n\\twidth: 100%;\\n\\theight: 100%;\\n\\n\\t&::before {\\n\\t\\twidth: var(--ck-upload-placeholder-loader-size);\\n\\t\\theight: var(--ck-upload-placeholder-loader-size);\\n\\t\\tborder-radius: 50%;\\n\\t\\tborder-top: 3px solid var(--ck-color-upload-placeholder-loader);\\n\\t\\tborder-right: 2px solid transparent;\\n\\t\\tanimation: ck-upload-placeholder-loader 1s linear infinite;\\n\\t}\\n}\\n\\n@keyframes ck-upload-placeholder-loader {\\n\\tto {\\n\\t\\ttransform: rotate( 360deg );\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.ck.ck-image-custom-resize-form{align-items:flex-start;display:flex;flex-direction:row;flex-wrap:nowrap}.ck.ck-image-custom-resize-form .ck-labeled-field-view{display:inline-block}.ck.ck-image-custom-resize-form .ck-label{display:none}@media screen and (max-width:600px){.ck.ck-image-custom-resize-form{flex-wrap:wrap}.ck.ck-image-custom-resize-form .ck-labeled-field-view{flex-basis:100%}.ck.ck-image-custom-resize-form .ck-button{flex-basis:50%}}`, \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@ckeditor/ckeditor5-image/theme/imagecustomresizeform.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/mixins/_rwd.css\"],\"names\":[],\"mappings\":\"AAOA,gCAIC,sBAAuB,CAHvB,YAAa,CACb,kBAAmB,CACnB,gBAsBD,CAnBC,uDACC,oBACD,CAEA,0CACC,YACD,CCbA,oCDCD,gCAeE,cAUF,CARE,uDACC,eACD,CAEA,2CACC,cACD,CCtBD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n@import \\\"@ckeditor/ckeditor5-ui/theme/mixins/_rwd.css\\\";\\n\\n.ck.ck-image-custom-resize-form {\\n\\tdisplay: flex;\\n\\tflex-direction: row;\\n\\tflex-wrap: nowrap;\\n\\talign-items: flex-start;\\n\\n\\t& .ck-labeled-field-view {\\n\\t\\tdisplay: inline-block;\\n\\t}\\n\\n\\t& .ck-label {\\n\\t\\tdisplay: none;\\n\\t}\\n\\n\\t@mixin ck-media-phone {\\n\\t\\tflex-wrap: wrap;\\n\\n\\t\\t& .ck-labeled-field-view {\\n\\t\\t\\tflex-basis: 100%;\\n\\t\\t}\\n\\n\\t\\t& .ck-button {\\n\\t\\t\\tflex-basis: 50%;\\n\\t\\t}\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n@define-mixin ck-media-phone {\\n\\t@media screen and (max-width: 600px) {\\n\\t\\t@mixin-content;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:root{--ck-menu-bar-menu-item-min-width:18em}.ck.ck-menu-bar__menu .ck.ck-menu-bar__menu__item{min-width:var(--ck-menu-bar-menu-item-min-width)}`, \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-ui/components/menubar/menubarmenulistitem.css\"],\"names\":[],\"mappings\":\"AAKA,MACC,sCACD,CAEA,kDACC,gDACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n:root {\\n\\t--ck-menu-bar-menu-item-min-width: 18em;\\n}\\n\\n.ck.ck-menu-bar__menu .ck.ck-menu-bar__menu__item {\\n\\tmin-width: var(--ck-menu-bar-menu-item-min-width);\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:root{--ck-color-resizer:var(--ck-color-focus-border);--ck-color-resizer-tooltip-background:#262626;--ck-color-resizer-tooltip-text:#f2f2f2;--ck-resizer-border-radius:var(--ck-border-radius);--ck-resizer-tooltip-offset:10px;--ck-resizer-tooltip-height:calc(var(--ck-spacing-small)*2 + 10px)}.ck .ck-widget,.ck .ck-widget.ck-widget_with-selection-handle{position:relative}.ck .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle{position:absolute}.ck .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle .ck-icon{display:block}.ck .ck-widget.ck-widget_with-selection-handle.ck-widget_selected>.ck-widget__selection-handle,.ck .ck-widget.ck-widget_with-selection-handle:hover>.ck-widget__selection-handle{visibility:visible}.ck .ck-size-view{background:var(--ck-color-resizer-tooltip-background);border:1px solid var(--ck-color-resizer-tooltip-text);border-radius:var(--ck-resizer-border-radius);color:var(--ck-color-resizer-tooltip-text);display:block;font-size:var(--ck-font-size-tiny);height:var(--ck-resizer-tooltip-height);line-height:var(--ck-resizer-tooltip-height);padding:0 var(--ck-spacing-small)}.ck .ck-size-view.ck-orientation-above-center,.ck .ck-size-view.ck-orientation-bottom-left,.ck .ck-size-view.ck-orientation-bottom-right,.ck .ck-size-view.ck-orientation-top-left,.ck .ck-size-view.ck-orientation-top-right{position:absolute}.ck .ck-size-view.ck-orientation-top-left{left:var(--ck-resizer-tooltip-offset);top:var(--ck-resizer-tooltip-offset)}.ck .ck-size-view.ck-orientation-top-right{right:var(--ck-resizer-tooltip-offset);top:var(--ck-resizer-tooltip-offset)}.ck .ck-size-view.ck-orientation-bottom-right{bottom:var(--ck-resizer-tooltip-offset);right:var(--ck-resizer-tooltip-offset)}.ck .ck-size-view.ck-orientation-bottom-left{bottom:var(--ck-resizer-tooltip-offset);left:var(--ck-resizer-tooltip-offset)}.ck .ck-size-view.ck-orientation-above-center{left:50%;top:calc(var(--ck-resizer-tooltip-height)*-1);transform:translate(-50%)}:root{--ck-widget-outline-thickness:3px;--ck-widget-handler-icon-size:16px;--ck-widget-handler-animation-duration:200ms;--ck-widget-handler-animation-curve:ease;--ck-color-widget-blurred-border:#dedede;--ck-color-widget-hover-border:#ffc83d;--ck-color-widget-editable-focus-background:var(--ck-color-base-background);--ck-color-widget-drag-handler-icon-color:var(--ck-color-base-background)}.ck .ck-widget{outline-color:transparent;outline-style:solid;outline-width:var(--ck-widget-outline-thickness);transition:outline-color var(--ck-widget-handler-animation-duration) var(--ck-widget-handler-animation-curve)}@media (prefers-reduced-motion:reduce){.ck .ck-widget{transition:none}}.ck .ck-widget.ck-widget_selected,.ck .ck-widget.ck-widget_selected:hover{outline:var(--ck-widget-outline-thickness) solid var(--ck-color-focus-border)}.ck .ck-widget:hover{outline-color:var(--ck-color-widget-hover-border)}.ck .ck-editor__nested-editable{border:1px solid transparent}.ck .ck-editor__nested-editable.ck-editor__nested-editable_focused,.ck .ck-editor__nested-editable:focus{box-shadow:var(--ck-inner-shadow),0 0}@media (forced-colors:none){.ck .ck-editor__nested-editable.ck-editor__nested-editable_focused,.ck .ck-editor__nested-editable:focus{background-color:var(--ck-color-widget-editable-focus-background)}}.ck .ck-editor__nested-editable.ck-editor__nested-editable_focused:not(td,th),.ck .ck-editor__nested-editable:focus:not(td,th){border:var(--ck-focus-ring);outline:none}.ck .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle{background-color:transparent;border-radius:var(--ck-border-radius) var(--ck-border-radius) 0 0;box-sizing:border-box;left:calc(0px - var(--ck-widget-outline-thickness));opacity:0;padding:4px;top:0;transform:translateY(-100%);transition:background-color var(--ck-widget-handler-animation-duration) var(--ck-widget-handler-animation-curve),visibility var(--ck-widget-handler-animation-duration) var(--ck-widget-handler-animation-curve),opacity var(--ck-widget-handler-animation-duration) var(--ck-widget-handler-animation-curve)}@media (prefers-reduced-motion:reduce){.ck .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle{transition:none}}.ck .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle .ck-icon{color:var(--ck-color-widget-drag-handler-icon-color);height:var(--ck-widget-handler-icon-size);width:var(--ck-widget-handler-icon-size)}.ck .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle .ck-icon .ck-icon__selected-indicator{opacity:0;transition:opacity .3s var(--ck-widget-handler-animation-curve)}@media (prefers-reduced-motion:reduce){.ck .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle .ck-icon .ck-icon__selected-indicator{transition:none}}.ck .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle:hover .ck-icon .ck-icon__selected-indicator{opacity:1}.ck .ck-widget.ck-widget_with-selection-handle:hover>.ck-widget__selection-handle{background-color:var(--ck-color-widget-hover-border);opacity:1}.ck .ck-widget.ck-widget_with-selection-handle.ck-widget_selected:hover>.ck-widget__selection-handle,.ck .ck-widget.ck-widget_with-selection-handle.ck-widget_selected>.ck-widget__selection-handle{background-color:var(--ck-color-focus-border);opacity:1}.ck .ck-widget.ck-widget_with-selection-handle.ck-widget_selected:hover>.ck-widget__selection-handle .ck-icon .ck-icon__selected-indicator,.ck .ck-widget.ck-widget_with-selection-handle.ck-widget_selected>.ck-widget__selection-handle .ck-icon .ck-icon__selected-indicator{opacity:1}.ck[dir=rtl] .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle{left:auto;right:calc(0px - var(--ck-widget-outline-thickness))}.ck.ck-editor__editable.ck-read-only .ck-widget{transition:none}.ck.ck-editor__editable.ck-read-only .ck-widget:not(.ck-widget_selected){--ck-widget-outline-thickness:0px}.ck.ck-editor__editable.ck-read-only .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle,.ck.ck-editor__editable.ck-read-only .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle:hover{background:var(--ck-color-widget-blurred-border)}.ck.ck-editor__editable.ck-blurred .ck-widget.ck-widget_selected,.ck.ck-editor__editable.ck-blurred .ck-widget.ck-widget_selected:hover{outline-color:var(--ck-color-widget-blurred-border)}.ck.ck-editor__editable.ck-blurred .ck-widget.ck-widget_selected.ck-widget_with-selection-handle:hover>.ck-widget__selection-handle,.ck.ck-editor__editable.ck-blurred .ck-widget.ck-widget_selected.ck-widget_with-selection-handle:hover>.ck-widget__selection-handle:hover,.ck.ck-editor__editable.ck-blurred .ck-widget.ck-widget_selected.ck-widget_with-selection-handle>.ck-widget__selection-handle,.ck.ck-editor__editable.ck-blurred .ck-widget.ck-widget_selected.ck-widget_with-selection-handle>.ck-widget__selection-handle:hover{background:var(--ck-color-widget-blurred-border)}.ck.ck-editor__editable blockquote>.ck-widget.ck-widget_with-selection-handle:first-child,.ck.ck-editor__editable>.ck-widget.ck-widget_with-selection-handle:first-child{margin-top:calc(1em + var(--ck-widget-handler-icon-size))}`, \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@ckeditor/ckeditor5-widget/theme/widget.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-widget/widget.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/mixins/_shadow.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/mixins/_mediacolors.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/mixins/_focus.css\"],\"names\":[],\"mappings\":\"AAKA,MACC,+CAAgD,CAChD,6CAAsD,CACtD,uCAAgD,CAEhD,kDAAmD,CACnD,gCAAiC,CACjC,kEACD,CAOA,8DAEC,iBAqBD,CAnBC,4EACC,iBAOD,CALC,qFAGC,aACD,CASD,iLACC,kBACD,CAGD,kBACC,qDAAsD,CAEtD,qDAAsD,CACtD,6CAA8C,CAF9C,0CAA2C,CAI3C,aAAc,CADd,kCAAmC,CAGnC,uCAAwC,CACxC,4CAA6C,CAF7C,iCAsCD,CAlCC,8NAKC,iBACD,CAEA,0CAEC,qCAAsC,CADtC,oCAED,CAEA,2CAEC,sCAAuC,CADvC,oCAED,CAEA,8CACC,uCAAwC,CACxC,sCACD,CAEA,6CACC,uCAAwC,CACxC,qCACD,CAGA,8CAEC,QAAS,CADT,6CAAgD,CAEhD,yBACD,CChFD,MACC,iCAAkC,CAClC,kCAAmC,CACnC,4CAA6C,CAC7C,wCAAyC,CAEzC,wCAAiD,CACjD,sCAAkD,CAClD,2EAA4E,CAC5E,yEACD,CAEA,eAGC,yBAA0B,CAD1B,mBAAoB,CADpB,gDAAiD,CAGjD,6GAcD,CAZC,uCAND,eAOE,eAWF,CAVC,CAEA,0EAEC,6EACD,CAEA,qBACC,iDACD,CAGD,gCACC,4BAoBD,CAhBC,yGCrCA,qCDoDA,CE/CA,4BACC,yGFmCC,iEEjCD,CACD,CFwCC,+HG/CD,2BAA2B,CAD3B,YHkDC,CAKD,4EAKC,4BAA6B,CAa7B,iEAAkE,CAhBlE,qBAAsB,CAoBtB,mDAAoD,CAhBpD,SAAU,CALV,WAAY,CAsBZ,KAAM,CAFN,2BAA4B,CAT5B,6SAwCD,CA3BC,uCAzBD,4EA0BE,eA0BF,CAzBC,CAEA,qFAIC,oDAAqD,CADrD,yCAA0C,CAD1C,wCAeD,CAVC,kHACC,SAAU,CAGV,+DAKD,CAHC,uCAND,kHAOE,eAEF,CADC,CAKF,wHACC,SACD,CAID,kFAEC,oDAAqD,CADrD,SAED,CAKC,oMAEC,6CAA8C,CAD9C,SAOD,CAHC,gRACC,SACD,CAOH,qFACC,SAAU,CACV,oDACD,CAGA,gDAEC,eAkBD,CAhBC,yEAOC,iCACD,CAGC,gOAEC,gDACD,CAOD,wIAEC,mDAQD,CALE,ghBAEC,gDACD,CAKH,yKAOC,yDACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n:root {\\n\\t--ck-color-resizer: var(--ck-color-focus-border);\\n\\t--ck-color-resizer-tooltip-background: hsl(0, 0%, 15%);\\n\\t--ck-color-resizer-tooltip-text: hsl(0, 0%, 95%);\\n\\n\\t--ck-resizer-border-radius: var(--ck-border-radius);\\n\\t--ck-resizer-tooltip-offset: 10px;\\n\\t--ck-resizer-tooltip-height: calc(var(--ck-spacing-small) * 2 + 10px);\\n}\\n\\n.ck .ck-widget {\\n\\t/* This is neccessary for type around UI to be positioned properly. */\\n\\tposition: relative;\\n}\\n\\n.ck .ck-widget.ck-widget_with-selection-handle {\\n\\t/* Make the widget wrapper a relative positioning container for the drag handle. */\\n\\tposition: relative;\\n\\n\\t& .ck-widget__selection-handle {\\n\\t\\tposition: absolute;\\n\\n\\t\\t& .ck-icon {\\n\\t\\t\\t/* Make sure the icon in not a subject to font-size or line-height to avoid\\n\\t\\t\\tunnecessary spacing around it. */\\n\\t\\t\\tdisplay: block;\\n\\t\\t}\\n\\t}\\n\\n\\t/* Show the selection handle on mouse hover over the widget, but not for nested widgets. */\\n\\t&:hover > .ck-widget__selection-handle {\\n\\t\\tvisibility: visible;\\n\\t}\\n\\n\\t/* Show the selection handle when the widget is selected, but not for nested widgets. */\\n\\t&.ck-widget_selected > .ck-widget__selection-handle {\\n\\t\\tvisibility: visible;\\n\\t}\\n}\\n\\n.ck .ck-size-view {\\n\\tbackground: var(--ck-color-resizer-tooltip-background);\\n\\tcolor: var(--ck-color-resizer-tooltip-text);\\n\\tborder: 1px solid var(--ck-color-resizer-tooltip-text);\\n\\tborder-radius: var(--ck-resizer-border-radius);\\n\\tfont-size: var(--ck-font-size-tiny);\\n\\tdisplay: block;\\n\\tpadding: 0 var(--ck-spacing-small);\\n\\theight: var(--ck-resizer-tooltip-height);\\n\\tline-height: var(--ck-resizer-tooltip-height);\\n\\n\\t&.ck-orientation-top-left,\\n\\t&.ck-orientation-top-right,\\n\\t&.ck-orientation-bottom-right,\\n\\t&.ck-orientation-bottom-left,\\n\\t&.ck-orientation-above-center {\\n\\t\\tposition: absolute;\\n\\t}\\n\\n\\t&.ck-orientation-top-left {\\n\\t\\ttop: var(--ck-resizer-tooltip-offset);\\n\\t\\tleft: var(--ck-resizer-tooltip-offset);\\n\\t}\\n\\n\\t&.ck-orientation-top-right {\\n\\t\\ttop: var(--ck-resizer-tooltip-offset);\\n\\t\\tright: var(--ck-resizer-tooltip-offset);\\n\\t}\\n\\n\\t&.ck-orientation-bottom-right {\\n\\t\\tbottom: var(--ck-resizer-tooltip-offset);\\n\\t\\tright: var(--ck-resizer-tooltip-offset);\\n\\t}\\n\\n\\t&.ck-orientation-bottom-left {\\n\\t\\tbottom: var(--ck-resizer-tooltip-offset);\\n\\t\\tleft: var(--ck-resizer-tooltip-offset);\\n\\t}\\n\\n\\t/* Class applied if the widget is too small to contain the size label */\\n\\t&.ck-orientation-above-center {\\n\\t\\ttop: calc(var(--ck-resizer-tooltip-height) * -1);\\n\\t\\tleft: 50%;\\n\\t\\ttransform: translate(-50%);\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n@import \\\"../mixins/_focus.css\\\";\\n@import \\\"../mixins/_shadow.css\\\";\\n@import \\\"@ckeditor/ckeditor5-ui/theme/mixins/_mediacolors.css\\\";\\n\\n:root {\\n\\t--ck-widget-outline-thickness: 3px;\\n\\t--ck-widget-handler-icon-size: 16px;\\n\\t--ck-widget-handler-animation-duration: 200ms;\\n\\t--ck-widget-handler-animation-curve: ease;\\n\\n\\t--ck-color-widget-blurred-border: hsl(0, 0%, 87%);\\n\\t--ck-color-widget-hover-border: hsl(43, 100%, 62%);\\n\\t--ck-color-widget-editable-focus-background: var(--ck-color-base-background);\\n\\t--ck-color-widget-drag-handler-icon-color: var(--ck-color-base-background);\\n}\\n\\n.ck .ck-widget {\\n\\toutline-width: var(--ck-widget-outline-thickness);\\n\\toutline-style: solid;\\n\\toutline-color: transparent;\\n\\ttransition: outline-color var(--ck-widget-handler-animation-duration) var(--ck-widget-handler-animation-curve);\\n\\n\\t@media (prefers-reduced-motion: reduce) {\\n\\t\\ttransition: none;\\n\\t}\\n\\n\\t&.ck-widget_selected,\\n\\t&.ck-widget_selected:hover {\\n\\t\\toutline: var(--ck-widget-outline-thickness) solid var(--ck-color-focus-border);\\n\\t}\\n\\n\\t&:hover {\\n\\t\\toutline-color: var(--ck-color-widget-hover-border);\\n\\t}\\n}\\n\\n.ck .ck-editor__nested-editable {\\n\\tborder: 1px solid transparent;\\n\\n\\t/* The :focus style is applied before .ck-editor__nested-editable_focused class is rendered in the view.\\n\\tThese styles show a different border for a blink of an eye, so `:focus` need to have same styles applied. */\\n\\t&.ck-editor__nested-editable_focused,\\n\\t&:focus {\\n\\t\\t@mixin ck-box-shadow var(--ck-inner-shadow);\\n\\t\\t@mixin ck-media-default-colors {\\n\\t\\t\\tbackground-color: var(--ck-color-widget-editable-focus-background);\\n\\t\\t}\\n\\n\\t\\t/**\\n\\t\\t * Focus border should not be applied to table cells because it overrides the default table cell border color.\\n\\t\\t * In other words - in some scenarios, the part of the table cell border has focus color style, which is not expected behavior\\n\\t\\t * because it should be the same as the table cell border color.\\n\\t\\t */\\n\\t\\t&:not(td, th) {\\n\\t\\t\\t@mixin ck-focus-ring;\\n\\t\\t}\\n\\t}\\n}\\n\\n.ck .ck-widget.ck-widget_with-selection-handle {\\n\\t& .ck-widget__selection-handle {\\n\\t\\tpadding: 4px;\\n\\t\\tbox-sizing: border-box;\\n\\n\\t\\t/* Background and opacity will be animated as the handler shows up or the widget gets selected. */\\n\\t\\tbackground-color: transparent;\\n\\t\\topacity: 0;\\n\\n\\t\\t/* Transition:\\n\\t\\t * background-color for the .ck-widget_selected state change,\\n\\t\\t * visibility for hiding the handler,\\n\\t\\t * opacity for the proper look of the icon when the handler disappears. */\\n\\t\\ttransition:\\n\\t\\t\\tbackground-color var(--ck-widget-handler-animation-duration) var(--ck-widget-handler-animation-curve),\\n\\t\\t\\tvisibility var(--ck-widget-handler-animation-duration) var(--ck-widget-handler-animation-curve),\\n\\t\\t\\topacity var(--ck-widget-handler-animation-duration) var(--ck-widget-handler-animation-curve);\\n\\n\\t\\t/* Make only top corners round. */\\n\\t\\tborder-radius: var(--ck-border-radius) var(--ck-border-radius) 0 0;\\n\\n\\t\\t/* Place the drag handler outside the widget wrapper. */\\n\\t\\ttransform: translateY(-100%);\\n\\t\\tleft: calc(0px - var(--ck-widget-outline-thickness));\\n\\t\\ttop: 0;\\n\\n\\t\\t@media (prefers-reduced-motion: reduce) {\\n\\t\\t\\ttransition: none;\\n\\t\\t}\\n\\n\\t\\t& .ck-icon {\\n\\t\\t\\t/* Make sure the dimensions of the icon are independent of the fon-size of the content. */\\n\\t\\t\\twidth: var(--ck-widget-handler-icon-size);\\n\\t\\t\\theight: var(--ck-widget-handler-icon-size);\\n\\t\\t\\tcolor: var(--ck-color-widget-drag-handler-icon-color);\\n\\n\\t\\t\\t/* The \\\"selected\\\" part of the icon is invisible by default */\\n\\t\\t\\t& .ck-icon__selected-indicator {\\n\\t\\t\\t\\topacity: 0;\\n\\n\\t\\t\\t\\t/* Note: The animation is longer on purpose. Simply feels better. */\\n\\t\\t\\t\\ttransition: opacity 300ms var(--ck-widget-handler-animation-curve);\\n\\n\\t\\t\\t\\t@media (prefers-reduced-motion: reduce) {\\n\\t\\t\\t\\t\\ttransition: none;\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t/* Advertise using the look of the icon that once clicked the handler, the widget will be selected. */\\n\\t\\t&:hover .ck-icon .ck-icon__selected-indicator {\\n\\t\\t\\topacity: 1;\\n\\t\\t}\\n\\t}\\n\\n\\t/* Show the selection handler on mouse hover over the widget, but not for nested widgets. */\\n\\t&:hover > .ck-widget__selection-handle {\\n\\t\\topacity: 1;\\n\\t\\tbackground-color: var(--ck-color-widget-hover-border);\\n\\t}\\n\\n\\t/* Show the selection handler when the widget is selected, but not for nested widgets. */\\n\\t&.ck-widget_selected,\\n\\t&.ck-widget_selected:hover {\\n\\t\\t& > .ck-widget__selection-handle {\\n\\t\\t\\topacity: 1;\\n\\t\\t\\tbackground-color: var(--ck-color-focus-border);\\n\\n\\t\\t\\t/* When the widget is selected, notify the user using the proper look of the icon. */\\n\\t\\t\\t& .ck-icon .ck-icon__selected-indicator {\\n\\t\\t\\t\\topacity: 1;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n}\\n\\n/* In a RTL environment, align the selection handler to the right side of the widget */\\n/* stylelint-disable-next-line no-descending-specificity */\\n.ck[dir=\\\"rtl\\\"] .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle {\\n\\tleft: auto;\\n\\tright: calc(0px - var(--ck-widget-outline-thickness));\\n}\\n\\n/* https://github.com/ckeditor/ckeditor5/issues/6415 */\\n.ck.ck-editor__editable.ck-read-only .ck-widget {\\n\\t/* Prevent the :hover outline from showing up because of the used outline-color transition. */\\n\\ttransition: none;\\n\\n\\t&:not(.ck-widget_selected) {\\n\\t\\t/* Disable visual effects of hover/active widget when CKEditor is in readOnly mode.\\n\\t\\t * See: https://github.com/ckeditor/ckeditor5/issues/1261\\n\\t\\t *\\n\\t\\t * Leave the unit because this custom property is used in calc() by other features.\\n\\t\\t * See: https://github.com/ckeditor/ckeditor5/issues/6775\\n\\t\\t */\\n\\t\\t--ck-widget-outline-thickness: 0px;\\n\\t}\\n\\n\\t&.ck-widget_with-selection-handle {\\n\\t\\t& .ck-widget__selection-handle,\\n\\t\\t& .ck-widget__selection-handle:hover {\\n\\t\\t\\tbackground: var(--ck-color-widget-blurred-border);\\n\\t\\t}\\n\\t}\\n}\\n\\n/* Style the widget when it's selected but the editable it belongs to lost focus. */\\n/* stylelint-disable-next-line no-descending-specificity */\\n.ck.ck-editor__editable.ck-blurred .ck-widget {\\n\\t&.ck-widget_selected,\\n\\t&.ck-widget_selected:hover {\\n\\t\\toutline-color: var(--ck-color-widget-blurred-border);\\n\\n\\t\\t&.ck-widget_with-selection-handle {\\n\\t\\t\\t& > .ck-widget__selection-handle,\\n\\t\\t\\t& > .ck-widget__selection-handle:hover {\\n\\t\\t\\t\\tbackground: var(--ck-color-widget-blurred-border);\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n}\\n\\n.ck.ck-editor__editable > .ck-widget.ck-widget_with-selection-handle:first-child,\\n.ck.ck-editor__editable blockquote > .ck-widget.ck-widget_with-selection-handle:first-child {\\n\\t/* Do not crop selection handler if a widget is a first-child in the blockquote or in the root editable.\\n\\tIn fact, anything with overflow: hidden.\\n\\thttps://github.com/ckeditor/ckeditor5-block-quote/issues/28\\n\\thttps://github.com/ckeditor/ckeditor5-widget/issues/44\\n\\thttps://github.com/ckeditor/ckeditor5-widget/issues/66 */\\n\\tmargin-top: calc(1em + var(--ck-widget-handler-icon-size));\\n}\\n\",\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n/**\\n * A helper to combine multiple shadows.\\n */\\n@define-mixin ck-box-shadow $shadowA, $shadowB: 0 0 {\\n\\tbox-shadow: $shadowA, $shadowB;\\n}\\n\\n/**\\n * Gives an element a drop shadow so it looks like a floating panel.\\n */\\n@define-mixin ck-drop-shadow {\\n\\t@mixin ck-box-shadow var(--ck-drop-shadow);\\n}\\n\",\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n@define-mixin ck-media-forced-colors {\\n\\t@media (forced-colors: active) {\\n\\t\\t& {\\n\\t\\t\\t@mixin-content;\\n\\t\\t}\\n\\t}\\n}\\n\\n@define-mixin ck-media-default-colors {\\n\\t@media (forced-colors: none) {\\n\\t\\t& {\\n\\t\\t\\t@mixin-content;\\n\\t\\t}\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n/**\\n * A visual style of focused element's border.\\n */\\n@define-mixin ck-focus-ring {\\n\\t/* Disable native outline. */\\n\\toutline: none;\\n\\tborder: var(--ck-focus-ring)\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.ck-image-upload-complete-icon{border-radius:50%;display:block;position:absolute;right:min(var(--ck-spacing-medium),6%);top:min(var(--ck-spacing-medium),6%);z-index:1}.ck-image-upload-complete-icon:after{content:\"\";position:absolute}:root{--ck-color-image-upload-icon:#fff;--ck-color-image-upload-icon-background:#008a00;--ck-image-upload-icon-size:20;--ck-image-upload-icon-width:2px;--ck-image-upload-icon-is-visible:clamp(0px,100% - 50px,1px)}.ck-image-upload-complete-icon{animation-delay:0ms,3s;animation-duration:.5s,.5s;animation-fill-mode:forwards,forwards;animation-name:ck-upload-complete-icon-show,ck-upload-complete-icon-hide;background:var(--ck-color-image-upload-icon-background);font-size:calc(1px*var(--ck-image-upload-icon-size));height:calc(var(--ck-image-upload-icon-is-visible)*var(--ck-image-upload-icon-size));opacity:0;overflow:hidden;width:calc(var(--ck-image-upload-icon-is-visible)*var(--ck-image-upload-icon-size))}.ck-image-upload-complete-icon:after{animation-delay:.5s;animation-duration:.5s;animation-fill-mode:forwards;animation-name:ck-upload-complete-icon-check;border-right:var(--ck-image-upload-icon-width) solid var(--ck-color-image-upload-icon);border-top:var(--ck-image-upload-icon-width) solid var(--ck-color-image-upload-icon);box-sizing:border-box;height:0;left:25%;opacity:0;top:50%;transform:scaleX(-1) rotate(135deg);transform-origin:left top;width:0}@media (prefers-reduced-motion:reduce){.ck-image-upload-complete-icon{animation-duration:0ms}.ck-image-upload-complete-icon:after{animation:none;height:.45em;opacity:1;width:.3em}}@keyframes ck-upload-complete-icon-show{0%{opacity:0}to{opacity:1}}@keyframes ck-upload-complete-icon-hide{0%{opacity:1}to{opacity:0}}@keyframes ck-upload-complete-icon-check{0%{height:0;opacity:1;width:0}33%{height:0;width:.3em}to{height:.45em;opacity:1;width:.3em}}`, \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@ckeditor/ckeditor5-image/theme/imageuploadicon.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-image/imageuploadicon.css\"],\"names\":[],\"mappings\":\"AAKA,+BAUC,iBAAkB,CATlB,aAAc,CACd,iBAAkB,CAOlB,sCAAwC,CADxC,oCAAsC,CAGtC,SAMD,CAJC,qCACC,UAAW,CACX,iBACD,CChBD,MACC,iCAA8C,CAC9C,+CAA4D,CAG5D,8BAA+B,CAC/B,gCAAiC,CACjC,4DACD,CAEA,+BAWC,sBAA4B,CAN5B,0BAAgC,CADhC,qCAAuC,CADvC,wEAA0E,CAD1E,uDAAwD,CAMxD,oDAAuD,CAWvD,oFAAuF,CAlBvF,SAAU,CAgBV,eAAgB,CAChB,mFAqCD,CAjCC,qCAgBC,mBAAsB,CADtB,sBAAyB,CAEzB,4BAA6B,CAH7B,4CAA6C,CAF7C,sFAAuF,CADvF,oFAAqF,CASrF,qBAAsB,CAdtB,QAAS,CAJT,QAAS,CAGT,SAAU,CADV,OAAQ,CAKR,mCAAoC,CACpC,yBAA0B,CAH1B,OAcD,CAEA,uCA7CD,+BA8CE,sBASF,CAPE,qCACC,cAAe,CAGf,YAAc,CAFd,SAAU,CACV,UAED,CACD,CAGD,wCACC,GACC,SACD,CAEA,GACC,SACD,CACD,CAEA,wCACC,GACC,SACD,CAEA,GACC,SACD,CACD,CAEA,yCACC,GAGC,QAAS,CAFT,SAAU,CACV,OAED,CACA,IAEC,QAAS,CADT,UAED,CACA,GAGC,YAAc,CAFd,SAAU,CACV,UAED,CACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n.ck-image-upload-complete-icon {\\n\\tdisplay: block;\\n\\tposition: absolute;\\n\\n\\t/*\\n\\t * Smaller images should have the icon closer to the border.\\n\\t * Match the icon position with the linked image indicator brought by the link image feature.\\n\\t */\\n\\ttop: min(var(--ck-spacing-medium), 6%);\\n\\tright: min(var(--ck-spacing-medium), 6%);\\n\\tborder-radius: 50%;\\n\\tz-index: 1;\\n\\n\\t&::after {\\n\\t\\tcontent: \\\"\\\";\\n\\t\\tposition: absolute;\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n:root {\\n\\t--ck-color-image-upload-icon: hsl(0, 0%, 100%);\\n\\t--ck-color-image-upload-icon-background: hsl(120, 100%, 27%);\\n\\n\\t/* Match the icon size with the linked image indicator brought by the link image feature. */\\n\\t--ck-image-upload-icon-size: 20;\\n\\t--ck-image-upload-icon-width: 2px;\\n\\t--ck-image-upload-icon-is-visible: clamp(0px, 100% - 50px, 1px);\\n}\\n\\n.ck-image-upload-complete-icon {\\n\\topacity: 0;\\n\\tbackground: var(--ck-color-image-upload-icon-background);\\n\\tanimation-name: ck-upload-complete-icon-show, ck-upload-complete-icon-hide;\\n\\tanimation-fill-mode: forwards, forwards;\\n\\tanimation-duration: 500ms, 500ms;\\n\\n\\t/* To make animation scalable. */\\n\\tfont-size: calc(1px * var(--ck-image-upload-icon-size));\\n\\n\\t/* Hide completed upload icon after 3 seconds. */\\n\\tanimation-delay: 0ms, 3000ms;\\n\\n\\t/*\\n\\t * Use CSS math to simulate container queries.\\n\\t * https://css-tricks.com/the-raven-technique-one-step-closer-to-container-queries/#what-about-showing-and-hiding-things\\n\\t */\\n\\toverflow: hidden;\\n\\twidth: calc(var(--ck-image-upload-icon-is-visible) * var(--ck-image-upload-icon-size));\\n\\theight: calc(var(--ck-image-upload-icon-is-visible) * var(--ck-image-upload-icon-size));\\n\\n\\t/* This is check icon element made from border-width mixed with animations. */\\n\\t&::after {\\n\\t\\t/* Because of border transformation we need to \\\"hard code\\\" left position. */\\n\\t\\tleft: 25%;\\n\\n\\t\\ttop: 50%;\\n\\t\\topacity: 0;\\n\\t\\theight: 0;\\n\\t\\twidth: 0;\\n\\n\\t\\ttransform: scaleX(-1) rotate(135deg);\\n\\t\\ttransform-origin: left top;\\n\\t\\tborder-top: var(--ck-image-upload-icon-width) solid var(--ck-color-image-upload-icon);\\n\\t\\tborder-right: var(--ck-image-upload-icon-width) solid var(--ck-color-image-upload-icon);\\n\\n\\t\\tanimation-name: ck-upload-complete-icon-check;\\n\\t\\tanimation-duration: 500ms;\\n\\t\\tanimation-delay: 500ms;\\n\\t\\tanimation-fill-mode: forwards;\\n\\n\\t\\t/* #1095. While reset is not providing proper box-sizing for pseudoelements, we need to handle it. */\\n\\t\\tbox-sizing: border-box;\\n\\t}\\n\\n\\t@media (prefers-reduced-motion: reduce) {\\n\\t\\tanimation-duration: 0ms;\\n\\n\\t\\t&::after {\\n\\t\\t\\tanimation: none;\\n\\t\\t\\topacity: 1;\\n\\t\\t\\twidth: 0.3em;\\n\\t\\t\\theight: 0.45em;\\n\\t\\t}\\n\\t}\\n}\\n\\n@keyframes ck-upload-complete-icon-show {\\n\\tfrom {\\n\\t\\topacity: 0;\\n\\t}\\n\\n\\tto {\\n\\t\\topacity: 1;\\n\\t}\\n}\\n\\n@keyframes ck-upload-complete-icon-hide {\\n\\tfrom {\\n\\t\\topacity: 1;\\n\\t}\\n\\n\\tto {\\n\\t\\topacity: 0;\\n\\t}\\n}\\n\\n@keyframes ck-upload-complete-icon-check {\\n\\t0% {\\n\\t\\topacity: 1;\\n\\t\\twidth: 0;\\n\\t\\theight: 0;\\n\\t}\\n\\t33% {\\n\\t\\twidth: 0.3em;\\n\\t\\theight: 0;\\n\\t}\\n\\t100% {\\n\\t\\topacity: 1;\\n\\t\\twidth: 0.3em;\\n\\t\\theight: 0.45em;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.ck.ck-list-styles-list{display:grid}:root{--ck-list-style-button-size:44px}.ck.ck-list-styles-list{column-gap:var(--ck-spacing-medium);grid-template-columns:repeat(3,auto);padding:var(--ck-spacing-large);row-gap:var(--ck-spacing-medium)}.ck.ck-list-styles-list .ck-button{box-sizing:content-box;margin:0;padding:0}.ck.ck-list-styles-list .ck-button,.ck.ck-list-styles-list .ck-button .ck-icon{height:var(--ck-list-style-button-size);width:var(--ck-list-style-button-size)}`, \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@ckeditor/ckeditor5-list/theme/liststyles.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-list/liststyles.css\"],\"names\":[],\"mappings\":\"AAKA,wBACC,YACD,CCFA,MACC,gCACD,CAEA,wBAGC,mCAAoC,CAFpC,oCAAwC,CAGxC,+BAAgC,CAFhC,gCA4BD,CAxBC,mCAiBC,sBAAuB,CAPvB,QAAS,CANT,SAmBD,CAJC,+EAhBA,uCAAwC,CADxC,sCAoBA\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n.ck.ck-list-styles-list {\\n\\tdisplay: grid;\\n}\\n\",\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n:root {\\n\\t--ck-list-style-button-size: 44px;\\n}\\n\\n.ck.ck-list-styles-list {\\n\\tgrid-template-columns: repeat( 3, auto );\\n\\trow-gap: var(--ck-spacing-medium);\\n\\tcolumn-gap: var(--ck-spacing-medium);\\n\\tpadding: var(--ck-spacing-large);\\n\\n\\t& .ck-button {\\n\\t\\t/* Make the button look like a thumbnail (the icon \\\"takes it all\\\"). */\\n\\t\\twidth: var(--ck-list-style-button-size);\\n\\t\\theight: var(--ck-list-style-button-size);\\n\\t\\tpadding: 0;\\n\\n\\t\\t/*\\n\\t\\t * Buttons are aligned by the grid so disable default button margins to not collide with the\\n\\t\\t * gaps in the grid.\\n\\t\\t */\\n\\t\\tmargin: 0;\\n\\n\\t\\t/*\\n\\t\\t * Make sure the button border (which is displayed on focus, BTW) does not steal pixels\\n\\t\\t * from the button dimensions and, as a result, decrease the size of the icon\\n\\t\\t * (which becomes blurry as it scales down).\\n\\t\\t */\\n\\t\\tbox-sizing: content-box;\\n\\n\\t\\t& .ck-icon {\\n\\t\\t\\twidth: var(--ck-list-style-button-size);\\n\\t\\t\\theight: var(--ck-list-style-button-size);\\n\\t\\t}\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","\"use strict\";\n\nmodule.exports = function (item) {\n var content = item[1];\n var cssMapping = item[3];\n if (!cssMapping) {\n return content;\n }\n if (typeof btoa === \"function\") {\n var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(cssMapping))));\n var data = \"sourceMappingURL=data:application/json;charset=utf-8;base64,\".concat(base64);\n var sourceMapping = \"/*# \".concat(data, \" */\");\n return [content].concat([sourceMapping]).join(\"\\n\");\n }\n return [content].join(\"\\n\");\n};","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:root{--ck-color-mention-background:rgba(153,0,48,.1);--ck-color-mention-text:#990030}.ck-content .mention{background:var(--ck-color-mention-background);color:var(--ck-color-mention-text)}`, \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-mention/mention.css\"],\"names\":[],\"mappings\":\"AAKA,MACC,+CAAwD,CACxD,+BACD,CAEA,qBACC,6CAA8C,CAC9C,kCACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n:root {\\n\\t--ck-color-mention-background: hsla(341, 100%, 30%, 0.1);\\n\\t--ck-color-mention-text: hsl(341, 100%, 30%);\\n}\\n\\n.ck-content .mention {\\n\\tbackground: var(--ck-color-mention-background);\\n\\tcolor: var(--ck-color-mention-text);\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.ck-content blockquote{border-left:5px solid #ccc;font-style:italic;margin-left:0;margin-right:0;overflow:hidden;padding-left:1.5em;padding-right:1.5em}.ck-content[dir=rtl] blockquote{border-left:0;border-right:5px solid #ccc}`, \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@ckeditor/ckeditor5-block-quote/theme/blockquote.css\"],\"names\":[],\"mappings\":\"AAKA,uBAWC,0BAAsC,CADtC,iBAAkB,CAFlB,aAAc,CACd,cAAe,CAPf,eAAgB,CAIhB,kBAAmB,CADnB,mBAOD,CAEA,gCACC,aAAc,CACd,2BACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n.ck-content blockquote {\\n\\t/* See #12 */\\n\\toverflow: hidden;\\n\\n\\t/* https://github.com/ckeditor/ckeditor5-block-quote/issues/15 */\\n\\tpadding-right: 1.5em;\\n\\tpadding-left: 1.5em;\\n\\n\\tmargin-left: 0;\\n\\tmargin-right: 0;\\n\\tfont-style: italic;\\n\\tborder-left: solid 5px hsl(0, 0%, 80%);\\n}\\n\\n.ck-content[dir=\\\"rtl\\\"] blockquote {\\n\\tborder-left: 0;\\n\\tborder-right: solid 5px hsl(0, 0%, 80%);\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.ck.ck-image-insert-url{padding:var(--ck-spacing-large) var(--ck-spacing-large) 0;width:400px}.ck.ck-image-insert-url .ck-image-insert-url__action-row{display:grid;grid-template-columns:repeat(2,1fr)}:root{--ck-image-insert-insert-by-url-width:250px}.ck.ck-image-insert-url{--ck-input-width:100%}.ck.ck-image-insert-url .ck-image-insert-url__action-row{grid-column-gap:var(--ck-spacing-large);margin-top:var(--ck-spacing-large)}.ck.ck-image-insert-url .ck-image-insert-url__action-row .ck-button-cancel,.ck.ck-image-insert-url .ck-image-insert-url__action-row .ck-button-save{justify-content:center;min-width:auto}.ck.ck-image-insert-url .ck-image-insert-url__action-row .ck-button .ck-button__label{color:var(--ck-color-text)}.ck.ck-image-insert-form>.ck.ck-button{display:block;width:100%}[dir=ltr] .ck.ck-image-insert-form>.ck.ck-button{text-align:left}[dir=rtl] .ck.ck-image-insert-form>.ck.ck-button{text-align:right}.ck.ck-image-insert-form>.ck.ck-collapsible{min-width:var(--ck-image-insert-insert-by-url-width)}.ck.ck-image-insert-form>.ck.ck-collapsible:not(:first-child){border-top:1px solid var(--ck-color-base-border)}.ck.ck-image-insert-form>.ck.ck-collapsible:not(:last-child){border-bottom:1px solid var(--ck-color-base-border)}.ck.ck-image-insert-form>.ck.ck-image-insert-url{min-width:var(--ck-image-insert-insert-by-url-width);padding:var(--ck-spacing-large)}.ck.ck-image-insert-form:focus{outline:none}`, \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@ckeditor/ckeditor5-image/theme/imageinsert.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-image/imageinsert.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/mixins/_dir.css\"],\"names\":[],\"mappings\":\"AAKA,wBAEC,yDAA0D,CAD1D,WAOD,CAJC,yDACC,YAAa,CACb,mCACD,CCLD,MACC,2CACD,CAEA,wBACC,qBAgBD,CAdC,yDACC,uCAAwC,CACxC,kCAWD,CATC,oJAEC,sBAAuB,CACvB,cACD,CAEA,sFACC,0BACD,CAKD,uCACC,aAAc,CACd,UASD,CCpCA,iDD8BE,eC5BF,CAFA,iDDkCE,gBChCF,CDoCA,4CASC,oDACD,CATC,8DACC,gDACD,CAEA,6DACC,mDACD,CAMD,iDACC,oDAAqD,CACrD,+BACD,CAEA,+BACC,YACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n.ck.ck-image-insert-url {\\n\\twidth: 400px;\\n\\tpadding: var(--ck-spacing-large) var(--ck-spacing-large) 0;\\n\\n\\t& .ck-image-insert-url__action-row {\\n\\t\\tdisplay: grid;\\n\\t\\tgrid-template-columns: repeat(2, 1fr);\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n@import \\\"@ckeditor/ckeditor5-ui/theme/mixins/_dir.css\\\";\\n\\n:root {\\n\\t--ck-image-insert-insert-by-url-width: 250px;\\n}\\n\\n.ck.ck-image-insert-url {\\n\\t--ck-input-width: 100%;\\n\\n\\t& .ck-image-insert-url__action-row {\\n\\t\\tgrid-column-gap: var(--ck-spacing-large);\\n\\t\\tmargin-top: var(--ck-spacing-large);\\n\\n\\t\\t& .ck-button-save,\\n\\t\\t& .ck-button-cancel {\\n\\t\\t\\tjustify-content: center;\\n\\t\\t\\tmin-width: auto;\\n\\t\\t}\\n\\n\\t\\t& .ck-button .ck-button__label {\\n\\t\\t\\tcolor: var(--ck-color-text);\\n\\t\\t}\\n\\t}\\n}\\n\\n.ck.ck-image-insert-form {\\n\\t& > .ck.ck-button {\\n\\t\\tdisplay: block;\\n\\t\\twidth: 100%;\\n\\n\\t\\t@mixin ck-dir ltr {\\n\\t\\t\\ttext-align: left;\\n\\t\\t}\\n\\n\\t\\t@mixin ck-dir rtl {\\n\\t\\t\\ttext-align: right;\\n\\t\\t}\\n\\t}\\n\\n\\t& > .ck.ck-collapsible {\\n\\t\\t&:not(:first-child) {\\n\\t\\t\\tborder-top: 1px solid var(--ck-color-base-border);\\n\\t\\t}\\n\\n\\t\\t&:not(:last-child) {\\n\\t\\t\\tborder-bottom: 1px solid var(--ck-color-base-border);\\n\\t\\t}\\n\\n\\t\\tmin-width: var(--ck-image-insert-insert-by-url-width);\\n\\t}\\n\\n\\t/* This is the case when there are no other integrations configured than insert by URL */\\n\\t& > .ck.ck-image-insert-url {\\n\\t\\tmin-width: var(--ck-image-insert-insert-by-url-width);\\n\\t\\tpadding: var(--ck-spacing-large);\\n\\t}\\n\\n\\t&:focus {\\n\\t\\toutline: none;\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n@define-mixin ck-dir $direction {\\n\\t[dir=\\\"$(direction)\\\"] & {\\n\\t\\t@mixin-content;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:root{--ck-input-width:18em;--ck-input-text-width:var(--ck-input-width)}.ck.ck-input{background:var(--ck-color-input-background);border:1px solid var(--ck-color-input-border);border-radius:0;min-height:var(--ck-ui-component-min-height);min-width:var(--ck-input-width);padding:var(--ck-spacing-extra-tiny) var(--ck-spacing-medium);transition:box-shadow .1s ease-in-out,border .1s ease-in-out}.ck-rounded-corners .ck.ck-input,.ck.ck-input.ck-rounded-corners{border-radius:var(--ck-border-radius)}@media (prefers-reduced-motion:reduce){.ck.ck-input{transition:none}}.ck.ck-input:focus{border:var(--ck-focus-ring);box-shadow:var(--ck-focus-outer-shadow),0 0;outline:none}.ck.ck-input[readonly]{background:var(--ck-color-input-disabled-background);border:1px solid var(--ck-color-input-disabled-border);color:var(--ck-color-input-disabled-text)}.ck.ck-input[readonly]:focus{box-shadow:var(--ck-focus-disabled-outer-shadow),0 0}.ck.ck-input.ck-error{animation:ck-input-shake .3s ease both;border-color:var(--ck-color-input-error-border)}@media (prefers-reduced-motion:reduce){.ck.ck-input.ck-error{animation:none}}.ck.ck-input.ck-error:focus{box-shadow:var(--ck-focus-error-outer-shadow),0 0}@keyframes ck-input-shake{20%{transform:translateX(-2px)}40%{transform:translateX(2px)}60%{transform:translateX(-1px)}80%{transform:translateX(1px)}}`, \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-ui/components/input/input.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/mixins/_rounded.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/mixins/_focus.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/mixins/_shadow.css\"],\"names\":[],\"mappings\":\"AASA,MACC,qBAAsB,CAGtB,2CACD,CAEA,aAGC,2CAA4C,CAC5C,6CAA8C,CCT9C,eAAgB,CDchB,4CAA6C,CAH7C,+BAAgC,CADhC,6DAA8D,CAO9D,4DAkCD,CCjDC,iEAEC,qCAED,CDaA,uCAdD,aAeE,eA+BF,CA9BC,CAEA,mBEvBA,2BAA2B,CCF3B,2CAA8B,CDC9B,YF2BA,CAEA,uBAEC,oDAAqD,CADrD,sDAAuD,CAEvD,yCAMD,CAJC,6BGnCD,oDHsCC,CAGD,sBAEC,sCAAuC,CADvC,+CAUD,CAPC,uCAJD,sBAKE,cAMF,CALC,CAEA,4BGjDD,iDHmDC,CAIF,0BACC,IACC,0BACD,CAEA,IACC,yBACD,CAEA,IACC,0BACD,CAEA,IACC,yBACD,CACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n@import \\\"../../../mixins/_rounded.css\\\";\\n@import \\\"../../../mixins/_focus.css\\\";\\n@import \\\"../../../mixins/_shadow.css\\\";\\n\\n:root {\\n\\t--ck-input-width: 18em;\\n\\n\\t/* Backward compatibility. */\\n\\t--ck-input-text-width: var(--ck-input-width);\\n}\\n\\n.ck.ck-input {\\n\\t@mixin ck-rounded-corners;\\n\\n\\tbackground: var(--ck-color-input-background);\\n\\tborder: 1px solid var(--ck-color-input-border);\\n\\tpadding: var(--ck-spacing-extra-tiny) var(--ck-spacing-medium);\\n\\tmin-width: var(--ck-input-width);\\n\\n\\t/* This is important to stay of the same height as surrounding buttons */\\n\\tmin-height: var(--ck-ui-component-min-height);\\n\\n\\t/* Apply some smooth transition to the box-shadow and border. */\\n\\ttransition: box-shadow .1s ease-in-out, border .1s ease-in-out;\\n\\n\\t@media (prefers-reduced-motion: reduce) {\\n\\t\\ttransition: none;\\n\\t}\\n\\n\\t&:focus {\\n\\t\\t@mixin ck-focus-ring;\\n\\t\\t@mixin ck-box-shadow var(--ck-focus-outer-shadow);\\n\\t}\\n\\n\\t&[readonly] {\\n\\t\\tborder: 1px solid var(--ck-color-input-disabled-border);\\n\\t\\tbackground: var(--ck-color-input-disabled-background);\\n\\t\\tcolor: var(--ck-color-input-disabled-text);\\n\\n\\t\\t&:focus {\\n\\t\\t\\t/* The read-only input should have a slightly less visible shadow when focused. */\\n\\t\\t\\t@mixin ck-box-shadow var(--ck-focus-disabled-outer-shadow);\\n\\t\\t}\\n\\t}\\n\\n\\t&.ck-error {\\n\\t\\tborder-color: var(--ck-color-input-error-border);\\n\\t\\tanimation: ck-input-shake .3s ease both;\\n\\n\\t\\t@media (prefers-reduced-motion: reduce) {\\n\\t\\t\\tanimation: none;\\n\\t\\t}\\n\\n\\t\\t&:focus {\\n\\t\\t\\t@mixin ck-box-shadow var(--ck-focus-error-outer-shadow);\\n\\t\\t}\\n\\t}\\n}\\n\\n@keyframes ck-input-shake {\\n\\t20% {\\n\\t\\ttransform: translateX(-2px);\\n\\t}\\n\\n\\t40% {\\n\\t\\ttransform: translateX(2px);\\n\\t}\\n\\n\\t60% {\\n\\t\\ttransform: translateX(-1px);\\n\\t}\\n\\n\\t80% {\\n\\t\\ttransform: translateX(1px);\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n/**\\n * Implements rounded corner interface for .ck-rounded-corners class.\\n *\\n * @see $ck-border-radius\\n */\\n@define-mixin ck-rounded-corners {\\n\\tborder-radius: 0;\\n\\n\\t.ck-rounded-corners &,\\n\\t&.ck-rounded-corners {\\n\\t\\tborder-radius: var(--ck-border-radius);\\n\\t\\t@mixin-content;\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n/**\\n * A visual style of focused element's border.\\n */\\n@define-mixin ck-focus-ring {\\n\\t/* Disable native outline. */\\n\\toutline: none;\\n\\tborder: var(--ck-focus-ring)\\n}\\n\",\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n/**\\n * A helper to combine multiple shadows.\\n */\\n@define-mixin ck-box-shadow $shadowA, $shadowB: 0 0 {\\n\\tbox-shadow: $shadowA, $shadowB;\\n}\\n\\n/**\\n * Gives an element a drop shadow so it looks like a floating panel.\\n */\\n@define-mixin ck-drop-shadow {\\n\\t@mixin ck-box-shadow var(--ck-drop-shadow);\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.ck.ck-aria-live-announcer{left:-10000px;position:absolute;top:-10000px}.ck.ck-aria-live-region-list{list-style-type:none}`, \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/components/arialiveannouncer/arialiveannouncer.css\"],\"names\":[],\"mappings\":\"AAKA,2BAEC,aAAc,CADd,iBAAkB,CAElB,YACD,CAEA,6BACC,oBACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n.ck.ck-aria-live-announcer {\\n\\tposition: absolute;\\n\\tleft: -10000px;\\n\\ttop: -10000px;\\n}\\n\\n.ck.ck-aria-live-region-list {\\n\\tlist-style-type: none;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.ck.ck-collapsible.ck-collapsible_collapsed>.ck-collapsible__children{display:none}:root{--ck-collapsible-arrow-size:calc(var(--ck-icon-size)*0.5)}.ck.ck-collapsible>.ck.ck-button{border-radius:0;color:inherit;font-weight:700;width:100%}.ck.ck-collapsible>.ck.ck-button:focus{background:transparent}.ck.ck-collapsible>.ck.ck-button:active,.ck.ck-collapsible>.ck.ck-button:hover:not(:focus),.ck.ck-collapsible>.ck.ck-button:not(:focus){background:transparent;border-color:transparent;box-shadow:none}.ck.ck-collapsible>.ck.ck-button>.ck-icon{margin-right:var(--ck-spacing-medium);width:var(--ck-collapsible-arrow-size)}.ck.ck-collapsible>.ck-collapsible__children{padding:var(--ck-spacing-medium) var(--ck-spacing-large) var(--ck-spacing-large)}.ck.ck-collapsible.ck-collapsible_collapsed>.ck.ck-button .ck-icon{transform:rotate(-90deg)}`, \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/components/collapsible/collapsible.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-ui/components/collapsible/collapsible.css\"],\"names\":[],\"mappings\":\"AAMC,sEACC,YACD,CCHD,MACC,yDACD,CAGC,iCAGC,eAAgB,CAChB,aAAc,CAFd,eAAiB,CADjB,UAmBD,CAdC,uCACC,sBACD,CAEA,wIACC,sBAAuB,CACvB,wBAAyB,CACzB,eACD,CAEA,0CACC,qCAAsC,CACtC,sCACD,CAGD,6CACC,gFACD,CAGC,mEACC,wBACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n.ck.ck-collapsible.ck-collapsible_collapsed {\\n\\t& > .ck-collapsible__children {\\n\\t\\tdisplay: none;\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n:root {\\n\\t--ck-collapsible-arrow-size: calc(0.5 * var(--ck-icon-size));\\n}\\n\\n.ck.ck-collapsible {\\n\\t& > .ck.ck-button {\\n\\t\\twidth: 100%;\\n\\t\\tfont-weight: bold;\\n\\t\\tborder-radius: 0;\\n\\t\\tcolor: inherit;\\n\\n\\t\\t&:focus {\\n\\t\\t\\tbackground: transparent;\\n\\t\\t}\\n\\n\\t\\t&:active, &:not(:focus), &:hover:not(:focus) {\\n\\t\\t\\tbackground: transparent;\\n\\t\\t\\tborder-color: transparent;\\n\\t\\t\\tbox-shadow: none;\\n\\t\\t}\\n\\n\\t\\t& > .ck-icon {\\n\\t\\t\\tmargin-right: var(--ck-spacing-medium);\\n\\t\\t\\twidth: var(--ck-collapsible-arrow-size);\\n\\t\\t}\\n\\t}\\n\\n\\t& > .ck-collapsible__children {\\n\\t\\tpadding: var(--ck-spacing-medium) var(--ck-spacing-large) var(--ck-spacing-large);\\n\\t}\\n\\n\\t&.ck-collapsible_collapsed {\\n\\t\\t& > .ck.ck-button .ck-icon {\\n\\t\\t\\ttransform: rotate(-90deg);\\n\\t\\t}\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.ck.ck-form{padding:0 0 var(--ck-spacing-large)}.ck.ck-form:focus{outline:none}.ck.ck-form .ck.ck-input-text{min-width:100%;width:0}.ck.ck-form .ck.ck-dropdown{min-width:100%}.ck.ck-form .ck.ck-dropdown .ck-dropdown__button:not(:focus){border:1px solid var(--ck-color-base-border)}.ck.ck-form .ck.ck-dropdown .ck-dropdown__button .ck-button__label{width:100%}`, \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-table/form.css\"],\"names\":[],\"mappings\":\"AAKA,YACC,mCAyBD,CAvBC,kBAEC,YACD,CAEA,8BACC,cAAe,CACf,OACD,CAEA,4BACC,cAWD,CARE,6DACC,4CACD,CAEA,mEACC,UACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n.ck.ck-form {\\n\\tpadding: 0 0 var(--ck-spacing-large);\\n\\n\\t&:focus {\\n\\t\\t/* See: https://github.com/ckeditor/ckeditor5/issues/4773 */\\n\\t\\toutline: none;\\n\\t}\\n\\n\\t& .ck.ck-input-text {\\n\\t\\tmin-width: 100%;\\n\\t\\twidth: 0;\\n\\t}\\n\\n\\t& .ck.ck-dropdown {\\n\\t\\tmin-width: 100%;\\n\\n\\t\\t& .ck-dropdown__button {\\n\\t\\t\\t&:not(:focus) {\\n\\t\\t\\t\\tborder: 1px solid var(--ck-color-base-border);\\n\\t\\t\\t}\\n\\n\\t\\t\\t& .ck-button__label {\\n\\t\\t\\t\\twidth: 100%;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.ck.ck-list-properties.ck-list-properties_without-styles{padding:var(--ck-spacing-large)}.ck.ck-list-properties.ck-list-properties_without-styles>*{min-width:14em}.ck.ck-list-properties.ck-list-properties_without-styles>*+*{margin-top:var(--ck-spacing-standard)}.ck.ck-list-properties.ck-list-properties_with-numbered-properties>.ck-list-styles-list{grid-template-columns:repeat(4,auto)}.ck.ck-list-properties.ck-list-properties_with-numbered-properties>.ck-collapsible{border-top:1px solid var(--ck-color-base-border)}.ck.ck-list-properties.ck-list-properties_with-numbered-properties>.ck-collapsible>.ck-collapsible__children>*{width:100%}.ck.ck-list-properties.ck-list-properties_with-numbered-properties>.ck-collapsible>.ck-collapsible__children>*+*{margin-top:var(--ck-spacing-standard)}.ck.ck-list-properties .ck.ck-numbered-list-properties__start-index .ck-input{min-width:auto;width:100%}.ck.ck-list-properties .ck.ck-numbered-list-properties__reversed-order{background:transparent;margin-bottom:calc(var(--ck-spacing-tiny)*-1);padding-left:0;padding-right:0}.ck.ck-list-properties .ck.ck-numbered-list-properties__reversed-order:active,.ck.ck-list-properties .ck.ck-numbered-list-properties__reversed-order:hover{background:none;border-color:transparent;box-shadow:none}`, \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-list/listproperties.css\"],\"names\":[],\"mappings\":\"AAOC,yDACC,+BASD,CAPC,2DACC,cAKD,CAHC,6DACC,qCACD,CASD,wFACC,oCACD,CAGA,mFACC,gDAWD,CARE,+GACC,UAKD,CAHC,iHACC,qCACD,CAMJ,8EACC,cAAe,CACf,UACD,CAEA,uEACC,sBAAuB,CAGvB,6CAAgD,CAFhD,cAAe,CACf,eAQD,CALC,2JAGC,eAAgB,CADhB,wBAAyB,CADzB,eAGD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n.ck.ck-list-properties {\\n\\t/* When there are no list styles and there is no collapsible. */\\n\\t&.ck-list-properties_without-styles {\\n\\t\\tpadding: var(--ck-spacing-large);\\n\\n\\t\\t& > * {\\n\\t\\t\\tmin-width: 14em;\\n\\n\\t\\t\\t& + * {\\n\\t\\t\\t\\tmargin-top: var(--ck-spacing-standard);\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n\\t/*\\n\\t * When the numbered list property fields (start at, reversed) should be displayed,\\n\\t * more horizontal space is needed. Reconfigure the style grid to create that space.\\n\\t */\\n\\t&.ck-list-properties_with-numbered-properties {\\n\\t\\t& > .ck-list-styles-list {\\n\\t\\t\\tgrid-template-columns: repeat( 4, auto );\\n\\t\\t}\\n\\n\\t\\t/* When list styles are rendered and property fields are in a collapsible. */\\n\\t\\t& > .ck-collapsible {\\n\\t\\t\\tborder-top: 1px solid var(--ck-color-base-border);\\n\\n\\t\\t\\t& > .ck-collapsible__children {\\n\\t\\t\\t\\t& > * {\\n\\t\\t\\t\\t\\twidth: 100%;\\n\\n\\t\\t\\t\\t\\t& + * {\\n\\t\\t\\t\\t\\t\\tmargin-top: var(--ck-spacing-standard);\\n\\t\\t\\t\\t\\t}\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n\\t& .ck.ck-numbered-list-properties__start-index .ck-input {\\n\\t\\tmin-width: auto;\\n\\t\\twidth: 100%;\\n\\t}\\n\\n\\t& .ck.ck-numbered-list-properties__reversed-order {\\n\\t\\tbackground: transparent;\\n\\t\\tpadding-left: 0;\\n\\t\\tpadding-right: 0;\\n\\t\\tmargin-bottom: calc(-1 * var(--ck-spacing-tiny));\\n\\n\\t\\t&:active, &:hover {\\n\\t\\t\\tbox-shadow: none;\\n\\t\\t\\tborder-color: transparent;\\n\\t\\t\\tbackground: none;\\n\\t\\t}\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.ck.ck-highlighted-text mark{background:var(--ck-color-highlight-background);font-size:inherit;font-weight:inherit;line-height:inherit;vertical-align:initial}`, \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/components/highlightedtext/highlightedtext.css\"],\"names\":[],\"mappings\":\"AAKA,6BACC,+CAAgD,CAIhD,iBAAkB,CAFlB,mBAAoB,CACpB,mBAAoB,CAFpB,sBAID\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n.ck.ck-highlighted-text mark {\\n\\tbackground: var(--ck-color-highlight-background);\\n\\tvertical-align: initial;\\n\\tfont-weight: inherit;\\n\\tline-height: inherit;\\n\\tfont-size: inherit;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.ck .ck-widget_with-resizer{position:relative}.ck .ck-widget__resizer{display:none;left:0;pointer-events:none;position:absolute;top:0}.ck-focused .ck-widget_with-resizer.ck-widget_selected>.ck-widget__resizer{display:block}.ck .ck-widget__resizer__handle{pointer-events:all;position:absolute}.ck .ck-widget__resizer__handle.ck-widget__resizer__handle-bottom-right,.ck .ck-widget__resizer__handle.ck-widget__resizer__handle-top-left{cursor:nwse-resize}.ck .ck-widget__resizer__handle.ck-widget__resizer__handle-bottom-left,.ck .ck-widget__resizer__handle.ck-widget__resizer__handle-top-right{cursor:nesw-resize}:root{--ck-resizer-size:10px;--ck-resizer-offset:calc(var(--ck-resizer-size)/-2 - 2px);--ck-resizer-border-width:1px}.ck .ck-widget__resizer{outline:1px solid var(--ck-color-resizer)}.ck .ck-widget__resizer__handle{background:var(--ck-color-focus-border);border:var(--ck-resizer-border-width) solid #fff;border-radius:var(--ck-resizer-border-radius);height:var(--ck-resizer-size);width:var(--ck-resizer-size)}.ck .ck-widget__resizer__handle.ck-widget__resizer__handle-top-left{left:var(--ck-resizer-offset);top:var(--ck-resizer-offset)}.ck .ck-widget__resizer__handle.ck-widget__resizer__handle-top-right{right:var(--ck-resizer-offset);top:var(--ck-resizer-offset)}.ck .ck-widget__resizer__handle.ck-widget__resizer__handle-bottom-right{bottom:var(--ck-resizer-offset);right:var(--ck-resizer-offset)}.ck .ck-widget__resizer__handle.ck-widget__resizer__handle-bottom-left{bottom:var(--ck-resizer-offset);left:var(--ck-resizer-offset)}`, \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@ckeditor/ckeditor5-widget/theme/widgetresize.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-widget/widgetresize.css\"],\"names\":[],\"mappings\":\"AAKA,4BAEC,iBACD,CAEA,wBACC,YAAa,CAMb,MAAO,CAFP,mBAAoB,CAHpB,iBAAkB,CAMlB,KACD,CAGC,2EACC,aACD,CAGD,gCAIC,kBAAmB,CAHnB,iBAcD,CATC,4IAEC,kBACD,CAEA,4IAEC,kBACD,CCpCD,MACC,sBAAuB,CAGvB,yDAAiE,CACjE,6BACD,CAEA,wBACC,yCACD,CAEA,gCAGC,uCAAwC,CACxC,gDAA6D,CAC7D,6CAA8C,CAH9C,6BAA8B,CAD9B,4BAyBD,CAnBC,oEAEC,6BAA8B,CAD9B,4BAED,CAEA,qEAEC,8BAA+B,CAD/B,4BAED,CAEA,wEACC,+BAAgC,CAChC,8BACD,CAEA,uEACC,+BAAgC,CAChC,6BACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n.ck .ck-widget_with-resizer {\\n\\t/* Make the widget wrapper a relative positioning container for the drag handle. */\\n\\tposition: relative;\\n}\\n\\n.ck .ck-widget__resizer {\\n\\tdisplay: none;\\n\\tposition: absolute;\\n\\n\\t/* The wrapper itself should not interfere with the pointer device, only the handles should. */\\n\\tpointer-events: none;\\n\\n\\tleft: 0;\\n\\ttop: 0;\\n}\\n\\n.ck-focused .ck-widget_with-resizer.ck-widget_selected {\\n\\t& > .ck-widget__resizer {\\n\\t\\tdisplay: block;\\n\\t}\\n}\\n\\n.ck .ck-widget__resizer__handle {\\n\\tposition: absolute;\\n\\n\\t/* Resizers are the only UI elements that should interfere with a pointer device. */\\n\\tpointer-events: all;\\n\\n\\t&.ck-widget__resizer__handle-top-left,\\n\\t&.ck-widget__resizer__handle-bottom-right {\\n\\t\\tcursor: nwse-resize;\\n\\t}\\n\\n\\t&.ck-widget__resizer__handle-top-right,\\n\\t&.ck-widget__resizer__handle-bottom-left {\\n\\t\\tcursor: nesw-resize;\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n:root {\\n\\t--ck-resizer-size: 10px;\\n\\n\\t/* Set the resizer with a 50% offset. */\\n\\t--ck-resizer-offset: calc( ( var(--ck-resizer-size) / -2 ) - 2px);\\n\\t--ck-resizer-border-width: 1px;\\n}\\n\\n.ck .ck-widget__resizer {\\n\\toutline: 1px solid var(--ck-color-resizer);\\n}\\n\\n.ck .ck-widget__resizer__handle {\\n\\twidth: var(--ck-resizer-size);\\n\\theight: var(--ck-resizer-size);\\n\\tbackground: var(--ck-color-focus-border);\\n\\tborder: var(--ck-resizer-border-width) solid hsl(0, 0%, 100%);\\n\\tborder-radius: var(--ck-resizer-border-radius);\\n\\n\\t&.ck-widget__resizer__handle-top-left {\\n\\t\\ttop: var(--ck-resizer-offset);\\n\\t\\tleft: var(--ck-resizer-offset);\\n\\t}\\n\\n\\t&.ck-widget__resizer__handle-top-right {\\n\\t\\ttop: var(--ck-resizer-offset);\\n\\t\\tright: var(--ck-resizer-offset);\\n\\t}\\n\\n\\t&.ck-widget__resizer__handle-bottom-right {\\n\\t\\tbottom: var(--ck-resizer-offset);\\n\\t\\tright: var(--ck-resizer-offset);\\n\\t}\\n\\n\\t&.ck-widget__resizer__handle-bottom-left {\\n\\t\\tbottom: var(--ck-resizer-offset);\\n\\t\\tleft: var(--ck-resizer-offset);\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.ck.ck-link-form{align-items:flex-start;display:flex}.ck.ck-link-form .ck-label{display:none}@media screen and (max-width:600px){.ck.ck-link-form{flex-wrap:wrap}.ck.ck-link-form .ck-labeled-field-view{flex-basis:100%}.ck.ck-link-form .ck-button{flex-basis:50%}}.ck.ck-link-form_layout-vertical{display:block}.ck.ck-link-form_layout-vertical .ck-button.ck-button-cancel,.ck.ck-link-form_layout-vertical .ck-button.ck-button-save{margin-top:var(--ck-spacing-medium)}.ck.ck-link-form_layout-vertical{min-width:var(--ck-input-width);padding:0}.ck.ck-link-form_layout-vertical .ck-labeled-field-view{margin:var(--ck-spacing-large) var(--ck-spacing-large) var(--ck-spacing-small)}.ck.ck-link-form_layout-vertical .ck-labeled-field-view .ck-input-text{min-width:0;width:100%}.ck.ck-link-form_layout-vertical>.ck-button{border-radius:0;margin:0;padding:var(--ck-spacing-standard);width:50%}.ck.ck-link-form_layout-vertical>.ck-button:not(:focus){border-top:1px solid var(--ck-color-base-border)}[dir=ltr] .ck.ck-link-form_layout-vertical>.ck-button,[dir=rtl] .ck.ck-link-form_layout-vertical>.ck-button{margin-left:0}[dir=rtl] .ck.ck-link-form_layout-vertical>.ck-button:last-of-type{border-right:1px solid var(--ck-color-base-border)}.ck.ck-link-form_layout-vertical .ck.ck-list{margin:0 var(--ck-spacing-large)}.ck.ck-link-form_layout-vertical .ck.ck-list .ck-button.ck-switchbutton{padding:0;width:100%}.ck.ck-link-form_layout-vertical .ck.ck-list .ck-button.ck-switchbutton:hover{background:none}`, \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@ckeditor/ckeditor5-link/theme/linkform.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/mixins/_rwd.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-link/linkform.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/mixins/_dir.css\"],\"names\":[],\"mappings\":\"AAOA,iBAEC,sBAAuB,CADvB,YAkBD,CAfC,2BACC,YACD,CCPA,oCDCD,iBASE,cAUF,CARE,wCACC,eACD,CAEA,4BACC,cACD,CChBD,CDwBD,iCACC,aAYD,CALE,wHAEC,mCACD,CEhCF,iCAEC,+BAAgC,CADhC,SAgDD,CA7CC,wDACC,8EAMD,CAJC,uEACC,WAAY,CACZ,UACD,CAGD,4CAIC,eAAgB,CAFhB,QAAS,CADT,kCAAmC,CAEnC,SAkBD,CAfC,wDACC,gDACD,CC1BD,4GDiCE,aC/BF,CDiCE,mEACC,kDACD,CAKF,6CACC,gCAUD,CARC,wEACC,SAAU,CACV,UAKD,CAHC,8EACC,eACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n@import \\\"@ckeditor/ckeditor5-ui/theme/mixins/_rwd.css\\\";\\n\\n.ck.ck-link-form {\\n\\tdisplay: flex;\\n\\talign-items: flex-start;\\n\\n\\t& .ck-label {\\n\\t\\tdisplay: none;\\n\\t}\\n\\n\\t@mixin ck-media-phone {\\n\\t\\tflex-wrap: wrap;\\n\\n\\t\\t& .ck-labeled-field-view {\\n\\t\\t\\tflex-basis: 100%;\\n\\t\\t}\\n\\n\\t\\t& .ck-button {\\n\\t\\t\\tflex-basis: 50%;\\n\\t\\t}\\n\\t}\\n}\\n\\n/*\\n * Style link form differently when manual decorators are available.\\n * See: https://github.com/ckeditor/ckeditor5-link/issues/186.\\n */\\n.ck.ck-link-form_layout-vertical {\\n\\tdisplay: block;\\n\\n\\t/*\\n\\t * Whether the form is in the responsive mode or not, if there are decorator buttons\\n\\t * keep the top margin of action buttons medium.\\n\\t */\\n\\t& .ck-button {\\n\\t\\t&.ck-button-save,\\n\\t\\t&.ck-button-cancel {\\n\\t\\t\\tmargin-top: var(--ck-spacing-medium);\\n\\t\\t}\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n@define-mixin ck-media-phone {\\n\\t@media screen and (max-width: 600px) {\\n\\t\\t@mixin-content;\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n@import \\\"@ckeditor/ckeditor5-ui/theme/mixins/_dir.css\\\";\\n\\n/*\\n * Style link form differently when manual decorators are available.\\n * See: https://github.com/ckeditor/ckeditor5-link/issues/186.\\n */\\n.ck.ck-link-form_layout-vertical {\\n\\tpadding: 0;\\n\\tmin-width: var(--ck-input-width);\\n\\n\\t& .ck-labeled-field-view {\\n\\t\\tmargin: var(--ck-spacing-large) var(--ck-spacing-large) var(--ck-spacing-small);\\n\\n\\t\\t& .ck-input-text {\\n\\t\\t\\tmin-width: 0;\\n\\t\\t\\twidth: 100%;\\n\\t\\t}\\n\\t}\\n\\n\\t& > .ck-button {\\n\\t\\tpadding: var(--ck-spacing-standard);\\n\\t\\tmargin: 0;\\n\\t\\twidth: 50%;\\n\\t\\tborder-radius: 0;\\n\\n\\t\\t&:not(:focus) {\\n\\t\\t\\tborder-top: 1px solid var(--ck-color-base-border);\\n\\t\\t}\\n\\n\\t\\t@mixin ck-dir ltr {\\n\\t\\t\\tmargin-left: 0;\\n\\t\\t}\\n\\n\\t\\t@mixin ck-dir rtl {\\n\\t\\t\\tmargin-left: 0;\\n\\n\\t\\t\\t&:last-of-type {\\n\\t\\t\\t\\tborder-right: 1px solid var(--ck-color-base-border);\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n\\t/* Using additional `.ck` class for stronger CSS specificity than `.ck.ck-link-form > :not(:first-child)`. */\\n\\t& .ck.ck-list {\\n\\t\\tmargin: 0 var(--ck-spacing-large);\\n\\n\\t\\t& .ck-button.ck-switchbutton {\\n\\t\\t\\tpadding: 0;\\n\\t\\t\\twidth: 100%;\\n\\n\\t\\t\\t&:hover {\\n\\t\\t\\t\\tbackground: none;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n@define-mixin ck-dir $direction {\\n\\t[dir=\\\"$(direction)\\\"] & {\\n\\t\\t@mixin-content;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.ck.ck-dropdown>.ck-dropdown__panel>.ck-list{border-radius:0}.ck-rounded-corners .ck.ck-dropdown>.ck-dropdown__panel>.ck-list,.ck.ck-dropdown>.ck-dropdown__panel>.ck-list.ck-rounded-corners{border-radius:var(--ck-border-radius);border-top-left-radius:0}.ck.ck-dropdown>.ck-dropdown__panel>.ck-list .ck-list__item:first-child>.ck-button{border-radius:0}.ck-rounded-corners .ck.ck-dropdown>.ck-dropdown__panel>.ck-list .ck-list__item:first-child>.ck-button,.ck.ck-dropdown>.ck-dropdown__panel>.ck-list .ck-list__item:first-child>.ck-button.ck-rounded-corners{border-radius:var(--ck-border-radius);border-bottom-left-radius:0;border-bottom-right-radius:0;border-top-left-radius:0}.ck.ck-dropdown>.ck-dropdown__panel>.ck-list .ck-list__item:last-child>.ck-button{border-radius:0}.ck-rounded-corners .ck.ck-dropdown>.ck-dropdown__panel>.ck-list .ck-list__item:last-child>.ck-button,.ck.ck-dropdown>.ck-dropdown__panel>.ck-list .ck-list__item:last-child>.ck-button.ck-rounded-corners{border-radius:var(--ck-border-radius);border-top-left-radius:0;border-top-right-radius:0}`, \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-ui/components/dropdown/listdropdown.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/mixins/_rounded.css\"],\"names\":[],\"mappings\":\"AAOA,6CCIC,eDqBD,CCnBC,iIAEC,qCAAsC,CDJtC,wBCMD,CDAC,mFCND,eDYC,CCVD,6MAEC,qCAAsC,CDKpC,2BAA4B,CAC5B,4BAA6B,CAF7B,wBCFH,CDQC,kFCdD,eDmBC,CCjBD,2MAEC,qCAAsC,CDYpC,wBAAyB,CACzB,yBCXH\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n@import \\\"../../../mixins/_rounded.css\\\";\\n\\n.ck.ck-dropdown > .ck-dropdown__panel > .ck-list {\\n\\t/* Disabled radius of top-left border to be consistent with .dropdown__button\\n\\thttps://github.com/ckeditor/ckeditor5/issues/816 */\\n\\t@mixin ck-rounded-corners {\\n\\t\\tborder-top-left-radius: 0;\\n\\t}\\n\\n\\t/* Make sure the button belonging to the first/last child of the list goes well with the\\n\\tborder radius of the entire panel. */\\n\\t& .ck-list__item {\\n\\t\\t&:first-child > .ck-button {\\n\\t\\t\\t@mixin ck-rounded-corners {\\n\\t\\t\\t\\tborder-top-left-radius: 0;\\n\\t\\t\\t\\tborder-bottom-left-radius: 0;\\n\\t\\t\\t\\tborder-bottom-right-radius: 0;\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t&:last-child > .ck-button {\\n\\t\\t\\t@mixin ck-rounded-corners {\\n\\t\\t\\t\\tborder-top-left-radius: 0;\\n\\t\\t\\t\\tborder-top-right-radius: 0;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n/**\\n * Implements rounded corner interface for .ck-rounded-corners class.\\n *\\n * @see $ck-border-radius\\n */\\n@define-mixin ck-rounded-corners {\\n\\tborder-radius: 0;\\n\\n\\t.ck-rounded-corners &,\\n\\t&.ck-rounded-corners {\\n\\t\\tborder-radius: var(--ck-border-radius);\\n\\t\\t@mixin-content;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.ck.ck-autocomplete{position:relative}.ck.ck-autocomplete>.ck-search__results{position:absolute;z-index:var(--ck-z-panel)}.ck.ck-autocomplete>.ck-search__results.ck-search__results_n{bottom:100%}.ck.ck-autocomplete>.ck-search__results.ck-search__results_s{bottom:auto;top:100%}.ck.ck-autocomplete>.ck-search__results{background:var(--ck-color-base-background);border:1px solid var(--ck-color-dropdown-panel-border);border-radius:0;max-height:200px;min-width:auto;overflow-y:auto}.ck-rounded-corners .ck.ck-autocomplete>.ck-search__results,.ck.ck-autocomplete>.ck-search__results.ck-rounded-corners{border-radius:var(--ck-border-radius)}.ck.ck-autocomplete>.ck-search__results{box-shadow:var(--ck-drop-shadow),0 0}.ck.ck-autocomplete>.ck-search__results.ck-search__results_n{border-bottom-left-radius:0;border-bottom-right-radius:0;margin-bottom:-1px}.ck.ck-autocomplete>.ck-search__results.ck-search__results_s{border-top-left-radius:0;border-top-right-radius:0;margin-top:-1px}`, \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/components/autocomplete/autocomplete.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-ui/components/autocomplete/autocomplete.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/mixins/_rounded.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/mixins/_shadow.css\"],\"names\":[],\"mappings\":\"AAKA,oBACC,iBAeD,CAbC,wCACC,iBAAkB,CAClB,yBAUD,CARC,6DACC,WACD,CAEA,6DAEC,WAAY,CADZ,QAED,CCVD,wCAMC,0CAA2C,CAC3C,sDAAuD,CCLxD,eAAgB,CDEf,gBAAiB,CAIjB,cAAe,CAHf,eAoBD,CCrBA,uHAEC,qCAED,CDRA,wCEAA,oCFyBA,CAfC,6DACC,2BAA4B,CAC5B,4BAA6B,CAG7B,kBACD,CAEA,6DACC,wBAAyB,CACzB,yBAA0B,CAG1B,eACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n.ck.ck-autocomplete {\\n\\tposition: relative;\\n\\n\\t& > .ck-search__results {\\n\\t\\tposition: absolute;\\n\\t\\tz-index: var(--ck-z-panel);\\n\\n\\t\\t&.ck-search__results_n {\\n\\t\\t\\tbottom: 100%;\\n\\t\\t}\\n\\n\\t\\t&.ck-search__results_s {\\n\\t\\t\\ttop: 100%;\\n\\t\\t\\tbottom: auto;\\n\\t\\t}\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n@import \\\"@ckeditor/ckeditor5-theme-lark/theme/mixins/_rounded.css\\\";\\n@import \\\"@ckeditor/ckeditor5-theme-lark/theme/mixins/_shadow.css\\\";\\n\\n.ck.ck-autocomplete {\\n\\t& > .ck-search__results {\\n\\t\\t@mixin ck-rounded-corners;\\n\\t\\t@mixin ck-drop-shadow;\\n\\n\\t\\tmax-height: 200px;\\n\\t\\toverflow-y: auto;\\n\\t\\tbackground: var(--ck-color-base-background);\\n\\t\\tborder: 1px solid var(--ck-color-dropdown-panel-border);\\n\\t\\tmin-width: auto;\\n\\n\\t\\t&.ck-search__results_n {\\n\\t\\t\\tborder-bottom-left-radius: 0;\\n\\t\\t\\tborder-bottom-right-radius: 0;\\n\\n\\t\\t\\t/* Prevent duplicated borders between the input and the results pane. */\\n\\t\\t\\tmargin-bottom: -1px;\\n\\t\\t}\\n\\n\\t\\t&.ck-search__results_s {\\n\\t\\t\\tborder-top-left-radius: 0;\\n\\t\\t\\tborder-top-right-radius: 0;\\n\\n\\t\\t\\t/* Prevent duplicated borders between the input and the results pane. */\\n\\t\\t\\tmargin-top: -1px;\\n\\t\\t}\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n/**\\n * Implements rounded corner interface for .ck-rounded-corners class.\\n *\\n * @see $ck-border-radius\\n */\\n@define-mixin ck-rounded-corners {\\n\\tborder-radius: 0;\\n\\n\\t.ck-rounded-corners &,\\n\\t&.ck-rounded-corners {\\n\\t\\tborder-radius: var(--ck-border-radius);\\n\\t\\t@mixin-content;\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n/**\\n * A helper to combine multiple shadows.\\n */\\n@define-mixin ck-box-shadow $shadowA, $shadowB: 0 0 {\\n\\tbox-shadow: $shadowA, $shadowB;\\n}\\n\\n/**\\n * Gives an element a drop shadow so it looks like a floating panel.\\n */\\n@define-mixin ck-drop-shadow {\\n\\t@mixin ck-box-shadow var(--ck-drop-shadow);\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:root{--ck-table-selected-cell-background:rgba(158,207,250,.3)}.ck.ck-editor__editable .table table td.ck-editor__editable_selected,.ck.ck-editor__editable .table table th.ck-editor__editable_selected{box-shadow:unset;caret-color:transparent;outline:unset;position:relative}.ck.ck-editor__editable .table table td.ck-editor__editable_selected:after,.ck.ck-editor__editable .table table th.ck-editor__editable_selected:after{background-color:var(--ck-table-selected-cell-background);bottom:0;content:\"\";left:0;pointer-events:none;position:absolute;right:0;top:0}.ck.ck-editor__editable .table table td.ck-editor__editable_selected ::selection,.ck.ck-editor__editable .table table td.ck-editor__editable_selected:focus,.ck.ck-editor__editable .table table th.ck-editor__editable_selected ::selection,.ck.ck-editor__editable .table table th.ck-editor__editable_selected:focus{background-color:transparent}.ck.ck-editor__editable .table table td.ck-editor__editable_selected .ck-widget,.ck.ck-editor__editable .table table th.ck-editor__editable_selected .ck-widget{outline:unset}.ck.ck-editor__editable .table table td.ck-editor__editable_selected .ck-widget>.ck-widget__selection-handle,.ck.ck-editor__editable .table table th.ck-editor__editable_selected .ck-widget>.ck-widget__selection-handle{display:none}`, \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-table/tableselection.css\"],\"names\":[],\"mappings\":\"AAKA,MACC,wDACD,CAGC,0IAKC,gBAAiB,CAFjB,uBAAwB,CACxB,aAAc,CAFd,iBAiCD,CA3BC,sJAGC,yDAA0D,CAK1D,QAAS,CAPT,UAAW,CAKX,MAAO,CAJP,mBAAoB,CAEpB,iBAAkB,CAGlB,OAAQ,CAFR,KAID,CAEA,wTAEC,4BACD,CAMA,gKACC,aAKD,CAHC,0NACC,YACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n:root {\\n\\t--ck-table-selected-cell-background: hsla(208, 90%, 80%, .3);\\n}\\n\\n.ck.ck-editor__editable .table table {\\n\\t& td.ck-editor__editable_selected,\\n\\t& th.ck-editor__editable_selected {\\n\\t\\tposition: relative;\\n\\t\\tcaret-color: transparent;\\n\\t\\toutline: unset;\\n\\t\\tbox-shadow: unset;\\n\\n\\t\\t/* https://github.com/ckeditor/ckeditor5/issues/6446 */\\n\\t\\t&:after {\\n\\t\\t\\tcontent: '';\\n\\t\\t\\tpointer-events: none;\\n\\t\\t\\tbackground-color: var(--ck-table-selected-cell-background);\\n\\t\\t\\tposition: absolute;\\n\\t\\t\\ttop: 0;\\n\\t\\t\\tleft: 0;\\n\\t\\t\\tright: 0;\\n\\t\\t\\tbottom: 0;\\n\\t\\t}\\n\\n\\t\\t& ::selection,\\n\\t\\t&:focus {\\n\\t\\t\\tbackground-color: transparent;\\n\\t\\t}\\n\\n\\t\\t/*\\n\\t\\t * To reduce the amount of noise, all widgets in the table selection have no outline and no selection handle.\\n\\t\\t * See https://github.com/ckeditor/ckeditor5/issues/9491.\\n\\t\\t */\\n\\t\\t& .ck-widget {\\n\\t\\t\\toutline: unset;\\n\\n\\t\\t\\t& > .ck-widget__selection-handle {\\n\\t\\t\\t\\tdisplay: none;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.ck.ck-color-selector .ck-color-grids-fragment .ck-button.ck-color-selector__color-picker,.ck.ck-color-selector .ck-color-grids-fragment .ck-button.ck-color-selector__remove-color{align-items:center;display:flex}[dir=rtl] .ck.ck-color-selector .ck-color-grids-fragment .ck-button.ck-color-selector__color-picker,[dir=rtl] .ck.ck-color-selector .ck-color-grids-fragment .ck-button.ck-color-selector__remove-color{justify-content:flex-start}.ck.ck-color-selector .ck-color-picker-fragment .ck.ck-color-selector_action-bar{display:flex;flex-direction:row;justify-content:space-around}.ck.ck-color-selector .ck-color-picker-fragment .ck.ck-color-selector_action-bar .ck-button-cancel,.ck.ck-color-selector .ck-color-picker-fragment .ck.ck-color-selector_action-bar .ck-button-save{flex:1}.ck.ck-color-selector .ck-color-grids-fragment .ck-button.ck-color-selector__color-picker,.ck.ck-color-selector .ck-color-grids-fragment .ck-button.ck-color-selector__remove-color{width:100%}.ck.ck-color-selector .ck-color-grids-fragment .ck-button.ck-color-selector__color-picker{border-bottom-left-radius:0;border-bottom-right-radius:0;padding:calc(var(--ck-spacing-standard)/2) var(--ck-spacing-standard)}.ck.ck-color-selector .ck-color-grids-fragment .ck-button.ck-color-selector__color-picker:not(:focus){border-top:1px solid var(--ck-color-base-border)}[dir=ltr] .ck.ck-color-selector .ck-color-grids-fragment .ck-button.ck-color-selector__color-picker .ck.ck-icon{margin-right:var(--ck-spacing-standard)}[dir=rtl] .ck.ck-color-selector .ck-color-grids-fragment .ck-button.ck-color-selector__color-picker .ck.ck-icon{margin-left:var(--ck-spacing-standard)}.ck.ck-color-selector .ck-color-grids-fragment label.ck.ck-color-grid__label{font-weight:unset}.ck.ck-color-selector .ck-color-picker-fragment .ck.ck-color-picker{padding:8px}.ck.ck-color-selector .ck-color-picker-fragment .ck.ck-color-picker .hex-color-picker{height:100px;min-width:180px}.ck.ck-color-selector .ck-color-picker-fragment .ck.ck-color-picker .hex-color-picker::part(saturation){border-radius:var(--ck-border-radius) var(--ck-border-radius) 0 0}.ck.ck-color-selector .ck-color-picker-fragment .ck.ck-color-picker .hex-color-picker::part(hue){border-radius:0 0 var(--ck-border-radius) var(--ck-border-radius)}.ck.ck-color-selector .ck-color-picker-fragment .ck.ck-color-picker .hex-color-picker::part(hue-pointer),.ck.ck-color-selector .ck-color-picker-fragment .ck.ck-color-picker .hex-color-picker::part(saturation-pointer){height:15px;width:15px}.ck.ck-color-selector .ck-color-picker-fragment .ck.ck-color-selector_action-bar{padding:0 8px 8px}`, \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/components/colorselector/colorselector.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/mixins/_dir.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-ui/components/colorselector/colorselector.css\"],\"names\":[],\"mappings\":\"AAUE,oLAGC,kBAAmB,CADnB,YAMD,CCZD,wMDUG,0BCRH,CDeC,iFACC,YAAa,CACb,kBAAmB,CACnB,4BAMD,CAJC,oMAEC,MACD,CErBD,oLAEC,UACD,CAEA,0FAEC,2BAA4B,CAC5B,4BAA6B,CAF7B,qEAiBD,CAbC,sGACC,gDACD,CDhBF,gHCoBI,uCDlBJ,CAFA,gHCwBI,sCDtBJ,CC2BC,6EACC,iBACD,CAKA,oEACC,WAoBD,CAlBC,sFACC,YAAa,CACb,eAeD,CAbC,wGACC,iEACD,CAEA,iGACC,iEACD,CAEA,yNAGC,WAAY,CADZ,UAED,CAIF,iFACC,iBACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n@import \\\"@ckeditor/ckeditor5-ui/theme/mixins/_dir.css\\\";\\n\\n.ck.ck-color-selector {\\n\\t/* View fragment with color grids. */\\n\\t& .ck-color-grids-fragment {\\n\\t\\t& .ck-button.ck-color-selector__remove-color,\\n\\t\\t& .ck-button.ck-color-selector__color-picker {\\n\\t\\t\\tdisplay: flex;\\n\\t\\t\\talign-items: center;\\n\\n\\t\\t\\t@mixin ck-dir rtl {\\n\\t\\t\\t\\tjustify-content: flex-start;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n\\t/* View fragment with a color picker. */\\n\\t& .ck-color-picker-fragment {\\n\\t\\t& .ck.ck-color-selector_action-bar {\\n\\t\\t\\tdisplay: flex;\\n\\t\\t\\tflex-direction: row;\\n\\t\\t\\tjustify-content: space-around;\\n\\n\\t\\t\\t& .ck-button-save,\\n\\t\\t\\t& .ck-button-cancel {\\n\\t\\t\\t\\tflex: 1\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n@define-mixin ck-dir $direction {\\n\\t[dir=\\\"$(direction)\\\"] & {\\n\\t\\t@mixin-content;\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n@import \\\"@ckeditor/ckeditor5-ui/theme/mixins/_dir.css\\\";\\n\\n.ck.ck-color-selector {\\n\\t/* View fragment with color grids. */\\n\\t& .ck-color-grids-fragment {\\n\\t\\t& .ck-button.ck-color-selector__remove-color,\\n\\t\\t& .ck-button.ck-color-selector__color-picker {\\n\\t\\t\\twidth: 100%;\\n\\t\\t}\\n\\n\\t\\t& .ck-button.ck-color-selector__color-picker {\\n\\t\\t\\tpadding: calc(var(--ck-spacing-standard) / 2) var(--ck-spacing-standard);\\n\\t\\t\\tborder-bottom-left-radius: 0;\\n\\t\\t\\tborder-bottom-right-radius: 0;\\n\\n\\t\\t\\t&:not(:focus) {\\n\\t\\t\\t\\tborder-top: 1px solid var(--ck-color-base-border);\\n\\t\\t\\t}\\n\\n\\t\\t\\t& .ck.ck-icon {\\n\\t\\t\\t\\t@mixin ck-dir ltr {\\n\\t\\t\\t\\t\\tmargin-right: var(--ck-spacing-standard);\\n\\t\\t\\t\\t}\\n\\n\\t\\t\\t\\t@mixin ck-dir rtl {\\n\\t\\t\\t\\t\\tmargin-left: var(--ck-spacing-standard);\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t& label.ck.ck-color-grid__label {\\n\\t\\t\\tfont-weight: unset;\\n\\t\\t}\\n\\t}\\n\\n\\t/* View fragment with a color picker. */\\n\\t& .ck-color-picker-fragment {\\n\\t\\t& .ck.ck-color-picker {\\n\\t\\t\\tpadding: 8px;\\n\\n\\t\\t\\t& .hex-color-picker {\\n\\t\\t\\t\\theight: 100px;\\n\\t\\t\\t\\tmin-width: 180px;\\n\\n\\t\\t\\t\\t&::part(saturation) {\\n\\t\\t\\t\\t\\tborder-radius: var(--ck-border-radius) var(--ck-border-radius) 0 0;\\n\\t\\t\\t\\t}\\n\\n\\t\\t\\t\\t&::part(hue) {\\n\\t\\t\\t\\t\\tborder-radius: 0 0 var(--ck-border-radius) var(--ck-border-radius);\\n\\t\\t\\t\\t}\\n\\n\\t\\t\\t\\t&::part(saturation-pointer),\\n\\t\\t\\t\\t&::part(hue-pointer) {\\n\\t\\t\\t\\t\\twidth: 15px;\\n\\t\\t\\t\\t\\theight: 15px;\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t& .ck.ck-color-selector_action-bar {\\n\\t\\t\\tpadding: 0 8px 8px;\\n\\t\\t}\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Copyright (c) 2013 Pieroxy \n// This work is free. You can redistribute it and/or modify it\n// under the terms of the WTFPL, Version 2\n// For more information see LICENSE.txt or http://www.wtfpl.net/\n//\n// For more information, the home page:\n// http://pieroxy.net/blog/pages/lz-string/testing.html\n//\n// LZ-based compression algorithm, version 1.4.5\nvar LZString = (function() {\n\n// private property\nvar f = String.fromCharCode;\nvar keyStrBase64 = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";\nvar keyStrUriSafe = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+-$\";\nvar baseReverseDic = {};\n\nfunction getBaseValue(alphabet, character) {\n if (!baseReverseDic[alphabet]) {\n baseReverseDic[alphabet] = {};\n for (var i=0 ; i>> 8;\n buf[i*2+1] = current_value % 256;\n }\n return buf;\n },\n\n //decompress from uint8array (UCS-2 big endian format)\n decompressFromUint8Array:function (compressed) {\n if (compressed===null || compressed===undefined){\n return LZString.decompress(compressed);\n } else {\n var buf=new Array(compressed.length/2); // 2 bytes per character\n for (var i=0, TotalLen=buf.length; i> 1;\n }\n } else {\n value = 1;\n for (i=0 ; i> 1;\n }\n }\n context_enlargeIn--;\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits);\n context_numBits++;\n }\n delete context_dictionaryToCreate[context_w];\n } else {\n value = context_dictionary[context_w];\n for (i=0 ; i> 1;\n }\n\n\n }\n context_enlargeIn--;\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits);\n context_numBits++;\n }\n // Add wc to the dictionary.\n context_dictionary[context_wc] = context_dictSize++;\n context_w = String(context_c);\n }\n }\n\n // Output the code for w.\n if (context_w !== \"\") {\n if (Object.prototype.hasOwnProperty.call(context_dictionaryToCreate,context_w)) {\n if (context_w.charCodeAt(0)<256) {\n for (i=0 ; i> 1;\n }\n } else {\n value = 1;\n for (i=0 ; i> 1;\n }\n }\n context_enlargeIn--;\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits);\n context_numBits++;\n }\n delete context_dictionaryToCreate[context_w];\n } else {\n value = context_dictionary[context_w];\n for (i=0 ; i> 1;\n }\n\n\n }\n context_enlargeIn--;\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits);\n context_numBits++;\n }\n }\n\n // Mark the end of the stream\n value = 2;\n for (i=0 ; i> 1;\n }\n\n // Flush the last char\n while (true) {\n context_data_val = (context_data_val << 1);\n if (context_data_position == bitsPerChar-1) {\n context_data.push(getCharFromInt(context_data_val));\n break;\n }\n else context_data_position++;\n }\n return context_data.join('');\n },\n\n decompress: function (compressed) {\n if (compressed == null) return \"\";\n if (compressed == \"\") return null;\n return LZString._decompress(compressed.length, 32768, function(index) { return compressed.charCodeAt(index); });\n },\n\n _decompress: function (length, resetValue, getNextValue) {\n var dictionary = [],\n next,\n enlargeIn = 4,\n dictSize = 4,\n numBits = 3,\n entry = \"\",\n result = [],\n i,\n w,\n bits, resb, maxpower, power,\n c,\n data = {val:getNextValue(0), position:resetValue, index:1};\n\n for (i = 0; i < 3; i += 1) {\n dictionary[i] = i;\n }\n\n bits = 0;\n maxpower = Math.pow(2,2);\n power=1;\n while (power!=maxpower) {\n resb = data.val & data.position;\n data.position >>= 1;\n if (data.position == 0) {\n data.position = resetValue;\n data.val = getNextValue(data.index++);\n }\n bits |= (resb>0 ? 1 : 0) * power;\n power <<= 1;\n }\n\n switch (next = bits) {\n case 0:\n bits = 0;\n maxpower = Math.pow(2,8);\n power=1;\n while (power!=maxpower) {\n resb = data.val & data.position;\n data.position >>= 1;\n if (data.position == 0) {\n data.position = resetValue;\n data.val = getNextValue(data.index++);\n }\n bits |= (resb>0 ? 1 : 0) * power;\n power <<= 1;\n }\n c = f(bits);\n break;\n case 1:\n bits = 0;\n maxpower = Math.pow(2,16);\n power=1;\n while (power!=maxpower) {\n resb = data.val & data.position;\n data.position >>= 1;\n if (data.position == 0) {\n data.position = resetValue;\n data.val = getNextValue(data.index++);\n }\n bits |= (resb>0 ? 1 : 0) * power;\n power <<= 1;\n }\n c = f(bits);\n break;\n case 2:\n return \"\";\n }\n dictionary[3] = c;\n w = c;\n result.push(c);\n while (true) {\n if (data.index > length) {\n return \"\";\n }\n\n bits = 0;\n maxpower = Math.pow(2,numBits);\n power=1;\n while (power!=maxpower) {\n resb = data.val & data.position;\n data.position >>= 1;\n if (data.position == 0) {\n data.position = resetValue;\n data.val = getNextValue(data.index++);\n }\n bits |= (resb>0 ? 1 : 0) * power;\n power <<= 1;\n }\n\n switch (c = bits) {\n case 0:\n bits = 0;\n maxpower = Math.pow(2,8);\n power=1;\n while (power!=maxpower) {\n resb = data.val & data.position;\n data.position >>= 1;\n if (data.position == 0) {\n data.position = resetValue;\n data.val = getNextValue(data.index++);\n }\n bits |= (resb>0 ? 1 : 0) * power;\n power <<= 1;\n }\n\n dictionary[dictSize++] = f(bits);\n c = dictSize-1;\n enlargeIn--;\n break;\n case 1:\n bits = 0;\n maxpower = Math.pow(2,16);\n power=1;\n while (power!=maxpower) {\n resb = data.val & data.position;\n data.position >>= 1;\n if (data.position == 0) {\n data.position = resetValue;\n data.val = getNextValue(data.index++);\n }\n bits |= (resb>0 ? 1 : 0) * power;\n power <<= 1;\n }\n dictionary[dictSize++] = f(bits);\n c = dictSize-1;\n enlargeIn--;\n break;\n case 2:\n return result.join('');\n }\n\n if (enlargeIn == 0) {\n enlargeIn = Math.pow(2, numBits);\n numBits++;\n }\n\n if (dictionary[c]) {\n entry = dictionary[c];\n } else {\n if (c === dictSize) {\n entry = w + w.charAt(0);\n } else {\n return null;\n }\n }\n result.push(entry);\n\n // Add w+entry[0] to the dictionary.\n dictionary[dictSize++] = w + entry.charAt(0);\n enlargeIn--;\n\n w = entry;\n\n if (enlargeIn == 0) {\n enlargeIn = Math.pow(2, numBits);\n numBits++;\n }\n\n }\n }\n};\n return LZString;\n})();\n\nif (typeof define === 'function' && define.amd) {\n define(function () { return LZString; });\n} else if( typeof module !== 'undefined' && module != null ) {\n module.exports = LZString\n} else if( typeof angular !== 'undefined' && angular != null ) {\n angular.module('LZString', [])\n .factory('LZString', function () {\n return LZString;\n });\n}\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:root{--ck-color-image-caption-background:#f7f7f7;--ck-color-image-caption-text:#333;--ck-color-image-caption-highlighted-background:#fd0}.ck-content .image>figcaption{background-color:var(--ck-color-image-caption-background);caption-side:bottom;color:var(--ck-color-image-caption-text);display:table-caption;font-size:.75em;outline-offset:-1px;padding:.6em;word-break:break-word}@media (forced-colors:active){.ck-content .image>figcaption{background-color:unset;color:unset}}@media (forced-colors:none){.ck.ck-editor__editable .image>figcaption.image__caption_highlighted{animation:ck-image-caption-highlight .6s ease-out}}@media (prefers-reduced-motion:reduce){.ck.ck-editor__editable .image>figcaption.image__caption_highlighted{animation:none}}@keyframes ck-image-caption-highlight{0%{background-color:var(--ck-color-image-caption-highlighted-background)}to{background-color:var(--ck-color-image-caption-background)}}`, \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@ckeditor/ckeditor5-image/theme/imagecaption.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/mixins/_mediacolors.css\"],\"names\":[],\"mappings\":\"AAOA,MACC,2CAAoD,CACpD,kCAA8C,CAC9C,oDACD,CAGA,8BAKC,yDAA0D,CAH1D,mBAAoB,CAEpB,wCAAyC,CAHzC,qBAAsB,CAMtB,eAAgB,CAChB,mBAAoB,CAFpB,YAAa,CAHb,qBAYD,CAJC,8BAXD,8BAYE,sBAAuB,CACvB,WAEF,CADC,CCdA,4BACC,qEDmBA,iDCjBA,CACD,CDmBA,uCALD,qEAME,cAEF,CADC,CAGD,sCACC,GACC,qEACD,CAEA,GACC,yDACD,CACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n@import \\\"@ckeditor/ckeditor5-ui/theme/mixins/_mediacolors.css\\\";\\n\\n:root {\\n\\t--ck-color-image-caption-background: hsl(0, 0%, 97%);\\n\\t--ck-color-image-caption-text: hsl(0, 0%, 20%);\\n\\t--ck-color-image-caption-highlighted-background: hsl(52deg 100% 50%);\\n}\\n\\n/* Content styles */\\n.ck-content .image > figcaption {\\n\\tdisplay: table-caption;\\n\\tcaption-side: bottom;\\n\\tword-break: break-word;\\n\\tcolor: var(--ck-color-image-caption-text);\\n\\tbackground-color: var(--ck-color-image-caption-background);\\n\\tpadding: .6em;\\n\\tfont-size: .75em;\\n\\toutline-offset: -1px;\\n\\n\\t/* Improve placeholder rendering in high-constrast mode (https://github.com/ckeditor/ckeditor5/issues/14907). */\\n\\t@media (forced-colors: active) {\\n\\t\\tbackground-color: unset;\\n\\t\\tcolor: unset;\\n\\t}\\n}\\n\\n/* Editing styles */\\n.ck.ck-editor__editable .image > figcaption.image__caption_highlighted {\\n\\t@mixin ck-media-default-colors {\\n\\t\\tanimation: ck-image-caption-highlight .6s ease-out;\\n\\t}\\n\\n\\t@media (prefers-reduced-motion: reduce) {\\n\\t\\tanimation: none;\\n\\t}\\n}\\n\\n@keyframes ck-image-caption-highlight {\\n\\t0% {\\n\\t\\tbackground-color: var(--ck-color-image-caption-highlighted-background);\\n\\t}\\n\\n\\t100% {\\n\\t\\tbackground-color: var(--ck-color-image-caption-background);\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n@define-mixin ck-media-forced-colors {\\n\\t@media (forced-colors: active) {\\n\\t\\t& {\\n\\t\\t\\t@mixin-content;\\n\\t\\t}\\n\\t}\\n}\\n\\n@define-mixin ck-media-default-colors {\\n\\t@media (forced-colors: none) {\\n\\t\\t& {\\n\\t\\t\\t@mixin-content;\\n\\t\\t}\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.color-picker-hex-input{width:max-content}.color-picker-hex-input .ck.ck-input{min-width:unset}.ck.ck-color-picker__row{display:flex;flex-direction:row;flex-wrap:nowrap;justify-content:space-between;margin:var(--ck-spacing-large) 0 0;width:unset}.ck.ck-color-picker__row .ck.ck-labeled-field-view{padding-top:unset}.ck.ck-color-picker__row .ck.ck-input-text{width:unset}.ck.ck-color-picker__row .ck-color-picker__hash-view{padding-right:var(--ck-spacing-medium);padding-top:var(--ck-spacing-tiny)}`, \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/components/colorpicker/colorpicker.css\"],\"names\":[],\"mappings\":\"AAKA,wBACC,iBAKD,CAHC,qCACC,eACD,CAGD,yBACC,YAAa,CACb,kBAAmB,CACnB,gBAAiB,CACjB,6BAA8B,CAC9B,kCAAmC,CACnC,WAcD,CAZC,mDACC,iBACD,CAEA,2CACC,WACD,CAEA,qDAEC,sCAAuC,CADvC,kCAED\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n.color-picker-hex-input {\\n\\twidth: max-content;\\n\\n\\t& .ck.ck-input {\\n\\t\\tmin-width: unset;\\n\\t}\\n}\\n\\n.ck.ck-color-picker__row {\\n\\tdisplay: flex;\\n\\tflex-direction: row;\\n\\tflex-wrap: nowrap;\\n\\tjustify-content: space-between;\\n\\tmargin: var(--ck-spacing-large) 0 0;\\n\\twidth: unset;\\n\\n\\t& .ck.ck-labeled-field-view {\\n\\t\\tpadding-top: unset;\\n\\t}\\n\\n\\t& .ck.ck-input-text {\\n\\t\\twidth: unset;\\n\\t}\\n\\n\\t& .ck-color-picker__hash-view {\\n\\t\\tpadding-top: var(--ck-spacing-tiny);\\n\\t\\tpadding-right: var(--ck-spacing-medium);\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.ck.ck-list-item-button{border-radius:0;min-height:unset;width:100%}[dir=ltr] .ck.ck-list-item-button{text-align:left}[dir=rtl] .ck.ck-list-item-button{text-align:right}[dir=ltr] .ck.ck-list-item-button.ck-list-item-button_toggleable{padding-left:var(--ck-spacing-small)}[dir=rtl] .ck.ck-list-item-button.ck-list-item-button_toggleable{padding-right:var(--ck-spacing-small)}.ck.ck-list-item-button .ck-list-item-button__check-holder{display:inline-flex;height:.9em;width:.9em}[dir=ltr] .ck.ck-list-item-button .ck-list-item-button__check-holder{margin-right:var(--ck-spacing-small)}[dir=rtl] .ck.ck-list-item-button .ck-list-item-button__check-holder{margin-left:var(--ck-spacing-small)}.ck.ck-list-item-button .ck-list-item-button__check-icon{height:100%}.ck.ck-button.ck-list-item-button{padding:var(--ck-spacing-tiny) calc(var(--ck-spacing-standard)*2)}.ck.ck-button.ck-list-item-button,.ck.ck-button.ck-list-item-button.ck-on{background:var(--ck-color-list-background);color:var(--ck-color-text)}[dir=ltr] .ck.ck-button.ck-list-item-button:has(.ck-list-item-button__check-holder){padding-left:var(--ck-spacing-small)}[dir=rtl] .ck.ck-button.ck-list-item-button:has(.ck-list-item-button__check-holder){padding-right:var(--ck-spacing-small)}.ck.ck-button.ck-list-item-button.ck-button.ck-on:hover,.ck.ck-button.ck-list-item-button.ck-on:hover,.ck.ck-button.ck-list-item-button.ck-on:not(.ck-list-item-button_toggleable),.ck.ck-button.ck-list-item-button:hover:not(.ck-disabled){background:var(--ck-color-list-button-hover-background)}.ck.ck-button.ck-list-item-button.ck-button.ck-on:hover:not(.ck-disabled),.ck.ck-button.ck-list-item-button.ck-on:hover:not(.ck-disabled),.ck.ck-button.ck-list-item-button.ck-on:not(.ck-list-item-button_toggleable):not(.ck-disabled),.ck.ck-button.ck-list-item-button:hover:not(.ck-disabled):not(.ck-disabled){color:var(--ck-color-text)}`, \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/components/button/listitembutton.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/mixins/_dir.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-ui/components/button/listitembutton.css\"],\"names\":[],\"mappings\":\"AAOA,wBAGC,eAAgB,CAFhB,gBAAiB,CACjB,UAsCD,CCzCC,kCDOC,eCLD,CAFA,kCDWC,gBCTD,CAFA,iEDgBE,oCCdF,CAFA,iEDoBE,qCClBF,CDsBA,2DACC,mBAAoB,CAEpB,WAAY,CADZ,UAUD,CCpCA,qED8BE,oCC5BF,CAFA,qEDkCE,mCChCF,CDoCA,yDACC,WACD,CEvCD,kCACC,iEAiCD,CA/BC,0EAEC,0CAA2C,CAC3C,0BACD,CDRA,oFCYE,oCDVF,CAFA,oFCgBE,qCDdF,CCuBA,6OAIC,uDAKD,CAHC,qTACC,0BACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n@import \\\"../../mixins/_dir.css\\\";\\n\\n.ck.ck-list-item-button {\\n\\tmin-height: unset;\\n\\twidth: 100%;\\n\\tborder-radius: 0;\\n\\n\\t@mixin ck-dir ltr {\\n\\t\\ttext-align: left;\\n\\t}\\n\\n\\t@mixin ck-dir rtl {\\n\\t\\ttext-align: right;\\n\\t}\\n\\n\\t&.ck-list-item-button_toggleable {\\n\\t\\t@mixin ck-dir ltr {\\n\\t\\t\\tpadding-left: var(--ck-spacing-small);\\n\\t\\t}\\n\\n\\t\\t@mixin ck-dir rtl {\\n\\t\\t\\tpadding-right: var(--ck-spacing-small);\\n\\t\\t}\\n\\t}\\n\\n\\t& .ck-list-item-button__check-holder {\\n\\t\\tdisplay: inline-flex;\\n\\t\\twidth: .9em;\\n\\t\\theight: .9em;\\n\\n\\t\\t@mixin ck-dir ltr {\\n\\t\\t\\tmargin-right: var(--ck-spacing-small);\\n\\t\\t}\\n\\n\\t\\t@mixin ck-dir rtl {\\n\\t\\t\\tmargin-left: var(--ck-spacing-small);\\n\\t\\t}\\n\\t}\\n\\n\\t& .ck-list-item-button__check-icon {\\n\\t\\theight: 100%;\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n@define-mixin ck-dir $direction {\\n\\t[dir=\\\"$(direction)\\\"] & {\\n\\t\\t@mixin-content;\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n@import \\\"@ckeditor/ckeditor5-ui/theme/mixins/_dir.css\\\";\\n\\n.ck.ck-button.ck-list-item-button {\\n\\tpadding: var(--ck-spacing-tiny) calc(2 * var(--ck-spacing-standard));\\n\\n\\t&,\\n\\t&.ck-on {\\n\\t\\tbackground: var(--ck-color-list-background);\\n\\t\\tcolor: var(--ck-color-text);\\n\\t}\\n\\n\\t&:has(.ck-list-item-button__check-holder) {\\n\\t\\t@mixin ck-dir ltr {\\n\\t\\t\\tpadding-left: var(--ck-spacing-small);\\n\\t\\t}\\n\\n\\t\\t@mixin ck-dir rtl {\\n\\t\\t\\tpadding-right: var(--ck-spacing-small);\\n\\t\\t}\\n\\t}\\n\\n\\t/*\\n\\t * `.ck-on` class and background styling is overridden for `ck-button` in many places.\\n\\t * This is a workaround to make sure that the background is not overridden and uses similar\\n\\t * selector specificity as the other overrides.\\n\\t */\\n\\t&:hover:not(.ck-disabled),\\n\\t&.ck-button.ck-on:hover,\\n\\t&.ck-on:not(.ck-list-item-button_toggleable),\\n\\t&.ck-on:hover {\\n\\t\\tbackground: var(--ck-color-list-button-hover-background);\\n\\n\\t\\t&:not(.ck-disabled) {\\n\\t\\t\\tcolor: var(--ck-color-text);\\n\\t\\t}\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.ck .ck-fake-panel{position:absolute;z-index:calc(var(--ck-z-panel) - 1)}.ck .ck-fake-panel div{position:absolute}.ck .ck-fake-panel div:first-child{z-index:2}.ck .ck-fake-panel div:nth-child(2){z-index:1}:root{--ck-balloon-fake-panel-offset-horizontal:6px;--ck-balloon-fake-panel-offset-vertical:6px}.ck .ck-fake-panel div{background:var(--ck-color-panel-background);border:1px solid var(--ck-color-panel-border);border-radius:var(--ck-border-radius);box-shadow:var(--ck-drop-shadow),0 0;height:100%;min-height:15px;width:100%}.ck .ck-fake-panel div:first-child{margin-left:var(--ck-balloon-fake-panel-offset-horizontal);margin-top:var(--ck-balloon-fake-panel-offset-vertical)}.ck .ck-fake-panel div:nth-child(2){margin-left:calc(var(--ck-balloon-fake-panel-offset-horizontal)*2);margin-top:calc(var(--ck-balloon-fake-panel-offset-vertical)*2)}.ck .ck-fake-panel div:nth-child(3){margin-left:calc(var(--ck-balloon-fake-panel-offset-horizontal)*3);margin-top:calc(var(--ck-balloon-fake-panel-offset-vertical)*3)}.ck .ck-balloon-panel_arrow_s+.ck-fake-panel,.ck .ck-balloon-panel_arrow_se+.ck-fake-panel,.ck .ck-balloon-panel_arrow_sw+.ck-fake-panel{--ck-balloon-fake-panel-offset-vertical:-6px}`, \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/components/panel/fakepanel.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-ui/components/panel/fakepanel.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/mixins/_shadow.css\"],\"names\":[],\"mappings\":\"AAKA,mBACC,iBAAkB,CAGlB,mCACD,CAEA,uBACC,iBACD,CAEA,mCACC,SACD,CAEA,oCACC,SACD,CCfA,MACC,6CAA8C,CAC9C,2CACD,CAGA,uBAKC,2CAA4C,CAC5C,6CAA8C,CAC9C,qCAAsC,CCXtC,oCAA8B,CDc9B,WAAY,CAPZ,eAAgB,CAMhB,UAED,CAEA,mCACC,0DAA2D,CAC3D,uDACD,CAEA,oCACC,kEAAqE,CACrE,+DACD,CACA,oCACC,kEAAqE,CACrE,+DACD,CAGA,yIAGC,4CACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n.ck .ck-fake-panel {\\n\\tposition: absolute;\\n\\n\\t/* Fake panels should be placed under main balloon content. */\\n\\tz-index: calc(var(--ck-z-panel) - 1);\\n}\\n\\n.ck .ck-fake-panel div {\\n\\tposition: absolute;\\n}\\n\\n.ck .ck-fake-panel div:nth-child( 1 ) {\\n\\tz-index: 2;\\n}\\n\\n.ck .ck-fake-panel div:nth-child( 2 ) {\\n\\tz-index: 1;\\n}\\n\",\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n@import \\\"../../../mixins/_shadow.css\\\";\\n\\n:root {\\n\\t--ck-balloon-fake-panel-offset-horizontal: 6px;\\n\\t--ck-balloon-fake-panel-offset-vertical: 6px;\\n}\\n\\n/* Let's use `.ck-balloon-panel` appearance. See: balloonpanel.css. */\\n.ck .ck-fake-panel div {\\n\\t@mixin ck-drop-shadow;\\n\\n\\tmin-height: 15px;\\n\\n\\tbackground: var(--ck-color-panel-background);\\n\\tborder: 1px solid var(--ck-color-panel-border);\\n\\tborder-radius: var(--ck-border-radius);\\n\\n\\twidth: 100%;\\n\\theight: 100%;\\n}\\n\\n.ck .ck-fake-panel div:nth-child( 1 ) {\\n\\tmargin-left: var(--ck-balloon-fake-panel-offset-horizontal);\\n\\tmargin-top: var(--ck-balloon-fake-panel-offset-vertical);\\n}\\n\\n.ck .ck-fake-panel div:nth-child( 2 ) {\\n\\tmargin-left: calc(var(--ck-balloon-fake-panel-offset-horizontal) * 2);\\n\\tmargin-top: calc(var(--ck-balloon-fake-panel-offset-vertical) * 2);\\n}\\n.ck .ck-fake-panel div:nth-child( 3 ) {\\n\\tmargin-left: calc(var(--ck-balloon-fake-panel-offset-horizontal) * 3);\\n\\tmargin-top: calc(var(--ck-balloon-fake-panel-offset-vertical) * 3);\\n}\\n\\n/* If balloon is positioned above element, we need to move fake panel to the top. */\\n.ck .ck-balloon-panel_arrow_s + .ck-fake-panel,\\n.ck .ck-balloon-panel_arrow_se + .ck-fake-panel,\\n.ck .ck-balloon-panel_arrow_sw + .ck-fake-panel {\\n\\t--ck-balloon-fake-panel-offset-vertical: -6px;\\n}\\n\",\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n/**\\n * A helper to combine multiple shadows.\\n */\\n@define-mixin ck-box-shadow $shadowA, $shadowB: 0 0 {\\n\\tbox-shadow: $shadowA, $shadowB;\\n}\\n\\n/**\\n * Gives an element a drop shadow so it looks like a floating panel.\\n */\\n@define-mixin ck-drop-shadow {\\n\\t@mixin ck-box-shadow var(--ck-drop-shadow);\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_GET_URL_IMPORT___ from \"../../../css-loader/dist/runtime/getUrl.js\";\nvar ___CSS_LOADER_URL_IMPORT_0___ = new URL(\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyMCAyMCI+PHBhdGggZmlsbD0iI2ZmZiIgZD0ibTExLjA3NyAxNSAuOTkxLTEuNDE2YS43NS43NSAwIDEgMSAxLjIyOS44NmwtMS4xNDggMS42NGEuNzUuNzUgMCAwIDEtLjIxNy4yMDYgNS4yNTEgNS4yNTEgMCAwIDEtOC41MDMtNS45NTUuNy43IDAgMCAxIC4xMi0uMjc0bDEuMTQ3LTEuNjM5YS43NS43NSAwIDEgMSAxLjIyOC44Nkw0LjkzMyAxMC43bC4wMDYuMDAzYTMuNzUgMy43NSAwIDAgMCA2LjEzMiA0LjI5NHptNS40OTQtNS4zMzVhLjc1Ljc1IDAgMCAxLS4xMi4yNzRsLTEuMTQ3IDEuNjM5YS43NS43NSAwIDEgMS0xLjIyOC0uODZsLjg2LTEuMjNhMy43NSAzLjc1IDAgMCAwLTYuMTQ0LTQuMzAxbC0uODYgMS4yMjlhLjc1Ljc1IDAgMCAxLTEuMjI5LS44NmwxLjE0OC0xLjY0YS43NS43NSAwIDAgMSAuMjE3LS4yMDYgNS4yNTEgNS4yNTEgMCAwIDEgOC41MDMgNS45NTVtLTQuNTYzLTIuNTMyYS43NS43NSAwIDAgMSAuMTg0IDEuMDQ1bC0zLjE1NSA0LjUwNWEuNzUuNzUgMCAxIDEtMS4yMjktLjg2bDMuMTU1LTQuNTA2YS43NS43NSAwIDAgMSAxLjA0NS0uMTg0Ii8+PC9zdmc+\", import.meta.url);\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\nvar ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.ck.ck-editor__editable a span.image-inline:after,.ck.ck-editor__editable figure.image>a:after{display:block;position:absolute}:root{--ck-link-image-indicator-icon-size:20;--ck-link-image-indicator-icon-is-visible:clamp(0px,100% - 50px,1px)}.ck.ck-editor__editable a span.image-inline:after,.ck.ck-editor__editable figure.image>a:after{background-color:rgba(0,0,0,.4);background-image:url(${___CSS_LOADER_URL_REPLACEMENT_0___});background-position:50%;background-repeat:no-repeat;background-size:14px;border-radius:100%;content:\"\";height:calc(var(--ck-link-image-indicator-icon-is-visible)*var(--ck-link-image-indicator-icon-size));overflow:hidden;right:min(var(--ck-spacing-medium),6%);top:min(var(--ck-spacing-medium),6%);width:calc(var(--ck-link-image-indicator-icon-is-visible)*var(--ck-link-image-indicator-icon-size))}`, \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@ckeditor/ckeditor5-link/theme/linkimage.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-link/linkimage.css\"],\"names\":[],\"mappings\":\"AASE,+FACC,aAAc,CACd,iBACD,CCPF,MAEC,sCAAuC,CACvC,oEACD,CAME,+FAUC,+BAAqC,CACrC,wDAA+3B,CAG/3B,uBAA2B,CAD3B,2BAA4B,CAD5B,oBAAqB,CAGrB,kBAAmB,CAdnB,UAAW,CAsBX,oGAAuG,CAFvG,eAAgB,CAbhB,sCAAwC,CADxC,oCAAsC,CAetC,mGAED\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n.ck.ck-editor__editable {\\n\\t/* Linked image indicator */\\n\\t& figure.image > a,\\n\\t& a span.image-inline {\\n\\t\\t&::after {\\n\\t\\t\\tdisplay: block;\\n\\t\\t\\tposition: absolute;\\n\\t\\t}\\n\\t}\\n}\\n\\n\",\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n:root {\\n\\t/* Match the icon size with the upload indicator brought by the image upload feature. */\\n\\t--ck-link-image-indicator-icon-size: 20;\\n\\t--ck-link-image-indicator-icon-is-visible: clamp(0px, 100% - 50px, 1px);\\n}\\n\\n.ck.ck-editor__editable {\\n\\t/* Linked image indicator */\\n\\t& figure.image > a,\\n\\t& a span.image-inline {\\n\\t\\t&::after {\\n\\t\\t\\tcontent: \\\"\\\";\\n\\n\\t\\t\\t/*\\n\\t\\t\\t * Smaller images should have the icon closer to the border.\\n\\t\\t\\t * Match the icon position with the upload indicator brought by the image upload feature.\\n\\t\\t\\t */\\n\\t\\t\\ttop: min(var(--ck-spacing-medium), 6%);\\n\\t\\t\\tright: min(var(--ck-spacing-medium), 6%);\\n\\n\\t\\t\\tbackground-color: hsla(0, 0%, 0%, .4);\\n\\t\\t\\tbackground-image: url(\\\"data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMjAgMjAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZmlsbD0iI2ZmZiIgZD0ibTExLjA3NyAxNSAuOTkxLTEuNDE2YS43NS43NSAwIDEgMSAxLjIyOS44NmwtMS4xNDggMS42NGEuNzQ4Ljc0OCAwIDAgMS0uMjE3LjIwNiA1LjI1MSA1LjI1MSAwIDAgMS04LjUwMy01Ljk1NS43NDEuNzQxIDAgMCAxIC4xMi0uMjc0bDEuMTQ3LTEuNjM5YS43NS43NSAwIDEgMSAxLjIyOC44Nkw0LjkzMyAxMC43bC4wMDYuMDAzYTMuNzUgMy43NSAwIDAgMCA2LjEzMiA0LjI5NGwuMDA2LjAwNHptNS40OTQtNS4zMzVhLjc0OC43NDggMCAwIDEtLjEyLjI3NGwtMS4xNDcgMS42MzlhLjc1Ljc1IDAgMSAxLTEuMjI4LS44NmwuODYtMS4yM2EzLjc1IDMuNzUgMCAwIDAtNi4xNDQtNC4zMDFsLS44NiAxLjIyOWEuNzUuNzUgMCAwIDEtMS4yMjktLjg2bDEuMTQ4LTEuNjRhLjc0OC43NDggMCAwIDEgLjIxNy0uMjA2IDUuMjUxIDUuMjUxIDAgMCAxIDguNTAzIDUuOTU1em0tNC41NjMtMi41MzJhLjc1Ljc1IDAgMCAxIC4xODQgMS4wNDVsLTMuMTU1IDQuNTA1YS43NS43NSAwIDEgMS0xLjIyOS0uODZsMy4xNTUtNC41MDZhLjc1Ljc1IDAgMCAxIDEuMDQ1LS4xODR6Ii8+PC9zdmc+\\\");\\n\\t\\t\\tbackground-size: 14px;\\n\\t\\t\\tbackground-repeat: no-repeat;\\n\\t\\t\\tbackground-position: center;\\n\\t\\t\\tborder-radius: 100%;\\n\\n\\t\\t\\t/*\\n\\t\\t\\t* Use CSS math to simulate container queries.\\n\\t\\t\\t* https://css-tricks.com/the-raven-technique-one-step-closer-to-container-queries/#what-about-showing-and-hiding-things\\n\\t\\t\\t*/\\n\\t\\t\\toverflow: hidden;\\n\\t\\t\\twidth: calc(var(--ck-link-image-indicator-icon-is-visible) * var(--ck-link-image-indicator-icon-size));\\n\\t\\t\\theight: calc(var(--ck-link-image-indicator-icon-is-visible) * var(--ck-link-image-indicator-icon-size));\\n\\t\\t}\\n\\t}\\n}\\n\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.ck.ck-table-properties-form .ck-form__row.ck-table-properties-form__alignment-row{align-content:baseline;flex-basis:0;flex-wrap:wrap}.ck.ck-table-properties-form .ck-form__row.ck-table-properties-form__alignment-row .ck.ck-toolbar .ck-toolbar__items{flex-wrap:nowrap}.ck.ck-table-properties-form{width:320px}.ck.ck-table-properties-form .ck-form__row.ck-table-properties-form__alignment-row{align-self:flex-end;padding:0}.ck.ck-table-properties-form .ck-form__row.ck-table-properties-form__alignment-row .ck.ck-toolbar{background:none;margin-top:var(--ck-spacing-standard)}.ck.ck-table-properties-form .ck-form__row.ck-table-properties-form__alignment-row .ck.ck-toolbar .ck-toolbar__items>*{width:40px}`, \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@ckeditor/ckeditor5-table/theme/tableproperties.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-table/tableproperties.css\"],\"names\":[],\"mappings\":\"AAOE,mFAGC,sBAAuB,CADvB,YAAa,CADb,cAOD,CAHC,qHACC,gBACD,CCTH,6BACC,WAmBD,CAhBE,mFACC,mBAAoB,CACpB,SAYD,CAVC,kGACC,eAAgB,CAGhB,qCAKD,CAHC,uHACC,UACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n.ck.ck-table-properties-form {\\n\\t& .ck-form__row {\\n\\t\\t&.ck-table-properties-form__alignment-row {\\n\\t\\t\\tflex-wrap: wrap;\\n\\t\\t\\tflex-basis: 0;\\n\\t\\t\\talign-content: baseline;\\n\\n\\t\\t\\t& .ck.ck-toolbar .ck-toolbar__items {\\n\\t\\t\\t\\tflex-wrap: nowrap;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n.ck.ck-table-properties-form {\\n\\twidth: 320px;\\n\\n\\t& .ck-form__row {\\n\\t\\t&.ck-table-properties-form__alignment-row {\\n\\t\\t\\talign-self: flex-end;\\n\\t\\t\\tpadding: 0;\\n\\n\\t\\t\\t& .ck.ck-toolbar {\\n\\t\\t\\t\\tbackground: none;\\n\\n\\t\\t\\t\\t/* Compensate for missing input label that would push the margin (toolbar has no inputs). */\\n\\t\\t\\t\\tmargin-top: var(--ck-spacing-standard);\\n\\n\\t\\t\\t\\t& .ck-toolbar__items > * {\\n\\t\\t\\t\\t\\twidth: 40px;\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.ck.ck-icon{vertical-align:middle}:root{--ck-icon-size:calc(var(--ck-line-height-base)*var(--ck-font-size-normal));--ck-icon-font-size:.8333350694em}.ck.ck-icon{font-size:var(--ck-icon-font-size);height:var(--ck-icon-size);width:var(--ck-icon-size)}.ck.ck-icon,.ck.ck-icon *{cursor:inherit}.ck.ck-icon.ck-icon_inherit-color,.ck.ck-icon.ck-icon_inherit-color *{color:inherit}.ck.ck-icon.ck-icon_inherit-color :not([fill]){fill:currentColor}`, \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/components/icon/icon.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-ui/components/icon/icon.css\"],\"names\":[],\"mappings\":\"AAKA,YACC,qBACD,CCFA,MACC,0EAA6E,CAC7E,iCACD,CAEA,YAKC,kCAAmC,CAHnC,0BAA2B,CAD3B,yBA2BD,CAlBC,0BAFA,cAKA,CAMC,sEACC,aAMD,CAJC,+CAEC,iBACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n.ck.ck-icon {\\n\\tvertical-align: middle;\\n}\\n\",\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n:root {\\n\\t--ck-icon-size: calc(var(--ck-line-height-base) * var(--ck-font-size-normal));\\n\\t--ck-icon-font-size: .8333350694em;\\n}\\n\\n.ck.ck-icon {\\n\\twidth: var(--ck-icon-size);\\n\\theight: var(--ck-icon-size);\\n\\n\\t/* Multiplied by the height of the line in \\\"px\\\" should give SVG \\\"viewport\\\" dimensions */\\n\\tfont-size: var(--ck-icon-font-size);\\n\\n\\t/* Inherit cursor style (#5). */\\n\\tcursor: inherit;\\n\\n\\t& * {\\n\\t\\t/* Inherit cursor style (#5). */\\n\\t\\tcursor: inherit;\\n\\t}\\n\\n\\t/* Allows dynamic coloring of an icon by inheriting its color from the parent. */\\n\\t&.ck-icon_inherit-color {\\n\\t\\tcolor: inherit;\\n\\n\\t\\t& * {\\n\\t\\t\\tcolor: inherit;\\n\\n\\t\\t\\t&:not([fill]) {\\n\\t\\t\\t\\t/* Needed by FF. */\\n\\t\\t\\t\\tfill: currentColor;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:root{--ck-color-selector-column-resizer-hover:var(--ck-color-base-active);--ck-table-column-resizer-width:7px;--ck-table-column-resizer-position-offset:calc(var(--ck-table-column-resizer-width)*-0.5 - 0.5px)}.ck-content .table .ck-table-resized{table-layout:fixed}.ck-content .table table{overflow:hidden}.ck-content .table td,.ck-content .table th{overflow-wrap:break-word;position:relative}.ck.ck-editor__editable .table .ck-table-column-resizer{bottom:0;cursor:col-resize;position:absolute;right:var(--ck-table-column-resizer-position-offset);top:0;user-select:none;width:var(--ck-table-column-resizer-width);z-index:var(--ck-z-default)}.ck.ck-editor__editable .table[draggable] .ck-table-column-resizer,.ck.ck-editor__editable.ck-column-resize_disabled .table .ck-table-column-resizer{display:none}.ck.ck-editor__editable .table .ck-table-column-resizer:hover,.ck.ck-editor__editable .table .ck-table-column-resizer__active{background-color:var(--ck-color-selector-column-resizer-hover);bottom:-999999px;opacity:.25;top:-999999px}.ck.ck-editor__editable[dir=rtl] .table .ck-table-column-resizer{left:var(--ck-table-column-resizer-position-offset);right:unset}`, \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@ckeditor/ckeditor5-table/theme/tablecolumnresize.css\"],\"names\":[],\"mappings\":\"AAKA,MACC,oEAAqE,CACrE,mCAAoC,CAIpC,iGACD,CAEA,qCACC,kBACD,CAEA,yBACC,eACD,CAEA,4CAIC,wBAAyB,CACzB,iBACD,CAEA,wDAGC,QAAS,CAGT,iBAAkB,CALlB,iBAAkB,CAGlB,oDAAqD,CAFrD,KAAM,CAKN,gBAAiB,CAFjB,0CAA2C,CAG3C,2BACD,CAQA,qJACC,YACD,CAEA,8HAEC,8DAA+D,CAO/D,gBAAiB,CANjB,WAAa,CAKb,aAED,CAEA,iEACC,mDAAoD,CACpD,WACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n:root {\\n\\t--ck-color-selector-column-resizer-hover: var(--ck-color-base-active);\\n\\t--ck-table-column-resizer-width: 7px;\\n\\n\\t/* The offset used for absolute positioning of the resizer element, so that it is placed exactly above the cell border.\\n\\t The value is: minus half the width of the resizer decreased additionaly by the half the width of the border (0.5px). */\\n\\t--ck-table-column-resizer-position-offset: calc(var(--ck-table-column-resizer-width) * -0.5 - 0.5px);\\n}\\n\\n.ck-content .table .ck-table-resized {\\n\\ttable-layout: fixed;\\n}\\n\\n.ck-content .table table {\\n\\toverflow: hidden;\\n}\\n\\n.ck-content .table td,\\n.ck-content .table th {\\n\\t/* To prevent text overflowing beyond its cell when columns are resized by resize handler\\n\\t(https://github.com/ckeditor/ckeditor5/pull/14379#issuecomment-1589460978). */\\n\\toverflow-wrap: break-word;\\n\\tposition: relative;\\n}\\n\\n.ck.ck-editor__editable .table .ck-table-column-resizer {\\n\\tposition: absolute;\\n\\ttop: 0;\\n\\tbottom: 0;\\n\\tright: var(--ck-table-column-resizer-position-offset);\\n\\twidth: var(--ck-table-column-resizer-width);\\n\\tcursor: col-resize;\\n\\tuser-select: none;\\n\\tz-index: var(--ck-z-default);\\n}\\n\\n.ck.ck-editor__editable.ck-column-resize_disabled .table .ck-table-column-resizer {\\n\\tdisplay: none;\\n}\\n\\n/* The resizer elements, which are extended to an extremely high height, break the drag & drop feature in Chrome. To make it work again,\\n all resizers must be hidden while the table is dragged. */\\n.ck.ck-editor__editable .table[draggable] .ck-table-column-resizer {\\n\\tdisplay: none;\\n}\\n\\n.ck.ck-editor__editable .table .ck-table-column-resizer:hover,\\n.ck.ck-editor__editable .table .ck-table-column-resizer__active {\\n\\tbackground-color: var(--ck-color-selector-column-resizer-hover);\\n\\topacity: 0.25;\\n\\t/* The resizer element resides in each cell so to occupy the entire height of the table, which is unknown from a CSS point of view,\\n\\t it is extended to an extremely high height. Even for screens with a very high pixel density, the resizer will fulfill its role as\\n\\t it should, i.e. for a screen of 476 ppi the total height of the resizer will take over 350 sheets of A4 format, which is totally\\n\\t unrealistic height for a single table. */\\n\\ttop: -999999px;\\n\\tbottom: -999999px;\\n}\\n\\n.ck.ck-editor__editable[dir=rtl] .table .ck-table-column-resizer {\\n\\tleft: var(--ck-table-column-resizer-position-offset);\\n\\tright: unset;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.ck-content img.image_resized{height:auto}.ck-content .image.image_resized{box-sizing:border-box;display:block;max-width:100%}.ck-content .image.image_resized img{width:100%}.ck-content .image.image_resized>figcaption{display:block}.ck.ck-editor__editable td .image-inline.image_resized img,.ck.ck-editor__editable th .image-inline.image_resized img{max-width:100%}[dir=ltr] .ck.ck-button.ck-button_with-text.ck-resize-image-button .ck-button__icon{margin-right:var(--ck-spacing-standard)}[dir=rtl] .ck.ck-button.ck-button_with-text.ck-resize-image-button .ck-button__icon{margin-left:var(--ck-spacing-standard)}.ck.ck-dropdown .ck-button.ck-resize-image-button .ck-button__label{width:4em}`, \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@ckeditor/ckeditor5-image/theme/imageresize.css\"],\"names\":[],\"mappings\":\"AAMA,8BACC,WACD,CAEA,iCAQC,qBAAsB,CADtB,aAAc,CANd,cAkBD,CATC,qCAEC,UACD,CAEA,4CAEC,aACD,CAQC,sHACC,cACD,CAIF,oFACC,uCACD,CAEA,oFACC,sCACD,CAEA,oEACC,SACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n/* Preserve aspect ratio of the resized image after introducing image height attribute. */\\n.ck-content img.image_resized {\\n\\theight: auto;\\n}\\n\\n.ck-content .image.image_resized {\\n\\tmax-width: 100%;\\n\\t/*\\n\\tThe `
    ` element for resized images must not use `display:table` as browsers do not support `max-width` for it well.\\n\\tSee https://stackoverflow.com/questions/4019604/chrome-safari-ignoring-max-width-in-table/14420691#14420691 for more.\\n\\tFortunately, since we control the width, there is no risk that the image will look bad.\\n\\t*/\\n\\tdisplay: block;\\n\\tbox-sizing: border-box;\\n\\n\\t& img {\\n\\t\\t/* For resized images it is the `
    ` element that determines the image width. */\\n\\t\\twidth: 100%;\\n\\t}\\n\\n\\t& > figcaption {\\n\\t\\t/* The `
    ` element uses `display:block`, so `
    ` also has to. */\\n\\t\\tdisplay: block;\\n\\t}\\n}\\n\\n.ck.ck-editor__editable {\\n\\t/* The resized inline image nested in the table should respect its parent size.\\n\\tSee https://github.com/ckeditor/ckeditor5/issues/9117. */\\n\\t& td,\\n\\t& th {\\n\\t\\t& .image-inline.image_resized img {\\n\\t\\t\\tmax-width: 100%;\\n\\t\\t}\\n\\t}\\n}\\n\\n[dir=\\\"ltr\\\"] .ck.ck-button.ck-button_with-text.ck-resize-image-button .ck-button__icon {\\n\\tmargin-right: var(--ck-spacing-standard);\\n}\\n\\n[dir=\\\"rtl\\\"] .ck.ck-button.ck-button_with-text.ck-resize-image-button .ck-button__icon {\\n\\tmargin-left: var(--ck-spacing-standard);\\n}\\n\\n.ck.ck-dropdown .ck-button.ck-resize-image-button .ck-button__label {\\n\\twidth: 4em;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","\"use strict\";\n\n/* istanbul ignore next */\nvar replaceText = function replaceText() {\n var textStore = [];\n return function replace(index, replacement) {\n textStore[index] = replacement;\n return textStore.filter(Boolean).join(\"\\n\");\n };\n}();\n\n/* istanbul ignore next */\nfunction apply(styleElement, index, remove, obj) {\n var css;\n if (remove) {\n css = \"\";\n } else {\n css = \"\";\n if (obj.supports) {\n css += \"@supports (\".concat(obj.supports, \") {\");\n }\n if (obj.media) {\n css += \"@media \".concat(obj.media, \" {\");\n }\n var needLayer = typeof obj.layer !== \"undefined\";\n if (needLayer) {\n css += \"@layer\".concat(obj.layer.length > 0 ? \" \".concat(obj.layer) : \"\", \" {\");\n }\n css += obj.css;\n if (needLayer) {\n css += \"}\";\n }\n if (obj.media) {\n css += \"}\";\n }\n if (obj.supports) {\n css += \"}\";\n }\n }\n\n // For old IE\n /* istanbul ignore if */\n if (styleElement.styleSheet) {\n styleElement.styleSheet.cssText = replaceText(index, css);\n } else {\n var cssNode = document.createTextNode(css);\n var childNodes = styleElement.childNodes;\n if (childNodes[index]) {\n styleElement.removeChild(childNodes[index]);\n }\n if (childNodes.length) {\n styleElement.insertBefore(cssNode, childNodes[index]);\n } else {\n styleElement.appendChild(cssNode);\n }\n }\n}\nvar singletonData = {\n singleton: null,\n singletonCounter: 0\n};\n\n/* istanbul ignore next */\nfunction domAPI(options) {\n if (typeof document === \"undefined\") return {\n update: function update() {},\n remove: function remove() {}\n };\n\n // eslint-disable-next-line no-undef,no-use-before-define\n var styleIndex = singletonData.singletonCounter++;\n var styleElement =\n // eslint-disable-next-line no-undef,no-use-before-define\n singletonData.singleton || (\n // eslint-disable-next-line no-undef,no-use-before-define\n singletonData.singleton = options.insertStyleElement(options));\n return {\n update: function update(obj) {\n apply(styleElement, styleIndex, false, obj);\n },\n remove: function remove(obj) {\n apply(styleElement, styleIndex, true, obj);\n }\n };\n}\nmodule.exports = domAPI;","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.ck.ck-input-color{display:flex;flex-direction:row-reverse;width:100%}.ck.ck-input-color>input.ck.ck-input-text{flex-grow:1;min-width:auto}.ck.ck-input-color>div.ck.ck-dropdown{min-width:auto}.ck.ck-input-color>div.ck.ck-dropdown>.ck-input-color__button .ck-dropdown__arrow{display:none}.ck.ck-input-color .ck.ck-input-color__button{display:flex}.ck.ck-input-color .ck.ck-input-color__button .ck.ck-input-color__button__preview{overflow:hidden;position:relative}.ck.ck-input-color .ck.ck-input-color__button .ck.ck-input-color__button__preview>.ck.ck-input-color__button__preview__no-color-indicator{display:block;position:absolute}[dir=ltr] .ck.ck-input-color>.ck.ck-input-text{border-bottom-right-radius:0;border-top-right-radius:0}[dir=rtl] .ck.ck-input-color>.ck.ck-input-text{border-bottom-left-radius:0;border-top-left-radius:0}.ck.ck-input-color>.ck.ck-input-text:focus{z-index:0}.ck.ck-input-color>.ck.ck-dropdown>.ck.ck-button.ck-input-color__button{padding:0}[dir=ltr] .ck.ck-input-color>.ck.ck-dropdown>.ck.ck-button.ck-input-color__button{border-bottom-left-radius:0;border-top-left-radius:0}[dir=ltr] .ck.ck-input-color>.ck.ck-dropdown>.ck.ck-button.ck-input-color__button:not(:focus){border-left:1px solid transparent}[dir=rtl] .ck.ck-input-color>.ck.ck-dropdown>.ck.ck-button.ck-input-color__button{border-bottom-right-radius:0;border-top-right-radius:0}[dir=rtl] .ck.ck-input-color>.ck.ck-dropdown>.ck.ck-button.ck-input-color__button:not(:focus){border-right:1px solid transparent}.ck.ck-input-color>.ck.ck-dropdown>.ck.ck-button.ck-input-color__button.ck-disabled{background:var(--ck-color-input-disabled-background)}.ck.ck-input-color>.ck.ck-dropdown>.ck.ck-button.ck-input-color__button>.ck.ck-input-color__button__preview{border:1px solid var(--ck-color-input-border);border-radius:0;height:20px;width:20px}.ck-rounded-corners .ck.ck-input-color>.ck.ck-dropdown>.ck.ck-button.ck-input-color__button>.ck.ck-input-color__button__preview,.ck.ck-input-color>.ck.ck-dropdown>.ck.ck-button.ck-input-color__button>.ck.ck-input-color__button__preview.ck-rounded-corners{border-radius:var(--ck-border-radius)}.ck.ck-input-color>.ck.ck-dropdown>.ck.ck-button.ck-input-color__button>.ck.ck-input-color__button__preview>.ck.ck-input-color__button__preview__no-color-indicator{background:red;border-radius:2px;height:150%;left:50%;top:-30%;transform:rotate(45deg);transform-origin:50%;width:8%}.ck.ck-input-color .ck.ck-input-color__remove-color{border-bottom-left-radius:0;border-bottom-right-radius:0;padding:calc(var(--ck-spacing-standard)/2) var(--ck-spacing-standard);width:100%}.ck.ck-input-color .ck.ck-input-color__remove-color:not(:focus){border-bottom:1px solid var(--ck-color-input-border)}[dir=ltr] .ck.ck-input-color .ck.ck-input-color__remove-color{border-top-right-radius:0}[dir=rtl] .ck.ck-input-color .ck.ck-input-color__remove-color{border-top-left-radius:0}.ck.ck-input-color .ck.ck-input-color__remove-color .ck.ck-icon{margin-right:var(--ck-spacing-standard)}[dir=rtl] .ck.ck-input-color .ck.ck-input-color__remove-color .ck.ck-icon{margin-left:var(--ck-spacing-standard);margin-right:0}`, \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@ckeditor/ckeditor5-table/theme/colorinput.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/mixins/_dir.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-table/colorinput.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/mixins/_rounded.css\"],\"names\":[],\"mappings\":\"AAKA,mBAEC,YAAa,CACb,0BAA2B,CAF3B,UAgCD,CA5BC,0CAEC,WAAY,CADZ,cAED,CAEA,sCACC,cAMD,CAHC,kFACC,YACD,CAGD,8CAEC,YAWD,CATC,kFAEC,eAAgB,CADhB,iBAOD,CAJC,0IAEC,aAAc,CADd,iBAED,CC7BF,+CCME,4BAA6B,CAD7B,yBDHF,CAFA,+CCWE,2BAA4B,CAD5B,wBDRF,CCcC,2CACC,SACD,CAIA,wEACC,SA0CD,CDjED,kFC2BG,2BAA4B,CAD5B,wBDxBH,CC2BG,8FACC,iCACD,CD/BH,kFCoCG,4BAA6B,CAD7B,yBDjCH,CCoCG,8FACC,kCACD,CAGD,oFACC,oDACD,CAEA,4GAKC,6CAA8C,CC/CjD,eAAgB,CD8Cb,WAAY,CADZ,UAcD,CCzDF,+PAEC,qCAED,CD2CG,oKAKC,cAA6B,CAC7B,iBAAkB,CAHlB,WAAY,CADZ,QAAS,CADT,QAAS,CAMT,uBAAwB,CACxB,oBAAqB,CAJrB,QAKD,CAKH,oDAIC,2BAA4B,CAC5B,4BAA6B,CAH7B,qEAAwE,CADxE,UA0BD,CApBC,gEACC,oDACD,CD7ED,8DCgFE,yBD9EF,CAFA,8DCoFE,wBDlFF,CCqFC,gEACC,uCAMD,CD9FD,0EC4FG,sCAAuC,CADvC,cDzFH\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n.ck.ck-input-color {\\n\\twidth: 100%;\\n\\tdisplay: flex;\\n\\tflex-direction: row-reverse;\\n\\n\\t& > input.ck.ck-input-text {\\n\\t\\tmin-width: auto;\\n\\t\\tflex-grow: 1;\\n\\t}\\n\\n\\t& > div.ck.ck-dropdown {\\n\\t\\tmin-width: auto;\\n\\n\\t\\t/* This dropdown has no arrow but a color preview instead. */\\n\\t\\t& > .ck-input-color__button .ck-dropdown__arrow {\\n\\t\\t\\tdisplay: none;\\n\\t\\t}\\n\\t}\\n\\n\\t& .ck.ck-input-color__button {\\n\\t\\t/* Resolving issue with misaligned buttons on Safari (see #10589) */\\n\\t\\tdisplay: flex;\\n\\n\\t\\t& .ck.ck-input-color__button__preview {\\n\\t\\t\\tposition: relative;\\n\\t\\t\\toverflow: hidden;\\n\\n\\t\\t\\t& > .ck.ck-input-color__button__preview__no-color-indicator {\\n\\t\\t\\t\\tposition: absolute;\\n\\t\\t\\t\\tdisplay: block;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n@define-mixin ck-dir $direction {\\n\\t[dir=\\\"$(direction)\\\"] & {\\n\\t\\t@mixin-content;\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n@import \\\"@ckeditor/ckeditor5-ui/theme/mixins/_dir.css\\\";\\n@import \\\"../mixins/_rounded.css\\\";\\n\\n.ck.ck-input-color {\\n\\t& > .ck.ck-input-text {\\n\\t\\t@mixin ck-dir ltr {\\n\\t\\t\\tborder-top-right-radius: 0;\\n\\t\\t\\tborder-bottom-right-radius: 0;\\n\\t\\t}\\n\\n\\t\\t@mixin ck-dir rtl {\\n\\t\\t\\tborder-top-left-radius: 0;\\n\\t\\t\\tborder-bottom-left-radius: 0;\\n\\t\\t}\\n\\n\\t\\t/* Make sure the focused input is always on top of the dropdown button so its\\n\\t\\t outline and border are never cropped (also when the input is read-only). */\\n\\t\\t&:focus {\\n\\t\\t\\tz-index: 0;\\n\\t\\t}\\n\\t}\\n\\n\\t& > .ck.ck-dropdown {\\n\\t\\t& > .ck.ck-button.ck-input-color__button {\\n\\t\\t\\tpadding: 0;\\n\\n\\t\\t\\t@mixin ck-dir ltr {\\n\\t\\t\\t\\tborder-top-left-radius: 0;\\n\\t\\t\\t\\tborder-bottom-left-radius: 0;\\n\\n\\t\\t\\t\\t&:not(:focus) {\\n\\t\\t\\t\\t\\tborder-left: 1px solid transparent;\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\n\\t\\t\\t@mixin ck-dir rtl {\\n\\t\\t\\t\\tborder-top-right-radius: 0;\\n\\t\\t\\t\\tborder-bottom-right-radius: 0;\\n\\n\\t\\t\\t\\t&:not(:focus) {\\n\\t\\t\\t\\t\\tborder-right: 1px solid transparent;\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\n\\t\\t\\t&.ck-disabled {\\n\\t\\t\\t\\tbackground: var(--ck-color-input-disabled-background);\\n\\t\\t\\t}\\n\\n\\t\\t\\t& > .ck.ck-input-color__button__preview {\\n\\t\\t\\t\\t@mixin ck-rounded-corners;\\n\\n\\t\\t\\t\\twidth: 20px;\\n\\t\\t\\t\\theight: 20px;\\n\\t\\t\\t\\tborder: 1px solid var(--ck-color-input-border);\\n\\n\\t\\t\\t\\t& > .ck.ck-input-color__button__preview__no-color-indicator {\\n\\t\\t\\t\\t\\ttop: -30%;\\n\\t\\t\\t\\t\\tleft: 50%;\\n\\t\\t\\t\\t\\theight: 150%;\\n\\t\\t\\t\\t\\twidth: 8%;\\n\\t\\t\\t\\t\\tbackground: hsl(0, 100%, 50%);\\n\\t\\t\\t\\t\\tborder-radius: 2px;\\n\\t\\t\\t\\t\\ttransform: rotate(45deg);\\n\\t\\t\\t\\t\\ttransform-origin: 50%;\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n\\t& .ck.ck-input-color__remove-color {\\n\\t\\twidth: 100%;\\n\\t\\tpadding: calc(var(--ck-spacing-standard) / 2) var(--ck-spacing-standard);\\n\\n\\t\\tborder-bottom-left-radius: 0;\\n\\t\\tborder-bottom-right-radius: 0;\\n\\n\\t\\t&:not(:focus) {\\n\\t\\t\\tborder-bottom: 1px solid var(--ck-color-input-border);\\n\\t\\t}\\n\\n\\t\\t@mixin ck-dir ltr {\\n\\t\\t\\tborder-top-right-radius: 0;\\n\\t\\t}\\n\\n\\t\\t@mixin ck-dir rtl {\\n\\t\\t\\tborder-top-left-radius: 0;\\n\\t\\t}\\n\\n\\t\\t& .ck.ck-icon {\\n\\t\\t\\tmargin-right: var(--ck-spacing-standard);\\n\\n\\t\\t\\t@mixin ck-dir rtl {\\n\\t\\t\\t\\tmargin-right: 0;\\n\\t\\t\\t\\tmargin-left: var(--ck-spacing-standard);\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n/**\\n * Implements rounded corner interface for .ck-rounded-corners class.\\n *\\n * @see $ck-border-radius\\n */\\n@define-mixin ck-rounded-corners {\\n\\tborder-radius: 0;\\n\\n\\t.ck-rounded-corners &,\\n\\t&.ck-rounded-corners {\\n\\t\\tborder-radius: var(--ck-border-radius);\\n\\t\\t@mixin-content;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","\"use strict\";\n\nmodule.exports = function (url, options) {\n if (!options) {\n options = {};\n }\n if (!url) {\n return url;\n }\n url = String(url.__esModule ? url.default : url);\n\n // If url is already wrapped in quotes, remove them\n if (/^['\"].*['\"]$/.test(url)) {\n url = url.slice(1, -1);\n }\n if (options.hash) {\n url += options.hash;\n }\n\n // Should url be wrapped?\n // See https://drafts.csswg.org/css-values-3/#urls\n if (/[\"'() \\t\\n]|(%20)/.test(url) || options.needQuotes) {\n return \"\\\"\".concat(url.replace(/\"/g, '\\\\\"').replace(/\\n/g, \"\\\\n\"), \"\\\"\");\n }\n return url;\n};","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.ck.ck-label{display:block}.ck.ck-voice-label{display:none}.ck.ck-label{font-weight:700}`, \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/components/label/label.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-ui/components/label/label.css\"],\"names\":[],\"mappings\":\"AAKA,aACC,aACD,CAEA,mBACC,YACD,CCNA,aACC,eACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n.ck.ck-label {\\n\\tdisplay: block;\\n}\\n\\n.ck.ck-voice-label {\\n\\tdisplay: none;\\n}\\n\",\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n.ck.ck-label {\\n\\tfont-weight: bold;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.ck.ck-balloon-panel.ck-tooltip{-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none;z-index:calc(var(--ck-z-dialog) + 100);--ck-balloon-border-width:0px;--ck-balloon-arrow-offset:0px;--ck-balloon-arrow-half-width:4px;--ck-balloon-arrow-height:4px;--ck-tooltip-text-padding:4px;--ck-color-panel-background:var(--ck-color-tooltip-background);box-shadow:none;padding:0 var(--ck-spacing-medium)}.ck.ck-balloon-panel.ck-tooltip .ck-tooltip__text{color:var(--ck-color-tooltip-text);font-size:.9em;line-height:1.5}.ck.ck-balloon-panel.ck-tooltip.ck-tooltip_multi-line .ck-tooltip__text{display:inline-block;max-width:200px;padding:var(--ck-tooltip-text-padding) 0;white-space:break-spaces}.ck.ck-balloon-panel.ck-tooltip:before{display:none}`, \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/components/tooltip/tooltip.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/mixins/_unselectable.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-ui/components/tooltip/tooltip.css\"],\"names\":[],\"mappings\":\"AAOA,gCCEC,qBAAsB,CACtB,wBAAyB,CACzB,oBAAqB,CACrB,gBAAgB,CDFhB,sCAAyC,CEFzC,6BAA8B,CAC9B,6BAA8B,CAC9B,iCAAkC,CAClC,6BAA8B,CAC9B,6BAA8B,CAC9B,8DAA+D,CAkB/D,eAAgB,CAhBhB,kCFJD,CEMC,kDAGC,kCAAmC,CAFnC,cAAe,CACf,eAED,CAEA,wEAEC,oBAAqB,CAErB,eAAgB,CADhB,wCAAyC,CAFzC,wBAID,CAMA,uCACC,YACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n@import \\\"../../mixins/_unselectable.css\\\";\\n\\n.ck.ck-balloon-panel.ck-tooltip {\\n\\t@mixin ck-unselectable;\\n\\n\\tz-index: calc( var(--ck-z-dialog) + 100 );\\n}\\n\",\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n/**\\n * Makes element unselectable.\\n */\\n@define-mixin ck-unselectable {\\n\\t-moz-user-select: none;\\n\\t-webkit-user-select: none;\\n\\t-ms-user-select: none;\\n\\tuser-select: none\\n}\\n\",\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n@import \\\"../../../mixins/_rounded.css\\\";\\n\\n.ck.ck-balloon-panel.ck-tooltip {\\n\\t--ck-balloon-border-width: 0px;\\n\\t--ck-balloon-arrow-offset: 0px;\\n\\t--ck-balloon-arrow-half-width: 4px;\\n\\t--ck-balloon-arrow-height: 4px;\\n\\t--ck-tooltip-text-padding: 4px;\\n\\t--ck-color-panel-background: var(--ck-color-tooltip-background);\\n\\n\\tpadding: 0 var(--ck-spacing-medium);\\n\\n\\t& .ck-tooltip__text {\\n\\t\\tfont-size: .9em;\\n\\t\\tline-height: 1.5;\\n\\t\\tcolor: var(--ck-color-tooltip-text);\\n\\t}\\n\\n\\t&.ck-tooltip_multi-line .ck-tooltip__text {\\n\\t\\twhite-space: break-spaces;\\n\\t\\tdisplay: inline-block;\\n\\t\\tpadding: var(--ck-tooltip-text-padding) 0;\\n\\t\\tmax-width: 200px;\\n\\t}\\n\\n\\t/* Reset balloon panel styles */\\n\\tbox-shadow: none;\\n\\n\\t/* Hide the default shadow of the .ck-balloon-panel tip */\\n\\t&::before {\\n\\t\\tdisplay: none;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:root{--ck-dropdown-menu-menu-item-min-width:18em}.ck.ck-dropdown-menu-list__nested-menu__item{min-width:var(--ck-dropdown-menu-menu-item-min-width)}`, \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-ui/components/dropdown/menu/dropdownmenulistitem.css\"],\"names\":[],\"mappings\":\"AAKA,MACC,2CACD,CAEA,6CACC,qDACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n:root {\\n\\t--ck-dropdown-menu-menu-item-min-width: 18em;\\n}\\n\\n.ck.ck-dropdown-menu-list__nested-menu__item {\\n\\tmin-width: var(--ck-dropdown-menu-menu-item-min-width);\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.ck.ck-menu-bar{background:var(--ck-color-base-background);border:1px solid var(--ck-color-toolbar-border);display:flex;flex-wrap:wrap;gap:var(--ck-spacing-small);justify-content:flex-start;padding:var(--ck-spacing-small);width:100%}`, \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-ui/components/menubar/menubar.css\"],\"names\":[],\"mappings\":\"AAKA,gBAIC,0CAA2C,CAG3C,+CAAgD,CANhD,YAAa,CACb,cAAe,CAIf,2BAA4B,CAH5B,0BAA2B,CAE3B,+BAAgC,CAGhC,UACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n.ck.ck-menu-bar {\\n\\tdisplay: flex;\\n\\tflex-wrap: wrap;\\n\\tjustify-content: flex-start;\\n\\tbackground: var(--ck-color-base-background);\\n\\tpadding: var(--ck-spacing-small);\\n\\tgap: var(--ck-spacing-small);\\n\\tborder: 1px solid var(--ck-color-toolbar-border);\\n\\twidth: 100%;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.ck.ck-form__header{align-items:center;display:flex;flex-direction:row;flex-wrap:nowrap;justify-content:space-between}.ck.ck-form__header h2.ck-form__header__label{flex-grow:1}:root{--ck-form-header-height:44px}.ck.ck-form__header{border-bottom:1px solid var(--ck-color-base-border);height:var(--ck-form-header-height);line-height:var(--ck-form-header-height);padding:var(--ck-spacing-small) var(--ck-spacing-large)}[dir=ltr] .ck.ck-form__header>.ck-icon{margin-right:var(--ck-spacing-medium)}[dir=rtl] .ck.ck-form__header>.ck-icon{margin-left:var(--ck-spacing-medium)}.ck.ck-form__header .ck-form__header__label{--ck-font-size-base:15px;font-weight:700}`, \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/components/formheader/formheader.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-ui/components/formheader/formheader.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/mixins/_dir.css\"],\"names\":[],\"mappings\":\"AAKA,oBAIC,kBAAmB,CAHnB,YAAa,CACb,kBAAmB,CACnB,gBAAiB,CAEjB,6BAKD,CAHC,8CACC,WACD,CCPD,MACC,4BACD,CAEA,oBAIC,mDAAoD,CAFpD,mCAAoC,CACpC,wCAAyC,CAFzC,uDAmBD,CCzBC,uCDaE,qCCXF,CAFA,uCDiBE,oCCfF,CDmBA,4CACC,wBAAyB,CACzB,eACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n.ck.ck-form__header {\\n\\tdisplay: flex;\\n\\tflex-direction: row;\\n\\tflex-wrap: nowrap;\\n\\talign-items: center;\\n\\tjustify-content: space-between;\\n\\n\\t& h2.ck-form__header__label {\\n\\t\\tflex-grow: 1;\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n@import \\\"@ckeditor/ckeditor5-ui/theme/mixins/_dir.css\\\";\\n\\n:root {\\n\\t--ck-form-header-height: 44px;\\n}\\n\\n.ck.ck-form__header {\\n\\tpadding: var(--ck-spacing-small) var(--ck-spacing-large);\\n\\theight: var(--ck-form-header-height);\\n\\tline-height: var(--ck-form-header-height);\\n\\tborder-bottom: 1px solid var(--ck-color-base-border);\\n\\n\\t& > .ck-icon {\\n\\t\\t@mixin ck-dir ltr {\\n\\t\\t\\tmargin-right: var(--ck-spacing-medium);\\n\\t\\t}\\n\\n\\t\\t@mixin ck-dir rtl {\\n\\t\\t\\tmargin-left: var(--ck-spacing-medium);\\n\\t\\t}\\n\\t}\\n\\n\\t& .ck-form__header__label {\\n\\t\\t--ck-font-size-base: 15px;\\n\\t\\tfont-weight: bold;\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n@define-mixin ck-dir $direction {\\n\\t[dir=\\\"$(direction)\\\"] & {\\n\\t\\t@mixin-content;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","\"use strict\";\n\n/* istanbul ignore next */\nfunction setAttributesWithoutAttributes(styleElement, attributes) {\n Object.keys(attributes).forEach(function (key) {\n styleElement.setAttribute(key, attributes[key]);\n });\n}\nmodule.exports = setAttributesWithoutAttributes;","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:root{--ck-menu-bar-menu-max-width:75vw;--ck-menu-bar-nested-menu-horizontal-offset:5px}.ck.ck-menu-bar__menu>.ck.ck-menu-bar__menu__panel{max-width:var(--ck-menu-bar-menu-max-width);position:absolute;z-index:var(--ck-z-panel)}.ck.ck-menu-bar__menu>.ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_ne,.ck.ck-menu-bar__menu>.ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_nw{bottom:100%}.ck.ck-menu-bar__menu>.ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_se,.ck.ck-menu-bar__menu>.ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_sw{bottom:auto;top:100%}.ck.ck-menu-bar__menu>.ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_ne,.ck.ck-menu-bar__menu>.ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_se{left:0}.ck.ck-menu-bar__menu>.ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_nw,.ck.ck-menu-bar__menu>.ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_sw{right:0}.ck.ck-menu-bar__menu>.ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_en,.ck.ck-menu-bar__menu>.ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_es{left:calc(100% - var(--ck-menu-bar-nested-menu-horizontal-offset))}.ck.ck-menu-bar__menu>.ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_es{top:0}.ck.ck-menu-bar__menu>.ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_en{bottom:0}.ck.ck-menu-bar__menu>.ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_wn,.ck.ck-menu-bar__menu>.ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_ws{right:calc(100% - var(--ck-menu-bar-nested-menu-horizontal-offset))}.ck.ck-menu-bar__menu>.ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_ws{top:0}.ck.ck-menu-bar__menu>.ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_wn{bottom:0}:root{--ck-menu-bar-menu-panel-max-width:75vw}.ck.ck-menu-bar__menu>.ck.ck-menu-bar__menu__panel{background:var(--ck-color-dropdown-panel-background);border:1px solid var(--ck-color-dropdown-panel-border);border-radius:0;bottom:0;height:fit-content;max-width:var(--ck-menu-bar-menu-panel-max-width)}.ck-rounded-corners .ck.ck-menu-bar__menu>.ck.ck-menu-bar__menu__panel,.ck.ck-menu-bar__menu>.ck.ck-menu-bar__menu__panel.ck-rounded-corners{border-radius:var(--ck-border-radius)}.ck.ck-menu-bar__menu>.ck.ck-menu-bar__menu__panel{box-shadow:var(--ck-drop-shadow),0 0}.ck.ck-menu-bar__menu>.ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_es,.ck.ck-menu-bar__menu>.ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_se{border-top-left-radius:0}.ck.ck-menu-bar__menu>.ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_sw,.ck.ck-menu-bar__menu>.ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_ws{border-top-right-radius:0}.ck.ck-menu-bar__menu>.ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_en,.ck.ck-menu-bar__menu>.ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_ne{border-bottom-left-radius:0}.ck.ck-menu-bar__menu>.ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_nw,.ck.ck-menu-bar__menu>.ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_wn{border-bottom-right-radius:0}.ck.ck-menu-bar__menu>.ck.ck-menu-bar__menu__panel:focus{outline:none}.ck.ck-menu-bar .ck-list-item-button:active,.ck.ck-menu-bar .ck-list-item-button:focus{border-color:transparent;box-shadow:none}.ck.ck-menu-bar.ck-menu-bar_focus-border-enabled .ck-list-item-button:active,.ck.ck-menu-bar.ck-menu-bar_focus-border-enabled .ck-list-item-button:focus{border:var(--ck-focus-ring);box-shadow:var(--ck-focus-outer-shadow),0 0;outline:none;position:relative;z-index:2}`, \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/components/menubar/menubarmenupanel.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-ui/components/menubar/menubarmenupanel.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/mixins/_rounded.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/mixins/_shadow.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/mixins/_focus.css\"],\"names\":[],\"mappings\":\"AAKA,MACC,iCAAkC,CAClC,+CACD,CAEA,mDAEC,2CAA4C,CAC5C,iBAAkB,CAFlB,yBAkDD,CA9CC,gLAEC,WACD,CAEA,gLAGC,WAAY,CADZ,QAED,CAEA,gLAEC,MACD,CAEA,gLAEC,OACD,CAEA,gLAEC,kEACD,CAEA,wFACC,KACD,CAEA,wFACC,QACD,CAEA,gLAEC,mEACD,CAEA,wFACC,KACD,CAEA,wFACC,QACD,CCnDD,MACC,uCACD,CAEA,mDAIC,oDAAqD,CACrD,sDAAuD,CCPvD,eAAgB,CDQhB,QAAS,CACT,kBAAmB,CACnB,iDA0BD,CClCC,6IAEC,qCAED,CDJD,mDEJC,oCFsCD,CAvBC,gLAEC,wBACD,CAEA,gLAEC,yBACD,CAEA,gLAEC,2BACD,CAEA,gLAEC,4BACD,CAEA,yDACC,YACD,CAKC,uFAEC,wBAAyB,CACzB,eACD,CAIA,yJGhDD,2BAA2B,CDF3B,2CAA8B,CCC9B,YAAa,CHoDX,iBAAkB,CAClB,SAID\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n:root {\\n\\t--ck-menu-bar-menu-max-width: 75vw;\\n\\t--ck-menu-bar-nested-menu-horizontal-offset: 5px;\\n}\\n\\n.ck.ck-menu-bar__menu > .ck.ck-menu-bar__menu__panel {\\n\\tz-index: var(--ck-z-panel);\\n\\tmax-width: var(--ck-menu-bar-menu-max-width);\\n\\tposition: absolute;\\n\\n\\t&.ck-menu-bar__menu__panel_position_ne,\\n\\t&.ck-menu-bar__menu__panel_position_nw {\\n\\t\\tbottom: 100%;\\n\\t}\\n\\n\\t&.ck-menu-bar__menu__panel_position_se,\\n\\t&.ck-menu-bar__menu__panel_position_sw {\\n\\t\\ttop: 100%;\\n\\t\\tbottom: auto;\\n\\t}\\n\\n\\t&.ck-menu-bar__menu__panel_position_ne,\\n\\t&.ck-menu-bar__menu__panel_position_se {\\n\\t\\tleft: 0px;\\n\\t}\\n\\n\\t&.ck-menu-bar__menu__panel_position_nw,\\n\\t&.ck-menu-bar__menu__panel_position_sw {\\n\\t\\tright: 0px;\\n\\t}\\n\\n\\t&.ck-menu-bar__menu__panel_position_es,\\n\\t&.ck-menu-bar__menu__panel_position_en {\\n\\t\\tleft: calc( 100% - var(--ck-menu-bar-nested-menu-horizontal-offset) );\\n\\t}\\n\\n\\t&.ck-menu-bar__menu__panel_position_es {\\n\\t\\ttop: 0px;\\n\\t}\\n\\n\\t&.ck-menu-bar__menu__panel_position_en {\\n\\t\\tbottom: 0px;\\n\\t}\\n\\n\\t&.ck-menu-bar__menu__panel_position_ws,\\n\\t&.ck-menu-bar__menu__panel_position_wn {\\n\\t\\tright: calc( 100% - var(--ck-menu-bar-nested-menu-horizontal-offset) );\\n\\t}\\n\\n\\t&.ck-menu-bar__menu__panel_position_ws {\\n\\t\\ttop: 0px;\\n\\t}\\n\\n\\t&.ck-menu-bar__menu__panel_position_wn {\\n\\t\\tbottom: 0px;\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n@import \\\"../../../mixins/_rounded.css\\\";\\n@import \\\"../../../mixins/_shadow.css\\\";\\n@import \\\"../../../mixins/_focus.css\\\";\\n\\n:root {\\n\\t--ck-menu-bar-menu-panel-max-width: 75vw;\\n}\\n\\n.ck.ck-menu-bar__menu > .ck.ck-menu-bar__menu__panel {\\n\\t@mixin ck-rounded-corners;\\n\\t@mixin ck-drop-shadow;\\n\\n\\tbackground: var(--ck-color-dropdown-panel-background);\\n\\tborder: 1px solid var(--ck-color-dropdown-panel-border);\\n\\tbottom: 0;\\n\\theight: fit-content;\\n\\tmax-width: var(--ck-menu-bar-menu-panel-max-width);\\n\\n\\t/* Corner border radius consistent with the button. */\\n\\t&.ck-menu-bar__menu__panel_position_es,\\n\\t&.ck-menu-bar__menu__panel_position_se {\\n\\t\\tborder-top-left-radius: 0;\\n\\t}\\n\\n\\t&.ck-menu-bar__menu__panel_position_ws,\\n\\t&.ck-menu-bar__menu__panel_position_sw {\\n\\t\\tborder-top-right-radius: 0;\\n\\t}\\n\\n\\t&.ck-menu-bar__menu__panel_position_en,\\n\\t&.ck-menu-bar__menu__panel_position_ne {\\n\\t\\tborder-bottom-left-radius: 0;\\n\\t}\\n\\n\\t&.ck-menu-bar__menu__panel_position_wn,\\n\\t&.ck-menu-bar__menu__panel_position_nw {\\n\\t\\tborder-bottom-right-radius: 0;\\n\\t}\\n\\n\\t&:focus {\\n\\t\\toutline: none;\\n\\t}\\n}\\n\\n.ck.ck-menu-bar {\\n\\t& .ck-list-item-button {\\n\\t\\t&:focus,\\n\\t\\t&:active {\\n\\t\\t\\tborder-color: transparent;\\n\\t\\t\\tbox-shadow: none;\\n\\t\\t}\\n\\t}\\n\\n\\t&.ck-menu-bar_focus-border-enabled .ck-list-item-button {\\n\\t\\t&:focus,\\n\\t\\t&:active {\\n\\t\\t\\t/* Fix truncated shadows due to rendering order. */\\n\\t\\t\\tposition: relative;\\n\\t\\t\\tz-index: 2;\\n\\n\\t\\t\\t@mixin ck-focus-ring;\\n\\t\\t\\t@mixin ck-box-shadow var(--ck-focus-outer-shadow);\\n\\t\\t}\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n/**\\n * Implements rounded corner interface for .ck-rounded-corners class.\\n *\\n * @see $ck-border-radius\\n */\\n@define-mixin ck-rounded-corners {\\n\\tborder-radius: 0;\\n\\n\\t.ck-rounded-corners &,\\n\\t&.ck-rounded-corners {\\n\\t\\tborder-radius: var(--ck-border-radius);\\n\\t\\t@mixin-content;\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n/**\\n * A helper to combine multiple shadows.\\n */\\n@define-mixin ck-box-shadow $shadowA, $shadowB: 0 0 {\\n\\tbox-shadow: $shadowA, $shadowB;\\n}\\n\\n/**\\n * Gives an element a drop shadow so it looks like a floating panel.\\n */\\n@define-mixin ck-drop-shadow {\\n\\t@mixin ck-box-shadow var(--ck-drop-shadow);\\n}\\n\",\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n/**\\n * A visual style of focused element's border.\\n */\\n@define-mixin ck-focus-ring {\\n\\t/* Disable native outline. */\\n\\toutline: none;\\n\\tborder: var(--ck-focus-ring)\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.ck.ck-dropdown-menu-list__nested-menu__button>.ck-dropdown-menu-list__nested-menu__button__arrow{pointer-events:none;z-index:var(--ck-z-default)}.ck.ck-button.ck-dropdown-menu-list__nested-menu__button{border-radius:0;padding:var(--ck-spacing-tiny) calc(var(--ck-spacing-standard)*2);width:100%}.ck.ck-button.ck-dropdown-menu-list__nested-menu__button:focus{border-color:transparent;box-shadow:none}.ck.ck-button.ck-dropdown-menu-list__nested-menu__button:focus:not(.ck-on){background:var(--ck-color-button-default-hover-background)}.ck.ck-button.ck-dropdown-menu-list__nested-menu__button>.ck-button__label{flex-grow:1;overflow:hidden;text-overflow:ellipsis}.ck.ck-button.ck-dropdown-menu-list__nested-menu__button.ck-disabled>.ck-button__label{opacity:var(--ck-disabled-opacity)}.ck.ck-button.ck-dropdown-menu-list__nested-menu__button.ck-icon-spacing:not(:has(.ck-button__icon))>.ck-button__label{margin-left:calc(var(--ck-icon-size) - var(--ck-spacing-small))}.ck.ck-button.ck-dropdown-menu-list__nested-menu__button>.ck-dropdown-menu-list__nested-menu__button__arrow{width:var(--ck-dropdown-arrow-size)}[dir=ltr] .ck.ck-button.ck-dropdown-menu-list__nested-menu__button>.ck-dropdown-menu-list__nested-menu__button__arrow{margin-right:calc(var(--ck-spacing-small)*-1);transform:rotate(-90deg)}[dir=rtl] .ck.ck-button.ck-dropdown-menu-list__nested-menu__button>.ck-dropdown-menu-list__nested-menu__button__arrow{margin-left:calc(var(--ck-spacing-small)*-1);transform:rotate(90deg)}.ck.ck-button.ck-dropdown-menu-list__nested-menu__button.ck-disabled>.ck-dropdown-menu-list__nested-menu__button__arrow{opacity:var(--ck-disabled-opacity)}[dir=ltr] .ck.ck-button.ck-dropdown-menu-list__nested-menu__button:not(.ck-button_with-text){padding-left:var(--ck-spacing-small)}[dir=ltr] .ck.ck-button.ck-dropdown-menu-list__nested-menu__button>.ck-dropdown-menu-list__nested-menu__button__arrow{margin-left:var(--ck-spacing-standard);right:var(--ck-spacing-standard)}[dir=rtl] .ck.ck-button.ck-dropdown-menu-list__nested-menu__button:not(.ck-button_with-text){padding-right:var(--ck-spacing-small)}[dir=rtl] .ck.ck-button.ck-dropdown-menu-list__nested-menu__button>.ck-dropdown-menu-list__nested-menu__button__arrow{left:var(--ck-spacing-standard);margin-right:var(--ck-spacing-small)}`, \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/components/dropdown/menu/dropdownmenubutton.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-ui/components/dropdown/menu/dropdownmenubutton.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/mixins/_disabled.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/mixins/_dir.css\"],\"names\":[],\"mappings\":\"AAKA,kGACC,mBAAoB,CACpB,2BACD,CCIA,yDAGC,eAAgB,CADhB,iEAAoE,CADpE,UA2ED,CAvEC,+DACC,wBAAyB,CACzB,eAKD,CAHC,2EACC,0DACD,CAGD,2EACC,WAAY,CACZ,eAAgB,CAChB,sBACD,CAEA,uFCvBA,kCDyBA,CAGA,uHACC,+DACD,CAEA,4GACC,mCAeD,CEnDA,sHF0CE,6CAAgD,CAHhD,wBErCF,CAFA,sHFiDE,4CAA+C,CAH/C,uBE5CF,CFmDA,wHClDA,kCDoDA,CAGC,6FACC,oCACD,CAEA,sHAIC,sCAAuC,CAHvC,gCAID,CAIA,6FACC,qCACD,CAEA,sHACC,+BAAgC,CAGhC,oCACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n.ck.ck-dropdown-menu-list__nested-menu__button > .ck-dropdown-menu-list__nested-menu__button__arrow {\\n\\tpointer-events: none;\\n\\tz-index: var(--ck-z-default);\\n}\\n\",\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n@import \\\"../../../../mixins/_disabled.css\\\";\\n@import \\\"../../../mixins/_button.css\\\";\\n@import \\\"@ckeditor/ckeditor5-ui/theme/mixins/_dir.css\\\";\\n\\n/*\\n * All menu buttons.\\n */\\n.ck.ck-button.ck-dropdown-menu-list__nested-menu__button {\\n\\twidth: 100%;\\n\\tpadding: var(--ck-spacing-tiny) calc(2 * var(--ck-spacing-standard));\\n\\tborder-radius: 0;\\n\\n\\t&:focus {\\n\\t\\tborder-color: transparent;\\n\\t\\tbox-shadow: none;\\n\\n\\t\\t&:not(.ck-on) {\\n\\t\\t\\tbackground: var(--ck-color-button-default-hover-background);\\n\\t\\t}\\n\\t}\\n\\n\\t& > .ck-button__label {\\n\\t\\tflex-grow: 1;\\n\\t\\toverflow: hidden;\\n\\t\\ttext-overflow: ellipsis;\\n\\t}\\n\\n\\t&.ck-disabled > .ck-button__label {\\n\\t\\t@mixin ck-disabled;\\n\\t}\\n\\n\\t/* Spacing in buttons that miss the icon. */\\n\\t&.ck-icon-spacing:not(:has(.ck-button__icon)) > .ck-button__label {\\n\\t\\tmargin-left: calc(var(--ck-icon-size) - var(--ck-spacing-small));\\n\\t}\\n\\n\\t& > .ck-dropdown-menu-list__nested-menu__button__arrow {\\n\\t\\twidth: var(--ck-dropdown-arrow-size);\\n\\n\\t\\t@mixin ck-dir ltr {\\n\\t\\t\\ttransform: rotate(-90deg);\\n\\n\\t\\t\\t/* Nudge the arrow gently to the right because its center of gravity is to the left */\\n\\t\\t\\tmargin-right: calc(-1 * var(--ck-spacing-small));\\n\\t\\t}\\n\\n\\t\\t@mixin ck-dir rtl {\\n\\t\\t\\ttransform: rotate(90deg);\\n\\n\\t\\t\\t/* Nudge the arrow gently to the left because its center of gravity is to the right (after rotation). */\\n\\t\\t\\tmargin-left: calc(-1 * var(--ck-spacing-small));\\n\\t\\t}\\n\\t}\\n\\n\\t&.ck-disabled > .ck-dropdown-menu-list__nested-menu__button__arrow {\\n\\t\\t@mixin ck-disabled;\\n\\t}\\n\\n\\t@mixin ck-dir ltr {\\n\\t\\t&:not(.ck-button_with-text) {\\n\\t\\t\\tpadding-left: var(--ck-spacing-small);\\n\\t\\t}\\n\\n\\t\\t& > .ck-dropdown-menu-list__nested-menu__button__arrow {\\n\\t\\t\\tright: var(--ck-spacing-standard);\\n\\n\\t\\t\\t/* A space to accommodate the triangle. */\\n\\t\\t\\tmargin-left: var(--ck-spacing-standard);\\n\\t\\t}\\n\\t}\\n\\n\\t@mixin ck-dir rtl {\\n\\t\\t&:not(.ck-button_with-text) {\\n\\t\\t\\tpadding-right: var(--ck-spacing-small);\\n\\t\\t}\\n\\n\\t\\t& > .ck-dropdown-menu-list__nested-menu__button__arrow {\\n\\t\\t\\tleft: var(--ck-spacing-standard);\\n\\n\\t\\t\\t/* A space to accommodate the triangle. */\\n\\t\\t\\tmargin-right: var(--ck-spacing-small);\\n\\t\\t}\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n/**\\n * A class which indicates that an element holding it is disabled.\\n */\\n@define-mixin ck-disabled {\\n\\topacity: var(--ck-disabled-opacity);\\n}\\n\",\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n@define-mixin ck-dir $direction {\\n\\t[dir=\\\"$(direction)\\\"] & {\\n\\t\\t@mixin-content;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","\"use strict\";\n\nvar stylesInDOM = [];\nfunction getIndexByIdentifier(identifier) {\n var result = -1;\n for (var i = 0; i < stylesInDOM.length; i++) {\n if (stylesInDOM[i].identifier === identifier) {\n result = i;\n break;\n }\n }\n return result;\n}\nfunction modulesToDom(list, options) {\n var idCountMap = {};\n var identifiers = [];\n for (var i = 0; i < list.length; i++) {\n var item = list[i];\n var id = options.base ? item[0] + options.base : item[0];\n var count = idCountMap[id] || 0;\n var identifier = \"\".concat(id, \" \").concat(count);\n idCountMap[id] = count + 1;\n var indexByIdentifier = getIndexByIdentifier(identifier);\n var obj = {\n css: item[1],\n media: item[2],\n sourceMap: item[3],\n supports: item[4],\n layer: item[5]\n };\n if (indexByIdentifier !== -1) {\n stylesInDOM[indexByIdentifier].references++;\n stylesInDOM[indexByIdentifier].updater(obj);\n } else {\n var updater = addElementStyle(obj, options);\n options.byIndex = i;\n stylesInDOM.splice(i, 0, {\n identifier: identifier,\n updater: updater,\n references: 1\n });\n }\n identifiers.push(identifier);\n }\n return identifiers;\n}\nfunction addElementStyle(obj, options) {\n var api = options.domAPI(options);\n api.update(obj);\n var updater = function updater(newObj) {\n if (newObj) {\n if (newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap && newObj.supports === obj.supports && newObj.layer === obj.layer) {\n return;\n }\n api.update(obj = newObj);\n } else {\n api.remove();\n }\n };\n return updater;\n}\nmodule.exports = function (list, options) {\n options = options || {};\n list = list || [];\n var lastIdentifiers = modulesToDom(list, options);\n return function update(newList) {\n newList = newList || [];\n for (var i = 0; i < lastIdentifiers.length; i++) {\n var identifier = lastIdentifiers[i];\n var index = getIndexByIdentifier(identifier);\n stylesInDOM[index].references--;\n }\n var newLastIdentifiers = modulesToDom(newList, options);\n for (var _i = 0; _i < lastIdentifiers.length; _i++) {\n var _identifier = lastIdentifiers[_i];\n var _index = getIndexByIdentifier(_identifier);\n if (stylesInDOM[_index].references === 0) {\n stylesInDOM[_index].updater();\n stylesInDOM.splice(_index, 1);\n }\n }\n lastIdentifiers = newLastIdentifiers;\n };\n};","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.ck.ck-menu-bar__menu .ck-button.ck-menu-bar__menu__item__button{border-radius:0}.ck.ck-menu-bar__menu .ck-button.ck-menu-bar__menu__item__button>.ck-spinner-container,.ck.ck-menu-bar__menu .ck-button.ck-menu-bar__menu__item__button>.ck-spinner-container .ck-spinner{--ck-toolbar-spinner-size:20px}.ck.ck-menu-bar__menu .ck-button.ck-menu-bar__menu__item__button>.ck-spinner-container{font-size:var(--ck-icon-font-size)}[dir=ltr] .ck.ck-menu-bar__menu .ck-button.ck-menu-bar__menu__item__button>.ck-spinner-container{margin-right:var(--ck-spacing-medium)}[dir=rtl] .ck.ck-menu-bar__menu .ck-button.ck-menu-bar__menu__item__button>.ck-spinner-container{margin-left:var(--ck-spacing-medium)}`, \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-ui/components/menubar/menubarmenulistitembutton.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/mixins/_dir.css\"],\"names\":[],\"mappings\":\"AAWC,iEACC,eAoBD,CAlBC,0LAGC,8BACD,CAEA,uFAEC,kCASD,CCzBD,iGDmBG,qCCjBH,CAFA,iGDuBG,oCCrBH\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n@import \\\"@ckeditor/ckeditor5-ui/theme/mixins/_dir.css\\\";\\n\\n.ck.ck-menu-bar__menu {\\n\\t/*\\n\\t * List item buttons.\\n\\t */\\n\\t& .ck-button.ck-menu-bar__menu__item__button {\\n\\t\\tborder-radius: 0;\\n\\n\\t\\t& > .ck-spinner-container,\\n\\t\\t& > .ck-spinner-container .ck-spinner {\\n\\t\\t\\t/* These styles correspond to .ck-icon so that the spinner seamlessly replaces the icon. */\\n\\t\\t\\t--ck-toolbar-spinner-size: 20px;\\n\\t\\t}\\n\\n\\t\\t& > .ck-spinner-container {\\n\\t\\t\\t/* This ensures margins corresponding to the .ck-icon. */\\n\\t\\t\\tfont-size: var(--ck-icon-font-size);\\n\\n\\t\\t\\t@mixin ck-dir ltr {\\n\\t\\t\\t\\tmargin-right: var(--ck-spacing-medium);\\n\\t\\t\\t}\\n\\n\\t\\t\\t@mixin ck-dir rtl {\\n\\t\\t\\t\\tmargin-left: var(--ck-spacing-medium);\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n}\\n\\n\\n\",\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n@define-mixin ck-dir $direction {\\n\\t[dir=\\\"$(direction)\\\"] & {\\n\\t\\t@mixin-content;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.ck-content .page-break{align-items:center;clear:both;display:flex;justify-content:center;padding:5px 0;position:relative}.ck-content .page-break:after{border-bottom:2px dashed #c4c4c4;content:\"\";position:absolute;width:100%}.ck-content .page-break__label{background:#fff;border:1px solid #c4c4c4;border-radius:2px;box-shadow:2px 2px 1px rgba(0,0,0,.15);color:#333;display:block;font-family:Helvetica,Arial,Tahoma,Verdana,Sans-Serif;font-size:.75em;font-weight:700;padding:.3em .6em;position:relative;text-transform:uppercase;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;z-index:1}@media print{.ck-content .page-break{padding:0}.ck-content .page-break:after{display:none}.ck-content :has(+.page-break){margin-bottom:0}}`, \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@ckeditor/ckeditor5-page-break/theme/pagebreak.css\"],\"names\":[],\"mappings\":\"AAKA,wBAKC,kBAAmB,CAHnB,UAAW,CAEX,YAAa,CAEb,sBAAuB,CAHvB,aAAc,CAFd,iBAaD,CANC,8BAGC,gCAAyC,CAFzC,UAAW,CACX,iBAAkB,CAElB,UACD,CAGD,+BAYC,eAA4B,CAN5B,wBAAiC,CACjC,iBAAkB,CAMlB,sCAA6C,CAF7C,UAAsB,CAPtB,aAAc,CAId,qDAA0D,CAC1D,eAAiB,CACjB,eAAiB,CAPjB,iBAAkB,CAFlB,iBAAkB,CAIlB,wBAAyB,CAWzB,wBAAyB,CACzB,qBAAsB,CACtB,oBAAqB,CACrB,gBAAiB,CAjBjB,SAkBD,CAGA,aACC,wBACC,SAKD,CAHC,8BACC,YACD,CASD,+BACC,eACD,CACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n.ck-content .page-break {\\n\\tposition: relative;\\n\\tclear: both;\\n\\tpadding: 5px 0;\\n\\tdisplay: flex;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n\\n\\t&::after {\\n\\t\\tcontent: '';\\n\\t\\tposition: absolute;\\n\\t\\tborder-bottom: 2px dashed hsl(0, 0%, 77%);\\n\\t\\twidth: 100%;\\n\\t}\\n}\\n\\n.ck-content .page-break__label {\\n\\tposition: relative;\\n\\tz-index: 1;\\n\\tpadding: .3em .6em;\\n\\tdisplay: block;\\n\\ttext-transform: uppercase;\\n\\tborder: 1px solid hsl(0, 0%, 77%);\\n\\tborder-radius: 2px;\\n\\tfont-family: Helvetica, Arial, Tahoma, Verdana, Sans-Serif;\\n\\tfont-size: 0.75em;\\n\\tfont-weight: bold;\\n\\tcolor: hsl(0, 0%, 20%);\\n\\tbackground: hsl(0, 0%, 100%);\\n\\tbox-shadow: 2px 2px 1px hsla(0, 0%, 0%, 0.15);\\n\\n\\t/* Disable the possibility to select the label text by the user. */\\n\\t-webkit-user-select: none;\\n\\t-moz-user-select: none;\\n\\t-ms-user-select: none;\\n\\tuser-select: none;\\n}\\n\\n/* Do not show the page break element inside the print preview window. */\\n@media print {\\n\\t.ck-content .page-break {\\n\\t\\tpadding: 0;\\n\\n\\t\\t&::after {\\n\\t\\t\\tdisplay: none;\\n\\t\\t}\\n\\t}\\n\\n\\t/*\\n\\t * From time to time placing page-break directly after a block element with margin causes appending a new blank page in pagination mode.\\n\\t * Removing margin-bottom from the block element fixes that issue and the margin is not being moved to the next blank page.\\n\\t *\\n\\t * Keep this in sync with the pagination plugins.\\n\\t */\\n\\t.ck-content *:has(+ .page-break) {\\n\\t\\tmargin-bottom: 0;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:root{--ck-todo-list-checkmark-size:16px}.ck-content .todo-list{list-style:none}.ck-content .todo-list li{margin-bottom:5px;position:relative}.ck-content .todo-list li .todo-list{margin-top:5px}.ck-content .todo-list .todo-list__label>input{-webkit-appearance:none;border:0;display:inline-block;height:var(--ck-todo-list-checkmark-size);left:-25px;margin-left:0;margin-right:-15px;position:relative;right:0;vertical-align:middle;width:var(--ck-todo-list-checkmark-size)}.ck-content[dir=rtl] .todo-list .todo-list__label>input{left:0;margin-left:-15px;margin-right:0;right:-25px}.ck-content .todo-list .todo-list__label>input:before{border:1px solid #333;border-radius:2px;box-sizing:border-box;content:\"\";display:block;height:100%;position:absolute;transition:box-shadow .25s ease-in-out;width:100%}@media (prefers-reduced-motion:reduce){.ck-content .todo-list .todo-list__label>input:before{transition:none}}.ck-content .todo-list .todo-list__label>input:after{border-color:transparent;border-style:solid;border-width:0 calc(var(--ck-todo-list-checkmark-size)/8) calc(var(--ck-todo-list-checkmark-size)/8) 0;box-sizing:content-box;content:\"\";display:block;height:calc(var(--ck-todo-list-checkmark-size)/2.6);left:calc(var(--ck-todo-list-checkmark-size)/3);pointer-events:none;position:absolute;top:calc(var(--ck-todo-list-checkmark-size)/5.3);transform:rotate(45deg);width:calc(var(--ck-todo-list-checkmark-size)/5.3)}.ck-content .todo-list .todo-list__label>input[checked]:before{background:#26ab33;border-color:#26ab33}.ck-content .todo-list .todo-list__label>input[checked]:after{border-color:#fff}.ck-content .todo-list .todo-list__label .todo-list__label__description{vertical-align:middle}.ck-content .todo-list .todo-list__label.todo-list__label_without-description input[type=checkbox]{position:absolute}.ck-editor__editable.ck-content .todo-list .todo-list__label>input,.ck-editor__editable.ck-content .todo-list .todo-list__label>span[contenteditable=false]>input{cursor:pointer}.ck-editor__editable.ck-content .todo-list .todo-list__label>input:hover:before,.ck-editor__editable.ck-content .todo-list .todo-list__label>span[contenteditable=false]>input:hover:before{box-shadow:0 0 0 5px rgba(0,0,0,.1)}.ck-editor__editable.ck-content .todo-list .todo-list__label>span[contenteditable=false]>input{-webkit-appearance:none;border:0;display:inline-block;height:var(--ck-todo-list-checkmark-size);left:-25px;margin-left:0;margin-right:-15px;position:relative;right:0;vertical-align:middle;width:var(--ck-todo-list-checkmark-size)}.ck-editor__editable.ck-content[dir=rtl] .todo-list .todo-list__label>span[contenteditable=false]>input{left:0;margin-left:-15px;margin-right:0;right:-25px}.ck-editor__editable.ck-content .todo-list .todo-list__label>span[contenteditable=false]>input:before{border:1px solid #333;border-radius:2px;box-sizing:border-box;content:\"\";display:block;height:100%;position:absolute;transition:box-shadow .25s ease-in-out;width:100%}@media (prefers-reduced-motion:reduce){.ck-editor__editable.ck-content .todo-list .todo-list__label>span[contenteditable=false]>input:before{transition:none}}.ck-editor__editable.ck-content .todo-list .todo-list__label>span[contenteditable=false]>input:after{border-color:transparent;border-style:solid;border-width:0 calc(var(--ck-todo-list-checkmark-size)/8) calc(var(--ck-todo-list-checkmark-size)/8) 0;box-sizing:content-box;content:\"\";display:block;height:calc(var(--ck-todo-list-checkmark-size)/2.6);left:calc(var(--ck-todo-list-checkmark-size)/3);pointer-events:none;position:absolute;top:calc(var(--ck-todo-list-checkmark-size)/5.3);transform:rotate(45deg);width:calc(var(--ck-todo-list-checkmark-size)/5.3)}.ck-editor__editable.ck-content .todo-list .todo-list__label>span[contenteditable=false]>input[checked]:before{background:#26ab33;border-color:#26ab33}.ck-editor__editable.ck-content .todo-list .todo-list__label>span[contenteditable=false]>input[checked]:after{border-color:#fff}.ck-editor__editable.ck-content .todo-list .todo-list__label.todo-list__label_without-description input[type=checkbox]{position:absolute}`, \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@ckeditor/ckeditor5-list/theme/todolist.css\"],\"names\":[],\"mappings\":\"AAKA,MACC,kCACD,CA4EA,uBACC,eAwBD,CAtBC,0BAEC,iBAAkB,CADlB,iBAMD,CAHC,qCACC,cACD,CAIA,+CAtFD,uBAAwB,CAQxB,QAAS,CAPT,oBAAqB,CAGrB,yCAA0C,CAO1C,UAAW,CAGX,aAAc,CAFd,kBAAmB,CAVnB,iBAAkB,CAWlB,OAAQ,CARR,qBAAsB,CAFtB,wCAqFC,CAvED,wDACC,MAAO,CAGP,iBAAkB,CAFlB,cAAe,CACf,WAED,CAEA,sDAOC,qBAAiC,CACjC,iBAAkB,CALlB,qBAAsB,CACtB,UAAW,CAHX,aAAc,CAKd,WAAY,CAJZ,iBAAkB,CAOlB,sCAAwC,CAJxC,UASD,CAHC,uCAXD,sDAYE,eAEF,CADC,CAGD,qDAaC,wBAAyB,CADzB,kBAAmB,CAEnB,sGAA+G,CAX/G,sBAAuB,CAEvB,UAAW,CAJX,aAAc,CAUd,mDAAwD,CAHxD,+CAAoD,CAJpD,mBAAoB,CAFpB,iBAAkB,CAOlB,gDAAqD,CAMrD,uBAAwB,CALxB,kDAMD,CAGC,+DACC,kBAA8B,CAC9B,oBACD,CAEA,8DACC,iBACD,CAwBA,wEACC,qBACD,CAEA,mGACC,iBACD,CAYD,kKAEC,cAKD,CAHC,4LACC,mCACD,CAMD,+FAxHA,uBAAwB,CAQxB,QAAS,CAPT,oBAAqB,CAGrB,yCAA0C,CAO1C,UAAW,CAGX,aAAc,CAFd,kBAAmB,CAVnB,iBAAkB,CAWlB,OAAQ,CARR,qBAAsB,CAFtB,wCAuHA,CAzGA,wGACC,MAAO,CAGP,iBAAkB,CAFlB,cAAe,CACf,WAED,CAEA,sGAOC,qBAAiC,CACjC,iBAAkB,CALlB,qBAAsB,CACtB,UAAW,CAHX,aAAc,CAKd,WAAY,CAJZ,iBAAkB,CAOlB,sCAAwC,CAJxC,UASD,CAHC,uCAXD,sGAYE,eAEF,CADC,CAGD,qGAaC,wBAAyB,CADzB,kBAAmB,CAEnB,sGAA+G,CAX/G,sBAAuB,CAEvB,UAAW,CAJX,aAAc,CAUd,mDAAwD,CAHxD,+CAAoD,CAJpD,mBAAoB,CAFpB,iBAAkB,CAOlB,gDAAqD,CAMrD,uBAAwB,CALxB,kDAMD,CAGC,+GACC,kBAA8B,CAC9B,oBACD,CAEA,8GACC,iBACD,CA2DA,uHACC,iBACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n:root {\\n\\t--ck-todo-list-checkmark-size: 16px;\\n}\\n\\n@define-mixin todo-list-checkbox {\\n\\t-webkit-appearance: none;\\n\\tdisplay: inline-block;\\n\\tposition: relative;\\n\\twidth: var(--ck-todo-list-checkmark-size);\\n\\theight: var(--ck-todo-list-checkmark-size);\\n\\tvertical-align: middle;\\n\\n\\t/* Needed on iOS */\\n\\tborder: 0;\\n\\n\\t/* LTR styles */\\n\\tleft: -25px;\\n\\tmargin-right: -15px;\\n\\tright: 0;\\n\\tmargin-left: 0;\\n\\n\\t/* RTL styles */\\n\\t[dir=rtl]& {\\n\\t\\tleft: 0;\\n\\t\\tmargin-right: 0;\\n\\t\\tright: -25px;\\n\\t\\tmargin-left: -15px;\\n\\t}\\n\\n\\t&::before {\\n\\t\\tdisplay: block;\\n\\t\\tposition: absolute;\\n\\t\\tbox-sizing: border-box;\\n\\t\\tcontent: '';\\n\\t\\twidth: 100%;\\n\\t\\theight: 100%;\\n\\t\\tborder: 1px solid hsl(0, 0%, 20%);\\n\\t\\tborder-radius: 2px;\\n\\t\\ttransition: 250ms ease-in-out box-shadow;\\n\\n\\t\\t@media (prefers-reduced-motion: reduce) {\\n\\t\\t\\ttransition: none;\\n\\t\\t}\\n\\t}\\n\\n\\t&::after {\\n\\t\\tdisplay: block;\\n\\t\\tposition: absolute;\\n\\t\\tbox-sizing: content-box;\\n\\t\\tpointer-events: none;\\n\\t\\tcontent: '';\\n\\n\\t\\t/* Calculate tick position, size and border-width proportional to the checkmark size. */\\n\\t\\tleft: calc( var(--ck-todo-list-checkmark-size) / 3 );\\n\\t\\ttop: calc( var(--ck-todo-list-checkmark-size) / 5.3 );\\n\\t\\twidth: calc( var(--ck-todo-list-checkmark-size) / 5.3 );\\n\\t\\theight: calc( var(--ck-todo-list-checkmark-size) / 2.6 );\\n\\t\\tborder-style: solid;\\n\\t\\tborder-color: transparent;\\n\\t\\tborder-width: 0 calc( var(--ck-todo-list-checkmark-size) / 8 ) calc( var(--ck-todo-list-checkmark-size) / 8 ) 0;\\n\\t\\ttransform: rotate(45deg);\\n\\t}\\n\\n\\t&[checked] {\\n\\t\\t&::before {\\n\\t\\t\\tbackground: hsl(126, 64%, 41%);\\n\\t\\t\\tborder-color: hsl(126, 64%, 41%);\\n\\t\\t}\\n\\n\\t\\t&::after {\\n\\t\\t\\tborder-color: hsl(0, 0%, 100%);\\n\\t\\t}\\n\\t}\\n}\\n\\n/*\\n * To-do list content styles.\\n */\\n.ck-content .todo-list {\\n\\tlist-style: none;\\n\\n\\t& li {\\n\\t\\tposition: relative;\\n\\t\\tmargin-bottom: 5px;\\n\\n\\t\\t& .todo-list {\\n\\t\\t\\tmargin-top: 5px;\\n\\t\\t}\\n\\t}\\n\\n\\t& .todo-list__label {\\n\\t\\t& > input {\\n\\t\\t\\t@mixin todo-list-checkbox;\\n\\t\\t}\\n\\n\\t\\t& .todo-list__label__description {\\n\\t\\t\\tvertical-align: middle;\\n\\t\\t}\\n\\n\\t\\t&.todo-list__label_without-description input[type=checkbox] {\\n\\t\\t\\tposition: absolute;\\n\\t\\t}\\n\\t}\\n}\\n\\n/*\\n * To-do list editing view styles.\\n */\\n.ck-editor__editable.ck-content .todo-list .todo-list__label {\\n\\t/*\\n\\t * To-do list should be interactive only during the editing\\n\\t * (https://github.com/ckeditor/ckeditor5/issues/2090).\\n\\t */\\n\\t& > input,\\n\\t& > span[contenteditable=false] > input {\\n\\t\\tcursor: pointer;\\n\\n\\t\\t&:hover::before {\\n\\t\\t\\tbox-shadow: 0 0 0 5px hsla(0, 0%, 0%, 0.1);\\n\\t\\t}\\n\\t}\\n\\n\\t/*\\n\\t * Document Lists - editing view has an additional span around checkbox.\\n\\t */\\n\\t& > span[contenteditable=false] > input {\\n\\t\\t@mixin todo-list-checkbox;\\n\\t}\\n\\n\\t&.todo-list__label_without-description {\\n\\t\\t& input[type=checkbox] {\\n\\t\\t\\tposition: absolute;\\n\\t\\t}\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.ck.ck-search>.ck-labeled-field-view>.ck-labeled-field-view__input-wrapper>.ck-icon{position:absolute;top:50%;transform:translateY(-50%)}[dir=ltr] .ck.ck-search>.ck-labeled-field-view>.ck-labeled-field-view__input-wrapper>.ck-icon{left:var(--ck-spacing-medium)}[dir=rtl] .ck.ck-search>.ck-labeled-field-view>.ck-labeled-field-view__input-wrapper>.ck-icon{right:var(--ck-spacing-medium)}.ck.ck-search>.ck-labeled-field-view .ck-search__reset{position:absolute;top:50%;transform:translateY(-50%)}.ck.ck-search>.ck-search__results>.ck-search__info>span:first-child{display:block}.ck.ck-search>.ck-search__results>.ck-search__info:not(.ck-hidden)~*{display:none}:root{--ck-search-field-view-horizontal-spacing:calc(var(--ck-icon-size) + var(--ck-spacing-medium))}.ck.ck-search>.ck-labeled-field-view .ck-input{width:100%}.ck.ck-search>.ck-labeled-field-view.ck-search__query_with-icon{--ck-labeled-field-label-default-position-x:var(--ck-search-field-view-horizontal-spacing)}.ck.ck-search>.ck-labeled-field-view.ck-search__query_with-icon>.ck-labeled-field-view__input-wrapper>.ck-icon{opacity:.5;pointer-events:none}.ck.ck-search>.ck-labeled-field-view.ck-search__query_with-icon .ck-input{width:100%}[dir=ltr] .ck.ck-search>.ck-labeled-field-view.ck-search__query_with-icon .ck-input,[dir=rtl] .ck.ck-search>.ck-labeled-field-view.ck-search__query_with-icon .ck-input:not(.ck-input-text_empty){padding-left:var(--ck-search-field-view-horizontal-spacing)}.ck.ck-search>.ck-labeled-field-view.ck-search__query_with-reset{--ck-labeled-field-empty-unfocused-max-width:100% - 2 * var(--ck-search-field-view-horizontal-spacing)}.ck.ck-search>.ck-labeled-field-view.ck-search__query_with-reset.ck-labeled-field-view_empty{--ck-labeled-field-empty-unfocused-max-width:100% - var(--ck-search-field-view-horizontal-spacing) - var(--ck-spacing-medium)}.ck.ck-search>.ck-labeled-field-view.ck-search__query_with-reset .ck-search__reset{background:none;min-height:auto;min-width:auto;opacity:.5;padding:0}[dir=ltr] .ck.ck-search>.ck-labeled-field-view.ck-search__query_with-reset .ck-search__reset{right:var(--ck-spacing-medium)}[dir=rtl] .ck.ck-search>.ck-labeled-field-view.ck-search__query_with-reset .ck-search__reset{left:var(--ck-spacing-medium)}.ck.ck-search>.ck-labeled-field-view.ck-search__query_with-reset .ck-search__reset:hover{opacity:1}.ck.ck-search>.ck-labeled-field-view.ck-search__query_with-reset .ck-input{width:100%}[dir=ltr] .ck.ck-search>.ck-labeled-field-view.ck-search__query_with-reset .ck-input:not(.ck-input-text_empty),[dir=rtl] .ck.ck-search>.ck-labeled-field-view.ck-search__query_with-reset .ck-input{padding-right:var(--ck-search-field-view-horizontal-spacing)}.ck.ck-search>.ck-search__results{min-width:100%}.ck.ck-search>.ck-search__results>.ck-search__info{padding:var(--ck-spacing-medium) var(--ck-spacing-large);width:100%}.ck.ck-search>.ck-search__results>.ck-search__info *{white-space:normal}.ck.ck-search>.ck-search__results>.ck-search__info>span:first-child{font-weight:700}.ck.ck-search>.ck-search__results>.ck-search__info>span:last-child{margin-top:var(--ck-spacing-medium)}`, \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/components/search/search.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/mixins/_dir.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-ui/components/search/search.css\"],\"names\":[],\"mappings\":\"AASE,oFACC,iBAAkB,CAClB,OAAQ,CACR,0BASD,CCfD,8FDSG,6BCPH,CAFA,8FDaG,8BCXH,CDeC,uDACC,iBAAkB,CAClB,OAAQ,CACR,0BACD,CAKC,oEACC,aACD,CAGA,qEACC,YACD,CEhCH,MACC,8FACD,CAIE,+CACC,UACD,CAEA,gEACC,0FAoBD,CAlBC,+GACC,UAAW,CACX,mBACD,CAEA,0EACC,UAWD,CAJE,kMACC,2DACD,CAKH,iEACC,sGAwCD,CAtCC,6FACC,6HACD,CAEA,mFAIC,eAAgB,CAFhB,eAAgB,CADhB,cAAe,CAIf,UAAW,CACX,SAaD,CD5DF,6FCkDI,8BDhDJ,CAFA,6FCsDI,6BDpDJ,CCuDG,yFACC,SACD,CAGD,2EACC,UAWD,CD1EF,oMCwEI,4DDtEJ,CC4EA,kCACC,cAkBD,CAhBC,mDAEC,wDAAyD,CADzD,UAcD,CAXC,qDACC,kBACD,CAEA,oEACC,eACD,CAEA,mEACC,mCACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n@import \\\"@ckeditor/ckeditor5-ui/theme/mixins/_dir.css\\\";\\n\\n.ck.ck-search {\\n\\t& > .ck-labeled-field-view {\\n\\t\\t& > .ck-labeled-field-view__input-wrapper > .ck-icon {\\n\\t\\t\\tposition: absolute;\\n\\t\\t\\ttop: 50%;\\n\\t\\t\\ttransform: translateY(-50%);\\n\\n\\t\\t\\t@mixin ck-dir ltr {\\n\\t\\t\\t\\tleft: var(--ck-spacing-medium);\\n\\t\\t\\t}\\n\\n\\t\\t\\t@mixin ck-dir rtl {\\n\\t\\t\\t\\tright: var(--ck-spacing-medium);\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t& .ck-search__reset {\\n\\t\\t\\tposition: absolute;\\n\\t\\t\\ttop: 50%;\\n\\t\\t\\ttransform: translateY(-50%);\\n\\t\\t}\\n\\t}\\n\\n\\t& > .ck-search__results {\\n\\t\\t& > .ck-search__info {\\n\\t\\t\\t& > span:first-child {\\n\\t\\t\\t\\tdisplay: block;\\n\\t\\t\\t}\\n\\n\\t\\t\\t/* Hide the filtered view when nothing was found */\\n\\t\\t\\t&:not(.ck-hidden) ~ * {\\n\\t\\t\\t\\tdisplay: none;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n@define-mixin ck-dir $direction {\\n\\t[dir=\\\"$(direction)\\\"] & {\\n\\t\\t@mixin-content;\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n@import \\\"@ckeditor/ckeditor5-ui/theme/mixins/_dir.css\\\";\\n\\n:root {\\n\\t--ck-search-field-view-horizontal-spacing: calc(var(--ck-icon-size) + var(--ck-spacing-medium));\\n}\\n\\n.ck.ck-search {\\n\\t& > .ck-labeled-field-view {\\n\\t\\t& .ck-input {\\n\\t\\t\\twidth: 100%;\\n\\t\\t}\\n\\n\\t\\t&.ck-search__query_with-icon {\\n\\t\\t\\t--ck-labeled-field-label-default-position-x: var(--ck-search-field-view-horizontal-spacing);\\n\\n\\t\\t\\t& > .ck-labeled-field-view__input-wrapper > .ck-icon {\\n\\t\\t\\t\\topacity: .5;\\n\\t\\t\\t\\tpointer-events: none;\\n\\t\\t\\t}\\n\\n\\t\\t\\t& .ck-input {\\n\\t\\t\\t\\twidth: 100%;\\n\\n\\t\\t\\t\\t@mixin ck-dir ltr {\\n\\t\\t\\t\\t\\tpadding-left: var(--ck-search-field-view-horizontal-spacing);\\n\\t\\t\\t\\t}\\n\\n\\t\\t\\t\\t@mixin ck-dir rtl {\\n\\t\\t\\t\\t\\t&:not(.ck-input-text_empty) {\\n\\t\\t\\t\\t\\t\\tpadding-left: var(--ck-search-field-view-horizontal-spacing);\\n\\t\\t\\t\\t\\t}\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t&.ck-search__query_with-reset {\\n\\t\\t\\t--ck-labeled-field-empty-unfocused-max-width: 100% - 2 * var(--ck-search-field-view-horizontal-spacing);\\n\\n\\t\\t\\t&.ck-labeled-field-view_empty {\\n\\t\\t\\t\\t--ck-labeled-field-empty-unfocused-max-width: 100% - var(--ck-search-field-view-horizontal-spacing) - var(--ck-spacing-medium);\\n\\t\\t\\t}\\n\\n\\t\\t\\t& .ck-search__reset {\\n\\t\\t\\t\\tmin-width: auto;\\n\\t\\t\\t\\tmin-height: auto;\\n\\n\\t\\t\\t\\tbackground: none;\\n\\t\\t\\t\\topacity: .5;\\n\\t\\t\\t\\tpadding: 0;\\n\\n\\t\\t\\t\\t@mixin ck-dir ltr {\\n\\t\\t\\t\\t\\tright: var(--ck-spacing-medium);\\n\\t\\t\\t\\t}\\n\\n\\t\\t\\t\\t@mixin ck-dir rtl {\\n\\t\\t\\t\\t\\tleft: var(--ck-spacing-medium);\\n\\t\\t\\t\\t}\\n\\n\\t\\t\\t\\t&:hover {\\n\\t\\t\\t\\t\\topacity: 1;\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\n\\t\\t\\t& .ck-input {\\n\\t\\t\\t\\twidth: 100%;\\n\\n\\t\\t\\t\\t@mixin ck-dir ltr {\\n\\t\\t\\t\\t\\t&:not(.ck-input-text_empty) {\\n\\t\\t\\t\\t\\t\\tpadding-right: var(--ck-search-field-view-horizontal-spacing);\\n\\t\\t\\t\\t\\t}\\n\\t\\t\\t\\t}\\n\\n\\t\\t\\t\\t@mixin ck-dir rtl {\\n\\t\\t\\t\\t\\tpadding-right: var(--ck-search-field-view-horizontal-spacing);\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n\\t& > .ck-search__results {\\n\\t\\tmin-width: 100%;\\n\\n\\t\\t& > .ck-search__info {\\n\\t\\t\\twidth: 100%;\\n\\t\\t\\tpadding: var(--ck-spacing-medium) var(--ck-spacing-large);\\n\\n\\t\\t\\t& * {\\n\\t\\t\\t\\twhite-space: normal;\\n\\t\\t\\t}\\n\\n\\t\\t\\t& > span:first-child {\\n\\t\\t\\t\\tfont-weight: bold;\\n\\t\\t\\t}\\n\\n\\t\\t\\t& > span:last-child {\\n\\t\\t\\t\\tmargin-top: var(--ck-spacing-medium);\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n}\\n\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:root{--ck-balloon-panel-arrow-z-index:calc(var(--ck-z-default) - 3)}.ck.ck-balloon-panel{display:none;position:absolute;z-index:var(--ck-z-panel)}.ck.ck-balloon-panel.ck-balloon-panel_with-arrow:after,.ck.ck-balloon-panel.ck-balloon-panel_with-arrow:before{content:\"\";position:absolute}.ck.ck-balloon-panel.ck-balloon-panel_with-arrow:before{z-index:var(--ck-balloon-panel-arrow-z-index)}.ck.ck-balloon-panel.ck-balloon-panel_with-arrow:after{z-index:calc(var(--ck-balloon-panel-arrow-z-index) + 1)}.ck.ck-balloon-panel[class*=arrow_n]:before{z-index:var(--ck-balloon-panel-arrow-z-index)}.ck.ck-balloon-panel[class*=arrow_n]:after{z-index:calc(var(--ck-balloon-panel-arrow-z-index) + 1)}.ck.ck-balloon-panel[class*=arrow_s]:before{z-index:var(--ck-balloon-panel-arrow-z-index)}.ck.ck-balloon-panel[class*=arrow_s]:after{z-index:calc(var(--ck-balloon-panel-arrow-z-index) + 1)}.ck.ck-balloon-panel.ck-balloon-panel_visible{display:block}:root{--ck-balloon-border-width:1px;--ck-balloon-arrow-offset:2px;--ck-balloon-arrow-height:10px;--ck-balloon-arrow-half-width:8px;--ck-balloon-arrow-drop-shadow:0 2px 2px var(--ck-color-shadow-drop)}.ck.ck-balloon-panel{background:var(--ck-color-panel-background);border:var(--ck-balloon-border-width) solid var(--ck-color-panel-border);border-radius:0;min-height:15px}.ck-rounded-corners .ck.ck-balloon-panel,.ck.ck-balloon-panel.ck-rounded-corners{border-radius:var(--ck-border-radius)}.ck.ck-balloon-panel{box-shadow:var(--ck-drop-shadow),0 0}.ck.ck-balloon-panel.ck-balloon-panel_with-arrow:after,.ck.ck-balloon-panel.ck-balloon-panel_with-arrow:before{border-style:solid;height:0;width:0}.ck.ck-balloon-panel[class*=arrow_n]:after,.ck.ck-balloon-panel[class*=arrow_n]:before{border-width:0 var(--ck-balloon-arrow-half-width) var(--ck-balloon-arrow-height) var(--ck-balloon-arrow-half-width)}.ck.ck-balloon-panel[class*=arrow_n]:before{border-color:transparent transparent var(--ck-color-panel-border) transparent;margin-top:calc(var(--ck-balloon-border-width)*-1)}.ck.ck-balloon-panel[class*=arrow_n]:after{border-color:transparent transparent var(--ck-color-panel-background) transparent;margin-top:calc(var(--ck-balloon-arrow-offset) - var(--ck-balloon-border-width))}.ck.ck-balloon-panel[class*=arrow_s]:after,.ck.ck-balloon-panel[class*=arrow_s]:before{border-width:var(--ck-balloon-arrow-height) var(--ck-balloon-arrow-half-width) 0 var(--ck-balloon-arrow-half-width)}.ck.ck-balloon-panel[class*=arrow_s]:before{border-color:var(--ck-color-panel-border) transparent transparent;filter:drop-shadow(var(--ck-balloon-arrow-drop-shadow));margin-bottom:calc(var(--ck-balloon-border-width)*-1)}.ck.ck-balloon-panel[class*=arrow_s]:after{border-color:var(--ck-color-panel-background) transparent transparent transparent;margin-bottom:calc(var(--ck-balloon-arrow-offset) - var(--ck-balloon-border-width))}.ck.ck-balloon-panel[class*=arrow_e]:after,.ck.ck-balloon-panel[class*=arrow_e]:before{border-width:var(--ck-balloon-arrow-half-width) 0 var(--ck-balloon-arrow-half-width) var(--ck-balloon-arrow-height)}.ck.ck-balloon-panel[class*=arrow_e]:before{border-color:transparent transparent transparent var(--ck-color-panel-border);margin-right:calc(var(--ck-balloon-border-width)*-1)}.ck.ck-balloon-panel[class*=arrow_e]:after{border-color:transparent transparent transparent var(--ck-color-panel-background);margin-right:calc(var(--ck-balloon-arrow-offset) - var(--ck-balloon-border-width))}.ck.ck-balloon-panel[class*=arrow_w]:after,.ck.ck-balloon-panel[class*=arrow_w]:before{border-width:var(--ck-balloon-arrow-half-width) var(--ck-balloon-arrow-height) var(--ck-balloon-arrow-half-width) 0}.ck.ck-balloon-panel[class*=arrow_w]:before{border-color:transparent var(--ck-color-panel-border) transparent transparent;margin-left:calc(var(--ck-balloon-border-width)*-1)}.ck.ck-balloon-panel[class*=arrow_w]:after{border-color:transparent var(--ck-color-panel-background) transparent transparent;margin-left:calc(var(--ck-balloon-arrow-offset) - var(--ck-balloon-border-width))}.ck.ck-balloon-panel.ck-balloon-panel_arrow_n:after,.ck.ck-balloon-panel.ck-balloon-panel_arrow_n:before{left:50%;margin-left:calc(var(--ck-balloon-arrow-half-width)*-1);top:calc(var(--ck-balloon-arrow-height)*-1)}.ck.ck-balloon-panel.ck-balloon-panel_arrow_nw:after,.ck.ck-balloon-panel.ck-balloon-panel_arrow_nw:before{left:calc(var(--ck-balloon-arrow-half-width)*2);top:calc(var(--ck-balloon-arrow-height)*-1)}.ck.ck-balloon-panel.ck-balloon-panel_arrow_ne:after,.ck.ck-balloon-panel.ck-balloon-panel_arrow_ne:before{right:calc(var(--ck-balloon-arrow-half-width)*2);top:calc(var(--ck-balloon-arrow-height)*-1)}.ck.ck-balloon-panel.ck-balloon-panel_arrow_s:after,.ck.ck-balloon-panel.ck-balloon-panel_arrow_s:before{bottom:calc(var(--ck-balloon-arrow-height)*-1);left:50%;margin-left:calc(var(--ck-balloon-arrow-half-width)*-1)}.ck.ck-balloon-panel.ck-balloon-panel_arrow_sw:after,.ck.ck-balloon-panel.ck-balloon-panel_arrow_sw:before{bottom:calc(var(--ck-balloon-arrow-height)*-1);left:calc(var(--ck-balloon-arrow-half-width)*2)}.ck.ck-balloon-panel.ck-balloon-panel_arrow_se:after,.ck.ck-balloon-panel.ck-balloon-panel_arrow_se:before{bottom:calc(var(--ck-balloon-arrow-height)*-1);right:calc(var(--ck-balloon-arrow-half-width)*2)}.ck.ck-balloon-panel.ck-balloon-panel_arrow_sme:after,.ck.ck-balloon-panel.ck-balloon-panel_arrow_sme:before{bottom:calc(var(--ck-balloon-arrow-height)*-1);margin-right:calc(var(--ck-balloon-arrow-half-width)*2);right:25%}.ck.ck-balloon-panel.ck-balloon-panel_arrow_smw:after,.ck.ck-balloon-panel.ck-balloon-panel_arrow_smw:before{bottom:calc(var(--ck-balloon-arrow-height)*-1);left:25%;margin-left:calc(var(--ck-balloon-arrow-half-width)*2)}.ck.ck-balloon-panel.ck-balloon-panel_arrow_nme:after,.ck.ck-balloon-panel.ck-balloon-panel_arrow_nme:before{margin-right:calc(var(--ck-balloon-arrow-half-width)*2);right:25%;top:calc(var(--ck-balloon-arrow-height)*-1)}.ck.ck-balloon-panel.ck-balloon-panel_arrow_nmw:after,.ck.ck-balloon-panel.ck-balloon-panel_arrow_nmw:before{left:25%;margin-left:calc(var(--ck-balloon-arrow-half-width)*2);top:calc(var(--ck-balloon-arrow-height)*-1)}.ck.ck-balloon-panel.ck-balloon-panel_arrow_e:after,.ck.ck-balloon-panel.ck-balloon-panel_arrow_e:before{margin-top:calc(var(--ck-balloon-arrow-half-width)*-1);right:calc(var(--ck-balloon-arrow-height)*-1);top:50%}.ck.ck-balloon-panel.ck-balloon-panel_arrow_w:after,.ck.ck-balloon-panel.ck-balloon-panel_arrow_w:before{left:calc(var(--ck-balloon-arrow-height)*-1);margin-top:calc(var(--ck-balloon-arrow-half-width)*-1);top:50%}`, \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/components/panel/balloonpanel.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-ui/components/panel/balloonpanel.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/mixins/_rounded.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/mixins/_shadow.css\"],\"names\":[],\"mappings\":\"AAKA,MAEC,8DACD,CAEA,qBACC,YAAa,CACb,iBAAkB,CAElB,yBAyCD,CAtCE,+GAEC,UAAW,CACX,iBACD,CAEA,wDACC,6CACD,CAEA,uDACC,uDACD,CAIA,4CACC,6CACD,CAEA,2CACC,uDACD,CAIA,4CACC,6CACD,CAEA,2CACC,uDACD,CAGD,8CACC,aACD,CC9CD,MACC,6BAA8B,CAC9B,6BAA8B,CAC9B,8BAA+B,CAC/B,iCAAkC,CAClC,oEACD,CAEA,qBAMC,2CAA4C,CAC5C,wEAAyE,CCZzE,eAAgB,CDShB,eA0LD,CCjMC,iFAEC,qCAED,CDDD,qBEPC,oCFqMD,CApLE,+GAIC,kBAAmB,CADnB,QAAS,CADT,OAGD,CAIA,uFAEC,mHACD,CAEA,4CACC,6EAA8E,CAC9E,kDACD,CAEA,2CACC,iFAAkF,CAClF,gFACD,CAIA,uFAEC,mHACD,CAEA,4CACC,iEAAkE,CAClE,uDAAwD,CACxD,qDACD,CAEA,2CACC,iFAAkF,CAClF,mFACD,CAIA,uFAEC,mHACD,CAEA,4CACC,6EAA8E,CAC9E,oDACD,CAEA,2CACC,iFAAkF,CAClF,kFACD,CAIA,uFAEC,mHACD,CAEA,4CACC,6EAA8E,CAC9E,mDACD,CAEA,2CACC,iFAAkF,CAClF,iFACD,CAIA,yGAEC,QAAS,CACT,uDAA0D,CAC1D,2CACD,CAIA,2GAEC,+CAAkD,CAClD,2CACD,CAIA,2GAEC,gDAAmD,CACnD,2CACD,CAIA,yGAIC,8CAAiD,CAFjD,QAAS,CACT,uDAED,CAIA,2GAGC,8CAAiD,CADjD,+CAED,CAIA,2GAGC,8CAAiD,CADjD,gDAED,CAIA,6GAIC,8CAAiD,CADjD,uDAA0D,CAD1D,SAGD,CAIA,6GAIC,8CAAiD,CAFjD,QAAS,CACT,sDAED,CAIA,6GAGC,uDAA0D,CAD1D,SAAU,CAEV,2CACD,CAIA,6GAEC,QAAS,CACT,sDAAyD,CACzD,2CACD,CAIA,yGAGC,sDAAyD,CADzD,6CAAgD,CAEhD,OACD,CAIA,yGAEC,4CAA+C,CAC/C,sDAAyD,CACzD,OACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n:root {\\n\\t/* Make sure the balloon arrow does not float over its children. */\\n\\t--ck-balloon-panel-arrow-z-index: calc(var(--ck-z-default) - 3);\\n}\\n\\n.ck.ck-balloon-panel {\\n\\tdisplay: none;\\n\\tposition: absolute;\\n\\n\\tz-index: var(--ck-z-panel);\\n\\n\\t&.ck-balloon-panel_with-arrow {\\n\\t\\t&::before,\\n\\t\\t&::after {\\n\\t\\t\\tcontent: \\\"\\\";\\n\\t\\t\\tposition: absolute;\\n\\t\\t}\\n\\n\\t\\t&::before {\\n\\t\\t\\tz-index: var(--ck-balloon-panel-arrow-z-index);\\n\\t\\t}\\n\\n\\t\\t&::after {\\n\\t\\t\\tz-index: calc(var(--ck-balloon-panel-arrow-z-index) + 1);\\n\\t\\t}\\n\\t}\\n\\n\\t&[class*=\\\"arrow_n\\\"] {\\n\\t\\t&::before {\\n\\t\\t\\tz-index: var(--ck-balloon-panel-arrow-z-index);\\n\\t\\t}\\n\\n\\t\\t&::after {\\n\\t\\t\\tz-index: calc(var(--ck-balloon-panel-arrow-z-index) + 1);\\n\\t\\t}\\n\\t}\\n\\n\\t&[class*=\\\"arrow_s\\\"] {\\n\\t\\t&::before {\\n\\t\\t\\tz-index: var(--ck-balloon-panel-arrow-z-index);\\n\\t\\t}\\n\\n\\t\\t&::after {\\n\\t\\t\\tz-index: calc(var(--ck-balloon-panel-arrow-z-index) + 1);\\n\\t\\t}\\n\\t}\\n\\n\\t&.ck-balloon-panel_visible {\\n\\t\\tdisplay: block;\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n@import \\\"../../../mixins/_rounded.css\\\";\\n@import \\\"../../../mixins/_shadow.css\\\";\\n\\n:root {\\n\\t--ck-balloon-border-width: 1px;\\n\\t--ck-balloon-arrow-offset: 2px;\\n\\t--ck-balloon-arrow-height: 10px;\\n\\t--ck-balloon-arrow-half-width: 8px;\\n\\t--ck-balloon-arrow-drop-shadow: 0 2px 2px var(--ck-color-shadow-drop);\\n}\\n\\n.ck.ck-balloon-panel {\\n\\t@mixin ck-rounded-corners;\\n\\t@mixin ck-drop-shadow;\\n\\n\\tmin-height: 15px;\\n\\n\\tbackground: var(--ck-color-panel-background);\\n\\tborder: var(--ck-balloon-border-width) solid var(--ck-color-panel-border);\\n\\n\\t&.ck-balloon-panel_with-arrow {\\n\\t\\t&::before,\\n\\t\\t&::after {\\n\\t\\t\\twidth: 0;\\n\\t\\t\\theight: 0;\\n\\t\\t\\tborder-style: solid;\\n\\t\\t}\\n\\t}\\n\\n\\t&[class*=\\\"arrow_n\\\"] {\\n\\t\\t&::before,\\n\\t\\t&::after {\\n\\t\\t\\tborder-width: 0 var(--ck-balloon-arrow-half-width) var(--ck-balloon-arrow-height) var(--ck-balloon-arrow-half-width);\\n\\t\\t}\\n\\n\\t\\t&::before {\\n\\t\\t\\tborder-color: transparent transparent var(--ck-color-panel-border) transparent;\\n\\t\\t\\tmargin-top: calc( -1 * var(--ck-balloon-border-width) );\\n\\t\\t}\\n\\n\\t\\t&::after {\\n\\t\\t\\tborder-color: transparent transparent var(--ck-color-panel-background) transparent;\\n\\t\\t\\tmargin-top: calc( var(--ck-balloon-arrow-offset) - var(--ck-balloon-border-width) );\\n\\t\\t}\\n\\t}\\n\\n\\t&[class*=\\\"arrow_s\\\"] {\\n\\t\\t&::before,\\n\\t\\t&::after {\\n\\t\\t\\tborder-width: var(--ck-balloon-arrow-height) var(--ck-balloon-arrow-half-width) 0 var(--ck-balloon-arrow-half-width);\\n\\t\\t}\\n\\n\\t\\t&::before {\\n\\t\\t\\tborder-color: var(--ck-color-panel-border) transparent transparent;\\n\\t\\t\\tfilter: drop-shadow(var(--ck-balloon-arrow-drop-shadow));\\n\\t\\t\\tmargin-bottom: calc( -1 * var(--ck-balloon-border-width) );\\n\\t\\t}\\n\\n\\t\\t&::after {\\n\\t\\t\\tborder-color: var(--ck-color-panel-background) transparent transparent transparent;\\n\\t\\t\\tmargin-bottom: calc( var(--ck-balloon-arrow-offset) - var(--ck-balloon-border-width) );\\n\\t\\t}\\n\\t}\\n\\n\\t&[class*=\\\"arrow_e\\\"] {\\n\\t\\t&::before,\\n\\t\\t&::after {\\n\\t\\t\\tborder-width: var(--ck-balloon-arrow-half-width) 0 var(--ck-balloon-arrow-half-width) var(--ck-balloon-arrow-height);\\n\\t\\t}\\n\\n\\t\\t&::before {\\n\\t\\t\\tborder-color: transparent transparent transparent var(--ck-color-panel-border);\\n\\t\\t\\tmargin-right: calc( -1 * var(--ck-balloon-border-width) );\\n\\t\\t}\\n\\n\\t\\t&::after {\\n\\t\\t\\tborder-color: transparent transparent transparent var(--ck-color-panel-background);\\n\\t\\t\\tmargin-right: calc( var(--ck-balloon-arrow-offset) - var(--ck-balloon-border-width) );\\n\\t\\t}\\n\\t}\\n\\n\\t&[class*=\\\"arrow_w\\\"] {\\n\\t\\t&::before,\\n\\t\\t&::after {\\n\\t\\t\\tborder-width: var(--ck-balloon-arrow-half-width) var(--ck-balloon-arrow-height) var(--ck-balloon-arrow-half-width) 0;\\n\\t\\t}\\n\\n\\t\\t&::before {\\n\\t\\t\\tborder-color: transparent var(--ck-color-panel-border) transparent transparent;\\n\\t\\t\\tmargin-left: calc( -1 * var(--ck-balloon-border-width) );\\n\\t\\t}\\n\\n\\t\\t&::after {\\n\\t\\t\\tborder-color: transparent var(--ck-color-panel-background) transparent transparent;\\n\\t\\t\\tmargin-left: calc( var(--ck-balloon-arrow-offset) - var(--ck-balloon-border-width) );\\n\\t\\t}\\n\\t}\\n\\n\\t&.ck-balloon-panel_arrow_n {\\n\\t\\t&::before,\\n\\t\\t&::after {\\n\\t\\t\\tleft: 50%;\\n\\t\\t\\tmargin-left: calc(-1 * var(--ck-balloon-arrow-half-width));\\n\\t\\t\\ttop: calc(-1 * var(--ck-balloon-arrow-height));\\n\\t\\t}\\n\\t}\\n\\n\\t&.ck-balloon-panel_arrow_nw {\\n\\t\\t&::before,\\n\\t\\t&::after {\\n\\t\\t\\tleft: calc(2 * var(--ck-balloon-arrow-half-width));\\n\\t\\t\\ttop: calc(-1 * var(--ck-balloon-arrow-height));\\n\\t\\t}\\n\\t}\\n\\n\\t&.ck-balloon-panel_arrow_ne {\\n\\t\\t&::before,\\n\\t\\t&::after {\\n\\t\\t\\tright: calc(2 * var(--ck-balloon-arrow-half-width));\\n\\t\\t\\ttop: calc(-1 * var(--ck-balloon-arrow-height));\\n\\t\\t}\\n\\t}\\n\\n\\t&.ck-balloon-panel_arrow_s {\\n\\t\\t&::before,\\n\\t\\t&::after {\\n\\t\\t\\tleft: 50%;\\n\\t\\t\\tmargin-left: calc(-1 * var(--ck-balloon-arrow-half-width));\\n\\t\\t\\tbottom: calc(-1 * var(--ck-balloon-arrow-height));\\n\\t\\t}\\n\\t}\\n\\n\\t&.ck-balloon-panel_arrow_sw {\\n\\t\\t&::before,\\n\\t\\t&::after {\\n\\t\\t\\tleft: calc(2 * var(--ck-balloon-arrow-half-width));\\n\\t\\t\\tbottom: calc(-1 * var(--ck-balloon-arrow-height));\\n\\t\\t}\\n\\t}\\n\\n\\t&.ck-balloon-panel_arrow_se {\\n\\t\\t&::before,\\n\\t\\t&::after {\\n\\t\\t\\tright: calc(2 * var(--ck-balloon-arrow-half-width));\\n\\t\\t\\tbottom: calc(-1 * var(--ck-balloon-arrow-height));\\n\\t\\t}\\n\\t}\\n\\n\\t&.ck-balloon-panel_arrow_sme {\\n\\t\\t&::before,\\n\\t\\t&::after {\\n\\t\\t\\tright: 25%;\\n\\t\\t\\tmargin-right: calc(2 * var(--ck-balloon-arrow-half-width));\\n\\t\\t\\tbottom: calc(-1 * var(--ck-balloon-arrow-height));\\n\\t\\t}\\n\\t}\\n\\n\\t&.ck-balloon-panel_arrow_smw {\\n\\t\\t&::before,\\n\\t\\t&::after {\\n\\t\\t\\tleft: 25%;\\n\\t\\t\\tmargin-left: calc(2 * var(--ck-balloon-arrow-half-width));\\n\\t\\t\\tbottom: calc(-1 * var(--ck-balloon-arrow-height));\\n\\t\\t}\\n\\t}\\n\\n\\t&.ck-balloon-panel_arrow_nme {\\n\\t\\t&::before,\\n\\t\\t&::after {\\n\\t\\t\\tright: 25%;\\n\\t\\t\\tmargin-right: calc(2 * var(--ck-balloon-arrow-half-width));\\n\\t\\t\\ttop: calc(-1 * var(--ck-balloon-arrow-height));\\n\\t\\t}\\n\\t}\\n\\n\\t&.ck-balloon-panel_arrow_nmw {\\n\\t\\t&::before,\\n\\t\\t&::after {\\n\\t\\t\\tleft: 25%;\\n\\t\\t\\tmargin-left: calc(2 * var(--ck-balloon-arrow-half-width));\\n\\t\\t\\ttop: calc(-1 * var(--ck-balloon-arrow-height));\\n\\t\\t}\\n\\t}\\n\\n\\t&.ck-balloon-panel_arrow_e {\\n\\t\\t&::before,\\n\\t\\t&::after {\\n\\t\\t\\tright: calc(-1 * var(--ck-balloon-arrow-height));\\n\\t\\t\\tmargin-top: calc(-1 * var(--ck-balloon-arrow-half-width));\\n\\t\\t\\ttop: 50%;\\n\\t\\t}\\n\\t}\\n\\n\\t&.ck-balloon-panel_arrow_w {\\n\\t\\t&::before,\\n\\t\\t&::after {\\n\\t\\t\\tleft: calc(-1 * var(--ck-balloon-arrow-height));\\n\\t\\t\\tmargin-top: calc(-1 * var(--ck-balloon-arrow-half-width));\\n\\t\\t\\ttop: 50%;\\n\\t\\t}\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n/**\\n * Implements rounded corner interface for .ck-rounded-corners class.\\n *\\n * @see $ck-border-radius\\n */\\n@define-mixin ck-rounded-corners {\\n\\tborder-radius: 0;\\n\\n\\t.ck-rounded-corners &,\\n\\t&.ck-rounded-corners {\\n\\t\\tborder-radius: var(--ck-border-radius);\\n\\t\\t@mixin-content;\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n/**\\n * A helper to combine multiple shadows.\\n */\\n@define-mixin ck-box-shadow $shadowA, $shadowB: 0 0 {\\n\\tbox-shadow: $shadowA, $shadowB;\\n}\\n\\n/**\\n * Gives an element a drop shadow so it looks like a floating panel.\\n */\\n@define-mixin ck-drop-shadow {\\n\\t@mixin ck-box-shadow var(--ck-drop-shadow);\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","/* MIT license */\n/* eslint-disable no-mixed-operators */\nconst cssKeywords = require('color-name');\n\n// NOTE: conversions should only return primitive values (i.e. arrays, or\n// values that give correct `typeof` results).\n// do not use box values types (i.e. Number(), String(), etc.)\n\nconst reverseKeywords = {};\nfor (const key of Object.keys(cssKeywords)) {\n\treverseKeywords[cssKeywords[key]] = key;\n}\n\nconst convert = {\n\trgb: {channels: 3, labels: 'rgb'},\n\thsl: {channels: 3, labels: 'hsl'},\n\thsv: {channels: 3, labels: 'hsv'},\n\thwb: {channels: 3, labels: 'hwb'},\n\tcmyk: {channels: 4, labels: 'cmyk'},\n\txyz: {channels: 3, labels: 'xyz'},\n\tlab: {channels: 3, labels: 'lab'},\n\tlch: {channels: 3, labels: 'lch'},\n\thex: {channels: 1, labels: ['hex']},\n\tkeyword: {channels: 1, labels: ['keyword']},\n\tansi16: {channels: 1, labels: ['ansi16']},\n\tansi256: {channels: 1, labels: ['ansi256']},\n\thcg: {channels: 3, labels: ['h', 'c', 'g']},\n\tapple: {channels: 3, labels: ['r16', 'g16', 'b16']},\n\tgray: {channels: 1, labels: ['gray']}\n};\n\nmodule.exports = convert;\n\n// Hide .channels and .labels properties\nfor (const model of Object.keys(convert)) {\n\tif (!('channels' in convert[model])) {\n\t\tthrow new Error('missing channels property: ' + model);\n\t}\n\n\tif (!('labels' in convert[model])) {\n\t\tthrow new Error('missing channel labels property: ' + model);\n\t}\n\n\tif (convert[model].labels.length !== convert[model].channels) {\n\t\tthrow new Error('channel and label counts mismatch: ' + model);\n\t}\n\n\tconst {channels, labels} = convert[model];\n\tdelete convert[model].channels;\n\tdelete convert[model].labels;\n\tObject.defineProperty(convert[model], 'channels', {value: channels});\n\tObject.defineProperty(convert[model], 'labels', {value: labels});\n}\n\nconvert.rgb.hsl = function (rgb) {\n\tconst r = rgb[0] / 255;\n\tconst g = rgb[1] / 255;\n\tconst b = rgb[2] / 255;\n\tconst min = Math.min(r, g, b);\n\tconst max = Math.max(r, g, b);\n\tconst delta = max - min;\n\tlet h;\n\tlet s;\n\n\tif (max === min) {\n\t\th = 0;\n\t} else if (r === max) {\n\t\th = (g - b) / delta;\n\t} else if (g === max) {\n\t\th = 2 + (b - r) / delta;\n\t} else if (b === max) {\n\t\th = 4 + (r - g) / delta;\n\t}\n\n\th = Math.min(h * 60, 360);\n\n\tif (h < 0) {\n\t\th += 360;\n\t}\n\n\tconst l = (min + max) / 2;\n\n\tif (max === min) {\n\t\ts = 0;\n\t} else if (l <= 0.5) {\n\t\ts = delta / (max + min);\n\t} else {\n\t\ts = delta / (2 - max - min);\n\t}\n\n\treturn [h, s * 100, l * 100];\n};\n\nconvert.rgb.hsv = function (rgb) {\n\tlet rdif;\n\tlet gdif;\n\tlet bdif;\n\tlet h;\n\tlet s;\n\n\tconst r = rgb[0] / 255;\n\tconst g = rgb[1] / 255;\n\tconst b = rgb[2] / 255;\n\tconst v = Math.max(r, g, b);\n\tconst diff = v - Math.min(r, g, b);\n\tconst diffc = function (c) {\n\t\treturn (v - c) / 6 / diff + 1 / 2;\n\t};\n\n\tif (diff === 0) {\n\t\th = 0;\n\t\ts = 0;\n\t} else {\n\t\ts = diff / v;\n\t\trdif = diffc(r);\n\t\tgdif = diffc(g);\n\t\tbdif = diffc(b);\n\n\t\tif (r === v) {\n\t\t\th = bdif - gdif;\n\t\t} else if (g === v) {\n\t\t\th = (1 / 3) + rdif - bdif;\n\t\t} else if (b === v) {\n\t\t\th = (2 / 3) + gdif - rdif;\n\t\t}\n\n\t\tif (h < 0) {\n\t\t\th += 1;\n\t\t} else if (h > 1) {\n\t\t\th -= 1;\n\t\t}\n\t}\n\n\treturn [\n\t\th * 360,\n\t\ts * 100,\n\t\tv * 100\n\t];\n};\n\nconvert.rgb.hwb = function (rgb) {\n\tconst r = rgb[0];\n\tconst g = rgb[1];\n\tlet b = rgb[2];\n\tconst h = convert.rgb.hsl(rgb)[0];\n\tconst w = 1 / 255 * Math.min(r, Math.min(g, b));\n\n\tb = 1 - 1 / 255 * Math.max(r, Math.max(g, b));\n\n\treturn [h, w * 100, b * 100];\n};\n\nconvert.rgb.cmyk = function (rgb) {\n\tconst r = rgb[0] / 255;\n\tconst g = rgb[1] / 255;\n\tconst b = rgb[2] / 255;\n\n\tconst k = Math.min(1 - r, 1 - g, 1 - b);\n\tconst c = (1 - r - k) / (1 - k) || 0;\n\tconst m = (1 - g - k) / (1 - k) || 0;\n\tconst y = (1 - b - k) / (1 - k) || 0;\n\n\treturn [c * 100, m * 100, y * 100, k * 100];\n};\n\nfunction comparativeDistance(x, y) {\n\t/*\n\t\tSee https://en.m.wikipedia.org/wiki/Euclidean_distance#Squared_Euclidean_distance\n\t*/\n\treturn (\n\t\t((x[0] - y[0]) ** 2) +\n\t\t((x[1] - y[1]) ** 2) +\n\t\t((x[2] - y[2]) ** 2)\n\t);\n}\n\nconvert.rgb.keyword = function (rgb) {\n\tconst reversed = reverseKeywords[rgb];\n\tif (reversed) {\n\t\treturn reversed;\n\t}\n\n\tlet currentClosestDistance = Infinity;\n\tlet currentClosestKeyword;\n\n\tfor (const keyword of Object.keys(cssKeywords)) {\n\t\tconst value = cssKeywords[keyword];\n\n\t\t// Compute comparative distance\n\t\tconst distance = comparativeDistance(rgb, value);\n\n\t\t// Check if its less, if so set as closest\n\t\tif (distance < currentClosestDistance) {\n\t\t\tcurrentClosestDistance = distance;\n\t\t\tcurrentClosestKeyword = keyword;\n\t\t}\n\t}\n\n\treturn currentClosestKeyword;\n};\n\nconvert.keyword.rgb = function (keyword) {\n\treturn cssKeywords[keyword];\n};\n\nconvert.rgb.xyz = function (rgb) {\n\tlet r = rgb[0] / 255;\n\tlet g = rgb[1] / 255;\n\tlet b = rgb[2] / 255;\n\n\t// Assume sRGB\n\tr = r > 0.04045 ? (((r + 0.055) / 1.055) ** 2.4) : (r / 12.92);\n\tg = g > 0.04045 ? (((g + 0.055) / 1.055) ** 2.4) : (g / 12.92);\n\tb = b > 0.04045 ? (((b + 0.055) / 1.055) ** 2.4) : (b / 12.92);\n\n\tconst x = (r * 0.4124) + (g * 0.3576) + (b * 0.1805);\n\tconst y = (r * 0.2126) + (g * 0.7152) + (b * 0.0722);\n\tconst z = (r * 0.0193) + (g * 0.1192) + (b * 0.9505);\n\n\treturn [x * 100, y * 100, z * 100];\n};\n\nconvert.rgb.lab = function (rgb) {\n\tconst xyz = convert.rgb.xyz(rgb);\n\tlet x = xyz[0];\n\tlet y = xyz[1];\n\tlet z = xyz[2];\n\n\tx /= 95.047;\n\ty /= 100;\n\tz /= 108.883;\n\n\tx = x > 0.008856 ? (x ** (1 / 3)) : (7.787 * x) + (16 / 116);\n\ty = y > 0.008856 ? (y ** (1 / 3)) : (7.787 * y) + (16 / 116);\n\tz = z > 0.008856 ? (z ** (1 / 3)) : (7.787 * z) + (16 / 116);\n\n\tconst l = (116 * y) - 16;\n\tconst a = 500 * (x - y);\n\tconst b = 200 * (y - z);\n\n\treturn [l, a, b];\n};\n\nconvert.hsl.rgb = function (hsl) {\n\tconst h = hsl[0] / 360;\n\tconst s = hsl[1] / 100;\n\tconst l = hsl[2] / 100;\n\tlet t2;\n\tlet t3;\n\tlet val;\n\n\tif (s === 0) {\n\t\tval = l * 255;\n\t\treturn [val, val, val];\n\t}\n\n\tif (l < 0.5) {\n\t\tt2 = l * (1 + s);\n\t} else {\n\t\tt2 = l + s - l * s;\n\t}\n\n\tconst t1 = 2 * l - t2;\n\n\tconst rgb = [0, 0, 0];\n\tfor (let i = 0; i < 3; i++) {\n\t\tt3 = h + 1 / 3 * -(i - 1);\n\t\tif (t3 < 0) {\n\t\t\tt3++;\n\t\t}\n\n\t\tif (t3 > 1) {\n\t\t\tt3--;\n\t\t}\n\n\t\tif (6 * t3 < 1) {\n\t\t\tval = t1 + (t2 - t1) * 6 * t3;\n\t\t} else if (2 * t3 < 1) {\n\t\t\tval = t2;\n\t\t} else if (3 * t3 < 2) {\n\t\t\tval = t1 + (t2 - t1) * (2 / 3 - t3) * 6;\n\t\t} else {\n\t\t\tval = t1;\n\t\t}\n\n\t\trgb[i] = val * 255;\n\t}\n\n\treturn rgb;\n};\n\nconvert.hsl.hsv = function (hsl) {\n\tconst h = hsl[0];\n\tlet s = hsl[1] / 100;\n\tlet l = hsl[2] / 100;\n\tlet smin = s;\n\tconst lmin = Math.max(l, 0.01);\n\n\tl *= 2;\n\ts *= (l <= 1) ? l : 2 - l;\n\tsmin *= lmin <= 1 ? lmin : 2 - lmin;\n\tconst v = (l + s) / 2;\n\tconst sv = l === 0 ? (2 * smin) / (lmin + smin) : (2 * s) / (l + s);\n\n\treturn [h, sv * 100, v * 100];\n};\n\nconvert.hsv.rgb = function (hsv) {\n\tconst h = hsv[0] / 60;\n\tconst s = hsv[1] / 100;\n\tlet v = hsv[2] / 100;\n\tconst hi = Math.floor(h) % 6;\n\n\tconst f = h - Math.floor(h);\n\tconst p = 255 * v * (1 - s);\n\tconst q = 255 * v * (1 - (s * f));\n\tconst t = 255 * v * (1 - (s * (1 - f)));\n\tv *= 255;\n\n\tswitch (hi) {\n\t\tcase 0:\n\t\t\treturn [v, t, p];\n\t\tcase 1:\n\t\t\treturn [q, v, p];\n\t\tcase 2:\n\t\t\treturn [p, v, t];\n\t\tcase 3:\n\t\t\treturn [p, q, v];\n\t\tcase 4:\n\t\t\treturn [t, p, v];\n\t\tcase 5:\n\t\t\treturn [v, p, q];\n\t}\n};\n\nconvert.hsv.hsl = function (hsv) {\n\tconst h = hsv[0];\n\tconst s = hsv[1] / 100;\n\tconst v = hsv[2] / 100;\n\tconst vmin = Math.max(v, 0.01);\n\tlet sl;\n\tlet l;\n\n\tl = (2 - s) * v;\n\tconst lmin = (2 - s) * vmin;\n\tsl = s * vmin;\n\tsl /= (lmin <= 1) ? lmin : 2 - lmin;\n\tsl = sl || 0;\n\tl /= 2;\n\n\treturn [h, sl * 100, l * 100];\n};\n\n// http://dev.w3.org/csswg/css-color/#hwb-to-rgb\nconvert.hwb.rgb = function (hwb) {\n\tconst h = hwb[0] / 360;\n\tlet wh = hwb[1] / 100;\n\tlet bl = hwb[2] / 100;\n\tconst ratio = wh + bl;\n\tlet f;\n\n\t// Wh + bl cant be > 1\n\tif (ratio > 1) {\n\t\twh /= ratio;\n\t\tbl /= ratio;\n\t}\n\n\tconst i = Math.floor(6 * h);\n\tconst v = 1 - bl;\n\tf = 6 * h - i;\n\n\tif ((i & 0x01) !== 0) {\n\t\tf = 1 - f;\n\t}\n\n\tconst n = wh + f * (v - wh); // Linear interpolation\n\n\tlet r;\n\tlet g;\n\tlet b;\n\t/* eslint-disable max-statements-per-line,no-multi-spaces */\n\tswitch (i) {\n\t\tdefault:\n\t\tcase 6:\n\t\tcase 0: r = v; g = n; b = wh; break;\n\t\tcase 1: r = n; g = v; b = wh; break;\n\t\tcase 2: r = wh; g = v; b = n; break;\n\t\tcase 3: r = wh; g = n; b = v; break;\n\t\tcase 4: r = n; g = wh; b = v; break;\n\t\tcase 5: r = v; g = wh; b = n; break;\n\t}\n\t/* eslint-enable max-statements-per-line,no-multi-spaces */\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.cmyk.rgb = function (cmyk) {\n\tconst c = cmyk[0] / 100;\n\tconst m = cmyk[1] / 100;\n\tconst y = cmyk[2] / 100;\n\tconst k = cmyk[3] / 100;\n\n\tconst r = 1 - Math.min(1, c * (1 - k) + k);\n\tconst g = 1 - Math.min(1, m * (1 - k) + k);\n\tconst b = 1 - Math.min(1, y * (1 - k) + k);\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.xyz.rgb = function (xyz) {\n\tconst x = xyz[0] / 100;\n\tconst y = xyz[1] / 100;\n\tconst z = xyz[2] / 100;\n\tlet r;\n\tlet g;\n\tlet b;\n\n\tr = (x * 3.2406) + (y * -1.5372) + (z * -0.4986);\n\tg = (x * -0.9689) + (y * 1.8758) + (z * 0.0415);\n\tb = (x * 0.0557) + (y * -0.2040) + (z * 1.0570);\n\n\t// Assume sRGB\n\tr = r > 0.0031308\n\t\t? ((1.055 * (r ** (1.0 / 2.4))) - 0.055)\n\t\t: r * 12.92;\n\n\tg = g > 0.0031308\n\t\t? ((1.055 * (g ** (1.0 / 2.4))) - 0.055)\n\t\t: g * 12.92;\n\n\tb = b > 0.0031308\n\t\t? ((1.055 * (b ** (1.0 / 2.4))) - 0.055)\n\t\t: b * 12.92;\n\n\tr = Math.min(Math.max(0, r), 1);\n\tg = Math.min(Math.max(0, g), 1);\n\tb = Math.min(Math.max(0, b), 1);\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.xyz.lab = function (xyz) {\n\tlet x = xyz[0];\n\tlet y = xyz[1];\n\tlet z = xyz[2];\n\n\tx /= 95.047;\n\ty /= 100;\n\tz /= 108.883;\n\n\tx = x > 0.008856 ? (x ** (1 / 3)) : (7.787 * x) + (16 / 116);\n\ty = y > 0.008856 ? (y ** (1 / 3)) : (7.787 * y) + (16 / 116);\n\tz = z > 0.008856 ? (z ** (1 / 3)) : (7.787 * z) + (16 / 116);\n\n\tconst l = (116 * y) - 16;\n\tconst a = 500 * (x - y);\n\tconst b = 200 * (y - z);\n\n\treturn [l, a, b];\n};\n\nconvert.lab.xyz = function (lab) {\n\tconst l = lab[0];\n\tconst a = lab[1];\n\tconst b = lab[2];\n\tlet x;\n\tlet y;\n\tlet z;\n\n\ty = (l + 16) / 116;\n\tx = a / 500 + y;\n\tz = y - b / 200;\n\n\tconst y2 = y ** 3;\n\tconst x2 = x ** 3;\n\tconst z2 = z ** 3;\n\ty = y2 > 0.008856 ? y2 : (y - 16 / 116) / 7.787;\n\tx = x2 > 0.008856 ? x2 : (x - 16 / 116) / 7.787;\n\tz = z2 > 0.008856 ? z2 : (z - 16 / 116) / 7.787;\n\n\tx *= 95.047;\n\ty *= 100;\n\tz *= 108.883;\n\n\treturn [x, y, z];\n};\n\nconvert.lab.lch = function (lab) {\n\tconst l = lab[0];\n\tconst a = lab[1];\n\tconst b = lab[2];\n\tlet h;\n\n\tconst hr = Math.atan2(b, a);\n\th = hr * 360 / 2 / Math.PI;\n\n\tif (h < 0) {\n\t\th += 360;\n\t}\n\n\tconst c = Math.sqrt(a * a + b * b);\n\n\treturn [l, c, h];\n};\n\nconvert.lch.lab = function (lch) {\n\tconst l = lch[0];\n\tconst c = lch[1];\n\tconst h = lch[2];\n\n\tconst hr = h / 360 * 2 * Math.PI;\n\tconst a = c * Math.cos(hr);\n\tconst b = c * Math.sin(hr);\n\n\treturn [l, a, b];\n};\n\nconvert.rgb.ansi16 = function (args, saturation = null) {\n\tconst [r, g, b] = args;\n\tlet value = saturation === null ? convert.rgb.hsv(args)[2] : saturation; // Hsv -> ansi16 optimization\n\n\tvalue = Math.round(value / 50);\n\n\tif (value === 0) {\n\t\treturn 30;\n\t}\n\n\tlet ansi = 30\n\t\t+ ((Math.round(b / 255) << 2)\n\t\t| (Math.round(g / 255) << 1)\n\t\t| Math.round(r / 255));\n\n\tif (value === 2) {\n\t\tansi += 60;\n\t}\n\n\treturn ansi;\n};\n\nconvert.hsv.ansi16 = function (args) {\n\t// Optimization here; we already know the value and don't need to get\n\t// it converted for us.\n\treturn convert.rgb.ansi16(convert.hsv.rgb(args), args[2]);\n};\n\nconvert.rgb.ansi256 = function (args) {\n\tconst r = args[0];\n\tconst g = args[1];\n\tconst b = args[2];\n\n\t// We use the extended greyscale palette here, with the exception of\n\t// black and white. normal palette only has 4 greyscale shades.\n\tif (r === g && g === b) {\n\t\tif (r < 8) {\n\t\t\treturn 16;\n\t\t}\n\n\t\tif (r > 248) {\n\t\t\treturn 231;\n\t\t}\n\n\t\treturn Math.round(((r - 8) / 247) * 24) + 232;\n\t}\n\n\tconst ansi = 16\n\t\t+ (36 * Math.round(r / 255 * 5))\n\t\t+ (6 * Math.round(g / 255 * 5))\n\t\t+ Math.round(b / 255 * 5);\n\n\treturn ansi;\n};\n\nconvert.ansi16.rgb = function (args) {\n\tlet color = args % 10;\n\n\t// Handle greyscale\n\tif (color === 0 || color === 7) {\n\t\tif (args > 50) {\n\t\t\tcolor += 3.5;\n\t\t}\n\n\t\tcolor = color / 10.5 * 255;\n\n\t\treturn [color, color, color];\n\t}\n\n\tconst mult = (~~(args > 50) + 1) * 0.5;\n\tconst r = ((color & 1) * mult) * 255;\n\tconst g = (((color >> 1) & 1) * mult) * 255;\n\tconst b = (((color >> 2) & 1) * mult) * 255;\n\n\treturn [r, g, b];\n};\n\nconvert.ansi256.rgb = function (args) {\n\t// Handle greyscale\n\tif (args >= 232) {\n\t\tconst c = (args - 232) * 10 + 8;\n\t\treturn [c, c, c];\n\t}\n\n\targs -= 16;\n\n\tlet rem;\n\tconst r = Math.floor(args / 36) / 5 * 255;\n\tconst g = Math.floor((rem = args % 36) / 6) / 5 * 255;\n\tconst b = (rem % 6) / 5 * 255;\n\n\treturn [r, g, b];\n};\n\nconvert.rgb.hex = function (args) {\n\tconst integer = ((Math.round(args[0]) & 0xFF) << 16)\n\t\t+ ((Math.round(args[1]) & 0xFF) << 8)\n\t\t+ (Math.round(args[2]) & 0xFF);\n\n\tconst string = integer.toString(16).toUpperCase();\n\treturn '000000'.substring(string.length) + string;\n};\n\nconvert.hex.rgb = function (args) {\n\tconst match = args.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);\n\tif (!match) {\n\t\treturn [0, 0, 0];\n\t}\n\n\tlet colorString = match[0];\n\n\tif (match[0].length === 3) {\n\t\tcolorString = colorString.split('').map(char => {\n\t\t\treturn char + char;\n\t\t}).join('');\n\t}\n\n\tconst integer = parseInt(colorString, 16);\n\tconst r = (integer >> 16) & 0xFF;\n\tconst g = (integer >> 8) & 0xFF;\n\tconst b = integer & 0xFF;\n\n\treturn [r, g, b];\n};\n\nconvert.rgb.hcg = function (rgb) {\n\tconst r = rgb[0] / 255;\n\tconst g = rgb[1] / 255;\n\tconst b = rgb[2] / 255;\n\tconst max = Math.max(Math.max(r, g), b);\n\tconst min = Math.min(Math.min(r, g), b);\n\tconst chroma = (max - min);\n\tlet grayscale;\n\tlet hue;\n\n\tif (chroma < 1) {\n\t\tgrayscale = min / (1 - chroma);\n\t} else {\n\t\tgrayscale = 0;\n\t}\n\n\tif (chroma <= 0) {\n\t\thue = 0;\n\t} else\n\tif (max === r) {\n\t\thue = ((g - b) / chroma) % 6;\n\t} else\n\tif (max === g) {\n\t\thue = 2 + (b - r) / chroma;\n\t} else {\n\t\thue = 4 + (r - g) / chroma;\n\t}\n\n\thue /= 6;\n\thue %= 1;\n\n\treturn [hue * 360, chroma * 100, grayscale * 100];\n};\n\nconvert.hsl.hcg = function (hsl) {\n\tconst s = hsl[1] / 100;\n\tconst l = hsl[2] / 100;\n\n\tconst c = l < 0.5 ? (2.0 * s * l) : (2.0 * s * (1.0 - l));\n\n\tlet f = 0;\n\tif (c < 1.0) {\n\t\tf = (l - 0.5 * c) / (1.0 - c);\n\t}\n\n\treturn [hsl[0], c * 100, f * 100];\n};\n\nconvert.hsv.hcg = function (hsv) {\n\tconst s = hsv[1] / 100;\n\tconst v = hsv[2] / 100;\n\n\tconst c = s * v;\n\tlet f = 0;\n\n\tif (c < 1.0) {\n\t\tf = (v - c) / (1 - c);\n\t}\n\n\treturn [hsv[0], c * 100, f * 100];\n};\n\nconvert.hcg.rgb = function (hcg) {\n\tconst h = hcg[0] / 360;\n\tconst c = hcg[1] / 100;\n\tconst g = hcg[2] / 100;\n\n\tif (c === 0.0) {\n\t\treturn [g * 255, g * 255, g * 255];\n\t}\n\n\tconst pure = [0, 0, 0];\n\tconst hi = (h % 1) * 6;\n\tconst v = hi % 1;\n\tconst w = 1 - v;\n\tlet mg = 0;\n\n\t/* eslint-disable max-statements-per-line */\n\tswitch (Math.floor(hi)) {\n\t\tcase 0:\n\t\t\tpure[0] = 1; pure[1] = v; pure[2] = 0; break;\n\t\tcase 1:\n\t\t\tpure[0] = w; pure[1] = 1; pure[2] = 0; break;\n\t\tcase 2:\n\t\t\tpure[0] = 0; pure[1] = 1; pure[2] = v; break;\n\t\tcase 3:\n\t\t\tpure[0] = 0; pure[1] = w; pure[2] = 1; break;\n\t\tcase 4:\n\t\t\tpure[0] = v; pure[1] = 0; pure[2] = 1; break;\n\t\tdefault:\n\t\t\tpure[0] = 1; pure[1] = 0; pure[2] = w;\n\t}\n\t/* eslint-enable max-statements-per-line */\n\n\tmg = (1.0 - c) * g;\n\n\treturn [\n\t\t(c * pure[0] + mg) * 255,\n\t\t(c * pure[1] + mg) * 255,\n\t\t(c * pure[2] + mg) * 255\n\t];\n};\n\nconvert.hcg.hsv = function (hcg) {\n\tconst c = hcg[1] / 100;\n\tconst g = hcg[2] / 100;\n\n\tconst v = c + g * (1.0 - c);\n\tlet f = 0;\n\n\tif (v > 0.0) {\n\t\tf = c / v;\n\t}\n\n\treturn [hcg[0], f * 100, v * 100];\n};\n\nconvert.hcg.hsl = function (hcg) {\n\tconst c = hcg[1] / 100;\n\tconst g = hcg[2] / 100;\n\n\tconst l = g * (1.0 - c) + 0.5 * c;\n\tlet s = 0;\n\n\tif (l > 0.0 && l < 0.5) {\n\t\ts = c / (2 * l);\n\t} else\n\tif (l >= 0.5 && l < 1.0) {\n\t\ts = c / (2 * (1 - l));\n\t}\n\n\treturn [hcg[0], s * 100, l * 100];\n};\n\nconvert.hcg.hwb = function (hcg) {\n\tconst c = hcg[1] / 100;\n\tconst g = hcg[2] / 100;\n\tconst v = c + g * (1.0 - c);\n\treturn [hcg[0], (v - c) * 100, (1 - v) * 100];\n};\n\nconvert.hwb.hcg = function (hwb) {\n\tconst w = hwb[1] / 100;\n\tconst b = hwb[2] / 100;\n\tconst v = 1 - b;\n\tconst c = v - w;\n\tlet g = 0;\n\n\tif (c < 1) {\n\t\tg = (v - c) / (1 - c);\n\t}\n\n\treturn [hwb[0], c * 100, g * 100];\n};\n\nconvert.apple.rgb = function (apple) {\n\treturn [(apple[0] / 65535) * 255, (apple[1] / 65535) * 255, (apple[2] / 65535) * 255];\n};\n\nconvert.rgb.apple = function (rgb) {\n\treturn [(rgb[0] / 255) * 65535, (rgb[1] / 255) * 65535, (rgb[2] / 255) * 65535];\n};\n\nconvert.gray.rgb = function (args) {\n\treturn [args[0] / 100 * 255, args[0] / 100 * 255, args[0] / 100 * 255];\n};\n\nconvert.gray.hsl = function (args) {\n\treturn [0, 0, args[0]];\n};\n\nconvert.gray.hsv = convert.gray.hsl;\n\nconvert.gray.hwb = function (gray) {\n\treturn [0, 100, gray[0]];\n};\n\nconvert.gray.cmyk = function (gray) {\n\treturn [0, 0, 0, gray[0]];\n};\n\nconvert.gray.lab = function (gray) {\n\treturn [gray[0], 0, 0];\n};\n\nconvert.gray.hex = function (gray) {\n\tconst val = Math.round(gray[0] / 100 * 255) & 0xFF;\n\tconst integer = (val << 16) + (val << 8) + val;\n\n\tconst string = integer.toString(16).toUpperCase();\n\treturn '000000'.substring(string.length) + string;\n};\n\nconvert.rgb.gray = function (rgb) {\n\tconst val = (rgb[0] + rgb[1] + rgb[2]) / 3;\n\treturn [val / 255 * 100];\n};\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.ck.ck-menu-bar__menu>.ck-menu-bar__menu__button>.ck-menu-bar__menu__button__arrow{pointer-events:none;z-index:var(--ck-z-default)}.ck.ck-menu-bar__menu>.ck-menu-bar__menu__button{width:100%}.ck.ck-menu-bar__menu>.ck-menu-bar__menu__button>.ck-button__label{flex-grow:1;overflow:hidden;text-overflow:ellipsis}.ck.ck-menu-bar__menu>.ck-menu-bar__menu__button.ck-disabled>.ck-button__label{opacity:var(--ck-disabled-opacity)}[dir=ltr] .ck.ck-menu-bar__menu>.ck-menu-bar__menu__button:not(.ck-button_with-text){padding-left:var(--ck-spacing-small)}[dir=rtl] .ck.ck-menu-bar__menu>.ck-menu-bar__menu__button:not(.ck-button_with-text){padding-right:var(--ck-spacing-small)}.ck.ck-menu-bar__menu.ck-menu-bar__menu_top-level>.ck-menu-bar__menu__button{min-height:unset;padding:var(--ck-spacing-small) var(--ck-spacing-medium)}.ck.ck-menu-bar__menu.ck-menu-bar__menu_top-level>.ck-menu-bar__menu__button .ck-button__label{line-height:unset;overflow:visible;width:unset}.ck.ck-menu-bar__menu.ck-menu-bar__menu_top-level>.ck-menu-bar__menu__button.ck-on{border-bottom-left-radius:0;border-bottom-right-radius:0}.ck.ck-menu-bar__menu.ck-menu-bar__menu_top-level>.ck-menu-bar__menu__button .ck-icon{display:none}.ck.ck-menu-bar__menu:not(.ck-menu-bar__menu_top-level) .ck-menu-bar__menu__button{border-radius:0}.ck.ck-menu-bar__menu:not(.ck-menu-bar__menu_top-level) .ck-menu-bar__menu__button>.ck-menu-bar__menu__button__arrow{width:var(--ck-dropdown-arrow-size)}[dir=ltr] .ck.ck-menu-bar__menu:not(.ck-menu-bar__menu_top-level) .ck-menu-bar__menu__button>.ck-menu-bar__menu__button__arrow{margin-left:var(--ck-spacing-standard);margin-right:calc(var(--ck-spacing-small)*-1);transform:rotate(-90deg)}[dir=rtl] .ck.ck-menu-bar__menu:not(.ck-menu-bar__menu_top-level) .ck-menu-bar__menu__button>.ck-menu-bar__menu__button__arrow{left:var(--ck-spacing-standard);margin-left:calc(var(--ck-spacing-small)*-1);margin-right:var(--ck-spacing-small);transform:rotate(90deg)}.ck.ck-menu-bar__menu:not(.ck-menu-bar__menu_top-level) .ck-menu-bar__menu__button.ck-disabled>.ck-menu-bar__menu__button__arrow{opacity:var(--ck-disabled-opacity)}`, \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/components/menubar/menubarmenubutton.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-ui/components/menubar/menubarmenubutton.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/mixins/_disabled.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/mixins/_dir.css\"],\"names\":[],\"mappings\":\"AAMC,mFACC,mBAAoB,CACpB,2BACD,CCIA,iDACC,UAuBD,CArBC,mEACC,WAAY,CACZ,eAAgB,CAChB,sBACD,CAEA,+ECbD,kCDeC,CAGC,qFACC,oCACD,CAIA,qFACC,qCACD,CAOF,6EAEC,gBAAiB,CADjB,wDAsBD,CAnBC,+FAEC,iBAAkB,CAMlB,gBAAiB,CAPjB,WAQD,CAEA,mFACC,2BAA4B,CAC5B,4BACD,CAEA,sFACC,YACD,CAMD,mFACC,eA+BD,CA7BC,qHACC,mCAuBD,CE3FD,+HF0EG,sCAAuC,CAGvC,6CAAgD,CANhD,wBErEH,CAFA,+HFmFG,+BAAgC,CAMhC,4CAA+C,CAH/C,oCAAqC,CALrC,uBE/EH,CF2FC,iIC1FD,kCD4FC\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n.ck.ck-menu-bar__menu {\\n\\t& > .ck-menu-bar__menu__button > .ck-menu-bar__menu__button__arrow {\\n\\t\\tpointer-events: none;\\n\\t\\tz-index: var(--ck-z-default);\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n@import \\\"../../../mixins/_disabled.css\\\";\\n@import \\\"../../mixins/_button.css\\\";\\n@import \\\"@ckeditor/ckeditor5-ui/theme/mixins/_dir.css\\\";\\n\\n.ck.ck-menu-bar__menu {\\n\\t/*\\n\\t * All menu buttons.\\n\\t */\\n\\t& > .ck-menu-bar__menu__button {\\n\\t\\twidth: 100%;\\n\\n\\t\\t& > .ck-button__label {\\n\\t\\t\\tflex-grow: 1;\\n\\t\\t\\toverflow: hidden;\\n\\t\\t\\ttext-overflow: ellipsis;\\n\\t\\t}\\n\\n\\t\\t&.ck-disabled > .ck-button__label {\\n\\t\\t\\t@mixin ck-disabled;\\n\\t\\t}\\n\\n\\t\\t@mixin ck-dir ltr {\\n\\t\\t\\t&:not(.ck-button_with-text) {\\n\\t\\t\\t\\tpadding-left: var(--ck-spacing-small);\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t@mixin ck-dir rtl {\\n\\t\\t\\t&:not(.ck-button_with-text) {\\n\\t\\t\\t\\tpadding-right: var(--ck-spacing-small);\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n\\t/*\\n\\t * Top-level menu buttons only.\\n\\t */\\n\\t&.ck-menu-bar__menu_top-level > .ck-menu-bar__menu__button {\\n\\t\\tpadding: var(--ck-spacing-small) var(--ck-spacing-medium);\\n\\t\\tmin-height: unset;\\n\\n\\t\\t& .ck-button__label {\\n\\t\\t\\twidth: unset;\\n\\t\\t\\tline-height: unset;\\n\\n\\t\\t\\t/*\\n\\t\\t\\t * Top-level buttons don't use ellipsis and overflow: hidden clips descenders.\\n\\t\\t\\t * See https://github.com/ckeditor/ckeditor5/issues/17422.\\n\\t\\t\\t */\\n\\t\\t\\toverflow: visible;\\n\\t\\t}\\n\\n\\t\\t&.ck-on {\\n\\t\\t\\tborder-bottom-left-radius: 0;\\n\\t\\t\\tborder-bottom-right-radius: 0;\\n\\t\\t}\\n\\n\\t\\t& .ck-icon {\\n\\t\\t\\tdisplay: none;\\n\\t\\t}\\n\\t}\\n\\n\\t/*\\n\\t * Sub-menu buttons.\\n\\t */\\n\\t&:not(.ck-menu-bar__menu_top-level) .ck-menu-bar__menu__button {\\n\\t\\tborder-radius: 0;\\n\\n\\t\\t& > .ck-menu-bar__menu__button__arrow {\\n\\t\\t\\twidth: var(--ck-dropdown-arrow-size);\\n\\n\\t\\t\\t@mixin ck-dir ltr {\\n\\t\\t\\t\\ttransform: rotate(-90deg);\\n\\n\\t\\t\\t\\t/* A space to accommodate the triangle. */\\n\\t\\t\\t\\tmargin-left: var(--ck-spacing-standard);\\n\\n\\t\\t\\t\\t/* Nudge the arrow gently to the right because its center of gravity is to the left */\\n\\t\\t\\t\\tmargin-right: calc(-1 * var(--ck-spacing-small));\\n\\t\\t\\t}\\n\\n\\t\\t\\t@mixin ck-dir rtl {\\n\\t\\t\\t\\ttransform: rotate(90deg);\\n\\n\\t\\t\\t\\tleft: var(--ck-spacing-standard);\\n\\n\\t\\t\\t\\t/* A space to accommodate the triangle. */\\n\\t\\t\\t\\tmargin-right: var(--ck-spacing-small);\\n\\n\\t\\t\\t\\t/* Nudge the arrow gently to the left because its center of gravity is to the right (after rotation). */\\n\\t\\t\\t\\tmargin-left: calc(-1 * var(--ck-spacing-small));\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t&.ck-disabled > .ck-menu-bar__menu__button__arrow {\\n\\t\\t\\t@mixin ck-disabled;\\n\\t\\t}\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n/**\\n * A class which indicates that an element holding it is disabled.\\n */\\n@define-mixin ck-disabled {\\n\\topacity: var(--ck-disabled-opacity);\\n}\\n\",\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n@define-mixin ck-dir $direction {\\n\\t[dir=\\\"$(direction)\\\"] & {\\n\\t\\t@mixin-content;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.ck.ck-table-form .ck-form__row.ck-table-form__background-row,.ck.ck-table-form .ck-form__row.ck-table-form__border-row{flex-wrap:wrap}.ck.ck-table-form .ck-form__row.ck-table-form__dimensions-row{align-items:center;flex-wrap:wrap}.ck.ck-table-form .ck-form__row.ck-table-form__dimensions-row .ck-labeled-field-view{align-items:center;display:flex;flex-direction:column-reverse}.ck.ck-table-form .ck-form__row.ck-table-form__dimensions-row .ck-labeled-field-view .ck.ck-dropdown,.ck.ck-table-form .ck-form__row.ck-table-form__dimensions-row .ck-table-form__dimension-operator{flex-grow:0}.ck.ck-table-form .ck.ck-labeled-field-view{position:relative}.ck.ck-table-form .ck.ck-labeled-field-view .ck.ck-labeled-field-view__status{bottom:calc(var(--ck-table-properties-error-arrow-size)*-1);left:50%;position:absolute;transform:translate(-50%,100%);z-index:1}.ck.ck-table-form .ck.ck-labeled-field-view .ck.ck-labeled-field-view__status:after{content:\"\";left:50%;position:absolute;top:calc(var(--ck-table-properties-error-arrow-size)*-1);transform:translateX(-50%)}:root{--ck-table-properties-error-arrow-size:6px;--ck-table-properties-min-error-width:150px}.ck.ck-table-form .ck-form__row.ck-table-form__border-row .ck-labeled-field-view>.ck-label{font-size:var(--ck-font-size-tiny);text-align:center}.ck.ck-table-form .ck-form__row.ck-table-form__border-row .ck-table-form__border-style,.ck.ck-table-form .ck-form__row.ck-table-form__border-row .ck-table-form__border-width{max-width:80px;min-width:80px;width:80px}.ck.ck-table-form .ck-form__row.ck-table-form__dimensions-row{padding:0}.ck.ck-table-form .ck-form__row.ck-table-form__dimensions-row .ck-table-form__dimensions-row__height,.ck.ck-table-form .ck-form__row.ck-table-form__dimensions-row .ck-table-form__dimensions-row__width{margin:0}.ck.ck-table-form .ck-form__row.ck-table-form__dimensions-row .ck-table-form__dimension-operator{align-self:flex-end;display:inline-block;height:var(--ck-ui-component-min-height);line-height:var(--ck-ui-component-min-height);margin:0 var(--ck-spacing-small)}.ck.ck-table-form .ck.ck-labeled-field-view{padding-top:var(--ck-spacing-standard)}.ck.ck-table-form .ck.ck-labeled-field-view .ck.ck-labeled-field-view__status{animation:ck-table-form-labeled-view-status-appear .15s ease both;background:var(--ck-color-base-error);border-radius:0;color:var(--ck-color-base-background);min-width:var(--ck-table-properties-min-error-width);padding:var(--ck-spacing-small) var(--ck-spacing-medium);text-align:center}.ck-rounded-corners .ck.ck-table-form .ck.ck-labeled-field-view .ck.ck-labeled-field-view__status,.ck.ck-table-form .ck.ck-labeled-field-view .ck.ck-labeled-field-view__status.ck-rounded-corners{border-radius:var(--ck-border-radius)}.ck.ck-table-form .ck.ck-labeled-field-view .ck.ck-labeled-field-view__status:after{border-color:transparent transparent var(--ck-color-base-error) transparent;border-style:solid;border-width:0 var(--ck-table-properties-error-arrow-size) var(--ck-table-properties-error-arrow-size) var(--ck-table-properties-error-arrow-size)}@media (prefers-reduced-motion:reduce){.ck.ck-table-form .ck.ck-labeled-field-view .ck.ck-labeled-field-view__status{animation:none}}.ck.ck-table-form .ck.ck-labeled-field-view .ck-input.ck-error:not(:focus)+.ck.ck-labeled-field-view__status{display:none}@keyframes ck-table-form-labeled-view-status-appear{0%{opacity:0}to{opacity:1}}`, \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@ckeditor/ckeditor5-table/theme/tableform.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-table/tableform.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/mixins/_rounded.css\"],\"names\":[],\"mappings\":\"AAWE,wHACC,cACD,CAEA,8DAEC,kBAAmB,CADnB,cAgBD,CAbC,qFAGC,kBAAmB,CAFnB,YAAa,CACb,6BAMD,CAEA,sMACC,WACD,CAIF,4CAEC,iBAoBD,CAlBC,8EAGC,2DAAgE,CADhE,QAAS,CADT,iBAAkB,CAGlB,8BAA+B,CAG/B,SAUD,CAPC,oFACC,UAAW,CAGX,QAAS,CAFT,iBAAkB,CAClB,wDAA6D,CAE7D,0BACD,CChDH,MACC,0CAA2C,CAC3C,2CACD,CAMI,2FACC,kCAAmC,CACnC,iBACD,CAGD,8KAIC,cAAe,CADf,cAAe,CADf,UAGD,CAGD,8DACC,SAcD,CAZC,yMAEC,QACD,CAEA,iGACC,mBAAoB,CACpB,oBAAqB,CACrB,wCAAyC,CACzC,6CAA8C,CAC9C,gCACD,CAIF,4CACC,sCA6BD,CA3BC,8EAgBC,iEAAkE,CAblE,qCAAsC,CC3CxC,eAAgB,CD4Cd,qCAAsC,CAEtC,oDAAqD,CADrD,wDAAyD,CAEzD,iBAcD,CC3DD,mMAEC,qCAED,CD4CE,oFACC,2EAA4E,CAE5E,kBAAmB,CADnB,kJAED,CAIA,uCAlBD,8EAmBE,cAEF,CADC,CAID,6GACC,YACD,CAIF,oDACC,GACC,SACD,CAEA,GACC,SACD,CACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n.ck.ck-table-form {\\n\\t& .ck-form__row {\\n\\t\\t&.ck-table-form__border-row {\\n\\t\\t\\tflex-wrap: wrap;\\n\\t\\t}\\n\\n\\t\\t&.ck-table-form__background-row {\\n\\t\\t\\tflex-wrap: wrap;\\n\\t\\t}\\n\\n\\t\\t&.ck-table-form__dimensions-row {\\n\\t\\t\\tflex-wrap: wrap;\\n\\t\\t\\talign-items: center;\\n\\n\\t\\t\\t& .ck-labeled-field-view {\\n\\t\\t\\t\\tdisplay: flex;\\n\\t\\t\\t\\tflex-direction: column-reverse;\\n\\t\\t\\t\\talign-items: center;\\n\\n\\t\\t\\t\\t& .ck.ck-dropdown {\\n\\t\\t\\t\\t\\tflex-grow: 0;\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\n\\t\\t\\t& .ck-table-form__dimension-operator {\\n\\t\\t\\t\\tflex-grow: 0;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n\\t& .ck.ck-labeled-field-view {\\n\\t\\t/* Allow absolute positioning of the status (error) balloons. */\\n\\t\\tposition: relative;\\n\\n\\t\\t& .ck.ck-labeled-field-view__status {\\n\\t\\t\\tposition: absolute;\\n\\t\\t\\tleft: 50%;\\n\\t\\t\\tbottom: calc( -1 * var(--ck-table-properties-error-arrow-size) );\\n\\t\\t\\ttransform: translate(-50%,100%);\\n\\n\\t\\t\\t/* Make sure the balloon status stays on top of other form elements. */\\n\\t\\t\\tz-index: 1;\\n\\n\\t\\t\\t/* The arrow pointing towards the field. */\\n\\t\\t\\t&::after {\\n\\t\\t\\t\\tcontent: \\\"\\\";\\n\\t\\t\\t\\tposition: absolute;\\n\\t\\t\\t\\ttop: calc( -1 * var(--ck-table-properties-error-arrow-size) );\\n\\t\\t\\t\\tleft: 50%;\\n\\t\\t\\t\\ttransform: translateX( -50% );\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n@import \\\"../mixins/_rounded.css\\\";\\n\\n:root {\\n\\t--ck-table-properties-error-arrow-size: 6px;\\n\\t--ck-table-properties-min-error-width: 150px;\\n}\\n\\n.ck.ck-table-form {\\n\\t& .ck-form__row {\\n\\t\\t&.ck-table-form__border-row {\\n\\t\\t\\t& .ck-labeled-field-view {\\n\\t\\t\\t\\t& > .ck-label {\\n\\t\\t\\t\\t\\tfont-size: var(--ck-font-size-tiny);\\n\\t\\t\\t\\t\\ttext-align: center;\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\n\\t\\t\\t& .ck-table-form__border-style,\\n\\t\\t\\t& .ck-table-form__border-width {\\n\\t\\t\\t\\twidth: 80px;\\n\\t\\t\\t\\tmin-width: 80px;\\n\\t\\t\\t\\tmax-width: 80px;\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t&.ck-table-form__dimensions-row {\\n\\t\\t\\tpadding: 0;\\n\\n\\t\\t\\t& .ck-table-form__dimensions-row__width,\\n\\t\\t\\t& .ck-table-form__dimensions-row__height {\\n\\t\\t\\t\\tmargin: 0\\n\\t\\t\\t}\\n\\n\\t\\t\\t& .ck-table-form__dimension-operator {\\n\\t\\t\\t\\talign-self: flex-end;\\n\\t\\t\\t\\tdisplay: inline-block;\\n\\t\\t\\t\\theight: var(--ck-ui-component-min-height);\\n\\t\\t\\t\\tline-height: var(--ck-ui-component-min-height);\\n\\t\\t\\t\\tmargin: 0 var(--ck-spacing-small);\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n\\t& .ck.ck-labeled-field-view {\\n\\t\\tpadding-top: var(--ck-spacing-standard);\\n\\n\\t\\t& .ck.ck-labeled-field-view__status {\\n\\t\\t\\t@mixin ck-rounded-corners;\\n\\n\\t\\t\\tbackground: var(--ck-color-base-error);\\n\\t\\t\\tcolor: var(--ck-color-base-background);\\n\\t\\t\\tpadding: var(--ck-spacing-small) var(--ck-spacing-medium);\\n\\t\\t\\tmin-width: var(--ck-table-properties-min-error-width);\\n\\t\\t\\ttext-align: center;\\n\\n\\t\\t\\t/* The arrow pointing towards the field. */\\n\\t\\t\\t&::after {\\n\\t\\t\\t\\tborder-color: transparent transparent var(--ck-color-base-error) transparent;\\n\\t\\t\\t\\tborder-width: 0 var(--ck-table-properties-error-arrow-size) var(--ck-table-properties-error-arrow-size) var(--ck-table-properties-error-arrow-size);\\n\\t\\t\\t\\tborder-style: solid;\\n\\t\\t\\t}\\n\\n\\t\\t\\tanimation: ck-table-form-labeled-view-status-appear .15s ease both;\\n\\n\\t\\t\\t@media (prefers-reduced-motion: reduce) {\\n\\t\\t\\t\\tanimation: none;\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t/* Hide the error balloon when the field is blurred. Makes the experience much more clear. */\\n\\t\\t& .ck-input.ck-error:not(:focus) + .ck.ck-labeled-field-view__status {\\n\\t\\t\\tdisplay: none;\\n\\t\\t}\\n\\t}\\n}\\n\\n@keyframes ck-table-form-labeled-view-status-appear {\\n\\t0% {\\n\\t\\topacity: 0;\\n\\t}\\n\\n\\t100% {\\n\\t\\topacity: 1;\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n/**\\n * Implements rounded corner interface for .ck-rounded-corners class.\\n *\\n * @see $ck-border-radius\\n */\\n@define-mixin ck-rounded-corners {\\n\\tborder-radius: 0;\\n\\n\\t.ck-rounded-corners &,\\n\\t&.ck-rounded-corners {\\n\\t\\tborder-radius: var(--ck-border-radius);\\n\\t\\t@mixin-content;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.ck.ck-spinner-container{display:block;position:relative}.ck.ck-spinner{left:0;margin:0 auto;position:absolute;right:0;top:50%;transform:translateY(-50%);z-index:1}:root{--ck-toolbar-spinner-size:18px}.ck.ck-spinner-container{animation:ck-spinner-rotate 1.5s linear infinite;height:var(--ck-toolbar-spinner-size);width:var(--ck-toolbar-spinner-size)}@media (prefers-reduced-motion:reduce){.ck.ck-spinner-container{animation-duration:3s}}.ck.ck-spinner{border:2px solid var(--ck-color-text);border-radius:50%;border-top:2px solid transparent;height:var(--ck-toolbar-spinner-size);width:var(--ck-toolbar-spinner-size)}@keyframes ck-spinner-rotate{to{transform:rotate(1turn)}}`, \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/components/spinner/spinner.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-ui/components/spinner/spinner.css\"],\"names\":[],\"mappings\":\"AASA,yBACC,aAAc,CACd,iBACD,CAEA,eAGC,MAAO,CAEP,aAAc,CAJd,iBAAkB,CAGlB,OAAQ,CAFR,OAAQ,CAIR,0BAA2B,CAC3B,SACD,CCjBA,MACC,8BACD,CAEA,yBAGC,gDAAiD,CADjD,qCAAsC,CADtC,oCAOD,CAHC,uCALD,yBAME,qBAEF,CADC,CAGD,eAKC,qCAA6B,CAF7B,iBAAkB,CAElB,gCAA6B,CAH7B,qCAAsC,CADtC,oCAKD,CAEA,6BACC,GACC,uBACD,CACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n:root {\\n\\t--ck-toolbar-spinner-size: 18px;\\n}\\n\\n.ck.ck-spinner-container {\\n\\tdisplay: block;\\n\\tposition: relative;\\n}\\n\\n.ck.ck-spinner {\\n\\tposition: absolute;\\n\\ttop: 50%;\\n\\tleft: 0;\\n\\tright: 0;\\n\\tmargin: 0 auto;\\n\\ttransform: translateY(-50%);\\n\\tz-index: 1;\\n}\\n\",\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n:root {\\n\\t--ck-toolbar-spinner-size: 18px;\\n}\\n\\n.ck.ck-spinner-container {\\n\\twidth: var(--ck-toolbar-spinner-size);\\n\\theight: var(--ck-toolbar-spinner-size);\\n\\tanimation: 1.5s infinite ck-spinner-rotate linear;\\n\\n\\t@media (prefers-reduced-motion: reduce) {\\n\\t\\tanimation-duration: 3s;\\n\\t}\\n}\\n\\n.ck.ck-spinner {\\n\\twidth: var(--ck-toolbar-spinner-size);\\n\\theight: var(--ck-toolbar-spinner-size);\\n\\tborder-radius: 50%;\\n\\tborder: 2px solid var(--ck-color-text);\\n\\tborder-top-color: transparent;\\n}\\n\\n@keyframes ck-spinner-rotate {\\n\\tto {\\n\\t\\ttransform: rotate(360deg)\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.ck.ck-form__row{display:flex;flex-direction:row;flex-wrap:nowrap;justify-content:space-between}.ck.ck-form__row>:not(.ck-label){flex-grow:1}.ck.ck-form__row.ck-table-form__action-row .ck-button-cancel,.ck.ck-form__row.ck-table-form__action-row .ck-button-save{justify-content:center}.ck.ck-form__row{padding:var(--ck-spacing-standard) var(--ck-spacing-large) 0}[dir=ltr] .ck.ck-form__row>:not(.ck-label)+*{margin-left:var(--ck-spacing-large)}[dir=rtl] .ck.ck-form__row>:not(.ck-label)+*{margin-right:var(--ck-spacing-large)}.ck.ck-form__row>.ck-label{min-width:100%;width:100%}.ck.ck-form__row.ck-table-form__action-row{margin-top:var(--ck-spacing-large)}.ck.ck-form__row.ck-table-form__action-row .ck-button .ck-button__label{color:var(--ck-color-text)}`, \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@ckeditor/ckeditor5-table/theme/formrow.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-table/formrow.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/mixins/_dir.css\"],\"names\":[],\"mappings\":\"AAKA,iBACC,YAAa,CACb,kBAAmB,CACnB,gBAAiB,CACjB,6BAaD,CAVC,iCACC,WACD,CAGC,wHAEC,sBACD,CCbF,iBACC,4DA2BD,CC7BC,6CDQG,mCCNH,CAFA,6CDYG,oCCVH,CDeA,2BAEC,cAAe,CADf,UAED,CAEA,2CACC,kCAKD,CAHC,wEACC,0BACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n.ck.ck-form__row {\\n\\tdisplay: flex;\\n\\tflex-direction: row;\\n\\tflex-wrap: nowrap;\\n\\tjustify-content: space-between;\\n\\n\\t/* Ignore labels that work as fieldset legends */\\n\\t& > *:not(.ck-label) {\\n\\t\\tflex-grow: 1;\\n\\t}\\n\\n\\t&.ck-table-form__action-row {\\n\\t\\t& .ck-button-save,\\n\\t\\t& .ck-button-cancel {\\n\\t\\t\\tjustify-content: center;\\n\\t\\t}\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n@import \\\"@ckeditor/ckeditor5-ui/theme/mixins/_dir.css\\\";\\n\\n.ck.ck-form__row {\\n\\tpadding: var(--ck-spacing-standard) var(--ck-spacing-large) 0;\\n\\n\\t/* Ignore labels that work as fieldset legends */\\n\\t& > *:not(.ck-label) {\\n\\t\\t& + * {\\n\\t\\t\\t@mixin ck-dir ltr {\\n\\t\\t\\t\\tmargin-left: var(--ck-spacing-large);\\n\\t\\t\\t}\\n\\n\\t\\t\\t@mixin ck-dir rtl {\\n\\t\\t\\t\\tmargin-right: var(--ck-spacing-large);\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n\\t& > .ck-label {\\n\\t\\twidth: 100%;\\n\\t\\tmin-width: 100%;\\n\\t}\\n\\n\\t&.ck-table-form__action-row {\\n\\t\\tmargin-top: var(--ck-spacing-large);\\n\\n\\t\\t& .ck-button .ck-button__label {\\n\\t\\t\\tcolor: var(--ck-color-text);\\n\\t\\t}\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n@define-mixin ck-dir $direction {\\n\\t[dir=\\\"$(direction)\\\"] & {\\n\\t\\t@mixin-content;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.ck.ck-list{display:flex;flex-direction:column;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none}.ck.ck-list .ck-list__item,.ck.ck-list .ck-list__separator{display:block}.ck.ck-list .ck-list__item>:focus{position:relative;z-index:var(--ck-z-default)}.ck.ck-list{background:var(--ck-color-list-background);border-radius:0;list-style-type:none;padding:var(--ck-spacing-small) 0}.ck-rounded-corners .ck.ck-list,.ck.ck-list.ck-rounded-corners{border-radius:var(--ck-border-radius)}.ck.ck-list__item{cursor:default;min-width:15em}.ck.ck-list__item>.ck-button:not(.ck-list-item-button){border-radius:0;min-height:unset;padding:var(--ck-spacing-tiny) calc(var(--ck-spacing-standard)*2);width:100%}[dir=ltr] .ck.ck-list__item>.ck-button:not(.ck-list-item-button){text-align:left}[dir=rtl] .ck.ck-list__item>.ck-button:not(.ck-list-item-button){text-align:right}.ck.ck-list__item>.ck-button:not(.ck-list-item-button) .ck-button__label{line-height:calc(var(--ck-line-height-base)*var(--ck-font-size-base))}.ck.ck-list__item>.ck-button:not(.ck-list-item-button):active{box-shadow:none}.ck.ck-list__item>.ck-button.ck-on:not(.ck-list-item-button){background:var(--ck-color-list-button-on-background);color:var(--ck-color-list-button-on-text)}.ck.ck-list__item>.ck-button.ck-on:not(.ck-list-item-button):active{box-shadow:none}.ck.ck-list__item>.ck-button.ck-on:not(.ck-list-item-button):hover:not(.ck-disabled){background:var(--ck-color-list-button-on-background-focus)}.ck.ck-list__item>.ck-button.ck-on:not(.ck-list-item-button):focus:not(.ck-disabled){border-color:var(--ck-color-base-background)}.ck.ck-list__item>.ck-button:not(.ck-list-item-button):hover:not(.ck-disabled){background:var(--ck-color-list-button-hover-background)}.ck.ck-list__item>.ck-button.ck-switchbutton.ck-on{background:var(--ck-color-list-background);color:inherit}.ck.ck-list__item>.ck-button.ck-switchbutton.ck-on:hover:not(.ck-disabled){background:var(--ck-color-list-button-hover-background);color:inherit}.ck-list .ck-list__group{padding-top:var(--ck-spacing-medium)}.ck-list .ck-list__group:first-child{padding-top:0}:not(.ck-hidden)~.ck-list .ck-list__group{border-top:1px solid var(--ck-color-base-border)}.ck-list .ck-list__group>.ck-label{font-size:11px;font-weight:700;padding:var(--ck-spacing-medium) var(--ck-spacing-large) 0}.ck.ck-list__separator{background:var(--ck-color-base-border);height:1px;margin:var(--ck-spacing-small) 0;width:100%}`, \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/components/list/list.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/mixins/_unselectable.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-ui/components/list/list.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/mixins/_rounded.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/mixins/_dir.css\"],\"names\":[],\"mappings\":\"AAOA,YAGC,YAAa,CACb,qBAAsB,CCFtB,qBAAsB,CACtB,wBAAyB,CACzB,oBAAqB,CACrB,gBDaD,CAZC,2DAEC,aACD,CAKA,kCACC,iBAAkB,CAClB,2BACD,CEdD,YAIC,0CAA2C,CCH3C,eAAgB,CDEhB,oBAAqB,CAIrB,iCACD,CCLC,+DAEC,qCAED,CDGD,kBACC,cAAe,CAGf,cA4DD,CA1DC,uDAIC,eAAgB,CAFhB,gBAAiB,CADjB,iEAAoE,CAEpE,UAwCD,CE/DA,iEF2BE,eEzBF,CAFA,iEF+BE,gBE7BF,CFgCC,yEAEC,qEACD,CAEA,8DACC,eACD,CAEA,6DACC,oDAAqD,CACrD,yCAaD,CAXC,oEACC,eACD,CAEA,qFACC,0DACD,CAEA,qFACC,4CACD,CAGD,+EACC,uDACD,CAMA,mDACC,0CAA2C,CAC3C,aAMD,CAJC,2EACC,uDAAwD,CACxD,aACD,CAKH,yBACC,oCAiBD,CAdC,qCACC,aACD,CAGA,0CACC,gDACD,CAEA,mCACC,cAAe,CACf,eAAiB,CACjB,0DACD,CAGD,uBAGC,sCAAuC,CAFvC,UAAW,CAKX,gCAAiC,CAJjC,UAKD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n@import \\\"../../mixins/_unselectable.css\\\";\\n\\n.ck.ck-list {\\n\\t@mixin ck-unselectable;\\n\\n\\tdisplay: flex;\\n\\tflex-direction: column;\\n\\n\\t& .ck-list__item,\\n\\t& .ck-list__separator {\\n\\t\\tdisplay: block;\\n\\t}\\n\\n\\t/* Make sure that whatever child of the list item gets focus, it remains on the\\n\\ttop. Thanks to that, styles like box-shadow, outline, etc. are not masked by\\n\\tadjacent list items. */\\n\\t& .ck-list__item > *:focus {\\n\\t\\tposition: relative;\\n\\t\\tz-index: var(--ck-z-default);\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n/**\\n * Makes element unselectable.\\n */\\n@define-mixin ck-unselectable {\\n\\t-moz-user-select: none;\\n\\t-webkit-user-select: none;\\n\\t-ms-user-select: none;\\n\\tuser-select: none\\n}\\n\",\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n@import \\\"../../../mixins/_disabled.css\\\";\\n@import \\\"../../../mixins/_rounded.css\\\";\\n@import \\\"../../../mixins/_shadow.css\\\";\\n@import \\\"@ckeditor/ckeditor5-ui/theme/mixins/_dir.css\\\";\\n\\n.ck.ck-list {\\n\\t@mixin ck-rounded-corners;\\n\\n\\tlist-style-type: none;\\n\\tbackground: var(--ck-color-list-background);\\n\\n\\t/* A spacing at the beginning and end of the list */\\n\\tpadding: var(--ck-spacing-small) 0;\\n}\\n\\n.ck.ck-list__item {\\n\\tcursor: default;\\n\\n\\t/* Almost as wide as menu bar items. */\\n\\tmin-width: 15em;\\n\\n\\t& > .ck-button:not(.ck-list-item-button) {\\n\\t\\tpadding: var(--ck-spacing-tiny) calc(2 * var(--ck-spacing-standard));\\n\\t\\tmin-height: unset;\\n\\t\\twidth: 100%;\\n\\t\\tborder-radius: 0;\\n\\n\\t\\t@mixin ck-dir ltr {\\n\\t\\t\\ttext-align: left;\\n\\t\\t}\\n\\n\\t\\t@mixin ck-dir rtl {\\n\\t\\t\\ttext-align: right;\\n\\t\\t}\\n\\n\\t\\t& .ck-button__label {\\n\\t\\t\\t/* https://github.com/ckeditor/ckeditor5-heading/issues/63 */\\n\\t\\t\\tline-height: calc(var(--ck-line-height-base) * var(--ck-font-size-base));\\n\\t\\t}\\n\\n\\t\\t&:active {\\n\\t\\t\\tbox-shadow: none;\\n\\t\\t}\\n\\n\\t\\t&.ck-on {\\n\\t\\t\\tbackground: var(--ck-color-list-button-on-background);\\n\\t\\t\\tcolor: var(--ck-color-list-button-on-text);\\n\\n\\t\\t\\t&:active {\\n\\t\\t\\t\\tbox-shadow: none;\\n\\t\\t\\t}\\n\\n\\t\\t\\t&:hover:not(.ck-disabled) {\\n\\t\\t\\t\\tbackground: var(--ck-color-list-button-on-background-focus);\\n\\t\\t\\t}\\n\\n\\t\\t\\t&:focus:not(.ck-disabled) {\\n\\t\\t\\t\\tborder-color: var(--ck-color-base-background);\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t&:hover:not(.ck-disabled) {\\n\\t\\t\\tbackground: var(--ck-color-list-button-hover-background);\\n\\t\\t}\\n\\t}\\n\\n\\t/* It's unnecessary to change the background/text of a switch toggle; it has different ways\\n\\tof conveying its state (like the switcher) */\\n\\t& > .ck-button.ck-switchbutton {\\n\\t\\t&.ck-on {\\n\\t\\t\\tbackground: var(--ck-color-list-background);\\n\\t\\t\\tcolor: inherit;\\n\\n\\t\\t\\t&:hover:not(.ck-disabled) {\\n\\t\\t\\t\\tbackground: var(--ck-color-list-button-hover-background);\\n\\t\\t\\t\\tcolor: inherit;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n}\\n\\n.ck-list .ck-list__group {\\n\\tpadding-top: var(--ck-spacing-medium);\\n\\n\\t/* Lists come with an inner vertical padding. Don't duplicate it. */\\n\\t&:first-child {\\n\\t\\tpadding-top: 0;\\n\\t}\\n\\n\\t/* The group should have a border when it's not the first item. */\\n\\t*:not(.ck-hidden) ~ & {\\n\\t\\tborder-top: 1px solid var(--ck-color-base-border);\\n\\t}\\n\\n\\t& > .ck-label {\\n\\t\\tfont-size: 11px;\\n\\t\\tfont-weight: bold;\\n\\t\\tpadding: var(--ck-spacing-medium) var(--ck-spacing-large) 0;\\n\\t}\\n}\\n\\n.ck.ck-list__separator {\\n\\theight: 1px;\\n\\twidth: 100%;\\n\\tbackground: var(--ck-color-base-border);\\n\\n\\t/* Give the separator some air */\\n\\tmargin: var(--ck-spacing-small) 0;\\n}\\n\",\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n/**\\n * Implements rounded corner interface for .ck-rounded-corners class.\\n *\\n * @see $ck-border-radius\\n */\\n@define-mixin ck-rounded-corners {\\n\\tborder-radius: 0;\\n\\n\\t.ck-rounded-corners &,\\n\\t&.ck-rounded-corners {\\n\\t\\tborder-radius: var(--ck-border-radius);\\n\\t\\t@mixin-content;\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n@define-mixin ck-dir $direction {\\n\\t[dir=\\\"$(direction)\\\"] & {\\n\\t\\t@mixin-content;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.ck.ck-heading_heading1 .ck-button__label{font-size:20px}.ck.ck-heading_heading2 .ck-button__label{font-size:17px}.ck.ck-heading_heading3 .ck-button__label{font-size:14px}.ck[class*=ck-heading_heading]{font-weight:700}.ck.ck-dropdown.ck-heading-dropdown .ck-dropdown__button .ck-button__label{width:8em}.ck.ck-dropdown.ck-heading-dropdown .ck-dropdown__panel .ck-list__item{min-width:18em}`, \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@ckeditor/ckeditor5-heading/theme/heading.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-heading/heading.css\"],\"names\":[],\"mappings\":\"AAKA,0CACC,cACD,CAEA,0CACC,cACD,CAEA,0CACC,cACD,CAEA,+BACC,eACD,CCZC,2EACC,SACD,CAEA,uEACC,cACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n.ck.ck-heading_heading1 .ck-button__label {\\n\\tfont-size: 20px;\\n}\\n\\n.ck.ck-heading_heading2 .ck-button__label {\\n\\tfont-size: 17px;\\n}\\n\\n.ck.ck-heading_heading3 .ck-button__label {\\n\\tfont-size: 14px;\\n}\\n\\n.ck[class*=\\\"ck-heading_heading\\\"] {\\n\\tfont-weight: bold;\\n}\\n\",\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n/* Resize dropdown's button label. */\\n.ck.ck-dropdown.ck-heading-dropdown {\\n\\t& .ck-dropdown__button .ck-button__label {\\n\\t\\twidth: 8em;\\n\\t}\\n\\n\\t& .ck-dropdown__panel .ck-list__item {\\n\\t\\tmin-width: 18em;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","\"use strict\";\n\n/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n*/\nmodule.exports = function (cssWithMappingToString) {\n var list = [];\n\n // return the list of modules as css string\n list.toString = function toString() {\n return this.map(function (item) {\n var content = \"\";\n var needLayer = typeof item[5] !== \"undefined\";\n if (item[4]) {\n content += \"@supports (\".concat(item[4], \") {\");\n }\n if (item[2]) {\n content += \"@media \".concat(item[2], \" {\");\n }\n if (needLayer) {\n content += \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\");\n }\n content += cssWithMappingToString(item);\n if (needLayer) {\n content += \"}\";\n }\n if (item[2]) {\n content += \"}\";\n }\n if (item[4]) {\n content += \"}\";\n }\n return content;\n }).join(\"\");\n };\n\n // import a list of modules into the list\n list.i = function i(modules, media, dedupe, supports, layer) {\n if (typeof modules === \"string\") {\n modules = [[null, modules, undefined]];\n }\n var alreadyImportedModules = {};\n if (dedupe) {\n for (var k = 0; k < this.length; k++) {\n var id = this[k][0];\n if (id != null) {\n alreadyImportedModules[id] = true;\n }\n }\n }\n for (var _k = 0; _k < modules.length; _k++) {\n var item = [].concat(modules[_k]);\n if (dedupe && alreadyImportedModules[item[0]]) {\n continue;\n }\n if (typeof layer !== \"undefined\") {\n if (typeof item[5] === \"undefined\") {\n item[5] = layer;\n } else {\n item[1] = \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\").concat(item[1], \"}\");\n item[5] = layer;\n }\n }\n if (media) {\n if (!item[2]) {\n item[2] = media;\n } else {\n item[1] = \"@media \".concat(item[2], \" {\").concat(item[1], \"}\");\n item[2] = media;\n }\n }\n if (supports) {\n if (!item[4]) {\n item[4] = \"\".concat(supports);\n } else {\n item[1] = \"@supports (\".concat(item[4], \") {\").concat(item[1], \"}\");\n item[4] = supports;\n }\n }\n list.push(item);\n }\n };\n return list;\n};","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.ck.ck-labeled-field-view>.ck.ck-labeled-field-view__input-wrapper{display:flex;position:relative}.ck.ck-labeled-field-view .ck.ck-label{display:block;position:absolute}:root{--ck-labeled-field-view-transition:.1s cubic-bezier(0,0,0.24,0.95);--ck-labeled-field-empty-unfocused-max-width:100% - 2 * var(--ck-spacing-medium);--ck-labeled-field-label-default-position-x:var(--ck-spacing-medium);--ck-labeled-field-label-default-position-y:calc(var(--ck-font-size-base)*0.6);--ck-color-labeled-field-label-background:var(--ck-color-base-background)}.ck.ck-labeled-field-view{border-radius:0}.ck-rounded-corners .ck.ck-labeled-field-view,.ck.ck-labeled-field-view.ck-rounded-corners{border-radius:var(--ck-border-radius)}.ck.ck-labeled-field-view>.ck.ck-labeled-field-view__input-wrapper{width:100%}.ck.ck-labeled-field-view>.ck.ck-labeled-field-view__input-wrapper>.ck.ck-label{background:var(--ck-color-labeled-field-label-background);font-weight:400;line-height:normal;max-width:100%;overflow:hidden;padding:0 calc(var(--ck-font-size-tiny)*.5);pointer-events:none;text-overflow:ellipsis;top:0;transition:transform var(--ck-labeled-field-view-transition),padding var(--ck-labeled-field-view-transition),background var(--ck-labeled-field-view-transition)}[dir=ltr] .ck.ck-labeled-field-view>.ck.ck-labeled-field-view__input-wrapper>.ck.ck-label{left:0;transform:translate(var(--ck-spacing-medium),-6px) scale(.75);transform-origin:0 0}[dir=rtl] .ck.ck-labeled-field-view>.ck.ck-labeled-field-view__input-wrapper>.ck.ck-label{right:0;transform:translate(calc(var(--ck-spacing-medium)*-1),-6px) scale(.75);transform-origin:100% 0}@media (prefers-reduced-motion:reduce){.ck.ck-labeled-field-view>.ck.ck-labeled-field-view__input-wrapper>.ck.ck-label{transition:none}}.ck.ck-labeled-field-view.ck-error .ck-input:not([readonly])+.ck.ck-label,.ck.ck-labeled-field-view.ck-error>.ck.ck-labeled-field-view__input-wrapper>.ck.ck-label{color:var(--ck-color-base-error)}.ck.ck-labeled-field-view .ck-labeled-field-view__status{font-size:var(--ck-font-size-small);margin-top:var(--ck-spacing-small);white-space:normal}.ck.ck-labeled-field-view .ck-labeled-field-view__status.ck-labeled-field-view__status_error{color:var(--ck-color-base-error)}.ck.ck-labeled-field-view.ck-disabled>.ck.ck-labeled-field-view__input-wrapper>.ck.ck-label,.ck.ck-labeled-field-view.ck-labeled-field-view_empty:not(.ck-labeled-field-view_focused)>.ck.ck-labeled-field-view__input-wrapper>.ck.ck-label{color:var(--ck-color-input-disabled-text)}.ck.ck-labeled-field-view.ck-disabled.ck-labeled-field-view_empty:not(.ck-labeled-field-view_placeholder)>.ck.ck-labeled-field-view__input-wrapper>.ck.ck-label,.ck.ck-labeled-field-view.ck-labeled-field-view_empty:not(.ck-labeled-field-view_focused):not(.ck-labeled-field-view_placeholder):not(.ck-error)>.ck.ck-labeled-field-view__input-wrapper>.ck.ck-label{background:transparent;max-width:calc(var(--ck-labeled-field-empty-unfocused-max-width));padding:0}[dir=ltr] .ck.ck-labeled-field-view.ck-disabled.ck-labeled-field-view_empty:not(.ck-labeled-field-view_placeholder)>.ck.ck-labeled-field-view__input-wrapper>.ck.ck-label,[dir=ltr] .ck.ck-labeled-field-view.ck-labeled-field-view_empty:not(.ck-labeled-field-view_focused):not(.ck-labeled-field-view_placeholder):not(.ck-error)>.ck.ck-labeled-field-view__input-wrapper>.ck.ck-label{transform:translate(var(--ck-labeled-field-label-default-position-x),var(--ck-labeled-field-label-default-position-y)) scale(1)}[dir=rtl] .ck.ck-labeled-field-view.ck-disabled.ck-labeled-field-view_empty:not(.ck-labeled-field-view_placeholder)>.ck.ck-labeled-field-view__input-wrapper>.ck.ck-label,[dir=rtl] .ck.ck-labeled-field-view.ck-labeled-field-view_empty:not(.ck-labeled-field-view_focused):not(.ck-labeled-field-view_placeholder):not(.ck-error)>.ck.ck-labeled-field-view__input-wrapper>.ck.ck-label{transform:translate(calc(var(--ck-labeled-field-label-default-position-x)*-1),var(--ck-labeled-field-label-default-position-y)) scale(1)}.ck.ck-labeled-field-view>.ck.ck-labeled-field-view__input-wrapper>.ck-dropdown>.ck.ck-button{background:transparent}.ck.ck-labeled-field-view.ck-labeled-field-view_empty>.ck.ck-labeled-field-view__input-wrapper>.ck-dropdown>.ck-button>.ck-button__label{opacity:0}.ck.ck-labeled-field-view.ck-labeled-field-view_empty:not(.ck-labeled-field-view_focused):not(.ck-labeled-field-view_placeholder)>.ck.ck-labeled-field-view__input-wrapper>.ck-dropdown+.ck-label{max-width:calc(var(--ck-labeled-field-empty-unfocused-max-width) - var(--ck-dropdown-arrow-size) - var(--ck-spacing-standard))}`, \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/components/labeledfield/labeledfieldview.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-ui/components/labeledfield/labeledfieldview.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/mixins/_rounded.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/mixins/_dir.css\"],\"names\":[],\"mappings\":\"AAMC,mEACC,YAAa,CACb,iBACD,CAEA,uCACC,aAAc,CACd,iBACD,CCND,MACC,kEAAsE,CACtE,gFAAiF,CACjF,oEAAqE,CACrE,8EAAiF,CACjF,yEACD,CAEA,0BCLC,eDmHD,CCjHC,2FAEC,qCAED,CDEA,mEACC,UAwCD,CAtCC,gFAkBC,yDAA0D,CAG1D,eAAmB,CADnB,kBAAoB,CAOpB,cAAe,CAFf,eAAgB,CANhB,2CAA8C,CAH9C,mBAAoB,CAQpB,sBAAuB,CAvBvB,KAAQ,CA4BR,+JAQD,CErDD,0FFoBG,MAAS,CAGT,6DAA+D,CAF/D,oBEnBH,CAFA,0FF2BG,OAAU,CAEV,sEAA0E,CAD1E,uBE1BH,CFgDE,uCAlCD,gFAmCE,eAEF,CADC,CASD,mKACC,gCACD,CAGD,yDACC,mCAAoC,CACpC,kCAAmC,CAInC,kBAKD,CAHC,6FACC,gCACD,CAID,4OAEC,yCACD,CAIA,uWAaC,sBAAuB,CAFvB,iEAAkE,CAGlE,SACD,CEtGA,2XF0FE,+HExFF,CAFA,2XF8FE,wIE5FF,CFyGA,8FACC,sBACD,CAGA,yIACC,SACD,CAGA,kMACC,8HACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n.ck.ck-labeled-field-view {\\n\\t& > .ck.ck-labeled-field-view__input-wrapper {\\n\\t\\tdisplay: flex;\\n\\t\\tposition: relative;\\n\\t}\\n\\n\\t& .ck.ck-label {\\n\\t\\tdisplay: block;\\n\\t\\tposition: absolute;\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n@import \\\"@ckeditor/ckeditor5-ui/theme/mixins/_dir.css\\\";\\n@import \\\"../../../mixins/_rounded.css\\\";\\n\\n:root {\\n\\t--ck-labeled-field-view-transition: .1s cubic-bezier(0, 0, 0.24, 0.95);\\n\\t--ck-labeled-field-empty-unfocused-max-width: 100% - 2 * var(--ck-spacing-medium);\\n\\t--ck-labeled-field-label-default-position-x: var(--ck-spacing-medium);\\n\\t--ck-labeled-field-label-default-position-y: calc(0.6 * var(--ck-font-size-base));\\n\\t--ck-color-labeled-field-label-background: var(--ck-color-base-background);\\n}\\n\\n.ck.ck-labeled-field-view {\\n\\t@mixin ck-rounded-corners;\\n\\n\\t& > .ck.ck-labeled-field-view__input-wrapper {\\n\\t\\twidth: 100%;\\n\\n\\t\\t& > .ck.ck-label {\\n\\t\\t\\ttop: 0px;\\n\\n\\t\\t\\t@mixin ck-dir ltr {\\n\\t\\t\\t\\tleft: 0px;\\n\\t\\t\\t\\ttransform-origin: 0 0;\\n\\t\\t\\t\\t/* By default, display the label scaled down above the field. */\\n\\t\\t\\t\\ttransform: translate(var(--ck-spacing-medium), -6px) scale(.75);\\n\\t\\t\\t}\\n\\n\\t\\t\\t@mixin ck-dir rtl {\\n\\t\\t\\t\\tright: 0px;\\n\\t\\t\\t\\ttransform-origin: 100% 0;\\n\\t\\t\\t\\ttransform: translate(calc(-1 * var(--ck-spacing-medium)), -6px) scale(.75);\\n\\t\\t\\t}\\n\\n\\t\\t\\tpointer-events: none;\\n\\n\\t\\t\\tbackground: var(--ck-color-labeled-field-label-background);\\n\\t\\t\\tpadding: 0 calc(.5 * var(--ck-font-size-tiny));\\n\\t\\t\\tline-height: initial;\\n\\t\\t\\tfont-weight: normal;\\n\\n\\t\\t\\t/* Prevent overflow when the label is longer than the input */\\n\\t\\t\\ttext-overflow: ellipsis;\\n\\t\\t\\toverflow: hidden;\\n\\n\\t\\t\\tmax-width: 100%;\\n\\n\\t\\t\\ttransition:\\n\\t\\t\\t\\ttransform var(--ck-labeled-field-view-transition),\\n\\t\\t\\t\\tpadding var(--ck-labeled-field-view-transition),\\n\\t\\t\\t\\tbackground var(--ck-labeled-field-view-transition);\\n\\n\\t\\t\\t@media (prefers-reduced-motion: reduce) {\\n\\t\\t\\t\\ttransition: none;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n\\t&.ck-error {\\n\\t\\t& > .ck.ck-labeled-field-view__input-wrapper > .ck.ck-label {\\n\\t\\t\\tcolor: var(--ck-color-base-error);\\n\\t\\t}\\n\\n\\t\\t& .ck-input:not([readonly]) + .ck.ck-label {\\n\\t\\t\\tcolor: var(--ck-color-base-error);\\n\\t\\t}\\n\\t}\\n\\n\\t& .ck-labeled-field-view__status {\\n\\t\\tfont-size: var(--ck-font-size-small);\\n\\t\\tmargin-top: var(--ck-spacing-small);\\n\\n\\t\\t/* Let the info wrap to the next line to avoid stretching the layout horizontally.\\n\\t\\tThe status could be very long. */\\n\\t\\twhite-space: normal;\\n\\n\\t\\t&.ck-labeled-field-view__status_error {\\n\\t\\t\\tcolor: var(--ck-color-base-error);\\n\\t\\t}\\n\\t}\\n\\n\\t/* Disabled fields and fields that have no focus should fade out. */\\n\\t&.ck-disabled > .ck.ck-labeled-field-view__input-wrapper > .ck.ck-label,\\n\\t&.ck-labeled-field-view_empty:not(.ck-labeled-field-view_focused) > .ck.ck-labeled-field-view__input-wrapper > .ck.ck-label {\\n\\t\\tcolor: var(--ck-color-input-disabled-text);\\n\\t}\\n\\n\\t/* Fields that are disabled or not focused and without a placeholder should have full-sized labels. */\\n\\t/* stylelint-disable-next-line no-descending-specificity */\\n\\t&.ck-disabled.ck-labeled-field-view_empty:not(.ck-labeled-field-view_placeholder) > .ck.ck-labeled-field-view__input-wrapper > .ck.ck-label,\\n\\t&.ck-labeled-field-view_empty:not(.ck-labeled-field-view_focused):not(.ck-labeled-field-view_placeholder):not(.ck-error) > .ck.ck-labeled-field-view__input-wrapper > .ck.ck-label {\\n\\t\\t@mixin ck-dir ltr {\\n\\t\\t\\ttransform: translate(var(--ck-labeled-field-label-default-position-x), var(--ck-labeled-field-label-default-position-y)) scale(1);\\n\\t\\t}\\n\\n\\t\\t@mixin ck-dir rtl {\\n\\t\\t\\ttransform: translate(calc(-1 * var(--ck-labeled-field-label-default-position-x)), var(--ck-labeled-field-label-default-position-y)) scale(1);\\n\\t\\t}\\n\\n\\t\\t/* Compensate for the default translate position. */\\n\\t\\tmax-width: calc(var(--ck-labeled-field-empty-unfocused-max-width));\\n\\n\\t\\tbackground: transparent;\\n\\t\\tpadding: 0;\\n\\t}\\n\\n\\t/*------ DropdownView integration ----------------------------------------------------------------------------------- */\\n\\n\\t/* Make sure dropdown' background color in any of dropdown's state does not collide with labeled field. */\\n\\t& > .ck.ck-labeled-field-view__input-wrapper > .ck-dropdown > .ck.ck-button {\\n\\t\\tbackground: transparent;\\n\\t}\\n\\n\\t/* When the dropdown is \\\"empty\\\", the labeled field label replaces its label. */\\n\\t&.ck-labeled-field-view_empty > .ck.ck-labeled-field-view__input-wrapper > .ck-dropdown > .ck-button > .ck-button__label {\\n\\t\\topacity: 0;\\n\\t}\\n\\n\\t/* Make sure the label of the empty, unfocused input does not cover the dropdown arrow. */\\n\\t&.ck-labeled-field-view_empty:not(.ck-labeled-field-view_focused):not(.ck-labeled-field-view_placeholder) > .ck.ck-labeled-field-view__input-wrapper > .ck-dropdown + .ck-label {\\n\\t\\tmax-width: calc(var(--ck-labeled-field-empty-unfocused-max-width) - var(--ck-dropdown-arrow-size) - var(--ck-spacing-standard));\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n/**\\n * Implements rounded corner interface for .ck-rounded-corners class.\\n *\\n * @see $ck-border-radius\\n */\\n@define-mixin ck-rounded-corners {\\n\\tborder-radius: 0;\\n\\n\\t.ck-rounded-corners &,\\n\\t&.ck-rounded-corners {\\n\\t\\tborder-radius: var(--ck-border-radius);\\n\\t\\t@mixin-content;\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n@define-mixin ck-dir $direction {\\n\\t[dir=\\\"$(direction)\\\"] & {\\n\\t\\t@mixin-content;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.ck.ck-editor__editable span[data-ck-unsafe-element]{display:none}`, \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@ckeditor/ckeditor5-engine/theme/renderer.css\"],\"names\":[],\"mappings\":\"AAMA,qDACC,YACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n/* Elements marked by the Renderer as hidden should be invisible in the editor. */\\n.ck.ck-editor__editable span[data-ck-unsafe-element] {\\n\\tdisplay: none;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.ck.ck-dropdown-menu-list__nested-menu{display:block}`, \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/components/dropdown/menu/dropdownmenu.css\"],\"names\":[],\"mappings\":\"AAKA,uCACC,aACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n.ck.ck-dropdown-menu-list__nested-menu {\\n\\tdisplay: block;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.ck.ck-table-cell-properties-form .ck-form__row.ck-table-cell-properties-form__alignment-row{flex-wrap:wrap}.ck.ck-table-cell-properties-form .ck-form__row.ck-table-cell-properties-form__alignment-row .ck.ck-toolbar:first-of-type{flex-grow:0.57}.ck.ck-table-cell-properties-form .ck-form__row.ck-table-cell-properties-form__alignment-row .ck.ck-toolbar:last-of-type{flex-grow:0.43}.ck.ck-table-cell-properties-form .ck-form__row.ck-table-cell-properties-form__alignment-row .ck.ck-toolbar .ck-button{flex-grow:1}.ck.ck-table-cell-properties-form{width:320px}.ck.ck-table-cell-properties-form .ck-form__row.ck-table-cell-properties-form__padding-row{align-self:flex-end;padding:0;width:25%}.ck.ck-table-cell-properties-form .ck-form__row.ck-table-cell-properties-form__alignment-row .ck.ck-toolbar{background:none;margin-top:var(--ck-spacing-standard)}`, \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@ckeditor/ckeditor5-table/theme/tablecellproperties.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-table/tablecellproperties.css\"],\"names\":[],\"mappings\":\"AAOE,6FACC,cAiBD,CAdE,0HAEC,cACD,CAEA,yHAEC,cACD,CAEA,uHACC,WACD,CClBJ,kCACC,WAkBD,CAfE,2FACC,mBAAoB,CACpB,SAAU,CACV,SACD,CAGC,4GACC,eAAgB,CAGhB,qCACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n.ck.ck-table-cell-properties-form {\\n\\t& .ck-form__row {\\n\\t\\t&.ck-table-cell-properties-form__alignment-row {\\n\\t\\t\\tflex-wrap: wrap;\\n\\n\\t\\t\\t& .ck.ck-toolbar {\\n\\t\\t\\t\\t&:first-of-type {\\n\\t\\t\\t\\t\\t/* 4 buttons out of 7 (h-alignment + v-alignment) = 0.57 */\\n\\t\\t\\t\\t\\tflex-grow: 0.57;\\n\\t\\t\\t\\t}\\n\\n\\t\\t\\t\\t&:last-of-type {\\n\\t\\t\\t\\t\\t/* 3 buttons out of 7 (h-alignment + v-alignment) = 0.43 */\\n\\t\\t\\t\\t\\tflex-grow: 0.43;\\n\\t\\t\\t\\t}\\n\\n\\t\\t\\t\\t& .ck-button {\\n\\t\\t\\t\\t\\tflex-grow: 1;\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n.ck.ck-table-cell-properties-form {\\n\\twidth: 320px;\\n\\n\\t& .ck-form__row {\\n\\t\\t&.ck-table-cell-properties-form__padding-row {\\n\\t\\t\\talign-self: flex-end;\\n\\t\\t\\tpadding: 0;\\n\\t\\t\\twidth: 25%;\\n\\t\\t}\\n\\n\\t\\t&.ck-table-cell-properties-form__alignment-row {\\n\\t\\t\\t& .ck.ck-toolbar {\\n\\t\\t\\t\\tbackground: none;\\n\\n\\t\\t\\t\\t/* Compensate for missing input label that would push the margin (toolbar has no inputs). */\\n\\t\\t\\t\\tmargin-top: var(--ck-spacing-standard);\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.ck .ck-widget .ck-widget__type-around__button{display:block;overflow:hidden;position:absolute;z-index:var(--ck-z-default)}.ck .ck-widget .ck-widget__type-around__button svg{left:50%;position:absolute;top:50%;z-index:calc(var(--ck-z-default) + 2)}.ck .ck-widget .ck-widget__type-around__button.ck-widget__type-around__button_before{left:min(10%,30px);top:calc(var(--ck-widget-outline-thickness)*-.5);transform:translateY(-50%)}.ck .ck-widget .ck-widget__type-around__button.ck-widget__type-around__button_after{bottom:calc(var(--ck-widget-outline-thickness)*-.5);right:min(10%,30px);transform:translateY(50%)}.ck .ck-widget.ck-widget_selected>.ck-widget__type-around>.ck-widget__type-around__button:after,.ck .ck-widget>.ck-widget__type-around>.ck-widget__type-around__button:hover:after{content:\"\";display:block;left:1px;position:absolute;top:1px;z-index:calc(var(--ck-z-default) + 1)}.ck .ck-widget>.ck-widget__type-around>.ck-widget__type-around__fake-caret{display:none;left:0;position:absolute;right:0}.ck .ck-widget:hover>.ck-widget__type-around>.ck-widget__type-around__fake-caret{left:calc(var(--ck-widget-outline-thickness)*-1);right:calc(var(--ck-widget-outline-thickness)*-1)}.ck .ck-widget.ck-widget_type-around_show-fake-caret_before>.ck-widget__type-around>.ck-widget__type-around__fake-caret{display:block;top:calc(var(--ck-widget-outline-thickness)*-1 - 1px)}.ck .ck-widget.ck-widget_type-around_show-fake-caret_after>.ck-widget__type-around>.ck-widget__type-around__fake-caret{bottom:calc(var(--ck-widget-outline-thickness)*-1 - 1px);display:block}.ck.ck-editor__editable.ck-read-only .ck-widget__type-around,.ck.ck-editor__editable.ck-restricted-editing_mode_restricted .ck-widget__type-around,.ck.ck-editor__editable.ck-widget__type-around_disabled .ck-widget__type-around{display:none}:root{--ck-widget-type-around-button-size:20px;--ck-color-widget-type-around-button-active:var(--ck-color-focus-border);--ck-color-widget-type-around-button-hover:var(--ck-color-widget-hover-border);--ck-color-widget-type-around-button-blurred-editable:var(--ck-color-widget-blurred-border);--ck-color-widget-type-around-button-radar-start-alpha:0;--ck-color-widget-type-around-button-radar-end-alpha:.3;--ck-color-widget-type-around-button-icon:var(--ck-color-base-background)}.ck .ck-widget .ck-widget__type-around__button{background:var(--ck-color-widget-type-around-button);border-radius:100px;height:var(--ck-widget-type-around-button-size);opacity:0;pointer-events:none;transition:opacity var(--ck-widget-handler-animation-duration) var(--ck-widget-handler-animation-curve),background var(--ck-widget-handler-animation-duration) var(--ck-widget-handler-animation-curve);width:var(--ck-widget-type-around-button-size)}@media (prefers-reduced-motion:reduce){.ck .ck-widget .ck-widget__type-around__button{transition:none}}.ck .ck-widget .ck-widget__type-around__button svg{height:8px;margin-top:1px;transform:translate(-50%,-50%);transition:transform .5s ease;width:10px}@media (prefers-reduced-motion:reduce){.ck .ck-widget .ck-widget__type-around__button svg{transition:none}}.ck .ck-widget .ck-widget__type-around__button svg *{stroke-dasharray:10;stroke-dashoffset:0;fill:none;stroke:var(--ck-color-widget-type-around-button-icon);stroke-width:1.5px;stroke-linecap:round;stroke-linejoin:round}.ck .ck-widget .ck-widget__type-around__button svg line{stroke-dasharray:7}.ck .ck-widget .ck-widget__type-around__button:hover{animation:ck-widget-type-around-button-sonar 1s ease infinite}.ck .ck-widget .ck-widget__type-around__button:hover svg polyline{animation:ck-widget-type-around-arrow-dash 2s linear}.ck .ck-widget .ck-widget__type-around__button:hover svg line{animation:ck-widget-type-around-arrow-tip-dash 2s linear}@media (prefers-reduced-motion:reduce){.ck .ck-widget .ck-widget__type-around__button:hover,.ck .ck-widget .ck-widget__type-around__button:hover svg line,.ck .ck-widget .ck-widget__type-around__button:hover svg polyline{animation:none}}.ck .ck-widget.ck-widget_selected>.ck-widget__type-around>.ck-widget__type-around__button,.ck .ck-widget:hover>.ck-widget__type-around>.ck-widget__type-around__button{opacity:1;pointer-events:auto}.ck .ck-widget:not(.ck-widget_selected)>.ck-widget__type-around>.ck-widget__type-around__button{background:var(--ck-color-widget-type-around-button-hover)}.ck .ck-widget.ck-widget_selected>.ck-widget__type-around>.ck-widget__type-around__button,.ck .ck-widget>.ck-widget__type-around>.ck-widget__type-around__button:hover{background:var(--ck-color-widget-type-around-button-active)}.ck .ck-widget.ck-widget_selected>.ck-widget__type-around>.ck-widget__type-around__button:after,.ck .ck-widget>.ck-widget__type-around>.ck-widget__type-around__button:hover:after{background:linear-gradient(135deg,hsla(0,0%,100%,0),hsla(0,0%,100%,.3));border-radius:100px;height:calc(var(--ck-widget-type-around-button-size) - 2px);width:calc(var(--ck-widget-type-around-button-size) - 2px)}.ck .ck-widget.ck-widget_with-selection-handle>.ck-widget__type-around>.ck-widget__type-around__button_before{margin-left:20px}.ck .ck-widget .ck-widget__type-around__fake-caret{animation:ck-widget-type-around-fake-caret-pulse 1s linear infinite normal forwards;background:var(--ck-color-base-text);height:1px;outline:1px solid hsla(0,0%,100%,.5);pointer-events:none}.ck .ck-widget.ck-widget_selected.ck-widget_type-around_show-fake-caret_after,.ck .ck-widget.ck-widget_selected.ck-widget_type-around_show-fake-caret_before{outline-color:transparent}.ck .ck-widget.ck-widget_type-around_show-fake-caret_after.ck-widget_selected:hover,.ck .ck-widget.ck-widget_type-around_show-fake-caret_before.ck-widget_selected:hover{outline-color:var(--ck-color-widget-hover-border)}.ck .ck-widget.ck-widget_type-around_show-fake-caret_after>.ck-widget__type-around>.ck-widget__type-around__button,.ck .ck-widget.ck-widget_type-around_show-fake-caret_before>.ck-widget__type-around>.ck-widget__type-around__button{opacity:0;pointer-events:none}.ck .ck-widget.ck-widget_type-around_show-fake-caret_after.ck-widget_selected.ck-widget_with-resizer>.ck-widget__resizer,.ck .ck-widget.ck-widget_type-around_show-fake-caret_after.ck-widget_with-selection-handle.ck-widget_selected:hover>.ck-widget__selection-handle,.ck .ck-widget.ck-widget_type-around_show-fake-caret_after.ck-widget_with-selection-handle.ck-widget_selected>.ck-widget__selection-handle,.ck .ck-widget.ck-widget_type-around_show-fake-caret_before.ck-widget_selected.ck-widget_with-resizer>.ck-widget__resizer,.ck .ck-widget.ck-widget_type-around_show-fake-caret_before.ck-widget_with-selection-handle.ck-widget_selected:hover>.ck-widget__selection-handle,.ck .ck-widget.ck-widget_type-around_show-fake-caret_before.ck-widget_with-selection-handle.ck-widget_selected>.ck-widget__selection-handle{opacity:0}.ck[dir=rtl] .ck-widget.ck-widget_with-selection-handle .ck-widget__type-around>.ck-widget__type-around__button_before{margin-left:0;margin-right:20px}.ck-editor__nested-editable.ck-editor__editable_selected .ck-widget.ck-widget_selected>.ck-widget__type-around>.ck-widget__type-around__button,.ck-editor__nested-editable.ck-editor__editable_selected .ck-widget:hover>.ck-widget__type-around>.ck-widget__type-around__button{opacity:0;pointer-events:none}.ck-editor__editable.ck-blurred .ck-widget.ck-widget_selected>.ck-widget__type-around>.ck-widget__type-around__button:not(:hover){background:var(--ck-color-widget-type-around-button-blurred-editable)}.ck-editor__editable.ck-blurred .ck-widget.ck-widget_selected>.ck-widget__type-around>.ck-widget__type-around__button:not(:hover) svg *{stroke:#999}@keyframes ck-widget-type-around-arrow-dash{0%{stroke-dashoffset:10}20%,to{stroke-dashoffset:0}}@keyframes ck-widget-type-around-arrow-tip-dash{0%,20%{stroke-dashoffset:7}40%,to{stroke-dashoffset:0}}@keyframes ck-widget-type-around-button-sonar{0%{box-shadow:0 0 0 0 hsla(var(--ck-color-focus-border-coordinates),var(--ck-color-widget-type-around-button-radar-start-alpha))}50%{box-shadow:0 0 0 5px hsla(var(--ck-color-focus-border-coordinates),var(--ck-color-widget-type-around-button-radar-end-alpha))}to{box-shadow:0 0 0 5px hsla(var(--ck-color-focus-border-coordinates),var(--ck-color-widget-type-around-button-radar-start-alpha))}}@keyframes ck-widget-type-around-fake-caret-pulse{0%{opacity:1}49%{opacity:1}50%{opacity:0}99%{opacity:0}to{opacity:1}}`, \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@ckeditor/ckeditor5-widget/theme/widgettypearound.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-widget/widgettypearound.css\"],\"names\":[],\"mappings\":\"AASC,+CACC,aAAc,CAEd,eAAgB,CADhB,iBAAkB,CAElB,2BAwBD,CAtBC,mDAGC,QAAS,CAFT,iBAAkB,CAClB,OAAQ,CAER,qCACD,CAEA,qFAGC,kBAAoB,CADpB,gDAAoD,CAGpD,0BACD,CAEA,oFAEC,mDAAuD,CACvD,mBAAqB,CAErB,yBACD,CAUA,mLACC,UAAW,CACX,aAAc,CAGd,QAAS,CAFT,iBAAkB,CAClB,OAAQ,CAER,qCACD,CAMD,2EACC,YAAa,CAEb,MAAO,CADP,iBAAkB,CAElB,OACD,CAOA,iFACC,gDAAqD,CACrD,iDACD,CAKA,wHAEC,aAAc,CADd,qDAED,CAKA,uHACC,wDAA6D,CAC7D,aACD,CAoBD,mOACC,YACD,CC3GA,MACC,wCAAyC,CACzC,wEAAyE,CACzE,8EAA+E,CAC/E,2FAA4F,CAC5F,wDAAyD,CACzD,uDAAwD,CACxD,yEACD,CAgBC,+CAGC,oDAAqD,CACrD,mBAAoB,CAFpB,+CAAgD,CAVjD,SAAU,CACV,mBAAoB,CAYnB,uMAAyM,CAJzM,8CAwED,CAhEC,uCATD,+CAUE,eA+DF,CA9DC,CAEA,mDAEC,UAAW,CAGX,cAAe,CAFf,8BAA+B,CAC/B,6BAA8B,CAH9B,UAwBD,CAlBC,uCAPD,mDAQE,eAiBF,CAhBC,CAEA,qDACC,mBAAoB,CACpB,mBAAoB,CAEpB,SAAU,CACV,qDAAsD,CACtD,kBAAmB,CACnB,oBAAqB,CACrB,qBACD,CAEA,wDACC,kBACD,CAGD,qDAIC,6DA4BD,CAtBE,kEACC,oDACD,CAEA,8DACC,wDACD,CAGD,uCAQE,qLACC,cACD,CAEF,CASD,uKA7FD,SAAU,CACV,mBA8FC,CAOD,gGACC,0DACD,CAOA,uKAEC,2DAQD,CANC,mLAIC,uEAAkF,CADlF,mBAAoB,CADpB,2DAA4D,CAD5D,0DAID,CAOD,8GACC,gBACD,CAKA,mDAGC,mFAAoF,CAOpF,oCAAqC,CARrC,UAAW,CAOX,oCAAwC,CARxC,mBAUD,CAOC,6JAEC,yBACD,CAUA,yKACC,iDACD,CAMA,uOAxKD,SAAU,CACV,mBAyKC,CAoBA,6yBACC,SACD,CASF,uHACC,aAAc,CACd,iBACD,CAYG,iRAxNF,SAAU,CACV,mBAyNE,CAQH,kIACC,qEAKD,CAHC,wIACC,WACD,CAGD,4CACC,GACC,oBACD,CACA,OACC,mBACD,CACD,CAEA,gDACC,OACC,mBACD,CACA,OACC,mBACD,CACD,CAEA,8CACC,GACC,6HACD,CACA,IACC,6HACD,CACA,GACC,+HACD,CACD,CAEA,kDACC,GACC,SACD,CACA,IACC,SACD,CACA,IACC,SACD,CACA,IACC,SACD,CACA,GACC,SACD,CACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n.ck .ck-widget {\\n\\t/*\\n\\t * Styles of the type around buttons\\n\\t */\\n\\t& .ck-widget__type-around__button {\\n\\t\\tdisplay: block;\\n\\t\\tposition: absolute;\\n\\t\\toverflow: hidden;\\n\\t\\tz-index: var(--ck-z-default);\\n\\n\\t\\t& svg {\\n\\t\\t\\tposition: absolute;\\n\\t\\t\\ttop: 50%;\\n\\t\\t\\tleft: 50%;\\n\\t\\t\\tz-index: calc(var(--ck-z-default) + 2);\\n\\t\\t}\\n\\n\\t\\t&.ck-widget__type-around__button_before {\\n\\t\\t\\t/* Place it in the middle of the outline */\\n\\t\\t\\ttop: calc(-0.5 * var(--ck-widget-outline-thickness));\\n\\t\\t\\tleft: min(10%, 30px);\\n\\n\\t\\t\\ttransform: translateY(-50%);\\n\\t\\t}\\n\\n\\t\\t&.ck-widget__type-around__button_after {\\n\\t\\t\\t/* Place it in the middle of the outline */\\n\\t\\t\\tbottom: calc(-0.5 * var(--ck-widget-outline-thickness));\\n\\t\\t\\tright: min(10%, 30px);\\n\\n\\t\\t\\ttransform: translateY(50%);\\n\\t\\t}\\n\\t}\\n\\n\\t/*\\n\\t * Styles for the buttons when:\\n\\t * - the widget is selected,\\n\\t * - or the button is being hovered (regardless of the widget state).\\n\\t */\\n\\t&.ck-widget_selected > .ck-widget__type-around > .ck-widget__type-around__button,\\n\\t& > .ck-widget__type-around > .ck-widget__type-around__button:hover {\\n\\t\\t&::after {\\n\\t\\t\\tcontent: \\\"\\\";\\n\\t\\t\\tdisplay: block;\\n\\t\\t\\tposition: absolute;\\n\\t\\t\\ttop: 1px;\\n\\t\\t\\tleft: 1px;\\n\\t\\t\\tz-index: calc(var(--ck-z-default) + 1);\\n\\t\\t}\\n\\t}\\n\\n\\t/*\\n\\t * Styles for the horizontal \\\"fake caret\\\" which is displayed when the user navigates using the keyboard.\\n\\t */\\n\\t& > .ck-widget__type-around > .ck-widget__type-around__fake-caret {\\n\\t\\tdisplay: none;\\n\\t\\tposition: absolute;\\n\\t\\tleft: 0;\\n\\t\\tright: 0;\\n\\t}\\n\\n\\t/*\\n\\t * When the widget is hovered the \\\"fake caret\\\" would normally be narrower than the\\n\\t * extra outline displayed around the widget. Let's extend the \\\"fake caret\\\" to match\\n\\t * the full width of the widget.\\n\\t */\\n\\t&:hover > .ck-widget__type-around > .ck-widget__type-around__fake-caret {\\n\\t\\tleft: calc( -1 * var(--ck-widget-outline-thickness) );\\n\\t\\tright: calc( -1 * var(--ck-widget-outline-thickness) );\\n\\t}\\n\\n\\t/*\\n\\t * Styles for the horizontal \\\"fake caret\\\" when it should be displayed before the widget (backward keyboard navigation).\\n\\t */\\n\\t&.ck-widget_type-around_show-fake-caret_before > .ck-widget__type-around > .ck-widget__type-around__fake-caret {\\n\\t\\ttop: calc( -1 * var(--ck-widget-outline-thickness) - 1px );\\n\\t\\tdisplay: block;\\n\\t}\\n\\n\\t/*\\n\\t * Styles for the horizontal \\\"fake caret\\\" when it should be displayed after the widget (forward keyboard navigation).\\n\\t */\\n\\t&.ck-widget_type-around_show-fake-caret_after > .ck-widget__type-around > .ck-widget__type-around__fake-caret {\\n\\t\\tbottom: calc( -1 * var(--ck-widget-outline-thickness) - 1px );\\n\\t\\tdisplay: block;\\n\\t}\\n}\\n\\n/*\\n * Integration with the read-only mode of the editor.\\n */\\n.ck.ck-editor__editable.ck-read-only .ck-widget__type-around {\\n\\tdisplay: none;\\n}\\n\\n/*\\n * Integration with the restricted editing mode (feature) of the editor.\\n */\\n.ck.ck-editor__editable.ck-restricted-editing_mode_restricted .ck-widget__type-around {\\n\\tdisplay: none;\\n}\\n\\n/*\\n * Integration with the #isEnabled property of the WidgetTypeAround plugin.\\n */\\n.ck.ck-editor__editable.ck-widget__type-around_disabled .ck-widget__type-around {\\n\\tdisplay: none;\\n}\\n\",\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n:root {\\n\\t--ck-widget-type-around-button-size: 20px;\\n\\t--ck-color-widget-type-around-button-active: var(--ck-color-focus-border);\\n\\t--ck-color-widget-type-around-button-hover: var(--ck-color-widget-hover-border);\\n\\t--ck-color-widget-type-around-button-blurred-editable: var(--ck-color-widget-blurred-border);\\n\\t--ck-color-widget-type-around-button-radar-start-alpha: 0;\\n\\t--ck-color-widget-type-around-button-radar-end-alpha: .3;\\n\\t--ck-color-widget-type-around-button-icon: var(--ck-color-base-background);\\n}\\n\\n@define-mixin ck-widget-type-around-button-visible {\\n\\topacity: 1;\\n\\tpointer-events: auto;\\n}\\n\\n@define-mixin ck-widget-type-around-button-hidden {\\n\\topacity: 0;\\n\\tpointer-events: none;\\n}\\n\\n.ck .ck-widget {\\n\\t/*\\n\\t * Styles of the type around buttons\\n\\t */\\n\\t& .ck-widget__type-around__button {\\n\\t\\twidth: var(--ck-widget-type-around-button-size);\\n\\t\\theight: var(--ck-widget-type-around-button-size);\\n\\t\\tbackground: var(--ck-color-widget-type-around-button);\\n\\t\\tborder-radius: 100px;\\n\\t\\ttransition: opacity var(--ck-widget-handler-animation-duration) var(--ck-widget-handler-animation-curve), background var(--ck-widget-handler-animation-duration) var(--ck-widget-handler-animation-curve);\\n\\n\\t\\t@mixin ck-widget-type-around-button-hidden;\\n\\n\\t\\t@media (prefers-reduced-motion: reduce) {\\n\\t\\t\\ttransition: none;\\n\\t\\t}\\n\\n\\t\\t& svg {\\n\\t\\t\\twidth: 10px;\\n\\t\\t\\theight: 8px;\\n\\t\\t\\ttransform: translate(-50%,-50%);\\n\\t\\t\\ttransition: transform .5s ease;\\n\\t\\t\\tmargin-top: 1px;\\n\\n\\t\\t\\t@media (prefers-reduced-motion: reduce) {\\n\\t\\t\\t\\ttransition: none;\\n\\t\\t\\t}\\n\\n\\t\\t\\t& * {\\n\\t\\t\\t\\tstroke-dasharray: 10;\\n\\t\\t\\t\\tstroke-dashoffset: 0;\\n\\n\\t\\t\\t\\tfill: none;\\n\\t\\t\\t\\tstroke: var(--ck-color-widget-type-around-button-icon);\\n\\t\\t\\t\\tstroke-width: 1.5px;\\n\\t\\t\\t\\tstroke-linecap: round;\\n\\t\\t\\t\\tstroke-linejoin: round;\\n\\t\\t\\t}\\n\\n\\t\\t\\t& line {\\n\\t\\t\\t\\tstroke-dasharray: 7;\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t&:hover {\\n\\t\\t\\t/*\\n\\t\\t\\t * Display the \\\"sonar\\\" around the button when hovered.\\n\\t\\t\\t */\\n\\t\\t\\tanimation: ck-widget-type-around-button-sonar 1s ease infinite;\\n\\n\\t\\t\\t/*\\n\\t\\t\\t * Animate active button's icon.\\n\\t\\t\\t */\\n\\t\\t\\t& svg {\\n\\t\\t\\t\\t& polyline {\\n\\t\\t\\t\\t\\tanimation: ck-widget-type-around-arrow-dash 2s linear;\\n\\t\\t\\t\\t}\\n\\n\\t\\t\\t\\t& line {\\n\\t\\t\\t\\t\\tanimation: ck-widget-type-around-arrow-tip-dash 2s linear;\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\n\\t\\t\\t@media (prefers-reduced-motion: reduce) {\\n\\t\\t\\t\\tanimation: none;\\n\\n\\t\\t\\t\\t& svg {\\n\\t\\t\\t\\t\\t& polyline {\\n\\t\\t\\t\\t\\t\\tanimation: none;\\n\\t\\t\\t\\t\\t}\\n\\n\\t\\t\\t\\t\\t& line {\\n\\t\\t\\t\\t\\t\\tanimation: none;\\n\\t\\t\\t\\t\\t}\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n\\t/*\\n\\t * Show type around buttons when the widget gets selected or being hovered.\\n\\t */\\n\\t&.ck-widget_selected,\\n\\t&:hover {\\n\\t\\t& > .ck-widget__type-around > .ck-widget__type-around__button {\\n\\t\\t\\t@mixin ck-widget-type-around-button-visible;\\n\\t\\t}\\n\\t}\\n\\n\\t/*\\n\\t * Styles for the buttons when the widget is NOT selected (but the buttons are visible\\n\\t * and still can be hovered).\\n\\t */\\n\\t&:not(.ck-widget_selected) > .ck-widget__type-around > .ck-widget__type-around__button {\\n\\t\\tbackground: var(--ck-color-widget-type-around-button-hover);\\n\\t}\\n\\n\\t/*\\n\\t * Styles for the buttons when:\\n\\t * - the widget is selected,\\n\\t * - or the button is being hovered (regardless of the widget state).\\n\\t */\\n\\t&.ck-widget_selected > .ck-widget__type-around > .ck-widget__type-around__button,\\n\\t& > .ck-widget__type-around > .ck-widget__type-around__button:hover {\\n\\t\\tbackground: var(--ck-color-widget-type-around-button-active);\\n\\n\\t\\t&::after {\\n\\t\\t\\twidth: calc(var(--ck-widget-type-around-button-size) - 2px);\\n\\t\\t\\theight: calc(var(--ck-widget-type-around-button-size) - 2px);\\n\\t\\t\\tborder-radius: 100px;\\n\\t\\t\\tbackground: linear-gradient(135deg, hsla(0,0%,100%,0) 0%, hsla(0,0%,100%,.3) 100%);\\n\\t\\t}\\n\\t}\\n\\n\\t/*\\n\\t * Styles for the \\\"before\\\" button when the widget has a selection handle. Because some space\\n\\t * is consumed by the handle, the button must be moved slightly to the right to let it breathe.\\n\\t */\\n\\t&.ck-widget_with-selection-handle > .ck-widget__type-around > .ck-widget__type-around__button_before {\\n\\t\\tmargin-left: 20px;\\n\\t}\\n\\n\\t/*\\n\\t * Styles for the horizontal \\\"fake caret\\\" which is displayed when the user navigates using the keyboard.\\n\\t */\\n\\t& .ck-widget__type-around__fake-caret {\\n\\t\\tpointer-events: none;\\n\\t\\theight: 1px;\\n\\t\\tanimation: ck-widget-type-around-fake-caret-pulse linear 1s infinite normal forwards;\\n\\n\\t\\t/*\\n\\t\\t * The semi-transparent-outline+background combo improves the contrast\\n\\t\\t * when the background underneath the fake caret is dark.\\n\\t\\t */\\n\\t\\toutline: solid 1px hsla(0, 0%, 100%, .5);\\n\\t\\tbackground: var(--ck-color-base-text);\\n\\t}\\n\\n\\t/*\\n\\t * Styles of the widget when the \\\"fake caret\\\" is blinking (e.g. upon keyboard navigation).\\n\\t * Despite the widget being physically selected in the model, its outline should disappear.\\n\\t */\\n\\t&.ck-widget_selected {\\n\\t\\t&.ck-widget_type-around_show-fake-caret_before,\\n\\t\\t&.ck-widget_type-around_show-fake-caret_after {\\n\\t\\t\\toutline-color: transparent;\\n\\t\\t}\\n\\t}\\n\\n\\t&.ck-widget_type-around_show-fake-caret_before,\\n\\t&.ck-widget_type-around_show-fake-caret_after {\\n\\t\\t/*\\n\\t\\t * When the \\\"fake caret\\\" is visible we simulate that the widget is not selected\\n\\t\\t * (despite being physically selected), so the outline color should be for the\\n\\t\\t * unselected widget.\\n\\t\\t */\\n\\t\\t&.ck-widget_selected:hover {\\n\\t\\t\\toutline-color: var(--ck-color-widget-hover-border);\\n\\t\\t}\\n\\n\\t\\t/*\\n\\t\\t * Styles of the type around buttons when the \\\"fake caret\\\" is blinking (e.g. upon keyboard navigation).\\n\\t\\t * In this state, the type around buttons would collide with the fake carets so they should disappear.\\n\\t\\t */\\n\\t\\t& > .ck-widget__type-around > .ck-widget__type-around__button {\\n\\t\\t\\t@mixin ck-widget-type-around-button-hidden;\\n\\t\\t}\\n\\n\\t\\t/*\\n\\t\\t * Fake horizontal caret integration with the selection handle. When the caret is visible, simply\\n\\t\\t * hide the handle because it intersects with the caret (and does not make much sense anyway).\\n\\t\\t */\\n\\t\\t&.ck-widget_with-selection-handle {\\n\\t\\t\\t&.ck-widget_selected,\\n\\t\\t\\t&.ck-widget_selected:hover {\\n\\t\\t\\t\\t& > .ck-widget__selection-handle {\\n\\t\\t\\t\\t\\topacity: 0\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t/*\\n\\t\\t * Fake horizontal caret integration with the resize UI. When the caret is visible, simply\\n\\t\\t * hide the resize UI because it creates too much noise. It can be visible when the user\\n\\t\\t * hovers the widget, though.\\n\\t\\t */\\n\\t\\t&.ck-widget_selected.ck-widget_with-resizer > .ck-widget__resizer {\\n\\t\\t\\topacity: 0\\n\\t\\t}\\n\\t}\\n}\\n\\n/*\\n * Styles for the \\\"before\\\" button when the widget has a selection handle in an RTL environment.\\n * The selection handler is aligned to the right side of the widget so there is no need to create\\n * additional space for it next to the \\\"before\\\" button.\\n */\\n.ck[dir=\\\"rtl\\\"] .ck-widget.ck-widget_with-selection-handle .ck-widget__type-around > .ck-widget__type-around__button_before {\\n\\tmargin-left: 0;\\n\\tmargin-right: 20px;\\n}\\n\\n/*\\n * Hide type around buttons when the widget is selected as a child of a selected\\n * nested editable (e.g. mulit-cell table selection).\\n *\\n * See https://github.com/ckeditor/ckeditor5/issues/7263.\\n */\\n.ck-editor__nested-editable.ck-editor__editable_selected {\\n\\t& .ck-widget {\\n\\t\\t&.ck-widget_selected,\\n\\t\\t&:hover {\\n\\t\\t\\t& > .ck-widget__type-around > .ck-widget__type-around__button {\\n\\t\\t\\t\\t@mixin ck-widget-type-around-button-hidden;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n}\\n\\n/*\\n * Styles for the buttons when the widget is selected but the user clicked outside of the editor (blurred the editor).\\n */\\n.ck-editor__editable.ck-blurred .ck-widget.ck-widget_selected > .ck-widget__type-around > .ck-widget__type-around__button:not(:hover) {\\n\\tbackground: var(--ck-color-widget-type-around-button-blurred-editable);\\n\\n\\t& svg * {\\n\\t\\tstroke: hsl(0,0%,60%);\\n\\t}\\n}\\n\\n@keyframes ck-widget-type-around-arrow-dash {\\n\\t0% {\\n\\t\\tstroke-dashoffset: 10;\\n\\t}\\n\\t20%, 100% {\\n\\t\\tstroke-dashoffset: 0;\\n\\t}\\n}\\n\\n@keyframes ck-widget-type-around-arrow-tip-dash {\\n\\t0%, 20% {\\n\\t\\tstroke-dashoffset: 7;\\n\\t}\\n\\t40%, 100% {\\n\\t\\tstroke-dashoffset: 0;\\n\\t}\\n}\\n\\n@keyframes ck-widget-type-around-button-sonar {\\n\\t0% {\\n\\t\\tbox-shadow: 0 0 0 0 hsla(var(--ck-color-focus-border-coordinates), var(--ck-color-widget-type-around-button-radar-start-alpha));\\n\\t}\\n\\t50% {\\n\\t\\tbox-shadow: 0 0 0 5px hsla(var(--ck-color-focus-border-coordinates), var(--ck-color-widget-type-around-button-radar-end-alpha));\\n\\t}\\n\\t100% {\\n\\t\\tbox-shadow: 0 0 0 5px hsla(var(--ck-color-focus-border-coordinates), var(--ck-color-widget-type-around-button-radar-start-alpha));\\n\\t}\\n}\\n\\n@keyframes ck-widget-type-around-fake-caret-pulse {\\n\\t0% {\\n\\t\\topacity: 1;\\n\\t}\\n\\t49% {\\n\\t\\topacity: 1;\\n\\t}\\n\\t50% {\\n\\t\\topacity: 0;\\n\\t}\\n\\t99% {\\n\\t\\topacity: 0;\\n\\t}\\n\\t100% {\\n\\t\\topacity: 1;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.ck.ck-splitbutton{font-size:inherit}.ck.ck-splitbutton .ck-splitbutton__action:focus{z-index:calc(var(--ck-z-default) + 1)}:root{--ck-color-split-button-hover-background:#ebebeb;--ck-color-split-button-hover-border:#b3b3b3}[dir=ltr] .ck.ck-splitbutton.ck-splitbutton_open>.ck-splitbutton__action,[dir=ltr] .ck.ck-splitbutton:hover>.ck-splitbutton__action{border-bottom-right-radius:unset;border-top-right-radius:unset}[dir=rtl] .ck.ck-splitbutton.ck-splitbutton_open>.ck-splitbutton__action,[dir=rtl] .ck.ck-splitbutton:hover>.ck-splitbutton__action{border-bottom-left-radius:unset;border-top-left-radius:unset}.ck.ck-splitbutton>.ck-splitbutton__arrow{min-width:unset}[dir=ltr] .ck.ck-splitbutton>.ck-splitbutton__arrow{border-bottom-left-radius:unset;border-top-left-radius:unset}[dir=rtl] .ck.ck-splitbutton>.ck-splitbutton__arrow{border-bottom-right-radius:unset;border-top-right-radius:unset}.ck.ck-splitbutton>.ck-splitbutton__arrow svg{width:var(--ck-dropdown-arrow-size)}.ck.ck-splitbutton>.ck-splitbutton__arrow:not(:focus){border-bottom-width:0;border-top-width:0}.ck.ck-splitbutton.ck-splitbutton_open{border-radius:0}.ck-rounded-corners .ck.ck-splitbutton.ck-splitbutton_open,.ck.ck-splitbutton.ck-splitbutton_open.ck-rounded-corners{border-radius:var(--ck-border-radius)}.ck-rounded-corners .ck.ck-splitbutton.ck-splitbutton_open>.ck-splitbutton__action,.ck.ck-splitbutton.ck-splitbutton_open.ck-rounded-corners>.ck-splitbutton__action{border-bottom-left-radius:0}.ck-rounded-corners .ck.ck-splitbutton.ck-splitbutton_open>.ck-splitbutton__arrow,.ck.ck-splitbutton.ck-splitbutton_open.ck-rounded-corners>.ck-splitbutton__arrow{border-bottom-right-radius:0}.ck.ck-splitbutton.ck-splitbutton_open>.ck-button:not(.ck-on):not(.ck-disabled):not(:hover),.ck.ck-splitbutton:hover>.ck-button:not(.ck-on):not(.ck-disabled):not(:hover){background:var(--ck-color-split-button-hover-background)}.ck.ck-splitbutton.ck-splitbutton_open>.ck-splitbutton__arrow:not(.ck-disabled):after,.ck.ck-splitbutton:hover>.ck-splitbutton__arrow:not(.ck-disabled):after{background-color:var(--ck-color-split-button-hover-border);content:\"\";height:100%;position:absolute;width:1px}.ck.ck-splitbutton.ck-splitbutton_open>.ck-splitbutton__arrow:focus:after,.ck.ck-splitbutton:hover>.ck-splitbutton__arrow:focus:after{--ck-color-split-button-hover-border:var(--ck-color-focus-border)}[dir=ltr] .ck.ck-splitbutton.ck-splitbutton_open>.ck-splitbutton__arrow:not(.ck-disabled):after,[dir=ltr] .ck.ck-splitbutton:hover>.ck-splitbutton__arrow:not(.ck-disabled):after{left:-1px}[dir=rtl] .ck.ck-splitbutton.ck-splitbutton_open>.ck-splitbutton__arrow:not(.ck-disabled):after,[dir=rtl] .ck.ck-splitbutton:hover>.ck-splitbutton__arrow:not(.ck-disabled):after{right:-1px}`, \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/components/dropdown/splitbutton.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-ui/components/dropdown/splitbutton.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/mixins/_rounded.css\"],\"names\":[],\"mappings\":\"AAKA,mBAEC,iBAKD,CAHC,iDACC,qCACD,CCJD,MACC,gDAAyD,CACzD,4CACD,CAQE,oIAGC,gCAAiC,CADjC,6BAED,CAEA,oIAGC,+BAAgC,CADhC,4BAED,CAGD,0CAGC,eAiBD,CAfC,oDAGC,+BAAgC,CADhC,4BAED,CAEA,oDAGC,gCAAiC,CADjC,6BAED,CAEA,8CACC,mCACD,CAKD,sDAEC,qBAAwB,CADxB,kBAED,CAIA,uCCnDA,eD6DA,CC3DA,qHAEC,qCAED,CD+CE,qKACC,2BACD,CAEA,mKACC,4BACD,CAUD,0KACC,wDACD,CAIA,8JAKC,0DAA2D,CAJ3D,UAAW,CAGX,WAAY,CAFZ,iBAAkB,CAClB,SAGD,CAGA,sIACC,iEACD,CAGC,kLACC,SACD,CAIA,kLACC,UACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n.ck.ck-splitbutton {\\n\\t/* Enable font size inheritance, which allows fluid UI scaling. */\\n\\tfont-size: inherit;\\n\\n\\t& .ck-splitbutton__action:focus {\\n\\t\\tz-index: calc(var(--ck-z-default) + 1);\\n\\t}\\n}\\n\\n\",\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n@import \\\"../../../mixins/_rounded.css\\\";\\n\\n:root {\\n\\t--ck-color-split-button-hover-background: hsl(0, 0%, 92%);\\n\\t--ck-color-split-button-hover-border: hsl(0, 0%, 70%);\\n}\\n\\n.ck.ck-splitbutton {\\n\\t/*\\n\\t * Note: ck-rounded and ck-dir mixins don't go together (because they both use @nest).\\n\\t */\\n\\t&:hover > .ck-splitbutton__action,\\n\\t&.ck-splitbutton_open > .ck-splitbutton__action {\\n\\t\\t[dir=\\\"ltr\\\"] & {\\n\\t\\t\\t/* Don't round the action button on the right side */\\n\\t\\t\\tborder-top-right-radius: unset;\\n\\t\\t\\tborder-bottom-right-radius: unset;\\n\\t\\t}\\n\\n\\t\\t[dir=\\\"rtl\\\"] & {\\n\\t\\t\\t/* Don't round the action button on the left side */\\n\\t\\t\\tborder-top-left-radius: unset;\\n\\t\\t\\tborder-bottom-left-radius: unset;\\n\\t\\t}\\n\\t}\\n\\n\\t& > .ck-splitbutton__arrow {\\n\\t\\t/* It's a text-less button and since the icon is positioned absolutely in such situation,\\n\\t\\tit must get some arbitrary min-width. */\\n\\t\\tmin-width: unset;\\n\\n\\t\\t[dir=\\\"ltr\\\"] & {\\n\\t\\t\\t/* Don't round the arrow button on the left side */\\n\\t\\t\\tborder-top-left-radius: unset;\\n\\t\\t\\tborder-bottom-left-radius: unset;\\n\\t\\t}\\n\\n\\t\\t[dir=\\\"rtl\\\"] & {\\n\\t\\t\\t/* Don't round the arrow button on the right side */\\n\\t\\t\\tborder-top-right-radius: unset;\\n\\t\\t\\tborder-bottom-right-radius: unset;\\n\\t\\t}\\n\\n\\t\\t& svg {\\n\\t\\t\\twidth: var(--ck-dropdown-arrow-size);\\n\\t\\t}\\n\\t}\\n\\n\\t/* Make sure the divider stretches 100% height of the button\\n\\thttps://github.com/ckeditor/ckeditor5/issues/10936 */\\n\\t& > .ck-splitbutton__arrow:not(:focus) {\\n\\t\\tborder-top-width: 0px;\\n\\t\\tborder-bottom-width: 0px;\\n\\t}\\n\\n\\t/* Don't round the bottom left and right corners of the buttons when \\\"open\\\"\\n\\thttps://github.com/ckeditor/ckeditor5/issues/816 */\\n\\t&.ck-splitbutton_open {\\n\\t\\t@mixin ck-rounded-corners {\\n\\t\\t\\t& > .ck-splitbutton__action {\\n\\t\\t\\t\\tborder-bottom-left-radius: 0;\\n\\t\\t\\t}\\n\\n\\t\\t\\t& > .ck-splitbutton__arrow {\\n\\t\\t\\t\\tborder-bottom-right-radius: 0;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n\\t/* When the split button is \\\"open\\\" (the arrow is on) or being hovered, it should get some styling\\n\\tas a whole. The background of both buttons should stand out and there should be a visual\\n\\tseparation between both buttons. */\\n\\t&.ck-splitbutton_open,\\n\\t&:hover {\\n\\t\\t/* When the split button hovered as a whole, not as individual buttons. */\\n\\t\\t& > .ck-button:not(.ck-on):not(.ck-disabled):not(:hover) {\\n\\t\\t\\tbackground: var(--ck-color-split-button-hover-background);\\n\\t\\t}\\n\\n\\t\\t/* Splitbutton separator needs to be set with the ::after pseudoselector\\n\\t\\tto display properly the borders on focus */\\n\\t\\t& > .ck-splitbutton__arrow:not(.ck-disabled)::after {\\n\\t\\t\\tcontent: '';\\n\\t\\t\\tposition: absolute;\\n\\t\\t\\twidth: 1px;\\n\\t\\t\\theight: 100%;\\n\\t\\t\\tbackground-color: var(--ck-color-split-button-hover-border);\\n\\t\\t}\\n\\n\\t\\t/* Make sure the divider between the buttons looks fine when the button is focused */\\n\\t\\t& > .ck-splitbutton__arrow:focus::after {\\n\\t\\t\\t--ck-color-split-button-hover-border: var(--ck-color-focus-border);\\n\\t\\t}\\n\\n\\t\\t[dir=\\\"ltr\\\"] & {\\n\\t\\t\\t& > .ck-splitbutton__arrow:not(.ck-disabled)::after {\\n\\t\\t\\t\\tleft: -1px;\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t[dir=\\\"rtl\\\"] & {\\n\\t\\t\\t& > .ck-splitbutton__arrow:not(.ck-disabled)::after {\\n\\t\\t\\t\\tright: -1px;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n/**\\n * Implements rounded corner interface for .ck-rounded-corners class.\\n *\\n * @see $ck-border-radius\\n */\\n@define-mixin ck-rounded-corners {\\n\\tborder-radius: 0;\\n\\n\\t.ck-rounded-corners &,\\n\\t&.ck-rounded-corners {\\n\\t\\tborder-radius: var(--ck-border-radius);\\n\\t\\t@mixin-content;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:root{--ck-mention-list-max-height:300px}.ck.ck-mentions{max-height:var(--ck-mention-list-max-height);overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain}.ck.ck-mentions>.ck-list__item{flex-shrink:0;overflow:hidden}`, \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@ckeditor/ckeditor5-mention/theme/mentionui.css\"],\"names\":[],\"mappings\":\"AAKA,MACC,kCACD,CAEA,gBACC,4CAA6C,CAM7C,iBAAkB,CAJlB,eAAgB,CAMhB,2BAQD,CAJC,+BAEC,aAAc,CADd,eAED\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n:root {\\n\\t--ck-mention-list-max-height: 300px;\\n}\\n\\n.ck.ck-mentions {\\n\\tmax-height: var(--ck-mention-list-max-height);\\n\\n\\toverflow-y: auto;\\n\\n\\t/* Prevent unnecessary horizontal scrollbar in Safari\\n\\thttps://github.com/ckeditor/ckeditor5-mention/issues/41 */\\n\\toverflow-x: hidden;\\n\\n\\toverscroll-behavior: contain;\\n\\n\\t/* Prevent unnecessary vertical scrollbar in Safari\\n\\thttps://github.com/ckeditor/ckeditor5-mention/issues/41 */\\n\\t& > .ck-list__item {\\n\\t\\toverflow: hidden;\\n\\t\\tflex-shrink: 0;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.ck.ck-balloon-panel.ck-dropdown-menu__nested-menu__panel{max-height:314px;overflow-y:auto;position:absolute;z-index:calc(var(--ck-z-panel) + 1)}:root{--ck-dropdown-menu-menu-panel-max-width:75vw}.ck.ck-balloon-panel.ck-dropdown-menu__nested-menu__panel{background:var(--ck-color-dropdown-panel-background);border:1px solid var(--ck-color-dropdown-panel-border);bottom:0;box-shadow:var(--ck-drop-shadow),0 0;height:fit-content;max-width:var(--ck-dropdown-menu-menu-panel-max-width)}.ck.ck-balloon-panel.ck-dropdown-menu__nested-menu__panel:after,.ck.ck-balloon-panel.ck-dropdown-menu__nested-menu__panel:before{display:none}.ck.ck-balloon-panel.ck-dropdown-menu__nested-menu__panel.ck-balloon-panel_es,.ck.ck-balloon-panel.ck-dropdown-menu__nested-menu__panel.ck-balloon-panel_se{border-top-left-radius:0}.ck.ck-balloon-panel.ck-dropdown-menu__nested-menu__panel.ck-balloon-panel_sw,.ck.ck-balloon-panel.ck-dropdown-menu__nested-menu__panel.ck-balloon-panel_ws{border-top-right-radius:0}.ck.ck-balloon-panel.ck-dropdown-menu__nested-menu__panel.ck-balloon-panel_en,.ck.ck-balloon-panel.ck-dropdown-menu__nested-menu__panel.ck-balloon-panel_ne{border-bottom-left-radius:0}.ck.ck-balloon-panel.ck-dropdown-menu__nested-menu__panel.ck-balloon-panel_nw,.ck.ck-balloon-panel.ck-dropdown-menu__nested-menu__panel.ck-balloon-panel_wn{border-bottom-right-radius:0}.ck.ck-balloon-panel.ck-dropdown-menu__nested-menu__panel:focus{outline:none}`, \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/components/dropdown/menu/dropdownmenupanel.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-ui/components/dropdown/menu/dropdownmenupanel.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/mixins/_shadow.css\"],\"names\":[],\"mappings\":\"AAKA,0DAEC,gBAAiB,CACjB,eAAgB,CAFhB,iBAAkB,CAGlB,mCACD,CCFA,MACC,4CACD,CAEA,0DAGC,oDAAqD,CACrD,sDAAuD,CACvD,QAAS,CCRT,oCAA8B,CDS9B,kBAAmB,CACnB,sDAgCD,CA7BC,iIAEC,YACD,CAGA,4JAEC,wBACD,CAEA,4JAEC,yBACD,CAEA,4JAEC,2BACD,CAEA,4JAEC,4BACD,CAEA,gEACC,YACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n.ck.ck-balloon-panel.ck-dropdown-menu__nested-menu__panel {\\n\\tposition: absolute;\\n\\tmax-height: 314px; /* With the default settings, this is equal to 10 menu items. */\\n\\toverflow-y: auto;\\n\\tz-index: calc(var(--ck-z-panel) + 1);\\n}\\n\",\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n@import \\\"../../../../mixins/_rounded.css\\\";\\n@import \\\"../../../../mixins/_shadow.css\\\";\\n\\n:root {\\n\\t--ck-dropdown-menu-menu-panel-max-width: 75vw;\\n}\\n\\n.ck.ck-balloon-panel.ck-dropdown-menu__nested-menu__panel {\\n\\t@mixin ck-drop-shadow;\\n\\n\\tbackground: var(--ck-color-dropdown-panel-background);\\n\\tborder: 1px solid var(--ck-color-dropdown-panel-border);\\n\\tbottom: 0;\\n\\theight: fit-content;\\n\\tmax-width: var(--ck-dropdown-menu-menu-panel-max-width);\\n\\n\\t/* Reset balloon styling */\\n\\t&::after,\\n\\t&::before {\\n\\t\\tdisplay: none;\\n\\t}\\n\\n\\t/* Corner border radius consistent with the button. */\\n\\t&.ck-balloon-panel_es,\\n\\t&.ck-balloon-panel_se {\\n\\t\\tborder-top-left-radius: 0;\\n\\t}\\n\\n\\t&.ck-balloon-panel_ws,\\n\\t&.ck-balloon-panel_sw {\\n\\t\\tborder-top-right-radius: 0;\\n\\t}\\n\\n\\t&.ck-balloon-panel_en,\\n\\t&.ck-balloon-panel_ne {\\n\\t\\tborder-bottom-left-radius: 0;\\n\\t}\\n\\n\\t&.ck-balloon-panel_wn,\\n\\t&.ck-balloon-panel_nw {\\n\\t\\tborder-bottom-right-radius: 0;\\n\\t}\\n\\n\\t&:focus {\\n\\t\\toutline: none;\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n/**\\n * A helper to combine multiple shadows.\\n */\\n@define-mixin ck-box-shadow $shadowA, $shadowB: 0 0 {\\n\\tbox-shadow: $shadowA, $shadowB;\\n}\\n\\n/**\\n * Gives an element a drop shadow so it looks like a floating panel.\\n */\\n@define-mixin ck-drop-shadow {\\n\\t@mixin ck-box-shadow var(--ck-drop-shadow);\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.ck.ck-sticky-panel .ck-sticky-panel__content_sticky{position:fixed;top:0;z-index:var(--ck-z-panel)}.ck.ck-sticky-panel .ck-sticky-panel__content_sticky_bottom-limit{position:absolute;top:auto}.ck.ck-sticky-panel .ck-sticky-panel__content_sticky{border-top-left-radius:0;border-top-right-radius:0;border-width:0 1px 1px;box-shadow:var(--ck-drop-shadow),0 0}`, \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/components/panel/stickypanel.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-ui/components/panel/stickypanel.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/mixins/_shadow.css\"],\"names\":[],\"mappings\":\"AAMC,qDAEC,cAAe,CACf,KAAM,CAFN,yBAGD,CAEA,kEAEC,iBAAkB,CADlB,QAED,CCPA,qDAIC,wBAAyB,CACzB,yBAA0B,CAF1B,sBAAuB,CCFxB,oCDKA\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n.ck.ck-sticky-panel {\\n\\t& .ck-sticky-panel__content_sticky {\\n\\t\\tz-index: var(--ck-z-panel); /* #315 */\\n\\t\\tposition: fixed;\\n\\t\\ttop: 0;\\n\\t}\\n\\n\\t& .ck-sticky-panel__content_sticky_bottom-limit {\\n\\t\\ttop: auto;\\n\\t\\tposition: absolute;\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n@import \\\"../../../mixins/_shadow.css\\\";\\n\\n.ck.ck-sticky-panel {\\n\\t& .ck-sticky-panel__content_sticky {\\n\\t\\t@mixin ck-drop-shadow;\\n\\n\\t\\tborder-width: 0 1px 1px;\\n\\t\\tborder-top-left-radius: 0;\\n\\t\\tborder-top-right-radius: 0;\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n/**\\n * A helper to combine multiple shadows.\\n */\\n@define-mixin ck-box-shadow $shadowA, $shadowB: 0 0 {\\n\\tbox-shadow: $shadowA, $shadowB;\\n}\\n\\n/**\\n * Gives an element a drop shadow so it looks like a floating panel.\\n */\\n@define-mixin ck-drop-shadow {\\n\\t@mixin ck-box-shadow var(--ck-drop-shadow);\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:root{--ck-color-selector-caption-background:#f7f7f7;--ck-color-selector-caption-text:#333;--ck-color-selector-caption-highlighted-background:#fd0}.ck-content .table>figcaption{background-color:var(--ck-color-selector-caption-background);caption-side:top;color:var(--ck-color-selector-caption-text);display:table-caption;font-size:.75em;outline-offset:-1px;padding:.6em;text-align:center;word-break:break-word}@media (forced-colors:active){.ck-content .table>figcaption{background-color:unset;color:unset}}@media (forced-colors:none){.ck.ck-editor__editable .table>figcaption.table__caption_highlighted{animation:ck-table-caption-highlight .6s ease-out}}.ck.ck-editor__editable .table>figcaption.ck-placeholder:before{overflow:hidden;padding-left:inherit;padding-right:inherit;text-overflow:ellipsis;white-space:nowrap}@keyframes ck-table-caption-highlight{0%{background-color:var(--ck-color-selector-caption-highlighted-background)}to{background-color:var(--ck-color-selector-caption-background)}}`, \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@ckeditor/ckeditor5-table/theme/tablecaption.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/mixins/_mediacolors.css\"],\"names\":[],\"mappings\":\"AAOA,MACC,8CAAuD,CACvD,qCAAiD,CACjD,uDACD,CAGA,8BAMC,4DAA6D,CAJ7D,gBAAiB,CAGjB,2CAA4C,CAJ5C,qBAAsB,CAOtB,eAAgB,CAChB,mBAAoB,CAFpB,YAAa,CAHb,iBAAkB,CADlB,qBAaD,CCxBC,8BACC,8BDoBA,sBAAuB,CACvB,WCnBA,CACD,CAIA,4BDqBC,qEACC,iDACD,CCnBD,CDsBA,gEASC,eAAgB,CARhB,oBAAqB,CACrB,qBAAsB,CAQtB,sBAAuB,CAFvB,kBAGD,CAGD,sCACC,GACC,wEACD,CAEA,GACC,4DACD,CACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n@import \\\"@ckeditor/ckeditor5-ui/theme/mixins/_mediacolors.css\\\";\\n\\n:root {\\n\\t--ck-color-selector-caption-background: hsl(0, 0%, 97%);\\n\\t--ck-color-selector-caption-text: hsl(0, 0%, 20%);\\n\\t--ck-color-selector-caption-highlighted-background: hsl(52deg 100% 50%);\\n}\\n\\n/* Content styles */\\n.ck-content .table > figcaption {\\n\\tdisplay: table-caption;\\n\\tcaption-side: top;\\n\\tword-break: break-word;\\n\\ttext-align: center;\\n\\tcolor: var(--ck-color-selector-caption-text);\\n\\tbackground-color: var(--ck-color-selector-caption-background);\\n\\tpadding: .6em;\\n\\tfont-size: .75em;\\n\\toutline-offset: -1px;\\n\\n\\t/* Improve placeholder rendering in high-constrast mode (https://github.com/ckeditor/ckeditor5/issues/14907). */\\n\\t@mixin ck-media-forced-colors {\\n\\t\\tbackground-color: unset;\\n\\t\\tcolor: unset;\\n\\t}\\n}\\n\\n/* Editing styles */\\n.ck.ck-editor__editable .table > figcaption {\\n\\t@mixin ck-media-default-colors {\\n\\t\\t&.table__caption_highlighted {\\n\\t\\t\\tanimation: ck-table-caption-highlight .6s ease-out;\\n\\t\\t}\\n\\t}\\n\\n\\t&.ck-placeholder::before {\\n\\t\\tpadding-left: inherit;\\n\\t\\tpadding-right: inherit;\\n\\n\\t\\t/*\\n\\t\\t * Make sure the table caption placeholder doesn't overflow the placeholder area.\\n\\t\\t * See https://github.com/ckeditor/ckeditor5/issues/9162.\\n\\t\\t */\\n\\t\\twhite-space: nowrap;\\n\\t\\toverflow: hidden;\\n\\t\\ttext-overflow: ellipsis;\\n\\t}\\n}\\n\\n@keyframes ck-table-caption-highlight {\\n\\t0% {\\n\\t\\tbackground-color: var(--ck-color-selector-caption-highlighted-background);\\n\\t}\\n\\n\\t100% {\\n\\t\\tbackground-color: var(--ck-color-selector-caption-background);\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n@define-mixin ck-media-forced-colors {\\n\\t@media (forced-colors: active) {\\n\\t\\t& {\\n\\t\\t\\t@mixin-content;\\n\\t\\t}\\n\\t}\\n}\\n\\n@define-mixin ck-media-default-colors {\\n\\t@media (forced-colors: none) {\\n\\t\\t& {\\n\\t\\t\\t@mixin-content;\\n\\t\\t}\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.ck .ck-link_selected{background:var(--ck-color-link-selected-background)}.ck .ck-link_selected span.image-inline{outline:var(--ck-widget-outline-thickness) solid var(--ck-color-link-selected-background)}.ck .ck-fake-link-selection{background:var(--ck-color-link-fake-selection)}.ck .ck-fake-link-selection_collapsed{border-right:1px solid var(--ck-color-base-text);height:100%;margin-right:-1px;outline:1px solid hsla(0,0%,100%,.5)}`, \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-link/link.css\"],\"names\":[],\"mappings\":\"AAMA,sBACC,mDAMD,CAHC,wCACC,yFACD,CAOD,4BACC,8CACD,CAGA,sCAEC,gDAAiD,CADjD,WAAY,CAEZ,iBAAkB,CAClB,oCACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n/* Class added to span element surrounding currently selected link. */\\n.ck .ck-link_selected {\\n\\tbackground: var(--ck-color-link-selected-background);\\n\\n\\t/* Give linked inline images some outline to let the user know they are also part of the link. */\\n\\t& span.image-inline {\\n\\t\\toutline: var(--ck-widget-outline-thickness) solid var(--ck-color-link-selected-background);\\n\\t}\\n}\\n\\n/*\\n * Classes used by the \\\"fake visual selection\\\" displayed in the content when an input\\n * in the link UI has focus (the browser does not render the native selection in this state).\\n */\\n.ck .ck-fake-link-selection {\\n\\tbackground: var(--ck-color-link-fake-selection);\\n}\\n\\n/* A collapsed fake visual selection. */\\n.ck .ck-fake-link-selection_collapsed {\\n\\theight: 100%;\\n\\tborder-right: 1px solid var(--ck-color-base-text);\\n\\tmargin-right: -1px;\\n\\toutline: solid 1px hsla(0, 0%, 100%, .5);\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:root{--ck-toolbar-dropdown-max-width:60vw}.ck.ck-toolbar-dropdown>.ck-dropdown__panel{max-width:var(--ck-toolbar-dropdown-max-width);width:max-content}.ck.ck-toolbar-dropdown>.ck-dropdown__panel .ck-button:focus{z-index:calc(var(--ck-z-default) + 1)}.ck.ck-toolbar-dropdown .ck-toolbar{border:0}`, \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/components/dropdown/toolbardropdown.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-ui/components/dropdown/toolbardropdown.css\"],\"names\":[],\"mappings\":\"AAKA,MACC,oCACD,CAEA,4CAGC,8CAA+C,CAD/C,iBAQD,CAJE,6DACC,qCACD,CCZF,oCACC,QACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n:root {\\n\\t--ck-toolbar-dropdown-max-width: 60vw;\\n}\\n\\n.ck.ck-toolbar-dropdown > .ck-dropdown__panel {\\n\\t/* https://github.com/ckeditor/ckeditor5/issues/5586 */\\n\\twidth: max-content;\\n\\tmax-width: var(--ck-toolbar-dropdown-max-width);\\n\\n\\t& .ck-button {\\n\\t\\t&:focus {\\n\\t\\t\\tz-index: calc(var(--ck-z-default) + 1);\\n\\t\\t}\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n.ck.ck-toolbar-dropdown .ck-toolbar {\\n\\tborder: 0;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.ck.ck-editor__editable .image,.ck.ck-editor__editable .image-inline{position:relative}.ck.ck-editor__editable .image .ck-progress-bar,.ck.ck-editor__editable .image-inline .ck-progress-bar{left:0;position:absolute;top:0}.ck.ck-editor__editable .image-inline.ck-appear,.ck.ck-editor__editable .image.ck-appear{animation:fadeIn .7s}@media (prefers-reduced-motion:reduce){.ck.ck-editor__editable .image-inline.ck-appear,.ck.ck-editor__editable .image.ck-appear{animation:none;opacity:1}}.ck.ck-editor__editable .image .ck-progress-bar,.ck.ck-editor__editable .image-inline .ck-progress-bar{background:var(--ck-color-upload-bar-background);height:2px;transition:width .1s;width:0}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}`, \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@ckeditor/ckeditor5-image/theme/imageuploadprogress.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-image/imageuploadprogress.css\"],\"names\":[],\"mappings\":\"AAMC,qEAEC,iBACD,CAGA,uGAIC,MAAO,CAFP,iBAAkB,CAClB,KAED,CCRC,yFACC,oBAMD,CAJC,uCAHD,yFAKE,cAAe,CADf,SAGF,CADC,CAKF,uGAIC,gDAAiD,CAFjD,UAAW,CAGX,oBAAuB,CAFvB,OAGD,CAGD,kBACC,GAAO,SAAY,CACnB,GAAO,SAAY,CACpB\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n.ck.ck-editor__editable {\\n\\t& .image,\\n\\t& .image-inline {\\n\\t\\tposition: relative;\\n\\t}\\n\\n\\t/* Upload progress bar. */\\n\\t& .image .ck-progress-bar,\\n\\t& .image-inline .ck-progress-bar {\\n\\t\\tposition: absolute;\\n\\t\\ttop: 0;\\n\\t\\tleft: 0;\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n.ck.ck-editor__editable {\\n\\t& .image,\\n\\t& .image-inline {\\n\\t\\t/* Showing animation. */\\n\\t\\t&.ck-appear {\\n\\t\\t\\tanimation: fadeIn 700ms;\\n\\n\\t\\t\\t@media (prefers-reduced-motion: reduce) {\\n\\t\\t\\t\\topacity: 1;\\n\\t\\t\\t\\tanimation: none;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n\\t/* Upload progress bar. */\\n\\t& .image .ck-progress-bar,\\n\\t& .image-inline .ck-progress-bar {\\n\\t\\theight: 2px;\\n\\t\\twidth: 0;\\n\\t\\tbackground: var(--ck-color-upload-bar-background);\\n\\t\\ttransition: width 100ms;\\n\\t}\\n}\\n\\n@keyframes fadeIn {\\n\\tfrom { opacity: 0; }\\n\\tto { opacity: 1; }\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","\"use strict\";\n\nvar memo = {};\n\n/* istanbul ignore next */\nfunction getTarget(target) {\n if (typeof memo[target] === \"undefined\") {\n var styleTarget = document.querySelector(target);\n\n // Special case to return head of iframe instead of iframe itself\n if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {\n try {\n // This will throw an exception if access to iframe is blocked\n // due to cross-origin restrictions\n styleTarget = styleTarget.contentDocument.head;\n } catch (e) {\n // istanbul ignore next\n styleTarget = null;\n }\n }\n memo[target] = styleTarget;\n }\n return memo[target];\n}\n\n/* istanbul ignore next */\nfunction insertBySelector(insert, style) {\n var target = getTarget(insert);\n if (!target) {\n throw new Error(\"Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.\");\n }\n target.appendChild(style);\n}\nmodule.exports = insertBySelector;","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.ck-editor__editable .ck-list-bogus-paragraph{display:block}`, \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@ckeditor/ckeditor5-list/theme/documentlist.css\"],\"names\":[],\"mappings\":\"AAKA,8CACC,aACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n.ck-editor__editable .ck-list-bogus-paragraph {\\n\\tdisplay: block;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:root{--ck-image-style-spacing:1.5em;--ck-inline-image-style-spacing:calc(var(--ck-image-style-spacing)/2)}.ck-content .image.image-style-block-align-left,.ck-content .image.image-style-block-align-right{max-width:calc(100% - var(--ck-image-style-spacing))}.ck-content .image.image-style-align-left,.ck-content .image.image-style-align-right{clear:none}.ck-content .image.image-style-side{float:right;margin-left:var(--ck-image-style-spacing);max-width:50%}.ck-content .image.image-style-align-left{float:left;margin-right:var(--ck-image-style-spacing)}.ck-content .image.image-style-align-right{float:right;margin-left:var(--ck-image-style-spacing)}.ck-content .image.image-style-block-align-right{margin-left:auto;margin-right:0}.ck-content .image.image-style-block-align-left{margin-left:0;margin-right:auto}.ck-content .image-style-align-center{margin-left:auto;margin-right:auto}.ck-content .image-style-align-left{float:left;margin-right:var(--ck-image-style-spacing)}.ck-content .image-style-align-right{float:right;margin-left:var(--ck-image-style-spacing)}.ck-content p+.image.image-style-align-left,.ck-content p+.image.image-style-align-right,.ck-content p+.image.image-style-side{margin-top:0}.ck-content .image-inline.image-style-align-left,.ck-content .image-inline.image-style-align-right{margin-bottom:var(--ck-inline-image-style-spacing);margin-top:var(--ck-inline-image-style-spacing)}.ck-content .image-inline.image-style-align-left{margin-right:var(--ck-inline-image-style-spacing)}.ck-content .image-inline.image-style-align-right{margin-left:var(--ck-inline-image-style-spacing)}.ck.ck-splitbutton.ck-splitbutton_flatten.ck-splitbutton_open>.ck-splitbutton__action:not(.ck-disabled),.ck.ck-splitbutton.ck-splitbutton_flatten.ck-splitbutton_open>.ck-splitbutton__arrow:not(.ck-disabled),.ck.ck-splitbutton.ck-splitbutton_flatten.ck-splitbutton_open>.ck-splitbutton__arrow:not(.ck-disabled):not(:hover),.ck.ck-splitbutton.ck-splitbutton_flatten:hover>.ck-splitbutton__action:not(.ck-disabled),.ck.ck-splitbutton.ck-splitbutton_flatten:hover>.ck-splitbutton__arrow:not(.ck-disabled),.ck.ck-splitbutton.ck-splitbutton_flatten:hover>.ck-splitbutton__arrow:not(.ck-disabled):not(:hover){background-color:var(--ck-color-button-on-background)}.ck.ck-splitbutton.ck-splitbutton_flatten.ck-splitbutton_open>.ck-splitbutton__action:not(.ck-disabled):after,.ck.ck-splitbutton.ck-splitbutton_flatten.ck-splitbutton_open>.ck-splitbutton__arrow:not(.ck-disabled):after,.ck.ck-splitbutton.ck-splitbutton_flatten.ck-splitbutton_open>.ck-splitbutton__arrow:not(.ck-disabled):not(:hover):after,.ck.ck-splitbutton.ck-splitbutton_flatten:hover>.ck-splitbutton__action:not(.ck-disabled):after,.ck.ck-splitbutton.ck-splitbutton_flatten:hover>.ck-splitbutton__arrow:not(.ck-disabled):after,.ck.ck-splitbutton.ck-splitbutton_flatten:hover>.ck-splitbutton__arrow:not(.ck-disabled):not(:hover):after{display:none}.ck.ck-splitbutton.ck-splitbutton_flatten.ck-splitbutton_open:hover>.ck-splitbutton__action:not(.ck-disabled),.ck.ck-splitbutton.ck-splitbutton_flatten.ck-splitbutton_open:hover>.ck-splitbutton__arrow:not(.ck-disabled),.ck.ck-splitbutton.ck-splitbutton_flatten.ck-splitbutton_open:hover>.ck-splitbutton__arrow:not(.ck-disabled):not(:hover){background-color:var(--ck-color-button-on-hover-background)}`, \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@ckeditor/ckeditor5-image/theme/imagestyle.css\"],\"names\":[],\"mappings\":\"AAKA,MACC,8BAA+B,CAC/B,qEACD,CAQE,iGAEC,oDACD,CAIA,qFAEC,UACD,CAEA,oCACC,WAAY,CACZ,yCAA0C,CAC1C,aACD,CAEA,0CACC,UAAW,CACX,0CACD,CAEA,2CACC,WAAY,CACZ,yCACD,CAEA,iDAEC,gBAAiB,CADjB,cAED,CAEA,gDACC,aAAc,CACd,iBACD,CAGD,sCACC,gBAAiB,CACjB,iBACD,CAEA,oCACC,UAAW,CACX,0CACD,CAEA,qCACC,WAAY,CACZ,yCACD,CAGA,+HAGC,YACD,CAGC,mGAGC,kDAAmD,CADnD,+CAED,CAEA,iDACC,iDACD,CAEA,kDACC,gDACD,CAUC,0lBAGC,qDAKD,CAHC,8nBACC,YACD,CAKD,oVAGC,2DACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n:root {\\n\\t--ck-image-style-spacing: 1.5em;\\n\\t--ck-inline-image-style-spacing: calc(var(--ck-image-style-spacing) / 2);\\n}\\n\\n.ck-content {\\n\\t/* See: https://github.com/ckeditor/ckeditor5/issues/16317 */\\n\\t& .image {\\n\\t\\t/* Provides a minimal side margin for the left and right aligned images, so that the user has a visual feedback\\n\\t\\tconfirming successful application of the style if image width exceeds the editor's size.\\n\\t\\tSee https://github.com/ckeditor/ckeditor5/issues/9342 */\\n\\t\\t&.image-style-block-align-left,\\n\\t\\t&.image-style-block-align-right {\\n\\t\\t\\tmax-width: calc(100% - var(--ck-image-style-spacing));\\n\\t\\t}\\n\\n\\t\\t/* Allows displaying multiple floating images in the same line.\\n\\t\\tSee https://github.com/ckeditor/ckeditor5/issues/9183#issuecomment-804988132 */\\n\\t\\t&.image-style-align-left,\\n\\t\\t&.image-style-align-right {\\n\\t\\t\\tclear: none;\\n\\t\\t}\\n\\n\\t\\t&.image-style-side {\\n\\t\\t\\tfloat: right;\\n\\t\\t\\tmargin-left: var(--ck-image-style-spacing);\\n\\t\\t\\tmax-width: 50%;\\n\\t\\t}\\n\\n\\t\\t&.image-style-align-left {\\n\\t\\t\\tfloat: left;\\n\\t\\t\\tmargin-right: var(--ck-image-style-spacing);\\n\\t\\t}\\n\\n\\t\\t&.image-style-align-right {\\n\\t\\t\\tfloat: right;\\n\\t\\t\\tmargin-left: var(--ck-image-style-spacing);\\n\\t\\t}\\n\\n\\t\\t&.image-style-block-align-right {\\n\\t\\t\\tmargin-right: 0;\\n\\t\\t\\tmargin-left: auto;\\n\\t\\t}\\n\\n\\t\\t&.image-style-block-align-left {\\n\\t\\t\\tmargin-left: 0;\\n\\t\\t\\tmargin-right: auto;\\n\\t\\t}\\n\\t}\\n\\n\\t& .image-style-align-center {\\n\\t\\tmargin-left: auto;\\n\\t\\tmargin-right: auto;\\n\\t}\\n\\n\\t& .image-style-align-left {\\n\\t\\tfloat: left;\\n\\t\\tmargin-right: var(--ck-image-style-spacing);\\n\\t}\\n\\n\\t& .image-style-align-right {\\n\\t\\tfloat: right;\\n\\t\\tmargin-left: var(--ck-image-style-spacing);\\n\\t}\\n\\n\\t/* Simulates margin collapsing with the preceding paragraph, which does not work for the floating elements. */\\n\\t& p + .image.image-style-align-left,\\n\\t& p + .image.image-style-align-right,\\n\\t& p + .image.image-style-side {\\n\\t\\tmargin-top: 0;\\n\\t}\\n\\n\\t& .image-inline {\\n\\t\\t&.image-style-align-left,\\n\\t\\t&.image-style-align-right {\\n\\t\\t\\tmargin-top: var(--ck-inline-image-style-spacing);\\n\\t\\t\\tmargin-bottom: var(--ck-inline-image-style-spacing);\\n\\t\\t}\\n\\n\\t\\t&.image-style-align-left {\\n\\t\\t\\tmargin-right: var(--ck-inline-image-style-spacing);\\n\\t\\t}\\n\\n\\t\\t&.image-style-align-right {\\n\\t\\t\\tmargin-left: var(--ck-inline-image-style-spacing);\\n\\t\\t}\\n\\t}\\n}\\n\\n.ck.ck-splitbutton {\\n\\t/* The button should display as a regular drop-down if the action button\\n\\tis forced to fire the same action as the arrow button. */\\n\\t&.ck-splitbutton_flatten {\\n\\t\\t&:hover,\\n\\t\\t&.ck-splitbutton_open {\\n\\t\\t\\t& > .ck-splitbutton__action:not(.ck-disabled),\\n\\t\\t\\t& > .ck-splitbutton__arrow:not(.ck-disabled),\\n\\t\\t\\t& > .ck-splitbutton__arrow:not(.ck-disabled):not(:hover) {\\n\\t\\t\\t\\tbackground-color: var(--ck-color-button-on-background);\\n\\n\\t\\t\\t\\t&::after {\\n\\t\\t\\t\\t\\tdisplay: none;\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t&.ck-splitbutton_open:hover {\\n\\t\\t\\t& > .ck-splitbutton__action:not(.ck-disabled),\\n\\t\\t\\t& > .ck-splitbutton__arrow:not(.ck-disabled),\\n\\t\\t\\t& > .ck-splitbutton__arrow:not(.ck-disabled):not(:hover) {\\n\\t\\t\\t\\tbackground-color: var(--ck-color-button-on-hover-background);\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.ck.ck-color-grid{display:grid}:root{--ck-color-grid-tile-size:24px;--ck-color-color-grid-check-icon:#166fd4}.ck.ck-color-grid{grid-gap:5px;padding:8px}.ck.ck-color-grid__tile{transition:box-shadow .2s ease}@media (forced-colors:none){.ck.ck-color-grid__tile{border:0;height:var(--ck-color-grid-tile-size);min-height:var(--ck-color-grid-tile-size);min-width:var(--ck-color-grid-tile-size);padding:0;width:var(--ck-color-grid-tile-size)}.ck.ck-color-grid__tile.ck-on,.ck.ck-color-grid__tile:focus:not(.ck-disabled),.ck.ck-color-grid__tile:hover:not(.ck-disabled){border:0}.ck.ck-color-grid__tile.ck-color-selector__color-tile_bordered{box-shadow:0 0 0 1px var(--ck-color-base-border)}.ck.ck-color-grid__tile.ck-on{box-shadow:inset 0 0 0 1px var(--ck-color-base-background),0 0 0 2px var(--ck-color-base-text)}.ck.ck-color-grid__tile:focus:not(.ck-disabled),.ck.ck-color-grid__tile:hover:not(.ck-disabled){box-shadow:inset 0 0 0 1px var(--ck-color-base-background),0 0 0 2px var(--ck-color-focus-border)}}@media (forced-colors:active){.ck.ck-color-grid__tile{height:unset;min-height:unset;min-width:unset;padding:0 var(--ck-spacing-small);width:unset}.ck.ck-color-grid__tile .ck-button__label{display:inline-block}}@media (prefers-reduced-motion:reduce){.ck.ck-color-grid__tile{transition:none}}.ck.ck-color-grid__tile.ck-disabled{cursor:unset;transition:unset}.ck.ck-color-grid__tile .ck.ck-icon{color:var(--ck-color-color-grid-check-icon);display:none}.ck.ck-color-grid__tile.ck-on .ck.ck-icon{display:block}.ck.ck-color-grid__label{padding:0 var(--ck-spacing-standard)}`, \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/components/colorgrid/colorgrid.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-ui/components/colorgrid/colorgrid.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/mixins/_mediacolors.css\"],\"names\":[],\"mappings\":\"AAKA,kBACC,YACD,CCCA,MACC,8BAA+B,CAK/B,wCACD,CAEA,kBACC,YAAa,CACb,WACD,CAEA,wBACC,8BAkED,CC3EC,4BACC,wBDgBA,QAAS,CAJT,qCAAsC,CAEtC,yCAA0C,CAD1C,wCAAyC,CAEzC,SAAU,CAJV,oCCTA,CDgBA,8HAIC,QACD,CAEA,+DACC,gDACD,CAEA,8BACC,8FACD,CAEA,gGAEC,iGACD,CCjCD,CAZA,8BACC,wBDqDA,YAAa,CAEb,gBAAiB,CADjB,eAAgB,CAEhB,iCAAkC,CAJlC,WClDA,CDwDA,0CACC,oBACD,CCzDD,CD4DA,uCAhDD,wBAiDE,eAkBF,CAjBC,CAEA,oCACC,YAAa,CACb,gBACD,CAEA,oCAEC,2CAA4C,CAD5C,YAED,CAGC,0CACC,aACD,CAIF,yBACC,oCACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n.ck.ck-color-grid {\\n\\tdisplay: grid;\\n}\\n\",\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n@import \\\"../../../mixins/_rounded.css\\\";\\n@import \\\"@ckeditor/ckeditor5-ui/theme/mixins/_mediacolors.css\\\";\\n\\n:root {\\n\\t--ck-color-grid-tile-size: 24px;\\n\\n\\t/* Not using global colors here because these may change but some colors in a pallette\\n\\t * require special treatment. For instance, this ensures no matter what the UI text color is,\\n\\t * the check icon will look good on the black color tile. */\\n\\t--ck-color-color-grid-check-icon: hsl(212, 81%, 46%);\\n}\\n\\n.ck.ck-color-grid {\\n\\tgrid-gap: 5px;\\n\\tpadding: 8px;\\n}\\n\\n.ck.ck-color-grid__tile {\\n\\ttransition: .2s ease box-shadow;\\n\\n\\t@mixin ck-media-default-colors {\\n\\t\\twidth: var(--ck-color-grid-tile-size);\\n\\t\\theight: var(--ck-color-grid-tile-size);\\n\\t\\tmin-width: var(--ck-color-grid-tile-size);\\n\\t\\tmin-height: var(--ck-color-grid-tile-size);\\n\\t\\tpadding: 0;\\n\\t\\tborder: 0;\\n\\n\\t\\t&.ck-on,\\n\\t\\t&:focus:not( .ck-disabled ),\\n\\t\\t&:hover:not( .ck-disabled ) {\\n\\t\\t\\t/* Disable the default .ck-button's border ring. */\\n\\t\\t\\tborder: 0;\\n\\t\\t}\\n\\n\\t\\t&.ck-color-selector__color-tile_bordered {\\n\\t\\t\\tbox-shadow: 0 0 0 1px var(--ck-color-base-border);\\n\\t\\t}\\n\\n\\t\\t&.ck-on {\\n\\t\\t\\tbox-shadow: inset 0 0 0 1px var(--ck-color-base-background), 0 0 0 2px var(--ck-color-base-text);\\n\\t\\t}\\n\\n\\t\\t&:focus:not( .ck-disabled ),\\n\\t\\t&:hover:not( .ck-disabled ) {\\n\\t\\t\\tbox-shadow: inset 0 0 0 1px var(--ck-color-base-background), 0 0 0 2px var(--ck-color-focus-border);\\n\\t\\t}\\n\\t}\\n\\n\\t/*\\n\\t * In high contrast mode, the colors are replaced with text labels.\\n\\t * See https://github.com/ckeditor/ckeditor5/issues/14907.\\n\\t */\\n\\t@mixin ck-media-forced-colors {\\n\\t\\twidth: unset;\\n\\t\\theight: unset;\\n\\t\\tmin-width: unset;\\n\\t\\tmin-height: unset;\\n\\t\\tpadding: 0 var(--ck-spacing-small);\\n\\n\\t\\t& .ck-button__label {\\n\\t\\t\\tdisplay: inline-block;\\n\\t\\t}\\n\\t}\\n\\n\\t@media (prefers-reduced-motion: reduce) {\\n\\t\\ttransition: none;\\n\\t}\\n\\n\\t&.ck-disabled {\\n\\t\\tcursor: unset;\\n\\t\\ttransition: unset;\\n\\t}\\n\\n\\t& .ck.ck-icon {\\n\\t\\tdisplay: none;\\n\\t\\tcolor: var(--ck-color-color-grid-check-icon);\\n\\t}\\n\\n\\t&.ck-on {\\n\\t\\t& .ck.ck-icon {\\n\\t\\t\\tdisplay: block;\\n\\t\\t}\\n\\t}\\n}\\n\\n.ck.ck-color-grid__label {\\n\\tpadding: 0 var(--ck-spacing-standard);\\n}\\n\",\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n@define-mixin ck-media-forced-colors {\\n\\t@media (forced-colors: active) {\\n\\t\\t& {\\n\\t\\t\\t@mixin-content;\\n\\t\\t}\\n\\t}\\n}\\n\\n@define-mixin ck-media-default-colors {\\n\\t@media (forced-colors: none) {\\n\\t\\t& {\\n\\t\\t\\t@mixin-content;\\n\\t\\t}\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.ck.ck-link-actions{display:flex;flex-direction:row;flex-wrap:nowrap}.ck.ck-link-actions .ck-link-actions__preview{display:inline-block}.ck.ck-link-actions .ck-link-actions__preview .ck-button__label{overflow:hidden}@media screen and (max-width:600px){.ck.ck-link-actions{flex-wrap:wrap}.ck.ck-link-actions .ck-link-actions__preview{flex-basis:100%}.ck.ck-link-actions .ck-button:not(.ck-link-actions__preview){flex-basis:50%}}.ck.ck-link-actions .ck-button.ck-link-actions__preview{padding-left:0;padding-right:0}.ck.ck-link-actions .ck-button.ck-link-actions__preview .ck-button__label{color:var(--ck-color-link-default);cursor:pointer;max-width:var(--ck-input-width);min-width:3em;padding:0 var(--ck-spacing-medium);text-align:center;text-overflow:ellipsis}.ck.ck-link-actions .ck-button.ck-link-actions__preview .ck-button__label:hover{text-decoration:underline}.ck.ck-link-actions .ck-button.ck-link-actions__preview,.ck.ck-link-actions .ck-button.ck-link-actions__preview:active,.ck.ck-link-actions .ck-button.ck-link-actions__preview:focus,.ck.ck-link-actions .ck-button.ck-link-actions__preview:hover{background:none}.ck.ck-link-actions .ck-button.ck-link-actions__preview:active{box-shadow:none}.ck.ck-link-actions .ck-button.ck-link-actions__preview:focus .ck-button__label{text-decoration:underline}[dir=ltr] .ck.ck-link-actions .ck-button:not(:first-child),[dir=rtl] .ck.ck-link-actions .ck-button:not(:last-child){margin-left:var(--ck-spacing-standard)}@media screen and (max-width:600px){.ck.ck-link-actions .ck-button.ck-link-actions__preview{margin:var(--ck-spacing-standard) var(--ck-spacing-standard) 0}.ck.ck-link-actions .ck-button.ck-link-actions__preview .ck-button__label{max-width:100%;min-width:0}[dir=ltr] .ck.ck-link-actions .ck-button:not(.ck-link-actions__preview),[dir=rtl] .ck.ck-link-actions .ck-button:not(.ck-link-actions__preview){margin-left:0}}`, \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@ckeditor/ckeditor5-link/theme/linkactions.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/mixins/_rwd.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-link/linkactions.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/mixins/_dir.css\"],\"names\":[],\"mappings\":\"AAOA,oBACC,YAAa,CACb,kBAAmB,CACnB,gBAqBD,CAnBC,8CACC,oBAKD,CAHC,gEACC,eACD,CCXD,oCDCD,oBAcE,cAUF,CARE,8CACC,eACD,CAEA,8DACC,cACD,CCrBD,CCIA,wDACC,cAAe,CACf,eAmCD,CAjCC,0EAEC,kCAAmC,CAEnC,cAAe,CAIf,+BAAgC,CAChC,aAAc,CARd,kCAAmC,CASnC,iBAAkB,CAPlB,sBAYD,CAHC,gFACC,yBACD,CAGD,mPAIC,eACD,CAEA,+DACC,eACD,CAGC,gFACC,yBACD,CAWD,qHACC,sCACD,CDtDD,oCC0DC,wDACC,8DAMD,CAJC,0EAEC,cAAe,CADf,WAED,CChEF,gJDyEG,aCvEH,CFAA\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n@import \\\"@ckeditor/ckeditor5-ui/theme/mixins/_rwd.css\\\";\\n\\n.ck.ck-link-actions {\\n\\tdisplay: flex;\\n\\tflex-direction: row;\\n\\tflex-wrap: nowrap;\\n\\n\\t& .ck-link-actions__preview {\\n\\t\\tdisplay: inline-block;\\n\\n\\t\\t& .ck-button__label {\\n\\t\\t\\toverflow: hidden;\\n\\t\\t}\\n\\t}\\n\\n\\t@mixin ck-media-phone {\\n\\t\\tflex-wrap: wrap;\\n\\n\\t\\t& .ck-link-actions__preview {\\n\\t\\t\\tflex-basis: 100%;\\n\\t\\t}\\n\\n\\t\\t& .ck-button:not(.ck-link-actions__preview) {\\n\\t\\t\\tflex-basis: 50%;\\n\\t\\t}\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n@define-mixin ck-media-phone {\\n\\t@media screen and (max-width: 600px) {\\n\\t\\t@mixin-content;\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n@import \\\"@ckeditor/ckeditor5-ui/theme/mixins/_unselectable.css\\\";\\n@import \\\"@ckeditor/ckeditor5-ui/theme/mixins/_dir.css\\\";\\n@import \\\"../mixins/_focus.css\\\";\\n@import \\\"../mixins/_shadow.css\\\";\\n@import \\\"@ckeditor/ckeditor5-ui/theme/mixins/_rwd.css\\\";\\n\\n.ck.ck-link-actions {\\n\\t& .ck-button.ck-link-actions__preview {\\n\\t\\tpadding-left: 0;\\n\\t\\tpadding-right: 0;\\n\\n\\t\\t& .ck-button__label {\\n\\t\\t\\tpadding: 0 var(--ck-spacing-medium);\\n\\t\\t\\tcolor: var(--ck-color-link-default);\\n\\t\\t\\ttext-overflow: ellipsis;\\n\\t\\t\\tcursor: pointer;\\n\\n\\t\\t\\t/* Match the box model of the link editor form's input so the balloon\\n\\t\\t\\tdoes not change width when moving between actions and the form. */\\n\\t\\t\\tmax-width: var(--ck-input-width);\\n\\t\\t\\tmin-width: 3em;\\n\\t\\t\\ttext-align: center;\\n\\n\\t\\t\\t&:hover {\\n\\t\\t\\t\\ttext-decoration: underline;\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t&,\\n\\t\\t&:hover,\\n\\t\\t&:focus,\\n\\t\\t&:active {\\n\\t\\t\\tbackground: none;\\n\\t\\t}\\n\\n\\t\\t&:active {\\n\\t\\t\\tbox-shadow: none;\\n\\t\\t}\\n\\n\\t\\t&:focus {\\n\\t\\t\\t& .ck-button__label {\\n\\t\\t\\t\\ttext-decoration: underline;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n\\t@mixin ck-dir ltr {\\n\\t\\t& .ck-button:not(:first-child) {\\n\\t\\t\\tmargin-left: var(--ck-spacing-standard);\\n\\t\\t}\\n\\t}\\n\\n\\t@mixin ck-dir rtl {\\n\\t\\t& .ck-button:not(:last-child) {\\n\\t\\t\\tmargin-left: var(--ck-spacing-standard);\\n\\t\\t}\\n\\t}\\n\\n\\t@mixin ck-media-phone {\\n\\t\\t& .ck-button.ck-link-actions__preview {\\n\\t\\t\\tmargin: var(--ck-spacing-standard) var(--ck-spacing-standard) 0;\\n\\n\\t\\t\\t& .ck-button__label {\\n\\t\\t\\t\\tmin-width: 0;\\n\\t\\t\\t\\tmax-width: 100%;\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t& .ck-button:not(.ck-link-actions__preview) {\\n\\t\\t\\t@mixin ck-dir ltr {\\n\\t\\t\\t\\tmargin-left: 0;\\n\\t\\t\\t}\\n\\n\\t\\t\\t@mixin ck-dir rtl {\\n\\t\\t\\t\\tmargin-left: 0;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n@define-mixin ck-dir $direction {\\n\\t[dir=\\\"$(direction)\\\"] & {\\n\\t\\t@mixin-content;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.ck.ck-dialog .ck.ck-dialog__actions{display:flex;justify-content:flex-end;padding:var(--ck-spacing-large)}.ck.ck-dialog .ck.ck-dialog__actions>*+*{margin-left:var(--ck-spacing-large)}`, \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/components/dialog/dialogactions.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-ui/components/dialog/dialogactions.css\"],\"names\":[],\"mappings\":\"AAMC,qCACC,YAAa,CACb,wBAAyB,CCDzB,+BDED,CCAC,yCACC,mCACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n.ck.ck-dialog {\\n\\t& .ck.ck-dialog__actions {\\n\\t\\tdisplay: flex;\\n\\t\\tjustify-content: flex-end;\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n.ck.ck-dialog {\\n\\t& .ck.ck-dialog__actions {\\n\\t\\tpadding: var(--ck-spacing-large);\\n\\n\\t\\t& > * + * {\\n\\t\\t\\tmargin-left: var(--ck-spacing-large);\\n\\t\\t}\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","'use strict'\r\n\r\nmodule.exports = {\r\n\t\"aliceblue\": [240, 248, 255],\r\n\t\"antiquewhite\": [250, 235, 215],\r\n\t\"aqua\": [0, 255, 255],\r\n\t\"aquamarine\": [127, 255, 212],\r\n\t\"azure\": [240, 255, 255],\r\n\t\"beige\": [245, 245, 220],\r\n\t\"bisque\": [255, 228, 196],\r\n\t\"black\": [0, 0, 0],\r\n\t\"blanchedalmond\": [255, 235, 205],\r\n\t\"blue\": [0, 0, 255],\r\n\t\"blueviolet\": [138, 43, 226],\r\n\t\"brown\": [165, 42, 42],\r\n\t\"burlywood\": [222, 184, 135],\r\n\t\"cadetblue\": [95, 158, 160],\r\n\t\"chartreuse\": [127, 255, 0],\r\n\t\"chocolate\": [210, 105, 30],\r\n\t\"coral\": [255, 127, 80],\r\n\t\"cornflowerblue\": [100, 149, 237],\r\n\t\"cornsilk\": [255, 248, 220],\r\n\t\"crimson\": [220, 20, 60],\r\n\t\"cyan\": [0, 255, 255],\r\n\t\"darkblue\": [0, 0, 139],\r\n\t\"darkcyan\": [0, 139, 139],\r\n\t\"darkgoldenrod\": [184, 134, 11],\r\n\t\"darkgray\": [169, 169, 169],\r\n\t\"darkgreen\": [0, 100, 0],\r\n\t\"darkgrey\": [169, 169, 169],\r\n\t\"darkkhaki\": [189, 183, 107],\r\n\t\"darkmagenta\": [139, 0, 139],\r\n\t\"darkolivegreen\": [85, 107, 47],\r\n\t\"darkorange\": [255, 140, 0],\r\n\t\"darkorchid\": [153, 50, 204],\r\n\t\"darkred\": [139, 0, 0],\r\n\t\"darksalmon\": [233, 150, 122],\r\n\t\"darkseagreen\": [143, 188, 143],\r\n\t\"darkslateblue\": [72, 61, 139],\r\n\t\"darkslategray\": [47, 79, 79],\r\n\t\"darkslategrey\": [47, 79, 79],\r\n\t\"darkturquoise\": [0, 206, 209],\r\n\t\"darkviolet\": [148, 0, 211],\r\n\t\"deeppink\": [255, 20, 147],\r\n\t\"deepskyblue\": [0, 191, 255],\r\n\t\"dimgray\": [105, 105, 105],\r\n\t\"dimgrey\": [105, 105, 105],\r\n\t\"dodgerblue\": [30, 144, 255],\r\n\t\"firebrick\": [178, 34, 34],\r\n\t\"floralwhite\": [255, 250, 240],\r\n\t\"forestgreen\": [34, 139, 34],\r\n\t\"fuchsia\": [255, 0, 255],\r\n\t\"gainsboro\": [220, 220, 220],\r\n\t\"ghostwhite\": [248, 248, 255],\r\n\t\"gold\": [255, 215, 0],\r\n\t\"goldenrod\": [218, 165, 32],\r\n\t\"gray\": [128, 128, 128],\r\n\t\"green\": [0, 128, 0],\r\n\t\"greenyellow\": [173, 255, 47],\r\n\t\"grey\": [128, 128, 128],\r\n\t\"honeydew\": [240, 255, 240],\r\n\t\"hotpink\": [255, 105, 180],\r\n\t\"indianred\": [205, 92, 92],\r\n\t\"indigo\": [75, 0, 130],\r\n\t\"ivory\": [255, 255, 240],\r\n\t\"khaki\": [240, 230, 140],\r\n\t\"lavender\": [230, 230, 250],\r\n\t\"lavenderblush\": [255, 240, 245],\r\n\t\"lawngreen\": [124, 252, 0],\r\n\t\"lemonchiffon\": [255, 250, 205],\r\n\t\"lightblue\": [173, 216, 230],\r\n\t\"lightcoral\": [240, 128, 128],\r\n\t\"lightcyan\": [224, 255, 255],\r\n\t\"lightgoldenrodyellow\": [250, 250, 210],\r\n\t\"lightgray\": [211, 211, 211],\r\n\t\"lightgreen\": [144, 238, 144],\r\n\t\"lightgrey\": [211, 211, 211],\r\n\t\"lightpink\": [255, 182, 193],\r\n\t\"lightsalmon\": [255, 160, 122],\r\n\t\"lightseagreen\": [32, 178, 170],\r\n\t\"lightskyblue\": [135, 206, 250],\r\n\t\"lightslategray\": [119, 136, 153],\r\n\t\"lightslategrey\": [119, 136, 153],\r\n\t\"lightsteelblue\": [176, 196, 222],\r\n\t\"lightyellow\": [255, 255, 224],\r\n\t\"lime\": [0, 255, 0],\r\n\t\"limegreen\": [50, 205, 50],\r\n\t\"linen\": [250, 240, 230],\r\n\t\"magenta\": [255, 0, 255],\r\n\t\"maroon\": [128, 0, 0],\r\n\t\"mediumaquamarine\": [102, 205, 170],\r\n\t\"mediumblue\": [0, 0, 205],\r\n\t\"mediumorchid\": [186, 85, 211],\r\n\t\"mediumpurple\": [147, 112, 219],\r\n\t\"mediumseagreen\": [60, 179, 113],\r\n\t\"mediumslateblue\": [123, 104, 238],\r\n\t\"mediumspringgreen\": [0, 250, 154],\r\n\t\"mediumturquoise\": [72, 209, 204],\r\n\t\"mediumvioletred\": [199, 21, 133],\r\n\t\"midnightblue\": [25, 25, 112],\r\n\t\"mintcream\": [245, 255, 250],\r\n\t\"mistyrose\": [255, 228, 225],\r\n\t\"moccasin\": [255, 228, 181],\r\n\t\"navajowhite\": [255, 222, 173],\r\n\t\"navy\": [0, 0, 128],\r\n\t\"oldlace\": [253, 245, 230],\r\n\t\"olive\": [128, 128, 0],\r\n\t\"olivedrab\": [107, 142, 35],\r\n\t\"orange\": [255, 165, 0],\r\n\t\"orangered\": [255, 69, 0],\r\n\t\"orchid\": [218, 112, 214],\r\n\t\"palegoldenrod\": [238, 232, 170],\r\n\t\"palegreen\": [152, 251, 152],\r\n\t\"paleturquoise\": [175, 238, 238],\r\n\t\"palevioletred\": [219, 112, 147],\r\n\t\"papayawhip\": [255, 239, 213],\r\n\t\"peachpuff\": [255, 218, 185],\r\n\t\"peru\": [205, 133, 63],\r\n\t\"pink\": [255, 192, 203],\r\n\t\"plum\": [221, 160, 221],\r\n\t\"powderblue\": [176, 224, 230],\r\n\t\"purple\": [128, 0, 128],\r\n\t\"rebeccapurple\": [102, 51, 153],\r\n\t\"red\": [255, 0, 0],\r\n\t\"rosybrown\": [188, 143, 143],\r\n\t\"royalblue\": [65, 105, 225],\r\n\t\"saddlebrown\": [139, 69, 19],\r\n\t\"salmon\": [250, 128, 114],\r\n\t\"sandybrown\": [244, 164, 96],\r\n\t\"seagreen\": [46, 139, 87],\r\n\t\"seashell\": [255, 245, 238],\r\n\t\"sienna\": [160, 82, 45],\r\n\t\"silver\": [192, 192, 192],\r\n\t\"skyblue\": [135, 206, 235],\r\n\t\"slateblue\": [106, 90, 205],\r\n\t\"slategray\": [112, 128, 144],\r\n\t\"slategrey\": [112, 128, 144],\r\n\t\"snow\": [255, 250, 250],\r\n\t\"springgreen\": [0, 255, 127],\r\n\t\"steelblue\": [70, 130, 180],\r\n\t\"tan\": [210, 180, 140],\r\n\t\"teal\": [0, 128, 128],\r\n\t\"thistle\": [216, 191, 216],\r\n\t\"tomato\": [255, 99, 71],\r\n\t\"turquoise\": [64, 224, 208],\r\n\t\"violet\": [238, 130, 238],\r\n\t\"wheat\": [245, 222, 179],\r\n\t\"white\": [255, 255, 255],\r\n\t\"whitesmoke\": [245, 245, 245],\r\n\t\"yellow\": [255, 255, 0],\r\n\t\"yellowgreen\": [154, 205, 50]\r\n};\r\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.ck-textarea{overflow-x:hidden}`, \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-ui/components/textarea/textarea.css\"],\"names\":[],\"mappings\":\"AASA,aACC,iBACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n/*\\n * This fixes a problem in Firefox when the initial height of the complement does not match the number of rows.\\n * This bug is especially visible when rows=1.\\n */\\n.ck-textarea {\\n\\toverflow-x: hidden\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.ck.ck-text-alternative-form{display:flex;flex-direction:row;flex-wrap:nowrap}.ck.ck-text-alternative-form .ck-labeled-field-view{display:inline-block}.ck.ck-text-alternative-form .ck-label{display:none}@media screen and (max-width:600px){.ck.ck-text-alternative-form{flex-wrap:wrap}.ck.ck-text-alternative-form .ck-labeled-field-view{flex-basis:100%}.ck.ck-text-alternative-form .ck-button{flex-basis:50%}}`, \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@ckeditor/ckeditor5-image/theme/textalternativeform.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/mixins/_rwd.css\"],\"names\":[],\"mappings\":\"AAOA,6BACC,YAAa,CACb,kBAAmB,CACnB,gBAqBD,CAnBC,oDACC,oBACD,CAEA,uCACC,YACD,CCZA,oCDCD,6BAcE,cAUF,CARE,oDACC,eACD,CAEA,wCACC,cACD,CCrBD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n@import \\\"@ckeditor/ckeditor5-ui/theme/mixins/_rwd.css\\\";\\n\\n.ck.ck-text-alternative-form {\\n\\tdisplay: flex;\\n\\tflex-direction: row;\\n\\tflex-wrap: nowrap;\\n\\n\\t& .ck-labeled-field-view {\\n\\t\\tdisplay: inline-block;\\n\\t}\\n\\n\\t& .ck-label {\\n\\t\\tdisplay: none;\\n\\t}\\n\\n\\t@mixin ck-media-phone {\\n\\t\\tflex-wrap: wrap;\\n\\n\\t\\t& .ck-labeled-field-view {\\n\\t\\t\\tflex-basis: 100%;\\n\\t\\t}\\n\\n\\t\\t& .ck-button {\\n\\t\\t\\tflex-basis: 50%;\\n\\t\\t}\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n@define-mixin ck-media-phone {\\n\\t@media screen and (max-width: 600px) {\\n\\t\\t@mixin-content;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","const conversions = require('./conversions');\n\n/*\n\tThis function routes a model to all other models.\n\n\tall functions that are routed have a property `.conversion` attached\n\tto the returned synthetic function. This property is an array\n\tof strings, each with the steps in between the 'from' and 'to'\n\tcolor models (inclusive).\n\n\tconversions that are not possible simply are not included.\n*/\n\nfunction buildGraph() {\n\tconst graph = {};\n\t// https://jsperf.com/object-keys-vs-for-in-with-closure/3\n\tconst models = Object.keys(conversions);\n\n\tfor (let len = models.length, i = 0; i < len; i++) {\n\t\tgraph[models[i]] = {\n\t\t\t// http://jsperf.com/1-vs-infinity\n\t\t\t// micro-opt, but this is simple.\n\t\t\tdistance: -1,\n\t\t\tparent: null\n\t\t};\n\t}\n\n\treturn graph;\n}\n\n// https://en.wikipedia.org/wiki/Breadth-first_search\nfunction deriveBFS(fromModel) {\n\tconst graph = buildGraph();\n\tconst queue = [fromModel]; // Unshift -> queue -> pop\n\n\tgraph[fromModel].distance = 0;\n\n\twhile (queue.length) {\n\t\tconst current = queue.pop();\n\t\tconst adjacents = Object.keys(conversions[current]);\n\n\t\tfor (let len = adjacents.length, i = 0; i < len; i++) {\n\t\t\tconst adjacent = adjacents[i];\n\t\t\tconst node = graph[adjacent];\n\n\t\t\tif (node.distance === -1) {\n\t\t\t\tnode.distance = graph[current].distance + 1;\n\t\t\t\tnode.parent = current;\n\t\t\t\tqueue.unshift(adjacent);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn graph;\n}\n\nfunction link(from, to) {\n\treturn function (args) {\n\t\treturn to(from(args));\n\t};\n}\n\nfunction wrapConversion(toModel, graph) {\n\tconst path = [graph[toModel].parent, toModel];\n\tlet fn = conversions[graph[toModel].parent][toModel];\n\n\tlet cur = graph[toModel].parent;\n\twhile (graph[cur].parent) {\n\t\tpath.unshift(graph[cur].parent);\n\t\tfn = link(conversions[graph[cur].parent][cur], fn);\n\t\tcur = graph[cur].parent;\n\t}\n\n\tfn.conversion = path;\n\treturn fn;\n}\n\nmodule.exports = function (fromModel) {\n\tconst graph = deriveBFS(fromModel);\n\tconst conversion = {};\n\n\tconst models = Object.keys(graph);\n\tfor (let len = models.length, i = 0; i < len; i++) {\n\t\tconst toModel = models[i];\n\t\tconst node = graph[toModel];\n\n\t\tif (node.parent === null) {\n\t\t\t// No possible conversion, or this node is the source model.\n\t\t\tcontinue;\n\t\t}\n\n\t\tconversion[toModel] = wrapConversion(toModel, graph);\n\t}\n\n\treturn conversion;\n};\n\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.ck-content .image{clear:both;display:table;margin:.9em auto;min-width:50px;text-align:center}.ck-content .image img{display:block;height:auto;margin:0 auto;max-width:100%;min-width:100%}.ck-content .image-inline{align-items:flex-start;display:inline-flex;max-width:100%}.ck-content .image-inline picture{display:flex}.ck-content .image-inline img,.ck-content .image-inline picture{flex-grow:1;flex-shrink:1;max-width:100%}.ck.ck-editor__editable .image>figcaption.ck-placeholder:before{overflow:hidden;padding-left:inherit;padding-right:inherit;text-overflow:ellipsis;white-space:nowrap}.ck.ck-editor__editable .image{z-index:1}.ck.ck-editor__editable .image.ck-widget_selected{z-index:2}.ck.ck-editor__editable .image-inline{z-index:1}.ck.ck-editor__editable .image-inline.ck-widget_selected{z-index:2}.ck.ck-editor__editable .image-inline.ck-widget_selected ::selection{display:none}.ck.ck-editor__editable .image-inline img{height:auto}.ck.ck-editor__editable td .image-inline img,.ck.ck-editor__editable th .image-inline img{max-width:none}`, \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@ckeditor/ckeditor5-image/theme/image.css\"],\"names\":[],\"mappings\":\"AAMC,mBAEC,UAAW,CADX,aAAc,CAOd,gBAAkB,CAGlB,cAAe,CARf,iBA2BD,CAjBC,uBAEC,aAAc,CAad,WAAY,CAVZ,aAAc,CAGd,cAAe,CAGf,cAKD,CAGD,0BAYC,sBAAuB,CANvB,mBAAoB,CAGpB,cAoBD,CAdC,kCACC,YACD,CAGA,gEAGC,WAAY,CACZ,aAAc,CAGd,cACD,CAUD,gEASC,eAAgB,CARhB,oBAAqB,CACrB,qBAAsB,CAQtB,sBAAuB,CAFvB,kBAGD,CAKA,+BACC,SASD,CAHC,kDACC,SACD,CAMD,sCACC,SAkBD,CAZC,yDACC,SAUD,CAHC,qEACC,YACD,CAMF,0CACC,WACD,CAMC,0FACC,cACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n.ck-content {\\n\\t& .image {\\n\\t\\tdisplay: table;\\n\\t\\tclear: both;\\n\\t\\ttext-align: center;\\n\\n\\t\\t/* Make sure there is some space between the content and the image. Center image by default. */\\n\\t\\t/* The first value should be equal to --ck-spacing-large variable if used in the editor context\\n\\t \\tto avoid the content jumping (See https://github.com/ckeditor/ckeditor5/issues/9825). */\\n\\t\\tmargin: 0.9em auto;\\n\\n\\t\\t/* Make sure the caption will be displayed properly (See: https://github.com/ckeditor/ckeditor5/issues/1870). */\\n\\t\\tmin-width: 50px;\\n\\n\\t\\t& img {\\n\\t\\t\\t/* Prevent unnecessary margins caused by line-height (see #44). */\\n\\t\\t\\tdisplay: block;\\n\\n\\t\\t\\t/* Center the image if its width is smaller than the content's width. */\\n\\t\\t\\tmargin: 0 auto;\\n\\n\\t\\t\\t/* Make sure the image never exceeds the size of the parent container (ckeditor/ckeditor5-ui#67). */\\n\\t\\t\\tmax-width: 100%;\\n\\n\\t\\t\\t/* Make sure the image is never smaller than the parent container (See: https://github.com/ckeditor/ckeditor5/issues/9300). */\\n\\t\\t\\tmin-width: 100%;\\n\\n\\t\\t\\t/* Keep proportions of the block image if the height is set and the image is wider than the editor width.\\n\\t\\t\\tSee https://github.com/ckeditor/ckeditor5/issues/14542. */\\n\\t\\t\\theight: auto;\\n\\t\\t}\\n\\t}\\n\\n\\t& .image-inline {\\n\\t\\t/*\\n\\t\\t * Normally, the .image-inline would have \\\"display: inline-block\\\" and \\\"img { width: 100% }\\\" (to follow the wrapper while resizing).\\n\\t\\t * Unfortunately, together with \\\"srcset\\\", it gets automatically stretched up to the width of the editing root.\\n\\t\\t * This strange behavior does not happen with inline-flex.\\n\\t\\t */\\n\\t\\tdisplay: inline-flex;\\n\\n\\t\\t/* While being resized, don't allow the image to exceed the width of the editing root. */\\n\\t\\tmax-width: 100%;\\n\\n\\t\\t/* This is required by Safari to resize images in a sensible way. Without this, the browser breaks the ratio. */\\n\\t\\talign-items: flex-start;\\n\\n\\t\\t/* When the picture is present it must act as a flex container to let the img resize properly */\\n\\t\\t& picture {\\n\\t\\t\\tdisplay: flex;\\n\\t\\t}\\n\\n\\t\\t/* When the picture is present, it must act like a resizable img. */\\n\\t\\t& picture,\\n\\t\\t& img {\\n\\t\\t\\t/* This is necessary for the img to span the entire .image-inline wrapper and to resize properly. */\\n\\t\\t\\tflex-grow: 1;\\n\\t\\t\\tflex-shrink: 1;\\n\\n\\t\\t\\t/* Prevents overflowing the editing root boundaries when an inline image is very wide. */\\n\\t\\t\\tmax-width: 100%;\\n\\t\\t}\\n\\t}\\n}\\n\\n.ck.ck-editor__editable {\\n\\t/*\\n\\t * Inhertit the content styles padding of the
    in case the integration overrides `text-align: center`\\n\\t * of `.image` (e.g. to the left/right). This ensures the placeholder stays at the padding just like the native\\n\\t * caret does, and not at the edge of
    .\\n\\t */\\n\\t& .image > figcaption.ck-placeholder::before {\\n\\t\\tpadding-left: inherit;\\n\\t\\tpadding-right: inherit;\\n\\n\\t\\t/*\\n\\t\\t * Make sure the image caption placeholder doesn't overflow the placeholder area.\\n\\t\\t * See https://github.com/ckeditor/ckeditor5/issues/9162.\\n\\t\\t */\\n\\t\\twhite-space: nowrap;\\n\\t\\toverflow: hidden;\\n\\t\\ttext-overflow: ellipsis;\\n\\t}\\n\\n\\t/*\\n\\t * See https://github.com/ckeditor/ckeditor5/issues/15115.\\n\\t */\\n\\t& .image {\\n\\t\\tz-index: 1;\\n\\n\\t\\t/*\\n\\t\\t * Make sure the selected image always stays on top of its siblings.\\n\\t\\t * See https://github.com/ckeditor/ckeditor5/issues/9108.\\n\\t\\t */\\n\\t\\t&.ck-widget_selected {\\n\\t\\t\\tz-index: 2;\\n\\t\\t}\\n\\t}\\n\\n\\t/*\\n\\t * See https://github.com/ckeditor/ckeditor5/issues/15115.\\n\\t */\\n\\t& .image-inline {\\n\\t\\tz-index: 1;\\n\\n\\t\\t/*\\n\\t\\t * Make sure the selected inline image always stays on top of its siblings.\\n\\t\\t * See https://github.com/ckeditor/ckeditor5/issues/9108.\\n\\t\\t */\\n\\t\\t&.ck-widget_selected {\\n\\t\\t\\tz-index: 2;\\n\\n\\t\\t\\t/*\\n\\t\\t\\t * Make sure the native browser selection style is not displayed.\\n\\t\\t\\t * Inline image widgets have their own styles for the selected state and\\n\\t\\t\\t * leaving this up to the browser is asking for a visual collision.\\n\\t\\t\\t */\\n\\t\\t\\t& ::selection {\\n\\t\\t\\t\\tdisplay: none;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n\\t/* Keep proportions of the inline image if the height is set and the image is wider than the editor width.\\n\\tSee https://github.com/ckeditor/ckeditor5/issues/14542. */\\n\\t& .image-inline img {\\n\\t\\theight: auto;\\n\\t}\\n\\n\\t/* The inline image nested in the table should have its original size if not resized.\\n\\tSee https://github.com/ckeditor/ckeditor5/issues/9117. */\\n\\t& td,\\n\\t& th {\\n\\t\\t& .image-inline img {\\n\\t\\t\\tmax-width: none;\\n\\t\\t}\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.ck .ck-insert-table-dropdown__grid{display:flex;flex-direction:row;flex-wrap:wrap}:root{--ck-insert-table-dropdown-padding:10px;--ck-insert-table-dropdown-box-height:11px;--ck-insert-table-dropdown-box-width:12px;--ck-insert-table-dropdown-box-margin:1px}.ck .ck-insert-table-dropdown__grid{padding:var(--ck-insert-table-dropdown-padding) var(--ck-insert-table-dropdown-padding) 0;width:calc(var(--ck-insert-table-dropdown-box-width)*10 + var(--ck-insert-table-dropdown-box-margin)*20 + var(--ck-insert-table-dropdown-padding)*2)}.ck .ck-insert-table-dropdown__label,.ck[dir=rtl] .ck-insert-table-dropdown__label{text-align:center}.ck .ck-insert-table-dropdown-grid-box{border:1px solid var(--ck-color-base-border);border-radius:1px;margin:var(--ck-insert-table-dropdown-box-margin);min-height:var(--ck-insert-table-dropdown-box-height);min-width:var(--ck-insert-table-dropdown-box-width);outline:none;transition:none}@media (prefers-reduced-motion:reduce){.ck .ck-insert-table-dropdown-grid-box{transition:none}}.ck .ck-insert-table-dropdown-grid-box:focus{box-shadow:none}.ck .ck-insert-table-dropdown-grid-box.ck-on{background:var(--ck-color-focus-outer-shadow);border-color:var(--ck-color-focus-border)}`, \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@ckeditor/ckeditor5-table/theme/inserttable.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-table/inserttable.css\"],\"names\":[],\"mappings\":\"AAKA,oCACC,YAAa,CACb,kBAAmB,CACnB,cACD,CCJA,MACC,uCAAwC,CACxC,0CAA2C,CAC3C,yCAA0C,CAC1C,yCACD,CAEA,oCAGC,yFAA0F,CAD1F,oJAED,CAEA,mFAEC,iBACD,CAEA,uCAIC,4CAA6C,CAC7C,iBAAkB,CAFlB,iDAAkD,CADlD,qDAAsD,CADtD,mDAAoD,CAKpD,YAAa,CACb,eAcD,CAZC,uCATD,uCAUE,eAWF,CAVC,CAEA,6CACC,eACD,CAEA,6CAEC,6CAA8C,CAD9C,yCAED\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n.ck .ck-insert-table-dropdown__grid {\\n\\tdisplay: flex;\\n\\tflex-direction: row;\\n\\tflex-wrap: wrap;\\n}\\n\",\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n:root {\\n\\t--ck-insert-table-dropdown-padding: 10px;\\n\\t--ck-insert-table-dropdown-box-height: 11px;\\n\\t--ck-insert-table-dropdown-box-width: 12px;\\n\\t--ck-insert-table-dropdown-box-margin: 1px;\\n}\\n\\n.ck .ck-insert-table-dropdown__grid {\\n\\t/* The width of a container should match 10 items in a row so there will be a 10x10 grid. */\\n\\twidth: calc(var(--ck-insert-table-dropdown-box-width) * 10 + var(--ck-insert-table-dropdown-box-margin) * 20 + var(--ck-insert-table-dropdown-padding) * 2);\\n\\tpadding: var(--ck-insert-table-dropdown-padding) var(--ck-insert-table-dropdown-padding) 0;\\n}\\n\\n.ck .ck-insert-table-dropdown__label,\\n.ck[dir=rtl] .ck-insert-table-dropdown__label {\\n\\ttext-align: center;\\n}\\n\\n.ck .ck-insert-table-dropdown-grid-box {\\n\\tmin-width: var(--ck-insert-table-dropdown-box-width);\\n\\tmin-height: var(--ck-insert-table-dropdown-box-height);\\n\\tmargin: var(--ck-insert-table-dropdown-box-margin);\\n\\tborder: 1px solid var(--ck-color-base-border);\\n\\tborder-radius: 1px;\\n\\toutline: none;\\n\\ttransition: none;\\n\\n\\t@media (prefers-reduced-motion: reduce) {\\n\\t\\ttransition: none;\\n\\t}\\n\\n\\t&:focus {\\n\\t\\tbox-shadow: none;\\n\\t}\\n\\n\\t&.ck-on {\\n\\t\\tborder-color: var(--ck-color-focus-border);\\n\\t\\tbackground: var(--ck-color-focus-outer-shadow);\\n\\t}\\n}\\n\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:root{--ck-color-selector-focused-cell-background:rgba(158,201,250,.3)}.ck-widget.table td.ck-editor__nested-editable.ck-editor__nested-editable_focused,.ck-widget.table td.ck-editor__nested-editable:focus,.ck-widget.table th.ck-editor__nested-editable.ck-editor__nested-editable_focused,.ck-widget.table th.ck-editor__nested-editable:focus{background:var(--ck-color-selector-focused-cell-background);outline:1px solid var(--ck-color-focus-border);outline-offset:-1px}`, \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-table/tableediting.css\"],\"names\":[],\"mappings\":\"AAKA,MACC,gEACD,CAWE,8QAGC,2DAA4D,CAC5D,8CAA+C,CAC/C,mBACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n:root {\\n\\t--ck-color-selector-focused-cell-background: hsla(212, 90%, 80%, .3);\\n}\\n\\n.ck-widget.table {\\n\\t& td,\\n\\t& th {\\n\\t\\t/**\\n\\t\\t * While setting outline is fine, the border should not be modified here\\n\\t\\t * because it overrides the default table cell border color which is not expected.\\n\\t\\t * So do not use `@mixin ck-focus-ring;` here, or any other border styles.\\n\\t\\t * See more: https://github.com/ckeditor/ckeditor5/issues/16979\\n\\t\\t */\\n\\t\\t&.ck-editor__nested-editable.ck-editor__nested-editable_focused,\\n\\t\\t&.ck-editor__nested-editable:focus {\\n\\t\\t\\t/* A very slight background to highlight the focused cell */\\n\\t\\t\\tbackground: var(--ck-color-selector-focused-cell-background);\\n\\t\\t\\toutline: 1px solid var(--ck-color-focus-border);\\n\\t\\t\\toutline-offset: -1px; /* progressive enhancement - no IE support */\\n\\t\\t}\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.ck.ck-button,a.ck.ck-button{align-items:center;display:inline-flex;position:relative;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none}[dir=ltr] .ck.ck-button,[dir=ltr] a.ck.ck-button{justify-content:left}[dir=rtl] .ck.ck-button,[dir=rtl] a.ck.ck-button{justify-content:right}.ck.ck-button .ck-button__label,a.ck.ck-button .ck-button__label{display:none}.ck.ck-button.ck-button_with-text .ck-button__label,a.ck.ck-button.ck-button_with-text .ck-button__label{display:inline-block}.ck.ck-button:not(.ck-button_with-text),a.ck.ck-button:not(.ck-button_with-text){justify-content:center}.ck.ck-button,a.ck.ck-button{-webkit-appearance:none;background:var(--ck-color-button-default-background);border:1px solid transparent;border-radius:0;cursor:default;font-size:inherit;line-height:1;min-height:var(--ck-ui-component-min-height);min-width:var(--ck-ui-component-min-height);padding:var(--ck-spacing-tiny);text-align:center;transition:box-shadow .2s ease-in-out,border .2s ease-in-out;vertical-align:middle;white-space:nowrap}.ck.ck-button:not(.ck-disabled):hover,a.ck.ck-button:not(.ck-disabled):hover{background:var(--ck-color-button-default-hover-background)}.ck.ck-button:not(.ck-disabled):active,a.ck.ck-button:not(.ck-disabled):active{background:var(--ck-color-button-default-active-background)}.ck.ck-button.ck-disabled,a.ck.ck-button.ck-disabled{background:var(--ck-color-button-default-disabled-background)}.ck-rounded-corners .ck.ck-button,.ck-rounded-corners a.ck.ck-button,.ck.ck-button.ck-rounded-corners,a.ck.ck-button.ck-rounded-corners{border-radius:var(--ck-border-radius)}@media (prefers-reduced-motion:reduce){.ck.ck-button,a.ck.ck-button{transition:none}}.ck.ck-button:active,.ck.ck-button:focus,a.ck.ck-button:active,a.ck.ck-button:focus{border:var(--ck-focus-ring);box-shadow:var(--ck-focus-outer-shadow),0 0;outline:none}.ck.ck-button .ck-button__icon use,.ck.ck-button .ck-button__icon use *,a.ck.ck-button .ck-button__icon use,a.ck.ck-button .ck-button__icon use *{color:inherit}.ck.ck-button .ck-button__label,a.ck.ck-button .ck-button__label{color:inherit;cursor:inherit;font-size:inherit;font-weight:inherit;vertical-align:middle}[dir=ltr] .ck.ck-button .ck-button__label,[dir=ltr] a.ck.ck-button .ck-button__label{text-align:left}[dir=rtl] .ck.ck-button .ck-button__label,[dir=rtl] a.ck.ck-button .ck-button__label{text-align:right}.ck.ck-button .ck-button__keystroke,a.ck.ck-button .ck-button__keystroke{color:inherit;opacity:.5}[dir=ltr] .ck.ck-button .ck-button__keystroke,[dir=ltr] a.ck.ck-button .ck-button__keystroke{margin-left:var(--ck-spacing-large)}[dir=rtl] .ck.ck-button .ck-button__keystroke,[dir=rtl] a.ck.ck-button .ck-button__keystroke{margin-right:var(--ck-spacing-large)}.ck.ck-button.ck-disabled:active,.ck.ck-button.ck-disabled:focus,a.ck.ck-button.ck-disabled:active,a.ck.ck-button.ck-disabled:focus{box-shadow:var(--ck-focus-disabled-outer-shadow),0 0}.ck.ck-button.ck-disabled .ck-button__icon,.ck.ck-button.ck-disabled .ck-button__label,a.ck.ck-button.ck-disabled .ck-button__icon,a.ck.ck-button.ck-disabled .ck-button__label{opacity:var(--ck-disabled-opacity)}.ck.ck-button.ck-disabled .ck-button__keystroke,a.ck.ck-button.ck-disabled .ck-button__keystroke{opacity:.3}.ck.ck-button.ck-button_with-text,a.ck.ck-button.ck-button_with-text{padding:var(--ck-spacing-tiny) var(--ck-spacing-standard)}[dir=ltr] .ck.ck-button.ck-button_with-text .ck-button__icon,[dir=ltr] a.ck.ck-button.ck-button_with-text .ck-button__icon{margin-right:var(--ck-spacing-medium)}[dir=rtl] .ck.ck-button.ck-button_with-text .ck-button__icon,[dir=rtl] a.ck.ck-button.ck-button_with-text .ck-button__icon{margin-left:var(--ck-spacing-medium)}.ck.ck-button.ck-button_with-keystroke .ck-button__label,a.ck.ck-button.ck-button_with-keystroke .ck-button__label{flex-grow:1}.ck.ck-button.ck-on,a.ck.ck-button.ck-on{background:var(--ck-color-button-on-background);color:var(--ck-color-button-on-color)}.ck.ck-button.ck-on:not(.ck-disabled):hover,a.ck.ck-button.ck-on:not(.ck-disabled):hover{background:var(--ck-color-button-on-hover-background)}.ck.ck-button.ck-on:not(.ck-disabled):active,a.ck.ck-button.ck-on:not(.ck-disabled):active{background:var(--ck-color-button-on-active-background)}.ck.ck-button.ck-on.ck-disabled,a.ck.ck-button.ck-on.ck-disabled{background:var(--ck-color-button-on-disabled-background)}.ck.ck-button.ck-button-save,a.ck.ck-button.ck-button-save{color:var(--ck-color-button-save)}.ck.ck-button.ck-button-cancel,a.ck.ck-button.ck-button-cancel{color:var(--ck-color-button-cancel)}.ck.ck-button-action,a.ck.ck-button-action{background:var(--ck-color-button-action-background);color:var(--ck-color-button-action-text)}.ck.ck-button-action:not(.ck-disabled):hover,a.ck.ck-button-action:not(.ck-disabled):hover{background:var(--ck-color-button-action-hover-background)}.ck.ck-button-action:not(.ck-disabled):active,a.ck.ck-button-action:not(.ck-disabled):active{background:var(--ck-color-button-action-active-background)}.ck.ck-button-action.ck-disabled,a.ck.ck-button-action.ck-disabled{background:var(--ck-color-button-action-disabled-background)}.ck.ck-button-bold,a.ck.ck-button-bold{font-weight:700}`, \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/components/button/button.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/mixins/_unselectable.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/mixins/_dir.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-ui/components/button/button.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-ui/mixins/_button.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/mixins/_rounded.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/mixins/_focus.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/mixins/_shadow.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/mixins/_disabled.css\"],\"names\":[],\"mappings\":\"AAQA,6BAMC,kBAAmB,CADnB,mBAAoB,CADpB,iBAAkB,CCHlB,qBAAsB,CACtB,wBAAyB,CACzB,oBAAqB,CACrB,gBD0BD,CEhCC,iDFWC,oBETD,CAFA,iDFeC,qBEbD,CFgBA,iEACC,YACD,CAGC,yGACC,oBACD,CAID,iFACC,sBACD,CGzBD,6BA6BC,uBAAwB,CC7BxB,oDAAqC,CDuBrC,4BAA6B,CExB7B,eAAgB,CFOhB,cAAe,CAcf,iBAAkB,CAHlB,aAAc,CAJd,4CAA6C,CAD7C,2CAA4C,CAJ5C,8BAA+B,CAC/B,iBAAkB,CAiBlB,4DAA8D,CAnB9D,qBAAsB,CAFtB,kBAwID,CC1IE,6EACC,0DACD,CAEA,+EACC,2DACD,CAID,qDACC,6DACD,CCdA,wIAEC,qCAED,CF0BA,uCA/BD,6BAgCE,eA6GF,CA5GC,CAEA,oFGpCA,2BAA2B,CCF3B,2CAA8B,CDC9B,YHyCA,CAIC,kJAEC,aACD,CAGD,iEAIC,aAAc,CACd,cAAe,CAHf,iBAAkB,CAClB,mBAAoB,CAMpB,qBASD,CDzEA,qFCmEE,eDjEF,CAFA,qFCuEE,gBDrEF,CCyEA,yEACC,aAAc,CAUd,UACD,CDvFA,6FC+EE,mCD7EF,CAFA,6FCmFE,oCDjFF,CCyFC,oIIxFD,oDJ4FC,CAOA,gLKnGD,kCLqGC,CAEA,iGACC,UACD,CAGD,qEACC,yDAYD,CD5HA,2HCqHG,qCDnHH,CAFA,2HCyHG,oCDvHH,CC8HC,mHACC,WACD,CAID,yCChIA,+CAAqC,CDmIpC,qCACD,CCjIC,yFACC,qDACD,CAEA,2FACC,sDACD,CAID,iEACC,wDACD,CDuHA,2DACC,iCACD,CAEA,+DACC,mCACD,CAID,2CChJC,mDAAqC,CDoJrC,wCACD,CClJE,2FACC,yDACD,CAEA,6FACC,0DACD,CAID,mEACC,4DACD,CDwID,uCAEC,eACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n@import \\\"../../mixins/_unselectable.css\\\";\\n@import \\\"../../mixins/_dir.css\\\";\\n\\n.ck.ck-button,\\na.ck.ck-button {\\n\\t@mixin ck-unselectable;\\n\\n\\tposition: relative;\\n\\tdisplay: inline-flex;\\n\\talign-items: center;\\n\\n\\t@mixin ck-dir ltr {\\n\\t\\tjustify-content: left;\\n\\t}\\n\\n\\t@mixin ck-dir rtl {\\n\\t\\tjustify-content: right;\\n\\t}\\n\\n\\t& .ck-button__label {\\n\\t\\tdisplay: none;\\n\\t}\\n\\n\\t&.ck-button_with-text {\\n\\t\\t& .ck-button__label {\\n\\t\\t\\tdisplay: inline-block;\\n\\t\\t}\\n\\t}\\n\\n\\t/* Center the icon horizontally in a button without text. */\\n\\t&:not(.ck-button_with-text) {\\n\\t\\tjustify-content: center;\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n/**\\n * Makes element unselectable.\\n */\\n@define-mixin ck-unselectable {\\n\\t-moz-user-select: none;\\n\\t-webkit-user-select: none;\\n\\t-ms-user-select: none;\\n\\tuser-select: none\\n}\\n\",\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n@define-mixin ck-dir $direction {\\n\\t[dir=\\\"$(direction)\\\"] & {\\n\\t\\t@mixin-content;\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n@import \\\"../../../mixins/_focus.css\\\";\\n@import \\\"../../../mixins/_shadow.css\\\";\\n@import \\\"../../../mixins/_disabled.css\\\";\\n@import \\\"../../../mixins/_rounded.css\\\";\\n@import \\\"../../mixins/_button.css\\\";\\n@import \\\"@ckeditor/ckeditor5-ui/theme/mixins/_dir.css\\\";\\n\\n.ck.ck-button,\\na.ck.ck-button {\\n\\t@mixin ck-button-colors --ck-color-button-default;\\n\\t@mixin ck-rounded-corners;\\n\\n\\twhite-space: nowrap;\\n\\tcursor: default;\\n\\tvertical-align: middle;\\n\\tpadding: var(--ck-spacing-tiny);\\n\\ttext-align: center;\\n\\n\\t/* A very important piece of styling. Go to variable declaration to learn more. */\\n\\tmin-width: var(--ck-ui-component-min-height);\\n\\tmin-height: var(--ck-ui-component-min-height);\\n\\n\\t/* Normalize the height of the line. Removing this will break consistent height\\n\\tamong text and text-less buttons (with icons). */\\n\\tline-height: 1;\\n\\n\\t/* Enable font size inheritance, which allows fluid UI scaling. */\\n\\tfont-size: inherit;\\n\\n\\t/* Avoid flickering when the foucs border shows up. */\\n\\tborder: 1px solid transparent;\\n\\n\\t/* Apply some smooth transition to the box-shadow and border. */\\n\\ttransition: box-shadow .2s ease-in-out, border .2s ease-in-out;\\n\\n\\t/* https://github.com/ckeditor/ckeditor5-theme-lark/issues/189 */\\n\\t-webkit-appearance: none;\\n\\n\\t@media (prefers-reduced-motion: reduce) {\\n\\t\\ttransition: none;\\n\\t}\\n\\n\\t&:active,\\n\\t&:focus {\\n\\t\\t@mixin ck-focus-ring;\\n\\t\\t@mixin ck-box-shadow var(--ck-focus-outer-shadow);\\n\\t}\\n\\n\\t/* Allow icon coloring using the text \\\"color\\\" property. */\\n\\t& .ck-button__icon {\\n\\t\\t& use,\\n\\t\\t& use * {\\n\\t\\t\\tcolor: inherit;\\n\\t\\t}\\n\\t}\\n\\n\\t& .ck-button__label {\\n\\t\\t/* Enable font size inheritance, which allows fluid UI scaling. */\\n\\t\\tfont-size: inherit;\\n\\t\\tfont-weight: inherit;\\n\\t\\tcolor: inherit;\\n\\t\\tcursor: inherit;\\n\\n\\t\\t/* Must be consistent with .ck-icon's vertical align. Otherwise, buttons with and\\n\\t\\twithout labels (but with icons) have different sizes in Chrome */\\n\\t\\tvertical-align: middle;\\n\\n\\t\\t@mixin ck-dir ltr {\\n\\t\\t\\ttext-align: left;\\n\\t\\t}\\n\\n\\t\\t@mixin ck-dir rtl {\\n\\t\\t\\ttext-align: right;\\n\\t\\t}\\n\\t}\\n\\n\\t& .ck-button__keystroke {\\n\\t\\tcolor: inherit;\\n\\n\\t\\t@mixin ck-dir ltr {\\n\\t\\t\\tmargin-left: var(--ck-spacing-large);\\n\\t\\t}\\n\\n\\t\\t@mixin ck-dir rtl {\\n\\t\\t\\tmargin-right: var(--ck-spacing-large);\\n\\t\\t}\\n\\n\\t\\topacity: .5;\\n\\t}\\n\\n\\t/* https://github.com/ckeditor/ckeditor5-theme-lark/issues/70 */\\n\\t&.ck-disabled {\\n\\t\\t&:active,\\n\\t\\t&:focus {\\n\\t\\t\\t/* The disabled button should have a slightly less visible shadow when focused. */\\n\\t\\t\\t@mixin ck-box-shadow var(--ck-focus-disabled-outer-shadow);\\n\\t\\t}\\n\\n\\t\\t& .ck-button__icon {\\n\\t\\t\\t@mixin ck-disabled;\\n\\t\\t}\\n\\n\\t\\t/* https://github.com/ckeditor/ckeditor5-theme-lark/issues/98 */\\n\\t\\t& .ck-button__label {\\n\\t\\t\\t@mixin ck-disabled;\\n\\t\\t}\\n\\n\\t\\t& .ck-button__keystroke {\\n\\t\\t\\topacity: .3;\\n\\t\\t}\\n\\t}\\n\\n\\t&.ck-button_with-text {\\n\\t\\tpadding: var(--ck-spacing-tiny) var(--ck-spacing-standard);\\n\\n\\t\\t/* stylelint-disable-next-line no-descending-specificity */\\n\\t\\t& .ck-button__icon {\\n\\t\\t\\t@mixin ck-dir ltr {\\n\\t\\t\\t\\tmargin-right: var(--ck-spacing-medium);\\n\\t\\t\\t}\\n\\n\\t\\t\\t@mixin ck-dir rtl {\\n\\t\\t\\t\\tmargin-left: var(--ck-spacing-medium);\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n\\t&.ck-button_with-keystroke {\\n\\t\\t/* stylelint-disable-next-line no-descending-specificity */\\n\\t\\t& .ck-button__label {\\n\\t\\t\\tflex-grow: 1;\\n\\t\\t}\\n\\t}\\n\\n\\t/* A style of the button which is currently on, e.g. its feature is active. */\\n\\t&.ck-on {\\n\\t\\t@mixin ck-button-colors --ck-color-button-on;\\n\\n\\t\\tcolor: var(--ck-color-button-on-color);\\n\\t}\\n\\n\\t&.ck-button-save {\\n\\t\\tcolor: var(--ck-color-button-save);\\n\\t}\\n\\n\\t&.ck-button-cancel {\\n\\t\\tcolor: var(--ck-color-button-cancel);\\n\\t}\\n}\\n\\n/* A style of the button which handles the primary action. */\\n.ck.ck-button-action,\\na.ck.ck-button-action {\\n\\t@mixin ck-button-colors --ck-color-button-action;\\n\\n\\tcolor: var(--ck-color-button-action-text);\\n}\\n\\n.ck.ck-button-bold,\\na.ck.ck-button-bold {\\n\\tfont-weight: bold;\\n}\\n\",\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n/**\\n * Implements a button of given background color.\\n *\\n * @param {String} $background - Background color of the button.\\n * @param {String} $border - Border color of the button.\\n */\\n@define-mixin ck-button-colors $prefix {\\n\\tbackground: var($(prefix)-background);\\n\\n\\t&:not(.ck-disabled) {\\n\\t\\t&:hover {\\n\\t\\t\\tbackground: var($(prefix)-hover-background);\\n\\t\\t}\\n\\n\\t\\t&:active {\\n\\t\\t\\tbackground: var($(prefix)-active-background);\\n\\t\\t}\\n\\t}\\n\\n\\t/* https://github.com/ckeditor/ckeditor5-theme-lark/issues/98 */\\n\\t&.ck-disabled {\\n\\t\\tbackground: var($(prefix)-disabled-background);\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n/**\\n * Implements rounded corner interface for .ck-rounded-corners class.\\n *\\n * @see $ck-border-radius\\n */\\n@define-mixin ck-rounded-corners {\\n\\tborder-radius: 0;\\n\\n\\t.ck-rounded-corners &,\\n\\t&.ck-rounded-corners {\\n\\t\\tborder-radius: var(--ck-border-radius);\\n\\t\\t@mixin-content;\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n/**\\n * A visual style of focused element's border.\\n */\\n@define-mixin ck-focus-ring {\\n\\t/* Disable native outline. */\\n\\toutline: none;\\n\\tborder: var(--ck-focus-ring)\\n}\\n\",\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n/**\\n * A helper to combine multiple shadows.\\n */\\n@define-mixin ck-box-shadow $shadowA, $shadowB: 0 0 {\\n\\tbox-shadow: $shadowA, $shadowB;\\n}\\n\\n/**\\n * Gives an element a drop shadow so it looks like a floating panel.\\n */\\n@define-mixin ck-drop-shadow {\\n\\t@mixin ck-box-shadow var(--ck-drop-shadow);\\n}\\n\",\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n/**\\n * A class which indicates that an element holding it is disabled.\\n */\\n@define-mixin ck-disabled {\\n\\topacity: var(--ck-disabled-opacity);\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.ck-content code{background-color:hsla(0,0%,78%,.3);border-radius:2px;padding:.15em}.ck.ck-editor__editable .ck-code_selected{background-color:hsla(0,0%,78%,.5)}`, \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@ckeditor/ckeditor5-basic-styles/theme/code.css\"],\"names\":[],\"mappings\":\"AAKA,iBACC,kCAAuC,CAEvC,iBAAkB,CADlB,aAED,CAEA,0CACC,kCACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n.ck-content code {\\n\\tbackground-color: hsla(0, 0%, 78%, 0.3);\\n\\tpadding: .15em;\\n\\tborder-radius: 2px;\\n}\\n\\n.ck.ck-editor__editable .ck-code_selected {\\n\\tbackground-color: hsla(0, 0%, 78%, 0.5);\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.ck.ck-editor__editable .ck.ck-clipboard-drop-target-position{display:inline;pointer-events:none;position:relative}.ck.ck-editor__editable .ck.ck-clipboard-drop-target-position span{position:absolute;width:0}.ck.ck-editor__editable .ck-widget:-webkit-drag>.ck-widget__selection-handle,.ck.ck-editor__editable .ck-widget:-webkit-drag>.ck-widget__type-around{display:none}.ck.ck-clipboard-drop-target-line{pointer-events:none;position:absolute}:root{--ck-clipboard-drop-target-dot-width:12px;--ck-clipboard-drop-target-dot-height:8px;--ck-clipboard-drop-target-color:var(--ck-color-focus-border)}.ck.ck-editor__editable .ck.ck-clipboard-drop-target-position span{background:var(--ck-clipboard-drop-target-color);border:1px solid var(--ck-clipboard-drop-target-color);bottom:calc(var(--ck-clipboard-drop-target-dot-height)*-.5);margin-left:-1px;top:calc(var(--ck-clipboard-drop-target-dot-height)*-.5)}.ck.ck-editor__editable .ck.ck-clipboard-drop-target-position span:after{border-color:var(--ck-clipboard-drop-target-color) transparent transparent transparent;border-style:solid;border-width:calc(var(--ck-clipboard-drop-target-dot-height)) calc(var(--ck-clipboard-drop-target-dot-width)*.5) 0 calc(var(--ck-clipboard-drop-target-dot-width)*.5);content:\"\";display:block;height:0;left:50%;position:absolute;top:calc(var(--ck-clipboard-drop-target-dot-height)*-.5);transform:translateX(-50%);width:0}.ck.ck-editor__editable .ck-widget.ck-clipboard-drop-target-range{outline:var(--ck-widget-outline-thickness) solid var(--ck-clipboard-drop-target-color)!important}.ck.ck-editor__editable .ck-widget:-webkit-drag{zoom:.6;outline:none!important}.ck.ck-clipboard-drop-target-line{background:var(--ck-clipboard-drop-target-color);border:1px solid var(--ck-clipboard-drop-target-color);height:0;margin-top:-1px}.ck.ck-clipboard-drop-target-line:before{border-style:solid;content:\"\";height:0;position:absolute;top:calc(var(--ck-clipboard-drop-target-dot-width)*-.5);width:0}[dir=ltr] .ck.ck-clipboard-drop-target-line:before{border-color:transparent transparent transparent var(--ck-clipboard-drop-target-color);border-width:calc(var(--ck-clipboard-drop-target-dot-width)*.5) 0 calc(var(--ck-clipboard-drop-target-dot-width)*.5) var(--ck-clipboard-drop-target-dot-height);left:-1px}[dir=rtl] .ck.ck-clipboard-drop-target-line:before{border-color:transparent var(--ck-clipboard-drop-target-color) transparent transparent;border-width:calc(var(--ck-clipboard-drop-target-dot-width)*.5) var(--ck-clipboard-drop-target-dot-height) calc(var(--ck-clipboard-drop-target-dot-width)*.5) 0;right:-1px}`, \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@ckeditor/ckeditor5-clipboard/theme/clipboard.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-clipboard/clipboard.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/mixins/_dir.css\"],\"names\":[],\"mappings\":\"AASC,8DACC,cAAe,CAEf,mBAAoB,CADpB,iBAOD,CAJC,mEACC,iBAAkB,CAClB,OACD,CAWA,qJACC,YACD,CAIF,kCAEC,mBAAoB,CADpB,iBAED,CC9BA,MACC,yCAA0C,CAC1C,yCAA0C,CAC1C,6DACD,CAOE,mEAIC,gDAAiD,CADjD,sDAAuD,CAFvD,2DAA8D,CAI9D,gBAAiB,CAHjB,wDAqBD,CAfC,yEAWC,sFAAuF,CAEvF,kBAAmB,CADnB,qKAA0K,CAX1K,UAAW,CAIX,aAAc,CAFd,QAAS,CAIT,QAAS,CADT,iBAAkB,CAElB,wDAA2D,CAE3D,0BAA2B,CAR3B,OAYD,CAOF,kEACC,gGACD,CAKA,gDACC,OAAS,CACT,sBACD,CAGD,kCAGC,gDAAiD,CADjD,sDAAuD,CADvD,QAAS,CAGT,eAwBD,CAtBC,yCAMC,kBAAmB,CALnB,UAAW,CAIX,QAAS,CAHT,iBAAkB,CAClB,uDAA0D,CAC1D,OAiBD,CCjFA,mDDwEE,sFAAuF,CADvF,+JAAoK,CAFpK,SCnEF,CAFA,mDD+EE,sFAAuF,CADvF,+JAAmK,CAFnK,UC1EF\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n.ck.ck-editor__editable {\\n\\t/*\\n\\t * Vertical drop target (in text).\\n\\t */\\n\\t& .ck.ck-clipboard-drop-target-position {\\n\\t\\tdisplay: inline;\\n\\t\\tposition: relative;\\n\\t\\tpointer-events: none;\\n\\n\\t\\t& span {\\n\\t\\t\\tposition: absolute;\\n\\t\\t\\twidth: 0;\\n\\t\\t}\\n\\t}\\n\\n\\t/*\\n\\t * Styles of the widget being dragged (its preview).\\n\\t */\\n\\t& .ck-widget:-webkit-drag {\\n\\t\\t& > .ck-widget__selection-handle {\\n\\t\\t\\tdisplay: none;\\n\\t\\t}\\n\\n\\t\\t& > .ck-widget__type-around {\\n\\t\\t\\tdisplay: none;\\n\\t\\t}\\n\\t}\\n}\\n\\n.ck.ck-clipboard-drop-target-line {\\n\\tposition: absolute;\\n\\tpointer-events: none;\\n}\\n\",\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n@import \\\"@ckeditor/ckeditor5-ui/theme/mixins/_dir.css\\\";\\n\\n:root {\\n\\t--ck-clipboard-drop-target-dot-width: 12px;\\n\\t--ck-clipboard-drop-target-dot-height: 8px;\\n\\t--ck-clipboard-drop-target-color: var(--ck-color-focus-border);\\n}\\n\\n.ck.ck-editor__editable {\\n\\t/*\\n\\t * Vertical drop target (in text).\\n\\t */\\n\\t& .ck.ck-clipboard-drop-target-position {\\n\\t\\t& span {\\n\\t\\t\\tbottom: calc(-.5 * var(--ck-clipboard-drop-target-dot-height));\\n\\t\\t\\ttop: calc(-.5 * var(--ck-clipboard-drop-target-dot-height));\\n\\t\\t\\tborder: 1px solid var(--ck-clipboard-drop-target-color);\\n\\t\\t\\tbackground: var(--ck-clipboard-drop-target-color);\\n\\t\\t\\tmargin-left: -1px;\\n\\n\\t\\t\\t/* The triangle above the marker */\\n\\t\\t\\t&::after {\\n\\t\\t\\t\\tcontent: '';\\n\\t\\t\\t\\twidth: 0;\\n\\t\\t\\t\\theight: 0;\\n\\n\\t\\t\\t\\tdisplay: block;\\n\\t\\t\\t\\tposition: absolute;\\n\\t\\t\\t\\tleft: 50%;\\n\\t\\t\\t\\ttop: calc(-.5 * var(--ck-clipboard-drop-target-dot-height));\\n\\n\\t\\t\\t\\ttransform: translateX(-50%);\\n\\t\\t\\t\\tborder-color: var(--ck-clipboard-drop-target-color) transparent transparent transparent;\\n\\t\\t\\t\\tborder-width: calc(var(--ck-clipboard-drop-target-dot-height)) calc(.5 * var(--ck-clipboard-drop-target-dot-width)) 0 calc(.5 * var(--ck-clipboard-drop-target-dot-width));\\n\\t\\t\\t\\tborder-style: solid;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n\\t/*\\n\\t * Styles of the widget that it a drop target.\\n\\t */\\n\\t& .ck-widget.ck-clipboard-drop-target-range {\\n\\t\\toutline: var(--ck-widget-outline-thickness) solid var(--ck-clipboard-drop-target-color) !important;\\n\\t}\\n\\n\\t/*\\n\\t * Styles of the widget being dragged (its preview).\\n\\t */\\n\\t& .ck-widget:-webkit-drag {\\n\\t\\tzoom: 0.6;\\n\\t\\toutline: none !important;\\n\\t}\\n}\\n\\n.ck.ck-clipboard-drop-target-line {\\n\\theight: 0;\\n\\tborder: 1px solid var(--ck-clipboard-drop-target-color);\\n\\tbackground: var(--ck-clipboard-drop-target-color);\\n\\tmargin-top: -1px;\\n\\n\\t&::before {\\n\\t\\tcontent: '';\\n\\t\\tposition: absolute;\\n\\t\\ttop: calc(-.5 * var(--ck-clipboard-drop-target-dot-width));\\n\\t\\twidth: 0;\\n\\t\\theight: 0;\\n\\t\\tborder-style: solid;\\n\\n\\t\\t@mixin ck-dir ltr {\\n\\t\\t\\tleft: -1px;\\n\\n\\t\\t\\tborder-width: calc(.5 * var(--ck-clipboard-drop-target-dot-width)) 0 calc(.5 * var(--ck-clipboard-drop-target-dot-width)) var(--ck-clipboard-drop-target-dot-height);\\n\\t\\t\\tborder-color: transparent transparent transparent var(--ck-clipboard-drop-target-color);\\n\\t\\t}\\n\\n\\t\\t@mixin ck-dir rtl {\\n\\t\\t\\tright: -1px;\\n\\n\\t\\t\\tborder-width:calc(.5 * var(--ck-clipboard-drop-target-dot-width)) var(--ck-clipboard-drop-target-dot-height) calc(.5 * var(--ck-clipboard-drop-target-dot-width)) 0;\\n\\t\\t\\tborder-color: transparent var(--ck-clipboard-drop-target-color) transparent transparent;\\n\\t\\t}\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n@define-mixin ck-dir $direction {\\n\\t[dir=\\\"$(direction)\\\"] & {\\n\\t\\t@mixin-content;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Markdown-it plugin to render GitHub-style task lists; see\n//\n// https://github.com/blog/1375-task-lists-in-gfm-issues-pulls-comments\n// https://github.com/blog/1825-task-lists-in-all-markdown-documents\n\nvar disableCheckboxes = true;\nvar useLabelWrapper = false;\nvar useLabelAfter = false;\n\nmodule.exports = function(md, options) {\n\tif (options) {\n\t\tdisableCheckboxes = !options.enabled;\n\t\tuseLabelWrapper = !!options.label;\n\t\tuseLabelAfter = !!options.labelAfter;\n\t}\n\n\tmd.core.ruler.after('inline', 'github-task-lists', function(state) {\n\t\tvar tokens = state.tokens;\n\t\tfor (var i = 2; i < tokens.length; i++) {\n\t\t\tif (isTodoItem(tokens, i)) {\n\t\t\t\ttodoify(tokens[i], state.Token);\n\t\t\t\tattrSet(tokens[i-2], 'class', 'task-list-item' + (!disableCheckboxes ? ' enabled' : ''));\n\t\t\t\tattrSet(tokens[parentToken(tokens, i-2)], 'class', 'contains-task-list');\n\t\t\t}\n\t\t}\n\t});\n};\n\nfunction attrSet(token, name, value) {\n\tvar index = token.attrIndex(name);\n\tvar attr = [name, value];\n\n\tif (index < 0) {\n\t\ttoken.attrPush(attr);\n\t} else {\n\t\ttoken.attrs[index] = attr;\n\t}\n}\n\nfunction parentToken(tokens, index) {\n\tvar targetLevel = tokens[index].level - 1;\n\tfor (var i = index - 1; i >= 0; i--) {\n\t\tif (tokens[i].level === targetLevel) {\n\t\t\treturn i;\n\t\t}\n\t}\n\treturn -1;\n}\n\nfunction isTodoItem(tokens, index) {\n\treturn isInline(tokens[index]) &&\n\t isParagraph(tokens[index - 1]) &&\n\t isListItem(tokens[index - 2]) &&\n\t startsWithTodoMarkdown(tokens[index]);\n}\n\nfunction todoify(token, TokenConstructor) {\n\ttoken.children.unshift(makeCheckbox(token, TokenConstructor));\n\ttoken.children[1].content = token.children[1].content.slice(3);\n\ttoken.content = token.content.slice(3);\n\n\tif (useLabelWrapper) {\n\t\tif (useLabelAfter) {\n\t\t\ttoken.children.pop();\n\n\t\t\t// Use large random number as id property of the checkbox.\n\t\t\tvar id = 'task-item-' + Math.ceil(Math.random() * (10000 * 1000) - 1000);\n\t\t\ttoken.children[0].content = token.children[0].content.slice(0, -1) + ' id=\"' + id + '\">';\n\t\t\ttoken.children.push(afterLabel(token.content, id, TokenConstructor));\n\t\t} else {\n\t\t\ttoken.children.unshift(beginLabel(TokenConstructor));\n\t\t\ttoken.children.push(endLabel(TokenConstructor));\n\t\t}\n\t}\n}\n\nfunction makeCheckbox(token, TokenConstructor) {\n\tvar checkbox = new TokenConstructor('html_inline', '', 0);\n\tvar disabledAttr = disableCheckboxes ? ' disabled=\"\" ' : '';\n\tif (token.content.indexOf('[ ] ') === 0) {\n\t\tcheckbox.content = '';\n\t} else if (token.content.indexOf('[x] ') === 0 || token.content.indexOf('[X] ') === 0) {\n\t\tcheckbox.content = '';\n\t}\n\treturn checkbox;\n}\n\n// these next two functions are kind of hacky; probably should really be a\n// true block-level token with .tag=='label'\nfunction beginLabel(TokenConstructor) {\n\tvar token = new TokenConstructor('html_inline', '', 0);\n\ttoken.content = '';\n\treturn token;\n}\n\nfunction afterLabel(content, id, TokenConstructor) {\n\tvar token = new TokenConstructor('html_inline', '', 0);\n\ttoken.content = '';\n\ttoken.attrs = [{for: id}];\n\treturn token;\n}\n\nfunction isInline(token) { return token.type === 'inline'; }\nfunction isParagraph(token) { return token.type === 'paragraph_open'; }\nfunction isListItem(token) { return token.type === 'list_item_open'; }\n\nfunction startsWithTodoMarkdown(token) {\n\t// leading whitespace in a list item is already trimmed off by markdown-it\n\treturn token.content.indexOf('[ ] ') === 0 || token.content.indexOf('[x] ') === 0 || token.content.indexOf('[X] ') === 0;\n}\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:root{--ck-accessibility-help-dialog-max-width:600px;--ck-accessibility-help-dialog-max-height:400px;--ck-accessibility-help-dialog-border-color:#ccced1;--ck-accessibility-help-dialog-code-background-color:#ededed;--ck-accessibility-help-dialog-kbd-shadow-color:#9c9c9c}.ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content{border:1px solid transparent;max-height:var(--ck-accessibility-help-dialog-max-height);max-width:var(--ck-accessibility-help-dialog-max-width);overflow:auto;padding:var(--ck-spacing-large);user-select:text}.ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content:focus{border:var(--ck-focus-ring);box-shadow:var(--ck-focus-outer-shadow),0 0;outline:none}.ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content *{white-space:normal}.ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content .ck-label{display:none}.ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content h3{font-size:1.2em;font-weight:700}.ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content h4{font-size:1em;font-weight:700}.ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content h3,.ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content h4,.ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content p,.ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content table{margin:1em 0}.ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content dl{border-bottom:none;border-top:1px solid var(--ck-accessibility-help-dialog-border-color);display:grid;grid-template-columns:2fr 1fr}.ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content dl dd,.ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content dl dt{border-bottom:1px solid var(--ck-accessibility-help-dialog-border-color);padding:.4em 0}.ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content dl dt{grid-column-start:1}.ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content dl dd{grid-column-start:2;text-align:right}.ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content code,.ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content kbd{background:var(--ck-accessibility-help-dialog-code-background-color);border-radius:2px;display:inline-block;font-size:.9em;line-height:1;padding:.4em;text-align:center;vertical-align:middle}.ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content code{font-family:monospace}.ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content kbd{box-shadow:0 1px 1px var(--ck-accessibility-help-dialog-kbd-shadow-color);margin:0 1px;min-width:1.8em}.ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content kbd+kbd{margin-left:2px}`, \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-ui/components/editorui/accessibilityhelp.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/mixins/_focus.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/mixins/_shadow.css\"],\"names\":[],\"mappings\":\"AAQA,MACC,8CAA+C,CAC/C,+CAAgD,CAChD,mDAA8D,CAC9D,4DAAyE,CACzE,uDACD,CAEA,wEAOC,4BAA6B,CAJ7B,yDAA0D,CAD1D,uDAAwD,CAExD,aAAc,CAHd,+BAAgC,CAIhC,gBAgFD,CA5EC,8ECdA,2BAA2B,CCF3B,2CAA8B,CDC9B,YDkBA,CAEA,0EACC,kBACD,CAGA,kFACC,YACD,CAEA,2EAEC,eAAgB,CADhB,eAED,CAEA,2EAEC,aAAc,CADd,eAED,CAEA,8SAIC,YACD,CAEA,2EAIC,kBAAmB,CADnB,qEAAsE,CAFtE,YAAa,CACb,6BAiBD,CAbC,4JACC,wEAAyE,CACzE,cACD,CAEA,8EACC,mBACD,CAEA,8EACC,mBAAoB,CACpB,gBACD,CAGD,yJAEC,oEAAqE,CAIrE,iBAAkB,CALlB,oBAAqB,CAOrB,cAAe,CAHf,aAAc,CAFd,YAAa,CAIb,iBAAkB,CAHlB,qBAKD,CAEA,6EACC,qBACD,CAEA,4EAEC,yEAA4E,CAC5E,YAAa,CAFb,eAOD,CAHC,gFACC,eACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n@import \\\"../../../mixins/_focus.css\\\";\\n@import \\\"../../../mixins/_shadow.css\\\";\\n\\n:root {\\n\\t--ck-accessibility-help-dialog-max-width: 600px;\\n\\t--ck-accessibility-help-dialog-max-height: 400px;\\n\\t--ck-accessibility-help-dialog-border-color: hsl(220, 6%, 81%);\\n\\t--ck-accessibility-help-dialog-code-background-color: hsl(0deg 0% 92.94%);\\n\\t--ck-accessibility-help-dialog-kbd-shadow-color: hsl(0deg 0% 61%);\\n}\\n\\n.ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content {\\n\\tpadding: var(--ck-spacing-large);\\n\\tmax-width: var(--ck-accessibility-help-dialog-max-width);\\n\\tmax-height: var(--ck-accessibility-help-dialog-max-height);\\n\\toverflow: auto;\\n\\tuser-select: text;\\n\\n\\tborder: 1px solid transparent;\\n\\n\\t&:focus {\\n\\t\\t@mixin ck-focus-ring;\\n\\t\\t@mixin ck-box-shadow var(--ck-focus-outer-shadow);\\n\\t}\\n\\n\\t* {\\n\\t\\twhite-space: normal;\\n\\t}\\n\\n\\t/* Hide the main label of the content container. */\\n\\t& .ck-label {\\n\\t\\tdisplay: none;\\n\\t}\\n\\n\\t& h3 {\\n\\t\\tfont-weight: bold;\\n\\t\\tfont-size: 1.2em;\\n\\t}\\n\\n\\t& h4 {\\n\\t\\tfont-weight: bold;\\n\\t\\tfont-size: 1em;\\n\\t}\\n\\n\\t& p,\\n\\t& h3,\\n\\t& h4,\\n\\t& table {\\n\\t\\tmargin: 1em 0;\\n\\t}\\n\\n\\t& dl {\\n\\t\\tdisplay: grid;\\n\\t\\tgrid-template-columns: 2fr 1fr;\\n\\t\\tborder-top: 1px solid var(--ck-accessibility-help-dialog-border-color);\\n\\t\\tborder-bottom: none;\\n\\n\\t\\t& dt, & dd {\\n\\t\\t\\tborder-bottom: 1px solid var(--ck-accessibility-help-dialog-border-color);\\n\\t\\t\\tpadding: .4em 0;\\n\\t\\t}\\n\\n\\t\\t& dt {\\n\\t\\t\\tgrid-column-start: 1;\\n\\t\\t}\\n\\n\\t\\t& dd {\\n\\t\\t\\tgrid-column-start: 2;\\n\\t\\t\\ttext-align: right;\\n\\t\\t}\\n\\t}\\n\\n\\t& kbd, & code {\\n\\t\\tdisplay: inline-block;\\n\\t\\tbackground: var(--ck-accessibility-help-dialog-code-background-color);\\n\\t\\tpadding: .4em;\\n\\t\\tvertical-align: middle;\\n\\t\\tline-height: 1;\\n\\t\\tborder-radius: 2px;\\n\\t\\ttext-align: center;\\n\\t\\tfont-size: .9em;\\n\\t}\\n\\n\\t& code {\\n\\t\\tfont-family: monospace;\\n\\t}\\n\\n\\t& kbd {\\n\\t\\tmin-width: 1.8em;\\n\\t\\tbox-shadow: 0px 1px 1px var(--ck-accessibility-help-dialog-kbd-shadow-color);\\n\\t\\tmargin: 0 1px;\\n\\n\\t\\t& + kbd {\\n\\t\\t\\tmargin-left: 2px;\\n\\t\\t}\\n\\t}\\n}\\n\\n\",\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n/**\\n * A visual style of focused element's border.\\n */\\n@define-mixin ck-focus-ring {\\n\\t/* Disable native outline. */\\n\\toutline: none;\\n\\tborder: var(--ck-focus-ring)\\n}\\n\",\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n/**\\n * A helper to combine multiple shadows.\\n */\\n@define-mixin ck-box-shadow $shadowA, $shadowB: 0 0 {\\n\\tbox-shadow: $shadowA, $shadowB;\\n}\\n\\n/**\\n * Gives an element a drop shadow so it looks like a floating panel.\\n */\\n@define-mixin ck-drop-shadow {\\n\\t@mixin ck-box-shadow var(--ck-drop-shadow);\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.ck.ck-button.ck-switchbutton .ck-button__toggle,.ck.ck-button.ck-switchbutton .ck-button__toggle .ck-button__toggle__inner{display:block}:root{--ck-switch-button-toggle-width:2.6153846154em;--ck-switch-button-toggle-inner-size:calc(1.07692em + 1px);--ck-switch-button-translation:calc(var(--ck-switch-button-toggle-width) - var(--ck-switch-button-toggle-inner-size) - 2px);--ck-switch-button-inner-hover-shadow:0 0 0 5px var(--ck-color-switch-button-inner-shadow)}.ck.ck-button.ck-switchbutton,.ck.ck-button.ck-switchbutton.ck-on:active,.ck.ck-button.ck-switchbutton.ck-on:focus,.ck.ck-button.ck-switchbutton.ck-on:hover,.ck.ck-button.ck-switchbutton:active,.ck.ck-button.ck-switchbutton:focus,.ck.ck-button.ck-switchbutton:hover{background:transparent;color:inherit}[dir=ltr] .ck.ck-button.ck-switchbutton .ck-button__label{margin-right:calc(var(--ck-spacing-large)*2)}[dir=rtl] .ck.ck-button.ck-switchbutton .ck-button__label{margin-left:calc(var(--ck-spacing-large)*2)}.ck.ck-button.ck-switchbutton .ck-button__toggle{background:var(--ck-color-switch-button-off-background);border:1px solid transparent;border-radius:0;transition:background .4s ease,box-shadow .2s ease-in-out,outline .2s ease-in-out;width:var(--ck-switch-button-toggle-width)}.ck-rounded-corners .ck.ck-button.ck-switchbutton .ck-button__toggle,.ck.ck-button.ck-switchbutton .ck-button__toggle.ck-rounded-corners{border-radius:var(--ck-border-radius)}[dir=ltr] .ck.ck-button.ck-switchbutton .ck-button__toggle{margin-left:auto}[dir=rtl] .ck.ck-button.ck-switchbutton .ck-button__toggle{margin-right:auto}.ck.ck-button.ck-switchbutton .ck-button__toggle .ck-button__toggle__inner{background:var(--ck-color-switch-button-inner-background);border-radius:0;height:var(--ck-switch-button-toggle-inner-size);transition:all .3s ease;width:var(--ck-switch-button-toggle-inner-size)}.ck-rounded-corners .ck.ck-button.ck-switchbutton .ck-button__toggle .ck-button__toggle__inner,.ck.ck-button.ck-switchbutton .ck-button__toggle .ck-button__toggle__inner.ck-rounded-corners{border-radius:var(--ck-border-radius);border-radius:calc(var(--ck-border-radius)*.5)}@media (prefers-reduced-motion:reduce){.ck.ck-button.ck-switchbutton .ck-button__toggle .ck-button__toggle__inner{transition:none}}.ck.ck-button.ck-switchbutton .ck-button__toggle:hover{background:var(--ck-color-switch-button-off-hover-background)}.ck.ck-button.ck-switchbutton .ck-button__toggle:hover .ck-button__toggle__inner{box-shadow:var(--ck-switch-button-inner-hover-shadow)}.ck.ck-button.ck-switchbutton.ck-disabled .ck-button__toggle{opacity:var(--ck-disabled-opacity)}.ck.ck-button.ck-switchbutton:focus{border-color:transparent;box-shadow:none;outline:none}.ck.ck-button.ck-switchbutton:focus .ck-button__toggle{box-shadow:0 0 0 1px var(--ck-color-base-background),0 0 0 5px var(--ck-color-focus-outer-shadow);outline:var(--ck-focus-ring);outline-offset:1px}.ck.ck-button.ck-switchbutton.ck-on .ck-button__toggle{background:var(--ck-color-switch-button-on-background)}.ck.ck-button.ck-switchbutton.ck-on .ck-button__toggle:hover{background:var(--ck-color-switch-button-on-hover-background)}[dir=ltr] .ck.ck-button.ck-switchbutton.ck-on .ck-button__toggle .ck-button__toggle__inner{transform:translateX(var( --ck-switch-button-translation ))}[dir=rtl] .ck.ck-button.ck-switchbutton.ck-on .ck-button__toggle .ck-button__toggle__inner{transform:translateX(calc(var( --ck-switch-button-translation )*-1))}`, \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/components/button/switchbutton.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-ui/components/button/switchbutton.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/mixins/_dir.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/mixins/_rounded.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/mixins/_disabled.css\"],\"names\":[],\"mappings\":\"AASE,4HACC,aACD,CCCF,MAEC,8CAA+C,CAE/C,0DAAgE,CAChE,2HAIC,CACD,0FACD,CAOC,0QAEC,sBAAuB,CADvB,aAED,CC3BA,0DDgCE,4CC9BF,CAFA,0DDqCE,2CCnCF,CDuCA,iDAkBC,uDAAwD,CAFxD,4BAA6B,CEpD9B,eAAgB,CFmDf,iFAAsF,CAEtF,0CA2BD,CE9EA,yIAEC,qCAED,CDXA,2DD8CE,gBC5CF,CAFA,2DDmDE,iBCjDF,CD2DC,2EAOC,yDAA0D,CE/D5D,eAAgB,CF8Dd,gDAAiD,CAIjD,uBAA0B,CAL1B,+CAUD,CErED,6LAEC,qCAAsC,CFsDpC,8CEpDH,CF8DE,uCAZD,2EAaE,eAEF,CADC,CAGD,uDACC,6DAKD,CAHC,iFACC,qDACD,CAIF,6DGpFA,kCHsFA,CAGA,oCACC,wBAAyB,CAEzB,eAAgB,CADhB,YAQD,CALC,uDACC,iGAAmG,CAEnG,4BAA6B,CAD7B,kBAED,CAKA,uDACC,sDAkBD,CAhBC,6DACC,4DACD,CC/GF,2FDsHI,2DCpHJ,CAFA,2FD0HI,oECxHJ\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n.ck.ck-button.ck-switchbutton {\\n\\t& .ck-button__toggle {\\n\\t\\tdisplay: block;\\n\\n\\t\\t& .ck-button__toggle__inner {\\n\\t\\t\\tdisplay: block;\\n\\t\\t}\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n@import \\\"../../../mixins/_rounded.css\\\";\\n@import \\\"../../../mixins/_disabled.css\\\";\\n@import \\\"@ckeditor/ckeditor5-ui/theme/mixins/_dir.css\\\";\\n\\n/* Note: To avoid rendering issues (aliasing) but to preserve the responsive nature\\nof the component, floating–point numbers have been used which, for the default font size\\n(see: --ck-font-size-base), will generate simple integers. */\\n:root {\\n\\t/* 34px at 13px font-size */\\n\\t--ck-switch-button-toggle-width: 2.6153846154em;\\n\\t/* 14px at 13px font-size */\\n\\t--ck-switch-button-toggle-inner-size: calc(1.0769230769em + 1px);\\n\\t--ck-switch-button-translation: calc(\\n\\t\\tvar(--ck-switch-button-toggle-width) -\\n\\t\\tvar(--ck-switch-button-toggle-inner-size) -\\n\\t\\t2px /* Border */\\n\\t);\\n\\t--ck-switch-button-inner-hover-shadow: 0 0 0 5px var(--ck-color-switch-button-inner-shadow);\\n}\\n\\n.ck.ck-button.ck-switchbutton {\\n\\t/* Unlike a regular button, the switch button text color and background should never change.\\n\\t * Changing toggle switch (background, outline) is enough to carry the information about the\\n\\t * state of the entire component (https://github.com/ckeditor/ckeditor5/issues/12519)\\n\\t */\\n\\t&, &:hover, &:focus, &:active, &.ck-on:hover, &.ck-on:focus, &.ck-on:active {\\n\\t\\tcolor: inherit;\\n\\t\\tbackground: transparent;\\n\\t}\\n\\n\\t& .ck-button__label {\\n\\t\\t@mixin ck-dir ltr {\\n\\t\\t\\t/* Separate the label from the switch */\\n\\t\\t\\tmargin-right: calc(2 * var(--ck-spacing-large));\\n\\t\\t}\\n\\n\\t\\t@mixin ck-dir rtl {\\n\\t\\t\\t/* Separate the label from the switch */\\n\\t\\t\\tmargin-left: calc(2 * var(--ck-spacing-large));\\n\\t\\t}\\n\\t}\\n\\n\\t& .ck-button__toggle {\\n\\t\\t@mixin ck-rounded-corners;\\n\\n\\t\\t@mixin ck-dir ltr {\\n\\t\\t\\t/* Make sure the toggle is always to the right as far as possible. */\\n\\t\\t\\tmargin-left: auto;\\n\\t\\t}\\n\\n\\t\\t@mixin ck-dir rtl {\\n\\t\\t\\t/* Make sure the toggle is always to the left as far as possible. */\\n\\t\\t\\tmargin-right: auto;\\n\\t\\t}\\n\\n\\t\\t/* Apply some smooth transition to the box-shadow and border. */\\n\\t\\t/* Gently animate the background color of the toggle switch */\\n\\t\\ttransition: background 400ms ease, box-shadow .2s ease-in-out, outline .2s ease-in-out;\\n\\t\\tborder: 1px solid transparent;\\n\\t\\twidth: var(--ck-switch-button-toggle-width);\\n\\t\\tbackground: var(--ck-color-switch-button-off-background);\\n\\n\\t\\t& .ck-button__toggle__inner {\\n\\t\\t\\t@mixin ck-rounded-corners {\\n\\t\\t\\t\\tborder-radius: calc(.5 * var(--ck-border-radius));\\n\\t\\t\\t}\\n\\n\\t\\t\\twidth: var(--ck-switch-button-toggle-inner-size);\\n\\t\\t\\theight: var(--ck-switch-button-toggle-inner-size);\\n\\t\\t\\tbackground: var(--ck-color-switch-button-inner-background);\\n\\n\\t\\t\\t/* Gently animate the inner part of the toggle switch */\\n\\t\\t\\ttransition: all 300ms ease;\\n\\n\\t\\t\\t@media (prefers-reduced-motion: reduce) {\\n\\t\\t\\t\\ttransition: none;\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t&:hover {\\n\\t\\t\\tbackground: var(--ck-color-switch-button-off-hover-background);\\n\\n\\t\\t\\t& .ck-button__toggle__inner {\\n\\t\\t\\t\\tbox-shadow: var(--ck-switch-button-inner-hover-shadow);\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n\\t&.ck-disabled .ck-button__toggle {\\n\\t\\t@mixin ck-disabled;\\n\\t}\\n\\n\\t/* Overriding default .ck-button:focus styles + an outline around the toogle */\\n\\t&:focus {\\n\\t\\tborder-color: transparent;\\n\\t\\toutline: none;\\n\\t\\tbox-shadow: none;\\n\\n\\t\\t& .ck-button__toggle {\\n\\t\\t\\tbox-shadow: 0 0 0 1px var(--ck-color-base-background), 0 0 0 5px var(--ck-color-focus-outer-shadow);\\n\\t\\t\\toutline-offset: 1px;\\n\\t\\t\\toutline: var(--ck-focus-ring);\\n\\t\\t}\\n\\t}\\n\\n\\t/* stylelint-disable-next-line no-descending-specificity */\\n\\t&.ck-on {\\n\\t\\t& .ck-button__toggle {\\n\\t\\t\\tbackground: var(--ck-color-switch-button-on-background);\\n\\n\\t\\t\\t&:hover {\\n\\t\\t\\t\\tbackground: var(--ck-color-switch-button-on-hover-background);\\n\\t\\t\\t}\\n\\n\\t\\t\\t& .ck-button__toggle__inner {\\n\\t\\t\\t\\t/*\\n\\t\\t\\t\\t* Move the toggle switch to the right. It will be animated.\\n\\t\\t\\t\\t*/\\n\\t\\t\\t\\t@mixin ck-dir ltr {\\n\\t\\t\\t\\t\\ttransform: translateX( var( --ck-switch-button-translation ) );\\n\\t\\t\\t\\t}\\n\\n\\t\\t\\t\\t@mixin ck-dir rtl {\\n\\t\\t\\t\\t\\ttransform: translateX( calc( -1 * var( --ck-switch-button-translation ) ) );\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n@define-mixin ck-dir $direction {\\n\\t[dir=\\\"$(direction)\\\"] & {\\n\\t\\t@mixin-content;\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n/**\\n * Implements rounded corner interface for .ck-rounded-corners class.\\n *\\n * @see $ck-border-radius\\n */\\n@define-mixin ck-rounded-corners {\\n\\tborder-radius: 0;\\n\\n\\t.ck-rounded-corners &,\\n\\t&.ck-rounded-corners {\\n\\t\\tborder-radius: var(--ck-border-radius);\\n\\t\\t@mixin-content;\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n/**\\n * A class which indicates that an element holding it is disabled.\\n */\\n@define-mixin ck-disabled {\\n\\topacity: var(--ck-disabled-opacity);\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.ck .ck-balloon-rotator__navigation{align-items:center;display:flex;justify-content:center}.ck .ck-balloon-rotator__content .ck-toolbar{justify-content:center}.ck .ck-balloon-rotator__navigation{background:var(--ck-color-toolbar-background);border-bottom:1px solid var(--ck-color-toolbar-border);padding:0 var(--ck-spacing-small)}.ck .ck-balloon-rotator__navigation>*{margin-bottom:var(--ck-spacing-small);margin-right:var(--ck-spacing-small);margin-top:var(--ck-spacing-small)}.ck .ck-balloon-rotator__navigation .ck-balloon-rotator__counter{margin-left:var(--ck-spacing-small);margin-right:var(--ck-spacing-standard)}.ck .ck-balloon-rotator__content .ck.ck-annotation-wrapper{box-shadow:none}`, \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/components/panel/balloonrotator.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-ui/components/panel/balloonrotator.css\"],\"names\":[],\"mappings\":\"AAKA,oCAEC,kBAAmB,CADnB,YAAa,CAEb,sBACD,CAKA,6CACC,sBACD,CCXA,oCACC,6CAA8C,CAC9C,sDAAuD,CACvD,iCAgBD,CAbC,sCAGC,qCAAsC,CAFtC,oCAAqC,CACrC,kCAED,CAGA,iEAIC,mCAAoC,CAHpC,uCAID,CAMA,2DACC,eACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n.ck .ck-balloon-rotator__navigation {\\n\\tdisplay: flex;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n}\\n\\n/* Buttons inside a toolbar should be centered when rotator bar is wider.\\n * See: https://github.com/ckeditor/ckeditor5-ui/issues/495\\n */\\n.ck .ck-balloon-rotator__content .ck-toolbar {\\n\\tjustify-content: center;\\n}\\n\",\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n.ck .ck-balloon-rotator__navigation {\\n\\tbackground: var(--ck-color-toolbar-background);\\n\\tborder-bottom: 1px solid var(--ck-color-toolbar-border);\\n\\tpadding: 0 var(--ck-spacing-small);\\n\\n\\t/* Let's keep similar appearance to `ck-toolbar`. */\\n\\t& > * {\\n\\t\\tmargin-right: var(--ck-spacing-small);\\n\\t\\tmargin-top: var(--ck-spacing-small);\\n\\t\\tmargin-bottom: var(--ck-spacing-small);\\n\\t}\\n\\n\\t/* Gives counter more breath than buttons. */\\n\\t& .ck-balloon-rotator__counter {\\n\\t\\tmargin-right: var(--ck-spacing-standard);\\n\\n\\t\\t/* We need to use smaller margin because of previous button's right margin. */\\n\\t\\tmargin-left: var(--ck-spacing-small);\\n\\t}\\n}\\n\\n.ck .ck-balloon-rotator__content {\\n\\n\\t/* Disable default annotation shadow inside rotator with fake panels. */\\n\\t& .ck.ck-annotation-wrapper {\\n\\t\\tbox-shadow: none;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.ck.ck-block-toolbar-button{position:absolute;z-index:var(--ck-z-default)}:root{--ck-color-block-toolbar-button:var(--ck-color-text);--ck-block-toolbar-button-size:var(--ck-font-size-normal)}.ck.ck-block-toolbar-button{color:var(--ck-color-block-toolbar-button);font-size:var(--ck-block-toolbar-size)}`, \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/components/toolbar/blocktoolbar.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-ui/components/toolbar/blocktoolbar.css\"],\"names\":[],\"mappings\":\"AAKA,4BACC,iBAAkB,CAClB,2BACD,CCHA,MACC,oDAAqD,CACrD,yDACD,CAEA,4BACC,0CAA2C,CAC3C,sCACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n.ck.ck-block-toolbar-button {\\n\\tposition: absolute;\\n\\tz-index: var(--ck-z-default);\\n}\\n\",\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n:root {\\n\\t--ck-color-block-toolbar-button: var(--ck-color-text);\\n\\t--ck-block-toolbar-button-size: var(--ck-font-size-normal);\\n}\\n\\n.ck.ck-block-toolbar-button {\\n\\tcolor: var(--ck-color-block-toolbar-button);\\n\\tfont-size: var(--ck-block-toolbar-size);\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.ck-content .table{display:table;margin:.9em auto}.ck-content .table table{border:1px double #b3b3b3;border-collapse:collapse;border-spacing:0;height:100%;width:100%}.ck-content .table table td,.ck-content .table table th{border:1px solid #bfbfbf;min-width:2em;padding:.4em}.ck-content .table table th{background:rgba(0,0,0,.05);font-weight:700}@media print{.ck-content .table table{height:auto}}.ck-content[dir=rtl] .table th{text-align:right}.ck-content[dir=ltr] .table th{text-align:left}.ck-editor__editable .ck-table-bogus-paragraph{display:inline-block;width:100%}`, \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@ckeditor/ckeditor5-table/theme/table.css\"],\"names\":[],\"mappings\":\"AAKA,mBAKC,aAAc,CADd,gBAiCD,CA9BC,yBAYC,yBAAkC,CAVlC,wBAAyB,CACzB,gBAAiB,CAKjB,WAAY,CADZ,UAsBD,CAfC,wDAQC,wBAAiC,CANjC,aAAc,CACd,YAMD,CAEA,4BAEC,0BAA+B,CAD/B,eAED,CAeF,aACC,yBACC,WACD,CACD,CAIA,+BACC,gBACD,CAEA,+BACC,eACD,CAEA,+CAKC,oBAAqB,CAMrB,UACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\\n */\\n\\n.ck-content .table {\\n\\t/* Give the table widget some air and center it horizontally */\\n\\t/* The first value should be equal to --ck-spacing-large variable if used in the editor context\\n\\tto avoid the content jumping (See https://github.com/ckeditor/ckeditor5/issues/9825). */\\n\\tmargin: 0.9em auto;\\n\\tdisplay: table;\\n\\n\\t& table {\\n\\t\\t/* The table cells should have slight borders */\\n\\t\\tborder-collapse: collapse;\\n\\t\\tborder-spacing: 0;\\n\\n\\t\\t/* Table width and height are set on the parent
    . Make sure the table inside stretches\\n\\t\\tto the full dimensions of the container (https://github.com/ckeditor/ckeditor5/issues/6186). */\\n\\t\\twidth: 100%;\\n\\t\\theight: 100%;\\n\\n\\t\\t/* The outer border of the table should be slightly darker than the inner lines.\\n\\t\\tAlso see https://github.com/ckeditor/ckeditor5-table/issues/50. */\\n\\t\\tborder: 1px double hsl(0, 0%, 70%);\\n\\n\\t\\t& td,\\n\\t\\t& th {\\n\\t\\t\\tmin-width: 2em;\\n\\t\\t\\tpadding: .4em;\\n\\n\\t\\t\\t/* The border is inherited from .ck-editor__nested-editable styles, so theoretically it's not necessary here.\\n\\t\\t\\tHowever, the border is a content style, so it should use .ck-content (so it works outside the editor).\\n\\t\\t\\tHence, the duplication. See https://github.com/ckeditor/ckeditor5/issues/6314 */\\n\\t\\t\\tborder: 1px solid hsl(0, 0%, 75%);\\n\\t\\t}\\n\\n\\t\\t& th {\\n\\t\\t\\tfont-weight: bold;\\n\\t\\t\\tbackground: hsla(0, 0%, 0%, 5%);\\n\\t\\t}\\n\\t}\\n}\\n\\n/**\\n * Expanding the table to the full height of the parent container is necessary because tables\\n * are rendered inside
    elements, which is kinda buggy in table height calculation.\\n * While setting `height: 100%` fixes the issue in the editing mode described here:\\n * https://github.com/ckeditor/ckeditor5/issues/6186\\n *\\n * it's causing another issue with the table height in the print preview mode here:\\n * https://github.com/ckeditor/ckeditor5/issues/16856\\n *\\n * For now, resetting the height to `initial` in the print mode works as a workaround.\\n */\\n@media print {\\n\\t.ck-content .table table {\\n\\t\\theight: initial;\\n\\t}\\n}\\n\\n/* Text alignment of the table header should match the editor settings and override the native browser styling,\\nwhen content is available outside the editor. See https://github.com/ckeditor/ckeditor5/issues/6638 */\\n.ck-content[dir=\\\"rtl\\\"] .table th {\\n\\ttext-align: right;\\n}\\n\\n.ck-content[dir=\\\"ltr\\\"] .table th {\\n\\ttext-align: left;\\n}\\n\\n.ck-editor__editable .ck-table-bogus-paragraph {\\n\\t/*\\n\\t * Use display:inline-block to force Chrome/Safari to limit text mutations to this element.\\n\\t * See https://github.com/ckeditor/ckeditor5/issues/6062.\\n\\t */\\n\\tdisplay: inline-block;\\n\\n\\t/*\\n\\t * Inline HTML elements nested in the span should always be dimensioned in relation to the whole cell width.\\n\\t * See https://github.com/ckeditor/ckeditor5/issues/9117.\\n\\t */\\n\\twidth: 100%;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.b = document.baseURI || self.location.href;\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t792: 0\n};\n\n// no chunk on demand loading\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n// no on chunks loaded\n\n// no jsonp function","/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n/**\n * A helper (module) giving an access to the global DOM objects such as `window` and\n * `document`. Accessing these objects using this helper allows easy and bulletproof\n * testing, i.e. stubbing native properties:\n *\n * ```ts\n * import { global } from 'ckeditor5/utils';\n *\n * // This stub will work for any code using global module.\n * testUtils.sinon.stub( global, 'window', {\n * \tinnerWidth: 10000\n * } );\n *\n * console.log( global.window.innerWidth );\n * ```\n */\nlet globalVar; // named globalVar instead of global: https://github.com/ckeditor/ckeditor5/issues/12971\n// In some environments window and document API might not be available.\ntry {\n globalVar = { window, document };\n}\ncatch (e) {\n // It's not possible to mock a window object to simulate lack of a window object without writing extremely convoluted code.\n /* istanbul ignore next -- @preserve */\n // Let's cast it to not change module's API.\n // We only handle this so loading editor in environments without window and document doesn't fail.\n // For better DX we shouldn't introduce mixed types and require developers to check the type manually.\n // This module should not be used on purpose in any environment outside browser.\n globalVar = { window: {}, document: {} };\n}\nexport default globalVar;\n","/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n/* globals navigator:false */\n/**\n * @module utils/env\n */\nimport global from './dom/global.js';\n/**\n * Safely returns `userAgent` from browser's navigator API in a lower case.\n * If navigator API is not available it will return an empty string.\n */\nexport function getUserAgent() {\n // In some environments navigator API might not be available.\n try {\n return navigator.userAgent.toLowerCase();\n }\n catch (e) {\n return '';\n }\n}\nconst userAgent = /* #__PURE__ */ getUserAgent();\n/**\n * A namespace containing environment and browser information.\n */\nconst env = {\n isMac: /* #__PURE__ */ isMac(userAgent),\n isWindows: /* #__PURE__ */ isWindows(userAgent),\n isGecko: /* #__PURE__ */ isGecko(userAgent),\n isSafari: /* #__PURE__ */ isSafari(userAgent),\n isiOS: /* #__PURE__ */ isiOS(userAgent),\n isAndroid: /* #__PURE__ */ isAndroid(userAgent),\n isBlink: /* #__PURE__ */ isBlink(userAgent),\n get isMediaForcedColors() {\n return isMediaForcedColors();\n },\n get isMotionReduced() {\n return isMotionReduced();\n },\n features: {\n isRegExpUnicodePropertySupported: /* #__PURE__ */ isRegExpUnicodePropertySupported()\n }\n};\nexport default env;\n/**\n * Checks if User Agent represented by the string is running on Macintosh.\n *\n * @param userAgent **Lowercase** `navigator.userAgent` string.\n * @returns Whether User Agent is running on Macintosh or not.\n */\nexport function isMac(userAgent) {\n return userAgent.indexOf('macintosh') > -1;\n}\n/**\n * Checks if User Agent represented by the string is running on Windows.\n *\n * @param userAgent **Lowercase** `navigator.userAgent` string.\n * @returns Whether User Agent is running on Windows or not.\n */\nexport function isWindows(userAgent) {\n return userAgent.indexOf('windows') > -1;\n}\n/**\n * Checks if User Agent represented by the string is Firefox (Gecko).\n *\n * @param userAgent **Lowercase** `navigator.userAgent` string.\n * @returns Whether User Agent is Firefox or not.\n */\nexport function isGecko(userAgent) {\n return !!userAgent.match(/gecko\\/\\d+/);\n}\n/**\n * Checks if User Agent represented by the string is Safari.\n *\n * @param userAgent **Lowercase** `navigator.userAgent` string.\n * @returns Whether User Agent is Safari or not.\n */\nexport function isSafari(userAgent) {\n return userAgent.indexOf(' applewebkit/') > -1 && userAgent.indexOf('chrome') === -1;\n}\n/**\n * Checks if User Agent represented by the string is running in iOS.\n *\n * @param userAgent **Lowercase** `navigator.userAgent` string.\n * @returns Whether User Agent is running in iOS or not.\n */\nexport function isiOS(userAgent) {\n // \"Request mobile site\" || \"Request desktop site\".\n return !!userAgent.match(/iphone|ipad/i) || (isMac(userAgent) && navigator.maxTouchPoints > 0);\n}\n/**\n * Checks if User Agent represented by the string is Android mobile device.\n *\n * @param userAgent **Lowercase** `navigator.userAgent` string.\n * @returns Whether User Agent is Safari or not.\n */\nexport function isAndroid(userAgent) {\n return userAgent.indexOf('android') > -1;\n}\n/**\n * Checks if User Agent represented by the string is Blink engine.\n *\n * @param userAgent **Lowercase** `navigator.userAgent` string.\n * @returns Whether User Agent is Blink engine or not.\n */\nexport function isBlink(userAgent) {\n // The Edge browser before switching to the Blink engine used to report itself as Chrome (and \"Edge/\")\n // but after switching to the Blink it replaced \"Edge/\" with \"Edg/\".\n return userAgent.indexOf('chrome/') > -1 && userAgent.indexOf('edge/') < 0;\n}\n/**\n * Checks if the current environment supports ES2018 Unicode properties like `\\p{P}` or `\\p{L}`.\n * More information about unicode properties might be found\n * [in Unicode Standard Annex #44](https://www.unicode.org/reports/tr44/#GC_Values_Table).\n */\nexport function isRegExpUnicodePropertySupported() {\n let isSupported = false;\n // Feature detection for Unicode properties. Added in ES2018. Currently Firefox does not support it.\n // See https://github.com/ckeditor/ckeditor5-mention/issues/44#issuecomment-487002174.\n try {\n // Usage of regular expression literal cause error during build (ckeditor/ckeditor5-dev#534).\n isSupported = 'ć'.search(new RegExp('[\\\\p{L}]', 'u')) === 0;\n }\n catch (error) {\n // Firefox throws a SyntaxError when the group is unsupported.\n }\n return isSupported;\n}\n/**\n * Checks if the user agent has enabled a forced colors mode (e.g. Windows High Contrast mode).\n *\n * Returns `false` in environments where `window` global object is not available.\n */\nexport function isMediaForcedColors() {\n return global.window.matchMedia ? global.window.matchMedia('(forced-colors: active)').matches : false;\n}\n/**\n * Checks if the user enabled \"prefers reduced motion\" setting in browser.\n *\n * Returns `false` in environments where `window` global object is not available.\n */\nexport function isMotionReduced() {\n return global.window.matchMedia ? global.window.matchMedia('(prefers-reduced-motion)').matches : false;\n}\n","/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n/**\n * @module utils/fastdiff\n */\n/**\n * Finds positions of the first and last change in the given string/array and generates a set of changes:\n *\n * ```ts\n * fastDiff( '12a', '12xyza' );\n * // [ { index: 2, type: 'insert', values: [ 'x', 'y', 'z' ] } ]\n *\n * fastDiff( '12a', '12aa' );\n * // [ { index: 3, type: 'insert', values: [ 'a' ] } ]\n *\n * fastDiff( '12xyza', '12a' );\n * // [ { index: 2, type: 'delete', howMany: 3 } ]\n *\n * fastDiff( [ '1', '2', 'a', 'a' ], [ '1', '2', 'a' ] );\n * // [ { index: 3, type: 'delete', howMany: 1 } ]\n *\n * fastDiff( [ '1', '2', 'a', 'b', 'c', '3' ], [ '2', 'a', 'b' ] );\n * // [ { index: 0, type: 'insert', values: [ '2', 'a', 'b' ] }, { index: 3, type: 'delete', howMany: 6 } ]\n * ```\n *\n * Passed arrays can contain any type of data, however to compare them correctly custom comparator function\n * should be passed as a third parameter:\n *\n * ```ts\n * fastDiff( [ { value: 1 }, { value: 2 } ], [ { value: 1 }, { value: 3 } ], ( a, b ) => {\n * \treturn a.value === b.value;\n * } );\n * // [ { index: 1, type: 'insert', values: [ { value: 3 } ] }, { index: 2, type: 'delete', howMany: 1 } ]\n * ```\n *\n * The resulted set of changes can be applied to the input in order to transform it into the output, for example:\n *\n * ```ts\n * let input = '12abc3';\n * const output = '2ab';\n * const changes = fastDiff( input, output );\n *\n * changes.forEach( change => {\n * \tif ( change.type == 'insert' ) {\n * \t\tinput = input.substring( 0, change.index ) + change.values.join( '' ) + input.substring( change.index );\n * \t} else if ( change.type == 'delete' ) {\n * \t\tinput = input.substring( 0, change.index ) + input.substring( change.index + change.howMany );\n * \t}\n * } );\n *\n * // input equals output now\n * ```\n *\n * or in case of arrays:\n *\n * ```ts\n * let input = [ '1', '2', 'a', 'b', 'c', '3' ];\n * const output = [ '2', 'a', 'b' ];\n * const changes = fastDiff( input, output );\n *\n * changes.forEach( change => {\n * \tif ( change.type == 'insert' ) {\n * \t\tinput = input.slice( 0, change.index ).concat( change.values, input.slice( change.index ) );\n * \t} else if ( change.type == 'delete' ) {\n * \t\tinput = input.slice( 0, change.index ).concat( input.slice( change.index + change.howMany ) );\n * \t}\n * } );\n *\n * // input equals output now\n * ```\n *\n * By passing `true` as the fourth parameter (`atomicChanges`) the output of this function will become compatible with\n * the {@link module:utils/diff~diff `diff()`} function:\n *\n * ```ts\n * fastDiff( '12a', '12xyza', undefined, true );\n * // [ 'equal', 'equal', 'insert', 'insert', 'insert', 'equal' ]\n * ```\n *\n * The default output format of this function is compatible with the output format of\n * {@link module:utils/difftochanges~diffToChanges `diffToChanges()`}. The `diffToChanges()` input format is, in turn,\n * compatible with the output of {@link module:utils/diff~diff `diff()`}:\n *\n * ```ts\n * const a = '1234';\n * const b = '12xyz34';\n *\n * // Both calls will return the same results (grouped changes format).\n * fastDiff( a, b );\n * diffToChanges( diff( a, b ) );\n *\n * // Again, both calls will return the same results (atomic changes format).\n * fastDiff( a, b, undefined, true );\n * diff( a, b );\n * ```\n *\n * @typeParam T The type of array elements.\n * @typeParam AtomicChanges The type of `atomicChanges` parameter (selects the result type).\n * @param a Input array or string.\n * @param b Input array or string.\n * @param cmp Optional function used to compare array values, by default `===` (strict equal operator) is used.\n * @param atomicChanges Whether an array of `inset|delete|equal` operations should\n * be returned instead of changes set. This makes this function compatible with {@link module:utils/diff~diff `diff()`}.\n * Defaults to `false`.\n * @returns Array of changes. The elements are either {@link module:utils/diff~DiffResult} or {@link module:utils/difftochanges~Change},\n * depending on `atomicChanges` parameter.\n */\nexport default function fastDiff(a, b, cmp, atomicChanges) {\n // Set the comparator function.\n cmp = cmp || function (a, b) {\n return a === b;\n };\n // Convert the string (or any array-like object - eg. NodeList) to an array by using the slice() method because,\n // unlike Array.from(), it returns array of UTF-16 code units instead of the code points of a string.\n // One code point might be a surrogate pair of two code units. All text offsets are expected to be in code units.\n // See ckeditor/ckeditor5#3147.\n //\n // We need to make sure here that fastDiff() works identical to diff().\n const arrayA = Array.isArray(a) ? a : Array.prototype.slice.call(a);\n const arrayB = Array.isArray(b) ? b : Array.prototype.slice.call(b);\n // Find first and last change.\n const changeIndexes = findChangeBoundaryIndexes(arrayA, arrayB, cmp);\n // Transform into changes array.\n const result = atomicChanges ?\n changeIndexesToAtomicChanges(changeIndexes, arrayB.length) :\n changeIndexesToChanges(arrayB, changeIndexes);\n return result;\n}\n/**\n * Finds position of the first and last change in the given arrays. For example:\n *\n * ```ts\n * const indexes = findChangeBoundaryIndexes( [ '1', '2', '3', '4' ], [ '1', '3', '4', '2', '4' ] );\n * console.log( indexes ); // { firstIndex: 1, lastIndexOld: 3, lastIndexNew: 4 }\n * ```\n *\n * The above indexes means that in the first array the modified part is `1[23]4` and in the second array it is `1[342]4`.\n * Based on such indexes, array with `insert`/`delete` operations which allows transforming first value into the second one\n * can be generated.\n */\nfunction findChangeBoundaryIndexes(arr1, arr2, cmp) {\n // Find the first difference between passed values.\n const firstIndex = findFirstDifferenceIndex(arr1, arr2, cmp);\n // If arrays are equal return -1 indexes object.\n if (firstIndex === -1) {\n return { firstIndex: -1, lastIndexOld: -1, lastIndexNew: -1 };\n }\n // Remove the common part of each value and reverse them to make it simpler to find the last difference between them.\n const oldArrayReversed = cutAndReverse(arr1, firstIndex);\n const newArrayReversed = cutAndReverse(arr2, firstIndex);\n // Find the first difference between reversed values.\n // It should be treated as \"how many elements from the end the last difference occurred\".\n //\n // For example:\n //\n // \t\t\t\tinitial\t->\tafter cut\t-> reversed:\n // oldValue:\t'321ba'\t->\t'21ba'\t\t-> 'ab12'\n // newValue:\t'31xba'\t->\t'1xba'\t\t-> 'abx1'\n // lastIndex:\t\t\t\t\t\t\t-> 2\n //\n // So the last change occurred two characters from the end of the arrays.\n const lastIndex = findFirstDifferenceIndex(oldArrayReversed, newArrayReversed, cmp);\n // Use `lastIndex` to calculate proper offset, starting from the beginning (`lastIndex` kind of starts from the end).\n const lastIndexOld = arr1.length - lastIndex;\n const lastIndexNew = arr2.length - lastIndex;\n return { firstIndex, lastIndexOld, lastIndexNew };\n}\n/**\n * Returns a first index on which given arrays differ. If both arrays are the same, -1 is returned.\n */\nfunction findFirstDifferenceIndex(arr1, arr2, cmp) {\n for (let i = 0; i < Math.max(arr1.length, arr2.length); i++) {\n if (arr1[i] === undefined || arr2[i] === undefined || !cmp(arr1[i], arr2[i])) {\n return i;\n }\n }\n return -1; // Return -1 if arrays are equal.\n}\n/**\n * Returns a copy of the given array with `howMany` elements removed starting from the beginning and in reversed order.\n *\n * @param arr Array to be processed.\n * @param howMany How many elements from array beginning to remove.\n * @returns Shortened and reversed array.\n */\nfunction cutAndReverse(arr, howMany) {\n return arr.slice(howMany).reverse();\n}\n/**\n * Generates changes array based on change indexes from `findChangeBoundaryIndexes` function. This function will\n * generate array with 0 (no changes), 1 (deletion or insertion) or 2 records (insertion and deletion).\n *\n * @param newArray New array for which change indexes were calculated.\n * @param changeIndexes Change indexes object from `findChangeBoundaryIndexes` function.\n * @returns Array of changes compatible with {@link module:utils/difftochanges~diffToChanges} format.\n */\nfunction changeIndexesToChanges(newArray, changeIndexes) {\n const result = [];\n const { firstIndex, lastIndexOld, lastIndexNew } = changeIndexes;\n // Order operations as 'insert', 'delete' array to keep compatibility with {@link module:utils/difftochanges~diffToChanges}\n // in most cases. However, 'diffToChanges' does not stick to any order so in some cases\n // (for example replacing '12345' with 'abcd') it will generate 'delete', 'insert' order.\n if (lastIndexNew - firstIndex > 0) {\n result.push({\n index: firstIndex,\n type: 'insert',\n values: newArray.slice(firstIndex, lastIndexNew)\n });\n }\n if (lastIndexOld - firstIndex > 0) {\n result.push({\n index: firstIndex + (lastIndexNew - firstIndex),\n type: 'delete',\n howMany: lastIndexOld - firstIndex\n });\n }\n return result;\n}\n/**\n * Generates array with set `equal|insert|delete` operations based on change indexes from `findChangeBoundaryIndexes` function.\n *\n * @param changeIndexes Change indexes object from `findChangeBoundaryIndexes` function.\n * @param newLength Length of the new array on which `findChangeBoundaryIndexes` calculated change indexes.\n * @returns Array of changes compatible with {@link module:utils/diff~diff} format.\n */\nfunction changeIndexesToAtomicChanges(changeIndexes, newLength) {\n const { firstIndex, lastIndexOld, lastIndexNew } = changeIndexes;\n // No changes.\n if (firstIndex === -1) {\n return Array(newLength).fill('equal');\n }\n let result = [];\n if (firstIndex > 0) {\n result = result.concat(Array(firstIndex).fill('equal'));\n }\n if (lastIndexNew - firstIndex > 0) {\n result = result.concat(Array(lastIndexNew - firstIndex).fill('insert'));\n }\n if (lastIndexOld - firstIndex > 0) {\n result = result.concat(Array(lastIndexOld - firstIndex).fill('delete'));\n }\n if (lastIndexNew < newLength) {\n result = result.concat(Array(newLength - lastIndexNew).fill('equal'));\n }\n return result;\n}\n","/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n/**\n * @module utils/diff\n */\nimport fastDiff from './fastdiff.js';\n// The following code is based on the \"O(NP) Sequence Comparison Algorithm\"\n// by Sun Wu, Udi Manber, Gene Myers, Webb Miller.\n/**\n * Calculates the difference between two arrays or strings producing an array containing a list of changes\n * necessary to transform input into output.\n *\n * ```ts\n * diff( 'aba', 'acca' ); // [ 'equal', 'insert', 'insert', 'delete', 'equal' ]\n * ```\n *\n * This function is based on the \"O(NP) Sequence Comparison Algorithm\" by Sun Wu, Udi Manber, Gene Myers, Webb Miller.\n * Unfortunately, while it gives the most precise results, its to complex for longer strings/arrow (above 200 items).\n * Therefore, `diff()` automatically switches to {@link module:utils/fastdiff~fastDiff `fastDiff()`} when detecting\n * such a scenario. The return formats of both functions are identical.\n *\n * @param a Input array or string.\n * @param b Output array or string.\n * @param cmp Optional function used to compare array values, by default === is used.\n * @returns Array of changes.\n */\nexport default function diff(a, b, cmp) {\n // Set the comparator function.\n cmp = cmp || function (a, b) {\n return a === b;\n };\n const aLength = a.length;\n const bLength = b.length;\n // Perform `fastDiff` for longer strings/arrays (see #269).\n if (aLength > 200 || bLength > 200 || aLength + bLength > 300) {\n return diff.fastDiff(a, b, cmp, true);\n }\n // Temporary action type statics.\n let _insert, _delete;\n // Swapped the arrays to use the shorter one as the first one.\n if (bLength < aLength) {\n const tmp = a;\n a = b;\n b = tmp;\n // We swap the action types as well.\n _insert = 'delete';\n _delete = 'insert';\n }\n else {\n _insert = 'insert';\n _delete = 'delete';\n }\n const m = a.length;\n const n = b.length;\n const delta = n - m;\n // Edit scripts, for each diagonal.\n const es = {};\n // Furthest points, the furthest y we can get on each diagonal.\n const fp = {};\n function snake(k) {\n // We use -1 as an alternative below to handle initial values ( instead of filling the fp with -1 first ).\n // Furthest points (y) on the diagonal below k.\n const y1 = (fp[k - 1] !== undefined ? fp[k - 1] : -1) + 1;\n // Furthest points (y) on the diagonal above k.\n const y2 = fp[k + 1] !== undefined ? fp[k + 1] : -1;\n // The way we should go to get further.\n const dir = y1 > y2 ? -1 : 1;\n // Clone previous changes array (if any).\n if (es[k + dir]) {\n es[k] = es[k + dir].slice(0);\n }\n // Create changes array.\n if (!es[k]) {\n es[k] = [];\n }\n // Push the action.\n es[k].push(y1 > y2 ? _insert : _delete);\n // Set the beginning coordinates.\n let y = Math.max(y1, y2);\n let x = y - k;\n // Traverse the diagonal as long as the values match.\n while (x < m && y < n && cmp(a[x], b[y])) {\n x++;\n y++;\n // Push no change action.\n es[k].push('equal');\n }\n return y;\n }\n let p = 0;\n let k;\n // Traverse the graph until we reach the end of the longer string.\n do {\n // Updates furthest points and edit scripts for diagonals below delta.\n for (k = -p; k < delta; k++) {\n fp[k] = snake(k);\n }\n // Updates furthest points and edit scripts for diagonals above delta.\n for (k = delta + p; k > delta; k--) {\n fp[k] = snake(k);\n }\n // Updates furthest point and edit script for the delta diagonal.\n // note that the delta diagonal is the one which goes through the sink (m, n).\n fp[delta] = snake(delta);\n p++;\n } while (fp[delta] !== n);\n // Return the final list of edit changes.\n // We remove the first item that represents the action for the injected nulls.\n return es[delta].slice(1);\n}\n// Store the API in static property to easily overwrite it in tests.\n// Too bad dependency injection does not work in Webpack + ES 6 (const) + Babel.\ndiff.fastDiff = fastDiff;\n","/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n/**\n * @module utils/spy\n */\n/**\n * Creates a spy function (ala Sinon.js) that can be used to inspect call to it.\n *\n * The following are the present features:\n *\n * * spy.called: property set to `true` if the function has been called at least once.\n *\n * @returns The spy function.\n */\nfunction spy() {\n return function spy() {\n spy.called = true;\n };\n}\nexport default spy;\n","/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n/**\n * @module utils/eventinfo\n */\nimport spy from './spy.js';\n/**\n * The event object passed to event callbacks. It is used to provide information about the event as well as a tool to\n * manipulate it.\n */\nexport default class EventInfo {\n /**\n * @param source The emitter.\n * @param name The event name.\n */\n constructor(source, name) {\n this.source = source;\n this.name = name;\n this.path = [];\n // The following methods are defined in the constructor because they must be re-created per instance.\n this.stop = spy();\n this.off = spy();\n }\n}\n","/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n/**\n * @module utils/uid\n */\n/**\n * A hash table of hex numbers to avoid using toString() in uid() which is costly.\n * [ '00', '01', '02', ..., 'fe', 'ff' ]\n */\nconst HEX_NUMBERS = new Array(256).fill('')\n .map((_, index) => ('0' + (index).toString(16)).slice(-2));\n/**\n * Returns a unique id. The id starts with an \"e\" character and a randomly generated string of\n * 32 alphanumeric characters.\n *\n * **Note**: The characters the unique id is built from correspond to the hex number notation\n * (from \"0\" to \"9\", from \"a\" to \"f\"). In other words, each id corresponds to an \"e\" followed\n * by 16 8-bit numbers next to each other.\n *\n * @returns An unique id string.\n */\nexport default function uid() {\n // Let's create some positive random 32bit integers first.\n const [r1, r2, r3, r4] = crypto.getRandomValues(new Uint32Array(4));\n // Make sure that id does not start with number.\n return 'e' +\n HEX_NUMBERS[r1 >> 0 & 0xFF] +\n HEX_NUMBERS[r1 >> 8 & 0xFF] +\n HEX_NUMBERS[r1 >> 16 & 0xFF] +\n HEX_NUMBERS[r1 >> 24 & 0xFF] +\n HEX_NUMBERS[r2 >> 0 & 0xFF] +\n HEX_NUMBERS[r2 >> 8 & 0xFF] +\n HEX_NUMBERS[r2 >> 16 & 0xFF] +\n HEX_NUMBERS[r2 >> 24 & 0xFF] +\n HEX_NUMBERS[r3 >> 0 & 0xFF] +\n HEX_NUMBERS[r3 >> 8 & 0xFF] +\n HEX_NUMBERS[r3 >> 16 & 0xFF] +\n HEX_NUMBERS[r3 >> 24 & 0xFF] +\n HEX_NUMBERS[r4 >> 0 & 0xFF] +\n HEX_NUMBERS[r4 >> 8 & 0xFF] +\n HEX_NUMBERS[r4 >> 16 & 0xFF] +\n HEX_NUMBERS[r4 >> 24 & 0xFF];\n}\n","/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n/**\n * Provides group of constants to use instead of hardcoding numeric priority values.\n */\nconst priorities = {\n get(priority = 'normal') {\n if (typeof priority != 'number') {\n return this[priority] || this.normal;\n }\n else {\n return priority;\n }\n },\n highest: 100000,\n high: 1000,\n normal: 0,\n low: -1000,\n lowest: -100000\n};\nexport default priorities;\n","/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\nimport priorities from './priorities.js';\n/**\n * Inserts any object with priority at correct index by priority so registered objects are always sorted from highest to lowest priority.\n *\n * @param objects Array of objects with priority to insert object to.\n * @param objectToInsert Object with `priority` property.\n */\nexport default function insertToPriorityArray(objects, objectToInsert) {\n const priority = priorities.get(objectToInsert.priority);\n // Binary search for better performance in large tables.\n let left = 0;\n let right = objects.length;\n while (left < right) {\n const mid = (left + right) >> 1; // Use bitwise operator for faster floor division by 2.\n const midPriority = priorities.get(objects[mid].priority);\n if (midPriority < priority) {\n right = mid;\n }\n else {\n left = mid + 1;\n }\n }\n objects.splice(left, 0, objectToInsert);\n}\n","/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n/**\n * @module utils/ckeditorerror\n */\n/* globals console */\n/**\n * URL to the documentation with error codes.\n */\nexport const DOCUMENTATION_URL = 'https://ckeditor.com/docs/ckeditor5/latest/support/error-codes.html';\n/**\n * The CKEditor error class.\n *\n * You should throw `CKEditorError` when:\n *\n * * An unexpected situation occurred and the editor (most probably) will not work properly. Such exception will be handled\n * by the {@link module:watchdog/watchdog~Watchdog watchdog} (if it is integrated),\n * * If the editor is incorrectly integrated or the editor API is used in the wrong way. This way you will give\n * feedback to the developer as soon as possible. Keep in mind that for common integration issues which should not\n * stop editor initialization (like missing upload adapter, wrong name of a toolbar component) we use\n * {@link module:utils/ckeditorerror~logWarning `logWarning()`} and\n * {@link module:utils/ckeditorerror~logError `logError()`}\n * to improve developers experience and let them see the a working editor as soon as possible.\n *\n * ```ts\n * /**\n * * Error thrown when a plugin cannot be loaded due to JavaScript errors, lack of plugins with a given name, etc.\n * *\n * * @error plugin-load\n * * @param pluginName The name of the plugin that could not be loaded.\n * * @param moduleName The name of the module which tried to load this plugin.\n * *\\/\n * throw new CKEditorError( 'plugin-load', {\n * \tpluginName: 'foo',\n * \tmoduleName: 'bar'\n * } );\n * ```\n */\nexport default class CKEditorError extends Error {\n /**\n * Creates an instance of the CKEditorError class.\n *\n * @param errorName The error id in an `error-name` format. A link to this error documentation page will be added\n * to the thrown error's `message`.\n * @param context A context of the error by which the {@link module:watchdog/watchdog~Watchdog watchdog}\n * is able to determine which editor crashed. It should be an editor instance or a property connected to it. It can be also\n * a `null` value if the editor should not be restarted in case of the error (e.g. during the editor initialization).\n * The error context should be checked using the `areConnectedThroughProperties( editor, context )` utility\n * to check if the object works as the context.\n * @param data Additional data describing the error. A stringified version of this object\n * will be appended to the error message, so the data are quickly visible in the console. The original\n * data object will also be later available under the {@link #data} property.\n */\n constructor(errorName, context, data) {\n super(getErrorMessage(errorName, data));\n this.name = 'CKEditorError';\n this.context = context;\n this.data = data;\n }\n /**\n * Checks if the error is of the `CKEditorError` type.\n */\n is(type) {\n return type === 'CKEditorError';\n }\n /**\n * A utility that ensures that the thrown error is a {@link module:utils/ckeditorerror~CKEditorError} one.\n * It is useful when combined with the {@link module:watchdog/watchdog~Watchdog} feature, which can restart the editor in case\n * of a {@link module:utils/ckeditorerror~CKEditorError} error.\n *\n * @param err The error to rethrow.\n * @param context An object connected through properties with the editor instance. This context will be used\n * by the watchdog to verify which editor should be restarted.\n */\n static rethrowUnexpectedError(err, context) {\n if (err.is && err.is('CKEditorError')) {\n throw err;\n }\n /**\n * An unexpected error occurred inside the CKEditor 5 codebase. This error will look like the original one\n * to make the debugging easier.\n *\n * This error is only useful when the editor is initialized using the {@link module:watchdog/watchdog~Watchdog} feature.\n * In case of such error (or any {@link module:utils/ckeditorerror~CKEditorError} error) the watchdog should restart the editor.\n *\n * @error unexpected-error\n */\n const error = new CKEditorError(err.message, context);\n // Restore the original stack trace to make the error look like the original one.\n // See https://github.com/ckeditor/ckeditor5/issues/5595 for more details.\n error.stack = err.stack;\n throw error;\n }\n}\n/**\n * Logs a warning to the console with a properly formatted message and adds a link to the documentation.\n * Use whenever you want to log a warning to the console.\n *\n * ```ts\n * /**\n * * There was a problem processing the configuration of the toolbar. The item with the given\n * * name does not exist, so it was omitted when rendering the toolbar.\n * *\n * * @error toolbarview-item-unavailable\n * * @param {String} name The name of the component.\n * *\\/\n * logWarning( 'toolbarview-item-unavailable', { name } );\n * ```\n *\n * See also {@link module:utils/ckeditorerror~CKEditorError} for an explanation when to throw an error and when to log\n * a warning or an error to the console.\n *\n * @param errorName The error name to be logged.\n * @param data Additional data to be logged.\n */\nexport function logWarning(errorName, data) {\n console.warn(...formatConsoleArguments(errorName, data));\n}\n/**\n * Logs an error to the console with a properly formatted message and adds a link to the documentation.\n * Use whenever you want to log an error to the console.\n *\n * ```ts\n * /**\n * * There was a problem processing the configuration of the toolbar. The item with the given\n * * name does not exist, so it was omitted when rendering the toolbar.\n * *\n * * @error toolbarview-item-unavailable\n * * @param {String} name The name of the component.\n * *\\/\n * logError( 'toolbarview-item-unavailable', { name } );\n * ```\n *\n * **Note**: In most cases logging a warning using {@link module:utils/ckeditorerror~logWarning} is enough.\n *\n * See also {@link module:utils/ckeditorerror~CKEditorError} for an explanation when to use each method.\n *\n * @param errorName The error name to be logged.\n * @param data Additional data to be logged.\n */\nexport function logError(errorName, data) {\n console.error(...formatConsoleArguments(errorName, data));\n}\n/**\n * Returns formatted link to documentation message.\n */\nfunction getLinkToDocumentationMessage(errorName) {\n return `\\nRead more: ${DOCUMENTATION_URL}#error-${errorName}`;\n}\n/**\n * Returns formatted error message.\n */\nfunction getErrorMessage(errorName, data) {\n const processedObjects = new WeakSet();\n const circularReferencesReplacer = (key, value) => {\n if (typeof value === 'object' && value !== null) {\n if (processedObjects.has(value)) {\n return `[object ${value.constructor.name}]`;\n }\n processedObjects.add(value);\n }\n return value;\n };\n const stringifiedData = data ? ` ${JSON.stringify(data, circularReferencesReplacer)}` : '';\n const documentationLink = getLinkToDocumentationMessage(errorName);\n return errorName + stringifiedData + documentationLink;\n}\n/**\n * Returns formatted console error arguments.\n */\nfunction formatConsoleArguments(errorName, data) {\n const documentationMessage = getLinkToDocumentationMessage(errorName);\n return data ? [errorName, data, documentationMessage] : [errorName, documentationMessage];\n}\n","/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n/**\n * @module utils/version\n */\nimport CKEditorError from './ckeditorerror.js';\nconst version = '44.3.0';\nexport default version;\n// The second argument is not a month. It is `monthIndex` and starts from `0`.\nexport const releaseDate = new Date(2025, 2, 5);\n/* istanbul ignore next -- @preserve */\nif (globalThis.CKEDITOR_VERSION) {\n /**\n * This error is thrown when, due to a mistake in the way CKEditor 5 was installed,\n * imported, or initialized, some of its modules were evaluated and executed twice.\n * Duplicate modules inevitably lead to runtime errors and increased bundle size.\n *\n * # Check dependency versions\n *\n * First, make sure that you use the latest version of all CKEditor 5 dependencies.\n * Depending on the installation method, you should check the versions of the `ckeditor5`,\n * `ckeditor5-premium-features`, or `@ckeditor/ckeditor5-` packages. If you cannot update\n * to the latest version, ensure that all the CKEditor 5 packages are\n * in the same version.\n *\n * If you use third-party plugins, make sure to update them, too. If they are incompatible\n * with the version of CKEditor 5 you use, you may need to downgrade the CKEditor 5 packages\n * (which we do not recommend). Ask the plugin's author to upgrade the dependencies,\n * or fork their project and update it yourself.\n *\n * # Check imports\n *\n * The next step is to look at how you import CKEditor 5 into your project.\n *\n * **The {@glink updating/nim-migration/migration-to-new-installation-methods new installation methods}\n * are designed to prevent module duplication, so if you are not using them yet, you should consider\n * updating your project**. However, several legacy installation methods are still supported for backward\n * compatibility, and mixing them may result in module duplication.\n *\n * These are the most common import methods of the CKEditor 5 packages.\n *\n * - **New installation methods (NIM)** – Imports from the `ckeditor5` and `ckeditor5-premium-features` packages.\n * - **Optimized build** for the new installation methods – Imports from the `@ckeditor/ckeditor5-/dist/index.js`.\n * - **Predefined builds** (legacy) – Imports from the `@ckeditor/ckeditor5-build-` packages.\n * - **Default imports** (legacy) – Imports from the `@ckeditor/ckeditor5-` packages (default export).\n * - **`src`** (legacy) – Imports from the `@ckeditor/ckeditor5-/src/*`.\n * - **DLL builds** (legacy) – Imports from the `ckeditor5/build/` and `@ckeditor/ckeditor5-/build/*`.\n *\n * The best way to avoid duplicate modules is to avoid mixing these installation methods. For example, if you use imports\n * specific to the optimized build, you should use them for all CKEditor 5 packages. In addition, since\n * the Predefined and DLL builds already include the core of the editor, they cannot be used with other types of imports.\n *\n * Here is a matrix showing which installation methods are compatible with each other:\n *\n * | | NIM | Optimized build | Predefined builds | Default imports | `src` | DLL builds |\n * |------------------|-----|-----------------|-------------------|-----------------|-------|------------|\n * | NIM | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ |\n * | Optimized builds | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ |\n * | Predefined build | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ |\n * | Default imports | ❌ | ❌ | ❌ | ✅ | ✅ | ❌ |\n * | `src` | ❌ | ❌ | ❌ | ✅ | ✅ | ❌ |\n * | DLL builds | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ |\n *\n * If you use any third-party plugins, make sure the way you import them is compatible with\n * the way you import CKEditor 5.\n *\n *
    \n * New installation methods and optimized builds\n *\n * If you use the {@glink updating/nim-migration/migration-to-new-installation-methods new installation methods},\n * you should only import code from the `ckeditor5` and `ckeditor5-premium-features` packages.\n * Do not import code from the `@ckeditor/ckeditor5-` packages unless you follow\n * the {@glink getting-started/setup/optimizing-build-size Optimizing build size} guide and the imports from\n * the `@ckeditor/ckeditor5-` packages end with `/dist/index.js`.\n *\n * If you use a CDN, ensure that some files are not included twice in your project.\n *\n * Examples of valid and invalid import paths:\n *\n * ```js\n * import { ClassicEditor, Highlight } from 'ckeditor5'; // ✅\n * import { Highlight } from '@ckeditor/ckeditor5-highlight/dist/index.js'; // ✅\n * import Highlight from '@ckeditor/ckeditor5-highlight/src/highlight.js'; // ❌\n * import { Highlight } from '@ckeditor/ckeditor5-highlight'; // ❌\n * import '@ckeditor/ckeditor5-highlight/build/highlight.js'; // ❌\n * ```\n *
    \n *\n *
    \n * (Legacy) Predefined builds\n *\n * If you use the {@glink getting-started/legacy/installation-methods/predefined-builds Predefined builds},\n * you cannot import any additional plugins. These builds already include the editor's core\n * and selected plugins and importing additional ones will cause some modules to be bundled and loaded twice.\n *\n * Examples of valid and invalid import paths:\n *\n * ```js\n * import ClassicEditor from '@ckeditor/ckeditor5-build-classic'; // ✅\n * import { Highlight } from 'ckeditor5'; // ❌\n * import { Highlight } from '@ckeditor/ckeditor5-highlight/dist/index.js'; // ❌\n * import { Highlight } from '@ckeditor/ckeditor5-highlight'; // ❌\n * import Highlight from '@ckeditor/ckeditor5-highlight/src/highlight'; // ❌\n * import '@ckeditor/ckeditor5-highlight/build/highlight'; // ❌\n * ```\n *\n * If you are missing some features from the\n * {@glink getting-started/legacy/installation-methods/predefined-builds#plugins-included-in-the-predefined-builds list of plugins},\n * you should switch to the {@glink updating/nim-migration/migration-to-new-installation-methods new installation methods}\n * which do not have this limitation.\n * If you cannot migrate to the new installation methods, try the\n * {@glink getting-started/legacy/installation-methods/predefined-builds#superbuild superbuild} instead.\n * This build contains all the editor features.\n *
    \n *\n *
    \n * (Legacy) Default imports and `src` imports\n *\n * If you use the {@glink getting-started/legacy/installation-methods/quick-start-other legacy customized installation}\n * method, you should only import code from the `@ckeditor/ckeditor5-` packages. While you can import code from\n * the `@ckeditor/ckeditor5-/src/*` files, it is not recommended as it can make migration to the new installation\n * methods more difficult.\n *\n * If you use this installation method, you should not import code from the `ckeditor5`, `ckeditor5-premium-features`,\n * or `@ckeditor/ckeditor5-build-` packages.\n *\n * Examples of valid and invalid import paths:\n *\n * ```js\n * import { ClassicEditor } from '@ckeditor/ckeditor5-editor-classic'; // ✅\n * import { Highlight } from '@ckeditor/ckeditor5-highlight'; // ✅\n * import Highlight from '@ckeditor/ckeditor5-highlight/src/highlight.js'; // ✅ (not recommended)\n * import { Highlight } from 'ckeditor5'; // ❌\n * import { Highlight } from '@ckeditor/ckeditor5-highlight/dist/index.js'; // ❌\n * import '@ckeditor/ckeditor5-highlight/build/highlight'; // ❌\n * ```\n *
    \n *\n *
    \n * (Legacy) DLL builds\n *\n * If you are using the {@glink getting-started/legacy/advanced/alternative-setups/dll-builds legacy DLL builds},\n * you should not import any non-DLL modules.\n *\n * Examples of valid and invalid import paths:\n *\n * ```js\n * import 'ckeditor5/build/ckeditor5-dll.js';// ✅\n * import '@ckeditor/ckeditor5-editor-classic/build/editor-classic.js';// ✅\n * import '@ckeditor/ckeditor5-highlight/build/highlight.js';// ✅\n * import { Highlight } from 'ckeditor5'; // ❌\n * import { Highlight } from '@ckeditor/ckeditor5-highlight/dist/index.js'; // ❌\n * import { Highlight } from '@ckeditor/ckeditor5-highlight'; // ❌\n * import Highlight from '@ckeditor/ckeditor5-highlight/src/highlight.js'; // ❌\n * ```\n *
    \n *\n * # Reinstall `node_modules`\n *\n * Usually, npm and other package managers deduplicate all packages - for example, `ckeditor5` is only installed once\n * in `node_modules/`. However, it is known to fail to do so occasionally.\n *\n * To rule out this possibility, you can try the following:\n *\n * 1. Remove the `node_modules` directory.\n * 2. Remove the `package-lock.json`, `yarn.lock`, or `pnpm-lock.yaml` files (depending on the package manager used).\n * 3. Run `npm install` to reinstall all packages.\n * 4. Run `npm ls` to check how many times packages like `@ckeditor/ckeditor5-core` are installed.\n * If they are installed more than once, verify which package causes that.\n *\n * @error ckeditor-duplicated-modules\n */\n throw new CKEditorError('ckeditor-duplicated-modules', null);\n}\nelse {\n globalThis.CKEDITOR_VERSION = version;\n}\n","/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n/**\n * @module utils/emittermixin\n */\nimport EventInfo from './eventinfo.js';\nimport uid from './uid.js';\nimport priorities from './priorities.js';\nimport insertToPriorityArray from './inserttopriorityarray.js';\n// To check if component is loaded more than once.\nimport './version.js';\nimport CKEditorError from './ckeditorerror.js';\nconst _listeningTo = Symbol('listeningTo');\nconst _emitterId = Symbol('emitterId');\nconst _delegations = Symbol('delegations');\nconst defaultEmitterClass = /* #__PURE__ */ EmitterMixin(Object);\nexport default function EmitterMixin(base) {\n if (!base) {\n return defaultEmitterClass;\n }\n class Mixin extends base {\n on(event, callback, options) {\n this.listenTo(this, event, callback, options);\n }\n once(event, callback, options) {\n let wasFired = false;\n const onceCallback = (event, ...args) => {\n // Ensure the callback is called only once even if the callback itself leads to re-firing the event\n // (which would call the callback again).\n if (!wasFired) {\n wasFired = true;\n // Go off() at the first call.\n event.off();\n // Go with the original callback.\n callback.call(this, event, ...args);\n }\n };\n // Make a similar on() call, simply replacing the callback.\n this.listenTo(this, event, onceCallback, options);\n }\n off(event, callback) {\n this.stopListening(this, event, callback);\n }\n listenTo(emitter, event, callback, options = {}) {\n let emitterInfo, eventCallbacks;\n // _listeningTo contains a list of emitters that this object is listening to.\n // This list has the following format:\n //\n // _listeningTo: {\n // emitterId: {\n // emitter: emitter,\n // callbacks: {\n // event1: [ callback1, callback2, ... ]\n // ....\n // }\n // },\n // ...\n // }\n if (!this[_listeningTo]) {\n this[_listeningTo] = {};\n }\n const emitters = this[_listeningTo];\n if (!_getEmitterId(emitter)) {\n _setEmitterId(emitter);\n }\n const emitterId = _getEmitterId(emitter);\n if (!(emitterInfo = emitters[emitterId])) {\n emitterInfo = emitters[emitterId] = {\n emitter,\n callbacks: {}\n };\n }\n if (!(eventCallbacks = emitterInfo.callbacks[event])) {\n eventCallbacks = emitterInfo.callbacks[event] = [];\n }\n eventCallbacks.push(callback);\n // Finally register the callback to the event.\n addEventListener(this, emitter, event, callback, options);\n }\n stopListening(emitter, event, callback) {\n const emitters = this[_listeningTo];\n let emitterId = emitter && _getEmitterId(emitter);\n const emitterInfo = (emitters && emitterId) ? emitters[emitterId] : undefined;\n const eventCallbacks = (emitterInfo && event) ? emitterInfo.callbacks[event] : undefined;\n // Stop if nothing has been listened.\n if (!emitters || (emitter && !emitterInfo) || (event && !eventCallbacks)) {\n return;\n }\n // All params provided. off() that single callback.\n if (callback) {\n removeEventListener(this, emitter, event, callback);\n // We must remove callbacks as well in order to prevent memory leaks.\n // See https://github.com/ckeditor/ckeditor5/pull/8480\n const index = eventCallbacks.indexOf(callback);\n if (index !== -1) {\n if (eventCallbacks.length === 1) {\n delete emitterInfo.callbacks[event];\n }\n else {\n removeEventListener(this, emitter, event, callback);\n }\n }\n }\n // Only `emitter` and `event` provided. off() all callbacks for that event.\n else if (eventCallbacks) {\n while ((callback = eventCallbacks.pop())) {\n removeEventListener(this, emitter, event, callback);\n }\n delete emitterInfo.callbacks[event];\n }\n // Only `emitter` provided. off() all events for that emitter.\n else if (emitterInfo) {\n for (event in emitterInfo.callbacks) {\n this.stopListening(emitter, event);\n }\n delete emitters[emitterId];\n }\n // No params provided. off() all emitters.\n else {\n for (emitterId in emitters) {\n this.stopListening(emitters[emitterId].emitter);\n }\n delete this[_listeningTo];\n }\n }\n fire(eventOrInfo, ...args) {\n try {\n const eventInfo = eventOrInfo instanceof EventInfo ? eventOrInfo : new EventInfo(this, eventOrInfo);\n const event = eventInfo.name;\n let callbacks = getCallbacksForEvent(this, event);\n // Record that the event passed this emitter on its path.\n eventInfo.path.push(this);\n // Handle event listener callbacks first.\n if (callbacks) {\n // Copying callbacks array is the easiest and most secure way of preventing infinite loops, when event callbacks\n // are added while processing other callbacks. Previous solution involved adding counters (unique ids) but\n // failed if callbacks were added to the queue before currently processed callback.\n // If this proves to be too inefficient, another method is to change `.on()` so callbacks are stored if same\n // event is currently processed. Then, `.fire()` at the end, would have to add all stored events.\n callbacks = callbacks.slice();\n for (let i = 0; i < callbacks.length; i++) {\n const fn = callbacks[i].callback;\n fn.call(this, eventInfo, ...args);\n // Remove the callback from future requests if off() has been called.\n if (eventInfo.off.called) {\n // Remove the called mark for the next calls.\n delete eventInfo.off.called;\n this._removeEventListener(event, fn);\n }\n // Do not execute next callbacks if stop() was called.\n if (eventInfo.stop.called) {\n break;\n }\n }\n }\n // Delegate event to other emitters if needed.\n const delegations = this[_delegations];\n if (delegations) {\n const destinations = delegations.get(event);\n const passAllDestinations = delegations.get('*');\n if (destinations) {\n fireDelegatedEvents(destinations, eventInfo, args);\n }\n if (passAllDestinations) {\n fireDelegatedEvents(passAllDestinations, eventInfo, args);\n }\n }\n return eventInfo.return;\n }\n catch (err) {\n // @if CK_DEBUG // throw err;\n /* istanbul ignore next -- @preserve */\n CKEditorError.rethrowUnexpectedError(err, this);\n }\n }\n delegate(...events) {\n return {\n to: (emitter, nameOrFunction) => {\n if (!this[_delegations]) {\n this[_delegations] = new Map();\n }\n // Originally there was a for..of loop which unfortunately caused an error in Babel that didn't allow\n // build an application. See: https://github.com/ckeditor/ckeditor5-react/issues/40.\n events.forEach(eventName => {\n const destinations = this[_delegations].get(eventName);\n if (!destinations) {\n this[_delegations].set(eventName, new Map([[emitter, nameOrFunction]]));\n }\n else {\n destinations.set(emitter, nameOrFunction);\n }\n });\n }\n };\n }\n stopDelegating(event, emitter) {\n if (!this[_delegations]) {\n return;\n }\n if (!event) {\n this[_delegations].clear();\n }\n else if (!emitter) {\n this[_delegations].delete(event);\n }\n else {\n const destinations = this[_delegations].get(event);\n if (destinations) {\n destinations.delete(emitter);\n }\n }\n }\n _addEventListener(event, callback, options) {\n createEventNamespace(this, event);\n const lists = getCallbacksListsForNamespace(this, event);\n const priority = priorities.get(options.priority);\n const callbackDefinition = {\n callback,\n priority\n };\n // Add the callback to all callbacks list.\n for (const callbacks of lists) {\n // Add the callback to the list in the right priority position.\n insertToPriorityArray(callbacks, callbackDefinition);\n }\n }\n _removeEventListener(event, callback) {\n const lists = getCallbacksListsForNamespace(this, event);\n for (const callbacks of lists) {\n for (let i = 0; i < callbacks.length; i++) {\n if (callbacks[i].callback == callback) {\n // Remove the callback from the list (fixing the next index).\n callbacks.splice(i, 1);\n i--;\n }\n }\n }\n }\n }\n return Mixin;\n}\n// Backward compatibility with `mix`\n([\n 'on', 'once', 'off', 'listenTo',\n 'stopListening', 'fire', 'delegate', 'stopDelegating',\n '_addEventListener', '_removeEventListener'\n]).forEach(key => {\n EmitterMixin[key] = defaultEmitterClass.prototype[key];\n});\n/**\n * Checks if `listeningEmitter` listens to an emitter with given `listenedToEmitterId` and if so, returns that emitter.\n * If not, returns `null`.\n *\n * @internal\n * @param listeningEmitter An emitter that listens.\n * @param listenedToEmitterId Unique emitter id of emitter listened to.\n */\nexport function _getEmitterListenedTo(listeningEmitter, listenedToEmitterId) {\n const listeningTo = listeningEmitter[_listeningTo];\n if (listeningTo && listeningTo[listenedToEmitterId]) {\n return listeningTo[listenedToEmitterId].emitter;\n }\n return null;\n}\n/**\n * Sets emitter's unique id.\n *\n * **Note:** `_emitterId` can be set only once.\n *\n * @internal\n * @param emitter An emitter for which id will be set.\n * @param id Unique id to set. If not passed, random unique id will be set.\n */\nexport function _setEmitterId(emitter, id) {\n if (!emitter[_emitterId]) {\n emitter[_emitterId] = id || uid();\n }\n}\n/**\n * Returns emitter's unique id.\n *\n * @internal\n * @param emitter An emitter which id will be returned.\n */\nexport function _getEmitterId(emitter) {\n return emitter[_emitterId];\n}\n/**\n * Gets the internal `_events` property of the given object.\n * `_events` property store all lists with callbacks for registered event names.\n * If there were no events registered on the object, empty `_events` object is created.\n */\nfunction getEvents(source) {\n if (!source._events) {\n Object.defineProperty(source, '_events', {\n value: {}\n });\n }\n return source._events;\n}\n/**\n * Creates event node for generic-specific events relation architecture.\n */\nfunction makeEventNode() {\n return {\n callbacks: [],\n childEvents: []\n };\n}\n/**\n * Creates an architecture for generic-specific events relation.\n * If needed, creates all events for given eventName, i.e. if the first registered event\n * is foo:bar:abc, it will create foo:bar:abc, foo:bar and foo event and tie them together.\n * It also copies callbacks from more generic events to more specific events when\n * specific events are created.\n */\nfunction createEventNamespace(source, eventName) {\n const events = getEvents(source);\n // First, check if the event we want to add to the structure already exists.\n if (events[eventName]) {\n // If it exists, we don't have to do anything.\n return;\n }\n // In other case, we have to create the structure for the event.\n // Note, that we might need to create intermediate events too.\n // I.e. if foo:bar:abc is being registered and we only have foo in the structure,\n // we need to also register foo:bar.\n // Currently processed event name.\n let name = eventName;\n // Name of the event that is a child event for currently processed event.\n let childEventName = null;\n // Array containing all newly created specific events.\n const newEventNodes = [];\n // While loop can't check for ':' index because we have to handle generic events too.\n // In each loop, we truncate event name, going from the most specific name to the generic one.\n // I.e. foo:bar:abc -> foo:bar -> foo.\n while (name !== '') {\n if (events[name]) {\n // If the currently processed event name is already registered, we can be sure\n // that it already has all the structure created, so we can break the loop here\n // as no more events need to be registered.\n break;\n }\n // If this event is not yet registered, create a new object for it.\n events[name] = makeEventNode();\n // Add it to the array with newly created events.\n newEventNodes.push(events[name]);\n // Add previously processed event name as a child of this event.\n if (childEventName) {\n events[name].childEvents.push(childEventName);\n }\n childEventName = name;\n // If `.lastIndexOf()` returns -1, `.substr()` will return '' which will break the loop.\n name = name.substr(0, name.lastIndexOf(':'));\n }\n if (name !== '') {\n // If name is not empty, we found an already registered event that was a parent of the\n // event we wanted to register.\n // Copy that event's callbacks to newly registered events.\n for (const node of newEventNodes) {\n node.callbacks = events[name].callbacks.slice();\n }\n // Add last newly created event to the already registered event.\n events[name].childEvents.push(childEventName);\n }\n}\n/**\n * Gets an array containing callbacks list for a given event and it's more specific events.\n * I.e. if given event is foo:bar and there is also foo:bar:abc event registered, this will\n * return callback list of foo:bar and foo:bar:abc (but not foo).\n */\nfunction getCallbacksListsForNamespace(source, eventName) {\n const eventNode = getEvents(source)[eventName];\n if (!eventNode) {\n return [];\n }\n let callbacksLists = [eventNode.callbacks];\n for (let i = 0; i < eventNode.childEvents.length; i++) {\n const childCallbacksLists = getCallbacksListsForNamespace(source, eventNode.childEvents[i]);\n callbacksLists = callbacksLists.concat(childCallbacksLists);\n }\n return callbacksLists;\n}\n/**\n * Get the list of callbacks for a given event, but only if there any callbacks have been registered.\n * If there are no callbacks registered for given event, it checks if this is a specific event and looks\n * for callbacks for it's more generic version.\n */\nfunction getCallbacksForEvent(source, eventName) {\n if (!source._events) {\n return null;\n }\n let currentEventName = eventName;\n do {\n const event = source._events[currentEventName];\n if (event && event.callbacks && event.callbacks.length) {\n return event.callbacks;\n }\n const colonIndex = currentEventName.lastIndexOf(':');\n currentEventName = colonIndex > -1 ? currentEventName.substring(0, colonIndex) : '';\n } while (currentEventName);\n return null;\n}\n/**\n * Fires delegated events for given map of destinations.\n *\n * @param destinations A map containing `[ {@link module:utils/emittermixin~Emitter}, \"event name\" ]` pair destinations.\n * @param eventInfo The original event info object.\n * @param fireArgs Arguments the original event was fired with.\n */\nfunction fireDelegatedEvents(destinations, eventInfo, fireArgs) {\n for (let [emitter, name] of destinations) {\n if (!name) {\n name = eventInfo.name;\n }\n else if (typeof name == 'function') {\n name = name(eventInfo.name);\n }\n const delegatedInfo = new EventInfo(eventInfo.source, name);\n delegatedInfo.path = [...eventInfo.path];\n emitter.fire(delegatedInfo, ...fireArgs);\n }\n}\n/**\n * Helper for registering event callback on the emitter.\n */\nfunction addEventListener(listener, emitter, event, callback, options) {\n if (emitter._addEventListener) {\n emitter._addEventListener(event, callback, options);\n }\n else {\n // Allow listening on objects that do not implement Emitter interface.\n // This is needed in some tests that are using mocks instead of the real objects with EmitterMixin mixed.\n (listener._addEventListener).call(emitter, event, callback, options);\n }\n}\n/**\n * Helper for removing event callback from the emitter.\n */\nfunction removeEventListener(listener, emitter, event, callback) {\n if (emitter._removeEventListener) {\n emitter._removeEventListener(event, callback);\n }\n else {\n // Allow listening on objects that do not implement Emitter interface.\n // This is needed in some tests that are using mocks instead of the real objects with EmitterMixin mixed.\n listener._removeEventListener.call(emitter, event, callback);\n }\n}\n","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nexport default isObject;\n","/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n/* eslint-disable @typescript-eslint/unified-signatures */\n/**\n * @module utils/observablemixin\n */\nimport EmitterMixin from './emittermixin.js';\nimport CKEditorError from './ckeditorerror.js';\nimport { isObject } from 'lodash-es';\nconst observablePropertiesSymbol = Symbol('observableProperties');\nconst boundObservablesSymbol = Symbol('boundObservables');\nconst boundPropertiesSymbol = Symbol('boundProperties');\nconst decoratedMethods = Symbol('decoratedMethods');\nconst decoratedOriginal = Symbol('decoratedOriginal');\nconst defaultObservableClass = /* #__PURE__ */ ObservableMixin(/* #__PURE__ */ EmitterMixin());\nexport default function ObservableMixin(base) {\n if (!base) {\n return defaultObservableClass;\n }\n class Mixin extends base {\n set(name, value) {\n // If the first parameter is an Object, iterate over its properties.\n if (isObject(name)) {\n Object.keys(name).forEach(property => {\n this.set(property, name[property]);\n }, this);\n return;\n }\n initObservable(this);\n const properties = this[observablePropertiesSymbol];\n if ((name in this) && !properties.has(name)) {\n /**\n * Cannot override an existing property.\n *\n * This error is thrown when trying to {@link module:utils/observablemixin~Observable#set set} a property with\n * a name of an already existing property. For example:\n *\n * ```ts\n * let observable = new Model();\n * observable.property = 1;\n * observable.set( 'property', 2 );\t\t\t// throws\n *\n * observable.set( 'property', 1 );\n * observable.set( 'property', 2 );\t\t\t// ok, because this is an existing property.\n * ```\n *\n * @error observable-set-cannot-override\n */\n throw new CKEditorError('observable-set-cannot-override', this);\n }\n Object.defineProperty(this, name, {\n enumerable: true,\n configurable: true,\n get() {\n return properties.get(name);\n },\n set(value) {\n const oldValue = properties.get(name);\n // Fire `set` event before the new value will be set to make it possible\n // to override observable property without affecting `change` event.\n // See https://github.com/ckeditor/ckeditor5-utils/issues/171.\n let newValue = this.fire(`set:${name}`, name, value, oldValue);\n if (newValue === undefined) {\n newValue = value;\n }\n // Allow undefined as an initial value like A.define( 'x', undefined ) (#132).\n // Note: When properties map has no such own property, then its value is undefined.\n if (oldValue !== newValue || !properties.has(name)) {\n properties.set(name, newValue);\n this.fire(`change:${name}`, name, newValue, oldValue);\n }\n }\n });\n this[name] = value;\n }\n bind(...bindProperties) {\n if (!bindProperties.length || !isStringArray(bindProperties)) {\n /**\n * All properties must be strings.\n *\n * @error observable-bind-wrong-properties\n */\n throw new CKEditorError('observable-bind-wrong-properties', this);\n }\n if ((new Set(bindProperties)).size !== bindProperties.length) {\n /**\n * Properties must be unique.\n *\n * @error observable-bind-duplicate-properties\n */\n throw new CKEditorError('observable-bind-duplicate-properties', this);\n }\n initObservable(this);\n const boundProperties = this[boundPropertiesSymbol];\n bindProperties.forEach(propertyName => {\n if (boundProperties.has(propertyName)) {\n /**\n * Cannot bind the same property more than once.\n *\n * @error observable-bind-rebind\n */\n throw new CKEditorError('observable-bind-rebind', this);\n }\n });\n const bindings = new Map();\n bindProperties.forEach(a => {\n const binding = { property: a, to: [] };\n boundProperties.set(a, binding);\n bindings.set(a, binding);\n });\n return {\n to: bindTo,\n toMany: bindToMany,\n _observable: this,\n _bindProperties: bindProperties,\n _to: [],\n _bindings: bindings\n };\n }\n unbind(...unbindProperties) {\n // Nothing to do here if not inited yet.\n if (!(this[observablePropertiesSymbol])) {\n return;\n }\n const boundProperties = this[boundPropertiesSymbol];\n const boundObservables = this[boundObservablesSymbol];\n if (unbindProperties.length) {\n if (!isStringArray(unbindProperties)) {\n /**\n * Properties must be strings.\n *\n * @error observable-unbind-wrong-properties\n */\n throw new CKEditorError('observable-unbind-wrong-properties', this);\n }\n unbindProperties.forEach(propertyName => {\n const binding = boundProperties.get(propertyName);\n // Nothing to do if the binding is not defined\n if (!binding) {\n return;\n }\n binding.to.forEach(([toObservable, toProperty]) => {\n const toProperties = boundObservables.get(toObservable);\n const toPropertyBindings = toProperties[toProperty];\n toPropertyBindings.delete(binding);\n if (!toPropertyBindings.size) {\n delete toProperties[toProperty];\n }\n if (!Object.keys(toProperties).length) {\n boundObservables.delete(toObservable);\n this.stopListening(toObservable, 'change');\n }\n });\n boundProperties.delete(propertyName);\n });\n }\n else {\n boundObservables.forEach((bindings, boundObservable) => {\n this.stopListening(boundObservable, 'change');\n });\n boundObservables.clear();\n boundProperties.clear();\n }\n }\n decorate(methodName) {\n initObservable(this);\n const originalMethod = this[methodName];\n if (!originalMethod) {\n /**\n * Cannot decorate an undefined method.\n *\n * @error observablemixin-cannot-decorate-undefined\n * @param {Object} object The object which method should be decorated.\n * @param {String} methodName Name of the method which does not exist.\n */\n throw new CKEditorError('observablemixin-cannot-decorate-undefined', this, { object: this, methodName });\n }\n this.on(methodName, (evt, args) => {\n evt.return = originalMethod.apply(this, args);\n });\n this[methodName] = function (...args) {\n return this.fire(methodName, args);\n };\n this[methodName][decoratedOriginal] = originalMethod;\n if (!this[decoratedMethods]) {\n this[decoratedMethods] = [];\n }\n this[decoratedMethods].push(methodName);\n }\n // Override the EmitterMixin stopListening method to be able to clean (and restore) decorated methods.\n // This is needed in case of:\n // 1. Have x.foo() decorated.\n // 2. Call x.stopListening()\n // 3. Call x.foo(). Problem: nothing happens (the original foo() method is not executed)\n stopListening(emitter, event, callback) {\n // Removing all listeners so let's clean the decorated methods to the original state.\n if (!emitter && this[decoratedMethods]) {\n for (const methodName of this[decoratedMethods]) {\n this[methodName] = this[methodName][decoratedOriginal];\n }\n delete this[decoratedMethods];\n }\n super.stopListening(emitter, event, callback);\n }\n }\n return Mixin;\n}\n// Backward compatibility with `mix`\n([\n 'set', 'bind', 'unbind', 'decorate',\n 'on', 'once', 'off', 'listenTo',\n 'stopListening', 'fire', 'delegate', 'stopDelegating',\n '_addEventListener', '_removeEventListener'\n]).forEach(key => {\n ObservableMixin[key] = defaultObservableClass.prototype[key];\n});\n// Init symbol properties needed for the observable mechanism to work.\nfunction initObservable(observable) {\n // Do nothing if already inited.\n if (observable[observablePropertiesSymbol]) {\n return;\n }\n // The internal hash containing the observable's state.\n Object.defineProperty(observable, observablePropertiesSymbol, {\n value: new Map()\n });\n // Map containing bindings to external observables. It shares the binding objects\n // (`{ observable: A, property: 'a', to: ... }`) with {@link module:utils/observablemixin~Observable#_boundProperties} and\n // it is used to observe external observables to update own properties accordingly.\n // See {@link module:utils/observablemixin~Observable#bind}.\n //\n //\t\tA.bind( 'a', 'b', 'c' ).to( B, 'x', 'y', 'x' );\n //\t\tconsole.log( A._boundObservables );\n //\n //\t\t\tMap( {\n //\t\t\t\tB: {\n //\t\t\t\t\tx: Set( [\n //\t\t\t\t\t\t{ observable: A, property: 'a', to: [ [ B, 'x' ] ] },\n //\t\t\t\t\t\t{ observable: A, property: 'c', to: [ [ B, 'x' ] ] }\n //\t\t\t\t\t] ),\n //\t\t\t\t\ty: Set( [\n //\t\t\t\t\t\t{ observable: A, property: 'b', to: [ [ B, 'y' ] ] },\n //\t\t\t\t\t] )\n //\t\t\t\t}\n //\t\t\t} )\n //\n //\t\tA.bind( 'd' ).to( B, 'z' ).to( C, 'w' ).as( callback );\n //\t\tconsole.log( A._boundObservables );\n //\n //\t\t\tMap( {\n //\t\t\t\tB: {\n //\t\t\t\t\tx: Set( [\n //\t\t\t\t\t\t{ observable: A, property: 'a', to: [ [ B, 'x' ] ] },\n //\t\t\t\t\t\t{ observable: A, property: 'c', to: [ [ B, 'x' ] ] }\n //\t\t\t\t\t] ),\n //\t\t\t\t\ty: Set( [\n //\t\t\t\t\t\t{ observable: A, property: 'b', to: [ [ B, 'y' ] ] },\n //\t\t\t\t\t] ),\n //\t\t\t\t\tz: Set( [\n //\t\t\t\t\t\t{ observable: A, property: 'd', to: [ [ B, 'z' ], [ C, 'w' ] ], callback: callback }\n //\t\t\t\t\t] )\n //\t\t\t\t},\n //\t\t\t\tC: {\n //\t\t\t\t\tw: Set( [\n //\t\t\t\t\t\t{ observable: A, property: 'd', to: [ [ B, 'z' ], [ C, 'w' ] ], callback: callback }\n //\t\t\t\t\t] )\n //\t\t\t\t}\n //\t\t\t} )\n //\n Object.defineProperty(observable, boundObservablesSymbol, {\n value: new Map()\n });\n // Object that stores which properties of this observable are bound and how. It shares\n // the binding objects (`{ observable: A, property: 'a', to: ... }`) with\n // {@link module:utils/observablemixin~Observable#_boundObservables}. This data structure is\n // a reverse of {@link module:utils/observablemixin~Observable#_boundObservables} and it is helpful for\n // {@link module:utils/observablemixin~Observable#unbind}.\n //\n // See {@link module:utils/observablemixin~Observable#bind}.\n //\n //\t\tA.bind( 'a', 'b', 'c' ).to( B, 'x', 'y', 'x' );\n //\t\tconsole.log( A._boundProperties );\n //\n //\t\t\tMap( {\n //\t\t\t\ta: { observable: A, property: 'a', to: [ [ B, 'x' ] ] },\n //\t\t\t\tb: { observable: A, property: 'b', to: [ [ B, 'y' ] ] },\n //\t\t\t\tc: { observable: A, property: 'c', to: [ [ B, 'x' ] ] }\n //\t\t\t} )\n //\n //\t\tA.bind( 'd' ).to( B, 'z' ).to( C, 'w' ).as( callback );\n //\t\tconsole.log( A._boundProperties );\n //\n //\t\t\tMap( {\n //\t\t\t\ta: { observable: A, property: 'a', to: [ [ B, 'x' ] ] },\n //\t\t\t\tb: { observable: A, property: 'b', to: [ [ B, 'y' ] ] },\n //\t\t\t\tc: { observable: A, property: 'c', to: [ [ B, 'x' ] ] },\n //\t\t\t\td: { observable: A, property: 'd', to: [ [ B, 'z' ], [ C, 'w' ] ], callback: callback }\n //\t\t\t} )\n Object.defineProperty(observable, boundPropertiesSymbol, {\n value: new Map()\n });\n}\n/**\n * A chaining for {@link module:utils/observablemixin~Observable#bind} providing `.to()` interface.\n *\n * @param args Arguments of the `.to( args )` binding.\n */\nfunction bindTo(...args) {\n const parsedArgs = parseBindToArgs(...args);\n const bindingsKeys = Array.from(this._bindings.keys());\n const numberOfBindings = bindingsKeys.length;\n // Eliminate A.bind( 'x' ).to( B, C )\n if (!parsedArgs.callback && parsedArgs.to.length > 1) {\n /**\n * Binding multiple observables only possible with callback.\n *\n * @error observable-bind-to-no-callback\n */\n throw new CKEditorError('observable-bind-to-no-callback', this);\n }\n // Eliminate A.bind( 'x', 'y' ).to( B, callback )\n if (numberOfBindings > 1 && parsedArgs.callback) {\n /**\n * Cannot bind multiple properties and use a callback in one binding.\n *\n * @error observable-bind-to-extra-callback\n */\n throw new CKEditorError('observable-bind-to-extra-callback', this);\n }\n parsedArgs.to.forEach(to => {\n // Eliminate A.bind( 'x', 'y' ).to( B, 'a' )\n if (to.properties.length && to.properties.length !== numberOfBindings) {\n /**\n * The number of properties must match.\n *\n * @error observable-bind-to-properties-length\n */\n throw new CKEditorError('observable-bind-to-properties-length', this);\n }\n // When no to.properties specified, observing source properties instead i.e.\n // A.bind( 'x', 'y' ).to( B ) -> Observe B.x and B.y\n if (!to.properties.length) {\n to.properties = this._bindProperties;\n }\n });\n this._to = parsedArgs.to;\n // Fill {@link BindChain#_bindings} with callback. When the callback is set there's only one binding.\n if (parsedArgs.callback) {\n this._bindings.get(bindingsKeys[0]).callback = parsedArgs.callback;\n }\n attachBindToListeners(this._observable, this._to);\n // Update observable._boundProperties and observable._boundObservables.\n updateBindToBound(this);\n // Set initial values of bound properties.\n this._bindProperties.forEach(propertyName => {\n updateBoundObservableProperty(this._observable, propertyName);\n });\n}\n/**\n * Binds to an attribute in a set of iterable observables.\n */\nfunction bindToMany(observables, attribute, callback) {\n if (this._bindings.size > 1) {\n /**\n * Binding one attribute to many observables only possible with one attribute.\n *\n * @error observable-bind-to-many-not-one-binding\n */\n throw new CKEditorError('observable-bind-to-many-not-one-binding', this);\n }\n this.to(\n // Bind to #attribute of each observable...\n ...getBindingTargets(observables, attribute), \n // ...using given callback to parse attribute values.\n callback);\n}\n/**\n * Returns an array of binding components for\n * {@link Observable#bind} from a set of iterable observables.\n */\nfunction getBindingTargets(observables, attribute) {\n const observableAndAttributePairs = observables.map(observable => [observable, attribute]);\n // Merge pairs to one-dimension array of observables and attributes.\n return Array.prototype.concat.apply([], observableAndAttributePairs);\n}\n/**\n * Check if all entries of the array are of `String` type.\n */\nfunction isStringArray(arr) {\n return arr.every(a => typeof a == 'string');\n}\n/**\n * Parses and validates {@link Observable#bind}`.to( args )` arguments and returns\n * an object with a parsed structure. For example\n *\n * ```ts\n * A.bind( 'x' ).to( B, 'a', C, 'b', call );\n * ```\n *\n * becomes\n *\n * ```ts\n * {\n * \tto: [\n * \t\t{ observable: B, properties: [ 'a' ] },\n * \t\t{ observable: C, properties: [ 'b' ] },\n * \t],\n * \tcallback: call\n * }\n *\n * @param args Arguments of {@link Observable#bind}`.to( args )`.\n */\nfunction parseBindToArgs(...args) {\n // Eliminate A.bind( 'x' ).to()\n if (!args.length) {\n /**\n * Invalid argument syntax in `to()`.\n *\n * @error observable-bind-to-parse-error\n */\n throw new CKEditorError('observable-bind-to-parse-error', null);\n }\n const parsed = { to: [] };\n let lastObservable;\n if (typeof args[args.length - 1] == 'function') {\n parsed.callback = args.pop();\n }\n args.forEach(a => {\n if (typeof a == 'string') {\n lastObservable.properties.push(a);\n }\n else if (typeof a == 'object') {\n lastObservable = { observable: a, properties: [] };\n parsed.to.push(lastObservable);\n }\n else {\n throw new CKEditorError('observable-bind-to-parse-error', null);\n }\n });\n return parsed;\n}\n/**\n * Synchronizes {@link module:utils/observable#_boundObservables} with {@link Binding}.\n *\n * @param binding A binding to store in {@link Observable#_boundObservables}.\n * @param toObservable A observable, which is a new component of `binding`.\n * @param toPropertyName A name of `toObservable`'s property, a new component of the `binding`.\n */\nfunction updateBoundObservables(observable, binding, toObservable, toPropertyName) {\n const boundObservables = observable[boundObservablesSymbol];\n const bindingsToObservable = boundObservables.get(toObservable);\n const bindings = bindingsToObservable || {};\n if (!bindings[toPropertyName]) {\n bindings[toPropertyName] = new Set();\n }\n // Pass the binding to a corresponding Set in `observable._boundObservables`.\n bindings[toPropertyName].add(binding);\n if (!bindingsToObservable) {\n boundObservables.set(toObservable, bindings);\n }\n}\n/**\n * Synchronizes {@link Observable#_boundProperties} and {@link Observable#_boundObservables}\n * with {@link BindChain}.\n *\n * Assuming the following binding being created\n *\n * ```ts\n * A.bind( 'a', 'b' ).to( B, 'x', 'y' );\n * ```\n *\n * the following bindings were initialized by {@link Observable#bind} in {@link BindChain#_bindings}:\n *\n * ```ts\n * {\n * \ta: { observable: A, property: 'a', to: [] },\n * \tb: { observable: A, property: 'b', to: [] },\n * }\n * ```\n *\n * Iterate over all bindings in this chain and fill their `to` properties with\n * corresponding to( ... ) arguments (components of the binding), so\n *\n * ```ts\n * {\n * \ta: { observable: A, property: 'a', to: [ B, 'x' ] },\n * \tb: { observable: A, property: 'b', to: [ B, 'y' ] },\n * }\n * ```\n *\n * Then update the structure of {@link Observable#_boundObservables} with updated\n * binding, so it becomes:\n *\n * ```ts\n * Map( {\n * \tB: {\n * \t\tx: Set( [\n * \t\t\t{ observable: A, property: 'a', to: [ [ B, 'x' ] ] }\n * \t\t] ),\n * \t\ty: Set( [\n * \t\t\t{ observable: A, property: 'b', to: [ [ B, 'y' ] ] },\n * \t\t] )\n * \t}\n * } )\n * ```\n *\n * @param chain The binding initialized by {@link Observable#bind}.\n */\nfunction updateBindToBound(chain) {\n let toProperty;\n chain._bindings.forEach((binding, propertyName) => {\n // Note: For a binding without a callback, this will run only once\n // like in A.bind( 'x', 'y' ).to( B, 'a', 'b' )\n // TODO: ES6 destructuring.\n chain._to.forEach(to => {\n toProperty = to.properties[binding.callback ? 0 : chain._bindProperties.indexOf(propertyName)];\n binding.to.push([to.observable, toProperty]);\n updateBoundObservables(chain._observable, binding, to.observable, toProperty);\n });\n });\n}\n/**\n * Updates an property of a {@link Observable} with a value\n * determined by an entry in {@link Observable#_boundProperties}.\n *\n * @param observable A observable which property is to be updated.\n * @param propertyName An property to be updated.\n */\nfunction updateBoundObservableProperty(observable, propertyName) {\n const boundProperties = observable[boundPropertiesSymbol];\n const binding = boundProperties.get(propertyName);\n let propertyValue;\n // When a binding with callback is created like\n //\n // \t\tA.bind( 'a' ).to( B, 'b', C, 'c', callback );\n //\n // collect B.b and C.c, then pass them to callback to set A.a.\n if (binding.callback) {\n propertyValue = binding.callback.apply(observable, binding.to.map(to => to[0][to[1]]));\n }\n else {\n propertyValue = binding.to[0];\n propertyValue = propertyValue[0][propertyValue[1]];\n }\n if (Object.prototype.hasOwnProperty.call(observable, propertyName)) {\n observable[propertyName] = propertyValue;\n }\n else {\n observable.set(propertyName, propertyValue);\n }\n}\n/**\n * Starts listening to changes in {@link BindChain._to} observables to update\n * {@link BindChain._observable} {@link BindChain._bindProperties}. Also sets the\n * initial state of {@link BindChain._observable}.\n *\n * @param chain The chain initialized by {@link Observable#bind}.\n */\nfunction attachBindToListeners(observable, toBindings) {\n toBindings.forEach(to => {\n const boundObservables = observable[boundObservablesSymbol];\n let bindings;\n // If there's already a chain between the observables (`observable` listens to\n // `to.observable`), there's no need to create another `change` event listener.\n if (!boundObservables.get(to.observable)) {\n observable.listenTo(to.observable, 'change', (evt, propertyName) => {\n bindings = boundObservables.get(to.observable)[propertyName];\n // Note: to.observable will fire for any property change, react\n // to changes of properties which are bound only.\n if (bindings) {\n bindings.forEach(binding => {\n updateBoundObservableProperty(observable, binding.property);\n });\n }\n });\n }\n });\n}\n","/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n/**\n * @module utils/count\n */\n/**\n * Returns the number of items return by the iterator.\n *\n * ```ts\n * count( [ 1, 2, 3, 4, 5 ] ); // 5;\n * ```\n *\n * @param iterable Any iterable.\n * @returns Number of items returned by that iterable.\n */\nexport default function count(iterable) {\n let count = 0;\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n for (const _ of iterable) {\n count++;\n }\n return count;\n}\n","/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n/**\n * @module utils/comparearrays\n */\n/**\n * Compares how given arrays relate to each other. One array can be: same as another array, prefix of another array\n * or completely different. If arrays are different, first index at which they differ is returned. Otherwise,\n * a flag specifying the relation is returned. Flags are negative numbers, so whenever a number >= 0 is returned\n * it means that arrays differ.\n *\n * ```ts\n * compareArrays( [ 0, 2 ], [ 0, 2 ] );\t\t// 'same'\n * compareArrays( [ 0, 2 ], [ 0, 2, 1 ] );\t\t// 'prefix'\n * compareArrays( [ 0, 2 ], [ 0 ] );\t\t\t// 'extension'\n * compareArrays( [ 0, 2 ], [ 1, 2 ] );\t\t// 0\n * compareArrays( [ 0, 2 ], [ 0, 1 ] );\t\t// 1\n * ```\n *\n * @param a Array that is compared.\n * @param b Array to compare with.\n * @returns How array `a` is related to `b`.\n */\nexport default function compareArrays(a, b) {\n const minLen = Math.min(a.length, b.length);\n for (let i = 0; i < minLen; i++) {\n if (a[i] != b[i]) {\n // The arrays are different.\n return i;\n }\n }\n // Both arrays were same at all points.\n if (a.length == b.length) {\n // If their length is also same, they are the same.\n return 'same';\n }\n else if (a.length < b.length) {\n // Compared array is shorter so it is a prefix of the other array.\n return 'prefix';\n }\n else {\n // Compared array is longer so it is an extension of the other array.\n return 'extension';\n }\n}\n","/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n/**\n * @module utils/isiterable\n */\n/**\n * Checks if value implements iterator interface.\n *\n * @param value The value to check.\n * @returns True if value implements iterator interface.\n */\nexport default function isIterable(value) {\n return !!(value && value[Symbol.iterator]);\n}\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nexport default freeGlobal;\n","import freeGlobal from './_freeGlobal.js';\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nexport default root;\n","import root from './_root.js';\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nexport default Symbol;\n","import Symbol from './_Symbol.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nexport default getRawTag;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nexport default objectToString;\n","import Symbol from './_Symbol.js';\nimport getRawTag from './_getRawTag.js';\nimport objectToString from './_objectToString.js';\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nexport default baseGetTag;\n","/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nexport default isArray;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nexport default isObjectLike;\n","import baseGetTag from './_baseGetTag.js';\nimport isArray from './isArray.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar stringTag = '[object String]';\n\n/**\n * Checks if `value` is classified as a `String` primitive or object.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a string, else `false`.\n * @example\n *\n * _.isString('abc');\n * // => true\n *\n * _.isString(1);\n * // => false\n */\nfunction isString(value) {\n return typeof value == 'string' ||\n (!isArray(value) && isObjectLike(value) && baseGetTag(value) == stringTag);\n}\n\nexport default isString;\n","/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n/**\n * @module utils/dom/createelement\n */\nimport isIterable from '../isiterable.js';\nimport { isString } from 'lodash-es';\n/**\n * Creates an HTML or SVG element with attributes and children elements.\n *\n * ```ts\n * createElement( document, 'p' ); //

    \n * createElement( document, 'mask', { xmlns: 'http://www.w3.org/2000/svg' } ); // \n * ```\n *\n * @param doc Document used to create the element.\n * @param name Name of the element.\n * @param attributes Object where keys represent attribute keys and values represent attribute values.\n * @param children Child or any iterable of children. Strings will be automatically turned into Text nodes.\n * @returns HTML or SVG element.\n */\nexport default function createElement(doc, name, attributes = {}, children = []) {\n const namespace = attributes && attributes.xmlns;\n const element = namespace ? doc.createElementNS(namespace, name) : doc.createElement(name);\n for (const key in attributes) {\n element.setAttribute(key, attributes[key]);\n }\n if (isString(children) || !isIterable(children)) {\n children = [children];\n }\n for (let child of children) {\n if (isString(child)) {\n child = doc.createTextNode(child);\n }\n element.appendChild(child);\n }\n return element;\n}\n","/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\nexport default overArg;\n","import overArg from './_overArg.js';\n\n/** Built-in value references. */\nvar getPrototype = overArg(Object.getPrototypeOf, Object);\n\nexport default getPrototype;\n","import baseGetTag from './_baseGetTag.js';\nimport getPrototype from './_getPrototype.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to infer the `Object` constructor. */\nvar objectCtorString = funcToString.call(Object);\n\n/**\n * Checks if `value` is a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * @static\n * @memberOf _\n * @since 0.8.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * _.isPlainObject(new Foo);\n * // => false\n *\n * _.isPlainObject([1, 2, 3]);\n * // => false\n *\n * _.isPlainObject({ 'x': 0, 'y': 0 });\n * // => true\n *\n * _.isPlainObject(Object.create(null));\n * // => true\n */\nfunction isPlainObject(value) {\n if (!isObjectLike(value) || baseGetTag(value) != objectTag) {\n return false;\n }\n var proto = getPrototype(value);\n if (proto === null) {\n return true;\n }\n var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;\n return typeof Ctor == 'function' && Ctor instanceof Ctor &&\n funcToString.call(Ctor) == objectCtorString;\n}\n\nexport default isPlainObject;\n","/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\nexport default listCacheClear;\n","/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\nexport default eq;\n","import eq from './eq.js';\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\nexport default assocIndexOf;\n","import assocIndexOf from './_assocIndexOf.js';\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\nexport default listCacheDelete;\n","import assocIndexOf from './_assocIndexOf.js';\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\nexport default listCacheGet;\n","import assocIndexOf from './_assocIndexOf.js';\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\nexport default listCacheHas;\n","import assocIndexOf from './_assocIndexOf.js';\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\nexport default listCacheSet;\n","import listCacheClear from './_listCacheClear.js';\nimport listCacheDelete from './_listCacheDelete.js';\nimport listCacheGet from './_listCacheGet.js';\nimport listCacheHas from './_listCacheHas.js';\nimport listCacheSet from './_listCacheSet.js';\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\nexport default ListCache;\n","import ListCache from './_ListCache.js';\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n this.size = 0;\n}\n\nexport default stackClear;\n","/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n}\n\nexport default stackDelete;\n","/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\nexport default stackGet;\n","/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\nexport default stackHas;\n","import baseGetTag from './_baseGetTag.js';\nimport isObject from './isObject.js';\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n proxyTag = '[object Proxy]';\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\nexport default isFunction;\n","import root from './_root.js';\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\nexport default coreJsData;\n","import coreJsData from './_coreJsData.js';\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\nexport default isMasked;\n","/** Used for built-in method references. */\nvar funcProto = Function.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\nexport default toSource;\n","import isFunction from './isFunction.js';\nimport isMasked from './_isMasked.js';\nimport isObject from './isObject.js';\nimport toSource from './_toSource.js';\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\nexport default baseIsNative;\n","/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\nexport default getValue;\n","import baseIsNative from './_baseIsNative.js';\nimport getValue from './_getValue.js';\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\nexport default getNative;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map');\n\nexport default Map;\n","import getNative from './_getNative.js';\n\n/* Built-in method references that are verified to be native. */\nvar nativeCreate = getNative(Object, 'create');\n\nexport default nativeCreate;\n","import nativeCreate from './_nativeCreate.js';\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n}\n\nexport default hashClear;\n","/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\nexport default hashDelete;\n","import nativeCreate from './_nativeCreate.js';\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\nexport default hashGet;\n","import nativeCreate from './_nativeCreate.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\nexport default hashHas;\n","import nativeCreate from './_nativeCreate.js';\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\nexport default hashSet;\n","import hashClear from './_hashClear.js';\nimport hashDelete from './_hashDelete.js';\nimport hashGet from './_hashGet.js';\nimport hashHas from './_hashHas.js';\nimport hashSet from './_hashSet.js';\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\nexport default Hash;\n","import Hash from './_Hash.js';\nimport ListCache from './_ListCache.js';\nimport Map from './_Map.js';\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\nexport default mapCacheClear;\n","/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\nexport default isKeyable;\n","import isKeyable from './_isKeyable.js';\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\nexport default getMapData;\n","import getMapData from './_getMapData.js';\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\nexport default mapCacheDelete;\n","import getMapData from './_getMapData.js';\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\nexport default mapCacheGet;\n","import getMapData from './_getMapData.js';\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\nexport default mapCacheHas;\n","import getMapData from './_getMapData.js';\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\nexport default mapCacheSet;\n","import mapCacheClear from './_mapCacheClear.js';\nimport mapCacheDelete from './_mapCacheDelete.js';\nimport mapCacheGet from './_mapCacheGet.js';\nimport mapCacheHas from './_mapCacheHas.js';\nimport mapCacheSet from './_mapCacheSet.js';\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\nexport default MapCache;\n","import ListCache from './_ListCache.js';\nimport Map from './_Map.js';\nimport MapCache from './_MapCache.js';\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n}\n\nexport default stackSet;\n","import ListCache from './_ListCache.js';\nimport stackClear from './_stackClear.js';\nimport stackDelete from './_stackDelete.js';\nimport stackGet from './_stackGet.js';\nimport stackHas from './_stackHas.js';\nimport stackSet from './_stackSet.js';\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\nexport default Stack;\n","/**\n * A specialized version of `_.forEach` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns `array`.\n */\nfunction arrayEach(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (iteratee(array[index], index, array) === false) {\n break;\n }\n }\n return array;\n}\n\nexport default arrayEach;\n","import getNative from './_getNative.js';\n\nvar defineProperty = (function() {\n try {\n var func = getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n}());\n\nexport default defineProperty;\n","import defineProperty from './_defineProperty.js';\n\n/**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction baseAssignValue(object, key, value) {\n if (key == '__proto__' && defineProperty) {\n defineProperty(object, key, {\n 'configurable': true,\n 'enumerable': true,\n 'value': value,\n 'writable': true\n });\n } else {\n object[key] = value;\n }\n}\n\nexport default baseAssignValue;\n","import baseAssignValue from './_baseAssignValue.js';\nimport eq from './eq.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\nexport default assignValue;\n","import assignValue from './_assignValue.js';\nimport baseAssignValue from './_baseAssignValue.js';\n\n/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\nfunction copyObject(source, props, object, customizer) {\n var isNew = !object;\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n\n var newValue = customizer\n ? customizer(object[key], source[key], key, object, source)\n : undefined;\n\n if (newValue === undefined) {\n newValue = source[key];\n }\n if (isNew) {\n baseAssignValue(object, key, newValue);\n } else {\n assignValue(object, key, newValue);\n }\n }\n return object;\n}\n\nexport default copyObject;\n","/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\nexport default baseTimes;\n","import baseGetTag from './_baseGetTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]';\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\nexport default baseIsArguments;\n","import baseIsArguments from './_baseIsArguments.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\nexport default isArguments;\n","/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nexport default stubFalse;\n","import root from './_root.js';\nimport stubFalse from './stubFalse.js';\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\nexport default isBuffer;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\nexport default isIndex;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\nexport default isLength;\n","import baseGetTag from './_baseGetTag.js';\nimport isLength from './isLength.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\nexport default baseIsTypedArray;\n","/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\nexport default baseUnary;\n","import freeGlobal from './_freeGlobal.js';\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n if (types) {\n return types;\n }\n\n // Legacy `process.binding('util')` for Node.js < 10.\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\nexport default nodeUtil;\n","import baseIsTypedArray from './_baseIsTypedArray.js';\nimport baseUnary from './_baseUnary.js';\nimport nodeUtil from './_nodeUtil.js';\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\nexport default isTypedArray;\n","import baseTimes from './_baseTimes.js';\nimport isArguments from './isArguments.js';\nimport isArray from './isArray.js';\nimport isBuffer from './isBuffer.js';\nimport isIndex from './_isIndex.js';\nimport isTypedArray from './isTypedArray.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\nexport default arrayLikeKeys;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\nexport default isPrototype;\n","import overArg from './_overArg.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = overArg(Object.keys, Object);\n\nexport default nativeKeys;\n","import isPrototype from './_isPrototype.js';\nimport nativeKeys from './_nativeKeys.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\nexport default baseKeys;\n","import isFunction from './isFunction.js';\nimport isLength from './isLength.js';\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\nexport default isArrayLike;\n","import arrayLikeKeys from './_arrayLikeKeys.js';\nimport baseKeys from './_baseKeys.js';\nimport isArrayLike from './isArrayLike.js';\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\nexport default keys;\n","import copyObject from './_copyObject.js';\nimport keys from './keys.js';\n\n/**\n * The base implementation of `_.assign` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\nfunction baseAssign(object, source) {\n return object && copyObject(source, keys(source), object);\n}\n\nexport default baseAssign;\n","/**\n * This function is like\n * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * except that it includes inherited enumerable properties.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction nativeKeysIn(object) {\n var result = [];\n if (object != null) {\n for (var key in Object(object)) {\n result.push(key);\n }\n }\n return result;\n}\n\nexport default nativeKeysIn;\n","import isObject from './isObject.js';\nimport isPrototype from './_isPrototype.js';\nimport nativeKeysIn from './_nativeKeysIn.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeysIn(object) {\n if (!isObject(object)) {\n return nativeKeysIn(object);\n }\n var isProto = isPrototype(object),\n result = [];\n\n for (var key in object) {\n if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {\n result.push(key);\n }\n }\n return result;\n}\n\nexport default baseKeysIn;\n","import arrayLikeKeys from './_arrayLikeKeys.js';\nimport baseKeysIn from './_baseKeysIn.js';\nimport isArrayLike from './isArrayLike.js';\n\n/**\n * Creates an array of the own and inherited enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keysIn(new Foo);\n * // => ['a', 'b', 'c'] (iteration order is not guaranteed)\n */\nfunction keysIn(object) {\n return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);\n}\n\nexport default keysIn;\n","import copyObject from './_copyObject.js';\nimport keysIn from './keysIn.js';\n\n/**\n * The base implementation of `_.assignIn` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\nfunction baseAssignIn(object, source) {\n return object && copyObject(source, keysIn(source), object);\n}\n\nexport default baseAssignIn;\n","import root from './_root.js';\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined,\n allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined;\n\n/**\n * Creates a clone of `buffer`.\n *\n * @private\n * @param {Buffer} buffer The buffer to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Buffer} Returns the cloned buffer.\n */\nfunction cloneBuffer(buffer, isDeep) {\n if (isDeep) {\n return buffer.slice();\n }\n var length = buffer.length,\n result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);\n\n buffer.copy(result);\n return result;\n}\n\nexport default cloneBuffer;\n","/**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\nfunction copyArray(source, array) {\n var index = -1,\n length = source.length;\n\n array || (array = Array(length));\n while (++index < length) {\n array[index] = source[index];\n }\n return array;\n}\n\nexport default copyArray;\n","/**\n * A specialized version of `_.filter` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction arrayFilter(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result[resIndex++] = value;\n }\n }\n return result;\n}\n\nexport default arrayFilter;\n","/**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\nfunction stubArray() {\n return [];\n}\n\nexport default stubArray;\n","import arrayFilter from './_arrayFilter.js';\nimport stubArray from './stubArray.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbols = !nativeGetSymbols ? stubArray : function(object) {\n if (object == null) {\n return [];\n }\n object = Object(object);\n return arrayFilter(nativeGetSymbols(object), function(symbol) {\n return propertyIsEnumerable.call(object, symbol);\n });\n};\n\nexport default getSymbols;\n","import copyObject from './_copyObject.js';\nimport getSymbols from './_getSymbols.js';\n\n/**\n * Copies own symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\nfunction copySymbols(source, object) {\n return copyObject(source, getSymbols(source), object);\n}\n\nexport default copySymbols;\n","/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\n\nexport default arrayPush;\n","import arrayPush from './_arrayPush.js';\nimport getPrototype from './_getPrototype.js';\nimport getSymbols from './_getSymbols.js';\nimport stubArray from './stubArray.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own and inherited enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbolsIn = !nativeGetSymbols ? stubArray : function(object) {\n var result = [];\n while (object) {\n arrayPush(result, getSymbols(object));\n object = getPrototype(object);\n }\n return result;\n};\n\nexport default getSymbolsIn;\n","import copyObject from './_copyObject.js';\nimport getSymbolsIn from './_getSymbolsIn.js';\n\n/**\n * Copies own and inherited symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\nfunction copySymbolsIn(source, object) {\n return copyObject(source, getSymbolsIn(source), object);\n}\n\nexport default copySymbolsIn;\n","import arrayPush from './_arrayPush.js';\nimport isArray from './isArray.js';\n\n/**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n}\n\nexport default baseGetAllKeys;\n","import baseGetAllKeys from './_baseGetAllKeys.js';\nimport getSymbols from './_getSymbols.js';\nimport keys from './keys.js';\n\n/**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n}\n\nexport default getAllKeys;\n","import baseGetAllKeys from './_baseGetAllKeys.js';\nimport getSymbolsIn from './_getSymbolsIn.js';\nimport keysIn from './keysIn.js';\n\n/**\n * Creates an array of own and inherited enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeysIn(object) {\n return baseGetAllKeys(object, keysIn, getSymbolsIn);\n}\n\nexport default getAllKeysIn;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView');\n\nexport default DataView;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar Promise = getNative(root, 'Promise');\n\nexport default Promise;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar Set = getNative(root, 'Set');\n\nexport default Set;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar WeakMap = getNative(root, 'WeakMap');\n\nexport default WeakMap;\n","import DataView from './_DataView.js';\nimport Map from './_Map.js';\nimport Promise from './_Promise.js';\nimport Set from './_Set.js';\nimport WeakMap from './_WeakMap.js';\nimport baseGetTag from './_baseGetTag.js';\nimport toSource from './_toSource.js';\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n setTag = '[object Set]',\n weakMapTag = '[object WeakMap]';\n\nvar dataViewTag = '[object DataView]';\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = baseGetTag(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : '';\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n}\n\nexport default getTag;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Initializes an array clone.\n *\n * @private\n * @param {Array} array The array to clone.\n * @returns {Array} Returns the initialized clone.\n */\nfunction initCloneArray(array) {\n var length = array.length,\n result = new array.constructor(length);\n\n // Add properties assigned by `RegExp#exec`.\n if (length && typeof array[0] == 'string' && hasOwnProperty.call(array, 'index')) {\n result.index = array.index;\n result.input = array.input;\n }\n return result;\n}\n\nexport default initCloneArray;\n","import root from './_root.js';\n\n/** Built-in value references. */\nvar Uint8Array = root.Uint8Array;\n\nexport default Uint8Array;\n","import Uint8Array from './_Uint8Array.js';\n\n/**\n * Creates a clone of `arrayBuffer`.\n *\n * @private\n * @param {ArrayBuffer} arrayBuffer The array buffer to clone.\n * @returns {ArrayBuffer} Returns the cloned array buffer.\n */\nfunction cloneArrayBuffer(arrayBuffer) {\n var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n new Uint8Array(result).set(new Uint8Array(arrayBuffer));\n return result;\n}\n\nexport default cloneArrayBuffer;\n","import cloneArrayBuffer from './_cloneArrayBuffer.js';\n\n/**\n * Creates a clone of `dataView`.\n *\n * @private\n * @param {Object} dataView The data view to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned data view.\n */\nfunction cloneDataView(dataView, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer;\n return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength);\n}\n\nexport default cloneDataView;\n","/** Used to match `RegExp` flags from their coerced string values. */\nvar reFlags = /\\w*$/;\n\n/**\n * Creates a clone of `regexp`.\n *\n * @private\n * @param {Object} regexp The regexp to clone.\n * @returns {Object} Returns the cloned regexp.\n */\nfunction cloneRegExp(regexp) {\n var result = new regexp.constructor(regexp.source, reFlags.exec(regexp));\n result.lastIndex = regexp.lastIndex;\n return result;\n}\n\nexport default cloneRegExp;\n","import Symbol from './_Symbol.js';\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * Creates a clone of the `symbol` object.\n *\n * @private\n * @param {Object} symbol The symbol object to clone.\n * @returns {Object} Returns the cloned symbol object.\n */\nfunction cloneSymbol(symbol) {\n return symbolValueOf ? Object(symbolValueOf.call(symbol)) : {};\n}\n\nexport default cloneSymbol;\n","import cloneArrayBuffer from './_cloneArrayBuffer.js';\n\n/**\n * Creates a clone of `typedArray`.\n *\n * @private\n * @param {Object} typedArray The typed array to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned typed array.\n */\nfunction cloneTypedArray(typedArray, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;\n return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\n}\n\nexport default cloneTypedArray;\n","import cloneArrayBuffer from './_cloneArrayBuffer.js';\nimport cloneDataView from './_cloneDataView.js';\nimport cloneRegExp from './_cloneRegExp.js';\nimport cloneSymbol from './_cloneSymbol.js';\nimport cloneTypedArray from './_cloneTypedArray.js';\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/**\n * Initializes an object clone based on its `toStringTag`.\n *\n * **Note:** This function only supports cloning values with tags of\n * `Boolean`, `Date`, `Error`, `Map`, `Number`, `RegExp`, `Set`, or `String`.\n *\n * @private\n * @param {Object} object The object to clone.\n * @param {string} tag The `toStringTag` of the object to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneByTag(object, tag, isDeep) {\n var Ctor = object.constructor;\n switch (tag) {\n case arrayBufferTag:\n return cloneArrayBuffer(object);\n\n case boolTag:\n case dateTag:\n return new Ctor(+object);\n\n case dataViewTag:\n return cloneDataView(object, isDeep);\n\n case float32Tag: case float64Tag:\n case int8Tag: case int16Tag: case int32Tag:\n case uint8Tag: case uint8ClampedTag: case uint16Tag: case uint32Tag:\n return cloneTypedArray(object, isDeep);\n\n case mapTag:\n return new Ctor;\n\n case numberTag:\n case stringTag:\n return new Ctor(object);\n\n case regexpTag:\n return cloneRegExp(object);\n\n case setTag:\n return new Ctor;\n\n case symbolTag:\n return cloneSymbol(object);\n }\n}\n\nexport default initCloneByTag;\n","import isObject from './isObject.js';\n\n/** Built-in value references. */\nvar objectCreate = Object.create;\n\n/**\n * The base implementation of `_.create` without support for assigning\n * properties to the created object.\n *\n * @private\n * @param {Object} proto The object to inherit from.\n * @returns {Object} Returns the new object.\n */\nvar baseCreate = (function() {\n function object() {}\n return function(proto) {\n if (!isObject(proto)) {\n return {};\n }\n if (objectCreate) {\n return objectCreate(proto);\n }\n object.prototype = proto;\n var result = new object;\n object.prototype = undefined;\n return result;\n };\n}());\n\nexport default baseCreate;\n","import baseCreate from './_baseCreate.js';\nimport getPrototype from './_getPrototype.js';\nimport isPrototype from './_isPrototype.js';\n\n/**\n * Initializes an object clone.\n *\n * @private\n * @param {Object} object The object to clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneObject(object) {\n return (typeof object.constructor == 'function' && !isPrototype(object))\n ? baseCreate(getPrototype(object))\n : {};\n}\n\nexport default initCloneObject;\n","import getTag from './_getTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]';\n\n/**\n * The base implementation of `_.isMap` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n */\nfunction baseIsMap(value) {\n return isObjectLike(value) && getTag(value) == mapTag;\n}\n\nexport default baseIsMap;\n","import baseIsMap from './_baseIsMap.js';\nimport baseUnary from './_baseUnary.js';\nimport nodeUtil from './_nodeUtil.js';\n\n/* Node.js helper references. */\nvar nodeIsMap = nodeUtil && nodeUtil.isMap;\n\n/**\n * Checks if `value` is classified as a `Map` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n * @example\n *\n * _.isMap(new Map);\n * // => true\n *\n * _.isMap(new WeakMap);\n * // => false\n */\nvar isMap = nodeIsMap ? baseUnary(nodeIsMap) : baseIsMap;\n\nexport default isMap;\n","import getTag from './_getTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar setTag = '[object Set]';\n\n/**\n * The base implementation of `_.isSet` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n */\nfunction baseIsSet(value) {\n return isObjectLike(value) && getTag(value) == setTag;\n}\n\nexport default baseIsSet;\n","import baseIsSet from './_baseIsSet.js';\nimport baseUnary from './_baseUnary.js';\nimport nodeUtil from './_nodeUtil.js';\n\n/* Node.js helper references. */\nvar nodeIsSet = nodeUtil && nodeUtil.isSet;\n\n/**\n * Checks if `value` is classified as a `Set` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n * @example\n *\n * _.isSet(new Set);\n * // => true\n *\n * _.isSet(new WeakSet);\n * // => false\n */\nvar isSet = nodeIsSet ? baseUnary(nodeIsSet) : baseIsSet;\n\nexport default isSet;\n","import Stack from './_Stack.js';\nimport arrayEach from './_arrayEach.js';\nimport assignValue from './_assignValue.js';\nimport baseAssign from './_baseAssign.js';\nimport baseAssignIn from './_baseAssignIn.js';\nimport cloneBuffer from './_cloneBuffer.js';\nimport copyArray from './_copyArray.js';\nimport copySymbols from './_copySymbols.js';\nimport copySymbolsIn from './_copySymbolsIn.js';\nimport getAllKeys from './_getAllKeys.js';\nimport getAllKeysIn from './_getAllKeysIn.js';\nimport getTag from './_getTag.js';\nimport initCloneArray from './_initCloneArray.js';\nimport initCloneByTag from './_initCloneByTag.js';\nimport initCloneObject from './_initCloneObject.js';\nimport isArray from './isArray.js';\nimport isBuffer from './isBuffer.js';\nimport isMap from './isMap.js';\nimport isObject from './isObject.js';\nimport isSet from './isSet.js';\nimport keys from './keys.js';\nimport keysIn from './keysIn.js';\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1,\n CLONE_FLAT_FLAG = 2,\n CLONE_SYMBOLS_FLAG = 4;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values supported by `_.clone`. */\nvar cloneableTags = {};\ncloneableTags[argsTag] = cloneableTags[arrayTag] =\ncloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] =\ncloneableTags[boolTag] = cloneableTags[dateTag] =\ncloneableTags[float32Tag] = cloneableTags[float64Tag] =\ncloneableTags[int8Tag] = cloneableTags[int16Tag] =\ncloneableTags[int32Tag] = cloneableTags[mapTag] =\ncloneableTags[numberTag] = cloneableTags[objectTag] =\ncloneableTags[regexpTag] = cloneableTags[setTag] =\ncloneableTags[stringTag] = cloneableTags[symbolTag] =\ncloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] =\ncloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true;\ncloneableTags[errorTag] = cloneableTags[funcTag] =\ncloneableTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.clone` and `_.cloneDeep` which tracks\n * traversed objects.\n *\n * @private\n * @param {*} value The value to clone.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Deep clone\n * 2 - Flatten inherited properties\n * 4 - Clone symbols\n * @param {Function} [customizer] The function to customize cloning.\n * @param {string} [key] The key of `value`.\n * @param {Object} [object] The parent object of `value`.\n * @param {Object} [stack] Tracks traversed objects and their clone counterparts.\n * @returns {*} Returns the cloned value.\n */\nfunction baseClone(value, bitmask, customizer, key, object, stack) {\n var result,\n isDeep = bitmask & CLONE_DEEP_FLAG,\n isFlat = bitmask & CLONE_FLAT_FLAG,\n isFull = bitmask & CLONE_SYMBOLS_FLAG;\n\n if (customizer) {\n result = object ? customizer(value, key, object, stack) : customizer(value);\n }\n if (result !== undefined) {\n return result;\n }\n if (!isObject(value)) {\n return value;\n }\n var isArr = isArray(value);\n if (isArr) {\n result = initCloneArray(value);\n if (!isDeep) {\n return copyArray(value, result);\n }\n } else {\n var tag = getTag(value),\n isFunc = tag == funcTag || tag == genTag;\n\n if (isBuffer(value)) {\n return cloneBuffer(value, isDeep);\n }\n if (tag == objectTag || tag == argsTag || (isFunc && !object)) {\n result = (isFlat || isFunc) ? {} : initCloneObject(value);\n if (!isDeep) {\n return isFlat\n ? copySymbolsIn(value, baseAssignIn(result, value))\n : copySymbols(value, baseAssign(result, value));\n }\n } else {\n if (!cloneableTags[tag]) {\n return object ? value : {};\n }\n result = initCloneByTag(value, tag, isDeep);\n }\n }\n // Check for circular references and return its corresponding clone.\n stack || (stack = new Stack);\n var stacked = stack.get(value);\n if (stacked) {\n return stacked;\n }\n stack.set(value, result);\n\n if (isSet(value)) {\n value.forEach(function(subValue) {\n result.add(baseClone(subValue, bitmask, customizer, subValue, value, stack));\n });\n } else if (isMap(value)) {\n value.forEach(function(subValue, key) {\n result.set(key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n }\n\n var keysFunc = isFull\n ? (isFlat ? getAllKeysIn : getAllKeys)\n : (isFlat ? keysIn : keys);\n\n var props = isArr ? undefined : keysFunc(value);\n arrayEach(props || value, function(subValue, key) {\n if (props) {\n key = subValue;\n subValue = value[key];\n }\n // Recursively populate clone (susceptible to call stack limits).\n assignValue(result, key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n return result;\n}\n\nexport default baseClone;\n","import baseClone from './_baseClone.js';\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1,\n CLONE_SYMBOLS_FLAG = 4;\n\n/**\n * This method is like `_.cloneWith` except that it recursively clones `value`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to recursively clone.\n * @param {Function} [customizer] The function to customize cloning.\n * @returns {*} Returns the deep cloned value.\n * @see _.cloneWith\n * @example\n *\n * function customizer(value) {\n * if (_.isElement(value)) {\n * return value.cloneNode(true);\n * }\n * }\n *\n * var el = _.cloneDeepWith(document.body, customizer);\n *\n * console.log(el === document.body);\n * // => false\n * console.log(el.nodeName);\n * // => 'BODY'\n * console.log(el.childNodes.length);\n * // => 20\n */\nfunction cloneDeepWith(value, customizer) {\n customizer = typeof customizer == 'function' ? customizer : undefined;\n return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG, customizer);\n}\n\nexport default cloneDeepWith;\n","import isObjectLike from './isObjectLike.js';\nimport isPlainObject from './isPlainObject.js';\n\n/**\n * Checks if `value` is likely a DOM element.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a DOM element, else `false`.\n * @example\n *\n * _.isElement(document.body);\n * // => true\n *\n * _.isElement('');\n * // => false\n */\nfunction isElement(value) {\n return isObjectLike(value) && value.nodeType === 1 && !isPlainObject(value);\n}\n\nexport default isElement;\n","/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n/**\n * @module utils/config\n */\nimport { isPlainObject, isElement, cloneDeepWith } from 'lodash-es';\n/**\n * Handles a configuration dictionary.\n *\n * @typeParam Cfg A type of the configuration dictionary.\n */\nexport default class Config {\n /**\n * Creates an instance of the {@link ~Config} class.\n *\n * @param configurations The initial configurations to be set. Usually, provided by the user.\n * @param defaultConfigurations The default configurations. Usually, provided by the system.\n */\n constructor(configurations, defaultConfigurations) {\n this._config = Object.create(null);\n // Set default configuration.\n if (defaultConfigurations) {\n // Clone the configuration to make sure that the properties will not be shared\n // between editors and make the watchdog feature work correctly.\n this.define(cloneConfig(defaultConfigurations));\n }\n // Set initial configuration.\n if (configurations) {\n this._setObjectToTarget(this._config, configurations);\n }\n }\n set(name, value) {\n this._setToTarget(this._config, name, value);\n }\n define(name, value) {\n const isDefine = true;\n this._setToTarget(this._config, name, value, isDefine);\n }\n /**\n * Gets the value for a configuration entry.\n *\n * ```ts\n * config.get( 'name' );\n * ```\n *\n * Deep configurations can be retrieved by separating each part with a dot.\n *\n * ```ts\n * config.get( 'toolbar.collapsed' );\n * ```\n *\n * @param name The configuration name. Configuration names are case-sensitive.\n * @returns The configuration value or `undefined` if the configuration entry was not found.\n */\n get(name) {\n return this._getFromSource(this._config, name);\n }\n /**\n * Iterates over all top level configuration names.\n */\n *names() {\n for (const name of Object.keys(this._config)) {\n yield name;\n }\n }\n /**\n * Saves passed configuration to the specified target (nested object).\n *\n * @param target Nested config object.\n * @param name The configuration name or an object from which take properties as\n * configuration entries. Configuration names are case-sensitive.\n * @param value The configuration value. Used if a name is passed.\n * @param isDefine Define if passed configuration should overwrite existing one.\n */\n _setToTarget(target, name, value, isDefine = false) {\n // In case of an object, iterate through it and call `_setToTarget` again for each property.\n if (isPlainObject(name)) {\n this._setObjectToTarget(target, name, isDefine);\n return;\n }\n // The configuration name should be split into parts if it has dots. E.g. `resize.width` -> [`resize`, `width`].\n const parts = name.split('.');\n // Take the name of the configuration out of the parts. E.g. `resize.width` -> `width`.\n name = parts.pop();\n // Iterate over parts to check if currently stored configuration has proper structure.\n for (const part of parts) {\n // If there is no object for specified part then create one.\n if (!isPlainObject(target[part])) {\n target[part] = Object.create(null);\n }\n // Nested object becomes a target.\n target = target[part];\n }\n // In case of value is an object.\n if (isPlainObject(value)) {\n // We take care of proper config structure.\n if (!isPlainObject(target[name])) {\n target[name] = Object.create(null);\n }\n target = target[name];\n // And iterate through this object calling `_setToTarget` again for each property.\n this._setObjectToTarget(target, value, isDefine);\n return;\n }\n // Do nothing if we are defining configuration for non empty name.\n if (isDefine && typeof target[name] != 'undefined') {\n return;\n }\n target[name] = value;\n }\n /**\n * Get specified configuration from specified source (nested object).\n *\n * @param source level of nested object.\n * @param name The configuration name. Configuration names are case-sensitive.\n * @returns The configuration value or `undefined` if the configuration entry was not found.\n */\n _getFromSource(source, name) {\n // The configuration name should be split into parts if it has dots. E.g. `resize.width` -> [`resize`, `width`].\n const parts = name.split('.');\n // Take the name of the configuration out of the parts. E.g. `resize.width` -> `width`.\n name = parts.pop();\n // Iterate over parts to check if currently stored configuration has proper structure.\n for (const part of parts) {\n if (!isPlainObject(source[part])) {\n source = null;\n break;\n }\n // Nested object becomes a source.\n source = source[part];\n }\n // Always returns undefined for non existing configuration.\n return source ? cloneConfig(source[name]) : undefined;\n }\n /**\n * Iterates through passed object and calls {@link #_setToTarget} method with object key and value for each property.\n *\n * @param target Nested config object.\n * @param configuration Configuration data set\n * @param isDefine Defines if passed configuration is default configuration or not.\n */\n _setObjectToTarget(target, configuration, isDefine) {\n Object.keys(configuration).forEach(key => {\n this._setToTarget(target, key, configuration[key], isDefine);\n });\n }\n}\n/**\n * Clones configuration object or value.\n */\nfunction cloneConfig(source) {\n return cloneDeepWith(source, leaveItemReferences);\n}\n/**\n * A customized function for cloneDeepWith.\n * In case if it's a DOM Element it will leave references to DOM Elements instead of cloning them.\n * If it's a function it will leave reference to actuall function.\n */\nfunction leaveItemReferences(value) {\n return isElement(value) || typeof value === 'function' ? value : undefined;\n}\n","/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n/**\n * @module utils/dom/isnode\n */\n/**\n * Checks if the object is a native DOM Node.\n */\nexport default function isNode(obj) {\n if (obj) {\n if (obj.defaultView) {\n return obj instanceof obj.defaultView.Document;\n }\n else if (obj.ownerDocument && obj.ownerDocument.defaultView) {\n return obj instanceof obj.ownerDocument.defaultView.Node;\n }\n }\n return false;\n}\n","/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n/**\n * @module utils/dom/iswindow\n */\n/**\n * Checks if the object is a native DOM Window.\n */\nexport default function isWindow(obj) {\n const stringifiedObject = Object.prototype.toString.apply(obj);\n // Returns `true` for the `window` object in browser environments.\n if (stringifiedObject == '[object Window]') {\n return true;\n }\n // Returns `true` for the `window` object in the Electron environment.\n if (stringifiedObject == '[object global]') {\n return true;\n }\n return false;\n}\n","/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n/**\n * @module utils/dom/emittermixin\n */\nimport EmitterMixin, { _getEmitterListenedTo, _setEmitterId } from '../emittermixin.js';\nimport uid from '../uid.js';\nimport isNode from './isnode.js';\nimport isWindow from './iswindow.js';\nconst defaultEmitterClass = /* #__PURE__ */ DomEmitterMixin(/* #__PURE__ */ EmitterMixin());\nexport default function DomEmitterMixin(base) {\n if (!base) {\n return defaultEmitterClass;\n }\n class Mixin extends base {\n listenTo(emitter, event, callback, options = {}) {\n // Check if emitter is an instance of DOM Node. If so, use corresponding ProxyEmitter (or create one if not existing).\n if (isNode(emitter) || isWindow(emitter)) {\n const proxyOptions = {\n capture: !!options.useCapture,\n passive: !!options.usePassive\n };\n const proxyEmitter = this._getProxyEmitter(emitter, proxyOptions) || new ProxyEmitter(emitter, proxyOptions);\n this.listenTo(proxyEmitter, event, callback, options);\n }\n else {\n // Execute parent class method with Emitter (or ProxyEmitter) instance.\n super.listenTo(emitter, event, callback, options);\n }\n }\n stopListening(emitter, event, callback) {\n // Check if the emitter is an instance of DOM Node. If so, forward the call to the corresponding ProxyEmitters.\n if (isNode(emitter) || isWindow(emitter)) {\n const proxyEmitters = this._getAllProxyEmitters(emitter);\n for (const proxy of proxyEmitters) {\n this.stopListening(proxy, event, callback);\n }\n }\n else {\n // Execute parent class method with Emitter (or ProxyEmitter) instance.\n super.stopListening(emitter, event, callback);\n }\n }\n /**\n * Retrieves ProxyEmitter instance for given DOM Node residing in this Host and given options.\n *\n * @param node DOM Node of the ProxyEmitter.\n * @param options Additional options.\n * @param options.useCapture Indicates that events of this type will be dispatched to the registered\n * listener before being dispatched to any EventTarget beneath it in the DOM tree.\n * @param options.usePassive Indicates that the function specified by listener will never call preventDefault()\n * and prevents blocking browser's main thread by this event handler.\n * @returns ProxyEmitter instance bound to the DOM Node.\n */\n _getProxyEmitter(node, options) {\n return _getEmitterListenedTo(this, getProxyEmitterId(node, options));\n }\n /**\n * Retrieves all the ProxyEmitter instances for given DOM Node residing in this Host.\n *\n * @param node DOM Node of the ProxyEmitter.\n */\n _getAllProxyEmitters(node) {\n return [\n { capture: false, passive: false },\n { capture: false, passive: true },\n { capture: true, passive: false },\n { capture: true, passive: true }\n ].map(options => this._getProxyEmitter(node, options)).filter(proxy => !!proxy);\n }\n }\n return Mixin;\n}\n// Backward compatibility with `mix`\n([\n '_getProxyEmitter', '_getAllProxyEmitters',\n 'on', 'once', 'off', 'listenTo',\n 'stopListening', 'fire', 'delegate', 'stopDelegating',\n '_addEventListener', '_removeEventListener'\n]).forEach(key => {\n DomEmitterMixin[key] = defaultEmitterClass.prototype[key];\n});\n/**\n * Creates a ProxyEmitter instance. Such an instance is a bridge between a DOM Node firing events\n * and any Host listening to them. It is backwards compatible with {@link module:utils/emittermixin~Emitter#on}.\n * There is a separate instance for each combination of modes (useCapture & usePassive). The mode is concatenated with\n * UID stored in HTMLElement to give each instance unique identifier.\n *\n * listenTo( click, ... )\n * +-----------------------------------------+\n * | stopListening( ... ) |\n * +----------------------------+ | addEventListener( click, ... )\n * | Host | | +---------------------------------------------+\n * +----------------------------+ | | removeEventListener( click, ... ) |\n * | _listeningTo: { | +----------v-------------+ |\n * | UID+mode: { | | ProxyEmitter | |\n * | emitter: ProxyEmitter, | +------------------------+ +------------v----------+\n * | callbacks: { | | events: { | | Node (HTMLElement) |\n * | click: [ callbacks ] | | click: [ callbacks ] | +-----------------------+\n * | } | | }, | | data-ck-expando: UID |\n * | } | | _domNode: Node, | +-----------------------+\n * | } | | _domListeners: {}, | |\n * | +------------------------+ | | _emitterId: UID+mode | |\n * | | DomEmitterMixin | | +--------------^---------+ |\n * | +------------------------+ | | | |\n * +--------------^-------------+ | +---------------------------------------------+\n * | | click (DOM Event)\n * +-----------------------------------------+\n * fire( click, DOM Event )\n */\nclass ProxyEmitter extends /* #__PURE__ */ EmitterMixin() {\n /**\n * @param node DOM Node that fires events.\n * @param options Additional options.\n * @param options.useCapture Indicates that events of this type will be dispatched to the registered\n * listener before being dispatched to any EventTarget beneath it in the DOM tree.\n * @param options.usePassive Indicates that the function specified by listener will never call preventDefault()\n * and prevents blocking browser's main thread by this event handler.\n */\n constructor(node, options) {\n super();\n // Set emitter ID to match DOM Node \"expando\" property.\n _setEmitterId(this, getProxyEmitterId(node, options));\n // Remember the DOM Node this ProxyEmitter is bound to.\n this._domNode = node;\n // And given options.\n this._options = options;\n }\n /**\n * Registers a callback function to be executed when an event is fired.\n *\n * It attaches a native DOM listener to the DOM Node. When fired,\n * a corresponding Emitter event will also fire with DOM Event object as an argument.\n *\n * **Note**: This is automatically called by the\n * {@link module:utils/emittermixin~Emitter#listenTo `Emitter#listenTo()`}.\n *\n * @param event The name of the event.\n */\n attach(event) {\n // If the DOM Listener for given event already exist it is pointless\n // to attach another one.\n if (this._domListeners && this._domListeners[event]) {\n return;\n }\n const domListener = this._createDomListener(event);\n // Attach the native DOM listener to DOM Node.\n this._domNode.addEventListener(event, domListener, this._options);\n if (!this._domListeners) {\n this._domListeners = {};\n }\n // Store the native DOM listener in this ProxyEmitter. It will be helpful\n // when stopping listening to the event.\n this._domListeners[event] = domListener;\n }\n /**\n * Stops executing the callback on the given event.\n *\n * **Note**: This is automatically called by the\n * {@link module:utils/emittermixin~Emitter#stopListening `Emitter#stopListening()`}.\n *\n * @param event The name of the event.\n */\n detach(event) {\n let events;\n // Remove native DOM listeners which are orphans. If no callbacks\n // are awaiting given event, detach native DOM listener from DOM Node.\n // See: {@link attach}.\n if (this._domListeners[event] && (!(events = this._events[event]) || !events.callbacks.length)) {\n this._domListeners[event].removeListener();\n }\n }\n /**\n * Adds callback to emitter for given event.\n *\n * @internal\n * @param event The name of the event.\n * @param callback The function to be called on event.\n * @param options Additional options.\n */\n _addEventListener(event, callback, options) {\n this.attach(event);\n EmitterMixin().prototype._addEventListener.call(this, event, callback, options);\n }\n /**\n * Removes callback from emitter for given event.\n *\n * @internal\n * @param event The name of the event.\n * @param callback The function to stop being called.\n */\n _removeEventListener(event, callback) {\n EmitterMixin().prototype._removeEventListener.call(this, event, callback);\n this.detach(event);\n }\n /**\n * Creates a native DOM listener callback. When the native DOM event\n * is fired it will fire corresponding event on this ProxyEmitter.\n * Note: A native DOM Event is passed as an argument.\n *\n * @param event The name of the event.\n * @returns The DOM listener callback.\n */\n _createDomListener(event) {\n const domListener = (domEvt) => {\n this.fire(event, domEvt);\n };\n // Supply the DOM listener callback with a function that will help\n // detach it from the DOM Node, when it is no longer necessary.\n // See: {@link detach}.\n domListener.removeListener = () => {\n this._domNode.removeEventListener(event, domListener, this._options);\n delete this._domListeners[event];\n };\n return domListener;\n }\n}\n/**\n * Gets an unique DOM Node identifier. The identifier will be set if not defined.\n *\n * @returns UID for given DOM Node.\n */\nfunction getNodeUID(node) {\n return node['data-ck-expando'] || (node['data-ck-expando'] = uid());\n}\n/**\n * Gets id of the ProxyEmitter for the given node.\n */\nfunction getProxyEmitterId(node, options) {\n let id = getNodeUID(node);\n for (const option of Object.keys(options).sort()) {\n if (options[option]) {\n id += '-' + option;\n }\n }\n return id;\n}\n","/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n/* globals Node */\n/**\n * @module utils/dom/getancestors\n */\n/**\n * Returns all ancestors of given DOM node, starting from the top-most (root). Includes the given node itself. If the\n * node is a part of `DocumentFragment` that `DocumentFragment` will be returned. In contrary, if the node is\n * appended to a `Document`, that `Document` will not be returned (algorithms operating on DOM tree care for `Document#documentElement`\n * at most, which will be returned).\n *\n * @param node DOM node.\n * @returns Array of given `node` parents.\n */\nexport default function getAncestors(node) {\n const nodes = [];\n let currentNode = node;\n // We are interested in `Node`s `DocumentFragment`s only.\n while (currentNode && currentNode.nodeType != Node.DOCUMENT_NODE) {\n nodes.unshift(currentNode);\n currentNode = currentNode.parentNode;\n }\n return nodes;\n}\n","/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n/**\n * @module utils/dom/getborderwidths\n */\n/**\n * Returns an object containing CSS border widths of a specified HTML element.\n *\n * @param element An element which has CSS borders.\n * @returns An object containing `top`, `left`, `right` and `bottom` properties\n * with numerical values of the `border-[top,left,right,bottom]-width` CSS styles.\n */\nexport default function getBorderWidths(element) {\n // Call getComputedStyle on the window the element document belongs to.\n const style = element.ownerDocument.defaultView.getComputedStyle(element);\n return {\n top: parseInt(style.borderTopWidth, 10),\n right: parseInt(style.borderRightWidth, 10),\n bottom: parseInt(style.borderBottomWidth, 10),\n left: parseInt(style.borderLeftWidth, 10)\n };\n}\n","/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n/**\n * @module utils/dom/getrangefrommouseevent\n */\n/**\n * Returns a DOM range from a given point specified by a mouse event.\n *\n * @param domEvent The mouse event.\n * @returns The DOM range.\n */\nexport default function getRangeFromMouseEvent(domEvent) {\n if (!domEvent.target) {\n return null;\n }\n const domDoc = domEvent.target.ownerDocument;\n const x = domEvent.clientX;\n const y = domEvent.clientY;\n let domRange = null;\n // Webkit & Blink.\n if (domDoc.caretRangeFromPoint && domDoc.caretRangeFromPoint(x, y)) {\n domRange = domDoc.caretRangeFromPoint(x, y);\n }\n // FF.\n else if (domEvent.rangeParent) {\n domRange = domDoc.createRange();\n domRange.setStart(domEvent.rangeParent, domEvent.rangeOffset);\n domRange.collapse(true);\n }\n return domRange;\n}\n","/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n/**\n * @module utils/dom/istext\n */\n/**\n * Checks if the object is a native DOM Text node.\n */\nexport default function isText(obj) {\n return Object.prototype.toString.call(obj) == '[object Text]';\n}\n","/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n/**\n * @module utils/dom/isrange\n */\n/**\n * Checks if the object is a native DOM Range.\n */\nexport default function isRange(obj) {\n return Object.prototype.toString.apply(obj) == '[object Range]';\n}\n","/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n/**\n * @module utils/dom/getpositionedancestor\n */\nimport global from './global.js';\n/**\n * For a given element, returns the nearest ancestor element which CSS position is not \"static\".\n *\n * @param element The native DOM element to be checked.\n */\nexport default function getPositionedAncestor(element) {\n if (!element || !element.parentNode) {\n return null;\n }\n if (element.offsetParent === global.document.body) {\n return null;\n }\n return element.offsetParent;\n}\n","/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n/**\n * @module utils/dom/rect\n */\nimport isRange from './isrange.js';\nimport isWindow from './iswindow.js';\nimport getBorderWidths from './getborderwidths.js';\nimport isText from './istext.js';\nimport getPositionedAncestor from './getpositionedancestor.js';\nimport global from './global.js';\nconst rectProperties = ['top', 'right', 'bottom', 'left', 'width', 'height'];\n/**\n * A helper class representing a `ClientRect` object, e.g. value returned by\n * the native `object.getBoundingClientRect()` method. Provides a set of methods\n * to manipulate the rect and compare it against other rect instances.\n */\nexport default class Rect {\n /**\n * Creates an instance of rect.\n *\n * ```ts\n * // Rect of an HTMLElement.\n * const rectA = new Rect( document.body );\n *\n * // Rect of a DOM Range.\n * const rectB = new Rect( document.getSelection().getRangeAt( 0 ) );\n *\n * // Rect of a window (web browser viewport).\n * const rectC = new Rect( window );\n *\n * // Rect out of an object.\n * const rectD = new Rect( { top: 0, right: 10, bottom: 10, left: 0, width: 10, height: 10 } );\n *\n * // Rect out of another Rect instance.\n * const rectE = new Rect( rectD );\n *\n * // Rect out of a ClientRect.\n * const rectF = new Rect( document.body.getClientRects().item( 0 ) );\n * ```\n *\n * **Note**: By default a rect of an HTML element includes its CSS borders and scrollbars (if any)\n * ant the rect of a `window` includes scrollbars too. Use {@link #excludeScrollbarsAndBorders}\n * to get the inner part of the rect.\n *\n * @param source A source object to create the rect.\n */\n constructor(source) {\n const isSourceRange = isRange(source);\n Object.defineProperty(this, '_source', {\n // If the source is a Rect instance, copy it's #_source.\n value: source._source || source,\n writable: true,\n enumerable: false\n });\n if (isDomElement(source) || isSourceRange) {\n // The `Rect` class depends on `getBoundingClientRect` and `getClientRects` DOM methods. If the source\n // of a rect in an HTML element or a DOM range but it does not belong to any rendered DOM tree, these methods\n // will fail to obtain the geometry and the rect instance makes little sense to the features using it.\n // To get rid of this warning make sure the source passed to the constructor is a descendant of `window.document.body`.\n // @if CK_DEBUG // const sourceNode = isSourceRange ? source.startContainer : source;\n // @if CK_DEBUG // if ( !sourceNode.ownerDocument || !sourceNode.ownerDocument.body.contains( sourceNode ) ) {\n // @if CK_DEBUG // \tconsole.warn(\n // @if CK_DEBUG // \t\t'rect-source-not-in-dom: The source of this rect does not belong to any rendered DOM tree.',\n // @if CK_DEBUG // \t\t{ source } );\n // @if CK_DEBUG // }\n if (isSourceRange) {\n const rangeRects = Rect.getDomRangeRects(source);\n copyRectProperties(this, Rect.getBoundingRect(rangeRects));\n }\n else {\n copyRectProperties(this, source.getBoundingClientRect());\n }\n }\n else if (isWindow(source)) {\n const { innerWidth, innerHeight } = source;\n copyRectProperties(this, {\n top: 0,\n right: innerWidth,\n bottom: innerHeight,\n left: 0,\n width: innerWidth,\n height: innerHeight\n });\n }\n else {\n copyRectProperties(this, source);\n }\n }\n /**\n * Returns a clone of the rect.\n *\n * @returns A cloned rect.\n */\n clone() {\n return new Rect(this);\n }\n /**\n * Moves the rect so that its upper–left corner lands in desired `[ x, y ]` location.\n *\n * @param x Desired horizontal location.\n * @param y Desired vertical location.\n * @returns A rect which has been moved.\n */\n moveTo(x, y) {\n this.top = y;\n this.right = x + this.width;\n this.bottom = y + this.height;\n this.left = x;\n return this;\n }\n /**\n * Moves the rect in–place by a dedicated offset.\n *\n * @param x A horizontal offset.\n * @param y A vertical offset\n * @returns A rect which has been moved.\n */\n moveBy(x, y) {\n this.top += y;\n this.right += x;\n this.left += x;\n this.bottom += y;\n return this;\n }\n /**\n * Returns a new rect a a result of intersection with another rect.\n */\n getIntersection(anotherRect) {\n const rect = {\n top: Math.max(this.top, anotherRect.top),\n right: Math.min(this.right, anotherRect.right),\n bottom: Math.min(this.bottom, anotherRect.bottom),\n left: Math.max(this.left, anotherRect.left),\n width: 0,\n height: 0\n };\n rect.width = rect.right - rect.left;\n rect.height = rect.bottom - rect.top;\n if (rect.width < 0 || rect.height < 0) {\n return null;\n }\n else {\n const newRect = new Rect(rect);\n newRect._source = this._source;\n return newRect;\n }\n }\n /**\n * Returns the area of intersection with another rect.\n *\n * @returns Area of intersection.\n */\n getIntersectionArea(anotherRect) {\n const rect = this.getIntersection(anotherRect);\n if (rect) {\n return rect.getArea();\n }\n else {\n return 0;\n }\n }\n /**\n * Returns the area of the rect.\n */\n getArea() {\n return this.width * this.height;\n }\n /**\n * Returns a new rect, a part of the original rect, which is actually visible to the user and is relative to the,`body`,\n * e.g. an original rect cropped by parent element rects which have `overflow` set in CSS\n * other than `\"visible\"`.\n *\n * If there's no such visible rect, which is when the rect is limited by one or many of\n * the ancestors, `null` is returned.\n *\n * **Note**: This method does not consider the boundaries of the viewport (window).\n * To get a rect cropped by all ancestors and the viewport, use an intersection such as:\n *\n * ```ts\n * const visibleInViewportRect = new Rect( window ).getIntersection( new Rect( source ).getVisible() );\n * ```\n *\n * @returns A visible rect instance or `null`, if there's none.\n */\n getVisible() {\n const source = this._source;\n let visibleRect = this.clone();\n // There's no ancestor to crop with the overflow.\n if (isBody(source)) {\n return visibleRect;\n }\n let child = source;\n let parent = source.parentNode || source.commonAncestorContainer;\n let absolutelyPositionedChildElement;\n // Check the ancestors all the way up to the .\n while (parent && !isBody(parent)) {\n const isParentOverflowVisible = getElementOverflow(parent) === 'visible';\n if (child instanceof HTMLElement && getElementPosition(child) === 'absolute') {\n absolutelyPositionedChildElement = child;\n }\n const parentElementPosition = getElementPosition(parent);\n // The child will be cropped only if it has `position: absolute` and the parent has `position: relative` + some overflow.\n // Otherwise there's no chance of visual clipping and the parent can be skipped\n // https://github.com/ckeditor/ckeditor5/issues/14107.\n //\n // condition: isParentOverflowVisible\n // \t\t+---------------------------+\n //\t\t| #parent\t\t\t\t\t|\n //\t\t| (overflow: visible)\t\t|\n //\t\t|\t\t\t\t+-----------+---------------+\n //\t\t|\t\t\t\t| child\t\t\t\t\t\t|\n //\t\t|\t\t\t\t+-----------+---------------+\n //\t\t+---------------------------+\n //\n // condition: absolutelyPositionedChildElement && parentElementPosition === 'relative' && isParentOverflowVisible\n // \t\t+---------------------------+\n //\t\t| parent\t\t\t\t\t|\n //\t\t| (position: relative;)\t\t|\n //\t\t| (overflow: visible;)\t\t|\n //\t\t|\t\t\t\t+-----------+---------------+\n //\t\t|\t\t\t\t| child \t\t\t\t\t|\n //\t\t|\t\t\t\t| (position: absolute;)\t\t|\n //\t\t|\t\t\t\t+-----------+---------------+\n //\t\t+---------------------------+\n //\n // condition: absolutelyPositionedChildElement && parentElementPosition !== 'relative'\n // \t\t+---------------------------+\n //\t\t| parent\t\t\t\t\t|\n //\t\t| (position: static;)\t\t|\n //\t\t|\t\t\t\t+-----------+---------------+\n //\t\t|\t\t\t\t| child \t\t\t\t\t|\n //\t\t|\t\t\t\t| (position: absolute;)\t\t|\n //\t\t|\t\t\t\t+-----------+---------------+\n //\t\t+---------------------------+\n if (isParentOverflowVisible ||\n absolutelyPositionedChildElement && ((parentElementPosition === 'relative' && isParentOverflowVisible) ||\n parentElementPosition !== 'relative')) {\n child = parent;\n parent = parent.parentNode;\n continue;\n }\n const parentRect = new Rect(parent);\n const intersectionRect = visibleRect.getIntersection(parentRect);\n if (intersectionRect) {\n if (intersectionRect.getArea() < visibleRect.getArea()) {\n // Reduce the visible rect to the intersection.\n visibleRect = intersectionRect;\n }\n }\n else {\n // There's no intersection, the rect is completely invisible.\n return null;\n }\n child = parent;\n parent = parent.parentNode;\n }\n return visibleRect;\n }\n /**\n * Checks if all property values ({@link #top}, {@link #left}, {@link #right},\n * {@link #bottom}, {@link #width} and {@link #height}) are the equal in both rect\n * instances.\n *\n * @param anotherRect A rect instance to compare with.\n * @returns `true` when Rects are equal. `false` otherwise.\n */\n isEqual(anotherRect) {\n for (const prop of rectProperties) {\n if (this[prop] !== anotherRect[prop]) {\n return false;\n }\n }\n return true;\n }\n /**\n * Checks whether a rect fully contains another rect instance.\n *\n * @param anotherRect\n * @returns `true` if contains, `false` otherwise.\n */\n contains(anotherRect) {\n const intersectRect = this.getIntersection(anotherRect);\n return !!(intersectRect && intersectRect.isEqual(anotherRect));\n }\n /**\n * Recalculates screen coordinates to coordinates relative to the positioned ancestor offset.\n */\n toAbsoluteRect() {\n const { scrollX, scrollY } = global.window;\n const absoluteRect = this.clone().moveBy(scrollX, scrollY);\n if (isDomElement(absoluteRect._source)) {\n const positionedAncestor = getPositionedAncestor(absoluteRect._source);\n if (positionedAncestor) {\n shiftRectToCompensatePositionedAncestor(absoluteRect, positionedAncestor);\n }\n }\n return absoluteRect;\n }\n /**\n * Excludes scrollbars and CSS borders from the rect.\n *\n * * Borders are removed when {@link #_source} is an HTML element.\n * * Scrollbars are excluded from HTML elements and the `window`.\n *\n * @returns A rect which has been updated.\n */\n excludeScrollbarsAndBorders() {\n const source = this._source;\n let scrollBarWidth, scrollBarHeight, direction;\n if (isWindow(source)) {\n scrollBarWidth = source.innerWidth - source.document.documentElement.clientWidth;\n scrollBarHeight = source.innerHeight - source.document.documentElement.clientHeight;\n direction = source.getComputedStyle(source.document.documentElement).direction;\n }\n else {\n const borderWidths = getBorderWidths(source);\n scrollBarWidth = source.offsetWidth - source.clientWidth - borderWidths.left - borderWidths.right;\n scrollBarHeight = source.offsetHeight - source.clientHeight - borderWidths.top - borderWidths.bottom;\n direction = source.ownerDocument.defaultView.getComputedStyle(source).direction;\n this.left += borderWidths.left;\n this.top += borderWidths.top;\n this.right -= borderWidths.right;\n this.bottom -= borderWidths.bottom;\n this.width = this.right - this.left;\n this.height = this.bottom - this.top;\n }\n this.width -= scrollBarWidth;\n if (direction === 'ltr') {\n this.right -= scrollBarWidth;\n }\n else {\n this.left += scrollBarWidth;\n }\n this.height -= scrollBarHeight;\n this.bottom -= scrollBarHeight;\n return this;\n }\n /**\n * Returns an array of rects of the given native DOM Range.\n *\n * @param range A native DOM range.\n * @returns DOM Range rects.\n */\n static getDomRangeRects(range) {\n const rects = [];\n // Safari does not iterate over ClientRectList using for...of loop.\n const clientRects = Array.from(range.getClientRects());\n if (clientRects.length) {\n for (const rect of clientRects) {\n rects.push(new Rect(rect));\n }\n }\n // If there's no client rects for the Range, use parent container's bounding rect\n // instead and adjust rect's width to simulate the actual geometry of such range.\n // https://github.com/ckeditor/ckeditor5-utils/issues/153\n // https://github.com/ckeditor/ckeditor5-ui/issues/317\n else {\n let startContainer = range.startContainer;\n if (isText(startContainer)) {\n startContainer = startContainer.parentNode;\n }\n const rect = new Rect(startContainer.getBoundingClientRect());\n rect.right = rect.left;\n rect.width = 0;\n rects.push(rect);\n }\n return rects;\n }\n /**\n * Returns a bounding rectangle that contains all the given `rects`.\n *\n * @param rects A list of rectangles that should be contained in the result rectangle.\n * @returns Bounding rectangle or `null` if no `rects` were given.\n */\n static getBoundingRect(rects) {\n const boundingRectData = {\n left: Number.POSITIVE_INFINITY,\n top: Number.POSITIVE_INFINITY,\n right: Number.NEGATIVE_INFINITY,\n bottom: Number.NEGATIVE_INFINITY,\n width: 0,\n height: 0\n };\n let rectangleCount = 0;\n for (const rect of rects) {\n rectangleCount++;\n boundingRectData.left = Math.min(boundingRectData.left, rect.left);\n boundingRectData.top = Math.min(boundingRectData.top, rect.top);\n boundingRectData.right = Math.max(boundingRectData.right, rect.right);\n boundingRectData.bottom = Math.max(boundingRectData.bottom, rect.bottom);\n }\n if (rectangleCount == 0) {\n return null;\n }\n boundingRectData.width = boundingRectData.right - boundingRectData.left;\n boundingRectData.height = boundingRectData.bottom - boundingRectData.top;\n return new Rect(boundingRectData);\n }\n}\n/**\n * Acquires all the rect properties from the passed source.\n */\nfunction copyRectProperties(rect, source) {\n for (const p of rectProperties) {\n rect[p] = source[p];\n }\n}\n/**\n * Checks if provided object is a HTML element.\n */\nfunction isBody(value) {\n if (!isDomElement(value)) {\n return false;\n }\n return value === value.ownerDocument.body;\n}\n/**\n * Checks if provided object \"looks like\" a DOM Element and has API required by `Rect` class.\n */\nfunction isDomElement(value) {\n // Note: earlier we used `isElement()` from lodash library, however that function is less performant because\n // it makes complicated checks to make sure that given value is a DOM element.\n return value !== null && typeof value === 'object' && value.nodeType === 1 && typeof value.getBoundingClientRect === 'function';\n}\n/**\n * Returns the value of the `position` style of an `HTMLElement`.\n */\nfunction getElementPosition(element) {\n return element instanceof HTMLElement ? element.ownerDocument.defaultView.getComputedStyle(element).position : 'static';\n}\n/**\n * Returns the value of the `overflow` style of an `HTMLElement` or a `Range`.\n */\nfunction getElementOverflow(element) {\n return element instanceof HTMLElement ? element.ownerDocument.defaultView.getComputedStyle(element).overflow : 'visible';\n}\n/**\n * For a given absolute Rect coordinates object and a positioned element ancestor, it updates its\n * coordinates that make up for the position and the scroll of the ancestor.\n *\n * This is necessary because while Rects (and DOMRects) are relative to the browser's viewport, their coordinates\n * are used in real–life to position elements with `position: absolute`, which are scoped by any positioned\n * (and scrollable) ancestors.\n */\nfunction shiftRectToCompensatePositionedAncestor(rect, positionedElementAncestor) {\n const ancestorPosition = new Rect(positionedElementAncestor);\n const ancestorBorderWidths = getBorderWidths(positionedElementAncestor);\n let moveX = 0;\n let moveY = 0;\n // (https://github.com/ckeditor/ckeditor5-ui-default/issues/126)\n // If there's some positioned ancestor of the panel, then its `Rect` must be taken into\n // consideration. `Rect` is always relative to the viewport while `position: absolute` works\n // with respect to that positioned ancestor.\n moveX -= ancestorPosition.left;\n moveY -= ancestorPosition.top;\n // (https://github.com/ckeditor/ckeditor5-utils/issues/139)\n // If there's some positioned ancestor of the panel, not only its position must be taken into\n // consideration (see above) but also its internal scrolls. Scroll have an impact here because `Rect`\n // is relative to the viewport (it doesn't care about scrolling), while `position: absolute`\n // must compensate that scrolling.\n moveX += positionedElementAncestor.scrollLeft;\n moveY += positionedElementAncestor.scrollTop;\n // (https://github.com/ckeditor/ckeditor5-utils/issues/139)\n // If there's some positioned ancestor of the panel, then its `Rect` includes its CSS `borderWidth`\n // while `position: absolute` positioning does not consider it.\n // E.g. `{ position: absolute, top: 0, left: 0 }` means upper left corner of the element,\n // not upper-left corner of its border.\n moveX -= ancestorBorderWidths.left;\n moveY -= ancestorBorderWidths.top;\n rect.moveBy(moveX, moveY);\n}\n","/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n/**\n * @module utils/dom/resizeobserver\n */\nimport global from './global.js';\n/**\n * A helper class which instances allow performing custom actions when native DOM elements are resized.\n *\n * ```ts\n * const editableElement = editor.editing.view.getDomRoot();\n *\n * const observer = new ResizeObserver( editableElement, entry => {\n * \tconsole.log( 'The editable element has been resized in DOM.' );\n * \tconsole.log( entry.target ); // -> editableElement\n * \tconsole.log( entry.contentRect.width ); // -> e.g. '423px'\n * } );\n * ```\n *\n * It uses the [native DOM resize observer](https://developer.mozilla.org/en-US/docs/Web/API/ResizeObserver)\n * under the hood.\n */\nclass ResizeObserver {\n /**\n * Creates an instance of the `ResizeObserver` class.\n *\n * @param element A DOM element that is to be observed for resizing. Note that\n * the element must be visible (i.e. not detached from DOM) for the observer to work.\n * @param callback A function called when the observed element was resized. It passes\n * the [`ResizeObserverEntry`](https://developer.mozilla.org/en-US/docs/Web/API/ResizeObserverEntry)\n * object with information about the resize event.\n */\n constructor(element, callback) {\n // **Note**: For the maximum performance, this class ensures only a single instance of the native\n // observer is used no matter how many instances of this class were created.\n if (!ResizeObserver._observerInstance) {\n ResizeObserver._createObserver();\n }\n this._element = element;\n this._callback = callback;\n ResizeObserver._addElementCallback(element, callback);\n ResizeObserver._observerInstance.observe(element);\n }\n /**\n * The element observed by this observer.\n */\n get element() {\n return this._element;\n }\n /**\n * Destroys the observer which disables the `callback` passed to the {@link #constructor}.\n */\n destroy() {\n ResizeObserver._deleteElementCallback(this._element, this._callback);\n }\n /**\n * Registers a new resize callback for the DOM element.\n */\n static _addElementCallback(element, callback) {\n if (!ResizeObserver._elementCallbacks) {\n ResizeObserver._elementCallbacks = new Map();\n }\n let callbacks = ResizeObserver._elementCallbacks.get(element);\n if (!callbacks) {\n callbacks = new Set();\n ResizeObserver._elementCallbacks.set(element, callbacks);\n }\n callbacks.add(callback);\n }\n /**\n * Removes a resize callback from the DOM element. If no callbacks are left\n * for the element, it removes the element from the native observer.\n */\n static _deleteElementCallback(element, callback) {\n const callbacks = ResizeObserver._getElementCallbacks(element);\n // Remove the element callback. Check if exist first in case someone\n // called destroy() twice.\n if (callbacks) {\n callbacks.delete(callback);\n // If no callbacks left for the element, also remove the element.\n if (!callbacks.size) {\n ResizeObserver._elementCallbacks.delete(element);\n ResizeObserver._observerInstance.unobserve(element);\n }\n }\n if (ResizeObserver._elementCallbacks && !ResizeObserver._elementCallbacks.size) {\n ResizeObserver._observerInstance = null;\n ResizeObserver._elementCallbacks = null;\n }\n }\n /**\n * Returns are registered resize callbacks for the DOM element.\n */\n static _getElementCallbacks(element) {\n if (!ResizeObserver._elementCallbacks) {\n return null;\n }\n return ResizeObserver._elementCallbacks.get(element);\n }\n /**\n * Creates the single native observer shared across all `ResizeObserver` instances.\n */\n static _createObserver() {\n ResizeObserver._observerInstance = new global.window.ResizeObserver(entries => {\n for (const entry of entries) {\n const callbacks = ResizeObserver._getElementCallbacks(entry.target);\n if (callbacks) {\n for (const callback of callbacks) {\n callback(entry);\n }\n }\n }\n });\n }\n}\n/**\n * The single native observer instance shared across all {@link module:utils/dom/resizeobserver~ResizeObserver} instances.\n */\nResizeObserver._observerInstance = null;\n/**\n * A mapping of native DOM elements and their callbacks shared across all\n * {@link module:utils/dom/resizeobserver~ResizeObserver} instances.\n */\nResizeObserver._elementCallbacks = null;\nexport default ResizeObserver;\n","/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n/**\n * @module utils/dom/setdatainelement\n */\n/* globals HTMLTextAreaElement */\n/**\n * Sets data in a given element.\n *\n * @param el The element in which the data will be set.\n * @param data The data string.\n */\nexport default function setDataInElement(el, data) {\n if (el instanceof HTMLTextAreaElement) {\n el.value = data;\n }\n el.innerHTML = data;\n}\n","/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n/**\n * @module utils/dom/tounit\n */\n/**\n * Returns a helper function, which adds a desired trailing\n * `unit` to the passed value.\n *\n * @param unit An unit like \"px\" or \"em\".\n */\nexport default function toUnit(unit) {\n return value => value + unit;\n}\n","/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n/**\n * @module utils/dom/indexof\n */\n/**\n * Returns index of the node in the parent element.\n *\n * @param node Node which index is tested.\n * @returns Index of the node in the parent element. Returns 0 if node has no parent.\n */\nexport default function indexOf(node) {\n let index = 0;\n while (node.previousSibling) {\n node = node.previousSibling;\n index++;\n }\n return index;\n}\n","/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n/**\n * @module utils/dom/insertat\n */\n/**\n * Inserts node to the parent at given index.\n *\n * @param parentElement Parent element.\n * @param index Insertions index.\n * @param nodeToInsert Node to insert.\n */\nexport default function insertAt(parentElement, index, nodeToInsert) {\n parentElement.insertBefore(nodeToInsert, parentElement.childNodes[index] || null);\n}\n","/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n/* globals Node */\n/**\n * @module utils/dom/iscomment\n */\n/**\n * Checks whether the object is a native DOM Comment node.\n */\nexport default function isComment(obj) {\n return obj && obj.nodeType === Node.COMMENT_NODE;\n}\n","/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n/**\n * @module utils/dom/isvisible\n */\nimport isText from './istext.js';\n/**\n * Checks whether the element is visible to the user in DOM:\n *\n * * connected to the root of the document,\n * * has no `display: none`,\n * * has no ancestors with `display: none`.\n *\n * **Note**: This helper does not check whether the element is hidden by cropping, overflow, etc..\n * To check that, use {@link module:utils/dom/rect~Rect} instead.\n */\nexport default function isVisible(element) {\n if (!element) {\n return false;\n }\n if (isText(element)) {\n return isVisible(element.parentElement);\n }\n if (element.getClientRects) {\n return !!(element.getClientRects().length);\n }\n return false;\n}\n","/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n/**\n * @module utils/dom/position\n */\nimport global from './global.js';\nimport Rect from './rect.js';\nimport getPositionedAncestor from './getpositionedancestor.js';\nimport { isFunction } from 'lodash-es';\n// @if CK_DEBUG_POSITION // const {\n// @if CK_DEBUG_POSITION // \tdefault: RectDrawer,\n// @if CK_DEBUG_POSITION // \tdiagonalStylesBlack,\n// @if CK_DEBUG_POSITION // \tdiagonalStylesGreen,\n// @if CK_DEBUG_POSITION // \tdiagonalStylesRed\n// @if CK_DEBUG_POSITION // } = require( '@ckeditor/ckeditor5-utils/tests/_utils/rectdrawer' );\n// @if CK_DEBUG_POSITION // const TARGET_RECT_STYLE = {\n// @if CK_DEBUG_POSITION // \toutlineWidth: '2px', outlineStyle: 'dashed', outlineColor: 'blue', outlineOffset: '2px'\n// @if CK_DEBUG_POSITION // };\n// @if CK_DEBUG_POSITION // const VISIBLE_TARGET_RECT_STYLE = {\n// @if CK_DEBUG_POSITION //\t\t...diagonalStylesBlack,\n// @if CK_DEBUG_POSITION //\t\topacity: '1',\n// @if CK_DEBUG_POSITION //\t\tbackgroundColor: '#00000033',\n// @if CK_DEBUG_POSITION //\t\toutlineWidth: '2px'\n// @if CK_DEBUG_POSITION // };\n// @if CK_DEBUG_POSITION // const VIEWPORT_RECT_STYLE = {\n// @if CK_DEBUG_POSITION // \toutlineWidth: '2px',\n// @if CK_DEBUG_POSITION // \toutlineOffset: '-2px',\n// @if CK_DEBUG_POSITION // \toutlineStyle: 'solid',\n// @if CK_DEBUG_POSITION // \toutlineColor: 'red'\n// @if CK_DEBUG_POSITION // };\n// @if CK_DEBUG_POSITION // const VISIBLE_LIMITER_RECT_STYLE = {\n// @if CK_DEBUG_POSITION // \t...diagonalStylesGreen,\n// @if CK_DEBUG_POSITION // \toutlineWidth: '2px',\n// @if CK_DEBUG_POSITION // \toutlineOffset: '-2px'\n// @if CK_DEBUG_POSITION // };\n// @if CK_DEBUG_POSITION // const ELEMENT_RECT_STYLE = {\n// @if CK_DEBUG_POSITION // \toutlineWidth: '2px', outlineColor: 'orange', outlineOffset: '-2px'\n// @if CK_DEBUG_POSITION // };\n// @if CK_DEBUG_POSITION // const CHOSEN_POSITION_RECT_STYLE = {\n// @if CK_DEBUG_POSITION // \topacity: .5, outlineColor: 'magenta', backgroundColor: 'magenta'\n// @if CK_DEBUG_POSITION // };\n/**\n * Calculates the `position: absolute` coordinates of a given element so it can be positioned with respect to the\n * target in the visually most efficient way, taking various restrictions like viewport or limiter geometry\n * into consideration.\n *\n * **Note**: If there are no position coordinates found that meet the requirements (arguments of this helper),\n * `null` is returned.\n *\n * ```ts\n * // The element which is to be positioned.\n * const element = document.body.querySelector( '#toolbar' );\n *\n * // A target to which the element is positioned relatively.\n * const target = document.body.querySelector( '#container' );\n *\n * // Finding the optimal coordinates for the positioning.\n * const { left, top, name } = getOptimalPosition( {\n * \telement: element,\n * \ttarget: target,\n *\n * \t// The algorithm will chose among these positions to meet the requirements such\n * \t// as \"limiter\" element or \"fitInViewport\", set below. The positions are considered\n * \t// in the order of the array.\n * \tpositions: [\n * \t\t//\n * \t \t//\t[ Target ]\n * \t\t//\t+-----------------+\n * \t\t//\t| Element |\n * \t\t//\t+-----------------+\n * \t\t//\n * \t\ttargetRect => ( {\n * \t\t\ttop: targetRect.bottom,\n * \t\t\tleft: targetRect.left,\n * \t\t\tname: 'mySouthEastPosition'\n * \t\t} ),\n *\n * \t\t//\n * \t\t//\t+-----------------+\n * \t\t//\t| Element |\n * \t\t//\t+-----------------+\n * \t\t//\t[ Target ]\n * \t\t//\n * \t\t( targetRect, elementRect ) => ( {\n * \t\t\ttop: targetRect.top - elementRect.height,\n * \t\t\tleft: targetRect.left,\n * \t\t\tname: 'myNorthEastPosition'\n * \t\t} )\n * \t],\n *\n * \t// Find a position such guarantees the element remains within visible boundaries of .\n * \tlimiter: document.body,\n *\n * \t// Find a position such guarantees the element remains within visible boundaries of the browser viewport.\n * \tfitInViewport: true\n * } );\n *\n * // The best position which fits into document.body and the viewport. May be useful\n * // to set proper class on the `element`.\n * console.log( name ); // -> \"myNorthEastPosition\"\n *\n * // Using the absolute coordinates which has been found to position the element\n * // as in the diagram depicting the \"myNorthEastPosition\" position.\n * element.style.top = top;\n * element.style.left = left;\n * ```\n *\n * @param options The input data and configuration of the helper.\n */\nexport function getOptimalPosition({ element, target, positions, limiter, fitInViewport, viewportOffsetConfig }) {\n // If the {@link module:utils/dom/position~Options#target} is a function, use what it returns.\n // https://github.com/ckeditor/ckeditor5-utils/issues/157\n if (isFunction(target)) {\n target = target();\n }\n // If the {@link module:utils/dom/position~Options#limiter} is a function, use what it returns.\n // https://github.com/ckeditor/ckeditor5-ui/issues/260\n if (isFunction(limiter)) {\n limiter = limiter();\n }\n const positionedElementAncestor = getPositionedAncestor(element);\n const constrainedViewportRect = getConstrainedViewportRect(viewportOffsetConfig);\n const elementRect = new Rect(element);\n const visibleTargetRect = getVisibleViewportIntersectionRect(target, constrainedViewportRect);\n let bestPosition;\n // @if CK_DEBUG_POSITION // const targetRect = new Rect( target );\n // @if CK_DEBUG_POSITION // RectDrawer.clear();\n // @if CK_DEBUG_POSITION // RectDrawer.draw( targetRect, TARGET_RECT_STYLE, 'Target' );\n // @if CK_DEBUG_POSITION // if ( constrainedViewportRect ) {\n // @if CK_DEBUG_POSITION //\t\tRectDrawer.draw( constrainedViewportRect, VIEWPORT_RECT_STYLE, 'Viewport' );\n // @if CK_DEBUG_POSITION // }\n // If the target got cropped by ancestors or went off the screen, positioning does not make any sense.\n if (!visibleTargetRect || !constrainedViewportRect.getIntersection(visibleTargetRect)) {\n return null;\n }\n // @if CK_DEBUG_POSITION //\tRectDrawer.draw( visibleTargetRect, VISIBLE_TARGET_RECT_STYLE, 'VisTgt' );\n const positionOptions = {\n targetRect: visibleTargetRect,\n elementRect,\n positionedElementAncestor,\n viewportRect: constrainedViewportRect\n };\n // If there are no limits, just grab the very first position and be done with that drama.\n if (!limiter && !fitInViewport) {\n bestPosition = new PositionObject(positions[0], positionOptions);\n }\n else {\n if (limiter) {\n const visibleLimiterRect = getVisibleViewportIntersectionRect(limiter, constrainedViewportRect);\n if (visibleLimiterRect) {\n positionOptions.limiterRect = visibleLimiterRect;\n // @if CK_DEBUG_POSITION // RectDrawer.draw( visibleLimiterRect, VISIBLE_LIMITER_RECT_STYLE, 'VisLim' );\n }\n }\n // If there's no best position found, i.e. when all intersections have no area because\n // rects have no width or height, then just return `null`\n bestPosition = getBestPosition(positions, positionOptions);\n }\n return bestPosition;\n}\n/**\n * Returns intersection of visible source `Rect` with Viewport `Rect`. In case when source `Rect` is not visible\n * or there is no intersection between source `Rect` and Viewport `Rect`, `null` will be returned.\n */\nfunction getVisibleViewportIntersectionRect(source, viewportRect) {\n const visibleSourceRect = new Rect(source).getVisible();\n if (!visibleSourceRect) {\n return null;\n }\n return visibleSourceRect.getIntersection(viewportRect);\n}\n/**\n * Returns a viewport `Rect` shrunk by the viewport offset config from all sides.\n */\nfunction getConstrainedViewportRect(viewportOffsetConfig) {\n viewportOffsetConfig = Object.assign({ top: 0, bottom: 0, left: 0, right: 0 }, viewportOffsetConfig);\n const viewportRect = new Rect(global.window);\n viewportRect.top += viewportOffsetConfig.top;\n viewportRect.height -= viewportOffsetConfig.top;\n viewportRect.bottom -= viewportOffsetConfig.bottom;\n viewportRect.height -= viewportOffsetConfig.bottom;\n return viewportRect;\n}\n/**\n * For a given array of positioning functions, returns such that provides the best\n * fit of the `elementRect` into the `limiterRect` and `viewportRect`.\n */\nfunction getBestPosition(positions, options) {\n const { elementRect } = options;\n // This is when element is fully visible.\n const elementRectArea = elementRect.getArea();\n const positionInstances = positions\n .map(positioningFunction => new PositionObject(positioningFunction, options))\n // Some positioning functions may return `null` if they don't want to participate.\n .filter(position => !!position.name);\n let maxFitFactor = 0;\n let bestPosition = null;\n for (const position of positionInstances) {\n const { limiterIntersectionArea, viewportIntersectionArea } = position;\n // If a such position is found that element is fully contained by the limiter then, obviously,\n // there will be no better one, so finishing.\n if (limiterIntersectionArea === elementRectArea) {\n // @if CK_DEBUG_POSITION //\tRectDrawer.draw( position._rect, CHOSEN_POSITION_RECT_STYLE, [\n // @if CK_DEBUG_POSITION //\t\tposition.name,\n // @if CK_DEBUG_POSITION //\t\t'100% fit',\n // @if CK_DEBUG_POSITION //\t].join( '\\n' ) );\n return position;\n }\n // To maximize both viewport and limiter intersection areas we use distance on _viewportIntersectionArea\n // and _limiterIntersectionArea plane (without sqrt because we are looking for max value).\n const fitFactor = viewportIntersectionArea ** 2 + limiterIntersectionArea ** 2;\n // @if CK_DEBUG_POSITION //\tRectDrawer.draw( position._rect, { opacity: .4 }, [\n // @if CK_DEBUG_POSITION //\t\tposition.name,\n // @if CK_DEBUG_POSITION //\t\t'Vi=' + Math.round( viewportIntersectionArea ),\n // @if CK_DEBUG_POSITION //\t\t'Li=' + Math.round( limiterIntersectionArea )\n // @if CK_DEBUG_POSITION //\t].join( '\\n' ) );\n if (fitFactor > maxFitFactor) {\n maxFitFactor = fitFactor;\n bestPosition = position;\n }\n }\n // @if CK_DEBUG_POSITION // if ( bestPosition ) {\n // @if CK_DEBUG_POSITION // \tRectDrawer.draw( bestPosition._rect, CHOSEN_POSITION_RECT_STYLE );\n // @if CK_DEBUG_POSITION // }\n return bestPosition;\n}\n/**\n * A position class which instances are created and used by the {@link module:utils/dom/position~getOptimalPosition} helper.\n *\n * {@link module:utils/dom/position~Position#top} and {@link module:utils/dom/position~Position#left} properties of the position instance\n * translate directly to the `top` and `left` properties in CSS \"`position: absolute` coordinate system\". If set on the positioned element\n * in DOM, they will make it display it in the right place in the viewport.\n */\nclass PositionObject {\n /**\n * Creates an instance of the {@link module:utils/dom/position~PositionObject} class.\n *\n * @param positioningFunction function The function that defines the expected\n * coordinates the positioned element should move to.\n * @param options options object.\n * @param options.elementRect The positioned element rect.\n * @param options.targetRect The target element rect.\n * @param options.viewportRect The viewport rect.\n * @param options.limiterRect The limiter rect.\n * @param options.positionedElementAncestor Nearest element ancestor element which CSS position is not \"static\".\n */\n constructor(positioningFunction, options) {\n const positioningFunctionOutput = positioningFunction(options.targetRect, options.elementRect, options.viewportRect, options.limiterRect);\n // Nameless position for a function that didn't participate.\n if (!positioningFunctionOutput) {\n return;\n }\n const { left, top, name, config } = positioningFunctionOutput;\n this.name = name;\n this.config = config;\n this._positioningFunctionCoordinates = { left, top };\n this._options = options;\n }\n /**\n * The left value in pixels in the CSS `position: absolute` coordinate system.\n * Set it on the positioned element in DOM to move it to the position.\n */\n get left() {\n return this._absoluteRect.left;\n }\n /**\n * The top value in pixels in the CSS `position: absolute` coordinate system.\n * Set it on the positioned element in DOM to move it to the position.\n */\n get top() {\n return this._absoluteRect.top;\n }\n /**\n * An intersection area between positioned element and limiter within viewport constraints.\n */\n get limiterIntersectionArea() {\n const limiterRect = this._options.limiterRect;\n if (limiterRect) {\n return limiterRect.getIntersectionArea(this._rect);\n }\n return 0;\n }\n /**\n * An intersection area between positioned element and viewport.\n */\n get viewportIntersectionArea() {\n const viewportRect = this._options.viewportRect;\n return viewportRect.getIntersectionArea(this._rect);\n }\n /**\n * An already positioned element rect. A clone of the element rect passed to the constructor\n * but placed in the viewport according to the positioning function.\n */\n get _rect() {\n if (this._cachedRect) {\n return this._cachedRect;\n }\n this._cachedRect = this._options.elementRect.clone().moveTo(this._positioningFunctionCoordinates.left, this._positioningFunctionCoordinates.top);\n return this._cachedRect;\n }\n /**\n * An already absolutely positioned element rect. See ({@link #_rect}).\n */\n get _absoluteRect() {\n if (this._cachedAbsoluteRect) {\n return this._cachedAbsoluteRect;\n }\n this._cachedAbsoluteRect = this._rect.toAbsoluteRect();\n return this._cachedAbsoluteRect;\n }\n}\n","/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n/**\n * @module utils/dom/remove\n */\n/**\n * Removes given node from parent.\n *\n * @param node Node to remove.\n */\nexport default function remove(node) {\n const parent = node.parentNode;\n if (parent) {\n parent.removeChild(node);\n }\n}\n","/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n/**\n * @module utils/dom/scroll\n */\nimport isRange from './isrange.js';\nimport Rect from './rect.js';\nimport isText from './istext.js';\n/**\n * Makes any page `HTMLElement` or `Range` (`target`) visible inside the browser viewport.\n * This helper will scroll all `target` ancestors and the web browser viewport to reveal the target to\n * the user. If the `target` is already visible, nothing will happen.\n *\n * @param options Additional configuration of the scrolling behavior.\n * @param options.target A target, which supposed to become visible to the user.\n * @param options.viewportOffset An offset from the edge of the viewport (in pixels)\n * the `target` will be moved by if the viewport is scrolled. It enhances the user experience\n * by keeping the `target` some distance from the edge of the viewport and thus making it easier to\n * read or edit by the user.\n * @param options.ancestorOffset An offset from the boundary of scrollable ancestors (if any)\n * the `target` will be moved by if the viewport is scrolled. It enhances the user experience\n * by keeping the `target` some distance from the edge of the ancestors and thus making it easier to\n * read or edit by the user.\n * @param options.alignToTop When set `true`, the helper will make sure the `target` is scrolled up\n * to the top boundary of the viewport and/or scrollable ancestors if scrolled up. When not set\n * (default), the `target` will be revealed by scrolling as little as possible. This option will\n * not affect `targets` that must be scrolled down because they will appear at the top of the boundary\n * anyway.\n *\n * ```\n * scrollViewportToShowTarget() with scrollViewportToShowTarget() with\n * Initial state alignToTop unset (default) alignToTop = true\n *\n * ┌────────────────────────────────┬─┐ ┌────────────────────────────────┬─┐ ┌────────────────────────────────┬─┐\n * │ │▲│ │ │▲│ │ [ Target to be revealed ] │▲│\n * │ │ │ │ │ │ │ │ │\n * │ │█│ │ │ │ │ │ │\n * │ │█│ │ │ │ │ │ │\n * │ │ │ │ │█│ │ │ │\n * │ │ │ │ │█│ │ │█│\n * │ │ │ │ │ │ │ │█│\n * │ │▼│ │ [ Target to be revealed ] │▼│ │ │▼│\n * └────────────────────────────────┴─┘ └────────────────────────────────┴─┘ └────────────────────────────────┴─┘\n *\n *\n * [ Target to be revealed ]\n *```\n *\n * @param options.forceScroll When set `true`, the `target` will be aligned to the top of the viewport\n * and scrollable ancestors whether it is already visible or not. This option will only work when `alignToTop`\n * is `true`\n */\nexport function scrollViewportToShowTarget({ target, viewportOffset = 0, ancestorOffset = 0, alignToTop, forceScroll }) {\n const targetWindow = getWindow(target);\n let currentWindow = targetWindow;\n let currentFrame = null;\n viewportOffset = normalizeViewportOffset(viewportOffset);\n // Iterate over all windows, starting from target's parent window up to window#top.\n while (currentWindow) {\n let firstAncestorToScroll;\n // Let's scroll target's ancestors first to reveal it. Then, once the ancestor scrolls\n // settled down, the algorithm can eventually scroll the viewport of the current window.\n //\n // Note: If the current window is target's **original** window (e.g. the first one),\n // start scrolling the closest parent of the target. If not, scroll the closest parent\n // of an iframe that resides in the current window.\n if (currentWindow == targetWindow) {\n firstAncestorToScroll = getParentElement(target);\n }\n else {\n firstAncestorToScroll = getParentElement(currentFrame);\n }\n // Scroll the target's ancestors first. Once done, scrolling the viewport is easy.\n scrollAncestorsToShowRect({\n parent: firstAncestorToScroll,\n getRect: () => {\n // Note: If the target does not belong to the current window **directly**,\n // i.e. it resides in an iframe belonging to the window, obtain the target's rect\n // in the coordinates of the current window. By default, a Rect returns geometry\n // relative to the current window's viewport. To make it work in a parent window,\n // it must be shifted.\n return getRectRelativeToWindow(target, currentWindow);\n },\n alignToTop,\n ancestorOffset,\n forceScroll\n });\n // Obtain the rect of the target after it has been scrolled within its ancestors.\n // It's time to scroll the viewport.\n let targetRect = getRectRelativeToWindow(target, currentWindow);\n // Detect situation where the target is higher than the first scrollable ancestor.\n // In such case scrolling the viewport to reveal the target might be malfunctioning because\n // the target `.top` position is lower than the ancestor's `.top` position. If it's large enough it can be negative.\n // It causes the `scrollWindowToShowRect` to scroll the viewport to the negative top position which is not possible\n // and leads to the viewport being scrolled to the absolute top of the document. To prevent this, the target's rect\n // must be shifted to the ancestor's top position. It should not affect the target's visibility because the ancestor\n // is already scrolled to reveal the target.\n // See more: https://github.com/ckeditor/ckeditor5/issues/17079\n const ancestorWindowRelativeRect = getRectRelativeToWindow(firstAncestorToScroll, currentWindow);\n if (targetRect.height > ancestorWindowRelativeRect.height) {\n const ancestorTargetIntersection = targetRect.getIntersection(ancestorWindowRelativeRect);\n if (ancestorTargetIntersection) {\n targetRect = ancestorTargetIntersection;\n }\n }\n scrollWindowToShowRect({\n window: currentWindow,\n rect: targetRect,\n viewportOffset,\n alignToTop,\n forceScroll\n });\n if (currentWindow.parent != currentWindow) {\n // Keep the reference to the